Графіки, які викликають DFS та BFS, обробляють вузли в точно такому ж порядку


11

Для деяких графіків алгоритми пошуку DFS та BFS обробляють вузли в точно однаковому порядку за умови, що вони обидва починаються в одному вузлі. Два приклади - це графіки, що представляють собою доріжки та графіки зіркоподібної форми (дерева глибини з довільною кількістю дітей). Чи є спосіб класифікувати графіки, які задовольняють цю властивість?1


6
Зауважте, що в обох випадках це працює лише в тому випадку, якщо ви починаєте з якогось конкретного вузла. Наприклад, якщо вибрати центральний вузол у довгому шляху, наприклад, ви отримаєте назад різні замовлення від DFS та BFS.
templatetypedef

1
Чи є інші цікаві можливості, крім зірки чи стежки? На перший погляд здається, що якщо у вас була вершина і з братами, і з дитиною, ви негайно отримуєте різні обходи, тому або вершина не має дітей (крім кореня), і ви отримуєте зірку, або жодна вершина не має побратимів і ти отримуєш шлях. Я здогадуюсь, що також працює кліка, але в неї вбудовані зірка та шлях.
Люк Матхісон

2
@LukeMathieson Я думаю про зірку, котра з правою дитиною є коренем іншої зірки. Я думаю, це також спрацювало б. Ми можемо навіть зробити загальне твердження: якщо задовольняє властивість, коли пошук починається у вузлі v∈V, то так робить зірка, найправіша дитина якоїГ=(V,Е) . Ще краще, якщо G 1 і G 2 задовольняють властивість, а вузол v 1 - останній, оброблений у G 1, а v 2 - це місце, де починається пошук у G 2 , а потім додається край моста ( v=vГ1Г2v1Г1v2Г2 створює графік, який задовольняє властивість. Я думаю, щозаміна v 1 на v 2 також працює. (v1,v2)v1v2
saadtaame

2
Хороший момент, тому є якась право-рекурсивна композиція, де ви могли б ототожнювати правий лист першого графа з коренем другого.
Люк Матхісон

@LukeMathieson Схоже, ви можете виправити випадок, коли у вузла є рідний брат та дитина, додавши край між цією дитиною та батьком v . Ось моя пропозиція: Дано графік G = ( V , E ) . x V , якщо y , z , w V такі, що ( y , x ) , ( z , y ) , ( x , w ) EvvГ=(V,Е)хVу,z,шV(у,х),(z,у),(х,ш)Е, то (х,z)Евластивість має місце для . Наступним кроком є ​​доведення або спростування цієї пропозиції. Г
saadtaame

Відповіді:


6

Припустимо, що у наших BFS та dfs є правило починати з конкретного вузла, і в кожному двосторонній вони спочатку відвідують вузол з найнижчим ступенем:

DFS-BFS

Почніть з лівого самого чорного вузла, потім (BFS і DFS) відвідують лівий самий червоний вузол, потім вони відвідають наступний чорний вузол і так далі, щоб зробити його більш загальним, ви можете додати кілька шляхів між трикутниками або додати зірку закінчивши трикутники ...


Це правильно за вашим припущенням. Ви фактично підняли хорошу точку; нам слід вказати, у якому порядку додаються вузли до порядку денного (стек чи черга), коли стикаємося з вибором.
saadtaame

Маючи на увазі, що LIFO та FIFO для планування дають відповідно DFS та BFS, можна стверджувати, що таке планування (у якому планування не може бути ні стековим, ні черговим) не є ні глибинним, ні широтним першим пошуком - хоча ви можете в деяких випадках описати його схильність нагадувати те чи інше.
Ніль де Бодорап

1
Я думаю, що це може бути реалізовано з точки зору стека чи черги. Це не змінює те, як знімаються речі (LIFO чи FIFO), воно змінює порядок додавання дітей (у цьому випадку спочатку найнижчий ступінь).
СамМ

@NieldeBeaudrap насправді це лише структура, яка показує, що десь обидва способи однакові.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.