Documente Academic
Documente Profesional
Documente Cultură
⎧ (max)𝑓 = ∑ 𝑐 𝑥
⎪∑ (max)𝑓 = 𝑐 𝑥
𝑎 𝑥 =𝑏 𝑖 = 1, … , 𝑚
(𝑃) ⟺ 𝐴𝑥 = 𝑏
⎨ 𝑥 ≥ 0 𝑗 = 1, … , 𝑛
⎪ 𝑥≥0
⎩
în care:
𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
𝐴= = [𝑎 , 𝑎 , … , 𝑎 ]
⋮ ⋮ ⋯ ⋮
𝑎 𝑎 ⋯ 𝑎
𝑥
𝑥
𝑥= ⋮ ∈ ℝ este vectorul coloană al variabilelor de decizie,
𝑥
𝑏
𝑏
𝑏= ∈ ℝ este vectorul coloană al termenilor liberi,
⋮
𝑏
𝑟𝑎𝑛𝑔(𝐴) = 𝑚 < 𝑛
Vom arăta cum se construiește această formă explicită în cazul general (cu această
ocazie vom face și câteva calcule matriciale…)
⋮
𝑥̅ = 𝐵 𝑏 = 𝑥̅
⋮ ∈
În concluzie, sistemul:
𝐴𝑥 = 𝑏 ⟺ 𝑎 𝑥 =𝑏 𝑖 = 1, … , 𝑚
𝑥 + 𝐺𝑥 = 𝑥̅ ⟺ 𝑥 + 𝑔 𝑥 = 𝑥̅ 𝑖∈𝐽
∈
𝑓 = 𝑐 𝑥 = [𝑐 𝑐 ] 𝑥 =𝑐 𝑥 +𝑐 𝑥
𝑥
Î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 𝑗 ∈ 𝐽 .
⎧
⎪𝑥 +𝐺𝑥 =𝑥̅
(𝑃 ) ⟺
⎨𝑓 = 𝑓(𝑥̅ ) − 𝑐̅ 𝑥
⎪
⎩
⎧ 𝑥 + 𝑔 𝑥 = 𝑥̅ , 𝑖 ∈ 𝐽𝑩
⎪ ∈
⟺ (𝑃 )
⎨𝑓 = 𝑓(𝑥̅ ) − (𝑧 − 𝑐 )𝑥
⎪
⎩ ∈
Observații:
(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
-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).
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
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
(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
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
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
(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
𝑎 .
9 17 9 4
𝑥∗ = ,0, și 𝑥 ∗ = 0 , ,
10 10 5 5
sau, pe componente :
9 9
⎧𝑥 ∗ = − 𝛼
⎪ 10 10
9
𝑥∗ ≡ 𝑥∗ = 𝛼 0≤𝛼≤1
⎨ 5
⎪ ∗ 17 9
⎩ 𝑥 = − 𝛼
10 10
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
⎡− ⎤
⎢ ⎥
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
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)
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ă.