<aside> 💡 Un grafo non direzionato è bipartito se l’insieme di nodi può essere partizionato in due sottoinsiemi $X$ e $Y$ tali che ciascun arco del grafo ha una delle due estremità in $X$ e l’altra in $Y$
</aside>
Possiamo colorare i nodi con due colori in modo tale che ogni arco ha un’estremità di un colore e l’altra dell’altro
Dato un grafo $G$, vogliamo scoprire se è bipartito
//problema fondamentale: trovare il massimo matching → insieme di archi di dimensione max in modo tale che ciascun vertice è toccato al più da un arco (i due insiemi saranno di cardinalità uguale) (esempio scheduling: macchina - processo)
Molti problemi su grafi diventano:
Se volessimo considerare tutti i possibili modi di colorare i nodi con due colori dovremmo considerare $2^{n-1}$ possibilitĂ
<aside> 💡 Se un grafo $G$ è bipartito, non può contenere un ciclo dispari
</aside>
In pratica vale l’implicazione: $G$ bipartito → nessun ciclo dispari in $G$
Sia $G$ un grafo connesso e siano $L_0, .., L_k$ i livelli prodotti da un’esecuzione di BFS a partire dal nodo $s$
Può avvenire che si verifichi:
Nel caso 1 il grafo è bipartito, nel caso 2 il grafo non è bipartito