Se è unimodulare e è intero allora il poliedro 0 ha vertici interi. Sia un vertice di Per definizione esiste allora una base di tale che, 0 Poiché è non singolare ( invertibile det 0) si ha che det 1 è intera è intero è intero. Quindi se è unimodulare possiamo ottenere una soluzione intera del problema in forma standard risolvendo il rilassamento lineare. Se invece il problema è in forma canonica: min 0 min 0 dove è un vettori di variabili slack e è la matrice identità La matrice dei vincoli in questo caso non è più, bensì, La base, se prima era una sottomatrice di, ora deve essere una sottomatrice di ed avrà dunque alcune colonne di ed alcune colonne di ; in particolare ha: colonne di, con 0, ed colonne di. A meno di permutazioni di righe e colonne ha l aspetto det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.
Se è una matrice TUM e è intero allora = 0 ha solo vertici interi. Sia un vertice di Mostriamo che, con = è un vertice del poliedro =, 0 = Supponiamo per assurdo che non sia così, ovvero che esistano due punti distinti, e, di tali che, =, + 1, con 0 < < 1 Si noti che,, infatti Inoltre E quindi = 0 = 0,, = + 1 con 0 < < 1 Si è giunti così ad un assurdo perché non può essere un vertice di (un vertice di, per definizione, non può essere espresso come combinazione strettamente convessa di altri due punti del poliedro). Pertanto, è un vertice di. Quindi se è TUM allora =, è unimodulare e, per il teorema precedente, se, è intero allora è intero.
Sia una matrice con = 1, +1, 0, A è TUM se valgono le seguenti condizioni (sufficienti ma non necessarie!) 1. Ogni colonna di ha al più 2 elementi non nulli 2. Esiste una partizione, delle righe di tale che ogni colonna con 2 elementi non nulli abbia questi due elementi su righe appartenenti ad insiemi e diversi se e solo se i due elementi sono concordi in segno Bisogna mostrare che per ogni sottomatrice quadrata di qualsiasi ordine si ha che det = 1, +1, 0 Si dimostra per induzione su, dove è l ordine di ( = 1,, ) = 1 = det = 1, +1, 0 = 1 Supponiamo che per ogni di ordine 1 si abbia det 0, ±1 e dimostriamo allora che ciò vale per ogni di ordine = + 1: Dalla condizione 1 si possono verificare solo 3 casi: 1. ha una colonna di zeri det = 0 2. ha una colonna con un solo elemento diverso da zero A meno di permutazioni di righe e colonne posso scrivere in questo modo: ±1 0 0 dove è la matrice del passo 1 che per ipotesi ha det 0, ±1 det = ± det 0, ±1 3. Ogni colonna di ha 2 elementi non nulli Se esiste la partizione specificata dalla seconda condizione, consideriamo le righe di come vettori ed effettuiamo la differenza tra la somma di quelle appartenenti ad = e la somma di quelle appartenenti ad = NOTA: = 0,, 0 Le righe di sono quindi linearmente indipendenti det = 0 Essendo il teorema una condizione solamente sufficiente ma non necessaria, per mostrare che una matrice non è TUM bisogna mostrare una sottomatrice di per cui det 0, ±1. Se non è TUM significa che non è possibile identificare la partizione imposta dal secondo vincolo e dunque vi è una colonna con due elementi non nulli le cui corrispondenti righe non possono essere assegnate correttamente agli opportuni insiemi. La sottomatrice si identifica andando alla ricerca dei primi elementi che hanno indotto la partizione che genera il conflitto di assegnazione.
PROPOSIZIONE Se N è un cover, allora la disuguaglianza cover 1 è verificata per. Considerato un insieme di oggetti, supponiamo che esista una soluzione che non soddisfa la disuguaglianza cover, ossia tale che > 1 Si ha allora che =, cioè. = >
Sia connesso. Le seguenti affermazioni sono equivalenti: 1. è euleriano 2. Ogni nodo di ha grado pari 3. è ottenibile come unione di cicli disgiunti sugli archi Le 2. e 3. sono condizioni necessarie e sufficienti affinché un grafo sia euleriano. 1 2: Se è euleriano allora esiste un ciclo euleriano,,,,,,,,,,,,,, dove - = -, : nodo all interno dell -esimo ciclo euleriano in -, : arco uscente dal nodo all interno dell -esimo ciclo euleriano in Sia, il grado in del nodo,. Questo grado è ottenuto dagli archi, ed, che danno contributo 2 (sono rispettivamente l arco che precede e l arco che segue il nodo, ). Poiché, =, per qualche h, con h allora si avranno altri contributi comunque pari al grado del nodo. 2 3: Sappiamo che 2 e pari, dunque non ha nodi di grado 1. Un grafo connesso senza nodi di grado 1 non è un albero, quindi deve avere almeno un ciclo. Sia = il grafo ottenuto rimuovendo da gli archi di, allora ovvero, o : = 0 = 0 che è pari oppure = che è pari per ipotesi 3 1: Se = 0 allora è un nodo isolato. Se è costituito solo da nodi isolati allora segue la tesi, altrimenti: si considera una delle componenti connesse di in cui ogni nodo ha grado pari e maggiore o uguale a 2; esiste quindi un ciclo e sia = : se è costituito da soli nodi isolati segue la tesi altrimenti si itera il ragionamento. Siano,,, i cicli disgiunti tali che =. Consideriamo : per l ipotesi di connessione esiste almeno un con almeno un nodo in comune con (con 1). Senza perdita di generalità, supponiamo che questo ciclo sia e sia, il ciclo che si ottiene concatenando con. Dal momento che è connesso allora esiste un, con 1,2, con almeno un nodo in comune con, e sia esso : iterando si otterrà un ciclo,,, contenente tutti e soli gli archi di, che è quindi un grafo euleriano.
Un grafo connesso con 2 nodi di grado dispari ammette un cammino euleriano. TEOREMA Dato un grafo connesso con 2 nodi di grado dispari, l insieme degli archi può essere partizionato in sottoinsiemi,,, ognuno dei quali induce un cammino. Indichiamo con ed con = 1,, i 2 nodi del grafo di grado dispari e costruiamo =, come segue: - è l insieme dei nodi di più nodi fittizi per = 1,, - è composto dagli archi di più 2 nuovi archi che connettono i nodi ai nodi ed è euleriano, infatti esso è connesso e tutti i nodi hanno grado pari. Sia un ciclo euleriano di. attraversa tutti i nodi di ed, in particolare, ciascun è preceduto da e seguito da. Se si eliminano da i nodi ed i 2 archi incidenti su ciascuno di essi restano esattamente cammini disgiunti sugli archi che connettono nodi di grado dispari. Inoltre questi cammini contengono tutti e soli gli archi di e da qui segue la tesi. TEOREMA Se è un grafo hamiltoniano allora è 2-connesso, ovvero per ogni coppia di nodi esistono 2 cammini distinti (sui nodi) che li connettono (condizione necessaria ma non sufficiente). TEOREMA Se è completo allora è hamiltoniano.
Sia =, orientato. è bipartito Non esistono cicli dispari (cicli con un numero dispari di archi). Sia =,, un grafo bipartito e sia un qualsiasi ciclo in. Percorrendo a partire da un qualsiasi si passa sempre da un nodo di ad un nodo di. Tutti i nodi di che si trovano in vengono visitati dopo aver attraversato un numero dispari di archi mentre quelli di in vengono visitati dopo un numero pari di archi. Ci si può quindi ritrovare in (chiusura del ciclo) solo dopo un numero pari di archi e dunque è un ciclo pari. Supponiamo di avere un grafo senza cicli dispari e supponiamo che sia connesso (se non lo è si ripete il ragionamento che segue per ogni componente connessa di ). Consideriamo un nodo qualsiasi e calcoliamo la distanza tra ed ogni altro nodo con : sia, tale distanza (numero di archi). Viene indotta su la seguente partizione: =, =, Ora bisogna dimostrare che non esistono archi da a e da a (poiché questi andrebbero a costituire un ciclo dispari in ). Mostriamo allora che = : Supponiamo per assurdo che esista un arco tra due nodi,. Siano e i due cammini minimi che collegano rispettivamente ad e a. Sia l ultimo nodo in comune ai due cammini ( può coincidere con nel caso in cui e non abbiano nodi in comune). Consideriamo il ciclo che si forma percorrendo tra ed, l arco, e tra ed. Calcoliamo la lunghezza di : =, + 1 +, dove, indica il tratto di tra e, ma =, +, =, +, ed osservando che =,, deve necessariamente essere /,,, oppure /,,, Comunque assunti, ed,, entrambi pari o entrambi dispari, risulta in una quantità dispari. Esiste un ciclo dispari e ciò contraddice l ipotesi ( senza cicli dispari); non esistono quindi archi che connettono con. Allo stesso modo si dimostra che = e dunque è bipartito.
di Konig Dato un grafo bipartito =,, max = min Ovvero, la cardinalità massima di un matching è uguale alla cardinalità minima di un vertex-cover. A partire da =,, costruiamo un nuovo grafo ottenuto orientando tutti gli archi di da a, aggiungendo due nodi, e collegandoli rispettivamente con tutti i nodi di e di. Le capacità degli archi di sono pari ad - per gli archi da a - 1 per gli archi da a e da a La dimostrazione si basa su: A. Su esiste un matching di cardinalità Su esiste un flusso ammissibile da a di valore B. Su esiste un vertex cover di cardinalità Su esiste un taglio di capacità Dimostrazione A: Dato matching di cardinalità su Su un flusso ammissibile da a di valore Dato il matching di cardinalità, poniamo ad 1 il flusso di ogni arco di e sugli archi, ed, con,. Si verifica facilmente che è un flusso ammissibile (per ogni nodo accoppiato entra ed esce una unità di flusso e le capacità sono rispettate). Dato un flusso ammissibile da a di valore su Su un matching di cardinalità Sia il valore intero del flusso. In si consideri il taglio definito da. Gli archi,, con e, attraversati dal flusso costituiscono un matching: non esistono 2 archi di questo insieme che abbiano nodi in comune (altrimenti, per come sono definite le capacità, si avrebbe una violazione della conservazione del flusso). Gli archi originali attraversati da flusso 1 costituiscono un matching di cardinalità (devono essere, infatti altrimenti non si potrebbe portare tutto da a ). Dimostrazione B: Dato un vertex cover un taglio di capacità Si consideri un vertex cover ed un insieme così definito:,, ovvero tale da contenere solo gli archi di che da conducono in. Questo insieme di archi costituisce un taglio, infatti: ogni cammino da a deve attraversare uno degli archi originali e quindi, poiché è un vertex cover, deve attraversare uno degli archi di. La capacità di è pari alla sua cardinalità, cioè. Dato un taglio di capacità un vertex cover di cardinalità = Supponiamo di avere un taglio,, di capacità. Gli archi di sono solo di capacità pari ad 1 e sono del tipo,, con, e,, con. Da si costruisce : - se, - se, Ogni arco, definisce un cammino. Poiché è un taglio si possono verificare solo 2 casi:, e, e per essi si ha comunque che oppure, rispettivamente, quindi è un vertex cover.
Siano un matching su un grafo e un cammino aumentante: la differenza simmetrica è un matching di cardinalità + 1. Sia = - Gli archi di che non appartengono a sono in - Gli archi di che non appartengono ad sono in - Gli archi di che appartengono ad vengono esclusi da è un matching: - I nodi non toccati da non sono influenzati dalla nuova situazione - Sui nodi intermedi prima incideva un arco di, ora incide un arco di - I nodi estremi di prima erano esposti, ora sono accoppiati Sia di lunghezza 2 + 1: - archi di (archi accoppiati) - + 1 archi che non appartengono ad (archi liberi) Con la differenza simmetrica gli archi liberi di entrano a far parte di, quelli accoppiati escono: = + 1.
Dato =,, un matching su è massimo Non esistono cammini aumentati. Se esiste un cammino aumentate allora si potrebbe aumentare la cardinalità del matching effettuando la differenza simmetrica. Supponiamo che non esistano cammini aumentati per ; dobbiamo allora dimostrare che è massimo. Supponiamo per assurdo che non sia massimo, allora h > Consideriamo = = h + h. Sia =,. ha solo nodi di grado minore o uguale a 2: - I nodi accoppiati sia in che in hanno grado 2 oppure 0 - I nodi in ma non in, e viceversa, hanno grado 1 - I nodi esposti in entrambi i matching hanno grado 0 Le componenti connesse di sono di 3 tipi: - Nodi isolati - Cicli pari - Cammini costituiti alternatamente da archi di e di Poiché > in ci sono più archi appartenenti ad che ad un cammino costituito da un numero di archi di superiore al numero di archi di inizia e termina con un arco di, ma questo tipo di cammino è aumentante per Ipotesi contraddetta è massimo.
Sia =, un grafo orientato e pesato sugli archi (con peso,, ) e sia =,, il grafo bipartito costruito su in modo tale che - = - =,,,, 0 Valgono per le due seguenti proprietà: 1. In c è sempre un matching perfetto di peso 0 (quello formato dagli archi, ) 2. Il matching perfetto di peso minimo in ha un valore negativo In esistono cicli negativi (idea) Supponiamo di avere in un ciclo negativo,,,,,,,, a questo ciclo si può associare in il matching =,,,,,,,,,,, A partire da un matching quindi posso costruire un ciclo.
di Hall Un grafo bipartito =,, ammette un matching X-perfetto (condizione di Hall), con =, h insieme dei vertici adiacenti ad i vertici in. Sia =, ovvero tutti i nodi di nel matching. Sia il compagno di nel matching. Sappiamo che: - assegna un unico nodo ad ogni - è iniettiva (!.. = ) Quindi si ha che = ed inoltre ed abbiamo così ottenuto di nuovo la condizione di Hall. Supponiamo che valga la condizione di Hall, cioè che Sia un vertex cover minimo di e sia =. Dalla definizione di vertex cover ogni arco di ha almeno un estremo in, possiamo quindi scrivere che quindi = = = + + = Dal momento che, per il teorema di Konig, = si ha = = : ammette un matching X-perfetto. NOTA Si utilizza la condizione di Hall soprattutto per mostrare che non esiste un matching perfetto su un grafo bipartito (condizione di Hall violata). TEOREMA Dato un grafo bipartito,,, su esiste sempre un matching stabile.