D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Algoritmo di Christofides

  1. Cos'è il TSP metrico?
  2. Perché si può definire α-approssimato?
  3. Perché la soluzione dell'algoritmo può essere di ordine 2-approssimato
  4. Algoritmo Christofides

1) Il TSP metrico è quella classe di problemi TSP che dato un grafo G(V,E) non orientato, completo, con costi c sugli archi, se cuv > 0 ∀ u,v ∈ E e cuv = 0 se e solo se u = v, allora c è tale che per ogni tripla di nodi distinti u,v,z si ha cuv ≤ cuz + czv [disuguaglianza triangolare]; si dice che c induce una metrica.

2) Per un problema di ottimizzazione Q: min {c(F): F ∈ S} = ν(Q), come possiamo definire la qualità della soluzione prodotta da un algoritmo? Sia A un algoritmo che garantisce un'approssimazione α (ossia α-approssimato) se c(F) ≤ α ν(Q).

3) Dato un grafo G(V,E) non orientato, completo, con costi C dati da una semimetrica, l’algoritmo di Christofides trova un ciclo hamiltoniano di costo al più doppio rispetto al ciclo di costo minimo: trova un albero ricoprente T di G; raddoppia ogni arco di T così da trovare un grafo euleriano; costruisce un ciclo euleriano e di questo grafo; sceglie un nodo iniziale U in E e visita E a partire da U; costruisce una permutazione π dei nodi V ; restituisce il ciclo hamiltoniano H associato a π.

4) Th 2: Sia H# il ciclo hamiltoniano di costo minimo e sia H il ciclo ritornato dall’algoritmo di Christofides. Allora c(H) ≤ 2c(H#)

Dimostra: E è ottenuto da T* raddoppiando gli archi (c(E) = 2 c(T*)); H è ottenuto da E saltando forse anche qualche nodo (c(H) ≤ c(E) = 2 c(T*)). Sappiamo da un altro teorema che c(T*) ≤ c(H#) quindi c(H) ≤ 2 c(T*) ≤ 2 c(H#). L’algoritmo di Christofides è quindi 2-approssimato.

max Yt

Yv - Yu ≤ cuv   ∀ uv ∈ A

-Ys = 0

3) Teorema F3 (Ammissibilita' Duale): Il problema duale ammette soluzioni (primal non è illimitato) se e solo se il grafo G(N, A) non ha cicli orientati di costo totale negativo.

Dimostraz. Se: sia Pu* il cammino minimo da s ad un generico u ∈ N - {s}. Ponendo Yv = c(Pv*): se Y'v - Y'u ≤ cuv Y' è una soluzione duale, se invece Y'v - Y'u > cuv ⇒ c(Pv*) - c(Pu*) > cuv ⇒ c(Pv*) > c(Pu*) + cuv

Se V ≠ P* ⇒ P' è un cammino con c(P'u) = c(Pu*) + cuv < c(c(Pv*)) ⇒ contraddizione!

Quindi V ∈ Pu*!

Detto P'il sotto-cammino di Pu* da v a u:

C = P' ∪ {uv} è un ciclo.

c(Pv*) > c(Pv) + c(P') + cuv ⇒ 0 > c(P') + cuv = c(C) ciclo negativo!

Dimostraz. solo se: Supponiamo per assurdo che C = (1, 12, 2, ..., k, k', 1) sia un ciclo di G(N, A) con costo totale c(C) negativo. Poiché Y' è soluzione duale abbiamo che 0 ≤ c(C) < 0 che è una contraddizione!

Localizzazione di Impianti

  1. Definire il problema di localizzazione di impianti.
  2. Descrivere la formulazione forte e la formulazione debole.
  3. Spiegare come si possono risolvere e che caratteristiche hanno.
  4. Spiegare un possibile meccanismo di generazione vincoli.

1) Il problema detto di localizzazione di impianti rientra nella classe dei problemi di distribuzione: bisogna trasportare beni da una o più origini a una o più destinazioni, minimizzando il costo di trasporto e rispettando vincoli quali la capacità dei veicoli, la raggiungibilità delle destinazioni.

Si ha l’insieme I di m clienti da servire e l’insieme J di n impianti che posso attuare. L’impianto j costa fj, il collegamento i-j costa cij: si vogliono minimizzare le spese.

La soluzione ammissibile deve rispettare dei vincoli: un cliente può essere assegnato ad un impianto solo se esso è attivato (yj ≤ xj). Ogni cliente deve essere assegnato ad un solo impianto ( Σjyij = 1 ).

Il modello del problema quindi prende la forma di:

min Σj fjxj + Σj Σi cijyij

Σj yij = 1 ,   xj - yij ≥ 0

yij ∈ {0,1},   xj ∈ {0,1},   i ∈ I   j ∈ J

Si tratta di un problema della classe NP, per risolverlo serve il suo rilassamento lineare (LP).

2) Dal rilassamento lineare si ottiene la formulazione forte che modifica il vincolo xj - yij ≥ 0 in: Σi yij ≤ |I|xj, cioè la somma sui clienti dei vincoli di attivazione, e pone poi yij ≥ 0   xj ≥ 0.

3)

L = P0 , Xo indefinito, UB = +∞

L = Ø ?

Sì : Xo è l'ottimo X* cercato e STOP

No : scegli Pi ∈ L → calcola LBi e X(Si) con rilass.

LBi < UB?

Sì → X(Pi) intero?

Sì → aggiorna UB := LBi e Xo := X(Pi)

4)

Inizializzo L = P0, Xo indefinito e UB = +∞: se L = Ø allora Xo è l'ottimo X* che cercavo e mi fermo; se L ≠ Ø scelgo un Pi ∈ L e mi calcolo LBi e X(Si) con il rilassamento: LBi < UB? Se no faccio "branching" L = L ∪ { Pi+1 , Pi+2 } e ricomincio; se sì allora: X(Pi) intero? Se sì aggiorno UB = LBi e Xo = X(Pi) e riparto da analizzare L = Ø?

5)

Bisogna operare delle scelte come Pi ∈ L; quello con il minimo lower bound, o il LIFO, o il FIFO. La scelta di Xk: la variabile più intera? Più frazionaria? O seguire un ordine predefinito? Non esiste una scelta che sia la migliore per tutti i problemi.

RICERCA LOCALE CON INTORNI ESPONENZIALI PER TSP

  1. Definire l'euristica di Ricerca Locale
  2. Commentare l'importanza della scelta del sistema di Intorni
  3. Spiegare in cosa consiste l'intorno di "ASSIGN" per il TSP
  4. Illustrare dettagliatamente come risolvere un problema di TSP usando tale tipo d'intorno.

1) L'euristica di Ricerca Locale è un'euristica migliorativa, ossia ha bisogno di una soluzione di partenza, per questo viene solitamente effettuata dopo un greedy (tecnica che a partire dall'insieme vuoto aggiunge ad ogni passo l'elemento che produce una soluz. parziale di minimo costo).

La Ricerca Locale, a partire da una soluzione ammiss. T0, vuole costruire una sequenza di soluz. ammiss. T0, T1, T2, ... individuando al passo k la soluzione di minimo costo Tk appartenente all'intorno H(Tk-1) della soluzione corrente Tk-1, e arrestandosi quando ogni valore appartenente a H(Tk-1) ha un valore peggiore della funzione obiettivo, ovvero c(Tk-1) < c(Tk).

2) Gli intorni sono fondamentali: se costituiti da pochi elementi generarli ed esaminarli è veloce, ma si hanno basse possibilità di miglioramento; se costituiti da molti elementi si hanno buone possibilità di miglioramento ma generarli ed esaminarli è più costoso. Ogni iterazione dell'algoritmo LS consiste nel risolvere un problema di ottimizz. locale, ossia un problema con insieme delle soluz. ammiss. più piccolo.

Dettagli
Publisher
A.A. 2019-2020
36 pagine
SSD Scienze matematiche e informatiche MAT/05 Analisi matematica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher RayGiulls di informazioni apprese con la frequenza delle lezioni di Ottimizzazione combinatoria e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Bruni Renato.