Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.11)

Documenti analoghi
Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

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

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

2. ALGORITMO DEL SIMPLESSO

Parte V: Rilassamento Lagrangiano

Ricerca Operativa. Ricerca Operativa p. 1/6

Programmazione Lineare

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

Convergenza del Simplesso e regole anti-ciclaggio

4.5 Metodo del simplesso

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

LEZIONE N. 6 - PARTE 1 - Introduzione

Capitolo 3: Ottimizzazione non vincolata parte III. E. Amaldi DEI, Politecnico di Milano

Possibile applicazione

Il modello duale. Capitolo settimo. Introduzione

Matematica II,

Metodi computazionali per i Minimi Quadrati

L ALGORITMO DEL SIMPLESSO REVISIONATO

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

Esercizi su ottimizzazione vincolata

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

Introduzione alla programmazione lineare

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

1 Il metodo dei tagli di Gomory

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

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

Soluzione dei Problemi di Programmazione Lineare

Prerequisiti didattici

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Appunti su Indipendenza Lineare di Vettori

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

Metodi iterativi per sistemi lineari

4.3 Esempio metodo del simplesso

Corso di Matematica Applicata A.A

Teoria della Programmazione Lineare. Teoria della Programmazione Lineare p. 1/8

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

Geometria della programmazione lineare

5.3 Metodo dei piani di taglio

Metodo delle due fasi

Sistemi lineari - Parte Seconda - Esercizi

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Funzioni implicite - Esercizi svolti

Problemi lineari equivalenti

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

Sistemi sovradeterminati

Ricerca Operativa (Compito A) Appello del 16/06/2014 Andrea Scozzari

Il metodo del simplesso

0 altimenti 1 soggetto trova lavoroentro 6 mesi}

2.2 Alberi di supporto di costo ottimo

Prova di ammissione al Dottorato di Ricerca in Matematica XXVIII ciclo. Universitá del Salento, 9 Aprile 2013

2.6 Calcolo degli equilibri di Nash

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.7)

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

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

( ) le colonne della matrice dei coefficienti, con. , risulta A 3 = A 1 + 4A 2 + 4A 5, A 4 = A 1 + A 2,

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

Esercizi di ottimizzazione vincolata

Massimi e minimi vincolati

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

APPROSSIMAZIONE di FUNZIONI

Corso di Calcolo Numerico

APPLICAZIONI LINEARI

Massimi e minimi relativi in R n

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Problemi di Flusso: Il modello del Trasporto

Esercizio 1. Esercizio 2

TEMI D ESAME DI ANALISI MATEMATICA I

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

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

Una libreria di funzioni per la geometria analitica

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

LICEO SCIENTIFICO - OPZIONE DELLE SCIENZE APPLICATE MATEMATICA

LOGARITMI. Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA. L uguaglianza: a x = b

IL METODO DEL SIMPLESSO

Applicazioni lineari tra spazi euclidei. Cambi di base.

Soluzione grafica di problemi PM in 2 variabili

Problemi, istanze, soluzioni

Equazioni di 2 grado

5.5 Metodi generali per la soluzione di problemi

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

SISTEMI LINEARI MATRICI E SISTEMI 1

Ricerca Operativa A.A. 2007/ Dualità in Programmazione Lineare

1 Il polinomio minimo.

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

MATEMATICA GENERALE Prova d esame del 4 giugno FILA A

LUISS Laurea specialistica in Economia e Finanza Anno Accademico 2010/2011

Corso di Calcolo Numerico

Rilassamento Lagrangiano

Teoria della Programmazione Lineare Intera

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

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

Inversa di una matrice

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

SIMULAZIONE ESAME di OTTIMIZZAZIONE Corso di Laurea in Ingegneria Gestionale 2 o anno

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi Risolutivi per la Programmazione Lineare Intera

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

Geometria BIAR Esercizi 2

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Lezione n 4

Transcript:

Docente: Marco Gaviano (e-mail:gaviano@unica.it) Corso di Laurea in Infomatica Corso di Laurea in Matematica Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a. 2015-16, lez.11) 1

La complessità computazionale del simplesso Nella soluzione di problemi derivanti dal mondo reale, il metodo del simplesso é risultato molto efficiente e rapido. In generale si é trovato che il numero di iterazioni che il metodo richiede per individuare la soluzione é dell'ordine di O(m). Le operazioni aritmetiche sono dell'ordine di O(mn). Esempi di problemi di programmazione lineare costruiti ad hoc hanno però dimostrato che il metodo del simplesso può richiedere un numero di iterazioni che cresce esponenzialmente con m. 2

In particolare Klee e Minty (1972) hanno costruito una classe di problemi di programmazione lineare di dimensione m2m per i quali l'algoritmo del simplesso visita ogni vertice della regione ammissibile con un numero di iterazioni pari a 2 m -1. Pertanto poiché la complessità riguarda anche il caso peggiore si ha che la complessità del simplesso é esponenziale. ale situazione ha portato molti ricercatori a studiare un comportamento medio del metodo del simplesso. 3

Supposto che i dati A, d e c possano essere scelti secondo una distribuzione di probabilità opportuna é stato dimostrato che, mediamente, il numero di iterazioni richieste da un'applicazione del metodo del simplesso é dell'ordine di O(min(m 2,n 2 )) ovvero l'algoritmo ha un comportamento medio polinomiale. Questo risultato é stato dimostrato indipendentemente da Adles, Karp e Shmir (83), Adles e Medido (85) e odd (1986) per una variante dell'algoritmo del simplesso (self-dual parametric). 4

La principale ipotesi fatta sulla distribuzione di probabilità e che se S e sono due matrici diagonali con elementi positivi e negativi, allora il problema che ha come dati S A, S d, e c ha la stessa probabilità di avere come input A, d, e c. Risultati significativi in proposito sono stati ottenuti da Borgwordt (87), Smale e Haimovich. Borgwordt ha preso in considerazione il problema: max cx, Ax con e =(1,1...1) e c ed A generati indipendentemente da una distribuzione simmetrica rispetto ad una rotazione. Per il metodo usato, una variante del metodo del simplesso, ha trovato che il numero atteso per le iterazioni é 1 4 m1 ( m n ) e, 5

Il metodo degli ellissoidi per problemi PL Il metodo degli ellissoidi é stato sviluppato da Yudin e Nemirovskii (1976) per funzioni convesse anche non differenziabili, a partire dal metodo delle sezioni centrali di Levin (1965) e Newman (1965) e dal metodo del gradiente Generalizzato di Shor (1970). Il metodo é stato studiato da Bland, Goldfarb e odd (1981). Khachian (1979 e 1980) ha dimostrato che la complessità nel caso venga applicato a problemi di programmazione lineare è polinomiale. Sfortunatamente in pratica l algoritmo si è rivelato inefficiente. 6

L'algoritmo di Karmarkar Nel 1984 N.K. Karmakar ha proposto un algoritmo per la risoluzione di un problema di programmazione lineare che, a differenza dell'algoritmo degli ellissoidi, ha complessità polinomiale e nella risoluzione di problemi classici, è comparabile col metodo del simplesso. L'algoritmo é applicabile ad un problema di PL scritto nella forma: (10.1) min z cx Ax 0 x Δ con ={xr n e x=1, x0}, e =(1,1, 1) R n 7

Si considerano valide le seguenti ipotesi: A é una matrice m n di rango m; Ae=0 e questo implica che x 0 =e/n é un punto ammissibile; il minimo di z=cx é zero. Un problema di programmazione lineare generale può ricondursi alla forma (10.1) per il quale le ipotesi 1, 2 e 3 sono soddisfatte. 8

Prima di dare l idea su cui si basa l'algoritmo, si riporta la definizione di gradiente di una funzione. Il gradiente di una funzione di n variabili, f(x), x R n si indica con f(x) ed è il vettore delle derivate parziali di f(x). f f f(x) f (x) 1 (x) 2 (x) 2 x x x Per esempio il gradiente della funzione f(x 1,x 2 )=8(x 1 ) 2 +(x 2 ) 2 é 16x f(x1x 2 ) 2x2 1 9

Una caratteristica del gradiente è che esso moltiplicato per 1 dà la direzione di massima discesa. Per la funzione f(x 1,x 2 )=8(x 1 ) 2 +(x 2 ) 2 si ha graficamente 10

Idea base dell'algoritmo di Karmarkar Sia dato un punto g ; si costruisca una sfera B di centro g tutta contenuta in. Minimizzare la funzione obiettivo z=cx su B é più semplice che minimizzarla su, infatti il minimo in B si trova, spostandosi da g di un passo pari al raggio di B nella direzione opposta al gradiente di z. L'algoritmo; partendo da una soluzione ammissibile x 0, genera una successione {x k } di soluzioni strettamente ammissibili, ovvero tali che le componenti di ogni x k sono positive. Quindi minimizza la funzione obiettivo all'interno di sfere di cui gli x k ne sono i centri. 11

Poiché i raggi delle sfere generate ad ogni iterazione potrebbero essere troppo piccoli causando inefficienza l'algoritmo di Karmarkar ad ogni iterazione trasforma il problema da risolvere utilizzando una trasformazione proiettiva, che trasforma in se stesso e la soluzione ammissibile corrente nel vettore e/n che è il baricentro di. La trasformazione é la seguente: Sia x, si definisce con X la matrice diagonale tale che Xe=x k (10.2) e X X x 1 x xˆ 1 x e la sua inversa xˆ x Xxˆ e Xxˆ. 12

Con questa trasformazione il problema (10.1) diventa: cxxˆ min, AXxˆ 0, xˆ Δ e Xxˆ in cui la funzione obiettivo è lineare fratta. In conclusione la trasformazione è giustificata dal fatto le sfere che si costruiscono ad ogni iterazione hanno per centro x k che risulta essere il baricentro di. In tal modo la sfera risulta il più grande possibile producendo un algoritmo efficiente. Il fatto che la funzione obiettivo non è lineare non crea difficoltà poiché essendo la soluzione ottimale nulla, è 13 sufficiente azzerare il numeratore.

Di fatto ad ogni iterazione la minimizzazione si fa in una sfera B centrata in e/n. Il raggio di B lo si pone uguale a /n con 0< <1 (in genere si pone =1/3). Si dimostra che il gradiente della z in (10.1) una volta che si effettua la trasformazione proiettiva diventa: 1 dˆ (I E (EE ) E)ĉ dove si é messo:  E, e  AX, ĉ Xc. 14

Nell'algoritmo si deve introdurre un criterio di stop, questo lo si determina con una funzione detta funzione potenziale. È necessario introdurre la funzione potenziale e si minimizza questa, in quanto, a causa della trasformazione la funzione obiettivo si é modificata; mentre la funzione potenziale che si userà é invariante rispetto a questa trasformazione. Inoltre l'utilizzo di questa funzione garantisce che l'algoritmo sia polinomiale. La funzione potenziale é cx f ( x) f ( x, c) log, x ( x j ) che come si può vedere é legata alla funzione z. Si definisce inoltre fˆ ( xˆ) j x f ( xˆ; cˆ). j 15

Per giustificare il criterio di stop utilizzato servono i seguenti lemmi e teoremi: Lemma. Siano ha Lemma. allora Lemma. Sia Se xˆ x e e/n xˆ fˆ (xˆ) legate dalla dalla relazione (10.2) si αdˆ/n nlogcˆ f(x) log(det(x)). dˆ dove xˆ log(ˆ c xˆ B(e/n, /n), allora -(Idˆ e/ n). 2 1 log( xˆ j ) log. 2 n 2(1 ) j j E (EE ) 1 E)ĉ, 16

eorema. Per la successione {x k }si ha f(x f(x Corollario. Per la successione {x k } si ha: k ) 0 ) 1 5 k cx k k exp 5n cx 0, k Si descrive ora in dettaglio l'algoritmo 17

Algoritmo Input:Sia A una matrice m n, c un n-vettore riga in modo tale che le ipotesi 1,2 e 3, siano soddisfatte; sia q un intero >0 Output: x* Inizializzazione: t.c. Ax x 0 0, e n cx* 2 -q c e n 18

for k=0,1,...,5n*q if c x k 2 -q c(e/n) stampa x k ; stop else X k =diag(x k ) ĉ=x k c, Â=AX k. end end E xˆ x k1 Â e e/n, dˆ (X (I dˆ/(3n dˆ k xˆ)/(e E ) X (EE k xˆ) ) 1 E)ĉ 19

Rimane ora da dimostrare come un problema generale PL si può esprimere nella forma (10.1), in modo che le ipotesi 1, 2 e 3 siano soddisfatte e si possa applicare l'algoritmo di Karmarkar. Si consideri il problema in forma canonica ed il suo duale minimizza z cx massimizza w ud (10.3) Ax x 0 d ua u 0 c 20

Si formi il sistema di disequazioni (ua) c - Ax - d (10.4) - x 0 - u 0 cx ud 0 Si consideri il problema di trovare i valori x e u che soddisfano (10.4). Questi valori danno una soluzione del problema primale e duale (i vincoli sono soddisfatti e cx ud implica l ottimalità). Il sistema (10.4) può scriversi in forma compatta (10.5) Myb con y=[x,u], M=matrice (2m+2n+1)(m+n) b=vettore (2m+2n+1) 1 21

A questo punto si suppone che il problema di PL abbia una soluzione ottimale e sia tale che il sistema My0 abbia come unica soluzione la soluzione nulla. La soluzione di 10.5 può essere ottenuta a meno di una costante risolvendo il seguente problema di PL min λ (10.6) My Is e y e - bt s y, s, t, 0 (b - Me - t λ e)λ 0 1 con I matrice identità (2m+2n+1)(2m+2n+1), t e scalari (vettori di dimensione 1). 22

Dim. Se y* è una soluzione di (10.5) (ossia My* b) allora (y*, b-my*, 1,0)/(e y*+e (b-my*)+1) soddisfa i vincoli di (10.6) ed è ottimale. Viceversa per una soluzione ottimale di (10.6) (y*, s*, t*, 0) si ha t*>0; (altrimenti si avrebbe My*0). Quindi (y*, s*, t*, 0) /t* soddisfa (10.5). 23

La (10.6) è un problema del tipo (10.1) e soddisfa le ipotesi 1,2 e 3. Infatti A=[M, I 2m+2n+1, b, (b-me-e)], e quindi A é una matrice (2m+2n+1)(3m+3n+3) con rango (2m+2n+1) (contiene la matrice identità); Ae=0 e quindi e/(3m+3n+3) é soluzione ammissibile; Il valore ottimo della funzione obbiettivo é zero. Possiamo quindi applicare l'algoritmo di Karmarkar a (10.6) e trovare il vettore (y*, s*, t*, 0) che rende minimo il valore della funzione obiettivo ( ) e quindi lasoluzione x* del problema (10.3). 24

La complessità dell'algoritmo di Karmarkar Per l'analisi della complessità dell'algoritmo si considera che i dati in input siano numeri interi e quindi la lunghezza dell'input é data da L m i0 n j1 (log 2 ( a 1) con a 0j =c j. Si verifica che ciascuna iterazione richiede un numero di operazioni tra bits dell'ordine dio(n 3 L). Si ha il seguente teorema eorema. L'algoritmo di Karmarkar risolve un problema di programmazione lineare in forma standard con n variabili ed m vincoli in circa O(p 4 L 2 ) operazioni fra bits con p=n+m. 25 ij 1)