2. ALGORITMO DEL SIMPLESSO

Похожие документы
Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

2.6 Calcolo degli equilibri di Nash

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

4.5 Metodo del simplesso

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

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

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

LEZIONE Equazioni matriciali. Negli Esempi e si sono studiati più sistemi diversi AX 1 = B 1, AX 2 = R m,n, B = (b i,h ) 1 i m

Prerequisiti didattici

Il modello duale. Capitolo settimo. Introduzione

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

Esercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania

Metodi per la risoluzione di sistemi lineari

Ricerca Operativa Note su Programmazione Lineare e Metodo del Simplesso (parte III)

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

Anno 4 Matrice inversa

ha come obiettivo quello di costruire a partire da A una matrice U, m n, che abbia il

Parte V: Rilassamento Lagrangiano

Esercitazione n o 3 per il corso di Ricerca Operativa

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

2x 5y +4z = 3 x 2y + z =5 x 4y +6z = A =

IL METODO DEL SIMPLESSO

Massimi e minimi vincolati

LEZIONE 15. (15.1.2) p(x) = a 0 x n + a 1 x n a n 1 x + a n = a h x n h.

Esercizi sui sistemi di equazioni lineari.

Problemi di Flusso: Il modello del Trasporto

SPAZI VETTORIALI. Esercizi Esercizio 1. Sia V := R 3. Stabilire quale dei seguenti sottoinsiemi di V sono suoi sottospazi:

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Equazioni lineari con due o più incognite

Teorema di Thevenin generalizzato

Corso di Matematica per la Chimica

LEZIONE 8. k e w = wx ı + w y j + w z. k di R 3 definiamo prodotto scalare di v e w il numero

Esercizi di Matematica di Base Scienze biologiche e Scienze e Tecnologie dell Ambiente

Le Derivate. Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Prodotti scalari e matrici

Sistemi di equazioni lineari

1.1 Coordinate sulla retta e nel piano; rette nel piano

04 - Numeri Complessi

Ricerca Operativa Note su Programmazione Lineare e Metodo del Simplesso (parte II)

Esercitazione di Matematica su matrici e sistemi lineari

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Esercizio 1 Trovare, se esistono, le soluzioni del sistema lineare. y + 3z = 3 x y + z = 0. { x + y = 1

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a Homework n 28. Docente: Laura Palagi

Equazioni di 2 grado

a + 2b + c 3d = 0, a + c d = 0 c d

per la matrice R, e: I 1 = G 11 V 1 + G 12 V 2, I 2 = G 21 V 1 + G 22 V 2,

Metodo dei minimi quadrati e matrice pseudoinversa

Chi non risolve esercizi non impara la matematica.

Metodo di Gauss-Jordan 1

Esercizi di ottimizzazione vincolata

Caso di A non regolare

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Corso di Calcolo Numerico

Secondo parziale di Matematica per l Economia (esempio)

Appunti di Algebra Lineare. Distanze

CLASSIFICAZIONE DELLE CONICHE AFFINI

UNIVERSITÀ di ROMA TOR VERGATA

La codifica digitale

Anno 3 Equazione dell'ellisse

Corso di Informatica Modulo T1 1 - Il concetto di problema

SISTEMI LINEARI MATRICI E SISTEMI 1

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16

Cosa è l Informatica?

La domanda che ci si deve porre innanzitutto per iniziare a risolvere questa disequazione è la seguente:

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Domande 1. La domanda e l offerta del bene 1 sono date rispettivamente da:

ESERCITAZIONE: ESPONENZIALI E LOGARITMI

Il metodo del simplesso. Il metodo del simplesso p. 1/12

FUNZIONI ELEMENTARI, DISEQUAZIONI, NUMERI REALI, PRINCIPIO DI INDUZIONE Esercizi risolti

(1;1) y=2x-1. Fig. G4.1 Retta tangente a y=x 2 nel suo punto (1;1).

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

TEMI D ESAME DI ANALISI MATEMATICA I

Disequazioni - ulteriori esercizi proposti 1

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

Ricerca Operativa 2. Introduzione al metodo del Simplesso

8. Completamento di uno spazio di misura.

Rappresentazione dei dati in memoria

Dipendenza e indipendenza lineare

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Esercitazioni di Meccanica Quantistica I

Studio di una funzione razionale fratta

Matematica II,

PIANO CARTESIANO e RETTE classi 2 A/D 2009/2010

Geometria BIAR Esercizi 2

ALGORITMO DEL SIMPLESSO

Integrale indefinito

Un esempio di applicazione della programmazione lineare intera: il Sudoku

Esercizi di Algebra II

Sistemi di equazioni lineari

2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi)

Corso di Calcolo Numerico

1 Forme quadratiche 1. 2 Segno di una forma quadratica Il metodo dei minori principali Soluzioni degli esercizi 7.

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Транскрипт:

. ALGORITMO DEL SIMPLESSO R. Tadei

Una piccola introduzione R. Tadei

SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione lineare. Sono fondamentali le nozioni di pivot, di soluzione di base, e in generale tutti i concetti che sono stati espressi nel capitolo precedente sulla programmazione lineare. Dovrebbe diventare chiaro che lo studio del problema in termini di tableau, pivot, coefficienti di costo relativo ecc., è il coronamento di tutto il discorso precedente. Concludiamo il capitolo con la presentazione del metodo del simplesso revisionato, ovvero un modo più veloce per trovare la soluzione del problema. R. Tadei 3

Il Metodo del Simplesso è un metodo iterativo che, esplorando l insieme delle soluzioni basiche, raggiunge l ottimo, se esiste, in un numero finito di iterazioni. Supponiamo che il P.L. sia di minimo, in forma standard. Per operare, il Metodo necessita di una forma canonica equivalente. Se il tableau corrispondente non è in forma canonica allora bisogna cercare una soluzione ammissibile di base (slide 8), altrimenti si individua una s.a.b. iniziale ovvia e si procede con l algoritmo del simplesso. R. Tadei 4

Algoritmo del simplesso Ipotesi : si parte da una S.A.B. e dal tableau A=b in forma canonica. Si aggiunge una riga costituita dagli r j, j =,..., n e da -z 0 (valore, cambiato di segno, della f.o. nella s.a.b.) Tableau del simplesso a a a m a m a m a j a n b 0 0 : : : : 0 0 0 0 0 y,m y,m y j : y n y 0 : : y m,m y m,m y mj Y mn Y m0 0 r m r m r j r m -z 0 R. Tadei 5

i = y 0 i0 i m m i n Soluzione di base per ipotesi ammissibile, y i0 0, i =,..., m R. Tadei 6

Giustificazione dell'ultima riga del tableau Il tableau del simplesso è uguale a quello definito nel capitolo precedente, con l aggiunta dell ultima riga degli r j ; vediamone l utilità. La f.o. z = c T = c c... c n n può essere vista come un ulteriore vincolo del problema ; con l aggiunta della variabile (-z) otteniamo c c... c n n - z = 0 Aggiungiamo questa equazione come ultima riga nel tableau (.9) della slide 38 - CAP. Se si fa un operazione di pivot su a =, l ultima riga diventa : 0 c... c m (c m - y,m c )... (c n - y,n c n ) (0 - c y 0 ) Stessa operazione su a = : 0 0 c 3.. c m (c m - y,m c - y,m c )... - c y 0 - c y 0 R. Tadei 7

Si continua il procedimento per tutte le colonne delle var. di base e si ottiene : dove 0 0... 0 (r m )... (r n ) -z 0 m r = c y c = c z e m i, m i i= m m z = c y c y... c y 0 0 0 m m0 Con la base che si ha all inizio, la f.o. vale z=z 0. Ma, come si vede dalla (.5), se qualche r j è < di 0 conviene far entrare in base la variabile corrispondente a quella colonna. R. Tadei 8

Volendo minimizzare z, si ha la possibilità di migliorarne il livello z 0, aumentando quelle variabili per cui r j < 0 ; ora si deve individuare, se esiste, la variabile che esce dalla base : => se nella colonna della variabile candidata ad entrare tutti gli elementi sono < di 0, allora la var. non ha limiti superiori, per cui z (ottimo non limitato); => altrimenti esce la variabile della riga con il rapporto y io /y ij minore (con y ij >0), che rappresenta il livello massimo a cui può entrare la var. candidata. La nuova z 0 varrà : q entra e p esce z 0 = z 0 ( y p0 / y pq ) r q < z 0 (.) R. Tadei 9

I passi dell'algoritmo 0. formare il tableau del simplesso. se r j 0, j STOP ; la s.a.b. corrente è ottima. scegliere colonna q tale che r q < 0 per determinare la variabile da far entrare nella base (m q n) 3. calcolare i rapporti y i0 / y iq, con y iq > 0, i =,..., m. Se y iq 0, i =,..., m, STOP; problema illimitato, f. o.. Altrimenti, scegliere p = indice i corrispondente al rapporto y i0 / y iq minimo ( p è la variabile che esce dalla base ) 4. (p,q) è il pivot. Aggiornare il tableau con le operazioni di pivot. Ritornare al passo R. Tadei 0

R. Tadei Esempio 0 0, 0, 6 5 3.. 3 3 ma 3 3 3 3 3 t s

R. Tadei,6,, 0 6 5 3.. 3 3 min 6 3 5 3 4 3 3 K = = = = i t s i Trasformazione del problema in forma standard con l aggiunta delle variabili ausiliarie, 4 5 6, in questo caso di slack:

a a a 3 a 4 a 5 a 6 b Tableau iniziale 0 0 3 0 0 5 0 0 6 r j -3 - -3 0 0 0 0 N.B: con l aggiunta delle variabili di slack otteniamo subito una soluzione di base (non necessariamente ammissibile); j = j j = inoltre le z j sono uguali a zero perchè le m variabili di base sono tutte fittizie (sono infatti c j ciy ij cj quelle di slack) e quindi hanno costo c i nullo. Di conseguenza r i= j = c j R. Tadei 3 r c z = = BASE

Abbiamo fatto entrare in base a, uscendo a 4, ma la soluzione non è ancora ottima (come si può vedere dal seguente tableau); scegliamo allora di far entrare a 3 : esce quindi a 5 Pivot su 0 0-3 0-0 - 0 - - 0-0 - 0 0 f.o. (passata da 0 a -) R. Tadei 4

La soluzione non è ancora ottima, entra ed esce Pivot su 5 0 3-0 -3 0-0 -5 0 0-4 3-7 0 0-3 0 4 f.o. = -4 R. Tadei 5

Pivot su 5 /5 0 3/5 -/5 0 /5 0 3/5 -/5 /5 0 8/5 0 0-0 4 0 7/5 0 6/5 3/5 0 7/5 r j 0, j STOP, soluzione ottima La soluzione ottima trovata vale: = /5 ; = 0; 3 = 8/5; 4 = 0; 5 = 0; 6 = 4 La funzione obiettivo vale: z = -7/5 R. Tadei 6

. RICERCA DI UNA SOLUZIONE AMMISSIBILE DI BASE INIZIALE R. Tadei 7

Problema (fase del simplesso) Una soluzione ammissibile di base da cui partire con il simplesso non è sempre evidente, poichè non necessariamente il tableau del sistema è in forma canonica. Es: = 4 3 3 3 = 3 3 0, 0, 0 3 A = b 0 (.) trovare la s.a.b. R. Tadei 8

m in s. t. i m = y i y = b Introduciamo un nuovo problema, costruito su quello di partenza, in modo che risulti in forma canonica e sul quale, da quanto visto, possiamo utilizzare l algoritmo del simplesso. Se facciamo le cose in modo opportuno, il risultato che otteniamo è proprio una soluzione di base del problema di partenza. Si consideri il nuovo problema: A y 0 0 (.3) Se esiste s.a. alla (.) allora la (.3) ha come soluzione y i =0 per qualsiasi i R. Tadei 9

Risolvo il problema ausiliario : a.... a.... 0 b n a.... a 0.... b m mn m a.... a 0.... 0 z.................................... i i i in 0 perchè : m r = c z = 0 c y = y = a j j j i ij ij i= i= i= R. Tadei 0 m m ij

Esempio: min 4 s. t. 3 = 4 3 3 3 = 3 3 0, 0, 0 3 Una soluzione di base non è immediatamente visibile; R. Tadei

Studiamo il problema modificato: min( y y ) s. t. y = 4 3 3 3 y = 3 3,,, y, y 0; 3 In questo momento la soluzione di base è rappresentata da y =4 e y =3; Se il problema di partenza ha soluzione ammissibile di base riusciamo a far uscire dalla base del problema modificato y e y applicando il simplesso oppure il metodo del pivot. R. Tadei

Scelta ottima del vettore k da far entrare in base Esiste un modo per determinare quale sia il vettore ottimo da far entrare in base: min k ma i, y ik > 0 r k y y i 0 ik Perchè MAX? Avendo fissato k, devo scegliere il rapporto y io /y ik più piccolo ( con y ik >0 ) ma r k è minore di 0. Perchè MIN? Come si vede dalla (.) devo scegliere il minimo tra tutti i massimi trovati. R. Tadei 3

. METODO DEL SIMPLESSO REVISIONATO R. Tadei 4

Per un qualsiasi problema di p.l. si ha il sistema dei vincoli espresso nella forma : A=b La matrice A può essere vista come l unione di due sottomatrici B e D (dove B è la matrice quadrata formata dalle colonne che hanno la variabile in base) : Il sistema diventa: Esplicitando rispetto ad B : Sostituendo in z: Osservazione introduttiva A=[B D] [B D] [ B,, D ] T = b B = B - b - B - D D z = c B T (B - b - B - D D ) c D T D = =c B T B - b (c DT - c B T B - D) D R. Tadei 5

Osservazione (cont.) L ultima espressione esprime il costo di ogni soluzione nei termini D. Allora r D T = c D T - c B T B - D è il vettore dei costi relativi per le variabili non di base. In base a tutto ciò, definiamo come vettore dei moltiplicatori del simplesso, che avrà importanza fondamentale nello studio del simplesso duale, cioè il vettore λ T = c B T B - R. Tadei 6

Metodo del simplesso revisionato Sono dati : B - B = y 0 = B - b inverso della base corrente soluzione di base corrente Passo : Calcolare i moltiplicatori del simplesso λ T : λ T = c B T B - Calcolare i costi ridotti delle variabili fuori base: r D T = c DT - λ T D Se r D 0 STOP, B è ottima Passo : Altrimenti scegliere r j, ad esempio, più negativo; sia r q. Il vettore a q entra in base. Calcolare y q = B - a q (è il vettore a q espresso nel termini della base corrente). R. Tadei 7

Passo 3: Se y iq 0, i STOP, PROBLEMA ILLIMITATO Altrimenti trovare il vettore che lascia la base calcolando i rapporti y i0 / y iq, con y iq > 0 e scegliendo il minimo Passo 4: Sostituire in B il vettore che esce dalla base con il vettore che entra: Calcolare B - Calcolare B = B - b Tornare al passo ; cioè la nuova matrice inversa di base cioè la nuova soluzione di base R. Tadei 8

Riassumendo R. Tadei 9

SIMPLESSO Nel primo paragrafo di questo capitolo abbiamo trattato l algoritmo del simplesso, per il quale risulta fondamentale la formazione del tableau, formato dalla matrice del sistema dei vincoli scritta in forma canonica (slide 5-7), e lo abbiamo formalizzato (slide 0); è importante, però, andare oltre l applicazione meccanica dei passi illustrati: infatti leggendoli attentamente non può sfuggire che ogni passo è conseguenza o di teoremi, o di osservazioni che sono state fatte nel capitolo precedente; in questo senso il presente paragrafo rappresenta il completamento e l applicazione pratica di quanto precedentemente affermato e dimostrato. Le slide che vanno dalla numero alla numero 6 non sono altro che un esempio di applicazione pratica dell algoritmo. R. Tadei 30

Non è sicuramente sfuggito però che l algoritmo del simplesso, richiedendo come ingresso un tableau in forma canonica, può partire solo se abbiamo trovato una soluzione ammissibile di base, cosa che è immediata nel momento in cui il problema non in forma standard lo diventa con l aggiunta delle variabili di slack, ma che non è vera in generale; per risolvere questo problema, cioè quello di trovare una soluzione ammissibile di base dalla quale partire con il simplesso, abbiamo introdotto un problema fittizio costruito su quello di partenza, risolvibile con l algoritmo del simplesso, la cui soluzione, se esiste, rappresenta una possibile soluzione ammissibile di base per il problema dato; ovviamente da qui in avanti il problema è risolvibile con il simplesso e si procede applicando i passi dell algoritmo (slide 7 -). Infine in chiusura di paragrafo suggeriamo un modo per decidere quale variabile far entrare in base: a questo proposito è il caso di sottolineare che il simplesso dice quali variabili sono candidate ad entrare in base, ma non dice quale sia la scelta migliore tra tutte; R. Tadei 3

infatti se è vero che facendo entrare in base una determinata variabile si migliora il valore della funzione obiettivo, non è vero che tutte le variabili che potrebbero entrare in base migliorino allo stesso modo la funzione obiettivo; c è un modo per scegliere quella localmente migliore (slide 3). Il secondo paragrafo tratta il metodo del simplesso revisionato, che sostanzialmente realizza esattamente ciò che già realizzava l algoritmo standard del simplesso. La differenza tra i due metodi non è nell obiettivo, che è comune, ma nel metodo, cioè mentre il primo sfrutta pesantemente considerazioni teoriche, il secondo utilizza un approccio più analitico. Tutto questo ha un vantaggio, dal momento che non sarà sicuramente sfuggito che il simplesso è molto oneroso in quanto richiede ogni volta di aggiornare tutto il tableau, fatto questo che può diventare pesante se il problema in discussione presenta molte variabili. R. Tadei 3

Il pregio di questo secondo metodo consiste nel fare in modo che vengano utilizzati solo i dati che sono strettamente necessari; unico onere è l inversione ad ogni iterazione di una matrice, che non deve però preoccupare più di tanto, poiché, come verrà spiegato ad esercitazione, esiste un modo molto veloce e sicuro per realizzarla. Bisogna comunque tenere presente che questo metodo non è nato per essere applicato manualmente, quanto per rendere più facile la codifica da far eseguire al calcolatore, per il quale l inversione di una matrice, unica vera difficoltà, benché possa essere onerosa, non è un operazione particolarmente impegnativa (slide 4-8). R. Tadei 33