Non credo esista un algoritmo per trovare il massimo vertice indipendente impostato in un grafico bipartito diverso dal metodo della forza bruta per trovare il massimo tra tutti i possibili insiemi indipendenti.Algoritmo set indipendente massimo
Mi chiedo se lo pseudocodice trovi tutti i possibili set di vertici.
Dire un grafico bipartito con 4 vertici blu e 4 rossi. Attualmente mi
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.
Capisco che in questo modo non mi dà tutte le possibili combinazioni insieme indipendente a tutti, dal momento che dopo il primo passo ho scelto tutti i prossimi vertici colore che dont partita, piuttosto che fare un passo attraverso ogni possiblity.
Per esempio dato un grafico con la corrispondenza
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)
C'è un modo posso migliorare questo algoritmo per una migliore ricerca di tutte le possibilità. So che a | Set massimo per un grafico bipartito | = | Rosso | + | Blu | - | Corrispondenza massima |.
Il problema sorge con la possibilità che scegliendo tutti i possibili rossi al primo tentativo per un dato blu, se quelli rossi si collegano a tutti gli altri blu possibili, il mio set ha sempre solo 1 blu e resto rosso.
Quanto è grande il grafico? Numero di nodi e numeri di bordi? Potrebbe essere possibile alimentare il complemento del grafico in un algoritmo di cricca massimo standard. –