MIP Practice. Linear Programming Solvers Implementation. Domenico Salvagnin

Documenti analoghi
Simplesso Revised. Domenico Salvagnin

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

Esempi di Problemi di Programmazione Lineare

Algoritmo del simplesso

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva

2. ALGORITMO DEL SIMPLESSO

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

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.

Algoritmo del Simplesso

Ricerca Operativa. G. Liuzzi. Giovedí 19 Marzo Tableau del Simplesso Esempio Fase I del Simplesso Esempio

5.4.5 Struttura dell algoritmo ed esempi

4.5 Metodo del simplesso

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

2. SIMPLESSO. Ricerca Operativa. 2 Esercizi sul simplesso. Politecnico di Torino CeTeM

Tecniche di Decomposizione per Programmazione Lineare Intera (Mista)

LA TEORIA DELLA COMPLESSITÀ COMPUTAZIONALE

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Algoritmi generali per PLI

A.A Fondamenti di Ricerca Operativa. 2. Determinare β affinchè il poliedro descritto dal sistema di disequazioni

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 =

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

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

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

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

Metodo delle due fasi

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 07/09/2016

A.A Fondamenti di Ricerca Operativa Esercizi ottobre min 2x 1 + x 2 + 4x 3 3x 4 x 1 + x 3 = 5 x 2 + x 4 = 2

4.4 Programmazione quadratica

Esercizio 1. Variabili decisionali:

Esame di Ricerca Operativa del 08/09/17

Programmazione lineare: basi e soluzioni di base

Esame di Ricerca Operativa del 03/09/2015

LEZIONE ICO

3.6 Metodi basati sui piani di taglio

Lezione n. 2. Introduzione all analisi numerica (metodi diretti ed iterativi per la soluzione di sistemi di equazioni lineari e non lineari)

Programmazione Lineare Intera: Piani di Taglio

COMPITO DI RICERCA OPERATIVA APPELLO DEL 07/04/04

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

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

Università Ca Foscari Venezia

Esame di Ricerca Operativa del 11/02/2015

ESERCIZI PROPOSTI. det A = = per cui il sistema si può risolvere applicando le formule di Cramer, cioè: dove: = =

Convergenza del Simplesso e regole anti-ciclaggio

Esame di Ricerca Operativa del 19/01/2016

Il metodo del simplesso

Esame di Ricerca Operativa del 11/07/2016

Programmazione Lineare

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

Esame di Ricerca Operativa del 12/02/18. P 1 P 2 P 3 P 4 P 5 P 6 Peso bagaglio km di viaggio

Teorema Data una base ammissibile B della matrice A del problema (7.3.1). Se per qualche indice i {1,...,n m} abbiamo che:

Esame di Ricerca Operativa del 05/09/18

Esame di Ricerca Operativa del 19/01/2016

Esame di Ricerca Operativa del 16/06/2015

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Esame di Ricerca Operativa del 03/07/18. Base x degenere y Indice Rapporti Indice entrante uscente

Registro dell'insegnamento

Ricerca Operativa. G. Liuzzi. Lunedí 23 Marzo Il Metodo del Simplesso Java API Problema di Trasporto

Corso di Matematica Applicata A.A

Esame di Ricerca Operativa

Esercizi sulla Programmazione Lineare Intera

Esame di Ricerca Operativa del 25/06/12

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

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

Esame di Ricerca Operativa del 18/06/18

Inflazione, disoccupazione e moneta

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

Costi ridotti e ottimalità

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

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm:

Fac-simile dell esame di Ricerca Operativa. max 7 x 1 2 x 2 3 x 1 +x 2 2 x 1 2 x 2 3 x x 1 +x x 1 x 2 5

Laboratorio di Metodi Numerici per le Equazioni Differenziali

5.5 Metodi dei piani di taglio

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

1 Risoluzione di sistemi lineari con l uso dei determinanti

Soluzione dei problemi di Programmazione Lineare Intera

c) La rappresentazione con il diagramma di Eulero Venn. Scriveremo:

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

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

Esame di Ricerca Operativa del 16/07/18

Esame di Ricerca Operativa del 04/07/17

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

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

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.

ESERCIZIO 1: Punto 1

Esercizio 1 Sia. a n. X (k+1) = X (k) (2I AX (k) )

Esame di Ricerca Operativa del 09/02/2016

Esame di Ricerca Operativa del 06/02/17

Esame di Ricerca Operativa del 21/02/19. max 3 x 1 +x 2 6 x x x 1 +2 x x 1 3 x x 1 4 x x 1 +2 x x 1 x 2 3

Esame di ammissione al Dottorato in Matematica, XXIV Ciclo Università di Firenze Tema n. 1.

1 Risoluzione di sistemi lineari

Esame di Ricerca Operativa del 15/01/19. max 6 x 1 x 2 6 x x x 1 +2 x x 1 3 x x 1 4 x x 1 +2 x x 1 x 2 19

Transcript:

MIP Practice Linear Programming Solvers Implementation Domenico Salvagnin

Dalla teoria alla pratica... Solver LP/MIP sono molto usati in pratica: perchè? Successo del paradigma LP/MIP dovuto alla disponibilità di solver molto efficaci da due punti di vista: efficienza stabilità numerica

Evoluzione recente Negli ultimi 15 anni (circa): hardware speedup: 1000x miglioramenti simplesso: 1000x miglioramenti branch-and-cut: 1000x 1.000.000.000 x (meglio della legge di Moore!)

Simplesso Revised: forma standard min c T x Ax = b x 0 base B min c T B B 1 b +(CF T ct B B 1 N)x N x B + B 1 Nx N = B 1 b x 0 Quantità fondamentali: β z π T = B 1 b = c T B B 1 = c T B B 1 b = c T B β = πt b

Sketch Algoritmo (1) 0) trova base iniziale B 1) calcola B 1, β, π,z 2) [PRICING] calcola i costi ridotti: d j = c j π T a j j B Se sono tutti positivi sono all ottimo. Altrimenti scelgo una variabile d q < 0 x q con costo ridotto Calcola α q = B 1 a q

Sketch algoritmo (2) 3) [PIVOT] sia I = {i : α iq > 0} Se I è vuoto allora il problema è unbounded. Altrimenti effettua il ratio-test: θ = min i I βi α iq e determina variabile che esce dalla base x p 4) [UPDATE] β β θα q z z + θd q B 1 EB 1

Elementary Transformation Matrices Descrivono le operazioni pivot Possono essere salvate in modo molto compatto E = 1 η 1...... η p...... η m 1 η = v 1 v p,..., v p 1 v p, 1 v p, v p+1 v p,..., v m v + p

Simplesso: Operazioni Base (FTRAN) (BTRAN) α = B 1 a π T = h T B 1 Bα = a B T π = h Possono essere ottenute in 2 modi: product form inverse (PFI) fattorizzazione LU

PFI: definizione e operazioni Update step: B 1 EB 1 Partendo da I, dopo m pivot: B 1 = E m E m 1...E 1 Operazioni FTRAN BTRAN UPDATE α = B 1 a = E k...e 1 a π T = h T B 1 = h T E k...e 1 B 1 E k+1 B 1 = E k+1 E k...e 1 Ogni tanto viene effettuata una reinversione da zero, per accorciare la catena di matrici E

Fattorizzazione LU B = LU upper triangular lower triangular FTRAN BTRAN LUα = a U T L T π = h Lγ = a Uα = γ U T γ = h L T π = γ tutto facilmente calcolabile con back/forward substitutions

Fattorizzazione LU(2) In pratica si ottiene la forma L 1 B = U I passi FTRAN e BTRAN sono comunque ottenibili usando solo tali matrici (o le relative trasposte) Dopo un operazione pivot perdo la fattorizzazione => algoritmi di recover! Fattorizzazione LU è la più stabile per problemi di grandi dimensioni

Simplesso: forma generale min c T x {,, =} alcuni bound +/- infinito a T i x b i l x u min c T x Ax + Is = b l x u ID Tipo Bounds FX fixed x j =0 P non-neg x j 0 N non-pos x j 0 BD bounded 0 x j u j FR free x j

Perchè? Generalizzazione forma standard Più libertà nel tipo di variabili Bound sulle variabili gestiti implicitamente, per avere una base più piccola Noi considereremo il caso in cui non ci sono variabili non positive Cosa cambia nel simplesso revised?

Basic Solutions Cambia il concetto di soluzione feasible: x è feasible se ogni componente è dentro i rispettivi bound variabili fuori base non necessariamente nulle (anche all upper bound), ma determinano ancora univocamente quelle in base var. in base B var. fuori base all upper U x B = B 1 (b Nx F ) = B 1 (b k U a k u k ) = B 1 b u

Optimality Conditions La formula dei costi ridotti non cambia, ma le variabili fuori base possono comportarsi diversamente: ID Valore Cond. costo ridotto FX 0 qualsiasi non entra mai in base! P 0 BD 0 d j 0 d j 0 BD u j d j 0 novità FR 0 d j =0

Cambio base Ci sono 2 casi: d q < 0 e d q > 0. Vediamo il primo Bx B (t)+ta q = b u t indica di quanto si muove la var. che entra x B (t) =B 1 b u tb 1 a q β α q x B(i) (t) =β i tα iq Devo fare in modo che tutte le variabili in base rimangano all interno dei rispettivi bound (sempre vero per le var. free) una var. free in base non esce mai

Cambio base (2) Definiamo: I + = {i : α iq > 0, type(x B(i) ) {FX, P, BD}} I = {i : α iq < 0, type(x B(i) ) {FX, BD}} allora: θ + βi = min i I + α iq θ = min i I βi u B(i) α iq θ = min{θ +, θ,u q } bound flip: molto vantaggioso!

Cambio base (3) Caso d q > 0 : Definiamo: I + = {i : α iq > 0, type(x B(i) ) {FX, BD}} I = {i : α iq < 0, type(x B(i) ) {FX, P, BD}} allora: θ βi = max i I α iq θ + = max i I + βi u B(i) α iq θ = max{θ +, θ, u q } bound flip: molto vantaggioso!

Qualche link... COIN CLP: http://www.coin-or.org/projects/clp.xml ZIB SoPLEX: http://soplex.zib.de GNU GLPK: http://www.gnu.org/software/glpk Maros Computational Techniques of the Simplex Method, 2002