Liczba wierzchołków obecnych we wszystkich maksymalnych dopasowaniach


12

Biorąc pod uwagę wykres , musimy znaleźć liczność największego zestawu wierzchołków, aby każdy z nich był obecny w każdym możliwym maksymalnym dopasowaniu.G

Czy istnieje rozwiązanie obok oczywistego usunięcia każdego wierzchołka i znalezienia maksymalnego dopasowania, aby zobaczyć, że zmniejsza się?


Nie rozumiem, jak to, co zasugerowałeś, jest nawet rozwiązaniem. (Rozważ trójkąt.)

1
@ RickyDemer najpierw znajdujemy maksymalne dopasowanie na całym wykresie. Następnie usuwamy wierzchołek i ponownie znajdujemy maksymalne dopasowanie. Jeśli różnica wynosi 1, możemy powiedzieć, że ten wierzchołek występuje we wszystkich maksymalnych dopasowaniach.
— evil999man

Czy „znaleźć maksymalne dopasowanie” należy zastąpić „znaleźć maksymalne dopasowanie” czy „znaleźć wszystkie maksymalne dopasowania”?

Myślę, że należy go zastąpić rozmiarem maksymalnego dopasowania.
— evil999man

@ Awesome ma rację. Zmienię moje pytanie.
— Hououin Kyouma,

Odpowiedzi:


11

Myślę, że chcesz rozkładu Edmonda-Gallai na swoim wykresie, który można obliczyć w czasie (patrz te uwagi ).O(n3)


Potrzebuję tylko rozmiaru, a nie samych wierzchołków. Czy można to zrobić w O (n ^ 2)? I dzięki za artykuł
— Hououin Kyouma,

11

Czy twój wykres jest dwustronny? Ponieważ, jeśli tak jest: załóżmy, że jedna strona dwuczęściowa jest pozostawiona, a druga właściwa. Znajdź maksymalne dopasowanie i ustaw wszystkie dopasowane krawędzie od lewej do prawej oraz wszystkie niedopasowane krawędzie od prawej do lewej. Następnie wierzchołek można pominąć w maksymalnym dopasowaniu tylko wtedy, gdy spełniony jest jeden z trzech następujących (wzajemnie wykluczających się) warunków:v

  • v jest już niedopasowane
  • v można osiągnąć z niedopasowanego wierzchołka po jego stronie dwuczęściowego w wynikowym digrafie
  • v może osiągnąć niedopasowany wierzchołek po swojej stronie dwuczęściowej w wynikowym wykreślniku.

Wykonując dwa wyszukiwania najpierw szerokości lub pierwszego głębokości, jeden w celu znalezienia części wykresu, do których można dotrzeć z niedopasowanych wierzchołków, i drugi w celu znalezienia części, które mogą osiągnąć niedopasowane wierzchołki, można znaleźć niezbędne wierzchołki w czasie liniowym, gdy tylko już mam pasujące.

Prawdopodobnie coś takiego będzie działało również w przypadku dwustronnej, wykorzystując naprzemienne wyszukiwanie ścieżki alternatywnej, ale szczegóły będą bardziej skomplikowane.


Jestem ciekawy, jak byś to zrobił na ogólnym wykresie. Czy możesz to wyjaśnić?
— evil999man

Gdybym to szczegółowo opracował, uwzględniłbym to w swojej odpowiedzi. Ale w zasadzie chcesz po prostu znaleźć wierzchołki, do których można dotrzeć, zmieniając ścieżki z nieosiągalnych wierzchołków, ponieważ są to te, które można pozostawić niedopasowane. Wyszukiwanie na przemian powinno być w zasadzie takie samo, jak w przypadku wyszukiwania dopasowania.
— David Eppstein,

Przepraszam za spóźniony komentarz. Mój wykres jest ogólny. Spróbuję przemyśleć metodę
— Hououin Kyouma,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.