Це питання стосується складності часу алгоритму максимального потоку Ford-Fulkerson при використанні DFS для пошуку шляхів збільшення.
Є відомий приклад, що показує, що за допомогою DFS може знадобитися лінійна кількість ітерацій у максимальному потоці, див., Наприклад, сторінку Вікіпедії, пов'язану вище.
Однак я не дуже переконаний у цьому прикладі: стандартна реалізація DFS не демонструватиме поведінку чергування між B і C як перший вузол шляху (використовуючи назви вершин зі сторінки Вікіпедії).
Отже, давайте нав'яжемо цілком природну умову, що кожного разу, коли DFS відвідує вузол , він завжди перевіряє сусідів в тому ж порядку. Є ще приклади, для яких FF з DFS використовує велику кількість ітерацій?
Припустимо, що у нас є додаткова властивість, що різні впорядкування сусідів узгоджуються з деяким довільним, але фіксованим глобальним упорядкуванням вершин. Це має значення?
Мені це здається досить базовим питанням; Я заздалегідь прошу вибачення, якщо відповідь відома, але я не знавець потоків, і деякі гуглінг нічого не з'явив.
Редагувати: Відповідь виявляється так, є приклади. Див. Малюнок 2 цієї статті . У цих прикладах FF з DFS приймають експоненціальне (у кількості вершин) кількість ітерацій. Здається легко довести, що це непросто, тобто кількість ітерацій завжди обмежена (незалежно від значень ємностей).