Rilassamento lineare

Il rilassamento lineare è una tecnica di risoluzione dei problemi di programmazione intera che consiste nel risolvere un problema con la programmazione lineare cercando le soluzioni intere più vicine.

Come funziona

Dato un problema di programmazione intera

  1. rimuovo il vincolo di interezza
  2. risolvo il problema con la programmazione lineare
  3. cerco una soluzione intera tra le soluzioni ammissibili lineari

    Nota. Se il problema non ammette soluzioni lineari allora è sicuro che non esistono nemmeno le soluzioni intere. In questo caso è inutile cercarle. Viceversa, se il problema ammette soluzioni lineari non si può dire nulla. Potrebbero esserci soluzioni intere oppure no.

Nel caso esistano le soluzioni intere sono quasi sempre sub-ottimali rispetto alle soluzioni lineari.

Al massimo una soluzione intera può essere uguale a una soluzione lineare. Mai migliore.

Un esempio pratico

Questo problema include il vincolo di interezza.

$$ min \ z = x_1+x_2 \\ \begin{cases} x_1+2x_2 \ge 4 \\ 3x_1+x_2 \le 11 \\ x_1-x_2 \ge -1 \\ \\ x_1,x_2 \ge 0 \\ x_1,x_2 \in Z \end{cases} $$

Pertanto, si tratta di un problema di programmazione intera.

Per risolverlo rimuovo il vincolo di interezza.

$$ min \ x_1+x_2 \\ \begin{cases} x_1+2x_2 \ge 4 \\ 3x_1+x_2 \le 11 \\ x_1-x_2 \ge -1 \\ \\ x_1,x_2 \ge 0 \end{cases} $$

In questo modo posso trovare le soluzioni ammissibili usando gli algoritmi della programmazione lineare.

Ad esempio, l'algoritmo del simplesso o il metodo grafico.

le soluzioni ammissibili del problema

Le soluzioni ammissibili del problema lineare sono comprese nell'area ABC.

In questo caso la soluzione del problema è il punto A(0.7;1.65) ossia x1=0.7 e x2=1.65 dove la funzione obiettivo è zL=2.35

$$ z_L = x_1 + x_2 = 0.7 + 1.65 = 2.35 $$

Una volta trovata la soluzione lineare ottimale A(0.7;1.65) cerco le combinazioni intere più vicine arrotondando per eccesso e per difetto le variabili x1=0.7 e x2=1.65

le coordinate intere più vicine alla soluzione lineare

I punti con le coordinate intere più vicine al punto di ottimo lineare sono quattro: (0;1) , (0;2) , (1;1) e (1;2).

le possibili soluzioni intere

I punti (0;1) , (1;1) e (0;2) posso eliminarli sono soluzioni inammissibili, perché si trovano al di fuori dell'area ABC delle soluzioni ammissibili del problema.

elimino i punto non ammissibili

Pertanto, la soluzione intera del problema è il punto (2;1) ossia i valori x1=1 e x2=2 dove la funzione obiettivo vale zi=3.

$$ z_i = x_1 + x_2 = 1 + 2 = 3 $$

Nota. La soluzione intera trovata con il rilassamento lineare zi è quasi sempre subottimale rispetto alla soluzione lineare zL o al massimo uguale. Mai migliore. In effetti, in questo esempio la soluzione lineare è zL=2.34 mentre la soluzione intera e zi=3. Essendo un problema di minimizzazione della funzione obiettivo z la soluzione intera è subottimale. $$ z_i \ge z_L $$

In questo esempio ho cercato le soluzioni intere usando il metodo dell'arrotondamento.

E' un metodo molto semplice ma ha diversi svantaggi.

  • L’arrotondamento per difetto e per eccesso di ogni variabile non intera causa una crescita esponenziale delle combinazioni 2n al crescere del numero (n) delle variabili del problema.
  • Non è detto che la soluzione intera sia una buona approssimazione di quella lineare. La soluzione intera potrebbe esistere ma essere molto diversa oppure mancare del tutto.

Osservazioni

Alcune osservazioni utili sul rilassamento lineare

  • Se non esiste una soluzione lineare, allora non esiste nemmeno una soluzione intera
    Le soluzioni intere SI sono un sottoinsieme delle soluzioni lineari SL. $$ S_I ⊆ S_L $$ Quindi, se l'insieme delle soluzioni lineari è un insieme vuoto SL=Ø anche il sottoinsieme delle soluzioni intere deve necessariamente essere un insieme vuoto SI=Ø. $$ S_L = Ø \Longrightarrow S_I = Ø $$ Non vale però la relazione inversa. Se l'insieme delle soluzioni lineari non è vuoto SL≠Ø , non posso affermare nulla sul sottoinsieme SI.

    L'esistenza delle soluzioni lineari è una condizione necessaria ma non sufficiente per l'esistenza delle soluzioni intere. Ad esempio un problema potrebbe ammettere un'area di soluzioni lineari ammissibili ABCD che non include punti con coordinate intere.
    un esempio pratico
    Se invece non esiste l'area delle soluzioni lineari ammissibili ABC di un problema, allora non possono esistere nemmeno dei singoli punti del piano con coordinate (x1;x2) intere che risolvono il problema.

  • Se un problema ammette una soluzione lineare allora l'eventuale soluzione intera è uguale o sub-ottimale. Se il rilassamento lineare porta a una soluzione zL ottimale, la soluzione intera zi potrebbe non esistere (problema impossibile zi=∞) essere sub-ottimale (zi>zL) oppure coincidere con la soluzione lineare (zi=zL).

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Programmazione intera