Lezione n°10
Algoritmo del Simplesso:
- Coefficienti di costo ridotto - Condizioni di ottimalità
- Test dei minimi rapporti - Cambio di base
R. Cerulli – F. Carrabs
Lezioni di Ricerca Operativa
Università degli Studi di Salerno
Consideriamo il problema (PL) in Forma Standard
Data una base B ammissibile, partizioniamo sia la matrice A che il vettore delle incognite x come segue:
Il sistema di equazioni lineari Ax=b si può riscrivere come
Calcolo della soluzione ottima di un problema di PL.
Calcolo della soluzione ottima di un problema di PL.
Riscriviamo anche la funzione obiettivo come:
(1) Sostituendo in (1) l’espressione delle variabili di base:
Il valore della funzione obiettivo corrispondente alla base B è:
�
�= �
�−1� − �
�−1�
��
�(2)
otteniamo: z + (3)
z
Le relazioni (2) e (3) esprimono rispettivamente i vincoli e la funzione obiettivo in funzione delle variabili fuori base.
Indichiamo con e poichè otteniamo:
dove a
jè la colonna di A che moltiplica la variabile fuori base x
j.
�=� � � ´�− ∑
�∈ �
� � � � −1 � � � � � + ∑
� ∈�
� � � �
� � = ´ �− ∑
�∈ �
� − 1 � � � � �
Se e la funzione obiettivo diventa:
�=� � � ´�− ∑
�∈�
� � � � −1 � � � � � + ∑
� ∈�
� � � �
�=� 0 − ∑
� ∈ �
� � � � + ∑
�∈ �
� � � � = � 0 − ∑
�∈ �
( � � − � � ) � �
� � = ´ �− ∑
�∈ �
� −1 � � � � � = ´ �− ∑
� ∈�
� � � �
Infine fissato i vincoli diventano:
I coefficienti vengono detti coefficienti di costo ridotto
Consideriamo il problema (PL) in Forma Standard
Data una base B ammissibile, riscriviamo il problema in funzione di B come segue:
Forma canonica in funzione di una base B
y
j= A
B-1a
jz
j= c
TBA
B-1a
jb= A
B-1b
z
0= c
TBA
B-1b
Verifichiamo se la soluzione di base corrente è ottima o può essere migliorata
Consideriamo la funzione obiettivo:
Verifichiamo come cambia il valore della funzione obiettivo incrementando la variabile fuori base x
kche è attualmente nulla.
La funzione obiettivo migliora !
Supponiamo che esista un coefficiente k N tale che:
����=� 0 − ∑
�∈ �
( � � − � � ) � �
�
�− �
�> 0
�
� = �0 − (¿ ¿ � − ��)��
¿
¿ 0
¿ 0
Teorema (Condizione di ottimalità)
Una soluzione di base non degenere di un problema di PL è ottima se e solo se:
Nel caso di soluzione degenere possono esistere soluzioni ottime in cui il punto (2) del teorema non è soddisfatto.
Tuttavia, se un problema ammette una soluzione ottima finita allora ammette una soluzione di base ottima che soddisfa le condizioni (1) e (2) del teorema.
1) i=1…,m (ammissibile)
2) (non migliorabile)
1
X
6
-3 -2
-1 1 (1)
(3) (2)
A B
C
Forma Standard
Verificare analiticamente se la soluzione di base associata al punto A soddisfa il test di
ottimalità.
BA={1,3,4} NA={2,5}
x1 x3 x4 x1 x2 x3 x4 x5
=[3,0,0]
� �−��=�
���
− 1�� �−��
z2 - c2 = cTBAB-1a2 - c2 = (3, 0, 0)AB-1 -1 1
-1 æ è çç ç
ö ø
÷÷
÷-1 = (0, 0, 32) -1 1
-1 æ è çç ç
ö ø
÷÷
÷-1= - 32 -1 = -5 2
z5 - c5 = cTBAB-1a5 - c5 = (3, 0, 0)AB-1 0 0 -1 æ è çç ç
ö ø
÷÷
÷- 0 = (0, 0, 32) 0 0 -1 æ è çç ç
ö ø
÷÷
÷- 0 = - 32 - 0 = -3 2
Poichè incrementando il valore della variabile fuori base x
kil valore della funzione obiettivo migliora, si potrebbe pensare di aumentare indefinitivamente x
k.
Tuttavia, aumentando x
kanche il vettore delle variabili in base x
Bviene modificato in accordo all’equazione dei vincoli.
Dal momento che le x
jsono uguali a zero, per , la relazione:
diventa:
In forma vettoriale:
Se y
ik 0 ∀i B ∈
allora x
Bicresce al crescere di x
ke così x
Bicontinua a essere non
negativo. (ottimo illimitato)
Se esiste una componente i tale che y
ik> 0 allora x
Bidecresce al crescere di x
k.
Il valore di x
kverrà incrementato finché una delle variabili in base assumerà valore zero. Infatti noi vogliamo che:
La variabile x
Biche si azzererà per prima verrà tolta dalle variabili di base e sarà rimpiazzata dalla variabile x
k.
� �
1
= �1− � 1 � � � ≥ 0
� �
2
= �2− � 2� � � ≥ 0
� �
�
= ��− � �� � � ≥ 0
………...……
………...……
………...………
………...………
Possiamo scrivere:
Dobbiamo considerare solo i rapporti in cui
≤0
>0
>0
sempre
Quindi, considerando i rapporti in cui y
ik>0, il valore assunto dalla variabile x
ksarà:
Il precedente test viene chiamato test dei minimi rapporti ed è utilizzato per individuare la variabile in base x
Brche si azzererà per prima, al crescere di x
k, e che quindi uscirà dalla base.
�
�1= �1 − �
1��
�≥ 0 ⟺ �1 − �
1���
�
� �≥ 0
�
��= �� − �
� ��
�≥ 0 ⟺ �� − �
� ���
�
� �≥ 0
�
��= ��− �
���
�≥ 0 ⟺ ��− �
����
�
� �≥ 0
………...………
………...………
Riassumendo:
• Fare assumere ad x
kun valore positivo significa portare la variabile x
kin base.
• Nello stesso tempo il valore delle variabili di base:
Cresce se y
ik< 0;
Decresce se y
ik> 0;
Non cambia se y
ik=0.
• Il valore che assume x
kin base è calcolato tramite il test dei minimi rapporti:
• La variabile x
Bresce dalla base.
Il coefficiente y
rkè detto Pivot, (l’aggiornamento della base si dice Pivoting) e viene usato per aggiornare i valori delle variabili in base dopo l’ingresso in base di x
k.
La nuova soluzione di base
Le nuove variabili fuori base
� �
�
= ��− � � � ��
� � �
con N\{k}
� � = � �
� � �
Con il cambio delle variabili in base, la nuova matrice di base risulta composta delle stesse colonne della vecchia base ad eccezione del fatto che la colonna associata a è stata sostituita dalla colonna associata a x
k.
x Br
La nuova soluzione di base (a meno di casi degeneri) ha migliorato il valore della funzione obiettivo:
>0
>0
�=�
0−( �
�− �
�) ��
� �� < � 0
>0