Я намагався знайти алгоритм, щоб знайти обкладинку максимального вершинного циклу спрямованого графа - тобто набір непересічних циклів, які містять усі вершини в G , з якомога більше циклів (ми не враховуємо окремі вершинні цикли тут). Я знаю, що проблема пошуку мінімальної кришки вершинного циклу, а також пошуку кришки вершинного циклу з точно k циклами є NP-повною. А як щодо максимального випадку?
Хоча я взагалі знайшов відповідь на це цікаве, графіки, для яких я хочу використовувати це, насправді досить обмежені їх побудовою, тому, можливо, навіть якщо проблема не є повною, NP може бути поліноміальним рішенням для цих конкретних випадків.
У нас є список цілих чисел , елементів l i, і ми будемо використовувати S , елементи s i для позначення L після сортування. Як приклад:
Вершини графіка будуть ідентифіковані парами такими, що l i = n та s i ≠ n . Графік має спрямований край ( n , i ) → ( m , j ) тоді і тільки тоді, коли s j = n . (Цикл на цьому графіку відповідає набору значень, які можуть бути циклічно перестановлені таким чином, що вони опиняться у відсортованому положенні.)
Наведений вище приклад дасть наступний графік (з використанням 1-бальних індексів):
Одне, що не працює - це жадібний підхід повторного видалення найменшого циклу (як показує цей приклад).
Зауважте, що ця проблема (якщо я не допустив жодних помилок) рівнозначна запиту, скільки свопів потрібно сортувати заданий список. (Що в першу чергу надихнуло на розгляд цієї проблеми.)
Після деяких покажчиків відповіді Джухо та ще трохи просіювання літератури я зіткнувся з проблемою завдання, яка здається дуже тісно пов’язаною. Однак проблема присвоєння формулюється з точки зору зваженого двостороннього графіка, і поки що мені не вдалося знайти спосіб вибору ребер і ваг, щоб зменшити цю проблему. Якби ми хотіли сформулювати цю проблему з точки зору мінімізації вагової функції, тоді інтуїтивним підходом було б сказати, що вага кожного циклу є де | C | - кількість ребер (або вершин) у циклі. (Звичайно, це рівнозначно встановленню ваги до - 1.) Тобто вага залежить від розміру циклу, а не від конкретних ребер, до яких він входить. Але, можливо, це дає комусь інше уявлення про те, як зменшити проблему.
Виявляється також, що обмеження розміру циклів робить проблему APX важкою для загальних графіків. Це не обов'язково означає, що те саме стосується завдання максимізації кількості циклів, а також для конкретних графіків, які тут розглядаються, але, здається, є досить тісно пов'язаними, щоб це могло бути важливим.
Підсумовуючи: Чи можна знайти кришку максимального роз'єднаного вершинного циклу для графіків, побудованих з вищевказаного процесу?
Як дві сторони, я також зацікавився б тим, чи має покриття максимального вершинного роз'єднання циклу також ефективне рішення для довільних графіків, які допускають принаймні одну кришку циклу (що, ймовірно, випаде як відповідь на головне питання), чи чи саме визначення кількості циклів у максимальній кришці (на відміну від реальних ребер, що містяться в кожному) робить проблему простішою. Я радий розмістити їх як окремі запитання, якщо люди думають, що заслуговують повноцінних відповідей самостійно.