Metodo dei tagli di Gomory
- convex hull (inviluppo convesso)
- poliedro a n dimensioni
- politopo (poliedro)
- il più piccolo insieme convesso contenente
- è sempre possibile definirlo ma può essere computazionalmente complesso
- disugualianze valide
- dominata se coefficienti primi e termine noto primo
- il convex hull può essere descritto dall’insieme di tutte le disugualianze valide non dominate di
- il numero di disugualianze può essere esponenziale e quindi non trattabile
- si può cercare di delimitare il convex hull incrementalmente con disugualianze valide per ma non
- il metodo di Gomory agisce prendendo il floor dei coefficienti creando disugualianze valide partendo da per
- si prova che aggiungendo questi tagli in un numero finito di passi si trova una soluzione intera o si raggiunge la condizione di assenza di soluzioni intere
- attualmente si integra il branch and bound con il metodo di gomory
- branch and cut
Grafi e Strutture Dati
Ricerca:
DFS- iterativamente con una pila
BFS- con una coda
Lineari nel numero di nodi e archi
- per grafi connessi il numero massimo di archi è
Proprietà topologiche
- forte connessione di un grafo orientato
- albero di copertura del grafo attraverso l’analisi dell’albero di copertura
- componenti connesse
- uso iterativo di
DFSper marcare l’appartenenza di un nodo alla corrispondente componente connessa
- uso iterativo di
- la partizione di archi nell’albero di copertura è utile per ottenere algoritmi efficienti che individuano proprietà topologiche
- grafo aciclico
- certificare l’esistenza di un cammino
Cammini Minimi
- Shortest Path Tree (
SPT)- si rappresenta la soluzione come albero dei padri (predecessori)
- inizializzato a un albero fittizio con tutti i nodi figli della radice
- etichette inizializzate a valore molto alto
- si rappresenta la soluzione come albero dei padri (predecessori)
- condizioni di Bellman
- caratterizzazione matematica della soluzione
- algoritmicamente si selezionano archi che violano le c. di B. e quindi migliora l’etichetta di distanza del cammino
- soluzione ammissibile
- composta da cammini da a
- occorre che ogni nodo sia raggiungibile da
- in presenza di cicli di costo negativo non esiste soluzione con ottimo limitato
- una soluzione ammissibile è un albero di copertura del grafo
Algoritmi con estrazione del nodo di etichetta minima
- Dijkstra
- coda di priorità come lista non ordinata
- per pesi positivi complessità polinomiale, ogni nodo viene estratto una e una sola volta
- complessità
- Johnson
- coda di priorità con uno heap
- complessità polinomiale similmente a Dijkstra
- operatori heap
- complessità
- Bellman-Ford-Moore (
BFM)- coda come queue
- logica della visita in ampiezza
- complessità polinomiale
- coda come queue
- utilizzando una pila la complessità diventa superpolinomiale
- nel caso pessimo l’estrazione di un nodo e l’aggiornamento della sua etichetta determina l’inserimento di tutti i nodi più grandi
- Pape-D’Esopo
- dequeue
- double ended queue
- ogni nodo la prima volta inserito in coda e altrimenti in testa
- complessità superpolinomiale
- caso di efficienza
- uno dei più efficienti su grafi per grafi sparsi e planari
- i.e. reti stradali
- grafo planare: su un piano gli archi non si incrociano/sovrappongono
- uno dei più efficienti su grafi per grafi sparsi e planari
- dequeue
- grafi sparsi e densi:
- sparsi
- Dijkstra ~
- Johnson ~
BFM~
- densi
- Dijkstra ~
- Johnson ~
BFM~
Numero minimo di hop
- i.e. il grafo modella una rete di telecomunicazione
- router (nodi), passaggio di pacchetti (archi)
- hop numero di nodi attraversati
- numero di archi -1
- costi fissati a 1
- distanze come numero minimo di hop
- condizioni
SPTrimangono invariate
Portata massima
- i.e. il grafo modella una rete di telecomunicazione
- arco rappresenta la possibilità di trasferire pacchetti
- ogni arco ha una portata massima
- la portata complessiva del cammino viene limitata da quella minima
- etichette massima portata (arco con minimo) del cammino da a
- condizioni
SPT
Ottimizzazione su Rete
- problemi:
- cammino di costo minimo
- flusso di una unità
- flusso massimo
- flusso di costo minimo
- cammino di costo minimo
- risolvibili con
PL- ma esistono algoritmi specializzati ad hoc + efficienti
Questa formulazione del problema permette:
- verifica della complessità
- analizzare la relazione con il problema duale
- gestire varianti più complesse del problema aggiungendo altri vincoli
La matrice :
- modella il grafo come matrice di incidenza nodi-archi
- i nodi sono attraversati dal flusso (in = out)
- punti di immissioni (in < out)
- punti di uscita (in > out)
Conservazione del flusso al nodo :
- nodo di transito
- nodo sorgente (in < out)
- nodo pozzo (in < out)
La matrice è totalmente unimodulare, quindi se il vettore è intero le soluzioni del problema saranno intere anche definendo continue
- quindi problema
PLveloce da risolvere con il simplesso
Il primale:
- una unità di flusso esce dal nodo e giunge a
- per l’albero dei cammini minimi
Il duale:
Forma estesa:
- è detto potenziale
Il duale conferma che valgono le condizioni di Bellmann per l’ottimo
- la soluzione duale ammissibile nel primale è l’ottimo
Grafo Aciclico
- consideriamo un grafo orientato, aciclico, pesato
- enumerando i nodi si verifica la aciclicità
- buona numerazione
- si definiscono gli archi entranti (
BS) e uscenti (FS) per un nodoBS- Backward StarFS- Forward Star
- per calcolare i cammini minimi si sfrutta la buona numerazione del grafo seguendone l’ordinamento
SPTacyclic- gli archi sono esaminani una sola volta
Cicli negativi
- rendono inutilizzabili gli algoritmi visti
- ma è facilmente verificabile se si è entrati in un ciclo negativo e fermarsi