Mam dwa ważone DAG (skierowane acykliczne wykresy) i muszę je połączyć w jeden, więc mogę uzyskać zamówienie topologiczne (w niektórych przypadkach może to być więcej niż dwa). Problem polega na tym, że wykresy są acykliczne, ale mogą tworzyć razem cykl. Ponadto wykresy są duże (100k + węzły, 500k + krawędzie). Czy istnieje sprytny sposób na scalenie wykresów? Równie dobry byłby algorytm przechodzenia przez wszystkie wykresy "naraz".Efektywny algorytm łączenia dwóch DAGów
Edycja:
Przez „scalania” to znaczy, łącząc wszystkie krawędzie i wierzchołki obydwu wykresów sobą (zachowaniu grubości oczywiście), o ile nie tworzą one cykli. Jeśli krawędź już istnieje, chcę użyć większej wagi.
Pomysł polega na tym, że rozpoczynanie od dwóch acyklicznych wykresów powinno dawać przewagę nad po prostu "naprawianiem" wyniku później (wymagałoby to znalezienia zestawu łuków zwrotnych, który jest NP trudny, więc chciałem tego uniknąć).
Dziękujemy za sugestie.
Co masz na myśli przez seryjnej? Prosimy o więcej szczegółów matematycznych na temat tego –
Dziękuję za odpowiedź. Zmodyfikowałem pytanie, aby wyjaśnić. – Thomas
Wciąż nie jest jasne, co zrobić, gdy cykl jest tworzony. – wnoise