5.1 Metodo Branch and Bound

Documenti analoghi
3.4 Metodo di Branch and Bound

5.3 Metodo dei piani di taglio

Esercizi sulla Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera

4.5 Metodo del simplesso

Programmazione a numeri interi: il metodo del Branch and Bound

Algoritmo di Branch & Bound

Algoritmi generali per PLI

3.3 Problemi di PLI facili

RICERCA OPERATIVA. Tema d esame del 13/12/2005

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

Algoritmo dibranch & Bound

Branch and Bound. Branch and Bound p. 1/3

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

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

Massimo flusso e matching

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

METODI DELLA RICERCA OPERATIVA

Il metodo dei Piani di Taglio (Cutting Planes Method)

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

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 1)

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

Algoritmo Branch and Cut (B&C)

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

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

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

1 Il metodo dei tagli di Gomory

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

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

3.2 Rilassamenti lineari/combinatori e bounds

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

COMPITO DI RICERCA OPERATIVA. min 2x 1 x 2 + x 3 x 4 x 1 x 2 + x 3 + x 4 = 5 x 1 + x 2 + x 3 3. x 1, x 2, x 3, x 4, x 5 I

COMPITO DI RICERCA OPERATIVA. max 8 5x 1 3x 2 x 3 = 1 + 4x 1 + x 2 x 4 = 1 x 1 + x 2 x 5 = 5 x 1 x 2

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

Parte III: Algoritmo di Branch-and-Bound

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

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

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo

3.6 Metodi basati sui piani di taglio

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Programmazione Lineare Intera (PLI)

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Branch-and-bound per KNAPSACK

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

Esame di Ricerca Operativa del 07/09/2016

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

COMPITO DI RICERCA OPERATIVA APPELLO DEL 07/04/04

Algoritmo del simplesso

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 + x 2 1 x 1 + x 2 2. Lo si trasformi in forma standard e se ne determini una soluzione ottima.

min 2x 1 +4x 2 2x 3 +2x 4 x 1 +4x 2 +2x 3 + x 4 =6 2x 1 + x 2 +2x 3 + x 5 =3 x 0.

Tecniche di Decomposizione per Programmazione Lineare Intera (Mista)

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

2.2 Alberi di supporto di costo ottimo

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

x 1 x 2 x 3 x 5 La base iniziale è B 0 = I e risulta x B 0 = , x N 0 = Iterazione 0. Calcolo dei costi ridotti. γ 0 = c N 0 (N 0 ) T c B 0 =

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

Esame di Ricerca Operativa del 09/01/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

2.2 Alberi di supporto di costo ottimo

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

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

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

max z = c T x s.t. Ax b

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1

Esame di Ricerca Operativa del 11/02/2015

4. METODI DUALI DEL SIMPLESSO

Esame di Ricerca Operativa. x 1 +2 x 2 6 x 1 +x 2 6 x 1 4 x 1 1

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Corso di RICERCA OPERATIVA 1 (Fischetti) Simulazione scritto del 31 Gennaio Tempo consentito: due ore. Cognome studente:... Nome:... Matr.:...

Esame di Ricerca Operativa del 13/06/17. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Si consideri il seguente tableau ottimo di un problema di programmazione lineare

Esame di Ricerca Operativa del 19/01/2016

Esame di Ricerca Operativa del 09/06/14. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esercizio 1. Variabili decisionali:

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

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

Esame di Ricerca Operativa del 19/01/2016

5.5 Programmazione quadratica (PQ)

Esame di Ricerca Operativa del 30/06/14. max 4 x 1 7 x 2 x 1 +7 x 2 7 x 1 4 x 2 7 x 1 +5 x 2 5 x 1 x 2 5 x 2 1 x 1 +4 x 2 6

Esame di Ricerca Operativa del 18/06/18

2.3.3 Cammini ottimi nei grafi senza circuiti

Introduzione ai Problemi di Flusso su Reti

5.5 Metodi generali per la soluzione di problemi

Lezioni di Ricerca Operativa

Dualitá. Dualitá p. 1/4

Transcript:

5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva) della regione ammissibile. Applicabile ai problemi di ottimizzazione combinatoria e continua. E. Amaldi Fondamenti di R. O. Politecnico di Milano

z = min{ c(x) : x X } Suddivisione ( branching ): Sia X = X X k una partizione di X in k sottoinsiemi ( X i X j = per ogni coppia i j ) e z i = min{ c(x) : x X i } per i =,, k Chiaramente z = min{ c(x) : x X } = min{z,, z k } E. Amaldi Fondamenti di R. O. Politecnico di Milano 2

Tecnica di bounding : Per ogni sottoproblema z i = min{ c(x) : x X i } i) determinare una soluzione ottima di min{ c(x) : x X i } (modo esplicito), oppure ii) dimostrare che X i = (modo esplicito), oppure iii) dimostrare che z i z migliore soluzione ammissibile trovata in precedenza (modo implicito). Se il sottoproblema non è risolto vengono generati nuovi sottoproblemi mediante suddivisione. E. Amaldi Fondamenti di R. O. Politecnico di Milano 3

5.. Branch and Bound per PLI Sia un PLI min{ c T x : Ax = b, x 0 interi } Branching : Suddividere la regione ammissibile X in sottoregioni esaustive ed esclusive (partizione). Risolvere il rilassamento continuo min{ c T x : Ax = b, x 0 } e siano x una soluzione ottima e z PL =c T x il valore ottimo. E. Amaldi Fondamenti di R. O. Politecnico di Milano 4

Se x intera, x è anche ottima per PLI, altrimenti x h frazionaria e si considerano i due sottoproblemi: PLI : min{ c T x : Ax = b, x h x h, x 0 interi } PLI 2 : min{ c T x : Ax = b, x h x h +, x 0 interi } Bounding : Determinare un bound (per difetto se PLI di min) sul valore ottimo z i di un sottoproblema di PLI risolvendo il relativo rilassamento continuo. E. Amaldi Fondamenti di R. O. Politecnico di Milano 5

Esempio: 9 8 x 2 9x + 5x 2 = 45 max PLI z = 8x + 5x 2 x +x 2 6 9x +5x 2 45 x, x 2 0 interi 7 6 5 4 3 2 x + x 2 = 6 x = 5/4 z PL = 4.25 9/4 z PL z * PLI 2 3 z = 20 Poiché x e x 2 frazionarie, sceglierne una per il passo di branching x E. Amaldi Fondamenti di R. O. Politecnico di Milano 6 4 5 6 x

Regione ammissibile X suddivisa in X e X 2 imponendo: x x = 3 o x x + = 4 x 2 vincoli esaustivi ed esclusivi z = 20 Sottoproblema S 9 8 7 6 5 4 3 sottoregione X 2 Sottoproblema S 2 sottoregione X 2 intera! z * PLI z PL sol. x = 3 z PL = 39 3 sol. x = 4 z PL2 = 4 9/5 x 2 3 4 5 6 E. Amaldi Fondamenti di R. O. Politecnico di Milano 7

Dopo aver considerato X, migliore soluzione ammissibile (intera) trovata finora: x = 3 con z = 39 3 Visto che z PL2 = 4 > 39, X 2 può contenere una soluzione ammissibile del PLI migliore. Partizione di X 2 in X 3 e X 4 imponendo: x 2 x 2 = o x 2 x 2 +=2 E. Amaldi Fondamenti di R. O. Politecnico di Milano 8

x 2 4 3 2 z = 20 x 2 = 2 x 2 = Sottoproblema S 4 è inammissibile (X 4 = ø) sol. x = con z PL3 = 365/9 40/9 2 3 4 5 6 x Sottoproblema S 3 sottoregione X 3 E. Amaldi Fondamenti di R. O. Politecnico di Milano 9

Albero decisionale: ( branching tree ) x 3 PL x 4 migliore sol. ammissibile trovata finora z PL2 = 39 sol. intera S S 2 z PL2 = 4 x 2 x 2 2 z PL3 = 365/9 S 3 S 4 inammissibile X 4 =ø E. Amaldi Fondamenti di R. O. Politecnico di Milano 0

Visto che z PL3 = 365/9 > 39, X 3 può contenere una soluzione ammissibile del PLI migliore. Partizione di X 3 in X 5 e X 6 imponendo: x x = 4 o x x + = 5 x = 40/9 E. Amaldi Fondamenti di R. O. Politecnico di Milano

4 3 x 2 z = 20 sol. di S 5 : x = 4 intera con z PL5 = 37 2 x = 4 x = 5 unica sol. ammissibile di S 6 5 x = 0 intera x z PL6 = 40 2 3 4 5 6 Sottoproblema S 5 Soluzione intera (anche ammissibile per PLI) ma con valore peggiore di x = 3 con z = 39 3 Migliore sol. trovata soluzione ottima Branch & Bound garantisce soluzione ottima (metodo esatto) E. Amaldi Fondamenti di R. O. Politecnico di Milano 2

Albero decisionale x 2 2 S 4 X 4 = ø inammissibile radice PL z = 65 4 x = 5 4 x2 = 9 4 x 4 x 3 z = 4 x x 2 z = 39 x x = 4 2 S 2 = 9 5 S = 3 = 3 x 2 intera S z = 365 9 x 40 = 9 x = 2 3 x 5 x 4 z = 40 z = 37 E. Amaldi Fondamenti di R. O. Politecnico di Milano 3 x x x x 2 2 S = 5 = 0 S 6 5 = 4 = sol. intera ottima z * PLI = 40 intera

L albero non contiene necessariamente tutti i nodi possibili (2 d # foglie) Un nodo non ha figli -- è chiuso -- se vincoli iniziali + quelli sugli archi dalla radice sono incompatibili (S 4 ) soluzione del rilassamento continuo è intera (S ) soluzione ottima x PL del rilassamento continuo ha un valore c T x PL peggiore di quello della migliore soluzione ammissibile del PLI trovata finora. criterio di bounding intera E. Amaldi Fondamenti di R. O. Politecnico di Milano 4

NB: Nel terzo caso la sottoregione ammissibile del sottoproblema associato a quel nodo non può contenere una soluzione intera migliore della migliore soluzione del PLI trovata finora! Criterio di bounding permette spesso di eliminare gran parte dei nodi (sottoproblemi). E. Amaldi Fondamenti di R. O. Politecnico di Milano 5

Scelta del nodo (sottoproblema) da elaborare: Prima nodi più profondi (tecnica depth first ) procedimento ricorsivo semplice ma costoso in caso di scelta sbagliata Prima nodi più promettenti ( best bound first ) con valore del rilassamento continuo migliore Si generano tipicamente meno nodi ma problemi poco vincolati si aggiorna raramente la migliore soluzione ammissibile corrente E. Amaldi Fondamenti di R. O. Politecnico di Milano 6

Scelta variabile (frazionaria) di branching Scegliere la variabile x h con parte frazionaria più vicina a 0,5 così il nuovo vincolo è più significativo per i due sottoproblemi. E. Amaldi Fondamenti di R. O. Politecnico di Milano 7

Struttura dati Branch & Bound: problema di min m = ultimo nodo x opt = migliore soluzione intera trovata finora z opt = c T x opt = costo migliore soluzione intera trovata finora Q = coda dei nodi foglia attivi (quelli che possono avere nodi figli) Padre[t] = ±p p = indice nodo padre di t +/- figlio di sinistra o di destra E. Amaldi Fondamenti di R. O. Politecnico di Milano 8

LB[t] = lower bound associato a t Vbranch[t] = indice h della variabile x h di branching Valore[t] = valore x * h della variabile di branching NB: Se PL inammissibile, x * fittizio e c T x * = + Se c intero, LB[m] = c T x * E. Amaldi Fondamenti di R. O. Politecnico di Milano 9

Algoritmo Branch & Bound Elaborazione radice BEGIN m:=; Padre[]:=0; Q:= ; z opt := valore soluzione euristica (eventualmente + ); risolvi il rilassamento continuo min{c T x : Ax = b, x 0} e sia x * la soluzione ottima trovata; LB[]:= c T x * ; IF (x * intera) AND (c T x * < z opt ) THEN x opt := x * ; z opt := c T x * END-IF IF LB[] < z opt THEN scegli la variabile frazionaria x * h di branching; Vbranch[]:= h; Valore[]:= x * h ; Q := {} END-IF WHILE Q 0 DO /* elabora i nodi figli attivi */ scegli un nodo t Q; poni Q:= Q \ {t}; h:= Vbranch[t]; val:= Valore[t];... E. Amaldi Fondamenti di R. O. Politecnico di Milano 20

FOR figlio:= TO 2 DO /*genera i figli del nodo t */ m:= m+; IF figlio = THEN Padre[m]:= t; ELSE Padre[m]:= -t; END-IF definisci il problema PL m associato al nodo m (vincoli di PL t più x h val se figlio =, o x h val se figlio = 2); risolvi il problema PL m e sia x * la soluzione ottima trovata; LB[m]:= c T x * ; IF (x * intera) AND (c T x * < z opt ) THEN x opt := x * ; z opt := c T x * ; /* aggiorna la soluzione ottima */ Q:= Q \ {j Q : LB[j] z opt }; END-IF IF LB[m] < zopt THEN scegli la variabile frazionari x * k di branching; Vbranch[m]:= k; Valore[m]:= x * k ; Q:= Q {m}; END-IF END-FOR END-WHILE END E. Amaldi Fondamenti di R. O. Politecnico di Milano 2

Branch & Bound applicabile anche a PLI misti: considerare solo per branching le variabili frazionarie con vincolo di interezza. In realtà metodo generale per problemi di ottimizzazione combinatoria # finito (ma elevatissimo) di sol. ammissibili Ad es. sequenziamento, commesso viaggiatore, E. Amaldi Fondamenti di R. O. Politecnico di Milano 22

Basta Tecnica per suddividere un insieme di sol. ammissibili in sottoinsieme mutualmente esclusivi ( branch ) Procedura per determinare un limite sul costo di qualsiasi soluzione ammissibile in un dato sottoinsieme ( bound ) NB: Branch-and-Bound (B & B) anche utilizzabile come metodo approssimato (imponendo un limite su tempo o nodi esplorati) E. Amaldi Fondamenti di R. O. Politecnico di Milano 23

5..2 B & B per problemi di ottimizzazione combinatoria Esempio: problema di sequenziamento ( NP-difficile ) n lavori (jobs) da eseguire su una macchina Tempi di lavorazioni e le date limite di consegna: n = 4 jobs 2 3 4 tempo di lavorazione 6 4 5 8 scadenza 8 4 2 6 in giorni fine giorno 8 E. Amaldi Fondamenti di R. O. Politecnico di Milano 24

Determinare una sequenza che minimizza il ritardo totale. Per sequenza 2 3 4, ritardo totale = 0 + 6 + 3 + 7 = 6 definiamo x ij = se job i èil j-esimo eseguito 0 altrimenti giorni Idea: suddividere l insieme di tutte le soluzioni ammissibili a seconda del job eseguito per ultimo. Chiaramente x 4 = o x 24 = o x 34 = o x 44 = E. Amaldi Fondamenti di R. O. Politecnico di Milano 25

x 4 = x 24 = x 34 = x 44 = D = ritardo totale D 5 2 D 9 se x 44 =, job 4 è completato alla fine del giorno 6 + 4 + 5 + 8 = 23 cioè con ritardo di 23 6 = 7 3 D x 3 = 5 D 4 x 23 = 4 D 7 6 D 8 x 33 = 7 D 0 x 2 = x 22 = Branching effettuato sul nodo con limite inferiore su D più piccolo. 8 D = 2 9 D = 6 nodo 4; nodo 7; nodo 8; E. Amaldi Fondamenti di R. O. Politecnico di Milano 26

Per nodo 7: job 4 per ultimo con ritardo di 7 job 3 per penultimo con ritardo di 6 + 4 + 5 2 = 3 giorni D 7 + 3 = 0 5 nodo 8 (sequenza 2 3 4) sol. ammissibile candidata con ritardo totale = 2. NB: nodi, 2, 5 e 6 possono essere chiusi! E. Amaldi Fondamenti di R. O. Politecnico di Milano 27

x 4 = x 24 = x 34 = x 44 = D 5 2 D 9 x 3 = 3 D x 43 = 4 D 7 job 3 ultimo + (6 + 4 + 8 8) = 2 job penultimo 0 D 2 x 23 = D 25 2 D 3 + (6 + 4 + 8 6) = 3 job 4 penultimo sequenza ottima:2 3 4 con D =2 E. Amaldi Fondamenti di R. O. Politecnico di Milano 28

Nel Branch and Bound per PLI come aggiornare in modo efficiente un tableau ottimo quando si aggiunge un vincolo? min c T x max y T b (P) Ax = b x 0 (D) y T A c T y m E. Amaldi Fondamenti di R. O. Politecnico di Milano 29

5.2 Algoritmo del simplesso duale Sia x x m x m+ x n -z x B[] x B[n] -z 0 b 0 0 I c T N N con c 0 y T = c T B B- sol. ammiss. di (D) Simplesso primale mantiene ammiss. (P) e cerca ammiss. (D) Simplesso duale mantiene ammiss. (D) e cerca ammiss. (P) E. Amaldi Fondamenti di R. O. Politecnico di Milano 30

Scelta indice s della variabile fuori base da fare entrare nella base e indice r di quella in base da fare uscire in modo da mantenere l ammissibilità di (D), ovvero c 0 Se a rs < 0, dividendo la r-esima riga per a rs si ottiene un a r0 0 (si fa un passo verso una soluzione di base ammissibile di (P)). Per ottenere c s = 0 bisogna inoltre moltiplicare la corrispondente r-esima riga x a r rs + j N a a rj rs x j = b r per c s e sottrarla alla riga 0 della funzione obiettivo E. Amaldi Fondamenti di R. O. Politecnico di Milano 3

Poiché c ~ j = c j di (D) è necessario che c s a a rj rs ~ c j per mantenere l ammissibilità 0 j e quindi si deve imporre dato che a rs < 0. c j c s a a rj rs = c s a rj a rs (*) Se a rj > 0 vale certamente (*) Se < 0 deve valere a rj c a j rj c a s rs j E. Amaldi Fondamenti di R. O. Politecnico di Milano 32

Se b 0 tableau ottimo (test di ottimalità) altrimenti scegliere x B[r] uscente dalla base con b r < 0 scegliere fra x j con a rj < 0 quella entrante x s t.c. c a s rs c j = min : arj < 0 arj + regola di Bland E. Amaldi Fondamenti di R. O. Politecnico di Milano 33

Esempio: min -x 4x 2 x +x 2 2 x +3x 2 3 x 2 2/3 x, x 2 0 Tralasciando gli ultimi due -z 0 - -4 vincoli si ha il tableau: x 3 2 x x 2 x 3 0 Con un operazione di pivot -z 8 3 0 del simplesso primale: x 2 2 x x 2 x 3 4 E. Amaldi Fondamenti di R. O. Politecnico di Milano 34

La soluzione di base ottima x * = [0, 2, 0] T corrisponde al punto A che viola entrambi i vincoli tralasciati. Aggiungendo le variabili di scarto x 4 ed x 5 e inserendo le due equazioni nel tableau corrente si ottiene: x x 2 x 3 x 4 x 5 -z 8 3 0 4 0 0 x 2 2 0 0 x 4 3 3 0 0 2/3 0 0 0 x 5 E. Amaldi Fondamenti di R. O. Politecnico di Milano 35

2 x 2 A z = -x 4x 2 2/3 B x + x 2 2 C x 2 2/3 x + 3x 2 3 2 x Rappresentazione grafica dell introduzione di nuovi vincoli E. Amaldi Fondamenti di R. O. Politecnico di Milano 36

Per mettere il tableau in forma canonica (eliminare la variabile di base x 2 dalle ultime due righe dalle espressioni di x 4 e x 5 ) basta la seguente operazione di pivot: x 2 x 3 x 4 x 5 -z 8 3 0 4 0 0 x 2 2 0 0 x 4 3 3 0 0 2/3 0 0 0 x 5 x E. Amaldi Fondamenti di R. O. Politecnico di Milano 37

-z x 3 4 x 4 0 x 2 2 0 0 x 4-3 -2 0-3 0-4/3-0 - 0 x 5 8 x 3 x 2 0 x 5 0 soluzione di base associata è ancora x * = [0, 2, 0] T NB: i valori negativi delle nuove variabili di base x 4 = -3 e x 5 = -4/3 esprimono il fatto che questa soluzione viola i vincoli appena aggiunti. E. Amaldi Fondamenti di R. O. Politecnico di Milano 38

Dato che i costi ridotti sono tutti non negativi, si può applicare l algoritmo del simplesso duale. Con l operazione di pivot su -3 si ottiene il tableau associato al punto x = [0,,, 0, -/3] T -- punto B -z x 3 0 x 4 4/3 x 5 0 x 2 /3 0 /3 0 x 3 2/3 0 -/3 0 -/3 -/3 0 0 -/3 x 5 4 x /3 x 2 0 E. Amaldi Fondamenti di R. O. Politecnico di Milano 39

Operazione di pivot su -/3 porta al tableau ottimo associato al vertice ottimo x * = [, 2/3, /3, 0, 0] T -- punto C -z x 3 0 x 4 x 5 x 2 2/3 0 0 0 x 3 /3 0 0-2 0 0-3 x /3 x 0 x 2 0 E. Amaldi Fondamenti di R. O. Politecnico di Milano 40