You are on page 1of 42

MODELLI e METODI per SISTEMI di GESTIONE AMBIENTALE Definizione di sistema - Collezione di oggetti che lavorano insieme - Design/sviluppo/produzione di un qualcosa

(sistema) che produrr un prodotto/sevizio (output) che soddisfer determinate esigenze (richieste).

Analisi del sistema - un metodo rigoroso che aiuta a determinare i piani e i design ideali per un sistema complesso - Combinare la conoscenza degli strumenti analitici disponibili, da dove si sceglie quello appropriato allapplicazione di problemi pratici - Essa sia matematica che intuitiva, come la pianificazione e la progettazione. Caratteristiche della gestione dei sistemi ambientali - Analisi quantitative (non sempre possibile, in particolare quando non possibile quantificare un parametro) - Modelli matematici - Ottimizzazione Lanalisi costi/benefici serve per assegnare un valore monetario a ciascun parametro. Se si deve decidere tra due alternative posso identificare semplicemente la migliore in termini economici, di solito per quanto riguarda i problemi ambientali non si pu considerare soltanto laspetto economico, poich: 1) Laspetto ambientale una risorsa per aumentare il benessere sociale 2) La definizione dei costi/benefici per tutti coloro che utilizzano una risorsa deve tenere conto anche dei relativi problemi ambientali. ESEMPIO 1 Dati del problema - Risorsa: fiume - Utilizzatore: fabbrica, societ di pesca - Externality: la fabbrica scarica nel fiume producendo relativi costi che sono esternalizzati ad altri utilizzatori - Alternative: 1) Non fare niente, significa che il fiume pu essere utilizzato come discarica; 2) Negare completamente lo scarico: si assume che il commercio di pesca considerato un utilizzo migliore della risorsa fiume, piuttosto che utilizzarlo come discarica

- Analisi costi benefici 1) Factory view point: il costo dellalternativa economicamente migliore di 50.000 2) Fishery company view point: senza linquinamento da parte della fabbrica il profitto aumenta da 10.000 a 30.000 Se le due compagnie devono trovare un accordo, la miglior alternativa sembra essere to do nothing e internalizzare linquinamento nel bilancio economico della fabbrica (pagando ad esempio 20.000 allaltra compagnia) come una sorta di tassa che permette linquinamento. Soluzione dellESEMPIO 1 STEP 1: raccogliere i dati per definire e capire il problema, definire i prezzi relativi al problema delle quantit della fabbrica (impianto di trattamento e soglie ambientali). Produzione di 1 kg di metallo Produce 3 kg di rifiuto (ad una concentrazione di 2 kg/m3 di acqua) Limite massimo consentito 100.000 kg/settimana Massima produzione di metallo 55.000 kg/settimana Capacit massima dellimpianto di trattamento 70.000 m3/settimana Efficienza dellimpianto di trattamento *e+ 1-0.06 W con 0 W 70.000 m3/settimana Prezzo di mercato del metallo 1.30 /kg Costi di produzione 0.90 /kg Costo di trattamento 0.2 /m3 Problema Definire una configurazione della produzione efficiente rispettando le soglie di scarico imposte. Obbiettivi Chi sono i Decision Makers? Il gestore della fabbrica Qual il sistema? Fabbrica + Impianto di trattamento, non il fiume Obbiettivi misurabili: non oltrepassare la soglia consentita e massimizzare il guadagno STEP 2: Produzione e valutazione delle alternative Variabili di controllo - By pass dellimpianto di trattamento - Modificare il tasso di produzione - Produzione di alternative: 1) Generare una coppia di valori per le precedenti variabili decisionali 2) Verificare che i vincoli legislativi siano soddisfatti 3) Calcolare il guadagno e rivalutarlo con le altre possibili alternative STEP 3: modellazione e ottimizzazione matematica Definizione delle variabili decisionali x: tasso di produzione 104 kg/settimana di metallo y: rifiuto trattato 104 kg/settimana

Formulazione di espressioni matematiche (bilancio di massa, conservazione del flusso)

[0.03 y2+ = Limpianto di trattamento rimuove con unefficienza di 1-0,06 W (104) m3/settimana di rifiuto. Tenendo conto della concentrazione di rifiuto c = 2 kg/m3, W= y/c, limpianto non rimuove con unefficienza di 0,03 y kg/settimana. Quindi, se una quantit y mandata allimpianto, 0.03 y2 non rimossa. Obbiettivi - Massimizzare i profitti Z = Sale income - Production costs - Treatment costs = 1.3 (104 x) 0.9 (104 x) 0.2 (104 y/2) = 4000 x - 1000 y - Limitare lo scarico 3x - y + 0.03 y2 10 -Constraints x0 y0 3x - y 0 x 5,5 y 14 (= 2*W dove W= 70.000/104) Problema di ottimizzazione con constraints Max Z = 4000 x 1000 y 3x y + 0.03 y2 10 x 5.5 y 14 x0 y0 3x y 0 - Si possono individuare due possibili soluzioni: soluzioni ottime e soluzioni accettabili - La soluzione non cambia se si pone un vincolo maggiore o strettamente maggiore e minore o strettamente minore, poich le frontiere sono incluse nei metodi di risoluzione. - Per massimizzare Z necessario aumentare x e diminuire y, pertanto non conveniente inquinare al di sotto del limite di legge, infatti la soluzione ottimale si trova sulla parabola.

Generalizzazione dellanalisi di sistema 1) Sistema e Obbiettivi: identificazione dei DM, definizione dei limiti del sistema e dei suoi componenti, quantificazione degli obbiettivi 2) Produzione e valutazione delle alternative: formulazione di un problema di ottimizzazione (definizione delle variabili di controllo, relazioni tra le variabili) e soluzione del problema di ottimizzazione 3) Selezione di unalternativa 4) Formulazione generale della programmazione matematica max (min) Z = f (x1, x2, , xn) g1 (x1, x2, , xn) = b1 g2 (x1, x2, , xn) = b2 *+ gm (x1, x2, , xn) = bm 5) Requisiti: oggetti quantificabili, modellazione matematica del problema, dati sufficienti, soluzioni non banali. ESEMPIO 2 Modellazione matematica di un problema relativo alla gestione dei pesticidi in agricoltura (inquinamento non puntuale).

c = concentrazione pesticidi [ppm] 1 ppm = 1 mg/kg = 1 mg/l c2 phytoplancton, c3 pesci, c4 falchi Obbiettivi - c4 < 100 ppm - Massimizzare i profitti orale Dati del problema Tipo di grano Pesticida richiesto % scarico nel lago Guadagni */ha+ Costi *+ [kg/ha] 1 6 15 300 1500 (area) 1/2 2 2.5 20 150 600 (area) 1/2 Variabili di controllo Supponiamo due tipi di coltivazione: - x1 [ha] di area coltivata con il tipo 1 - x2 [ha] di area coltivata con il tipo 2

Obbiettivo max z = 300 x1 - 1500 x1 + 150 x2 - 600 x2

Constraints 1) c4 100 ppm ( *

0.9 x1 + 0.5 x2 632.5 2) Lestensione delle due colture non pu essere pi grande dellarea coltivata e devo utilizzarle entrambe x1 + x2 1000 ha x1, x2 0 Soluzione

1200 1000 A
x2

F
fe a re sibi gi lit on y

- B la soluzione ottimale - Se voglio sfruttare tutta larea possibile la situazione ottimale su AF

16 25 600 B x1 1000

ESEMPIO 3

Obbiettivo Scegliere il trattamento addizionale per migliorare la qualit del fiume evitando scarichi con DO < 5 mg/l Alternative - Installazione di un processo/impianto addizionale - Ridurre o eliminare lo scarico nel fiume utilizzando lirrigazione dei terreni a 3 km di distanza dallimpianto di trattamento. Definizione di sistema - Il sistema dotato dei seguenti componenti: trattamento addizionale, utilizzo di terreni agricoli e relativa percolazione e il fiume - Non fanno parte del sistema: acquifero sotto il campo e lesistente impianto

u= velocit del fiume [km/giorni] c(x)=concentrazione di DO [mg/l] cs= DO di saturazione B(x)= CBOD concentrazione alla distanza x [mg/l] N(x)= NBOD concentrazione alla distanza x [mg/l] k1, k2, kn = [giorni-1] B ed N diminuiscono con laumentare della distanza.

Possibili alternative relative allaggiunta di diversi tipi di trattamento nellimpianto:

Ridurre o eliminare lo scarico nel fiume utilizzando lirrigazione dei terreni a 3 km di distanza dallimpianto di trattamento (trasmission).

Costi relativi alle diverse alternative Q= relativi flussi L = lunghezza

Analisi del sistema - Minimizzare i costi - Aumentare DO lungo il percorso del fiume ad almeno 5 mg/l - Limitare N nel percolato ad un massimo di 10 mg/l Variabili di controllo - Q1 Q5 = 10 000 m3/giorno - r = velocit di irrigazione [cm/settimana]= 70 Q5 / A - A = area di irrigazione [ha]

Constraints - r 14 (soil drainage) - NC 0.1 T r n per soddisfare la richiesta di azoto del terreno - Q1 + Q2 + Q3 + Q4 + Q5 =40 conservazione del flusso - c(x) 5 (x = 5, 10, 15 ) Funzione obbiettivo min Z = 3 (Q2 + Q4) 0.93 + installazioni dellimpianto + mantenimento + pipeline + tank + irrigazione guadagni dal raccolto Feasible region Il sistema composto da due sottosistemi: - Il campo, le cui variabili di controllo sono Q5 , A ed r e la regione di accettabilit facile da definire 6.5 r 13.1 0 Q5 40 A = 70 Q5 / r - La regione di accettabilit dell impianto (Q1 , Q2 , Q3 , Q4 , Q5 sono le variabili di controllo) complessa da definire. METODO dei MOLTIPLICATORI di LAGRANGE - Il lagrangiano una semplice soluzione per ottimizzare il soggetto della funzione alleguaglianza dei constraints - Indirizza il problema di ottimizzazione del soggetto z verso una serie di constraints Optimize Z = f (x1, x2, , xn) g1 (x1, x2, , xn) = b1 g2 (x1, x2, , xn) = b2 *+ gn (x1, x2, , xn) = bn Ricerca dei punti stazionari - Il problema risolto attraverso una nuova funzione che deve essere ottimizzata, chiamata Lagrangiana: H (x1, x2, , xn, 1, 2, , m) = = f (x1, x2, , xn) 1 (g1 (x1, x2, , xn) b1) 2 (g2 (x1, x2, , xn) b2) + m (gm (x1, x2, , xn) bm) = Moltiplicatori di Lagrange

ESEMPIO (Metodo moltiplicatori di Lagrange) max z = 0.5 x12 + 20 x2 x3 + 10 x3 Subject x1 - 3 x2 + 0.5 x3= 6 Lagrangian x2 + 2 x3 = 10 H (x1, x2, , xn, 1, 2, , m)= 0.5 x12 + 20 x2 x3 + 10 x3 1 (x1 3 x2 + 0.5 x3 6) 2 (x2 + 2 x3 10) x1 = 40.13 x2 = 11.27 x1 = - 0.64 z = 654.6 Limitazioni del metodo - Instabilit dovuta allutilizzo di constraints con disuguaglianze - Non pu essere applicato in tutti modelli realistici di ottimizzazione - Utilizza molte variabili Condizioni di Kuhn Tuker - La classica forma dei problemi di ottimizzazione con constraints : Optimize g(x) Subject to hj(x) bj (oppure bj) - Le condizioni di Kuhn Tuker consistono nel risolvere il problema con constraints di disuguaglianza con constraints di uguaglianza - Pu essere fatto introducendo variabili Sj (= variabili di Slack o Surplus), che sono quantit richieste per compensare le differenze tra le constraints e il valore di hj(x) - Soluzione maximize g(x) Subject to hj(x) Sj2 = bj - Formulazione generale

unequazione addizionale, legata alle variabili di Slack o Surplus - Condizioni di Kuhn-Tucker

ESEMPIO (con condizioni di Kuhn Tucker) maximize : g(x) = x1 + 2 x2 h1(x) = (x1 - 1)2 + (x2 - 2)2 5 h2(x) = x1 4 h1(x) = (x1 - 1)2 + (x2 - 2)2 + S12 = 5 h2(x) = x1 + S22 = 4 Lagrangiano:

Se S2= 0, utilizzando h2(x), x1=4. Invece per h1(x) questo non accettabile poich 5. Daltra parte, da 10 e S1=0, la soluzione accettabile : 1=1/4 x1=2 x2=4

ALGORITMI di RICERCA SEQUENZIALE - Consistono in un mezzo per selezionare la soluzione ottimale rispetto alle altre - Una procedura selezione le alternative - Sono disponibili differenti algoritmi per condurre la ricerca Algoritmo di BOX max z = f (x1, x2, , xn) L j xj Uj gi (x1, x2, , xn) oppure bi [min z = max (- z)] j= 1 n i= 1 m

- Definizione del primo set delle soluzioni P 1) P = n + 1 (o un altro numero n+1) k = 1 generata una soluzione ammissibile iniziale (x1k, x2k, . , xnk)

k = k+1 Una sotto sequenza di soluzioni k generata da: xjk = Lj + rjk (Uj - Lj) rjk un numero random con PDF (0,1) 2) Laccettabilit di xjk testata; se inaccettabile, la soluzione si muove pi vicino al baricentro delle soluzioni trovate.

3) k= k +1, se k < P vai a 2. 4) Computazione delle differenti zk = f (x1k, x2k, , xnk): la soluzione con zk minore rimossa (problema di massimo). 5) r la soluzione rimossa generata una nuova soluzione (x1r, x2r, , xnr) partendo dall r -esima, muovendosi vicino al baricentro e andando dallaltra parte del baricentro.

se zr < zr mi muovo indietro leggermente verso il baricentro

6) La nuova soluzione cercata per il test di accettabilit tra lestremo superiore e inferiore Uj e Lj.

7) Laccettabilit della nuova soluzione nuovamente testata. Se non accettabile torno allo step 3). 8) Gli step dal 4 al 7 sono ripetuti fino a quando quasi tutti i valori di z sono simili. ESEMPIO (Algoritmo di Box) max z = 300 x1 1500 x1 + 150 x2 600 x2 0,9 x1 + 0,5 x2 632.5 x1 + x2 1000 x1 0 e x 2 0 0 x1 702.8 0 x2 1000

PROGRAMMAZIONE MATEMATICA Programmazione lineare - Stabilisce una struttura matematica per il problema con la quale lo si pu risolvere con un particolare procedimento - LP assume che il problema pu essere descritto con funzioni additive, continue e lineari - I constraints e lobbiettivo sono funzioni lineari - Lalgoritmo per la LP il simplesso - La forma standard della LP costituita da due parti 1) Funzione obbiettivo: equazione che definisce la quantit da ottimizzare, che deve essere scalare e monodimensionale.

2) Variabili decisionali: xi sono conosciute come variabili decisionali poich lobbiettivo prendere una decisione per ottimizzare la funzione obbiettivo.

ESEMPIO (Programmazione matematica) Supponendo di avere costi lineari: max z = 300 x1 160 x1 + 150 x2 50 x2 0,9 x1 + 0,5 x2 632.5 x1 + x2 1000 x1 0 e x 2 0 Soluzione

Z lineare (retta rossa); deve aumentare il pi possibile Z, ma devo rimanere allinterno della Feasible region. La soluzione ottima quindi F (devo aumentare il pi possibile x1 e x2).

Analisi di sensitivit - un processo di investigazione della dipendenza della soluzione ottima ottenuta cambiando il modo in cui il sistema modellato e formulato. sempre fornita dagli algoritmi che utilizzando il simplesso. - Nellesempio: come varia il guadagno di fronte alle due alternative di coltivazione. max z = p1x1 + p2x2 p1/p2 < 1 coltivazione tipo 2 (punto ottimo = A) p1/p2 > 1.8 coltivazione tipo 1 (punto ottimo = B) Metodo del SIMPLESSO In un problema di LP le soluzioni si trovano nei punti estremi della regione di accettabilit, che possono essere molti. Il goal si muove da vertice a vertice, minimizzando la funzione obbiettivo. Il metodo del simplesso una tecnica efficiente e sistematica che migliora la convergenza in un numero finito di steps. La funzione obbiettivo deve essere unuguaglianza. Iniziare con la ricerca di un punto estremo (soluzione). Determinare se il movimento verso un estremo adiacente pu migliorare lottimizzazione della funzione obbiettivo.

SLACK: se x b x + slack = b SURPLUS: se x b x surplus = b Variabili artificiali: servono per assicurare che tutte le variabili siano 0 ESEMPIO (Simplesso) max z = 300 x1 160 x1 + 150 x2 50 x2 = 140 x1 + 100 x2 0,9 x1 + 0,5 x2 + S1 = 632.5 x1 + x2 + S2 = 1000 x1 0 e x 2 0 s 1 0 s 2 0 z= 0 + 140 x1 + 100 x2 S1 = 632.5 - 0.9 x1 - 0.5 x2 S2 = 1000 - x1 - x2

(A) (B)

x1= x2=0 s1= 632.5 s2=1000 Il metodo del simplesso migliora la funzione obbiettivo, incrementando una delle variabili che al momento zero:

- In z, il coefficiente di x1 (140) supera quello di x2 (100), in un problema di massimizzazione questo significa che conveniente aumentare x1. - In A, x1 pu essere aumentato fino ad un massimo di 632.5/0.9 = 702.78 se S1 forzata a zero. - In B, x1 pu essere aumentato fino ad un massimo di 1000, se S2 forzata a zero. - Il pi piccolo tra i due valori deve essere scelto se la nuova soluzione deve essere accettabile. - Il valore massimo accettabile di x1= 702.78 mentre x2=0 e s1=0. Si sceglie x1= 702.78 perch IF x1=1000 allora s1= 632.5 0.9 x1 + 0.5 x2 s1= 632.5 0.9 1000 + 0.5 0 s1= - 267.5 (infeasible) x1= 1000 viola la constraint A: 0.9 1000 = 900 > 632.5 (restrizione relative ai pesticidi) z= 0 + 140 x1 + 100 x2 x1 = 632.5/0.9 - 0.9 s1 - 0.5/0.9 x2 S2 = 1000 - x1 - x2 z = 98388.8 - 155.5 s1 + 22 x2 x1 = 702.7 - 1.1 s1 - 0.5 x2 s2 = 297.2 - 1.1 s1 - 0.4 x2

(A) (B)

(A) (B)

x 2 = s1 = 0

x2 cambia e s1 = 0 In A: pongo x1=0 e x2 posso incrementarlo fino a 702.7/05 = 1265 In B: pongo s2=0 e x2 posso incrementarlo fino a 297.2/0.4 = 669 s2=0 scelto, rispettando la regione di accettabilit, e x2 sostituito nelle tre equazioni. z = 113250 - 100 s1 - 50 x2 x1 = 331.25 - 2.5 s1 + 1.25 s2 s2 = 668.75 + 2.5 s1 - 2.25 s2

(A) (B)

Quando la funzione obbiettivo non pu essere migliorata ulteriormente la soluzione ottimale la seguente: z= 113250 x1= 331.25 x2 = 668.75

Limitazioni del metodo del simplesso - Non possibile applicarlo a problemi multi obbiettivo - Non possibile utilizzare variabili intere - Il problema risolto usando il Multiplex PROGRAMMAZIONE LINEARE Obbiettivi - Ottimizzare luso delle risorse con la LP - usata nei problemi dove le risorse sono limitate o con constraints e sono fatte certe assunzioni - Massimizzare il profitto - Minimizzare i costi - Minimizzare la distanza di viaggio Formulazione standard

Constraints - Ogni constraint di uguaglianza nel modello di ottimizzazione richiede laggiunta di un nuovo tipo di variabili di Slack o Surplus, chiamate variabili artificiali - Questo procedimento soddisfatto solo se le variabili artificiali nella sequenza di iterazione sono forzate a zero. - Per portarle a zero, possibile inserirle nella funzione obbiettivo con un grande coefficiente negativo.

- bi <0 convertito in un valore positivo moltiplicando per -1 - Se una variabile decisionale xj diventa negativa pu essere sostituita dalla differenza tra due nuove variabili che devono essere definite > o = 0. x j= y 1 y 2 y1, y2 0 Soluzioni di LP - n variabile in m equazioni indipendenti - Se m > n non si hanno soluzioni accettabili - m=n al massimo si ha ununica soluzione - n > m: 1) se esiste almeno una soluzione accettabile allora esistono un numero infinito di soluzioni accettabili; 2) i punti sugli estremi della regione accettabile corrispondono a n-m valori arbitrati esattamente = 0 e ad m valori 0; 3) le equazioni indipendenti aumentano solo il numero di computazioni per ottenere la soluzione ottimale.

Analisi di sensitivit: - Obbiettivo - Constraints dualit - Non considerare le constraints produce una nuova soluzione per il problema - Non considerare le constraints aumenta il lato giusto, come una valore monetario, indicato attraverso il cambiamento del valore ottimale della funzione obbiettivo. Lobbiettivo della dualit quantificare questo valore. Variabili duali, costi marginali, prezzi nascosti - La variabile duale yi il valore marginale associato alli esima constraint primale e uguale al cambiamento marginale nel valore ottimo di z prodotto da un cambiamento in bi (i = constraints).

- Se yi =0 li-esima constraint non vincola la funzione obbiettivo anche se pu essere usata per definire la feasible region. - yi >0 li-esima constraint vincola la funzione obbiettivo - yi ottenuta applicando il metodo del simplesso al problema primale ed uguale ai coefficienti delle variabili di Slack con il segno cambiato.

- y1 e y2 sono le variabili duali - Ogni vincolo in un problema associato ad un variabile nellaltro - I coefficienti della funzione obbiettivo nel prima diventano i limiti delle constraints nel duale - I limiti delle constraints del primale diventano i coefficiente della funzione obbiettivo del duale - La matrice dei coefficienti nei constraints del duale ha righe e colonne trasposte rispetto al primale Problema primale e duale

Il valore ottimo della funzione obbiettivo del duale lo stesso del valore ottimo della funzione obbiettivo del primale. Il duale del duale corrisponde al modello primale.

PROGRAMMAZIONE LINEARE a VARIABILI INTERE Un insetto predatore ha due variet di prede per un test di 13 minuti al massimo: - Le prede 1 hanno 21 come valore di nutrimento e richiedono 7 minuti per essere catturate - Le prede 2 hanno 11 come valore di nutrimento e richiedono 4 minuti per essere catturate Quanti insetti per ogni tipo di preda devono essere catturati per massimizzare il valore di nutrimento? max z = 21 x1 + 11 x2 7 x1 + 4 x2 13 x1 e x2 appartengono allinsieme N - La soluzione ottima della ILP non lintero che pi si avvicina alla soluzione ottima della LP - Lottimo della ILP in un punto interno alla regione di accettabilit - Il valore della soluzione ottima intera ILP inferiore al corrispondente valore della soluzione ottima LP - La regione di accettabilit della ILP una restrizione di quella della LP. - La soluzione della ILP o IP non appartiene ai punti estremi della regione di accettabilit quindi non pu essere 2utilizzato il metodo del simplesso - La soluzione ottima non una soluzione di base - Per risolvere il problema 1 bisogna esaminare, implicitamente, tutte le soluzioni della regione di accettabilit. ALGORITMI della ILP Lenumerazione completa non un approccio applicabile (forza bruta). Si devono utilizzare dei metodi che permettano di esaminare soltanto una piccola parte del numero totale possibile di soluzioni: un sistema di enumerazione implicito. ESEMPIO dei Truck 4400 m3 di prodotto 20 km di andata e ritorno TRUCK 1 Capacit [m ] 8 $/km 3.1125 3 Profitti [$/m ] 8 Stop per revisione [km] 3510
3

TRUCK 2 12 4.625 8 5016

Quanti viaggi ogni truck deve fare per massimizzare il profitto?

x1 e x2 = numero dei viaggi (variabili intere) max z = 1.75 x1 + 3.5 x2 x1 175.5 x2 250.8 8 x1 + 12 x2 4400 43750 soluzioni intere accettabili Algoritmo BRANCH&BOUND STEP 1: trovare la soluzione ottima del problema di LP Z*, che il limite superiore per ogni soluzione intera (x1*= 173.8 e x2*=250.8) STEP 2: scegliere una variabile decisionale e una partizione del problema originale in due sotto problemi (branch).

STEP 3: risolvere il sotto problema 2 e 3 eliminando la restrizione intera e scegliere il ramo con il valore pi grande (problema di massimo) della soluzione obbiettivo 3 e rifare il branch sulla variabile x2.

STEP 4: la soluzione al nodo 5 non accettabile perch il valore di x2 in conflitto con la constraint del problema x2 250.8; la soluzione al nodo 4 accettabile, bisogna vedere se anche ottimale.

STEP 5: Ricerca della soluzione ottimale 1) Non c una soluzione accettabile sotto il nodo 4 perch questa una soluzione LP; perch il branch terminato al nodo 5 con una soluzione non accettabile. 2) Il valore obbiettivo al nodo 2 (che la soluzione ottima della LP a quel nodo) inferiore e peggiore rispetto alla soluzione del nodo 4. Non esistono soluzioni migliori rispetto a quella del nodo 4. Algoritmo dei PIANI di TAGLIO Lalgoritmo del Branch & Bound limitato a qualche centinaia di variabili intere, ma questo permette di ottenere una buona soluzione accettabile. Lalgoritmo dei piani di taglio permette di risolvere problemi con 1000 variabili intere ma non si ottiene una soluzione accettabile prima di trovare la soluzione ottima. meno efficiente del B&B. Fasi dellalgoritmo: - Una soluzione LP ottima ottenuta trascurando le restrizioni intere. Se le variabili intere assumono valori interi lalgoritmo termina - Una nuova restrizione addizionale (cutting plane) aggiunta al set delle constraints - Questa taglia una parte della regione di accettabilit inclusa la soluzione ottima LP ottenuta allo step 1, ma non elimina nessuna soluzione accettabile intera del problema IP originale. - I piani di taglio tagliano pi profondamente una regione di accettabilit. Lalgoritmo termina quando questi tagli giungono a una soluzione intera. - Il simplesso ci fornisce informazioni per generare i piani. Variabili accessorie Una foresta con 5000 m3 di legname da tagliare e depositare. Il costo del disboscamento con cavallo 12 /m3, ma in questo caso necessario costruire una stalla che costa 600 . Luso del trattore costa 10/m3 , ma in questo caso necessario costruire un box che costa 1000 . Quanto volume pu essere assegnato ad ognuno dei due metodi per minimizzare il costo? x1 e x2 = metri cubi di bosco y1 e y2 = variabili accessorie min z= 12 x1 + 10 x2 + 600 y1 + 1000 y2 x1 + x2 = 5000 x1 0 x2 0 y1 , y2 = [0,1] Constraints accessorie x1 = 0 y 1 = 0 x1 > 0 y 1 = 1 x2 = 0 y 2 = 0 x2 > 0 y 2 = 1 aggiunta la seguente constraint: x1 M y1 0 M = valore grande positivo

Se x1 > 0, allora y1 =1. Se x1 =0, y1 pu essere sia 0 che 1. Finch la funzione obbiettivo minimizza una somma nella quale appare come addendo + 600 y1 scelta la soluzione y1=0. Questa constraint forza il valore corretto di y1.

PROBLEMI CLASSICI Programmazione lineare Problemi di trasporto I problemi di LP di origine fisica o economica pu essere formulata in termini di un network composto da: - Nodi connessi - Percorsi tra i nodi - Vari tipi di trasporto o flussi Un caso generale di trasportation problem (TP) il minimo costo relativo a un problema di network-flow. I problemi TP classici sorgono quando si deve determinare un programma ottimale di spedizione.

n,m = numero delle risorse e dei centri di domanda n*m = numero di variabili n + m = numero di equazioni i= 1 m fornitori ciascuno con capacit ai j= 1 n domande dei clienti di una quantit bj ciascuno xij quantit trasportata dal fornitore i allacquirente j cij costi variabili per portare un kg di merce dal fornitore i allacquirente j Problema: come soddisfare tutti i clienti con il minore costo di trasporto xij sono le variabili decisionali Problema del mixture (blending) INPUT: una certa quantit di materia prima (o liquidi) caratterizzati da determinati fattori di qualit. OUTPUT: la mixture che deve essere ottenuta per soddisfare un dato numero di constraints di qualit, al minor costo.

Modelli multi-periodo I modelli decisionali descritti prima sono statici. Il sistema ambientale non evolve nel tempo, ma la descrizione data da parametri fissi e mediati. Un DM ha bisogno di prendere decisioni periodicamente quindi ogni variabile decisionale funzione del tempo t = 1 T e probabilmente il sistema dinamico espresso attraverso una o pi constraints. In alcuni casi, il problema decisionale pu essere trasformato in un problema di controllo ottimale. Programmazione intera Problema dello zaino INPUT: set di oggetti, ognuno caratterizzato da certi valori e certi pesi. Ha solo una constraint. OUTPUT: massimizzare tutti i valori degli oggetti presenti nello zaino, tendendo conto del peso. b = capacit (peso) dello zaino I1 In = diversi items Ogni Ij ha un peso pj e un befeficio cj Obbiettivo: mettere un certo numero di copie di un oggetto Ij nello zaino e la capacit dello zaino non pu essere superata e il beneficio deve essere ottimale. Variabili decisionale: j = [0,1] j = 1 k numero degli oggetti j = 0 non prendo loggetto j j = 1 prendo loggetto j Parametri: cj valore delloggetto j pj peso delloggetto j b capacit dello zaino Problema dello zaino multiplo INPUT: set di oggetti, ognuno caratterizzato da certi valori e certi pesi. Ha solo una constraint. OUTPUT: massimizzare tutti i valori degli oggetti che possono essere messi in pi zaino, che sono caratterizzati da una capacit. i = 1 h zaini j = 1 k oggetti Variabili decisionali ij = [0,1] ij = 0 non metto loggetto j nello zaino i ij = 1 metto loggetto j nello zaino i Parametri: cj valore delloggetto j pj peso delloggetto j bi capacit dello zaino i

Dalla seconda constraint si evince che un oggetto pu essere messo in un solo zaino. Problema del set-covering INPUT: 1) un set di N elementi, di cui si ha bisogno; 2) un set di risorse disponibili per soddisfare tali bisogni, di M elementi ognuno caratterizzato da un costo di attivazione Cj; 3) definita una matrice 0-1 dei bisogni x risorse: 1 significa che la risorsa j pu soddisfare il bisogno i, altrimenti 0; tutte le righe (per laccettabilit) e tutte le colonne (per la definizione di risorsa) devono avere somma 1. OUTPUT: per trovare un set di risorse per soddisfare tutti i bisogni al minimo costo. Variabili decisionali:
j

= [0,1]

Problema del set- packing INPUT: N meeting programmati in T giorni; P persone sono registrare ad alcuni meeting. OUTPUT: massimo numero di incontri che possono essere programmati, tenendo conto che un persona registrata ad un meeting deve partecipare. aij = 1 se una persona i registrata al meeting j xjt = 1 se lincontro j si svolge nel periodo t

TEORIA dei GRAFI G=(V,E) grafo o network V= set di nodi o vertici, non vuoto. E= set di archi o edges; un set di coppie di vertici di V: se queste sono ordinate il grafo orientato. - Edges o archi a= (u,v) a E u,v V

u e v sono vertici di un arco a; u e v sono adiacenti; Larco a incidente su entrambi i vertici e pu essere pesato o non pesato; Se a orientato, u il vertice di origine, v il vertice di destinazione; Due archi in un grafo sono detti adiacenti se sono connessi allo stesso vertice; Un arco in un grafo che unisce due vertici detto incidente su entrambi i vertici; - Vertici o nodi Il grado di un nodo determinato dal numero degli archi distinti che sono incidenti su di esso; Il grado di ingresso e quello di uscita di un vertice rappresenta il numero di archi che entrano ed escono in esso, rispettivamente. - Grafi Un loop un arco che collega un vertice a se stesso. Un grafo semplice non contiene loop o archi paralleli, laddove pi di un arco connette due nodi dati. Un multi grafo un grafo che contiene archi multipli. Un grafo completo un grafo semplice dove ciascuna coppia di vertici adiacente. In un grafo orientato, per ogni coppia (u,v) di vertici esistono entrambi gli archi (u,v) e (v,u): il grafo anche detto simmetrico. - Percorsi In un grafo non orientato, un percorso o catena una sequenza di archi e1, e2, , ek; lo stesso vale per un grafo orientato. e1 = (u1, u2) e2 = (u2, u3) e1 = (uk, uk + 1) I nodi che iniziano e terminano il percorso sono detti vertice iniziale e vertice finale, rispettivamente. La lunghezza del percorso il numero di archi che sono attraversati lungo il percorso. permesso ripercorre gli archi o i nodi allinterno del percorso. Quando non ci sono archi ripercorsi nel percorso di un grafo orientato, il percorso detto semplice. Un percorso elementare in un grafo orientato quello in cui non ci sono nodi ripetuti allinterno del percorso. - Cicli Un ciclo un percorso nel quale il vertice iniziale corrisponde con quello finale del percorso. Rimuovendo tutti i cicli, il percorso pu essere considerato un percorso elementare finch non ci sono pi vertici ripetuti.

- Raggiungibilit e connettivit Se un nodo raggiungibile da un altro nodo allora esiste un percorso tra uno e laltro. assunto che ogni nodo raggiungibile da se stesso. Se un vertice B raggiungibile da un vertice A e un vertice C raggiungibile dal vertice B, allora il vertice C raggiungibile dal vertice A. Un grafo non orientato considerato connesso se esiste un percorso tra tutte le coppie di vertici, cos facendo ogni vertice di una coppia raggiungibile dallaltro. Un grafo non connesso pu essere suddiviso in grafi detti sotto grafi connessi o componenti connessi di un grafo. Un grafo connesso debolmente un grafo dove la direzione dello stesso ignorata e la connettivit definita come se il grafo fosse non orientato. Un grafo connesso fortemente un grafo dove per tutte le coppie di vertici entrambi i vertici sono raggiungibili dallaltro.

Un ALBERO un grafo non orientato, connesso e aciclico. Un albero con n nodi ha n-1 archi. Per i grafi orientati, la definizione simile ma la direzione deve essere presa in considerazione. Un GRAFO HAMILTONIANO un grafo nel quale possibile trovare un ciclo entrando in tutti i nodi esattamente una volta (ciclo che tocca tutti i nodi). Un GRAFO EULERIANO un grafo dove possibile trovare un ciclo passando attraverso tutti gli archi esattamente una volta (ciclo che tocca tutti i link). - Rappresentazione dei grafi Ci sono diversi modi per rappresentare un grafo in un computer, tra questi: 1) Matrice vertice-vertice (Matrice delle adiacenze) G un grafo con n nodi ordinati da v1 a vn. A (matrice delladiacenza) una matrice n x n in cui: aij =1 se esiste un arco tra vi e vj aij =0 se non esiste un arco tra vi e vj Questa rappresentazione pu essere usata sia per grafi orientati che per grafi non orientati. Nel secondo caso la matrice simmetrica. Questa rappresentazione utile quando si hanno grafi densi.

Per computare un percorso di lunghezza 2, la matrice di lunghezza 1 deve essere moltiplicata per se stessa e la matrice prodotta la rappresentazione di una matrice di lunghezza due. In generale, per generare una matrici di percorso di lunghezza n, prendere la matrice di percorso di lunghezza n-1, e moltiplicare questa con una matrice di percorso di lunghezza 1.

2) Matrice vertice-arco (matrice delle incidenze) La matrice delle incidenze fatta da v righe (dove v il numero di nodi) e da e colonne (dove e il numero di archi). In un grafo non orientato, i due vertici relativi ad un arco hanno una corrispondente valore di cella pari a 1. In un grafo orientato, questi valori sono impostati pari a 1 per il vertice di origine e -1 per il vertice di destinazione.

3) Vettore di adiacenza Questa struttura consiste in un vettore di tutti i nodi in un dato grafo. Ogni nodo nel vettore collegato al suo vettore contenente il nome di tutti i nodi che sono adiacenti a se stessi. Lo svantaggio principale che questi vettori hanno differenti numeri di componenti e una struttura dinamica deve essere definita.

4) Albero Se il grafo un albero, possibile rappresentare il grafo in un vettore. Questo vettore ha n-1 componenti, ognuno per ogni nodo eccetto la radice. Il componente generico per il nodo u contiene il valore del predecessore di u.

5) Matrice delle lunghezze degli archi Corrisponde alla matrice delle adiacenze dove contenuta la lunghezza di un arco anzich 1. Non possibile usare il valore 0 come nella matrice delle adiacenze, come in questo caso, questo vuol dire lunghezza 0, due soluzioni: In un problema di min: devo usare un valore grande positivo In un problema di max: devo usare un valore grande negativo 6) Matrice O/D La matrice O/D contiene dij la distanza tra il nodo i e il nodo j. Mentre la matrice precedente contiene anche le informazioni sulla topologia del grafo, la matrice O/D non da questa informazione. PROBLEMI BASATI sui GRAFI MINIMO ALBERO RICOPRENTE (MST) G= (V,E) Un albero ricoprente di G un sotto grafo di G, che un albero che include tutti i nodi di G. Nel caso G abbia archi pesati, dove il problema cercare il MST, si deve cercare lalbero ricoprente che la cui somma dei pesi degli archi la minore. Algoritmo di PRIM STEP1: selezionare un nodo da cui partire u. Il primo sottoalbero T1 =[u]; etichettare tutti gli altri nodi v con letichetta (u, hv), dove hv = l (u,v). STEP2: Tk-1 il sottoalbero attuale, per ottenere Tk trovare il nodo y non appartenente a Tk-1 con letichetta (i, hv) e il minore hv. Tk = Tk-1 U [(i,y)+ il nuovo sottoalbero; cancellare letichetta di y. STEP3: IF (k=n-1) allora stop; ELSE aggiornare tutte le etichette dei nodi non appartenenti a Tk, con hv= min [hv; l (y,v)+ dove y lultimo nodo annesso allalbero. Impostare hv = hv ; tornare allo step 2. MAXIMUM FLOW Il nodo S la source e il nodo t il sink di un grafo orientato G(V,E); trovare il flusso massimo tra s e t senza contributo di flusso tra i nodi (conservazione del flusso). X source = X sink variabile decisionale Xij stato della variabile, massimo flusso sullarco ij dij capacit dellarco ij

Algoritmo del maximum flow 1) Trovare un qualunque percorso accettabile dalla source alla sink. Se non esiste END. un problema di Esplorazione dei grafici, ad esempio: - Trovare tutti i nodi adiacenti j dalla source con capacit maggiore di 0. - Per tutti i vertici j, trovare i nodi adiacenti con capacit maggiore di 0. - Ripetere fino a quando non trovo il sink. 2) C* larco con la pi bassa capacit rimanente; 3) Ridurre la capacit rimanente di ogni arco del percorso attraverso C*. Aumentare attraverso C* il restante flow capacity nella direzione opposta. Andare allo STEP 1. PERCORSO MINIMO Le tecniche di risoluzione del problema per trovare il percorso minimo tra due nodi u,v sia completamente che in parte di solito fornisce anche lalbero dei percorsi minimi con radice/inizio in u.

Per il generico (i,j), la variabile xij 1 se larco incluso nel percorso minimo altrimenti 0. Le constraints sono correlate alla conservazione del flusso. Per il source un solo arco scelto come output; per la destinazione un solo arco scelto come arrivo; per tutti i nodi intermedi se un nodo toccato allinizio da un arco scelto, deve esserci un arco scelto in output. Algoritmo di DIJKSTRA Per le lunghezze degli archi maggiori o uguali a 0. un algoritmo di etichettatura, relativo al minimo percorso tra la source (o il root r) e il vertice attuale. Letichetta del vertice generico v contiene due elementi: - La distanza minore trovata tra il root e v - Il prossimo nodo verso lultimo nodo (o quello da cui provengo)

d(v) = distanza tra vertice v e la root r j il prossimo nodo vero lultimo del percorso da r a v la cui lunghezza d(v) Letichettatura (d(v),j) pu essere temporanea quando il percorso pu ancora essere cambiato oppure permanente quando esso minimo. 1) Impostare d(r) = (0,r) d(v) = (, r) per ogni v r Impostare letichetta per r e temporaneamente tutte le altre; andare allo STEP 2. 2) w lultimo vertice la cui etichetta deve essere valutata come permanente. Tenere conto di tutti gli archi (w,v) in uscita da w e valutare la nuova distanza d(v) relativa ai vertici v, come segue: d(v) = min {d(v); d(w) + l(w,v)}. If d(v) = d(v) the label of v is not changed If d(v) < d(v), change the label in (d(v), w) Andare allo STEP 3. 3) Trovare il nodo v con letichetta temporanea con d(v) pi basso. Definire questa etichetta come permanente. Se tutte le etichette sono permanenti, allora STOP. Andare allo STEP 2.

TRAVELLING SALESMAN PROBLEM (TSP) Il problema del TSP trovare un ciclo hamiltoniano con lunghezza minore che il percorso pi corto in un grafo completo con archi pesati entrando in tutti i vertici esattamente una volta. Il problema pu essere studiato per un grafo incompleto, dove sia presente almeno un ciclo hamiltoniano. - TSP euclideo un problema dove i nodi sono dati dalle loro posizioni (xi, yi) nel piano e la matrice delle distanze data in distanza euclidee. - TSP con IP

Una tecnica quella di considerare tutte le possibili partizioni sub set del set V dei vertici. Ci sono due subset non vuoti A e V-A e per impostare una constraint bisogna che questi due sub set siano connessi da almeno un arco:

Ci sono 2n-1 -1 constraints di questo tipo. Unaltra tecnica basata sul fatto che, se un sub set A contenuto in V con una cardinalit k ha k archi connessi con i suoi nodi. imposta la constraint seguente e ci sono 2n-1 -1 constraints di questo tipo:

ALGORITMO TSP Algoritmo di ROBERT & FLORES Il TSP pu essere risolto esplicitamente enumerando tutte le permutazioni dei nodi verificando se esiste un ciclo per ogni permutazione e scegliendo quello col costo ottimale. Lalgoritmo RF limita il numero di permutazioni. basato su una rappresentazione del grafico con n nodi da un vettore adiacente che su una tabella nella quale per ogni nodo v c una colonna.

STEP 1: scegliere un nodo da cui iniziare v e settare S = [v]. STEP 2: sulla colonna dellultimo nodo aggiunto ad S, scegliere un nodo che non stato inserito prima in S e aggiungerlo a S; se tale nodo non esiste andare allo step 3; se esiste fare step 2. STEP 3: se il rango di S n stato trovato un percorso hamiltoniano. Se vi un arco tra lultimo nodo aggiunto e il vertice v esiste anche un ciclo hamiltoniano (STOP); se S include meno di n vertici o non stato trovato un ciclo, andare allo step 4. STEP 4: w e u sono rispettivamente gli ultimi due nodi aggiunti a S, con S =* ,w, u+; cancellare il nodo u da S; nella colonna di w cercare un altro nodo diverso da u che non ancora stato inserito in S; se il nuovo nodo individuato andare allo step 2; se il nuovo nodo non trovato e S non vuoto andare allo step 4, con u cancellato da S; se S vuoto non esiste un ciclo hamiltoniano. Per trovare un ciclo hamiltoniano quando lalgoritmo si ferma allo step 3, andare allo step 4 evitando step 2 e step 4 per ripetere il percorso appena fatto. TSP EURISTICO Greedy Ci sono diverse euristiche che possono risolvere i problemi TSP in maniera non ottimale ma comunque buona.

Ciclo greedy su un grafo completo ACDEBA = 8 Ciclo ottimo su un grafo completo ABCDEA = 7

Un algoritmo greedy trascura i vertici distanti, d maggiore importanza a quelli vicini. Insertion techniques Queste tecniche ampliano un sub tour iniziale aggiungendo un nuovo nodo tra due nodi adiacenti nel tour. Ci sono diverse tecniche per scegliere la coppia di vertici dove fare linserimento e il nodo da inserire. Saving Un nodo definito come deposito. Da D, sono definiti n-1 tours, uno in direzione di tutti gli altri nodi del grafo. La scelta del deposito arbitraria. Per diverse coppie di nodi, pi conveniente unire due nodi, generando un nuovo sub tour visitando due nodi e il deposito. Sij il risparmio di visitare due vertici i e j con un singolo sub tour, partendo da D, andando in i, dopo in j, e tornare a D. s = (c + c + c + c ) (c + c + c )= c + c - c
ij iD Di jD Dj Di ij jD iD Dj ij

Un sub tour pu essere allargato in due modi: - Aggiungendo un nuovo nodo tra il primo nodo visitato e il deposito o tra lultimo nodo visitato e il deposito - Unendo ad un altro sub tour eliminando il primo e lultimo arco

Double edges Costruire lalbero di minima copertura Doppiare tutti gli archi Trovare un ciclo euleriano Trasformare il ciclo euleriano in un ciclo hamiltoniano, cancellando i multipli passaggi sui nodi STEP1: costruire lSST per il grafo G STEP2: doppiare tutti gli archi del SST, ottenendo il multi grafo G. STEP3: trovare il circuito euleriano (diversi possibili) STEP4: eliminare i passaggi multipli sui nodi

ALGORITMI per la TEORIA DEI GRAFI TPS di Christofides Algoritmo basato su SST Step 1: costruire il SST Step2: trovare i nodi del SST con grado dispari (lo sono anche in numero) Step 3: trovare il set M* dei nodi che connettono le coppie di questi vertici e con la minima lunghezza; aggiungere questi nodi al SST. Step 4: trovare un circuito euleriano Step 5: fase di salto. Lerrore di questo algoritmo al massimo il 50% della soluzione ottima (quindi la soluzione euristica confinata). M-TPS Il TPS multiplo unestensione del TPS, supponendo di avere pi mezzi che visitano i nodi. Non sono forniti dettagli a riguardo: la capacit dei veicoli, la domanda dei nodi, i constraints temporanei per lasciare le merci. definito un deposito D e ci sono m mezzi; ogni mezzo visiter una volta un sub-set (disgiunto da tutti gli altri; lunione di tutti questi copre tutti i set di nodi). Lobbiettivo minimizzare tutta la distanza coperta da tutti i veicoli. Pu essere risolto risolvendo il TPS, con il trucco di aggiungere archi e nodi virtuali - Il deposito D sostituito da m nodi D1, D2, Dm, connessi tra loro da archi con lunghezza infinita - Ogni D1, D2, Dm connesso con tutti i nodi originariamente adiacenti a D, con archi della stessa lunghezza - Se il grafo originale contiene n nodi, il nuovo grafo G contiene n + m -1 nodi - Risolvere il TSP in G permette di risolvere M-TPS in G Vehicle Routing Problem (VRP) - Introdurre nel problema TPS, le constraints addizionali sono: 1) tutti i mezzi hanno una capacit limitata (uguale per tutti i nodi); 2) ogni nodo ha una specifica domanda da soddisfare; 3) i mezzi consegnano i goods per soddisfare questa domanda. - Il modello pi complesso del precedente, ma sono presenti alcune semplificazioni (capacit dei veicoli uguale, solo consegna di merci e non raccolta e consegna). - In alcuni casi, sono permesse pi visite di un vertice da parte di pi veicoli. Per esempio: cosa accade se un veicolo, dopo aver soddisfatto una certa quantit di clienti, ha ancora merci da consegnare? Possono queste merci essere usate per soddisfare parzialmente un altro cliente? Cosa succede se ogni mezzo ha una capacit limitata per soddisfare in un solo shot la domanda di un cliente? - Il VRP, come il TPS, pu essere formulato come un 0-1 IP: in questo caso richiesto un indice addizionale nella variabile decisionale, il mezzo v (ad esempio xijv, il cui valore 1 se e solo se il nodo (i,j) attraversato dal mezzo v). - La formulazione includer le constraints sulla capacit del mezzo e sulla domanda dei nodi.

Euristiche VRP - Primo cluster, secondo route I clienti sono suddivisi in subsets, ognuno con somma di domanda minore o uguale alla capacit del veicolo. Dopo il TPS risolto per ciascun cluster. Es. Tecnica oraria di Giller e Miller Step 1: disegnare una linea, senza toccare i nodi, partendo dal deposito. Step 2: scegliere una direzione di rotazione (oraria, ad esempio) Step 3: ruotare la linea nella direzione scelta, sommando le domande dei nodi toccati. Quando questa somma diventa maggiore della capacit del mezzo, stop. definito un nuovo cluster e il nodo corrente il primo nodo del nuovo cluster Step 4: definire il TPS per ogni cluster. - Primo route, secondo cluster costruito un viaggio TPS gigante includendo tutti i nodi; il viaggio diviso in percorsi; la somma della domanda di ciascun percorso inferiore alla capacit del mezzo. Ogni percorso connesso al suo inizio e alla fine al deposito. ROUTING & SCHEDULING Il termine routing riferito alla costruzione del percorso; il termine scheduling riferito alla gestione delle attivit nel tempo. Un problema di routing/scheduling utilizzato quando laspetto temporale importante per il routing. Ad esempio: i nodi possono essere toccati in determinati intervalli temporali; in altri intervalli possibile che entrare in un nodo si negato. SCHEDULING In un contesto industriale riguarda: assegnare le attivit o job alle macchine, definendo i compiti e le relative constraints temporali (tempo di inizio, tempo di processing, due date, tempo di compimento) n/m/A/B n: numero di job m: numero delle macchine A il flusso di lavoro tra le macchine (omettendo m=1) B lindice di performance (ad esempio minimizzare nT le attivit in ritardo) Algoritmo di MOORE n/1//nT 1) Ordinare i job in accordo con una due date ascendente: J1 Jn la sequenza; 2) Trovare il primo job in ritardo Jm; se non esiste andare allo step 4; 3) Nella sequenza J1 Jm trovare il primo job con il tempo di processing maggiore e cancellarlo dalla sequenza, andare allo step 2; 4) Lo scheduling ottimo minimizzando il numero di jobs nT che sono in ritardo dato dalla sequenza ottenuta.

Algoritmo di JOHNSON n/2/F/Fmax 1) k=1; p=n 2) Job unscheduled = (J1,J2, , Jn) 3) Trovare il minore tra ai e bi 4) Se il minore un ai corrispondente a Ji: Mettere Ji nella posizione k dei jobs schedulati. Cancellare Ji dai jobs non schedulati k= k+1 Andare allo step 6 5) Se il minore un bi corrispondente a Ji: Mettere Ji nella posizione p dei jobs schedulati. Cancellare Ji dai jobs non schedulati p= p+1 Andare allo step 6 6) Se il set di job non schedulati non vuoto andare al 3: anche la lista dei job schedulati ottima in accordo Fmax. Critical Path Method (CPM) un grafo relative alla gestione delle attivit, in cui I nodi sono le attivit, il cui valore rappresenta la durata delle attivit stesse. - Formulazione LP xi= tempo cumulativo nel vertice i, rappresenta il primo istante in cui ogni attivit esce da i Dij= durata dellattivit tra il nodo i e il nodo j

- Modellizzazione della CPM con le dummy activities

Le dummy activities sono attivit con durata pari a 0. ESi: Earliest Start time di tutte le attivit che iniziano dal vertice i LCi: Latest Completation time di tutte le attivit che entrano nel nodo i - Attivit critiche ESi = LCi ESj=LCj ESj-ESi = LCj - LCi

GRAFI EULERIANI ed HAMILTONIANI Un percorso di un grafo un modo per andare da un vertice allaltro, mentre un circuito un percorso che inizia e termina sullo stesso nodo. Un percorso o un circuito euleriano attraversa ogni nodo esattamente una volta. Per esempio, la raccolta dei solid waste di tutte le strade di un distretto, oppure nel problema del TPS occorre un ciclo o percorso che attraversa tutti i nodi esattamente una volta. Teoremi di Eulero Non possibile avere un grafo con un nodo di grado dispari: supponiamo di camminare lungo un percorso euleriano e incontrare un vertice di grado dispari (non allinizio). Se questo ha grado 1, allora deve essere il nodo da cui arriviamo. Non abbiamo posti dove andare, quindi deve essere il punto finale. Se questo ha grado 3, allora noi arriviamo, lasciamo e arriviamo unaltra volta: siamo bloccati e deve essere lultimo punto. Se questo ha grado 5, allora noi arriviamo, lasciamo, arriviamo, lasciamo e arriviamo unaltra volta. Possiamo fare lo stesso discorso per ogni ondo di grado dispari. Questo mostra come ogni grafo con pi di due nodi con grado dispari non pu avere n un percorso n un circuito euleriano. Obbiettivo: attraversare ogni arco di un grafo esattamente una volta e ritornare al nodo iniziale 1) Se un grafo ha dei nodo di grado dispari, allora non pu avere un circuito euleriano. Se un grafo connesso e ogni nodo ha grado pari, allora esso ha almeno un circuito euleriano. 2) Se un grafo ha pi di due nodi di grado dispari, allora non pu avere un percorso euleriano. Se un grafo connesso e ha esattamente due nodi di grado dispari, allora esso ha almeno un percorso euleriano. Ognuno di questi percorsi deve iniziare da un nodo dispari e finire sullaltro. 3) La somma dei gradi di tutti i nodi di un grafo un numero pari (il doppio del numero di nodi). In ogni grafo, il numero di vertici di grado dispari deve essere pari. Algoritmo di FLEURY 1) Prendere un nodo da cui iniziare (se ci sono nodi di grado dispari, sceglierne uno) 2) Ogni volta che devo scegliere, scelgo sempre di viaggiare lungo un arco che non taglia fuori parte del grafo. 3) Etichettare i nodi nellordine in cui li attraverso 4) Quando non posso pi viaggiare lalgoritmo finito.

Konigsberg problem: abbiamo tre vertici con grado 3 e uno con grado 5. Ci sono pi di due nodi con grado dispari, sappiamo che non vi un percorso euleriano.

Problema del postino cinese (CPP) Dal momento che non sempre si incontra il criterio del circuito euleriano, rilassiamo la richiesta euleriana (esattamente una volta) nel seguente modo: - Ogni arco attraversato almeno una volta - Gli archi sono attraversati al minimo costo Per il problema del CPP consideriamo un grafo pesato. Definizione: trovare un cammino chiuso di lunghezza minima che attraversa ogni arco almeno una volta. STEP1: identificare un set S di nodi (pari) di grado dispari STEP2: per ogni coppia di vertici u,v in S trovare la lunghezza del percorso pi breve unendo u a v STEP3: accoppiare i nodi STEP4: le coppie che minimizzano la somma devono essere attraversati pi di una volta, per esempio inserendo archi addizionali alle coppie.

STEP1: i nodi di grado dispari sono b, d, e, f. Ci sono tre possibili soluzioni per questo step. STEP2: (b,d) - (e,f) 5+4+7 = 16 (b,e) - (d,f) 8 + 7 + 7 = 22 (b,f) - (d,e) 6 + 5 + 7 = 18 STEP3: accoppiare i vertici STEP 4:

Questo nuovo grafo contiene un circuito euleriano e consente di coprire due volte gli archi (a,b) (a,d) (e,h) (f,h): a-b-a-d-g-e-h-f-e-h-f-c-b-e-d-a per un costo pari a 88.

Hamiltonianit necessario un circuito che inizia da un dato nodo di un grafo, passando per ogni nodo esattamente una volta, e ritorni al nodo iniziale. Per il teorema di Dirac, se ogni nodo di un grafo connesso con tre o pi nodi adiacente ad almeno la met dei restanti nodi, allora il grafo ha un circuito hamiltoniano (due nodi sono adiacenti se connessi da un arco). Propriet di un circuito hamiltoniano - Grafo completo: un grafo in cui ogni nodo unito ad ogni altro da esattamente un arco - I grafi completi hanno molti circuiti hamiltoniani - In un grafo completo con N nodi, ogni nodo ha grado N-1 - Il numero totale di archi in un grafo completo con N nodi N (N-1)/2 - Un grafo completo con N nodi ha (N-1)! circuiti hamiltoniani - Un circuito hamiltoniano ottimale quello con il peso minore possibile. Una delle principale applicazioni riguarda il TSP. PROBLEMI di FACILITY LOCATION Lobbiettivo quello di trovare il miglior posizionamento di una facility in una rete o in un grafo. Lobbiettivo generale quello di localizzare un numero ottimale di facility in accordo ad una specifica funzione di costo. Il problema del set covering appartiene a questa categoria. Ad esempio, si pu considerare un grafo dove gli archi rappresentano la rete stradale mentre i nodi le possibili location per un ospedale, stazioni di polizia, ecc. Le facility possono essere localizzate sui vertici di un grafo oppure su punti degli archi. 1) P- median (minsum): minimizzare la somma totale delle distanze dai nodi del grafo alla facility.

d (Vi, Vj) = distanza dal nodo i al nodo j W (Vi) = peso del nodo i sul grafo 1- median il punto x del grafo G che minimizza la funzione precedente. P- median un set di punti xp = (x1, x2, , xp) che minimizzano la seguente funzione:

Teorema di Hakimi In un grafico connesso e non orientato esiste almeno un vertice che 1- median un set P-median. 2) P- centre (minmax): minimizzare la distanza dalle facility al pi remoto nodo del grafo.

Eccentricit Di un punto x la maggiore distanza pesata tra x ed un altro nodo i.

Ogni punto del grafo G con leccentricit minima definito centro assoluto. Ogni nodo di G con la minima eccentricit definito centre- vertex di G. Per trovare il centre- vertex necessario: 1) Scrivere la matrice delle distanze dei nodi 2) Moltiplicare ogni colonna per il peso del nodo j o w(Vj) 3) Determinare il massimo di ogni riga e(x) [vedi sopra] 4) Il centre vertex quello con eccentricit minima Il P- centre assoluto il set di punti xp di G che minimizza la seguente funzione:

PROBLEMI di DECISIONE MULTICRITERIO ATTRIBUTI: propriet delle entit del mondo reale; quantit misurabile o qualit di una certa entit (decisione obbiettivo). OBBIETTIVO: indicatore che riguarda lo stato del sistema che deve essere raggiunto (indica le direzioni del miglioramento degli attributi); ad esempio, la minimizzazione dellesposizione allinquinamento dellaria. Spesso le decisione non sono prese da un singolo individuo ma da pi decision maker. Quando ci sono pi decision maker o decision group necessario distinguere tra un team e una coalizione. Il primo ha preferenze in accordo, mentre per il secondo questo pu non essere vero. Ci sono due tipi di decisioni: competitive e indipendenti. Ci sono due cause relative allINCERTEZZA per un processo decisionale: la validit dellinformazione e gli eventi futuri che possono condizionare la preferenza di differenti alternative. I problemi decisionali possono essere riferiti semplicemente a situazione deterministiche o a decisioni in regime di incertezza: - Lincertezza relativa a informazioni per la situazione decisionale (problemi decisionali probabilistici e stocastici) - Lincertezza relativa alla descrizione della significativit degli eventi o fenomeni (problemi decisionali fuzzy). Problemi MULTI OBBIETTIVO

Subject to:

Goal Programming applicata a sistemi lineari, anche se non ci sono limiti riguardanti i sistemi non lineari. Quando lobbiettivo definito dal decision maker (valore desiderato per gli obbiettivi), la metodologia prova a minimizzare la deviazione dal goal.

ESEMPIO (Goal Programming) Unagenzia sta organizzando in un dato territorio la produzione di legno e di mucche. Le due alternative manageriali hanno due costi differenti in termini di allevamento e produzione di legna. Budget = 75 000 100 animali al mese ogni 100 acri Produzione di almeno 1 mln di legna Budget goal: 60 x1 + 80 x2 = 75 Cows goal: 20 x1 + 10 x2 = 15 Wood goal: x1 + 3 x2 1 d1+ d1d2+ d2distanza positiva e negativa dal budget goal distanza positiva e negativa dal budget cows

One way goal:

Deviazioni pesate: Programmazione lineare parametrica Corrisponde ad unanalisi di sensitivit razionale. Gli obbiettivi sono sommati con un opportuno coefficiente sul quale impostata lanalisi di sensitivit. ESEMPIO (PLP) Il proprietario di unarea rurale sta considerando di convertire parte dei suoi 8 ettari di terreno in unarea ricreativa, il prossimo anno. Egli vuole analizzarne le conseguenze. Al momento, 6 ettari sono di foresta mentre gli altri 2 sono utilizzati per la produzione di legname. Il proprietario ritiene che questi due ettari pi altri due possano essere utilizzati per questa nuova attivit. Per la foresta lutile di 1000 /ettaro, mentre per larea ricreativa egli paga 1000 /ettaro. Il proprietario non vuole pagare pi di 3000 di tasse.

Egli vuole massimizzare i profitti. Ogni ettaro di legname d un profitto di 5000 /ettaro e per la ricreazione necessario pagare 2000 /ettaro questanno. Egli vuole massimizzare lenergia netta prodotta. Larea ricreazionale produce 4 * 109 J/ettaro di energia equivalente, mentre per il legname 10 9 J/ettaro per il legname. x1= suolo per il legname x2= suolo per le attivit ricreazionali flusso di cassa energia netta tasse suolo totale suolo per il legname suolo per la ricreazione

- x1 + 4 x2 -10 + Uno dei due obbiettivi selezionato e considerato come una constraints, parametrizzando il lato destro dellequazione ed fatta unanalisi di sensitivit su tale parametro.

Ottimalit di Pareto Una decisione x definita soluzione di Pareto se accettabile e non vi sono tali che per tutti gli i = 1, , k con eguaglianza stretta esclusa una i

La non unicit della soluzione ottimale di Pareto non uno svantaggio ma un vantaggio. Ci sono due metodi per parametrizzare le decisioni ottimali di Pareto: - Usare coefficienti di pesatura massimizzando la somma pesata - Usare obbiettivi di riferimento Metodologia Reference Point Pu essere considerata una generalizzazione della programmazione degli obbiettivi. Sono utilizzati obbiettivi di riferimento che possono essere realistici, ma si usano pi funzioni complicate da ottimizzare, definite achievement functions. Obbiettivo qi necessario definire il range di validit o Nadir (limite inferiore) o UTOPIA (limite superiore).

Un modo classico per calcolare un punto di efficienza massimizzare una funzione pesata lineare scalarizzata:

Supponendo che tutti gli obbiettivi siano massimizzati, la forma pi semplice di achievement function data da:

= parametro piccolo COMPLESSIT COMPUTAZIONALE Si considera la complessit temporale del caso peggiore T(n): T(n) = max t(x) con |x|=n Dove t(x) il running time dellalgoritmo per il dato x in input. Invece di considerare il preciso numero T(n) delle operazioni elementari, si considera il comportamento asintotico di T(n) per un valore grande di n: - T(n) al massimo di ordine g(n) e si scrive T(n) = g(n) con c 0 e per n n0 T(n) c g(n) - T(n) di ordine g(n) e si scrive T(n) = (g(n)) con c1 e c2 0 e n n0 c1 g(n) T(n) c2 g(n) Nella complessit computazionale, tutti i problemi risolvibili con un algoritmo polinomiale con complessit (nk) per un dato k sono definiti trattabili. Problemi che sono risolvibili solo con algoritmi non polinomiali, con ordine (2n) e (n!), sono definiti non trattabili. Lalgoritmo di Prim, usato per trovare un MST, un problema trattabile e ha una complessit dellordine O (n2 log n). Mentre lalgoritmo TSP ha una complessit O(n!) ed un problema intrattabile.

Ci sono n! possibili assegnazioni di n compiti a n lavoratori, quindi lenumerazione proibitiva. In contrasto con il TSP, si pu risolvere lAssignment in un tempo polinomiale, per esempio, utilizzando lalgoritmo ungherese dellordine O(n3). Consideriamo adesso i problemi decisionale, la cui soluzione si o no. Un problema di ottimizzazione pu essere convertito in un problema decisionale aggiungendo un bound B. per quanto riguarda il circuito euleriano, questo un problema trattabile grazie al teorema di Eulero, mentre trovare un ciclo hamiltoniano un problema intrattabile. Classi di complessit - POLINOMIALE Un problema decisionale P un elemento decisionale della classe P o polinomiale se e solo se risolvibile con un algoritmo (circuito euleriano, coloring, MST)- POLINOMIALE non DETERMINISTICO Un problema decisionale P nella classe NP se e solo se un algoritmo non deterministico lo risolve in un tempo polinomiale. Gli algoritmi convenzionali o deterministici sono casi speciali di algoritmi non deterministici, quindi P contenuto in NP. La classe NP consiste di tutti i problemi decisionali la cui difficolt la taglia dello spezio di ricerca, che cresce esponenzialmente con la taglia del problema. Questi problemi sono intrattabili se nessun intuito matematico fornisce una scorciatoia matematica per evitare una ricerca esauriente. - Completezza NP I problemi definiti NP-complete sono considerati intrattabili finch non viene implementato un algoritmo di tempo polinomiale per uno di essi (riduzione polinomiale) - NP- hard Un problema considerato NP-hard se un algoritmo per risolverlo pu essere tradotto in un altro che consente di risolvere un qualsiasi altro problema NP. PROGRAMMAZIONE DINAMICA una procedura di programmazione matematica per risolvere modelli di ottimizzazione con una specifica formulazione. Questi modelli si riferiscono ad assegnamenti sequenziali. ESEMPIO (DP) Pianificazione di Land use Una municipalit proprietaria di un terreno di 60 ha e deve pianificare 10 ha in lotti. Un esperto deve valutare tre possibili opzioni per massimizzare i guadagni: commerciale 6 A 0,6 residenziale A 1,1 ricreazionale 50 (1-e -A/15)

Notazione DP DP una procedura sequenziale per assegnare risorse nelle quali ad ogni step (1,2 N) una o pi risorse possono essere assegnate. St = quantit di risorse valide allo step t Xt = variabile decisionale, ammontare delle risorse assegnate allo step t (area) t = set delle possibili assignments allo step t. Una funzione di costo definita relativamente ad ogni step t: rt (St, xt)