Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonio Sforza » 15.Ottimizzazione intera: il metodo del piano di taglio


Schema della lezione

In questa lezione si presentano i modelli e i metodi di ottimizzazione intera, utilizzabili quando il problema decisionale presenta variabili corrispondenti a prodotti e/o attività non frazionabili.

Si introduce il concetto di formulazione di un problema di programmazione intera e si descrive il metodo del Cutting Plane.

Problemi di programmazione intera

Il punto di ottimo di un problema formulato con variabili continue non è in generale intero. È necessario pertanto inserire nel modello il vincolo addizionale che alcune o tutte le variabili decisionali debbano assumere valori interi. Questi vincoli si definiscono vincoli di interezza e per i modelli così formulati si utilizza il termine programmazione intera (P.I.) o discreta. Si utilizza inoltre il termine programmazione intera mista quando alcune variabili decisionali sono continue ed altre sono intere.

Le variabili intere possono essere di due tipi:

  • variabili intere di tipo generale, che assumono i valori interi 0,1,2,3,….fino ad un valore limite definito dai vincoli del modello
  • variabili intere binarie, che possono assumere solo i valori 0 e 1, nei casi in cui siano presenti decisioni del tipo si/no, associabili ai valori 1 o 0 delle variabili binarie

Un modello di programmazione intera

Un modello di programmazione intera si presenta nella forma seguente:

Max z = ∑j=1,n cjxj
s.a

j=1,n aijxj ≤ (≥, =) bi . i = 1,…, m (1)
xj ≥ 0 j = 1,…, n (2) xj intero j = 1,…, n (3)

o in forma matriciale compatta:

Max z = cx
s.a    Ax b
x ≥  0 intero

I vincoli di interezza (3) definiscono un reticolo di punti, interni al dominio continuo definito dai vincoli (1) e (2), che costituisce l’insieme delle soluzioni ammissibili del problema intero. Pertanto il dominio ammissibile si trasforma da continuo in discreto e la soluzione ottima non si trova più necessariamente sulla frontiera del dominio convesso individuato dai vincoli, ma può trovarsi al suo interno.

Poliedro P e insieme X dei punti interi

Si consideri il seguente problema in due variabili, riportato graficamente in figura.

Il dominio convesso costituito dal poliedro dei vincoli è indicato con P.

Sia S l’insieme, finito, delle soluzioni intere.

\text{Max  }z=2x_1+3x_2

s.a.

-1.3x_1+3x_2\leq 9

3x_1+0.9x_2\leq 18

x_1, x_2 \geq 0\hspace{1cm}\text{interi}

P=\{x\geq 0: Ax\leq b\}


Soluzione di un problema di PI

Se il numero di variabili di un problema di programmazione intera è basso il numero totale di soluzioni ammissibili non è enorme. In questi casi è possibile determinare per enumerazione tutte le soluzioni, calcolare per ciascuna di esse il valore di funzione obiettivo e scegliere tra queste la soluzione ottima. Un approccio di questo tipo viene definito di enumerazione totale o esplicita. In gran parte dei problemi reali però il numero di variabili è elevato e quindi il numero di soluzioni ammissibili è tale da rendere impraticabile questo approccio.

Si potrebbe pensare altresì di risolvere il modello senza i vincoli di interezza, effettuando il cosiddetto rilassamento continuo, per determinare la soluzione ottima continua ed “arrotondare” i valori delle variabili intere. Ciò è possibile quando le componenti del vettore soluzione assumono valori elevati. Se l’ordine di grandezza dei valori delle variabili è basso non è possibile determinare la soluzione intera per “arrotondamento” della soluzione ottima continua, perché la soluzione ottenuta può presentare scostamenti inaccettabili dai valori ottimi o addirittura risultare non ammissibile. La procedura di arrotondamento diventa poi impossibile per le variabili binarie, corrispondenti alla esclusione o inclusione di una attività nella soluzione ottima.

Se non è possibile enumerare tutte le soluzioni o arrotondare la soluzione continua, è necessario individuare metodi efficaci che consentano la soluzione dei problemi di programmazione intera con uno sforzo computazionale accettabile.

Formulazione di un problema di programmazione intera

Il poliedro P, corrispondente ai vincoli del modello (P={x≥0 : Ax≤b}), è rappresentato in figura con linea continua a tratto spesso. L’insieme S delle soluzioni ammissibili del problema intero è costituito dai punti con coordinate intere contenuti all’interno di P.

Il poliedro P’, interno a P, corrisponde ad un altro insieme di vincoli. Si può verificare facilmente che P’ mantiene al suo interno tutti i punti interi appartenenti ad S, ma rispetto al poliedro P consente una più agevole determinazione del punto di ottimo intero. Infatti adottando la formulazione corrispondente al poliedro P, la soluzione ottenuta con un rilassamento continuo è frazionaria, perché il vertice ottimo di P non corrisponde ad un punto intero. Adottando invece la formulazione corrispondente a P’, la soluzione ottenuta con lo stesso rilassamento continuo consente di determinare la soluzione ottima intera, perché il vertice ottimo di P’ corrisponde ad un punto intero. Ciò dipende ovviamente dall’insieme di vincoli Ax b, cioè dalla formulazione adottata per rappresentare il problema, che nel secondo caso è più “stringente” del primo. Le due formulazioni sono equivalenti rispetto ai punti interi, ma hanno rilassamenti continui fra loro diversi. Sulla base di questo ragionamento si potrebbe pensare di costruire una formulazione A^x b^ (la più “aderente” possibile all’insieme S dei punti interi) cui corrisponde un poliedro P^, definito nocciolo convesso, rappresentato in figura con linea tratteggiata, per il quale tutti i vertici sono interi. Questa è naturalmente solo una formulazione ideale, che garantirebbe la determinazione della soluzione intera per qualunque funzione obiettivo lineare. Si può dare la seguente definizione:

“Dato un insieme S di punti interi, si definisce nocciolo convesso di S il più piccolo insieme convesso conv (S) che contiene S”.

Formulazioni equivalenti e nocciolo convesso

P=\{x\geq 0 : Ax\leq b\}

Il poliedro P corrisponde alla formulazione continua

P'=\{x\geq 0 : A'x\leq b'\}

Il poliedro P’ corrisponde ad una formulazione continua equivalente alla formulazione originaria

P^=\{x\geq 0 : A^x\leq b^\}

Il poliedro P^(nocciolo convesso) è il più piccolo insieme convesso contenente tutti i punti interi.


I metodi di soluzione

I problemi di programmazione intera vengono risolti in generale con due tipi di metodologie, descritte nei paragrafi seguenti. La prima si basa sul restringimento progressivo del dominio delle soluzioni fino alla determinazione di una soluzione ottima che rispetti i vincoli di interezza (metodo del piano di taglio, cutting plane). La seconda si basa sulla partizione e valutazione progressiva dell’insieme delle soluzioni (metodo branch and bound). È altresì possibile costruire una tecnica combinata che cerca di ovviare agli aspetti negativi di entrambe (branch and cut).

Piano di taglio αTx ≤ b0

Il piano di taglio \alpha^Tx\leq b_0 deve rispettare due condizioni:

  • escludere il punto di ottimo continuo x*
  • non escludere nessuno dei punti interi di X
1)\;\alpha^Tx^*>b_0
2)\; \alpha^Tx\leq b_0\,\;\forall x\in S

Piano di taglio αTx ≤ b0

1)\;\alpha^Tx^*>b_0

2)\; \alpha^Tx\leq b_0\,\;\forall x\in S

Dopo l’aggiunta del vincolo di taglio si risove il modello rilassato.

Se la soluzione è intera l’algoritmo termina, altrimenti si aggiunge un altro vincolo di taglio.


Piano di taglio αTx ≤ b0


Piano di taglio αTx ≤ b0


Piano di taglio αTx ≤ b0


Piano di taglio αTx ≤ b0

1)\;\alpha^Tx^*>b_0

2)\; \alpha^Tx\leq b_0\,\;\forall x\in S

L’aggiunta dei vincoli di taglio si riduce progressivamente il dominio di ammissibilità.

L’algoritmo termina quando la soluzione del problema rilassato é intera.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93