L ALGORITMO DEL SIMPLESSO REVISIONATO

Documenti analoghi
Il modello duale. Capitolo settimo. Introduzione

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

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

IL METODO DEL SIMPLESSO

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

4.5 Metodo del simplesso

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

Metodi per la risoluzione di sistemi lineari

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

x 1 x x 1 2 x 2 6 x 2 5 Indici di base Vettore Ammissibile Degenere (si/no) (si/no)

Prerequisiti didattici

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

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

Geometria BIAR Esercizi 2

SISTEMI LINEARI, METODO DI GAUSS

Teorema di Thevenin generalizzato

Esercitazione 5: Sistemi a risoluzione immediata.

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

3. Vettori, Spazi Vettoriali e Matrici

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

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

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

Chi non risolve esercizi non impara la matematica.

Corso di Matematica per la Chimica

Sistemi di equazioni lineari

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

Esercitazione n o 3 per il corso di Ricerca Operativa

SISTEMI LINEARI MATRICI E SISTEMI 1

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

ESERCIZIO SOLUZIONE. 13 Aprile 2011

1 Definizione di sistema lineare omogeneo.

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

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

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

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Esercizi per il corso di ricerca operativa 1

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

Argomento 13 Sistemi lineari

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

Risoluzione di problemi ingegneristici con Excel

Dipendenza e indipendenza lineare

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

Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Esercizi di ottimizzazione vincolata

Esame di Ricerca Operativa del 16/06/2015

ẋ 1 = 2x 1 + (sen 2 (x 1 ) + 1)x 2 + 2u (1) y = x 1

Linguaggio C++ 8. Matrici

Esercizi sui sistemi di equazioni lineari.

Equazioni di 2 grado

SISTEMI LINEARI. x 2y 2z = 0. Svolgimento. Procediamo con operazioni elementari di riga sulla matrice del primo sistema: R 2 R 2 3R

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

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. + γ.

1 - Matrice delle masse e delle rigidezze

Esercizi svolti sui sistemi lineari

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

Rilassamento Lagrangiano

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

Problemi di base di Elaborazione Numerica dei Segnali

SISTEMI DI EQUAZIONI LINEARI

ALGORITMO DEL SIMPLESSO

POTENZE DI MATRICI QUADRATE

Analisi della correlazione canonica

Ricerca Operativa 2. Introduzione al metodo del Simplesso

Problemi di Flusso: Il modello del Trasporto

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

Sistemi di equazioni lineari

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

Il metodo delle osservazioni indirette

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5

FUNZIONI LINEARI (Retta, punto di pareggio e relazioni lineari generalizzate)

Esercitazione di Matematica su matrici e sistemi lineari

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Elementi sulle diseguaglianze tra numeri relativi

Lezione 9: Le matrici

SISTEMI DI 1 GRADO CON DUE EQUAZIONI IN DUE INCOGNITE

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

Assemblaggio degli Elementi: Soluzione del Problema Strutturale Discreto

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Esercizi di Geometria Affine

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

1 Applicazioni lineari

C I R C O N F E R E N Z A...

LEZIONE 3. Typeset by AMS-TEX

ANTITRASFORMATA DI LAPLACE MODI DI UN SISTEMA

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,

La matrice delle correlazioni è la seguente:

ESERCITAZIONE MATLAB

Matematica II,

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

MATEMATICA LA CIRCONFERENZA GSCATULLO

Transcript:

L ALGORITMO DEL SIMPLESSO REVISIONATO L'algoritmo del simplesso revisionato costituisce una diversa implementazione dell algoritmo standard tesa a ridurre, sotto certe condizioni, il tempo di calcolo e l'occupazione di memoria richiesti. Anch'esso, dunque, partendo da una prima soluzione di base ammissibile si sposta verso la soluzione ottima con l'applicazione, ad ogni iterazione, del test di ottimalità ed il passaggio, qualora l ultima soluzione esaminata non sia ottima, ad una soluzione di base ammissibile migliore ed i criteri utilizzati sono quelli stessi di cui si serve il simplesso standard. Ciò che è rivisto nel simplesso revisionato è la procedura mediante la quale si perviene alle informazioni necessarie per effettuare il test di ottimalità e lo scambio tra variabile entrante e variabile uscente.

Le informazioni necessarie per effettuare tali operazioni sono: i coefficienti di costo modificati delle variabili non basiche per realizzare il test di ottimalità ed individuare la variabile entrante; la colonna dei tassi di assorbimento modificati della variabile entrante; la colonna dei termini noti modificati per individuare la variabile uscente. Per giungere alla conoscenza di questi tre vettori è necessario con la tecnica utilizzata nel simplesso standard modificare con una operazione di pivot, ad ogni iterazione, tutta la matrice A dei tassi di assorbimento. L'obiettivo del simplesso revisionato è quello di contenere, quando sia possibile, tale inconveniente.

PROCEDURA MATRICIALE PER LA TRASFORMAZIONE DI UN SISTEMA DI EQUAZIONI LINEARI IN FORMA CANONICA Sia Ax = b, un sistema di m relazioni in n variabili (n>m) a rango massimo. In tale ipotesi la matrice A conterrà almeno una matrice di base e si supponga, per semplicità di notazione, che essa sia costituita dalle ultime m colonne della matrice A del sistema. Si partizioni la matrice A nelle singole colonne p j (j=,2,...,n) dei coefficienti: e si ponga: A = [p,p 2,,p n ] = [p n-m+,p n-m+2,,p n ] Indicando con C la matrice residua composta dalle prime (n - m) colonne di A: C = [p,p 2,,p n-m ]

si può scrivere: A = [C ] Premoltiplicando per l'inversa - di si ha: - A = [ - C - ] Essendo - = I m e indicando con R il prodotto - C, si ottiene: - A = [R I m ] che costituisce la trasformazione, in forma canonica, della matrice A rispetto alla base.

CALCOLO DELL'INVERSA CON IL METODO DEL PIVOT Si consideri una matrice quadrata A di ordine m e si voglia calcolarne l'inversa A -. Si indichi con D una matrice con m righe e 2m colonne, costituita da due partizioni, la prima rappresentata dalla matrice A, la seconda dalla matrice identità I m di ordine m: D = [A I m ] Si trasformi, con il metodo del pivot, la matrice A in una matrice identità I m di ordine m: D = [I m W] Poiché nelle prime m colonne di D vi è la matrice identità, l'operazione effettuata equivale a: A - D = A - [A I m ] = [A - A A - I m ] dunque: W = A - e quindi: D' = [I m A - ]

Si voglia ricercare l'inversa della matrice: = 3 4 2 A La si riscriva completandola con la matrice identità di ordine due: 0 0 3 4 2 Con una operazione di pivot su a si ottiene: 4 0 5 0 2 Con una operazione di pivot su a 22 si ottiene: / 5 4 /5 2/ 5 3/ 5 0 0 da cui si ricava: = 5 / 5 4 / 5 2 / 5 3 / A

LA TAELLA DEL SIMPLESSO IN FORMA MATRICIALE Un problema p.l. con m vincoli ed n variabili può essere espresso attraverso un sistema di (m+) relazioni in (n+) variabili: in cui: A + x + = b + x + è il vettore colonna delle variabili del problema, comprensivo della variabile (-z): x + x = z b + è il vettore colonna dei termini noti aumentato di un'ultima componente, nulla, che rappresenta il valore iniziale della (-z): b + b = 0 A + è la matrice costituita dalla matrice dei tassi di assorbimento A aumentata del vettore dei coefficienti di costo e del vettore colonna relativo alla variabile (-z):

A + = A T c 0 Si partizioni il vettore x suddividendolo in : x N (vettore delle variabili non basiche); x (vettore delle variabili basiche (con la z); e si partizionino, corrispondentemente, la matrice A ed il vettore c T : x x = x N ; c T = [c T N c T ]; A=[N ] La relazione: A + x + = b + può essere allora scritta:

T T c N c 0 N N x x = 0 b Ponendo: = + T c N N N = + T c 0 La: T T c N c 0 N N x x = 0 b

può essere scritta: e dunque: [N + + ] x x N b = 0 N + x N + + x = b + Per portare il sistema in forma canonica rispetto alle variabili di base, si premoltiplichi per ( + ) - : ( + ) - N + x N + ( + ) - + x = ( + ) - b + (*) e si sostituisca l'espressione esplicita della ( + ) - :

Assegnata la matrice + : CALCOLO DELLA ( + ) - c 0 si vuole trovare una matrice X tale che sia: ovvero: c 0 + X = I m+ X X X2 2 X 22 = I m 0 0 Effettuando il prodotto righe per colonne al primo membro ed eguagliando agli elementi del secondo membro si ottiene: X + X 2 = I m X 2 + X 22 = 0

c X + X 2 = 0 c X 2 + X 22 = da cui si ricava: X = - X 2 = 0 X 2 = -c - X 22 = e dunque si ottiene: ( + ) - = c 0

È possibile, utilizzando l'espressione esplicita della ( + ) -, ottenere le espressioni dei diversi termini che costituiscono la (*). Il primo termine: 0 N + + ( ) N = = T T c c N c T N c T N N fornisce la matrice dei tassi di assorbimento ed il vettore dei coefficienti di costo delle variabili non basiche, modificati rispetto alla base. Il secondo termine: ( + ) - + = I m+ è la matrice identità corrispondente alle variabili di base.

Il terzo termine: 0 b + + ( ) b = = T c 0 c T b b è il vettore dei termini noti modificati, cioè i valori che delle variabili in base ed il valore della (-z). Ad una generica iterazione k, la tabella del simplesso contiene dunque il seguente insieme di informazioni: N x ΝΒ c N + I N m+ c e ponendo: c - = π T, si ottiene: x = c T b b N x c ΝΒ ðn N I m+ + x = Il vettore π viene indicato in letteratura come vettore dei moltiplicatori del simplesso. ð T b b

PASSAGGIO DA SIMPLESSO STANDARD A REVISIONATO Si riesaminino le informazioni necessarie nel simplesso per effettuare il test di ottimalità ed il passaggio ad una eventuale soluzione di base ammissibile migliore. Coefficienti di costo modificati delle variabili non basiche: c' T N = c T N - c T - N = c T N - π T N i coefficienti di costo modificati possono essere ottenuti a partire dalle informazioni iniziali c T N, c T, N purché sia nota la -, o anche dalle sole c T N ed N purché siano noti - e π. Vettore dei tassi di assorbimento modificati della variabile entrante: N' = - N il vettore dei tassi di assorbimento modificati della variabile entrante, può essere ottenuto con la espressione:

p' s = - p s Dunque p' s può essere ottenuta, a partire dal vettore iniziale p s, purché sia nota la -. Vettore dei termini noti modificati: b' = - b può essere ottenuto a partire dal vettore iniziale b, conoscendo la -. Il valore della funzione obiettivo: z = -c T - b = -π T b può essere ottenuto a partire dalle informazioni iniziali c T e b conoscendo la - oppure a partire dal solo vettore b, purché sia noto π. Dunque, una volta nota la - e il vettore π T = c T - (vettore dei moltiplicatori del simplesso associato alla base ) si possono generare tutte le informazioni necessarie per la conduzione dell'algoritmo del simplesso. È da notare che -, ed il vettore π sono entrambi

contenuti nella ( + ) -. Si potrebbe, allora, pensare che, volendo ricavare, ad ogni iterazione, le informazioni strettamente necessarie per la conduzione dell'algoritmo del simplesso, si dovrebbe calcolare ad ogni iterazione la ( + ) - corrente. In realtà ciò non è necessario. Infatti la tabella iniziale dell'algoritmo del simplesso contiene sempre, per la presenza delle slack e/o delle artificiali, una matrice identità di ordine m. Alla generica iterazione k dell'algoritmo il sistema sarà in forma canonica rispetto ad un gruppo di m variabili diverso da quello iniziale, ed alla (-z). Poiché la matrice iniziale è del tipo [N + I m+ ] ne deriva che le colonne che inizialmente costituivano la matrice identità conterranno l'inversa della matrice di base alla k esima iterazione. D'altra parte anche nella tabella iniziale le ultime (m+) colonne contengono la ( + ) -. Infatti essendo + = I m+ sarà ancora ( + ) - = I m+.

IL SIMPLESSO REVISIONATO I dati del problema si suppongono riuniti in una tabella iniziale. Da tale tabella vengono prelevate, durante lo sviluppo dell'algoritmo, le informazioni man mano che esse si rendono necessarie. Alla prima iterazione risulta: ( + ) - = I m+ ed il vettore dei termini noti è quello iniziale. All'inizio di ciascuna iterazione k sono disponibili la ( + ) k e la colonna dei termini noti modificati. Per effettuare il test di ottimalità si calcola il vettore c T ' N : c' T N = c T N - c T - N = c T N - π T N Qualora il test fornisca esito negativo viene individuata la variabile entrante x s. Viene quindi calcolata la colonna pivot modificata p' s p' s = - p s

che, unitamente al vettore b' k, consente la determinazione della variabile uscente, ovvero della riga pivot e dunque del perno a' rs. Si effettua una operazione di pivot sul perno a' rs limitata alla ( + ) - ed al vettore dei termini noti. In tal modo la colonna p' s viene trasformata nel vettore u r, vettore unitario ad (m+) componenti avente l'elemento unitario nella posizione r esima. La ( + ) k e la b' k vengono trasformati rispettivamente nella ( + ) k + e la b' k+. Si è ripristinato, in questo modo, un insieme di informazioni corrispondente a quello disponibile all'inizio dell'iterazione che consente dunque di ripetere il procedimento.

ESEMPIO z= 2x - x 2 + x 3 Max! s.a 3x + x 2 + x 3 60 x - x 2 + 2x 3 0 x + x 2 - x 3 20 x x 2 x 3 0 Aggiungendo ai vincoli le variabili slack, si ottiene la tabella iniziale. 2 3 4 5 6 x x 2 x 3 y y 2 y 3 -z b 3 60-2 0-20 2-0 Tabella iniziale Da questa tabella vengono prelevati, nel corso dell algoritmo, i dati necessari.

Prima iterazione. Risulta: ( + ) - 0 0 0 = 0 0 0 0 0 0 0 0 0 () - 0 0 = 0 0 0 0 π = [0, 0, 0] Siano v N e v due vettori le cui componenti forniscono gli indici delle variabili che, a ciascuna iterazione, sono non basiche e basiche rispettivamente. Risulta: v N = [, 2, 3,]; v = [4, 5, 6]

Coefficienti di costo modificati delle variabili non basiche: c N = c N - π N = 3 [ 2, -, ] [0, 0, 0] - 2 - = [2, -, ] v N = [ 2 3] la soluzione non è massima e la colonna pivot è quella relativa alla variabile x. Colonna pivot modificata: 0 0 3 3 p = 0 0. = 0 0 Riunendo le informazioni ricavate si ottiene la tabella ristretta, su cui agisce il simplesso

revisionato: x y y 2 y 3 -z b y 3 0 0 0 60 y 2 0 0 0 0 y 3 0 0 0 20 -z 2 0 0 0 0 Tabella ristretta. Var. entr. x, uscente y 2 Si effettua una operazione pivot sulla tabella ristretta alla ( + ) - orlata col vettore dei termini noti, ottenendo le informazioni necessarie per condurre la seconda iterazione. Seconda iterazione. x y y 2 y 3 -z b y 0-3 0 0 30 x 0 0 0 0 y 3 0 0-0 0 -z 0 0-2 0 20

Tabella ristretta dopo il pivot Risulta: ( + ) - -3 0 0 = 0 0 0 0-0 0-2 0 () - -3 0 = 0 0 0 - π = [0, 2, 0] v N 2 = [5, 2, 3,]; v 2 = [4,, 6] Coefficienti di costo modificati delle variabili non basiche: c 2 N = c N - π 2 N = 0 [ 0, -, ] [0, 2, 0] - 2

0 - = [-2,, -3] v N = [ 5 2 3] la soluzione non è massima e la colonna pivot è quella relativa alla variabile x 2. Colonna pivot modificata: -3 0 4 p 2 2 = 0 0. - = - 0-2 Riunendo le informazioni ricavate si ottiene la seconda tabella ristretta: x 2 y y 2 y 3 -z b y 4-3 0 0 30 x - 0 0 0 0 y 3 2 0-0 0 -z 0-2 0 20 Tabella ristretta 2. Var. entr. x 2, uscente y 3 Si effettua l operazione di pivot ristretta,

ottenendo le informazioni necessarie per condurre la terza iterazione: Terza iterazione. x 2 y y 2 y 3 -z b y 0 - -2 0 0 x 0 0 0.5 0.5 0 5 x 2 0-0.5 0.5 0 5 -z 0 0 -.5-0.5 25 Tabella ristretta 2 dopo il pivot Coefficienti di costo modificati delle variabili non basiche: v N = [ 5 6 3] c 3 N = c N - π 3 N = 0 0 [ 0, 0, -] [0,.5, 0.5] 0 2 0 -

= [-.5, -0.5, -.5] v N = [ 5 6 3] L'analisi dei coefficienti di costo mostra che si è trovata la soluzione massima essendo tutti i coefficienti di costo delle variabili non basiche non positivi. La soluzione ottima risulta allora: y 2 = y 3 = x 3 = 0 ; x = 5 ; x 2 = 5 ; z = 25