Sunteți pe pagina 1din 19

Algoritmul Simplex primal

Considerații teoretice (notații terminologie, forma explicită în raport cu o


bază, tabel simplex asociat unei baze)
Considerăm o problemă de programare liniară în formă standard cu m
restricții și n variabile și în care funcția obiectiv se maximizează:

⎧ (max)𝑓 = ∑ 𝑐 𝑥
⎪∑ (max)𝑓 = 𝑐 𝑥
𝑎 𝑥 =𝑏 𝑖 = 1, … , 𝑚
(𝑃) ⟺ 𝐴𝑥 = 𝑏
⎨ 𝑥 ≥ 0 𝑗 = 1, … , 𝑛
⎪ 𝑥≥0

în care:
𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
 𝐴= = [𝑎 , 𝑎 , … , 𝑎 ]
⋮ ⋮ ⋯ ⋮
𝑎 𝑎 ⋯ 𝑎

este matricea tehnologică iar 𝑎 , 𝑎 , … , 𝑎 sunt coloanele acesteia,

𝑥
𝑥
 𝑥= ⋮ ∈ ℝ este vectorul coloană al variabilelor de decizie,
𝑥

𝑏
𝑏
 𝑏= ∈ ℝ este vectorul coloană al termenilor liberi,

𝑏

 𝑐 = [𝑐 𝑐 ⋯ 𝑐 ] ∈ ℝ este vectorul linie al coeficienților funcției


obiectiv numit și vectorul costurilor.
Relativ la matricea tehnologică A facem ipoteza :

𝑟𝑎𝑛𝑔(𝐴) = 𝑚 < 𝑛

Ipoteza, ușor de îndeplinit în aplicațiile practice, are două consecințe importante :

 Din 𝑟𝑎𝑛𝑔(𝐴) = 𝑚 rezultă că din matricea A se poate extrage cel puțin un


grup de m coloane care sunt vectori liniar independenți i.e., determinantul matricei
patratice formate cu cele m coloane este nenul, și deci matricea formată este
inversabilă. Cei m vectori coloană linear independenți formează o bază pentru
spațiul vectorial liniar ℝ , care este spațiul restricțiilor problemei (P). Numărul
bazelor care se pot forma cu colane din matricea A este cel mult egal cu
𝑛!
𝐶 =
𝑚! (𝑛 − 𝑚)!
 Din 𝑟𝑎𝑛𝑔(𝐴) < 𝑛 rezultă că sistemul liniar 𝐴𝑥 = 𝑏 are o infinitate de soluții.
Observație: Este posibil ca niciuna dintre aceste soluții să fie admisibilă, adică să
aibe toate componenele nenegative, altfel spus, ipoteza nu implică compatibilitatea
problemei (P).

În raport cu o bază arbitrară B a problemei (P) în formă standard (P), introducem


următoarele notații:
 𝐽 ≡ mulțimea indicilor bazici
 𝐵 matricea pătratică de ordin 𝑚, formată cu coloanele de indici 𝑖 ∈ 𝐽 din
matricea tehnologică A. Cele 𝑚 coloane sunt vectori liniar independenți iar
matricea 𝐵 este inversabilă
𝐵= 𝑎 ∈

 𝐽 ≡ mulțimea indicilor nebazici (secundari)


 𝑆 matricea formată cu restul coloanelor din A, care nu sunt în B
𝑆= 𝑎 ∈

Astfel matricea tehnologică A este partiționată în două blocuri :


𝐴 = [𝐵 𝑆]
Baza B induce partiționările :

𝑥= 𝑥 cu 𝑥 = 𝑥 vectorul variabilelor bazice și
𝑥 ⋮ ∈

𝑥 = 𝑥 vectorul variabilelor nebazice
⋮ ∈

𝑐 = [𝑐 𝑐 ] cu 𝑐 = [⋯ 𝑐 ⋯] ∈ vectorul coeficienților bazici


și 𝑐 = [⋯ 𝑐 ⋯] ∈ vectorul coeficienților nebazici
Variabilele 𝑥 , 𝑖 ∈ 𝐽 se numesc variabile bazice iar 𝑥 , 𝑗 ∈ 𝐽 se numesc
variabile nebazice.

Forma explicită a problemei (P) în raport cu baza B presupune :


- Transformarea sistemului de restricții 𝐴𝑥 = 𝑏 într-un sistem de ecuații
liniare echivalent în care variabilele bazice 𝑥 , 𝑖 ∈ 𝐽 sunt explicitate în
funcție de cele nebazice 𝑥 , 𝑗 ∈ 𝐽 ;
- Evaluarea funcției obiectiv prin variabile nebazice i.e., eliminarea
variabilelor bazice 𝑥 , 𝑖 ∈ 𝐽 din expresia funcției obiectiv f

Vom arăta cum se construiește această formă explicită în cazul general (cu această
ocazie vom face și câteva calcule matriciale…)

 Explicitarea variabilelor bazice in funcție de cele nebazice în sistemul de


ecuații liniare 𝑨𝒙 = 𝒃
Deoarece B este o matrice inversabilă, sistemul
𝐴𝑥 = 𝑏 ⟺ [𝐵 𝑆] 𝑥 = 𝑏 ⟺ 𝐵𝑥 + 𝑆𝑥 = 𝑏
𝑥
poate fi rescris, prin înmulțire la stânga cu inversa 𝐵 bazei 𝐵, sub forma :
𝑥 + 𝐵 𝑆𝑥 = 𝐵 𝑏 ⟺ 𝑥 + 𝐺𝑥 = 𝑥̅ unde 𝐺 = 𝐵 𝑆 și 𝑥̅ = 𝐵 𝑏
Punem în evidență componentele matricei 𝐺 și ale vectorului valorilor variabilelor
bazice 𝑥̅
𝐺 = 𝐵 𝑆 = 𝐵 [⋯ 𝑎 ⋯] ∈ = [⋯ 𝐵 𝑎 ⋯] ∈ = [⋯ 𝑔 ⋯] ∈
unde

𝑔 = 𝐵 𝑔 = 𝑔̅ 𝑗 ∈ 𝐽 de unde în final 𝐺 = 𝑔 ∈ , ∈
.
⋮ ∈


𝑥̅ = 𝐵 𝑏 = 𝑥̅
⋮ ∈

În concluzie, sistemul:

𝐴𝑥 = 𝑏 ⟺ 𝑎 𝑥 =𝑏 𝑖 = 1, … , 𝑚

a fost transformat în sistemul echivalent

𝑥 + 𝐺𝑥 = 𝑥̅ ⟺ 𝑥 + 𝑔 𝑥 = 𝑥̅ 𝑖∈𝐽

în care, într-adevăr, variabilele bazice sunt explicitate în funcție de cele nebazice.

 Eliminarea variabilelor bazice 𝒙𝒊 , 𝒊 ∈ 𝐽 din expresia funcției obiectiv


Pentru început

𝑓 = 𝑐 𝑥 = [𝑐 𝑐 ] 𝑥 =𝑐 𝑥 +𝑐 𝑥
𝑥
Înlocuind 𝑥 = 𝑥̅ − 𝐺𝑥 obținem
𝑓 = 𝑐 (𝑥̅ − 𝐺𝑥 ) + 𝑐 𝑥 = 𝑐 𝑥̅ − (𝑐 𝐺 − 𝑐 )𝑥 = 𝑓(𝑥̅ ) − 𝑐̅ 𝑥
unde
𝑓(𝑥̅ ) = 𝑐 𝑥̅ = 𝑐 𝐵 𝑏 este valoarea funcției obiectiv
în soluția de bază 𝑥̅ și
𝑐̅ = 𝑐 𝐺 − 𝑐 = 𝑐 𝐵 𝑆 − 𝑐
Se vede că în noua expresie a funcției obiectiv 𝑓 = 𝑓(𝑥̅ ) − 𝑐̅ 𝑥 ⟺ 𝑓 =
𝑓(𝑥̅ ) − ∑ ∈ 𝑐̅ 𝑥 nu apar variabilele bazice 𝑥 , 𝑖 ∈ 𝐽𝑩 . Coeficienții 𝑐̅ , 𝑗 ∈ 𝐽 se
numesc costuri reduse. Mai exact,
𝑐̅ = ∑ ∈ 𝑐 𝑔 − 𝑐 = 𝑧 − 𝑐 , pentru orice 𝑗 ∈ 𝐽 .

 Astfel, problema de programare liniară (P), în formă standard, a fost adusă la


forma :


⎪𝑥 +𝐺𝑥 =𝑥̅
(𝑃 ) ⟺
⎨𝑓 = 𝑓(𝑥̅ ) − 𝑐̅ 𝑥


⎧ 𝑥 + 𝑔 𝑥 = 𝑥̅ , 𝑖 ∈ 𝐽𝑩
⎪ ∈
⟺ (𝑃 )
⎨𝑓 = 𝑓(𝑥̅ ) − (𝑧 − 𝑐 )𝑥

⎩ ∈

care constituie forma explicită a programului (P) în raport cu baza B.


Observație : Pentru fiecare bază care se poate forma cu vectori coloană din
matricea 𝐴, problema de programare liniară în formă standard (P) are o unică forma
explicită.
Pentru comoditate, constantele formei explicite (PB) se scriu într-un tabel cu
formatul :
Max/Min 𝑐 𝑐 𝑐 ⋯ 𝑐 𝑐 … 𝑐
𝑐 𝐵 𝑥 𝑎 𝑎 ⋯ 𝑎 𝑎 ⋯ 𝑎
𝑐 𝑎 𝑥 1 0 ⋯ 0 𝑔 ⋯ 𝑔
𝑐 𝑎 𝑥 0 1 ⋯ 0 𝑔 ⋯ 𝑔
⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
𝑐 𝑎 𝑥 0 0 ⋯ 1 𝑔 ⋯ 𝑔
𝑧 𝑧 𝑧 𝑧 ⋯ 𝑧 𝑧 ⋯ 𝑧
𝑧 − 𝑐 0 0 ⋯ 0 𝑧 ⋯ 𝑧 −𝑐
−𝑐

numit tabelul simplex asociat bazei B=(𝑎 , 𝑎 , … , 𝑎 ).

Observații:

 Un tabel simplex conține constantele formei explicite a unui program liniar în


formă standard în raport cu o anumită bază.
 Baza curentă se compune din vectorii bazici enumerați în coloana B.
 Tabelul pune în evidență soluția de bază asociată bazei considerate : valorile
variabilelor bazice sunt evidențiate în coloana 𝑥 . Prin definiție, variabilele
nebazice iau valoarea zero.
 Valoarea funcției obiectiv în soluția de bază curentă este 𝑧 = 𝑓(𝑥) = 𝑐 𝑥 ,
adică produsul scalar al coloanelor 𝑐 și 𝑥 .
 Costurile reduse sunt valorile numerice 𝑐̅ =𝑧 − 𝑐 = 𝑐 𝑔 − 𝑐 care se
obțin efectuând produsul scalar al coloanelor 𝑐 și 𝑔 din care se scade costul cj
scris pe prima linie a tabelului simplex.
 Diferențele test corespunzătoare indicilor bazici sunt nule.
PROBLEME REZOLVATE:
Problema 1. Se consideră problema de programare liniară :

(max)𝑓 = 8𝑥 − 6𝑥 + 7𝑥
⎧ 3𝑥 − 𝑥 + 2𝑥 = 30

(𝑃) 2𝑥 + 𝑥 ≥ 35
⎨ 𝑥 + 3𝑥 ≤ 20

⎩ 𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0
Să se determine soluția optimă a (P).
Soluție: Utilizarea algoritmului simplex impune scrierea problemei (P) în formă
standard:
(max)𝑓 = 8𝑥 − 6𝑥 + 7𝑥 + 𝟎 ∙ 𝒙𝟒 + 𝟎 ∙ 𝒙𝟓

⎪ 3𝑥 − 𝑥 + 2𝑥 = 30
(𝐹𝑆𝑃) 2𝑥 + 𝑥 − 𝒙𝟒 = 35
⎨ 𝑥 + 3𝑥 + 𝒙𝟓 = 20

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5
0
Deoarece matricea tehnologică conține numai coloana 0 a matricii unitate de ordinul
1
1 0
3 (≡ coloana coeficienților variabilei x5). Formăm coloanele 0 și 1 adăugând
0 0
variabilele artificiale x6 ≥0 și x7 ≥ 0 în prima, respectiv a doua restricție din (FSP).
Utilizând metoda bazei artificiale, scriem problema (P) în formă extinsă.
(max)𝑓 = 8𝑥 − 6𝑥 + 7𝑥 + 𝟎 ∙ 𝒙𝟒 + 𝟎 ∙ 𝒙𝟓 − 𝑴𝒙𝟔 − 𝑴𝒙𝟕

⎪ 3𝑥 − 𝑥 + 2𝑥 + 𝒙𝟔 = 30
(𝐹𝐸𝑃) 2𝑥 + 𝑥 − 𝒙𝟒 + 𝒙𝟕 = 35
⎨ 𝑥 + 3𝑥 + 𝒙𝟓 = 20

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,7

Observație1: Dacă matricea tehnologică a formei standard nu conține


matricea unitate de ordinul m = numărul restricțiilor, pentru creearea coloanelor
unitare lipsă, în restricțiile corespunzătoare se vor introduce noi variabile nenegative
numite variabile artificiale. Spre deosebire de variabilele de ecart, variabilele
artificiale se introduc în funcția obiectiv cu un coeficient comun :

-M în problemele de maximizare ;
+M în problemele de minimizare

unde M >>0 este o constantă pozitivă foarte mare. Spunem că funcția obiectiv se
penalizează prin introducerea variabielelor artificiale.
Observație 2. S-a cerut determinarea soluției optime a problemei (P) dar algoritmul
simplex se aplică problemei (FEP). Este firesc să ne întrebăm, ce relație există între
AP și AFEP și cum se găsește soluția optimă a problemei (P) dacă se cunoaște soluția
optimă a problemei (FEP).

 Între AP și AFSP există o corespondență bijectivă care conservă soluțiile


optime. În cazul de față, corespondența este dată de:
AP → AFSP : (𝑥̅ , 𝑥̅ , 𝑥̅ ) ⟶ (𝑥̅ , 𝑥̅ , 𝑥̅ , 2𝑥̅ + 𝑥̅ − 35,20 − 𝑥̅ − 3𝑥̅ )
AP ← AFSP : (𝑥 , 𝑥 , 𝑥 ) ⟵ (𝑥 , 𝑥 , 𝑥 , 𝑥 , 𝑥 )
 Soluțiile din AFSP se identifică cu soluțiile din AFEP în care toate variabilele
artificiale au valoarea zero.
 Costurile de penalizare foarte mari asociate variabilelor artificiale asigură
faptul că algoritmul simplex se îndreptă către soluțiile în care aceste variabile au
valori mici, eventual zero.
Se întocmește tabelul simplex asociat bazei canonice B= [(𝑎 , 𝑎 , 𝑎 ]) care este
o bază artificială.
8 -6 7 0 0 -M -M
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎 θ
-M 𝑎 30 3 -1 2 0 0 1 0 30:3=10
-M 𝑎 35 2 1 0 -1 0 0 1 35 :2=17.5
0 𝑎 20 1 0 3 0 1 0 0 20 :1=20
f -65M -5M-8 6 -2M-7 M 0 0 0
8 𝑎 10 1 -1/3 2/3 0 0 1/3 0 -
-M 𝑎 15 0 5/3 -4/3 -1 0 -2/3 1 15 :(5/3)=9
0 𝑎 10 0 1/3 7/3 0 1 -1/3 0 10 :(1/3)=30
f -15M+80 0 -5/3M+10/3 4/3M-5/3 M 0 5/3M+8/3 0
8 𝑎 13 1 0 2/5 -1/5 0 1/5 1/5
-6 𝑎 9 0 1 -4/5 -3/5 0 -2/5 3/5
0 𝑎 7 0 0 13/5 1/5 1 -1/5 -1/5
f 50 0 0 1 2 0 M+4 M-2

Explicații : La iterația 1
Soluția asociată bazei de start [𝑎 , 𝑎 , 𝑎 ] are componentele:
𝑥 = 0, 𝑥 = 0, 𝑥 = 0, 𝑥 = 0, 𝑥 = 20, 𝑥 = 30, 𝑥 = 35
Pasul 1 Această soluție nu este optimă deoarece costurile reduse 𝑐̅ = 𝑧 − 𝑐 =
−5𝑀 − 8 și 𝑐̅ = 𝑧 − 𝑐 = −2𝑀 − 7 sunt negative.
3
Pasul 2 Intră în bază vectorul 𝑎 = 2 deoarece costul redus 𝑐̅ = −5𝑀 − 8 este
1
cel mai mic cost redus.
Pasul 3 Nu suntem în situația de optim infinit (de ce ?)
Pasul 4 În dreapta primului tabel simplex sunt calculate rapoartele al căror minim
determină coloana care părăsește baza iese vectorul 𝑎 .
Pasul 5 Pivotăm primul table simplex cu pivotul încadrat 𝑔 =3>0
La iterația 2
Soluția asociată bazei curente [𝑎 , 𝑎 , 𝑎 ] are componentele :
𝑥 = 10, 𝑥 = 0, 𝑥 = 0, 𝑥 = 0, 𝑥 = 10, 𝑥 = 0, 𝑥 = 15

Pasul 1 Această soluție nu este optimă deoarece 𝑐̅ = − 𝑀 + < 0 (M>>0 este


o constantă pozitivă foarte mare)
Pasul 2 𝑐̅ este singurul cost redus negativ și deci vectorul 𝑎 intră în bază.
Pasul 3 Criteriul de recunoaștere a optimului infinit nu este îndeplinit :
1
⎡− 3 ⎤
coloana 𝑔 = ⎢ 5 3 ⎥ din tabelul simplex (în teorie ≡ 𝐴̅ ) nu are toate
⎢ ⎥
1
⎣ 3 ⎦
componentele ≤0
Pasul 4 Minimul rapoartelor calculate în dreapta tabelului arată că 𝑎 iese din bază.

Pasul 5 Pivotăm al 2-lea tabel simplex cu pivotul încadrat 𝑔 = .

La iterația 3
Soluția asociată bazei [𝑎 , 𝑎 , 𝑎 ] cu componentele
𝑥 = 13, 𝑥 = 9, 𝑥 = 0, 𝑥 = 0, 𝑥 = 7, 𝑥 = 0, 𝑥 = 0
este soluția optimă a (FEP).Ignorând valorile nule ale variabilelor artificiale x6 și x7
obținem soluția optimă a formei standard (FSP). Lăsând la o parte valorile
variabilelor de ecart x4=0 și x5=7 se găsește soluția optimă a problemei originare.
(P) are soluția unică nedegenerată
𝑥 ∗ = 13 , 𝑥 ∗ = 9 , 𝑥 ∗ = 0 , iar valoarea maximă a funcției obiectiv este:
𝑓(𝑥 ∗ ) = 50
Problema 2. Să se determine soluția optimă a problemei de programare liniară :
(max)𝑓 = 50𝑥 + 40𝑥
⎧ 3𝑥 + 5𝑥 ≤ 150

(𝑃) 𝑥 ≤ 20
⎨ 8𝑥 + 5𝑥 ≤ 300

⎩ 𝑥 ≥ 0 ,𝑥 ≥ 0
Soluție : Forma standard este :
(max)𝑓 = 50𝑥 + 40𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥
⎧ 3𝑥 + 5𝑥 + 𝑥 = 150

(𝐹𝑆𝑃) 𝑥 +𝑥 = 20
⎨ 8𝑥 + 5𝑥 + 𝑥 = 300

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5
Matricea tehnologică conține o matrice unitate de ordinul 3 și deci se poate aplica
algoritmul simplex cu baza de start baza canonică [𝑎 , 𝑎 , 𝑎 ]
50 40 0 0 0
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎 θ
0 𝑎 150 3 5 1 0 0 150 :3=50
0 𝑎 20 0 1 0 1 0 -
0 𝑎 300 8 5 0 0 1 300 :8=17.5
f 0 -50 -40 0 0 0
0 𝑎 75/2 0 25/8 1 0 -3/8 (75/2) :(25/8)=12
0 𝑎 20 0 1 0 1 0 20 :1=20
50 𝑎 75/2 1 5/8 0 0 1/8 (75/2) :,(5/8)=60
f 1875 0 -35/4 0 0 25/4
40 𝑎 12 0 1 8/25 0 -3/25
0 𝑎 8 0 0 -8/25 1 3/25
50 x1 30 1 0 -1/5 0 1/5
f 1980 0 0 14/5 0 26/5

Problema (P) are soluția optima unică, nedegenerată : 𝑥 ∗ = 30 , 𝑥 ∗ = 12


Valorile optime ale variabilelor de ecart: 𝑥 ∗ = 0 , 𝑥 ∗ = 8 , 𝑥 ∗ = 0 arată că soluția
optima verifică cu egalitate prima și a treia restricție și cu inegalitate strictă a doua
restricție din (P).
Valoarea maximă a funcției obiectiv este f *= 1980

Problema 3. Se consideră problema de programare liniară:

(min)𝑓 = 𝑥 − 3𝑥 + 2𝑥
⎧ 𝑥 − 2𝑥 + 𝑥 ≥ 3

(𝑃) 2𝑥 + 𝑥 − 𝑥 = 7
⎨ 𝑥 + 𝑥 + 2𝑥 ≤ 8

⎩ 𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0
a) Să se determine soluția optimă a (P).
b) Să se scrie (P) în formă explicită în raport cu baza optimă.
Soluție : a) Aducem (P) la forma standard :
(min)𝑓 = 𝑥 − 3𝑥 + 2𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥
⎧ 𝑥 − 2𝑥 + 𝑥 − 𝑥 =3

(𝐹𝑆𝑃) 2𝑥 + 𝑥 − 𝑥 =7
⎨ 𝑥 + 𝑥 + 2𝑥 +𝑥 =8

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5

Se observă că matricea tehnologică a (FSP) nu conține toți vectorii unitari. Aplicăm


metoda bazei artificiale, introducând variabilele artificiale 𝒙𝟔 ≥ 𝟎 ș𝒊 𝒙𝟕 ≥ 𝟎 în
prima și respectiv în a doua restricție. Funcția obiectiv se penalizează, coeficientul
comun al variabilelor artificiale variabile fiind +M, M>>0 deoarece funcția obiectiv
se minimizează.

(min)𝑓 = 𝑥 − 3𝑥 + 2𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 𝑴𝒙𝟔 + 𝑴𝒙𝟕


⎧ 𝑥 − 2𝑥 + 𝑥 − 𝑥 + 𝒙𝟔 =3

(𝐹𝐸𝑃) 2𝑥 + 𝑥 − 𝑥 + 𝒙𝟕 =7
⎨ 𝑥 + 𝑥 + 2𝑥 +𝑥 =8

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5

Aplicăm algoritmul simplex problemei extinse (FEP) cu baza admisibilă de start


baza canonică 𝐵 = [𝑎 , 𝑎 , 𝑎 ].

1 -3 2 0 0 M M
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎
M 𝑎 3 1 -2 1 -1 0 1 0
M 𝑎 7 2 1 -1 0 0 0 1
0 𝑎 8 1 1 2 0 1 0 0
f 10M 3M-1 -M+3 -2 -M 0 0 0
1 𝑎 3 1 -2 1 -1 0 1 0
M 𝑎 1 0 5 -3 2 0 -2 1
0 𝑎 5 0 3 1 1 1 -1 0
f M+3 0 5M+1 -3M-1 2M-1 0 -3M+1 0
1 𝑎 17/5 1 0 -1/5 -1/5 0 1/5 2/5
-3 𝑎 1/5 0 1 -3/5 2/5 0 -2/5 1/5
0 𝑎 22/5 0 0 14/5 -1/5 1 1/5 -3/5
f 14/5 0 0 -2/5 -7/5 0 7/5-M -1/6-
M

(P) are soluția optima unică și nedegerată: 𝑥 ∗ = , 𝑥∗ = , 𝑥 ∗ = 0;

Valorile variabilelor de ecart: 𝑥 ∗ = 0 , 𝑥 ∗ = (𝑥 ∗ = 0 arată că soluția optimă


satisface cu egalitate prima restricție; 𝑥 ∗ ≠ 0 arată că soluția optimă satisface cu
inegalitate strictă a doua restricție)

Valoarea minimă a funcției obiectiv este 𝑓 ∗ = .

b) În soluția optimă a problemei (FEP), variabilele artificiale 𝑥 și 𝑥 iau


valoarea zero. Baza 𝐵 = [𝑎 , 𝑎 , 𝑎 ], optimă pentru (FEP), este o bază
optimă și pentru (FSP) iar soluția (FSP) asociată acestei baze se obține din
soluția (FEP) asociată aceleiași baze, ignorând valorile nule ale
variabilelor artificiale. Tabelul simplex optim al (FSP) se obține din
tabelul simplex optim al (FEP) ignorând coloanele vectorilor artificiali:

1 -3 2 0 0
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎
1 𝑎 17/5 1 0 -1/5 -1/5 0
-3 𝑎 1/5 0 1 -3/5 2/5 0
0 𝑎 22/5 0 0 14/5 -1/5 1
f 14/5 0 0 -2/5 -7/5 0

Forma explicită a problemei (FSP) în raport cu baza optimă 𝐵 = [𝑎 , 𝑎 , 𝑎 ] este :


1 1 17
⎧ 𝑥 − 𝑥 − 𝑥 =
⎪ 5 5 5
⎪ 3 2 1
⎪ 𝑥 − 𝑥 + 𝑥 =
5 5 5
⎨ 14 1 22
𝑥 − 𝑥 +𝑥 =
⎪ 5 5 5

⎪ 14 2 7
⎩ 𝑓(𝑥) = + 𝑥 + 𝑥
5 5 5

Soluția optimă a problemei (FSP), asociată bazei optime B, este vectorul cu


componentele

𝑥∗ = , , 0,0, și oferă funcției obiectiv valoarea 𝑓 ∗ = 𝑓(𝑥 ∗ ) = .

Problema 4. Se consideră problema de programare liniară :

(min)𝑓 = 𝑥 + 𝑥 + 𝑥
𝑥 + 2𝑥 + 3𝑥 = 6
(𝑃)
4𝑥 + 3𝑥 + 2𝑥 = 7
𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0
a) Să se determine o soluție optimă a (P).
b) Câte soluții optime are (P).
c) Câte soluții optime de bază are (P) ?
Soluție : Problema este în formă standard. Aplicăm metoda bazei artificiale pentru
identificare bazei canonice. Forma extinsă se obține prin introducerea variabilelor
artificiale 𝑥 ≥ 0, 𝑥 ≥ 0 în prima și respectiv, în a doua restricție și penalizarea
funcției obiectiv.

(min)𝑓 = 𝑥 + 𝑥 + 𝑥 + 𝑀 ∙ 𝑥 + 𝑀 ∙ 𝑥

𝑥 + 2𝑥 + 3𝑥 + 𝑥 =6
(𝐹𝐸𝑃)
⎨ 4𝑥 + 3𝑥 + 2𝑥 +𝑥 =7
⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5
Baza de start este baza canonică 𝐸 = [𝑎 , 𝑎 ]

1 1 1 M M
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎
M 𝑎 6 1 2 3 1 0
M 𝑎 7 4 3 2 0 1
f 13M 5M-1 5M-1 5M-1 0 0
M 𝑎 17/4 0 5/4 5/2 1 -1/4
1 𝑎 7/4 1 3/4 1/2 0 1/4
f (17/4)M+(7/4) 0 (5/4)M-(1/4) (5/2)M-(1/2) 0 -5M/4+1/4
1 𝑎 17/10 1 1/2 1 2/5 -1/10
1 𝑎 9/10 0 1/2 0 -1/5 3/10
f 13/5 0 0 0 1/5- 2/10-M
M
1 𝑎 4/5 -1 0 1 3/5 -2/5
1 𝑎 9/5 2 1 0 -2/5 3/5
f 13/5 0 0 0 1/5- 1/5-M
M

Soluția de bază asociată bazei B=(𝑎 , 𝑎 ) este optimă deoarece toate costurile
reduse 𝑐̅ , 𝑐̅ , 𝑐̅ sunt ≤0. Faptul că 𝑐̅ = 0 semnalează prezența unei alte soluții
optime de bază, care se determină prin introducerea în bază a vectorului
𝑎 .

În concluzie, problema (P) are două soluții optime de bază :

9 17 9 4
𝑥∗ = ,0, și 𝑥 ∗ = 0 , ,
10 10 5 5

Orice combinație convexe a soluțiilor de bază 𝑥 ∗ și 𝑥 ∗ este soluție optimă, adică


(P) are o infinitate de soluții optime :
𝑥 ∗ = (1 − 𝛼)𝑥 ∗ + 𝛼𝑥 ∗ cu 0 ≤ 𝛼 ≤ 1

sau, pe componente :

9 9
⎧𝑥 ∗ = − 𝛼
⎪ 10 10
9
𝑥∗ ≡ 𝑥∗ = 𝛼 0≤𝛼≤1
⎨ 5
⎪ ∗ 17 9
⎩ 𝑥 = − 𝛼
10 10

De exemplu, pentru ∝= rezultă soluția optimă :𝑥 = , 𝑥 = , 𝑥 = care


nu este soluție de bază !

Problema 5. Să se utilizeze algoritmul simplex pentru a arăta că următoarea


problemă de programare liniară
(max)𝑓 = 3𝑥 + 4𝑥

⎪ −3𝑥 + 4𝑥 ≤ 12
(𝑃) −2𝑥 + 𝑥 ≤ 2
⎨ 𝑥 − 2𝑥 ≤ 2

⎩ 𝑥 ≥ 0, 𝑥 ≥ 0
are optim infinit.

Soluție : Forma standard este:


(max)𝑓 = 3𝑥 + 4𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥

⎪ −3𝑥 +4𝑥 +𝑥 = 12
(𝐹𝑆𝑃) −2𝑥 +𝑥 +𝑥 =2
⎨ 𝑥 −2𝑥 +𝑥 = 2

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,5

Baza de start este baza canonică 𝐸 = (𝑎 , 𝑎 , 𝑎 )

3 4 0 0 0
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎
0 𝑎 12 -3 4 1 0 0
0 𝑎 2 -2 1 0 1 0
0 𝑎 2 1 -2 0 0 1
f 0 -3 -4 0 0 0
0 𝑎 4 5 0 1 -4 0
4 𝑎 2 -2 1 0 1 0
0 𝑎 6 -3 0 0 2 1
f 8 -11 * * 4 *
3 𝑎 4/5 1 0 1/5 -4/5 0
4 𝑎 18/5 0 1 2/5 -3/5 0
0 𝑎 42/5 0 0 3/5 -2/5 1
f 84/5 0 0 11/5 -24/5 0

În tabelul simplex asociat bazei curente, testul de optimalitate nu este verificat


deoarece există un cost redus negativ : 𝑐̅ = 𝑧 − 𝑐 = − < 0 și

⎡− ⎤
⎢ ⎥
coloana 𝑔 = ⎢− ⎥ are toate cele trei componente negative.
⎢ ⎥
⎣− ⎦
Conform teoriei, algoritmul simplex se oprește cu concluzia că problema (P) are
optim infinit, adică funcția obiectiv𝑓este nemărginită superior pe mulțimea de
soluții admisibile 𝐴 ≠ ∅
Observație. Cum (P) are n=2 variabile, la această concluzie se poate ajunge și prin
utilizarea metodei grafice.
Problema 6. Să se aarate că următoarea problemă de programare liniară
(min)𝑓 = 6𝑥 + 𝑥 − 2𝑥

⎪ 5𝑥 − 𝑥 + 𝑥 ≥ 6
(𝑃) 2𝑥 + 𝑥 + 3𝑥 ≤ 7
⎨ −3𝑥 + 𝑥 + 2𝑥 ≥ 2

⎩ 𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0
este incompatibilă.
Soluție :
Forma standard :
(min)𝑓 = 6𝑥 + 𝑥 − 2𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥

⎪ 5𝑥 −𝑥 +𝑥 −𝑥 =6
(𝐹𝑆𝑃) 2𝑥 +𝑥 +3𝑥 +𝑥 =7
⎨ −3𝑥 +𝑥 +2𝑥 −𝑥 = 2

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,6
Forma extinsă prin aplicarea metodei bazei artificiale :
(min)𝑓 = 6𝑥 + 𝑥 − 2𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 0 ∙ 𝑥 + 𝑀 ∙ 𝑥 + 𝑀 ∙ 𝑥

⎪ 5𝑥 −𝑥 +𝑥 −𝑥 +𝑥 =6
(𝐹𝐸𝑃) 2𝑥 +𝑥 +3𝑥 +𝑥 =7
⎨ −3𝑥 +𝑥 +2𝑥 −𝑥 +𝑥 = 2

⎩ 𝑥 ≥ 0 𝑗 = 1, … ,8

Baza admisibilă de start este baza canonică 𝐸 = (𝑎 , 𝑎 , 𝑎 )

6 1 -2 0 0 0 M M
𝑐 B 𝑥 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎 𝑎
M 𝑎 6 5 -1 1 -1 0 0 1 0
0 𝑎 7 2 1 3 0 1 0 0 0
M 𝑎 2 -3 1 2 0 0 -1 0 1
f 8M 2M-6 -1 3M+2 - 0 -M 0 0
M
M 𝑎 5 13/2 -3/2 0 -1 0 1/2 1 -(1/2)
0 𝑎 4 13/2 -1/2 0 0 1 3/2 0 -(3/2)
-2 𝑎 1 -3/2 ½ 1 0 0 -1/2 0 1/2
f 5M-2 (13/2)M- (- 0 - 0 (1/2)M+1 0 (-3/2)M-1
3 3/2)M-2 M
M 𝒂𝟕 1 0 -1 0 -1 -1 -1 1 1
6 𝑎 8/13 1 -1/13 0 0 2/13 3/13 0 -3/13
-2 𝑎 25/13 0 5/13 1 0 3/13 -2/13 0 2/13
f M- 0 -M- 0 - - - 0 -22/13
(2/13) (29/13) M M+6/13 M+(22/13)

Se constată că soluția de bază asociată bazei curente 𝑩 = (𝒂𝟕 , 𝑎 , 𝑎 )este optimă


pentru problema (FEP) deoarece toate diferențețe test sunt nepozitive
𝑧 − 𝑐 ≤ 0, ∀𝑗 ∈ 1, … ,8, deci satisfac criteriul de optim pentru problemele de
minim. În această soluție, variabila artificială x7 are valoare nenulă
𝒙𝟕 = 𝟏 ≠ 𝟎și ca urmare problema (P) este incompatibilă i.e., 𝐴 ≠ ∅.

Probleme propuse :
(max)𝑓 = 2𝑥 + 3𝑥

⎪2𝑥 + 𝑥 ≥ 40
1. Se consideră problema de programare liniară (𝑃) 𝑥 + 3𝑥 ≥ 30
⎨ 𝑥 + 𝑥 ≤ 30

⎩ 𝑥 ≥ 0 ,𝑥 ≥ 0
a) Să se determine o soluție optimă, utilizând metoda grafică.
b) Să se aplice algoritmul simplex pentru determinarea unei soluții optime.

(min)𝑓 = 5𝑥 − 𝑥 − 2𝑥

⎪ 𝑥 + 3𝑥 + 2𝑥 = 12
2. Să se determine soluția optimă a problemei(𝑃) 6𝑥 + 2𝑥 − 3𝑥 ≤ 6 .
⎨ 2𝑥 − 𝑥 + 4𝑥 ≥ 4

⎩ 𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0
Să se scrie forma explicită a (P) în raport cu baza optimă.

S-ar putea să vă placă și