У меня есть две взвешенные DAG (направленные ациклические графы) и нужно объединить их в одну, поэтому я могу получить топологическое упорядочение (в некоторых случаях это может быть больше двух). Проблема состоит в том, что графики являются ациклическими, но могут образовывать цикл вместе. Кроме того, графики большие (100k + узлы, 500 k + ребра). Есть ли разумный способ слияния графиков? Столь же хорошим был бы алгоритм, который бы проходил все графики "сразу".
Edit:
Под "merge" я подразумеваю объединение всех ребер и вершин обоих графиков вместе (с сохранением веса, конечно), если они не создают циклы. Если край уже существует, я хочу использовать для него больший вес.
Идея состоит в том, что начало с двух ациклических графов должно дать преимущество перед просто "фиксацией" результата после этого (это означало бы найти набор дуги обратной связи, который является NP жестким, поэтому я хотел этого избежать).
Спасибо за ваши предложения.