Algoritmo basato su cancellazione di cicli

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmo basato su cancellazione di cicli"

Transcript

1 Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile x ridistribuendo il flusso (che soddisfa i bilanci ai nodi) mediante un ciclo aumentante C di costo negativo : la quantità di flusso ridistribuita è pari alla capacità θ(c, x) del ciclo rispetto al flusso ammissibile x : il nuovo flusso determinato è un flusso ammissibile di costo inferiore.

2 L operazione di far circolare sugli archi di C un flusso pari a θ(c, x) (= saturare un ciclo aumentante C) è detta cancellazione del ciclo perché tale ciclo non è più aumentante per il flusso x(θ) ; tale ciclo può però tornare ad essere aumentante per flussi generati successivamente. L algoritmo termina quando non esistono più cicli aumentanti di costo negativo: il flusso ammissibile corrente è di costo minimo.

3 Procedure Cancella-Cicli (G, c, b, u, x, caso) : begin if Flusso -Ammissibile(G, c, b, u, x) then begin while Trova-Ciclo (G, c, u, x, C, θ) do Cambia-Flusso (x, C, θ) ; caso := ottimo end else caso := vuoto end.

4 Determinazione di un flusso ammissibile iniziale (procedura Flusso-Ammissibile) Si risolve un problema di flusso massimo con più sorgenti j S e più pozzi i T aventi capacità finita u j = b j, j S, e u i = b i, i T si determina cioè la massima quantità di flusso che può essere immessa nella (prelevata dalla) rete

5 Ciò è fatto determinando il MF sul grafo ampliato G = (N, A ) N = N {s, t} s e t sono la super-sorgente ed il super-pozzo A = A {(s, j) : j S} {(i, t) : i T} gli archi che collegano la super-sorgente ai nodi di S = {j : b j < 0} hanno capacità u sj = b j ; gli archi che collegano i nodi di T = {i : b i > 0} al super-pozzo hanno capacità u it = b i ;

6 Se il flusso massimo satura tutte le sorgenti (tutti gli archi (s, j)) e, di conseguenza, tutti i pozzi (tutti gli archi (i, t)), allora il flusso è ammissibile per il problema del flusso di costo minimo ; altrimenti non esistono flussi ammissibili La procedura Flusso-Ammissibile restituisce vero ed il flusso x, se esiste un flusso ammissibile falso, altrimenti

7 Determinazione di un ciclo di costo negativo aumentante rispetto al flusso ammissibile x (procedura Trova-Ciclo) Determinare un ciclo aumentante di costo negativo in G rispetto ad x è equivalente a determinare un ciclo orientato e di costo negativo nel grafo residuo G(x) Si utilizza l algoritmo SPT.L in cui Q è implementato come fila per determinare sul grafo residuo G(x) l albero dei cammini minimi con insieme di radici R = N : si considera, cioè, il grafo residuo ampliato G (x), ottenuto aggiungendo una radice fittizia r un arco (r, j), di costo c rj = 0, per ogni nodo j N

8 In assenza di cicli negativi, l algoritmo SPT.L con Q gestito come fila non può estrarre lo stesso nodo da Q più di n volte : si conta perciò il numero di estrazioni da Q di ciascun nodo. Se un nodo viene estratto per l n-esima volta, quel nodo appartiene ad un ciclo negativo, che viene individuato per mezzo del vettore p dei predecessori, percorrendo il ciclo all indietro a partire dal nodo estratto n volte. Se, invece, SPT.L con Q implementato come fila determina un albero dei cammini minimi, si ha la prova che il flusso x è ottimo.

9 Determinazione di un ciclo di costo negativo aumentante rispetto al flusso ammissibile x (procedura Trova-Ciclo) in questo caso restituisce vero ed il ciclo individuato C, con il suo verso e la sua capacità θ = θ(c, x), altrimenti restituisce falso. È dimostrato che il problema di determinare un ciclo aumentante di costo negativo in G rispetto ad x è equivalente al problema di determinare un ciclo orientato e di costo negativo in G x. Il problema diventa: come determinare un ciclo orientato e di costo negativo in G x?

10 La procedura Trova-Ciclo restituisce vero e il ciclo C con il suo verso e la sua capacità θ = θ(c, x), se il ciclo negativo aumentante esiste falso, altrimenti Una volta determinato il ciclo C ed il valore θ, la procedura Cambia-Flusso costruisce il nuovo flusso x(θ) = x θ C. L algoritmo basato sulla cancellazione di cicli è un algoritmo di ricerca locale : l intorno di x è dato da tutti i flussi ottenibili da x inviando flusso lungo un ciclo aumentante semplice.

11 Risolvere il seguente problema di flusso di costo minimo con l algoritmo per cancellazione di cicli (6, ) (, ) (7, ) (0, 0) b (0, 0) = 0 b = 0 (u b i i ij,c ij ) (, ) j (4, ) 4 (, 6) b = b = b 4 = 0

12 Una soluzione ammissibile iniziale, facilmente individuabile, è il seguente flusso ammissibile x x b i ij, (u ij, c ij ) i 0, (, ) 0, (7, ) 0, (6, ) 0, (0, 0) b = 0 0, (0, 0) b = 0 j 0, (, ) 0, (4, ) 4 0, (, 6) Costo del flusso x : c x + c x = 00

13 determinare un ciclo aumentante di costo negativo in G rispetto ad x è equivalente a determinare un ciclo orientato di costo negativo nel grafo residuo G(x ): (, ) (7, ) (6, ) (u b i i ij, c ij ) b = 0 (0, 0) (0, 0) b = 0 j (, ) (4, ) 4 (, 6)

14 (, ) (7, ) (6, ) (u b i i ij, c ij ) b = 0 (0, 0) (0, 0) b = 0 j (, ) (4, ) 4 (, 6) Costo c(c) del ciclo C : costo dell invio di un unità di flusso lungo C c ( C) = ( i, j ) c ij C = = Capacità θ(c, x ) del ciclo C rispetto al flusso x : min {,, 0, 0} =

15 Il nuovo flusso ammissibile x è 0, (, ) 0, (7, ) 0, (6, ) 8, (0, 0) b = 0 8, (0, 0) x b i i ij, (u ij, c ij ) b = 0 j, (, ) 0, (4, ) 4, (, ) Costo del flusso x : 00 = 74

16 ? = esiste in G un ciclo aumentante rispetto ad x di costo negativo? Per rispondere a questa domanda cerchiamo un ciclo orientato di costo negativo nel grafo residuo G(x ) : (, ) (7, ) (, 0) (, 0) b = 0 (8, 0) (8, 0) (, ) (4, ) 4 (6, ) (, 6) (, 6) (u b i i ij, c ij ) b = 0 j

17 (, ) (7, ) (, 0) (, 0) b = 0 (8, 0) (8, 0) (, ) (4, ) 4 (6, ) (, 6) (, 6) (u b i i ij, c ij ) b = 0 j Costo c(c) del ciclo C : costo dell invio di un unità di flusso lungo C c ( C) = ( i, j ) c ij C = = Capacità θ(c, x ) del ciclo C rispetto al flusso x : min {8, 4, } =

18 Il nuovo flusso ammissibile x è 0, (, ) 0, (7, ) 0, (6, ) 8, (0, 0) b = 0, (0, 0) x b i i ij, (u ij, c ij ) b = 0 j, (, ), (4, ) 4, (, 6) Costo del flusso x : 74 = 7

19 ? = esiste in G un ciclo aumentante rispetto ad x di costo negativo? Cerchiamo un ciclo orientato di costo negativo nel grafo residuo G(x ) : (, ) (7, ) (, 0) (, 0) b = 0 (8, 0) (, 0) (, ) 4 (, ) (, ) (6, ) (, 6) (u b i i ij, c ij ) b = 0 j

20 (, ) (, 0) (, 0) b = 0 (8, 0) (, 0) (, ) (7, ) 4 (, ) (, ) (6, ) (, 6) (u b i i ij, c ij ) b = 0 j Costo c(c) del ciclo C : costo dell invio di un unità di flusso lungo C c ( C) = ( i, j ) c ij C = = Capacità θ(c, x ) del ciclo C rispetto al flusso x : min {, 6,, 8} =

21 Il nuovo flusso ammissibile x 4 è, (, ) 0, (7, ), (6, ) 6, (0, 0) b = 0, (0, 0) x b i i ij, (u ij, c ij ) b = 0 j, (, ), (4, ) 4, (, 6) Costo del flusso x 4 : 7 = 47

22 ? = esiste in G un ciclo aumentante rispetto ad x 4 di costo negativo? Cerchiamo un ciclo orientato di costo negativo nel grafo residuo G(x 4 ) : (, ) (4, 0) (7, 0) b = 0 (6, 0) (, 0) (, ) (7, ) 4 (, ) (4, ) (, ) (, ) (, 6) (u b i i ij, c ij ) b = 0 j

23 (, ) (4, 0) (7, 0) b = 0 (6, 0) (, 0) (, ) (7, ) 4 (, ) (4, ) (, ) (, ) (, 6) (u b i i ij, c ij ) b = 0 j Costo c(c) del ciclo C : costo dell invio di un unità di flusso lungo C c ( C) = ( i, j ) c ij C = = 4 Capacità θ(c, x 4 ) del ciclo C rispetto al flusso x 4 : min {4,, 7} =

24 Il nuovo flusso ammissibile x è, (, ), (7, ), (6, ) 6, (0, 0) b = 0 0, (0, 0) x b i i ij, (u ij, c ij ) b = 0 j, (, ), (4, ) 4, (, 6) Costo del flusso x : 47 4 =

25 ? = esiste in G un ciclo aumentante rispetto ad x di costo negativo? Cerchiamo un ciclo orientato di costo negativo nel grafo residuo G(x ) : (, ) (4, 0) (0, 0) b = 0 (6, 0) (, ) (, ) (4, ) 4 (, ) (, ) (, ) (, ) (, 6) (u b i i ij, c ij ) b = 0 j

26 (, ) (4, 0) (0, 0) b = 0 (6, 0) (, ) (4, ) 4 (, ) (, ) (, ) (, ) (, ) (, 6) (u b i i ij, c ij ) b = 0 j Costo c(c) del ciclo C : costo dell invio di un unità di flusso lungo C c ( C) = ( i, j ) c ij C = 6 + = Capacità θ(c, x ) del ciclo C rispetto al flusso x : min {,,, 4} =

27 Il nuovo flusso ammissibile x 6 è, (, ) 4, (7, ) 6, (6, ) 6, (0, 0) b = 0 0, (0, 0) x b i i ij, (u ij, c ij ) b = 0 j, (, ), (4, ) 4 4, (, 6) Costo del flusso x 6 : =

28 ? = esiste in G un ciclo aumentante rispetto ad x 6 di costo negativo? Cerchiamo un ciclo orientato di costo negativo nel grafo residuo G(x 6 ) : (, ) (4, 0) (0, 0) b = 0 (6, 0) (, ) (, ) 4 (4, ) (, ) (, ) (6, ) (, 6) (4, 6) (u b i i ij, c ij ) b = 0 j

29 L algoritmo di Bellman determina su G(x) un albero dei cammini minimi, anziché un ciclo orientato di costo negativo : d = 8 d 0 = 9 d = d = 0 6 d 4 = Non esistendo cicli orientati di costo negativo su G(x), non esistono cicli aumentanti rispetto ad x di costo negativo su G, quindi il flusso x è un flusso di costo minimo.

30 Problemi di accoppiamento Dati : G = ( O D, A ) : grafo bipartito non orientato bipartito: l insieme dei nodi è partizionato in due sottoinsiemi O = {,, n } : insieme dei nodi origine D = { n +,, n + d } : insieme dei nodi destinazione si può supporre, senza perdita di generalità, che n d : infatti, essendo il grafo non orientato, se n > d è sufficiente scambiare tra loro i ruoli dei nodi. A O D, con A = m : insieme degli archi c ij : costo di attraversamento dell arco (i, j) A (non presente nel problema di accoppiamento di massima cardinalità)

31 Esempio O = {,, 4} D = {,, 8} A = { (, ), (, 6), (, 8), (, ), (, 8), (, 6), (4, 6), (4, 7), (4, 8) } Convenzione: nell arco non orientato (i, j) i O e j D

32 Accoppiamento (matching) M : sottoinsieme di archi (M A) che non hanno nodi in comune (su ogni nodo incide al più un arco di M ) Rispetto ad un accoppiamento M l arco (i, j) è detto interno se (i, j) M l arco (i, j) è detto esterno se (i, j) A \ M un nodo si dice accoppiato se su esso incide un arco di M un nodo si dice esposto se su esso non incide alcun arco di M O M ( O) : insieme dei nodi origine esposti D M ( D) : insieme dei nodi destinazione esposti

33 Cardinalità dell accoppiamento M ( M ) : è il numero degli archi appartenenti a M Se O = D (n = d), si dice accoppiamento perfetto (o assegnamento) l accoppiamento M in cui nessun nodo è esposto ( M = n)

34 Accoppiamento : M = { (, ), (, 6), (4, 7) } O M = { } D M = { 8 } Assegnamento (accoppiamento perfetto) M = {(, 8), (, ), (, 6), (4, 7) } 6 O M = D M = 7 4 8

35 In presenza di costi di attraversamento degli agli archi, si definisce Costo C(M) dell accoppiamento M : somma dei costi degli archi di M Se M =, si pone per definizione C(M) = 0 In un accoppiamento M ( ) : arco bottleneck di M : arco (i, j) M di costo massimo valore bottleneck di M : valore V(M) = max { c ij : (i, j) M }

36 Considereremo i seguenti problemi: accoppiamento di massima cardinalità : determinare un accoppiamento di massima cardinalità in G assegnamento di costo minimo : determinare un accoppiamento perfetto di costo minimo in G con O = D accoppiamento di massima cardinalità bottleneck : determinare un accoppiamento di massima cardinalità in G che abbia valore bottleneck minimo (ossia che minimizzi il valore bottleneck di M)

37 Accoppiamento di massima cardinalità Equivalente al problema di flusso massimo con più sorgenti e più pozzi r r sul grafo orientato G = N, A ottenuto da G ( ) assegnando l orientamento da i a j all arco non orientato (i, j) A (i O e j D) ( ) grafo G = (N, A) grafo G = N, A r r

38 Dati del problema di flusso massimo con più sorgenti e pozzi su G r sorgenti: nodi dell insieme O ( b = i, i O ) pozzi: nodi dell insieme D ( b j =, j D ) ogni arco (i, j) ha capacità superiore u ij =

39 Equivalente al problema di flusso massimo da s a t r r sul grafo orientato ampliato G' = N', A' dove ( ) r r N' = N U, { s, t } e A' = A U { ( s, i) i O, ( j t) j D } r r r ossia è ottenuto dal grafo orientato ( r G' = N', A' G = N, A) aggiungendo ( ) una super sorgente s, collegata a tutti i nodi i di O da archi di capacità unitaria u si = un super pozzo t collegato a tutti i nodi di D da archi di capacità unitaria u jt =

40 r grafo G' = r ( N', A' ) s 6 7 t 4 8 u ij = (i, j) A u si = i O u jt = j D

41 Il problema dell accoppiamento di massima cardinalità in G può essere risolto calcolando il MF (con più sorgenti e pozzi) in perché G r l insieme degli archi saturi in un flusso ammissibile (intero) x in G r forma un accoppiamento M in G di cardinalità pari al valore v del flusso da un accoppiamento M si costruisce un flusso ammissibile

42 grafo G r ' con flusso ammissibile di valore v = grafo G con accoppiamento M, M = 6 6 s 7 t

43 Corrispondenza biunivoca tra cammini aumentanti sug r e cammini alternanti aumentanti su G Un cammino alternante aumentante su G è un cammino che parte da un origine esposta termina in una destinazione esposta Poiché in G non esistono archi che collegano coppie di nodi origine o coppie di nodi destinazione, i nodi di un cammino su G appartengono alternativamente a O e a D : per andare da un nodo in O ad un nodo in D si percorre un arco vuoto in G r (non appartenente ad M in G) per andare da un nodo in D ad un nodo in O si percorre un arco saturo ing r (appartenente ad M in G)

44 Quindi un cammino aumentante su G r rispetto al flusso x corrisponde ad un cammino formato da archi esterni ed archi interni rispetto all accoppiamento M, detto cammino alternante aumentante su G rispetto ad M. Un cammino alternante P su G è aumentante se, detti P E = P \ M l insieme degli archi esterni di P P I = M P l insieme degli archi interni di P si ha P E P I =, ossia gli archi esterni sono esattamente uno in più di quelli interni.

45 grafo G con accoppiamento M Grafo G r con flusso x origine esposta : nodo destinazione esposta : nodo 7 archi sottili : vuoti (x ij = 0) archi in grassetto : saturi (x ij = )

46 Grafo G r con flusso x G r ( x) Grafo residuo associato al flusso x archi sottili : vuoti (x ij = 0) archi in grassetto : saturi (x ij = )

47 cammino aumentante sul grafo residuo G r x associato al flusso x ( ) cammino alternante aumentante su G rispetto all accoppiamento M

48 La capacità di un cammino (alternante) aumentante è sempre (non deve essere calcolata) Detti P un cammino aumentante su G r e P il corrispondente cammino alternante aumentante su G l operazione di composizione x = x P corrisponde a M := M P = (M \ P I ) P E ossia a togliere da M gli archi interni di P ed aggiungere quelli esterni di P Siccome P E = P I +, si ha che M P = M + (e ciò corrisponde al fatto che il nuovo flusso x ha valore v = v + )

49 Applicando l operazione di composizione M P all accoppiamento M = {(, 6), (, ), (4, 8)} e al cammino alternante aumentante P = {(, 6), (6, ), (, ), (, ), (, 8), (8, 4), (4, 7) } si ottiene il nuovo accoppiamento M = {(, ), (, 8), (, 6), (4, 7)} che corrisponde al flusso che si ottiene dal flusso x associato ad M inviando un unità di flusso lungo il cammino aumentante P corrispondente a P Sulla base di queste osservazioni si costruisce una versione specializzata dell algoritmo Cammini-Aumentanti per risolvere il problema dell accoppiamento di massima cardinalità

50 Algoritmo Accoppiamento-MaxCard Procedure Accoppiamento-MaxCard(O, D, A, M) : begin M := ; while Cammino-Aumentante(O, D, A, M, P) do Cambia-Accoppiamento(M, P) end.

51 Inizializzazione : M := (corrisponde al flusso iniziale x = 0) Procedura Cammino-Aumentante : determina, se esiste, un cammino alternante aumentante su G rispetto all accoppiamento M si effettua una visita del grafo bipartito G che parte dai nodi di O M e visita alternativamente archi esterni e interni : alla fine della visita non si è raggiunto alcun nodo in D M : non esistono cammini aumentanti e l accoppiamento M è di massima cardinalità: (ciò accade sicuramente quando O M =, ossia un accoppiamento di massima cardinalità è già stato prodotto)

52 Se invece viene determinato un cammino alternante aumentante P, viene invocata la procedura Cambia-Accoppiamento che realizza l operazione di composizione M P; tale operazione è analoga alla Aumenta-Flusso dell algoritmo Cammini-Aumentanti, anche se più semplice.

53 Complessità di Accoppiamento-MaxCard È O(mn), qualunque sia il modo in cui è implementata la visita : infatti complessità della generica procedura Cammini-Aumentanti : O(mnU) in questo caso U = In effetti, è immediato verificare che la procedura termina dopo al più n iterazioni, ognuna delle quali richiede una visita del grafo e quindi costa O(m).

54 Assegnamento a costo minimo Equivalente al problema di flusso di costo minimo sul grafo orientato G r con i seguenti dati : ogni nodo in O immette un unità di flusso ogni nodo in D preleva un unità di flusso le capacità degli archi sono unitarie i costi degli archi sono quelli del problema di assegnamento

55 Trasformazione in un problema di MCF 4 6 6,, 4, 6,,, , 7, 4, 4 8

56 È possibile specializzare gli algoritmi per il problema MCF al caso particolare del problema dell assegnamento di costo minimo. Il cammino di costo minimo, aumentante rispetto allo pseudoflusso x, da un nodo con eccesso di flusso ad un nodo con difetto di flusso determinato dall algoritmo dei cammini minimi successivi corrisponde, nel problema dell assegnamento di costo minimo, a determinare il cammino alternante aumentante di costo minimo rispetto all accoppiamento corrente M

57 Per fare questo si utilizza il grafo ausiliario G M = (N, A M ) con A M = { (j, i) : (i, j) M } { (i, j) : (i, j) A\M } dove agli archi di G M sono associati i costi c ij c = c G M è il grafo residuo ij ij se se ( i, j) A ( j, i) M G r ( x) per lo pseudoflusso x corrispondente all accoppiamento M \ M

58 Un cammino orientato P st da un nodo s O M ad un nodo t D M corrisponde ad un cammino alternante aumentante P e viceversa; per costruzione, il costo C (P st ) di P st in G M è uguale al costo C(P) di P C ( P) = ( i, j ) P ( i, j ) c ij c E P I ij Inviare un unità di flusso lungo un cammino aumentante corrisponde ad applicare l operazione di composizione M = M P : è facile verificare che risulta C(M ) = C(M) + C(P).

59 Procedure Assegnamento-MinCost(O, D, A, c, M) : begin M = ; while Cammino-AA-Minimo(G M, P) do Cambia-Accoppiamento(M, P, O M, D M, G M ) end.

60 Inizializzazione : M = (accoppiamento iniziale vuoto) corrisponde al flusso iniziale x = 0 che è sicuramente minimale perché il grafo residuo, essendo bipartito, non contiene cicli orientati nemmeno in presenza di costi negativi. Procedura Cammino-AA-Minimo : cerca di determinare un cammino alternante aumentante di costo minimo tra un nodo s O M ed un nodo t D M : costruisce un albero di cammini minimi con insieme di nodi radice O M per G M, col relativo vettore di etichette d e seleziona un nodo t D M (ad esempio, quello con etichetta d t minore)

61 Cammino-AA-Minimo restituisce vero se ha determinato il cammino desiderato falso se O M = (non esistono nodi esposti in O) se t O M d t = (t non è connesso ad alcun nodo di O M )

62 Procedura Cambia-Accoppiamento : esegue l operazione di composizione tra l accoppiamento M corrente ed il cammino P aggiorna gli insiemi dei nodi esposti, O M e D M, ed il grafo ausiliario G M associato al nuovo accoppiamento. Quando l algoritmo termina, se M = O = D allora si è determinato un assegnamento di costo minimo, altrimenti non esistono accoppiamenti perfetti in G.

63 accoppiamento M corrente corrispondente grafo ausiliario G M

64 L albero dei cammini minimi con insieme di radici R = O M = {, 4 }, con le relative etichette ottime ai nodi, è cammini minimi : { (4, 8), (8, ), (, ) } { (4, 6) } { (4, 8), (8, ), (, ), (, ), (, 7) } { (4, 8) } Essendo D M = {6, 7}, si pone t = 6 poiché d(6) = < 7 = d(7), selezionando così il cammino alternante aumentante P = { (4, 6) }

65 Nuovo accoppiamento M = M P = {(, ), (, 8), (4, 6)}, di cardinalità e costo C(M ) = C(M) + C(P) = + =

66 grafo ausiliario G M corrispondente all accoppiamento M

67 Albero dei cammini minimi cammini minimi : { (, 8), (8, ), (, ) } { (, 8), (8, ), (, ), (, ), (, 6) } { (, 8), (8, ), (, ), (, ), (, 7) } { (, 8) } Essendo D M = { 7 }, il cammino alternante aumentante di costo minimo è P = {(, 8), (, 8), (, ), (, ), (, 7)}, con C(P ) = d(7) = 0

68 M = M P = = {(, ), (, 8), (4, 6)} \ {(, 8), (, )} {(, 8), (, ), (, 7)} = {(, 7), (, ), (, 8), (4, 6)} di costo C(M ) = C(M ) + c(p ) = 8 +0 = Assegnamento ottimo

69 Correttezza di Assegnamento-MinCost : deriva direttamente dalla correttezza della procedura Cammini-Minimi-Successivi per il problema del flusso di costo minimo Complessità di Assegnamento-MinCost : O(mn ), dove n è il massimo numero di iterazioni, se Cammino-AA-Minimo è implementata utilizzando l algoritmo SPT.L in cui Q è implementato come fila

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi : Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Problema del cammino minimo

Problema del cammino minimo Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte

Dettagli

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli. ESERCIZIO 1 Sia dato il grafo orientato in Figura 1. Si consideri il problema di flusso a 1 2 4 Figura 1: costo minimo su tale grafo con b 1 = 4 b 2 = 2 b = b 4 = e c 12 = 2 c 1 = 4 c 14 = 1 c 2 = 1 c

Dettagli

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema Compito di Ricerca Operativa II Esercizio ( punti). ia dato il problema di flusso massimo sulla rete in figura (le capacit a degli archi sono riportate sopra di essi). 0 8 i consideri il seguente flusso

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

Algoritmi e Strutture di Dati (3 a Ed.) Algoritmo dei tre indiani. Alan Bertossi, Alberto Montresor

Algoritmi e Strutture di Dati (3 a Ed.) Algoritmo dei tre indiani. Alan Bertossi, Alberto Montresor Algoritmi e Strutture di Dati ( a Ed.) Algoritmo dei tre indiani Alan Bertossi, Alberto Montresor Vediamo a grandi linee un algoritmo proposto da Kumar, Malhotra e Maheswari (978) come raffinamento di

Dettagli

Gestione della produzione e della supply chain Logistica distributiva

Gestione della produzione e della supply chain Logistica distributiva Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra

Dettagli

Flusso a Costo Minimo

Flusso a Costo Minimo Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Flusso a Costo Minimo Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria Dal

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso Claudio Arbib Università di L Aquila Ricerca Operativa Reti di flusso Sommario Definizioni di base Flusso di un campo vettoriale Divergenza Integrale di Gauss-Greene Flusso in una rete Sorgenti, pozzi

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

età (anni) manutenzione (keuro) ricavato (keuro)

età (anni) manutenzione (keuro) ricavato (keuro) .6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si

Dettagli

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Minimo albero di copertura

Minimo albero di copertura apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.

Dettagli

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N

Dettagli

3.6 Metodi basati sui piani di taglio

3.6 Metodi basati sui piani di taglio 3.6 Metodi basati sui piani di taglio Problema generale di Programmazione Lineare Intera (PLI) con A matrice m n e b vettore n 1 razionali min{ c t x : x X = {x Z n + : Ax b} } Sappiamo che esiste una

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {,}. Per ogni

Dettagli

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina Problemi di trasporto Consideriamo un problema di programmazione lineare con una struttura matematica particolare. Si può utilizzare, per risolverlo, il metodo del simplesso ma è possibile realizzare una

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015 Esame di Ricerca Operativa del 1/01/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da basket e da calcio che vende rispettivamente a 1 e euro. L azienda compra ogni settimana 00

Dettagli

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia sercizi per il corso di Logistica I a.a. - aniela avaretto ipartimento di Matematica pplicata Università a oscari di Venezia sercizio Individuare un albero di supporto di lunghezza minima (SST) sul seguente

Dettagli

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max Makespan con set-up dipendenti dalla sequenza 1/s jk /C max 1/s jk /C max Un tempo di riattrezzaggio (set-up) s jk è richiesto fra il processamento di j e quello di k. In questo caso, C max dipende dalla

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

Dettagli

Problema del trasporto

Problema del trasporto p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. p. 1/1 Problema del trasporto Supponiamo di avere m depositi in

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014 A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli

Esame di Ricerca Operativa del 07/09/2016

Esame di Ricerca Operativa del 07/09/2016 Esame di Ricerca Operativa del 0/09/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un industria chimica produce due tipi di fertilizzanti (A e B) la cui lavorazione è affidata ai reparti di produzione e

Dettagli

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi Università degli Studi di Roma La Sapienza Ottimizzazione nella Gestione dei Progetti - Esercitazione : calcolo degli schedule ottimi di FABIO D ANDREAGIOVANNI Dipartimento di Informatica e Sistemistica

Dettagli

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di

Dettagli

Esame di Ricerca Operativa del 16/06/2015

Esame di Ricerca Operativa del 16/06/2015 Esame di Ricerca Operativa del 1/0/01 (Cognome) (Nome) (Matricola) Esercizio 1. Una ditta produce vernici in tre diversi stabilimenti (Pisa, Cascina, Empoli) e le vende a tre imprese edili (A, B, C). Il

Dettagli

Grafi: visita generica

Grafi: visita generica .. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 (Esercizio C-14.34 del testo [GTG14]) Sia G = (V, E) un grafo non diretto con n =

Dettagli

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

Dettagli

Appunti sui problemi di matching

Appunti sui problemi di matching Appunti sui problemi di matching A. Agnetis 1 Formulazione I problemi di matching (talvolta chiamati problemi di accoppiamento, o abbinamento) sono tra i più importanti e più studiati problemi di ottimizzazione

Dettagli

Algoritmi e Strutture di Dati (3 a Ed.) String matching. Alan Bertossi, Alberto Montresor

Algoritmi e Strutture di Dati (3 a Ed.) String matching. Alan Bertossi, Alberto Montresor Algoritmi e Strutture di Dati (3 a Ed.) String matching Alan Bertossi, Alberto Montresor STRING MATCHING. Date una stringa P di m caratteri (pattern) e una stringa T di n caratteri, con m n, trovare un

Dettagli

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 Esercizio 1 Si risolva con il metodo branch-and-bound il seguente problema di PLI max x 1 + x 4x 1 + x + x = 0 x 1 + x + x 4 = x 1, x, x, x 4 0 x 1, x,

Dettagli

Esempi. non. orientato. orientato

Esempi. non. orientato. orientato Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è

Dettagli

Problemi di Flusso: Il modello del Trasporto

Problemi di Flusso: Il modello del Trasporto Problemi di Flusso: Il modello del rasporto Andrea Scozzari a.a. 2014-2015 April 27, 2015 Andrea Scozzari (a.a. 2014-2015) Problemi di Flusso: Il modello del rasporto April 27, 2015 1 / 25 Problemi su

Dettagli

Grafi e Funzioni di Costo ESERCIZI

Grafi e Funzioni di Costo ESERCIZI Grafi e Funzioni di Costo ESERCIZI Esercizio1 Si determini la matrice di incidenza archi-percorsi ed i costi di percorso per la rete di trasporto rappresentata in figura. 1 4 2 3 5 Ramo Costo Ramo Costo

Dettagli

4.5 Metodo del simplesso

4.5 Metodo del simplesso 4.5 Metodo del simplesso min z = c T x s.v. Ax = b x PL in forma standard Esamina una sequenza di soluzioni di base ammissibili con valori non crescenti della funzione obiettivo fino a raggiungerne una

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme

Dettagli

Esercizio 1. Esercizio 2

Esercizio 1. Esercizio 2 A-2 a PI Ricerca Operativa 1 Seconda prova intermedia La Pharmatix è un azienda di Anagni che produce due principi attivi, A e B, che consentono un profitto per grammo venduto di 20 e 30 euro rispettivamente.

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera Fondamenti di Ricerca Operativa T-A a.a. 2014-2015 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Daniele Vigo rev. 1.1.a ottobre 2014 Fondamenti di Ricerca Operativa

Dettagli

Esercizio 1. min. Esercizio 2. Esercizio 3

Esercizio 1. min. Esercizio 2. Esercizio 3 A UNIVERSIÀ DEGLI SUDI ROMA RE Ricerca Operativa Primo appello gennaio 00 Esercizio Portando il problema in forma standard si aggiungono le variabili e 4. Impostando il problema artificiale è sufficiente

Dettagli

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte) Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un

Dettagli

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra

Dettagli

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo Capitolo 5 Algoritmi di ricerca su grafo Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà

Dettagli

Corso di elettrotecnica Materiale didattico: i grafi

Corso di elettrotecnica Materiale didattico: i grafi Corso di elettrotecnica Materiale didattico: i grafi A. Laudani 12 ottobre 2005 I grafi costituiscono uno strumento matematico che permette di descrivere e schematizzare una grande varietà di problemi

Dettagli

Routing IP. IP routing

Routing IP. IP routing Routing IP IP routing IP routing (inoltro IP): meccanismo per la scelta del percorso in Internet attraverso il quale inviare i datagram IP routing effettuato dai router (scelgono il percorso) Routing diretto

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

Teoria della Programmazione Lineare Intera

Teoria della Programmazione Lineare Intera Teoria della Programmazione Lineare Intera Laura Galli Dipartimento di Informatica Largo B. Pontecorvo, 567 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 7 Ottobre 0 Ricerca Operativa Laurea

Dettagli

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Richiami di Matematica 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Insiemi Definizioni di base Dato un insieme A: x A: elemento x appartenente

Dettagli

Euristiche per il Problema del Commesso Viaggiatore

Euristiche per il Problema del Commesso Viaggiatore Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Euristiche per il Problema del Commesso Viaggiatore Renato Bruni bruni@dis.uniroma.it Il materiale presentato

Dettagli

Programmazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0

Programmazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Programmazione logica e PROLOG Esercitazione 1 AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Sommario Programmazione logica Base delle conoscenze Interrogazioni Regole Ricorsive Esecuzione dei programmi

Dettagli

Esercizi proposti 10

Esercizi proposti 10 Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =

Dettagli

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 2x 2 + x 3 = 4 x 1 x 2 x 3 = 3 x 2 + 2x 3 = 1 x 1, x 2, x 3 0

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 2x 2 + x 3 = 4 x 1 x 2 x 3 = 3 x 2 + 2x 3 = 1 x 1, x 2, x 3 0 COMPITO DI RICERCA OPERATIVA ESERCIZIO. (5 punti) Sia dato il seguente problema di PL: max x + x 2 x 2x 2 + x 3 = 4 x x 2 x 3 = 3 x 2 + 2x 3 = x, x 2, x 3 0 Utilizzando il metodo due fasi, si stablisca

Dettagli

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino

Dettagli

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici); Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo

Dettagli

Programmazione Lineare Intera: Piani di Taglio

Programmazione Lineare Intera: Piani di Taglio Programmazione Lineare Intera: Piani di Taglio Andrea Scozzari a.a. 2014-2015 April 22, 2015 Andrea Scozzari (a.a. 2014-2015) Programmazione Lineare Intera: Piani di Taglio April 22, 2015 1 / 23 Programmazione

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu May 10, 2016 Elementi fondamentali Un algoritmo non deterministico è un algoritmo che posto di fronte alla necessità di

Dettagli

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114 In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi

Dettagli

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n

NOTE DI ALGEBRA LINEARE v = a 1 v a n v n, w = b 1 v b n v n NOTE DI ALGEBRA LINEARE 2- MM 9 NOVEMBRE 2 Combinazioni lineari e generatori Sia K un campo e V uno spazio vettoriale su K Siano v,, v n vettori in V Definizione Un vettore v V si dice combinazione lineare

Dettagli

Teoria dei Giochi Prova del 30 Novembre 2012

Teoria dei Giochi Prova del 30 Novembre 2012 Cognome, Nome, Corso di Laurea, email: Teoria dei Giochi Prova del 30 Novembre 2012 Esercizio 1. Si consideri il seguente gioco. Il primo giocatore può scegliere un numero tra {3,4,8,16,38}; il secondo

Dettagli

Appunti lezione Capitolo 15 Ricerca locale

Appunti lezione Capitolo 15 Ricerca locale Appunti lezione Capitolo 15 Ricerca locale Alberto Montresor 03 Giugno, 016 1 Introduzione alla ricerca locale Un approccio miope, ma talvolta efficace è quello della ricerca locale. L idea è la seguente:

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005) Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A. 004-00 Seconda prova di verifica (4 Febbraio 00) Laurea/Diploma in Informatica Università di Salerno Nome e Cognome: Matricola: 1 3 4 TOTALE /1

Dettagli

5.3 Metodo dei piani di taglio

5.3 Metodo dei piani di taglio 5.3 Metodo dei piani di taglio (PLI) min s.v. c T x Ax b x interi X Ipotesi: a ij, c j e b i interi Osservazione: La regione ammissibile di un PLI può essere descritta mediante dei vincoli più o meno stringenti

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte III: Algoritmo di Branch-and-Bound Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Esercizi su alberi binari

Esercizi su alberi binari Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica

Dettagli

AMPL Problemi su Reti

AMPL Problemi su Reti Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Problemi su Reti Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Il metodo dei Piani di Taglio (Cutting Planes Method)

Il metodo dei Piani di Taglio (Cutting Planes Method) Il metodo dei Piani di Taglio (Cutting Planes Method) E un metodo di soluzione dei problemi (IP) di tipo generale. L idea di base: Se la soluzione di (RL) non è intera allora la soluzione ottima intera

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Cammini minimi fra tutte le coppie

Cammini minimi fra tutte le coppie Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)

Dettagli

Alberi ed Alberi Binari

Alberi ed Alberi Binari Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (non orientati e connessi): minimo albero ricoprente .. Grafi (non orientati e connessi): minimo albero ricoprente Una presentazione alternativa (con ulteriori dettagli) Problema: calcolo del minimo albero di copertura (M.S.T.) Dato un grafo pesato non orientato

Dettagli

Coverage. Visto che il coverage si basa su aree dell ambiente che vengono monitorate non è

Coverage. Visto che il coverage si basa su aree dell ambiente che vengono monitorate non è L. Pallottino, Sistemi Robotici Distribuiti - Versione del 10 Dicembre 2015 393 Coverage Si consideri ora il problema di coordinare una squadra di robot con dei sensori omnidirezionali in modo da garantire

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities L. De Giovanni M. Di Summa In questa lezione introdurremo una classe di disuguaglianze, dette cover inequalities, che permettono di

Dettagli

Automa a Stati Finiti (ASF)

Automa a Stati Finiti (ASF) Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare

Dettagli