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 DFS per marcare l’appartenenza di un nodo alla corrispondente componente connessa
  • 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
  • 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
  • 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
  • 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 SPT rimangono 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
  • 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 PL veloce 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 nodo
    • BS - Backward Star
    • FS - Forward Star
  • per calcolare i cammini minimi si sfrutta la buona numerazione del grafo seguendone l’ordinamento
  • SPT acyclic
    • 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