Nie sądzę, że istnieje algorytm znajdowania maksymalnego niezależnego zestawu wierzchołków na wykresie dwustronnym, inny niż metoda brute force znajdowania maksimum spośród wszystkich możliwych zestawów niezależnych.Maksymalny niezależny algorytm setu
Zastanawiam się nad pseudokodami, aby znaleźć wszystkie możliwe zestawy wierzchołków.
Powiedzmy, że mamy dwudzielny wykres z 4 niebieskimi wierzchołkami i 4 czerwonymi. Obecnie chciałbym
Start with an arbitrary blue,
find all red that don't match this blue
put all these red in Independent Set
find all blue that dont match these red
put these blue in Independent Set
Repeat for next vertex in blue
Repeat all over again for all blue then all vertices in red.
Rozumiem, że w ten sposób nie daje mi wszystkie możliwe kombinacje niezależnego zestawu w ogóle, ponieważ po pierwszym etapie mam wyboru wszystkich następnych kolorów wierzchołków że dont mecz zamiast intensyfikacji przez każdy possiblity.
Na przykład biorąc pod uwagę wykres z pasującym
B R
1 1
1 3
2 1
2 3
3 1
3 3
4 2
4 4
Start with blue 1
Choose red 2 and 4 since they dont match
Add 2, 4 to independent Set
Choose 2 and 3 from blue since they dont with 2 or 4 from red
Add 2 and 3 from blue to independent set as well.
Independent Set = 1,2,3 from blue 2,4 from red
Repeat for blue 2, blue 3, ... red n (storing the cardinality for each set)
Czy istnieje sposób mogę poprawić ten algorytm do lepszego poszukiwaniu wszystkich możliwości. Wiem, że | Maksymalny zestaw dla wykresu dwudzielnego | = | Czerwony | + | Niebieski | - Maksymalne dopasowanie |.
Problem powstaje z możliwością, że wybierając wszystkie możliwe czerwone w pierwszym przejściu dla danego niebieskiego, jeśli te czerwone łączą się ze wszystkimi innymi możliwymi niebieskimi, to mój zestaw ma tylko 1 niebieski i czerwony.
Jak duży jest wykres? Liczba węzłów i liczba krawędzi? Możliwe jest dostarczenie uzupełnienia wykresu w standardowym algorytmie maksymalnego kliknięcia. –