3.3 Problemi di PLI facili Consideriamo un generico problema di PLI espresso in forma standard min{c t x : Ax = b, x Z n +} (1) dove A Z m n con n m, e b Z m. Supponiamo che A sia di rango pieno. Sia P (b) = {x R n : Ax = b, x 0 } il poliedro delle soluzioni ammissibili del rilassamento continuo di (1). Secondo la teoria della PL, ad ogni punto estremo di P (b) corrisponde (almeno) una soluzione di base ammissibile x = (x B, x N ) = (B 1 b, 0), dove B è una sottomatrice m m non singolare di A, ovvero una base di A. Osservazione: Se la base ottima B ha det(b) = ±1, la soluzione ottima del rilassamento continuo di (1) è intera e quindi è anche ottima per il PLI. Dim: Sappiamo che x B = B 1 b e B 1 = 1 det(b) Ct, dove C è la matrice dei cofattori α ij = ( 1) i+j det(b ij ) con B ij la sottomatrice quadrata ottenuta da B eliminando la i-esima riga e la j-esima colonna. Se tutte le componenti di B sono intere, tutti i cofattori α ij sono interi. Se det(b) = ±1, B 1 è intera e quindi, visto che b è intero, anche la soluzione di base ammissibile x = (x B, x N ) è intera. 1
Chiaramente det(b) = ±1 è solo una condizione sufficiente per l interezza di B 1 b (si consideri det(b) = 2 e b con componenti pari) Quando tutte le soluzioni di base ammissibili del rilassamento continuo sono intere? In tal caso, la formulazione originale del PLI coincide con quella ideale e, per risolvere il PLI, basta risolvere il suo rilassamento continuo. Definizione: Una matrice A intera m n è totalmente unimodulare (TUM) se ogni sua sottomatrice quadrata ha un determinante 1, 0 o 1. Chiaramente, se A è TUM, a ij { 1, 0, 1} per tutti gli i e j. Esempi di matrici TUM e non TUM Proposizione: A è TUM se e solo se A t è TUM se solo se (A I m ) è TUM. La matrice A ottenuta da A permutando e/o cambiando segno ad alcune colonne e/o righe è TUM. Teorema 1: Sia matrice A TUM e b intero tali che P (b) = {x R n tutti i punti estremi (vertici) del poliedro P (b) sono interi. : Ax = b, x 0} =, allora Dim: Come per la precedente osservazione. 2
Il risultato si estende anche ai problemi in forma canonica: Corollario: Sia una matrice A TUM m n e b intero tali che P = {x R n : Ax b, x 0}, allora tutti i punti estremi (vertici) del poliedro P sono interi. Dim: Sia x un qualsiasi vertice di P. Innanzitutto mostriamo che ( x, s) con s := A x b è un vertice di P := {(x, s) R n+m : Ax s = b, (x, s) 0}. Se non fosse vero, esisterebbero due punti distinti (x 1, s 1 ) e (x 2, s 2 ) di P tali che ( x, s) = α(x 1, s 1 ) + (1 α)(x 2, s 2 ) per un qualche α con 0 < α < 1. Poiché s 1 = Ax 1 b 0 e s 2 = Ax 2 b 0, x 1 e x 2 appartengono a P. Inoltre (x 1, s 1 ) (x 2, s 2 ) implicherebbe x 1 x 2 e quindi x = αx 1 + (1 α)x 2 non potrebbe essere un vertice di P. Poiché A è TUM, anche (A I m ) è TUM. Secondo il Teorema 1 per P, ( x, s) è intero, e quindi lo è anche x. 3
Le seguenti condizioni sufficienti permettono di verificare se una matrice è TUM: Proposizione: Una matrice A intera è TUM se i) a ij { 1, 0, +1} per tutti gli i e j, ii) ogni colonna di A contiene al più due coefficienti non nulli, iii) l insieme I degli indici delle righe di A può essere suddiviso in due parti I 1 e I 2 tali che in ogni colonna j con due coefficienti non nulli vale i I 1 a ij i I 2 a ij = 0. NB: Se una colonna ha due coefficienti non nulli dello stesso segno, le loro righe sono in insiemi diversi (I 1 e I 2 ). Se ne ha due di segno diverso, le loro righe sono nello stesso insieme I j, con j = 1 o j = 2. Dim: Supponiamo che A non sia TUM, e sia Q una sottomatrice quadrata di A di dimensione minima tra quelle con det(q) / { 1, 0, 1}. Q non può contenere una colonna con un singolo coefficiente non nullo, altrimenti Q non sarebbe minimale. Quindi ogni colonna di Q contiene esattamente due coefficienti non nulli. In base a (iii), i I 1 a ij i I 2 a ij = 0 e quindi det(q) = 0, che è una contraddizione. Esempio di matrice TUM che (non) soddisfa queste condizioni 4
Caratterizzazione delle matrici TUM: Teorema 2: Una matrice A intera (m n) è TUM se e solo se ogni sottoinsieme J I = {1,..., m} di indici di righe di A può essere suddiviso in due parti J 1 e J 2 tali che la somma delle righe in J 1 meno la somma delle righe in J 2 sia un vettore con tutte le componenti in { 1, 0, 1}. Dal punto di vista del PLI, quando la matrice A è TUM basta risolvere il rilassamento continuo. In qualche modo anche il contrario è vero: Proposizione: Il programma lineare min{c t x : Ax = b, x R n +} ha una soluzione ottima intera per qualsiasi vettore b intero per il quale ammette una soluzione ottima finita se e solo se A è TUM. Si può dimostrare che data A con base B t.c. det(b) 1 esiste sempre un PL min{c t x : Ax = b, x R n +}, per opportuni c e b, con una soluzione ottima frazionaria. 5
1) Problema di Assegnamento Assignment Dati n progetti (jobs) e n ingegneri (macchine), supponiamo che ogni progetto possa essere eseguito da qualsiasi ingegnere. Sia c ij il costo se i-esimo progetto è eseguito dal j-esimo ingegnere, con 1 i, j n. Ogni progetto deve essere assegnato esattamente ad un ingegnere e ogni ingegnere deve vedersi assegnare esattamente un progetto. Decidere quale progetto assegnare ad ogni ingegnere in modo da minimizzare il costo totale necessario per completare tutti i progetti. Modello: min n n i=1 j=1 c ijx ij n i=1 x ij = 1 j (2) n j=1 x ij = 1 i (3) x ij {0, 1} i, j dove x ij = 1 se e solo se i-esimo progetto viene assegnato al j-esimo ingegnere, con 1 i, j n. NB: Nel rilassamento continuo basta imporre x ij 0 i, j visto che (2)-(3) implicano x ij 1 i, j. Proprietà: La matrice dei vincoli (2)-(3) è TUM (considerare I 1 = {1,..., n} e I 2 = {n+1,..., 2n}). Conseguenza: Ogni punto estremo della regione ammissibile del rilassamento continuo è intero e la formulazione è ideale. 6
2) Problema del trasporto Transportation Consideriamo il caso di un unico tipo di prodotto. Dati m impianti produttivi (1 i m) n clienti (1 j n) c ij = costo di trasporto di una unità di prodotto dall impianto i al cliente j p i = disponibilità massima di prodotto presso l impianto i d j = domanda del cliente j q ij = massima quantità trasportabile dall impianto i al cliente j determinare un piano di trasporto che minimizzi i costi di trasporto rispettando le domande e i limiti di disponibilità. Ipotesi: m i=1 p i n j=1 d j (per garantire ammissibilità) Senza perdita di generalità, si può in realtà supporre che m i=1 p i = n j=1 d j. 7
Modello Variabili di decisione: x ij = quantità di prodotto trasportata da impianto i a cliente j, con 1 i m e 1 j n min m i=1 n j=1 c ijx ij n j=1 x ij p i i (4) m i=1 x ij d j j (5) x ij q ij i, j (6) x ij 0 intere i, j Proprietà: La matrice dei vincoli (4)-(6) è TUM Dim: Moltiplicando per 1 i vincoli (4) e (6) si mette il problema in forma canonica. Si può quindi applicare il Corollario. Conseguenza: Se tutte le domande d j, disponibilità p i e capacità q ij sono intere, ogni punto estremo della regione ammissibile del rilassamento continuo è intero. La formulazione è ideale, descrive il guscio convesso delle soluzioni ammissibili intere. 8
3) Problema del flusso di costo minimo Minimum cost flow Dato un grafo orientato G = (V, A) con una capacità k ij e un costo unitario c ij per ogni (i, j) A e una domanda/disponibilità b i per ogni nodo i V (b i positiva per sorgenti, negativa per destinazioni, nulla per nodi intermedi), determinare un flusso ammissibile che soddisfa tutte le domande a costo minimo. Ipotesi: i V b i = 0 (per garantire ammissibilità) Modello: min (i,j) A c ijx ij j δ + (i) x ij h δ (i) x hi = b i i V (7) 0 x ij k ij (i, j) A (8) dove δ + (i) = {j V : (i, j) A} e δ (i) = {h V : (h, i) A} Proprietà: La matrice dei vincoli (7)-(8) è TUM. Dim: La matrice di incidenza nodi-archi di un grafo orientato (a ij = 1 se j-esimo arco esce dal nodo i, a ij = 1 se j-esimo arco entra nel nodo i, a ij = 0 altrimenti) è TUM perché ogni colonna contiene esattamente un 1 ed un 1 (basta scegliere I 1 = I e I 2 = ). La matrice dei vincoli di capacità (8) è la matrice identità di dimensione A A. La matrice composta (prima su seconda) è anch essa TUM. Conseguenza: Se le domande/disponibilità b i e le capacità k ij sono intere, ogni punto estremo è intero. Un eventuale vincolo di interezza sulle variabili risulterebbe ridondante. 9
Mostrare che i seguenti problemi sono casi particolari del problema di flusso di costo minimo: - Dato un grafo orientato G = (V, A) con un costo c ij associato ad ogni arco (i, j) A, e due nodi s e t, determinare un cammino di costo minimo da s a t. - Dato un grafo orientato G = (V, A) con una capacità k ij associata ad ogni arco (i, j) A, una sorgente s e una destinazione t, determinare un flusso ammissibile di valore massimo da s a t. Quando la matrice dei vincoli di un PLI non è totalmente unimodulare, la soluzione ottima x P L del rilassamento continuo è in genere frazionaria. Per cercare di ottenere una soluzione ammissibile del PLI, si può pensare di arrotondare ogni componente frazionaria di x P L all intero più vicino. Purtroppo molto spesso la soluzione arrotondata può essere non ammissibile per il PLI, anche se la soluzione arrotondata è ammissibile l errore rispetto a quella ottima del PLI può essere molto elevato. In genere, arrotondando x P L si ottiene una buona approssimazione della soluzione ottima del PLI solo quando le componenti x P L hanno valori elevati. Esempi 10