При наличии DAG с N узлами каждый узел имеет значение (например, 0,2, 0,5, 1,3, 0,1 ...). Я хочу сортировать вершины в цепочку. Трудность состоит в том, что при сортировке узлов существует объективная функция.топология сортировка
Например, цепочка x ---> y ---> z ---> w. Каждая ссылка имеет вес, для (x, y) weight = x, link (y, z) weight = xy, link (z, w) weight = xyz и т. Д.
Целевая функция состоит в том, чтобы свести к минимуму сумму (здесь для цепочки: x + xy + xyz) всего веса ссылок.
Я думал об этом. Но я понятия не имею. Кто-нибудь может дать некоторые идеи по дизайну алгоритма или сложному доказательству проблемы? Благодарю.
Не жадные работы для этого? Поскольку он является топологическим, каждая подзадача не зависит от родительской проблемы. – kevmo314
Нет. Я так не думаю. Вот контрпример: DAG состоит из двух отдельных цепочек: 1,2 ---> 0,5 и 1,1 ---> 1,001. Оптимизированная сортированная цепочка должна быть 1,2 ----> 0,5 ----> 1.1 ----> 1.001. Возможно, для одного алгоритма алчности цепочка должна быть: 1.1 ----> 1.001 ----> 1.2 ---> 0.5 (наименьшая вершина первая). Не могли бы вы дать больше идеи по жадному алгоритму? – user2585677
Значение узла важно вообще или просто вес ссылки? –