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

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

Parte V: Rilassamento Lagrangiano

5.5 Metodi generali per la soluzione di problemi

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

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

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

Rilassamento Lagrangiano

2.6 Calcolo degli equilibri di Nash

Rilassamento Lagrangiano

Esame di Ricerca Operativa del 16/06/2015

Problemi di Flusso: Il modello del Trasporto

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

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

11.4 Chiusura transitiva

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

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi basati su generazione di colonne

LA PROGRAMMAZIONE MATEMATICA (p.m.)

Metodi per la risoluzione di sistemi lineari

Metodi generali per la soluzione di problemi di PLI

4.5 Metodo del simplesso

Il modello duale. Capitolo settimo. Introduzione

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili

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

Esercizi su ottimizzazione vincolata

Algoritmo basato su cancellazione di cicli

Esercizi per il corso di ricerca operativa 1

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

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

Esercizi di ottimizzazione vincolata

Problemi di flusso a costo minimo

Vediamo come risolvere un problema di PL con Excel. Riprendiamo un esercizio già visto.

Prerequisiti didattici

Per formalizzare il concetto sono necessarie alcune nozioni relative ai poliedri e alla loro descrizione.

Esame di Ricerca Operativa del 19/01/2016

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Indice. 1 Introduzione... 1

8. Completamento di uno spazio di misura.

Problemi, istanze, soluzioni

Esame di Ricerca Operativa del 19/01/2016

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Linguaggi e Grammatiche Liberi da Contesto

Sintesi di Reti Sequenziali Sincrone

Esercizi sui sistemi di equazioni lineari.

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

Esercizi di MATEMATICA PER RCHITETTURA prima parte: Algebra Lineare e Geometria

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

Sottospazi vettoriali. Nota Bene: Questo materiale non deve essere considerato come sostituto delle lezioni.

Prova di Esame di RICERCA OPERATIVA 1 o anno Canale P Z

Catene di Markov. 8 ottobre 2009

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

Controlli Automatici I

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

Ricerca Operativa Problemi di ottimizzazione su reti di flusso e cammini minimi

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

Esercitazione n o 3 per il corso di Ricerca Operativa

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Alcuni problemi combinatorici (Gennaio 2006)

IL METODO DEL SIMPLESSO

Ricerca Operativa. Docente. 1. Introduzione

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

STUDIO DELLE RADICI DI UNA EQUAZIONE ALGEBRICA DI TERZO GRADO A COEFFICIENTI REALI

POTENZE DI MATRICI QUADRATE

Il problema del commesso viaggiatore e problemi di vehicle routing

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Sintesi di Reti sequenziali Sincrone

Esercizi proposti 10

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

Esame di Ricerca Operativa del 18/12/12. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

1 Fattorizzazione di polinomi

Corso di Matematica per la Chimica

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

Macchine sequenziali. Automa a Stati Finiti (ASF)

Capitolo 3: Ottimizzazione Discreta. E. Amaldi DEIB, Politecnico di Milano

Prodotto scalare, ortogonalitá e basi ortonormali

Corso di Matematica per la Chimica

Per equazione lineare nelle incognite x, y intendo un equazione del tipo. ax = b,

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Teorema di Thevenin generalizzato

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

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo

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

Il concetto di calcolatore e di algoritmo

Esercizi per Geometria II Geometria euclidea e proiettiva

Transcript:

1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i) suoi vincoli Sia dato il seguente problema di Programmazione Matematica min / max x f (x) s.t. g f (x) 0 g d (x) 0 vincoli facili vincoli difficili (P) Possiamo rilassarlo trascurando i vincoli difficili g d (x) 0: min / max x f (x) s.t. g f (x) 0 (P R )

Rilassamento di un problema e Bounding Indichiamo con x la soluzione ottima di (P) x R la soluzione ottima di (P R) In che relazione sono f (x ) e f (x R )? f (x R ) f (x ) f (x R ) f (x ) (per prob. di minimo) (per prob. di massimo) Inoltre, data una soluzione ammissibile x di (P), in che relazione sono f ( x) e f (x )? f ( x) f (x ) f ( x) f (x ) (per prob. di minimo) (per prob. di massimo)

Upper e lower bound di un problema di minimo Per un problema di minimo vale quindi la seguente relazione: Quindi, diciamo che: f (x R ) f (x ) f ( x) f (xr ) è un lower bound di (P); f ( x) è un upper bound di (P).

Upper e lower bound di un problema di massimo Per un problema di massimo vale quindi la seguente relazione: Quindi, diciamo che: f ( x) f (x ) f (x R ) f (xr ) è un upper bound di (P); f ( x) è un lower bound di (P).

Un caso fortunato Consideriamo il problema (P) in forma di minimo e sia: x R soluzione di (P R) g d (x R ) 0, cioè x R ammisibile per (P) Dato che f (x R ) f (x ), cosa si può concludere? x R è ottima per (P).

Problema min y + 0.01x s.t. 1 x 1 0 y 1 y x 2 0 NON è un problema di PL

Problema 1.5 1 0.5 0 0.5 1.5 1 0.5 0 0.5 1 1.5

Problema approssimato Però: è un problema di PL. ( 1, 0) è soluzione ottima min y + 0.01x s.t. 1 x 1 0 y 1 ( 1, 0) viola il vincolo y mx + q con m = 2, q = 1 ( 1, 0) non è soluzione di min y + 0.01x s.t. 1 x 1 0 y 1 y 2x 1

Problema approssimato 1.5 1 0.5 0 0.5 1.5 1 0.5 0 0.5 1 1.5

Problema approssimato Però: è un problema di PL. min y + 0.01x s.t. 1 x 1 0 y 1 y 2x 1 ( 1/2, 0) è soluzione ottima ( 1/2, 0) viola il vincolo y mx + q con m = 1, q = 0.25 ( 1/2, 0) non è soluzione di min y + 0.01x s.t. 1 x 1 0 y 1 y 2x 1 y x 0.25

Problema approssimato 1.5 1 0.5 0 0.5 1.5 1 0.5 0 0.5 1 1.5

Problema approssimato Però: è un problema di PL. min y + 0.01x s.t. 1 x 1 0 y 1 y 2x 1 y x 0.25 ( 1/4, 0) è soluzione ottima ( 1/4, 0) viola il vincolo y 0.5x 0.0625 ( 1/4, 0) non è soluzione di min y + 0.01x s.t. 1 x 1 0 y 1 y 2x 1 y x 0.25 y 0.5x 0.0625

Problema approssimato 1.5 1 0.5 0 0.5 1.5 1 0.5 0 0.5 1 1.5

Oracolo di separazione Dato un punto ( x, ȳ) soluzione del problema approssimato, è una procedura che 1 genera un vincolo y mx + q violato da ( x, ȳ) oppure 2 conclude che tutti i vincoli y mx + q sono soddisfatti

ATTENZIONE!! min y + 0.01x s.t. 1 x 1 0 y 1 y mx + q x [ 1, 1], m = 2 x, q = x 2 NON è un problema di PL

Introduzione Dato un problema di PL min{c x : x P}, di quali informazioni sul poliedro P abbiamo DAVVERO bisogno per risolvere il problema? Se disponessimo di una rappresentazione esterna di P, ovvero: P = {x R n : Ax b}, è ben noto che potremmo, in linea di principio, risolvere il problema usando il Metodo del Simplesso. In altri termini, la conoscenza di una rappresentazione esterna di P è una condizione sufficiente per l applicazione del metodo del simplesso. È anche una condizione necessaria? No

Oracolo di Separazione Abbiamo visto mediante alcuni esempi che per risolvere il problema è possibile acquisire informazioni sulla struttura di P non mediante la sua rappresentazione esterna, bensí da una sua rapprsentazione implicita realizzata per mezzo di un cosiddetto Oracolo di Separazione o generazione di righe. Un Oracolo di Separazione è una procedura che, dato un vettore x R n, fornisce una disequazione a x a 0 appertenente al sistema Ax b e tale che a x < a 0 (vincolo violato) oppure conclude che tutte le disequazioni di Ax b sono soddisfatte da x

Algoritmo di Soluzione Dinamico (primale) Supponiamo che il poliedro P sia limitato Algoritmo con generazione di righe (a) Definire un sottoproblema min{c x : Dx d} (problema corrente) con D sottomatrice di A con q m righe ed n colonne. (b) Risolvere il problema corrente (p.es. utilizzando il metodo del simplesso). Se il problema corrente è inammissibile allora lo è anche il problema completo. In caso contrario sia x R n la soluzione ottima del problema corrente. (c) Invocare l oracolo di separazione sul punto x. Se viene generato un vincolo violato da x, aggiungerlo al problema corrente e tornare al passo (b). (d) Se, invece, l oracolo di separazione conclude che tutti i vincoli del problema completo sono soddisfatti da x, allora x è la soluzione ottima del problema completo.

Introduzione Così come esistono problemi lineari con un numero elevatissimo di vincoli, esistono altrettanti problemi lineari (p.es. quelli che si ottengono per dualità) con un numero elevatissimo di variabili. Anche in questo caso è possibile definire un algoritmo di soluzione dinamico che tratta in modo implicito le (numerosissime) variabili del problema min{c x : Ax b, x 0 n } Tale metodo risolve (che chiameremo duale) una sequenza di problemi parziali min{c D z : Dz b, z 0 q} con D sottomatrice di A con m righe e q n colonne, e c D sottovettore di c associato alle colonne di D.

Oracolo di Generazione di Colonne (o variabili) Supponiamo, per semplicità, che il problema parziale si ammissibile e limitato Siano z R q e λ R m la coppia primale-duale di soluzioni ottime del problema parziale. Notiamo che la soluzione x = ( z, 0 n q ) è una soluzione ammissibile per il problema primale completo. Inoltre abbiamo che c D z = c x = b λ. Se λ è ammissibile per il problema duale completo (ovvero se A λ c), allora per il teorema della dualità forte le soluzioni x e λ sono una coppia di soluzioni ottime per i problemi primale e duale completi.

Oracolo di Generazione di Colonne (o variabili) Supponiamo, al contrario, che λ non sia ammissibile per il duale completo. Ció vuol dire che esiste un vincolo duale aj λ c j violato da λ ovvero tale che aj λ > c j. Notiamo che il vincolo duale a j λ c j non appartiene al duale parziale in quanto violato dalla soluzione λ che è ottima per il duale parziale. A questo punto, modifichiamo il problema duale parziale aggiungendo il vincolo a j λ c j. Tale modifica del duale parziale corrisponde all aggiunta della variabile x j al primale parziale e, di conseguenza, all aggiornamento della matrice D mediante l aggiunta della colonna j-esima

Algoritmo di Soluzione Dinamico (duale) Supponiamo che il poliedro P sia limitato e non vuoto Algoritmo con generazione di colonne (a) Definire un sottoproblema parziale iniziale min{c D z : Dz b, z 0 q} (problema corrente) non vuoto con D = D 0 sottomatrice di A con m righe e q n colonne. (b) Risolvere il problema corrente (p.es. utilizzando il metodo del simplesso). Siano z e λ le soluzioni ottime della coppia primale-duale corrente. (c) Applicare l Algoritmo di Generazione di Colonne per generare un vincolo violato duale e corrsipondente colonna primale. Se tale colonna viene generata, aggiungerla al problema corrente e tornare al passo (b). (d) Se, invece, nessuna colonna viene generata, allora il vettore x = ( z, 0 n q ) è una soluzione ottima del problema originario.

Algoritmo di Soluzione Dinamico (primale-duale) Supponiamo che il poliedro P sia limitato e non vuoto (a) Definire un sottoproblema parziale iniziale min{c D z : Dz b, z 0 q} (problema corrente) con D sottomatrice di A con p m righe e q n colonne. (b) Risolvere il problema parziale (p.es. utilizzando il metodo del simplesso). Siano z R q e λ R p le soluzioni ottime della coppia primale-duale corrente. (c) Invocare l oracolo di separazione sul punto x = ( z, 0 n q). Se viene generato un vincolo violato da x, aggiungerlo al problema corrente (agg. solo i coefficienti delle colonne attaulmente presenti nel problema corrente) e tornare al passo (b). (d) Se nessun vincolo è stato generato al passo (c), applicare l Algoritmo di Generazione di Colonne per generare una colonna del problema originale. Se tale colonna viene generata, aggiungerla al problema corrente e tornare al passo (b). (e) Se, invece, nessuna colonna viene generata, allora il vettore x = ( z, 0 n q) è una soluzione ottima del problema originario e λ la soluzione ottima duale corrispondente.

Descrizione del problema G = (V, E) grafo orientato con V insieme dei nodi ed E insieme degli archi. Siano S e T due nodi di V. Supponiamo che a ciascun arco (u, v) E sia associato un peso o lunghezza d u,v 0. Problema: Determinare il sottoinsieme P E di lunghezza totale (somma delle lunghezze degli archi (u, v) P) minima e tale che esista un cammino da S a T composto esclusivamente di archi appartenenti a P. Nota: Siccome d u,v 0, si ha che P è l insieme degli archi di un cammino di lunghezza minima tra i nodi S e T.

Formulazione del problema Per ogni arco (u, v) E, indichiamo con x u,v una variabile binaria tale che { 1 se (u, v) P x u,v = 0 altrimenti Funzione obiettivo: peso di P = (u,v) E x u,v d u,v. Definizione (Taglio e ST-Taglio) Sia X V un sottoinsieme di nodi e X = V \ X. Il sottoinsieme (X, X ) = {(u, v) E : u X, v X oppure v X, u X } è un taglio nel grafo. (X, X ) è un ST-taglio se S X e T X.

Formulazione del problema Vincoli: ogni ST taglio deve contenere almeno un arco appartenente a P. Tradotto in formule: Formulazione: min s.t. (u,v) K (u,v) E (u,v) K x u,v 1, x u,v d u,v x u,v 1, per ogni ST-taglio K x u,v {0, 1}, (u, v) E. per ogni ST-taglio K

Esempio 15 5 7 20 44 S 14 9 6 2 18 24 30 3 2 5 6 11 19 16 4 6 T Formulazione e soluzione in AMPL

Descrizione del problema Dato un grafo G = (V, E), con V = {1, 2,..., n} e E = V V, e assegnate delle lunghezze δ uv ad ogni arco (u, v) E, si vuole determinare il ciclo di lunghezza minima che passa una ed una sola volta per ogni nodo del grafo. Formulazione: min s.t. (u,v) E (k,v) E (u,k) E x u,v l u,v x u,v 0, 1, x k,v = 1, x u,k = 1, (u,v) E,u X,v V \X k V k V (u, v) E x u,v >= 1, X V.

Esempio (8 città) Città: Amsterdam Berlino Bruxelles Lisbona Madrid Parigi Roma Vienna Am Be Br Li Ma Pa Ro Vi Am 0 685 200 2270 1805 505 1770 1180 Be 685 0 775 3065 2540 1130 1530 630 Br 200 775 0 2070 1560 295 1545 1135 Li 2270 3065 2070 0 660 1790 2675 2975 Ma 1805 2540 1560 660 0 1260 2030 2450 Pa 505 1130 295 1790 1260 0 1440 1265 Ro 1770 1530 1545 2675 2030 1440 0 1130 Vi 1180 630 1135 2975 2450 1265 1130 0 Formulazione e soluzione in AMPL