Sunteți pe pagina 1din 195

TEHNICI DE OPTIMIZARE

Istoric

Dificulti de abordare i/sau rezolvare

Planul de nvmnt

(= 10 sptmni)

ANTON BTTORESCU
Tehnici de optimizare - Cursul 1

TEHNICI DE OPTIMIZARE
CURS = 2

ORE / SPTMN

SEMINAR = 1

OR / SPTMN

FORMA DE EXAMINARE: examen ! (scris)


2 subiecte de teorie:
enunuri cu demonstraii;
enunuri descriptive.

1 exerciiu de seminar (cu subpuncte)

Tehnici de optimizare - Cursul 1

Coninutul cursului:
 Modele de optimizare liniar i programe software.
 Algoritmul simplex primal i algoritmul simplex dual.
 Interpretarea economic a valorilor i soluiilor.
 Metode de partiionare i relaxare.
 Metode pentru probleme de optimizare neliniar.

Tehnici de optimizare - Cursul 1

Bibliografie


A. tefnescu, C. Zidroiu, "Cercetri Operaionale", Ed. Did.


i Pedagogic, Bucureti, 1981.

H. Karloff, Linear Programming, Progress in Theoretical


Computer Science, Birkhuser, 1991, Berlin.

A. Bttorescu, "Metode de optimizare liniar", Ed.


Universitii din Bucureti, 2003.

V. Preda, M. Bad, "Culegere de probleme de cercetri


operaionale", Tipografia Universitii din Bucureti, 1978.

http://www.ilog.com/

www.maximalsoftware.com

Tehnici de optimizare - Cursul 1

Exemplu optimizare neliniar


f : R R,

f ( x ) = ( x + 2 )( x 1)( x 3) ( x 5 ) = x 4 7 x 3 + 5 x 2 + 31x 30

Tehnici de optimizare - Cursul 1

f : [ 0, 5.6] R,

f ( x ) = x 4 7 x3 + 5 x 2 + 31x 30

Tehnici de optimizare - Cursul 1

Exemplu optimizare liniar


S se determine:

optim {2 x + 3 y} ,

unde optim = min max

Cu ndeplinirea condiiilor:

x+ y 4
8 x + 2 y 3
5 x 3 y 15
x + 2 y 10
2 x + y 16

Tehnici de optimizare - Cursul 1

Rezolvare grafic

Tehnici de optimizare - Cursul 1

Notaii i cteva definiii


Vom nota cu A Rmn o matrice cu m linii i n coloane:

a11 a12 a1n

a
a

a
22
2n
A = 21
= ( aij )1i m

1 j n

a
a
a
mn
m1 m 2

unde, aij R, 1 i m, 1 j n,
nm

A R .
Transpusa matricei A o vom nota
cu
Mulimea matricelor de aceeai dimensiune formeaz un spaiu
vectorial peste corpul numerelor reale.
f

A, B Rmn , R,

A + B = ( aij + bij )1i m , B = ( bij )1i m


1 j n

Tehnici de optimizare - Cursul 1

1 j n

Produsul matricelor:

A Rmk , B Rk n este matricea:


k

A B = C Rmn , cij = ail blj , 1 i m, 1 j n.


l =1

Determinantul unei matrice ptratice

det A =

A Rnn este numrul

( ) a ( ) a ( ) a ( )

Sn

1 1

Dac det A 0, matricea A se numete nesingular, iar n acest


caz, exist o unic matrice A-1 numit matrice invers:

0
1
1

A A = A A = In =

0
1

Tehnici de optimizare - Cursul 1

0
Rnn

10

n1

n
Un vector coloana v R este considerat ca fiind o matrice v R ,

iar transpusa acesteia este un vector linie.

v1

v2
f

v=
= ( v1 , v2 , , vn ) , v f = ( v1 , v2 , , vn )


vn
n

Produsul scalar a doi vectori

x, y Rn , x f y = xi yi = y f x.
i =1

Definim relaiile:

x = y xi = yi pentru orice i = 1, n,
x y xi yi pentru orice i = 1, n y x Rn+
n particular, x 0 R

xi 0, i = 1, n.
Tehnici de optimizare - Cursul 1

11

Sisteme de ecuaii liniare


Fie: A Rmn ,

b Rm i considerm sistemul de ecuaii liniare:

a11 x1 + a12 x2 + + a1n xn = b1


a x + a x + + a x = b
21 1 22 2
2n n
2
A x = b


am1 x1 + am 2 x2 + + amn xn = bm
n
unde x R reprezint vectorul necunoscutelor.

Notm:

Ai = ( ai1 , ai 2 , , ain ) linia ''i '' a matricei A;


A = ( a1 j , a2 j , , amj ) coloana ''j '' a matricei A.
j

A x = b

Ai x = bi , i = 1, m

j
A
x j = b.
j =1

Tehnici de optimizare - Cursul 1

12

Teorema Kronecker-Capelli : rang ( A ) = rang ( Ab ) = r min {m, n}

Ecuaii principale, respectiv variabile principale.

Ecuaii secundare, respectiv variabile secundare.

Prin eliminarea ecuaiilor secundare, considerm: rang ( A ) = m n.

Pentru m = n, avem soluia unic:

Pentru m < n, avem o infinitate de soluii.

x = A1 b.

Exist m coloane liniar independente ale matricei A, care formeaz

sm
s1 s2
B
=
A
A
...
A
.
o matrice de baz:

Restul coloanelor formeaz matricea R.


Tehnici de optimizare - Cursul 1

13

Partiionarea matricei:

A = ( B R ) .

Notm mulimea de indici corespunztoare coloanelor lui B cu

B = {s1 , s2 ,..., sm } ,

iar mulimea de indici corespunztoare coloanelor lui R cu

R = {1, 2,..., n} \ B .
xB
Partiionarea variabilei x R , x = ,
xR
n

xB = ( xi )iB = xs1 , xs2 ,..., xsm

xR = ( x j )

jR

n care,

Rm

variabile de baz (principale)

Rn m

variabile secundare

Tehnici de optimizare - Cursul 1

14

A x = b

B xB + R xR = b

xB = B 1 b B 1 R xR

Vectorul v R se numete soluie a sistemului dac A v = b.


n

O soluie a sistemului este numit soluie de baz, dac


componentele ei diferite de zero corespund unor coloane liniar
independente ale matricei A.
Pentru orice baz B, se poate obine o soluie de baz:
1
vB B b B
v= =

vR 0R

Deoarece rang(A) = m, cel mult m componente ale unei soluii de


baz pot fi nenule. Dac soluia de baz are exact m componente
nenule, ea se numete nedegenerat; n caz contrar ea este
degenerat.
Tehnici de optimizare - Cursul 1

15

Probleme de optimizare liniar


O problem de optimizare const din minimizarea sau maximizarea
unei anumite funcii - numit funcie obiectiv - n prezena unor
restricii care trebuie satisfcute.
Este suficient s studiem doar probleme de minimizare, deoarece

inf { f ( x ) | x P} = sup { f ( x ) | x P}

Fie Rn i R.
Tipuri de restricii n raport cu felul problemei de optimizare:
minimizare

maximizare

concordant

neconcordant

concordant

neconcordant

f x ,

f x ,

f x ,

f x ,

Tehnici de optimizare - Cursul 2

Forma general:
Conine toate tipurile de restricii i variabile care pot aprea.

inf {c1f x1 + c2f x2 + c3f x3 }


n raport cu
A11 x1 + A12 x2 + A13 x3 b1
A x + A x + A x = b
21 1
22
2
23
3
2

A31 x1 + A32 x2 + A33 x3 b3


x1 0
x3 0
Datele problemei:

m n j

Aij R i

concordante
egalitate
neconcordante

, bi Rmi , c j R j , 1 i 3, 1 j 3.
n

Necunoscutele problemei sunt grupate n trei variabile vectoriale:


x1 are componente nenegative;
x j R j , 1 j 3,
n

x2

oarecare;

x3

are componente nepozitive.

Tehnici de optimizare - Cursul 2

Forma standard:
Conine restricii egalitate i variabile nenegative.

inf {c f x A x = b, x 0}
Datele problemei:

A Rmn , b Rm , c Rn .

Forma canonic:
Conine restricii concordante i variabile nenegative.

inf {c f x A x b, x 0}
Datele problemei:

A Rmn , b Rm , c Rn .

Tehnici de optimizare - Cursul 2

Forma mixt:
Conine restricii concordante i egalitate, i variabile nenegative.

f
A1 x b1

inf c x
, x 0
A2 x = b2

A1 Rm1n , b1 Rm1
Datele problemei:
m2 n
m2
A
b

R
,
R
2
2

, c Rn .

Formele problemelor de programare liniar sunt echivalente!


Alegerea formei  n funcie de necesiti:
 forma standard pentru algoritmi;
 forma canonica pentru dualitate.

Tehnici de optimizare - Cursul 2

Transformri echivalente:



Sensul unei inegaliti se schimb prin nmulire cu 1.


Transformarea unei inegaliti ntr-o ecuaie:

f x
f
x

f x+ y =
x y =
f

y0

y se numete variabil ecart (slack variable).




Transformarea unei ecuaii n inegaliti:

f x =

f x
f
x

O variabil nepozitiv

x 0 x = x 0.

O variabil oarecare

xR

x = x+ x ,

unde

x + 0, x 0.

Tehnici de optimizare - Cursul 2

Teorema fundamental a programri liniare


Considerm problema de programare liniar n forma standard:

inf {c f x | A x = b, x 0}

(P)

Fr a restrnge generalitatea, presupunem: rang ( A ) = m < n.


n
Vectorul v R se va numi soluie admisibil a problemei (P), dac

A v = b , v 0.
O soluie admisibil v R este o soluie optim a problemei (P),
c f v c f y.
dac oricare ar fi soluia admisibil y , avem:
n

Teorem:
1. Dac problema (P) are o soluie admisibil, atunci ea are i o
soluie admisibil de baz.
2. Dac problema (P) are o soluie optim, atunci ea are i o
soluie optim de baz.
Tehnici de optimizare - Cursul 2

Demonstraie.
n
Fie v R o soluie admisibil a problemei (P).

v = ( v1 , v2 ,..., vk , 0,..., 0 ) , vi > 0, i = 1, k .


f

Considerm


k = 0 v = 0 este evident o soluie de baz.

k 1. Dac

{ A , A ,..., A } sunt liniar independente, atunci


1

v este o soluie admisibil de baz.

Dac

{ A , A ,..., A } sunt liniar dependente,


1

astfel nct:

i =1

yi R, i = 1, k , yi > 0,

i =1

A yi = 0.
i

Considerm: y R , y = ( y1 , y2 ,..., yk , 0,..., 0 ) . Rezult:


f

y 0,i

Definim vectorul:

A y = .0

x ( ) = v + y, R.

Avem: A x ( ) = A ( v + y ) = A v + A y = A v = b,
deci, x ( ) este o soluie a sistemului A x = b pentru orice
Tehnici de optimizare - Cursul 2

R.
7

Deoarece xi ( ) = 0, i = k + 1, n, avem:
x ( ) 0 xi ( ) = vi + yi 0, pentru i = 1, k .
vi
vi

dac yi > 0,

dac yi < 0.
yi
yi

vi

Definim:
>
max
y
0
1i k
dac exist yi > 0,
i
=
yi

vi
min

= 1i k yi

deci, [ ', '']

dac nu exist yi > 0,

yi < 0

dac exist yi < 0,


dac nu exist yi < 0,

x ( ) 0,

adic este soluie admisibil.

Observaie: cel puin una dintre valorile ', '' este finit!
Pentru 0 = finit { ', ''} i0 , 1 i0 k , astfel nct vi0 + 0 yi0 = 0.
Deci, vectorul x ( 0 ) este o soluie admisibil a problemei (P) i are
cel mult ( k 1) componente nenule.
Tehnici de optimizare - Cursul 2

n
Fie v R o soluie optim a problemei (P) cu vi > 0, i = 1, k .

Raionm analog ca n cazul precedent:

1
2
k
Dac A , A ,..., A

} sunt liniar dependente, exist un interval astfel

nct [ ', '']

Din relaia:
rezult:

x ( ) = v + y este soluie admisibil.

cf v cf x ( ) = cf v + cf y
[ , ] avem c f y 0.

Observaie: Deoarece < 0, > 0

c f y = 0.

n caz contrar, lund = sign {c f y} c f y < 0,


contradicie!
Deci, c f x ( ) = c f v , adic, [ ', ''] , x ( ) este optim.

Pentru 0 = finit { ', ''} i0 , 1 i0 k , astfel nct vi0 + 0 yi0 = 0.


Deci, vectorul x ( 0 ) este o soluie optim a problemei (P) i are cel
mult ( k 1) componente nenule.
Tehnici de optimizare - Cursul 2

n general, mulimea soluiilor admisibile a problemei (P) este


infinit, spre deosebire de cea a soluiilor admisibile de baz,
care are cel mult

C mn

elemente. Importana teoremei

fundamentale a programrii liniare const n aceea c, pentru


determinarea unei soluii optime, dac ea exist, cutarea este
redus de la o mulime infinit, la una finit, fiind suficient
investigarea doar a soluiilor de baz.

Tehnici de optimizare - Cursul 2

10

Teoremele algoritmului simplex


Considerm problema de programare liniar n forma standard:

inf {c f x | A x = b, x 0}

m n
m
n
unde A R , b R , c R ,

rang ( A ) = m < n.

(P)

Considerm matricea de baz B = As1 As2 ... Asm .


Partiionm matricea A  BR i obinem:

A x = b

xB = B 1 b B 1 R xR = x Y j x j
jR

1
m
j
1
j
unde am notat: x = B b R i Y = B A , 1 j n.

Poziia indicelui

si B = {s1 , s2 ,..., sm } o notm loc ( si ) = i.

Pe componente, sistemul se scrie:

xsi = xi yij x j , si B , i = loc ( si ) .


jR

Tehnici de optimizare - Cursul 2

11

xB x B 1b
n raport cu baza B, soluia de baz este: x = = =

x
0
0
R

1
Matricea de baz B se numete primal admisibil, dac B b 0.
Funcia obiectiv se poate exprima astfel:

f
j
z = c x = c xB + c xR = c x Y x j + cR xR =

R
j

f
B

f
R

f
B

= cBf x ( cBf Y j c j ) x j = z ( z j c j ) x j
jR

unde am notat:

jR

z = cBf x , z j = cBf Y j , 1 j n.

Teorem (optim): Fie B o baz primal admisibil. Dac z j c j 0,


pentru orice j R , atunci baza B este optim.

Demonstraie. Pentru orice soluie admisibil v R avem:


z = cf v = z z j c j v j z .
n

jR

Tehnici de optimizare - Cursul 2

12

Teoremele algoritmului simplex


Considerm problema de programare liniar n forma standard:

inf {c f x | A x = b, x 0}

m n
m
n
unde A R , b R , c R ,

rang ( A ) = m < n.

(P)

Considerm matricea de baz B = As1 As2 ... Asm .


Partiionm matricea A  BR i obinem:

A x = b

xB = B 1 b B 1 R xR = x Y j x j
jR

1
m
j
1
j
unde am notat: x = B b R i Y = B A , 1 j n.

Poziia indicelui

si B = {s1 , s2 ,..., sm } o notm locB ( si ) = i.

Pe componente, sistemul se scrie:

xsi = xi yij x j , si B , i = locB ( si ) .


jR

Tehnici de optimizare - Cursul 3

xB x B 1b
x= = =
Soluia de baz corespunztoare lui B :

x
0
0
R

1
Matricea de baz B se numete primal admisibil, dac B b 0.
Funcia obiectiv se poate exprima astfel:

f
j
z = c x = c xB + c xR = c x Y x j + cR xR =

R
j

f
B

f
R

f
B

= cBf x ( cBf Y j c j ) x j = z ( z j c j ) x j
jR

unde am notat:

jR

z = cBf x , z j = cBf Y j , 1 j n.

Teorem (optim): Fie B o baz primal admisibil. Dac z j c j 0,


pentru orice j R , atunci baza B este optim.
Demonstraie. Pentru orice soluie admisibil v R avem:
z = cf v = z z j c j v j z .
n

jR

Tehnici de optimizare - Cursul 3

Teorem (optim infinit): Fie B o baz primal admisibil. Dac exist


k
1
k
un indice k R , astfel nct ( zk ck ) > 0, i Y = B A 0,
atunci problema (P) are optimul (-)infinit.
Demonstraie. Fie R, 0.

Definim vectorul:

xB ( ) = x Y k
locR ( k )
nm

x ( ) =
e
,
unde
R

x ( ) = elocR ( k )
R

este vector unitar.

Se verific fr dificultate c:

Rezult,

x ( ) 0,

A x ( ) = B xB ( ) + R xR ( ) = b Ak + Ak = b.
0, x ( ) este soluie admisibil pentru (P).

Funcia obiectiv este:

c f x ( ) = cBf xB ( ) + cRf xR ( ) =

= cBf ( x Y k ) + ck = z ( zk ck )

Deoarece

( zk ck ) > 0,

rezult:

lim c f x ( ) = .

Tehnici de optimizare - Cursul 3

Observaie.
n condiiile Teoremei de optim infinit, baza B definete o soluie nenul
A a xsistemului
= 0, x omogen
0 :

v
=

Y
B
n
vR, v =

v = elocR ( k )
R

Acest vector reprezint o direcie (raz) de-a lungul creia soluiile admisibile

xB
x ( ) = + v
0R

sunt nemrginite.

Vectorul v se mai numete direcia spre ()infinit, i mpreun cu soluia de


baz, pentru [ 0, ) , descrie o muchie nemrginit a domeniului de
admisibilitate.

Tehnici de optimizare - Cursul 3

Tehnici de optimizare - Cursul 3

B = As1 As2 Asm Rmm nesingular i


k
m
vectorul A R , k B = {s1 , s2 ,..., sm } . Considerm matricea:

Lema (substituiei): Fie

= As1 Asr 1 Ak Asr +1 Asm .


B

Notm vectorul

Y k = B 1 Ak = ( y1k , y2 k ,..., ymk ) .


f

Au loc urmtoarele afirmaii:


.

0
det B

yrk 0, unde r = locB ( sr ) .

1
1

 Pentru yrk 0, avem: B = Er ( ) B

unde

y
y
y
1 y
= 1k ,..., r 1, k , , r +1, k ,..., mk
yrk
yrk
yrk
yrk
yrk

Er ( ) = ( e1 e r 1 e r +1 e m ) =

ei Rm este vector unitar cu 1 in pozitia i.

Tehnici de optimizare - Cursul 3

yik
1
yrk

0

1
yrk

Demonstraie. Din notaia Y k = B 1 Ak rezult: A = B Y =


0.
 Fie det B
k

Prin absurd, yrk = 0 coloanele lui

A j y jk
s

j =1

liniar dependente. Contradicie!

Fie acum yrk 0.

= 0 are coloanele liniar dependente. Deci, exist


Prin absurd, det B
m

j R, j > 0, astfel nct


j =1

A j j + Ak r = 0.
s

j =1, j r

Avem: r 0. n caz contrar obinem det B = 0. Contradicie!


nlocuind pe

Ak i regrupnd termenii, obinem:


m

j =1, j r

sj

+ y jk r ) + Asr yrk r = 0,

adic o combinaie liniar de coloane ale matricei B care este egal cu zero
i deci toi coeficienii trebuie s fie nuli. Dar, yrk r 0. Contradicie!

Tehnici de optimizare - Cursul 3

 Coloanele lui

coincid pentru j r. Avem deci,


B i B
s
e j , j r.
Aj =B

Deoarece yrk 0, din relaia

A = A j y jk
k

rezult:

j =1

y jk
A = A
j =1, j r
yrk
m

sr

sj

k 1

=B
+ A
yrk

Prin urmare, putem scrie:

E ( )
B=B
r

1 = E ( ) B 1.
B
r

Tehnici de optimizare - Cursul 3

Teorem (schimbarea bazei): Fie B = A 1 A 2 A m o baz


primal admisibil. Presupunem c exist k R , astfel nct ( zk ck ) > 0
k
1
k
i vectorul Y = B A are cel puin un element pozitiv.
Dac alegem indicele sr B , locB ( sr ) = r , astfel nct

xi
xr
= min
yrk 1i m yik
atunci, matricea

yik > 0 ,

= As1 Asr 1 Ak Asr +1 Asm


B

admisibil, pentru care

este o baz primal

z = c B b cBf B 1 b = z .
f
)
B

Demonstraie. Evident, yrk > 0. Din Lema substituiei rezult c


matrice nesingular.
Trebuie artat c

este o

B 1 b 0.

Tehnici de optimizare - Cursul 3

B 1 b = E ( ) B 1 b = E ( ) x =
r
r

Evident,

Dac

yik
yrk

1
yrk

xr
0.
yrk
yik > 0,

Dac

xi ik xr
xi
yrk

xr
xr

yrk

yik < 0,

xi yik

xr
0.
yrk

xi
xr
xr
xi yik
= yik

0.

yrk >0 yik yrk


14243
0

Tehnici de optimizare - Cursul 3

10

innd seama c pentru

k B

avem loc ( k ) = r , obinem:


B

z = cBf B 1 b = cBf Er ( ) B 1 b = cBf Er ( ) x =

= , csi , , ck ,

yik
1
yrk

0

Tehnici de optimizare - Cursul 3

1
yrk

x =

11

csi yik ck

= , csi , ,
+
, x =
yrk
yrk
ir

xr
x
= csi xi csi yik ck
+ csr xr csr yrk r =
yrk
ir
ir
yrk

m
m
x
x
= csi xi csi yik ck r = z ( zk ck ) r z .
1
424
3 yrk
y

i =1
i =1
rk
123 1
424
3

>0

0
z
zk

Tehnici de optimizare - Cursul 3

12

Paii algoritmului simplex




Pasul 0. Se determin (dac exist?!) o baz primal admisibil B i se


calculeaz B-1.
Pasul 1. Se calculeaz

x = B 1 b, z = cBf x , Y = B 1 A, z f c f = cBf Y c f .
Pasul 2. (test de optimalitate) Dac z c 0, atunci s-a obinut valoarea
optim z , i soluia optim de baz xB = x , xR = 0. STOP.
Pasul 3. (test de optim infinit) Dac k R pentru care zk ck > 0 i Y k
atunci problema are optim (-)infinit. STOP.

0,

Pasul 4. (schimbarea bazei) Se alege k R cu zk ck > 0 i de determin


sr B , loc ( sr ) = r , astfel nct
xr
x

= min i yik > 0 .


yrk 1i m yik

Se formeaz matricea

= B \ Asr UAk , se calculeaz inversa


B

1 = E ( ) B 1 i se revine la Pasul 1.
B
r
Tehnici de optimizare - Cursul 3

13

Formule pentru schimbarea bazei


Fiecare iteraie a algoritmului simplex este caracterizat de inversa bazei primal
admisibile B-1.
1
f
f
1

x = B b; u = cB B ;
z = cBf x = cBf B 1 b = u f b;
Y = B 1 A;
z f c f = cBf Y c f = u f A c f

Componentele vectorului
Componentele lui

se numesc multiplicatori simplex.

z c se numesc costuri reduse.

Recalcularea elementelor din algoritmul simplex n urma schimbrii unei


baze se face cu ajutorul Lemei substituiei. (Sunt cunoscui indicii sr i k ,
precum i vectorul

Yk .)

Valoarea nou  Formul de calcul cu valori vechi

Tehnici de optimizare - Cursul 3

14

Valorile pentru noua invers a matricei de baz:


Notm:

B 1 = ( ij )1i m

1 j m

Avem:

( )

B 1 =
ij

1 i m
1 j m

B 1 = E ( ) B 1 ,
r

de unde rezult:

rj yik

ij = ij
pentru i = 1, m, i r , j = 1, m;
yrk
rj

pentru j = 1, m.
rj =
yrk

Tehnici de optimizare - Cursul 3

15

Valorile soluiei de baz:


1

x = B b = Er ( ) B 1 b = Er ( ) x =

xi = xi
xr =

yik
yrk

1
yrk

xi ik xr
xi
yrk

=
xr

xr

y
rk

yik
xr pentru i r ;
yrk

xr
.
unde r = loc ( k ) pentru k B
yrk
Tehnici de optimizare - Cursul 3

16

Valorile pentru multiplicatorii simplex:

u = c B = , csi , , ck , Er ( ) B 1

Componenta j:

ij

cs yik ck

u j = , cs , ,
+
, =
yrk
yrk
ir


rj


f

rj
y
= csi ij csi yik ck
+ csr rj csr rj rk
yrk
ir
ir
yrk

u j = u j ( zk ck )

rj
yrk

, 1 j m.

Tehnici de optimizare - Cursul 3

17

1
j

Pentru matricea Y = B A, coloana Y , j = 1, n este:

y
yij ik yrj

yrk
1

Y = B A j = Er ( ) B 1 A j = Er ( ) Y j =

yrj

yrk

yij = yij
y rj =

yik
yrj pentru i = 1, m, i r ;
yrk

yrj
yrk

Tehnici de optimizare - Cursul 3

18

Valoarea funciei obiectiv:


1

b = u b = u b
z = c B
j j
f
B

j =1

rj

z = u j ( zk ck )
yrk
j =1
m

m
zk ck ) m

(
rj b j
b j = u j b j

yrk
j =1
j =1

zk ck )
(
z = z
x
yrk

Tehnici de optimizare - Cursul 3

19

Valoarea costurilor reduse:

z j c j = cBf B 1 A j c j = u f A j c j =

ri
= ui aij c j = ui ( zk ck )
yrk
i =1
i =1
m
( zk ck ) m
ri aij
= ui aij c j

yrk
i =1
i =1

z j c j = ( z j c j )

( zk ck ) yrj
yrk

Tehnici de optimizare - Cursul 3

aij c j =

, 1 j n.

20

Organizarea calculelor
Tabloul simplex standard
xB

c B V.B x


c si

x si

c sr

x sr

Y  B1 A

z  c 

cj

ck

xj

xk

x i 


y ij




x r 

z

y rj

y rk

zj  c j 

z = csi xi
i =1




y ik

z j c j = csi yij c j
i =1

zk  ck 

Tehnici de optimizare - Cursul 3

21

B1

x B x

Tabloul simplex revizuit

u

c B V.B.

xk


c si

x si

x i 


c sr

x sr

x r 

z

 ij

 rj







uj

y ik
y rk

z = csi xi
i =1
m

u j = csi ij
i =1

zk ck = u f Ak ck > 0




zk  c k

Tehnici de optimizare - Cursul 3

Y k = B 1 A k

22

Regula dreptunghiului
Elementul


yrk 0, se numete pivot. Restul elementelor le redenumim tij .

Linia pivotului se mparte la pivot:

trj =


trj
yrk

, j = 0, n.

Coloana pivotului devine un vector unitar:

trk = 1i tik =0,




i =1, m +1, i r.

Restul elementelor din tablou, se calculeaz dup regula dreptunghiului:

tij = tij

trj tik
yrk

i = 1, m + 1, i r ,
,
j = 0, n, j k .

Tehnici de optimizare - Cursul 3

23

Determinarea unei baze primal admisibile


Considerm problema de programare liniar n forma standard:

inf { c f x | A x = b, x 0 }

m n
m
unde A R , b R ,

b 0,

(P)

c Rn .

Acestei probleme i asociem problema artificial:

min { e f x a | A x + I m x a = b, x 0, x a 0 }

unde

(Pa)

e = (1,...,1) Rm , x a = ( xn +1 , xn + 2 ,..., xn + m ) Rm ,
f

iar Im este matricea unitate de ordinul m .


Proprieti ale problemei (Pa) :
 matricea restriciilor:

( AI m ) Rm( n+ m) ,

 Im este o baz primal admisibil:


 are o soluie optim finit:

rang ( AI m ) = m < n + m ;

I m1 b = b 0 ;

x 0 za = e x = xn +i 0.
a

i =1

Tehnici de optimizare - Cursul 4

Concluzie: (Pa) se poate rezolva cu algoritmul simplex.


Fie B baza optim a problemei (Pa) iar B mulimea indicilor de baz.
Teorem. Dac valoarea minim a problemei (Pa), za > 0, atunci
problema iniial (P) nu are soluie.
Demonstraie. Prin absurd, dac (P) are o soluie admisibil, conform TFPL
are i o soluie admisibil de baz.
Fie B* baza corespunztoare. Ea este format doar din coloane ale matricei A !
1

Avem: B* b 0 , deci B* este baz primal admisibil i pentru (Pa), iar


variabilele xa sunt secundare!
Deci, (Pa) are o soluie admisibil (de baz), pentru care,

x a = 0 e f x a = 0 < za valoarea optim. Contradicie.

Teorem. Dac B {n + 1,..., n + m} = , atunci za = 0

i B este o

baz primal admisibil a problemei iniiale (P).


Demonstraie. Evident, B este format doar din coloane a matricei A.
Tehnici de optimizare - Cursul 4

Teorem. Dac valoarea minim a lui (Pa) este za = 0 i exist n + i0 B ,


pentru ycare
i0 j = 0, j = 1, n ,

rang ( A ) m 1
atunci,

i0 = locB ( n + i0 ) ,

i restricia i0 din (P) este o combinaie liniar de celelalte restricii.

B 1 = ( ij )1i m

Demonstraie. Notm:

1 j m

Din ipotez,

0 = yi0 j = i0 k akj =
k =1

Deoarece
Deci,

Y = ( yi j ) = B 1 A .

i k akj + i i ai j , j = 1, n .

k =1, k i0

00

B conine vectorul e 0 , n B-1 vom avea i0i0 = 1.


i

ai0 j =

adic, linia

k =1, k i0

i k akj , j = 1, n , Ai =
0

k =1, k i0

i k Ak ,
0

Ai0 este combinaie liniar de celelalte linii. Deci, rang ( A ) m 1.

Sistemul fiind compatibil, rezult i

bi0 =

k =1, k i0

Tehnici de optimizare - Cursul 4

i k bk .
0

Teorem. Dac valoarea minim a lui (Pa) este za = 0 i exist n + i0 B ,


pentru care i0 = locB ( n + i0 ) ,

k {1,..., n} , yi0 k 0,

efectua o schimbare de baz prin care vectorul unitar


de coloana Ak.
Demonstraie. Din Lema substituiei,

i0

atunci, se poate

din

B s fie nlocuit

( )

0.
yi0 k 0 det B

n plus, din formulele de schimbare a bazei, deoarece

x = x , i = 1, m
i
xi0 = 0 i
z = z .

B 1 b = B 1 b 0 ,

Observaie. Dac za = 0, toate variabilele artificiale au valoarea zero !


inclusiv cele care au mai rmas n baz.
eliminate mpreun
cu restricia asociat.
Variabilele artificiale din baz
care au valoarea zero, pot fi:

sau
nlocuite cu o variabil
a problemei date.

Tehnici de optimizare - Cursul 4

Metoda celor dou faze


za = 0

Faza 1. Se rezolv (Pa)


cu baza iniial Im.

(P) nu are
soluie.

nu

STOP

da

nu

n + i0 B

yi0 j = 0

da

da

j = 1, n

nu

Se nlocuiete

xn +i0 cu xk

Se elimin restricia i0

Faza 2. Se rezolv (P)


cu baza admisibil B.
(P) are optim
infinit.
(P) are optim finit.

Tehnici de optimizare - Cursul 4

STOP

Exemple

Tehnici de optimizare - Cursul 4

Degenerare i ciclare
Descreterea funciei obiectiv:

zk ck )
(
z = z
x

xr 0

yrk

Metoda perturbrii (A. Charnes, 1952)

inf c x A x = b ( ) , x 0
f

cu b ( ) = b + j A j , > 0.
j =1

Propoziia 1. Fie B = (A1, , Am) o baz primal admisibil. Atunci exist

B >0

astfel nct

x ( ) = B 1 b ( ) > 0, ( 0, B ) .

x ( ) = x + j =1 Y j j , unde (Y 1 ,..., Y m ) = I m .
n
i
j i
Pe componente, pentru i = 1, m , xi ( ) = xi + 1 + yij .
j = m +1

Rezult, i > 0, suficient de mic, pentru care xi ( i ) > 0.


Demonstraie. Avem

Lum

B = min {1 ,..., m } .

Rezult, 0,
Tehnici de optimizare - Cursul 4

),

x ( ) > 0.
7

Observaie. Dac n algoritmul simplex alegerea indicelui r nu este unic,


dup efectuarea iteraiei se obine o soluie de baz degenerat.
Propoziia 2. Fie B primal admisibil n condiiile Teoremei de schimbare a
bazei i x ( ) > 0,

( 0, B ) . Atunci, ' > 0 astfel nct criteriul de

ieire din baz este ndeplinit pentru un singur indice

xi ( )
xr ( )
= min
1 i m
yrk
yik

r , ( 0, ') :

yik > 0 .

xs ( st ) xt ( st )
s, t cu ysk > 0, ytk > 0

,
ysk
ytk
xs
xs
xt n ysj ytj j
xt
adic,

+
st 0. Dac
= 0,
ysk ytk j =1 ysk ytk
ysk ytk
ysp ytp
p , 1 p n,

0. Altfel, det B = 0 !
ysk ytk
Demonstraie. Trebuie ca

Lum

' = min { st > 0 s t , ysk > 0, ytk > 0 }.


Tehnici de optimizare - Cursul 4

Dualitate n optimizarea liniar


Problema 1.
D1

B1

5
2

= 13

B2

= 12

3
4

D2

=8

= 17

B3

= 10

S se distribuie marfa din depozite la beneficiari, n aa fel nct, costul total


de transport s fie minim.

min {5 x11 + 2 x12 + 3 x13 + 3x21 + 4 x22 + 2 x23 }


x11 x12 x13 13
Dac notm

xij , i = 1, 2, j = 1, 2,3,

x21 x22 x23 17


x11 + x21 12

cantitatea de marf transportat de


la depozitul Di ctre beneficiarul Bj,
modelul matematic este:

x12 + x22 8
x13 + x23 10
xij 0, i = 1, 2, j = 1, 2,3.

Tehnici de optimizare - Cursul 5

Problema 2.
v1

D1

= 13

u1

Cumpr
D2

= 17

v2

Vnd

B1

= 12

B2

=8

B3

= 10

u2
v3

S se stabileasc costurile de cumprare i vnzare a mrfii n aa fel nct s


se obin un beneficiu maxim.

Condiie: diferena dintre preul


de vnzare i cel de cumprare
s nu depeasc costul unitar
de transport de la depozitul Di
la beneficiarul Bj.

max {13u1 17u2 + 12v1 + 8v2 + 10v3 }


v1 u1 5
v2 u1 2
v3 u1 3
v1 u2 3
v2 u2 4
v3 u2 2
ui 0, i = 1, 2, v j 0, j = 1, 2,3.

Tehnici de optimizare - Cursul 5

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

Reguli de asociere a problemelor duale




Unei probleme de minimizare i corespunde o problem de


maximizare, i reciproc.

Tehnici de optimizare - Cursul 5

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

Reguli de asociere a problemelor duale




Unei probleme de minimizare i corespunde o problem de


maximizare, i reciproc.
Coeficienii din funcia obiectiv a unei probleme devin
coeficienii termenului liber n cealalt problem, i reciproc.

Tehnici de optimizare - Cursul 5

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

Reguli de asociere a problemelor duale




Unei probleme de minimizare i corespunde o problem de


maximizare, i reciproc.
Coeficienii din funcia obiectiv a unei probleme devin
coeficienii termenului liber n cealalt problem, i reciproc.
Matricea restriciilor dintr-o problem este matricea transpus
din cealalt problem, i reciproc.

Tehnici de optimizare - Cursul 5

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

Reguli de asociere a problemelor duale




Unei probleme de minimizare i corespunde o problem de


maximizare, i reciproc.
Coeficienii din funcia obiectiv a unei probleme devin
coeficienii termenului liber n cealalt problem, i reciproc.
Matricea restriciilor dintr-o problem este matricea transpus
din cealalt problem, i reciproc.
Fiecrei restricii dintr-o problem i corespunde o variabil n
cealalt problem, i reciproc.
Relaia de asociere este urmtoarea:


unei restricii concordante i corespunde o variabil nenegativ ( 0 ) ,


i reciproc;
unei restricii egalitate i corespunde o variabil oarecare (fr
condiii de semn), i reciproc;
unei restricii neconcordante i corespunde o variabil nepozitiv ( 0 ) ,
i reciproc.

Tehnici de optimizare - Cursul 5

10

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

11

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

12

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

13

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

14

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

15

inf {c1f x1 + c2f x2 + c3f x3 }

Problema primal:

n raport cu

A11 x1 + A12 x2 + A13 x3 b1

A21 x1 + A22 x2 + A23 x3 = b2


A31 x1 + A32 x2 + A33 x3 b3

x1 0
x3 0

(P)

=========================================================================

Problema dual:

sup {b1f u1 + b2f u2 + b3f u3 }

n raport cu

A11f u1 + A21f u2 + A31f u3 c1

f
f
f
A12 u1 + A22 u2 + A32 u3 = c2
A13f u1 + A23f u2 + A33f u3 c3

u1 0
u3 0

Tehnici de optimizare - Cursul 5

(D)

16

primala n form standard: inf { c f x | A x = b, x 0 }

sup { b f u | Af u c }
problema dual:
primala n form canonic: inf { c f x | A x b, x 0 }

sup { b f u | Af u c, u 0 }
problema dual:

inf { c f x }

primala n form mixt: n raprt cu:

A x b
1

1
, x0

A2 x = b2

sup { b f u + b f u }

1
1
2
2

problema dual:
n raprt cu:

Af u + Af u c ,
2
2

1 1

u1 0
Tehnici de optimizare - Cursul 5

17

Teoreme de dualitate
Fie

A Rmn , b Rm , c Rn

i definim domeniile de admisibilitate:

P = { x Rn | A x b, x 0 } ,

D = { u Rm | Af u c, u 0 }

Considerm perechea de probleme (canonice) duale:

inf { c f x | x P }
sup { b f u | u D

........................... ( P )
........................... ( D )

P , D ,
atunci x P, u D , are loc relaia: c f x b f u .

Teorem (dualitate slab). Dac domeniile de admisibilitate

Demonstraie. Pentru x P, u D , avem:


x0
A x b 0

f
f
f
f
f

x
c.

u A x u b,
Af u c 0
u0
Prin urmare,

c f x x f Af u = u f A x b f u .
Tehnici de optimizare - Cursul 5

18

Teorem (dualitate tare). Dac domeniile de admisibilitate


i

x P, u D ,

optim pentru (P) i

astfel nct

cf x = bf u ,

P , D ,

atunci,

este soluie

este soluie optim pentru (D) .

Demonstraie. Presupunem prin absurd c x nu este optim pentru (P).


f
f
f
Atunci, x0 P astfel nct c x0 < c x = b u .
Contradicie!
Teorema (fundamental a dualitii). Fiind dat perechea de probleme duale
(P) i (D) doar una din urmtoarele afirmaii are loc:
a)

P i D . n cazul acesta x P i u D , soluii


optime pentru (P), respectiv (D), astfel nct

c f x = b f u .

b)

P = i D = .

c)

P i D = sau P = i D . n cazul acesta problema


care are soluii admisibile are optimul infinit.

Tehnici de optimizare - Cursul 5

19

Demonstraie. Considerm matricea ptratic de ordinul n+m+1:

0n

S = A
c f

Af
0m
bf

b
0

Deoarece S = S f , putem aplica consecina Lemei Farkas-Minkowski:

z Rn + m +1 , z 0, astfel nct S z 0 i S z + z > 0 .


f
n
m
Notm: z = ( x , u , r ) , unde x R , u R , r R.
exist

Avem:

x 0,
u 0,
r 0,

r>0

r=0

Af u + cr 0,
A x br 0,

(1)
(2)

c f x + b f u 0,

(3)

x Af u + cr > 0,
A x + u br > 0,

(4)
(5)

c f x + b f u + r > 0.

(6)

Tehnici de optimizare - Cursul 5

20

Cazul r > 0.

x =

Definim:

x
r

u =

u
r

Evident, x 0 i u 0 . mprind relaiile (1) i (2) la r, obinem:

A x b i Af u c .
Deci,

x P i u D ,

adic,

P i D .

Din dualitatea slab

c f x b f u

Din relaia (3) / r

c f x b f u

Din dualitatea tare rezult

x i u

c f x = b f u .

optime pentru (P), respectiv (D).

Tehnici de optimizare - Cursul 5

21

Cazul r = 0.

P i D .
Prin absurd, dac exist x0 P i u0 D ,

avem:

Nu putem avea

A x0 b 0
f
f
u
b
u

A x0 0,

u 0
0 din (1)
x 0

f
f
f
x
c
x
A

u0 0,

f
123
A u0 c 0
0 din (2)

deci,

x f c 0 u f b . Contradicie! cu (6)

P = i D = .
Rezult:

P i D =

sau P = i D .

Tehnici de optimizare - Cursul 5

22

Presupunem, spre exemplu, c exist x0 P .


Definim vectorul

x ( ) = x0 + x , R, 0.

Avem evident x ( ) 0 i

A x ( ) = A x0 +
A x A x0 b.
0 din (2)

Deci, R, 0,
Deoarece

cf x
< b f u x0f
Af u 0,
din (6)

rezult,

x ( ) P .

0, din (1)

f
lim c f x ( ) = lim c f x0 + c
x = .


<0

Tehnici de optimizare - Cursul 5

23

Teorem (tare a ecarturilor complemetare).

Dac

atunci, pentru (P) i (D) exist soluiile optime

x ,

P , D ,
respectiv

u ,

astfel nct

( A x b ) + u > 0,

( c A u ) + x > 0.
f

Demonstraie. Rezult din (4) i (5) pentru cazul

r>0.

Teorem (slab a ecarturilor complemetare).

x P , u D .

Atunci,

Fie

u f ( A x b ) = 0,

x este soluie optim pentru (P)

x f ( c Af u ) = 0.

u este soluie optim pentru (D)


Demonstraie.

Din TFD a) rezult: c f x b f u = 0. Deci,

f
f
f
c f x b f u + u f A x x f Af u = u ( A x b ) + x ( c A u ) = 0.

f
f
Adunm membru cu membru relaiile din enun i obinem: c x = b u .

Din teorema de dualitate tare rezult ca soluiile sunt optime.

Tehnici de optimizare - Cursul 5

24

Algoritmul simplex dual


Considerm problema de programare liniar n forma standard:

inf { c f x | A x = b, x 0 }

sup { b f u | Af u c }

i duala ei,
unde
Fie

(P)
(D)

A Rmn , b Rm , c Rn , rang ( A ) = m < n.

B o baz optim a problemei (P). Avem:

Notm:
n plus,

x = B 1 b 0

(primal-admisibilitatea lui B)

cBf B 1 A c f

(condiia de optimalitate a lui B)

u f = cBf B 1

u f A cf

z = cBf x = cBf B 1 b = u f b .

u admisibil pentru (D)


u optim pentru (D).
(teorema de dualitate tare)

Tehnici de optimizare - Cursul 6

Matricea de baz B se numete dual admisibil, dac

cBf B 1 A c f
Teorem (optim): Dac baza B este primal i dual admisibil, atunci ea
este optim pentru problemele (P) i (D).
Algoritmul simplex primal:

i=0

B(i) dual

Determin B(i)
primal admisibil

admisibil ?
nu

i i+1

nu

da

B(i) optim !

(P) are optim


( ) ?
STOP
da

Tehnici de optimizare - Cursul 6

Algoritmul simplex dual:

B(i) primal

Determin B(i)
dual admisibil

i=0

da

admisibil ?

B(i) optim !

nu

i i+1

nu

(D) are optim


(+ ) ?
da

STOP

B o baz dual admisibil. Dac exist o


component xi < 0, pentru care yij 0, j = 1, n, atunci problema (P)

Teorem (domeniu vid).

Fie

nu are soluie.
Demonstraie.
Definim vectorul:

f
f
1
1
Notm u = cB B i Bi linia i a lui B1.

u f ( ) = u f Bi1 , R, 0.
Tehnici de optimizare - Cursul 6

Pentru orice

j = 1, n, avem:

u f ( ) A j = u f A j Bi1 A j = z j yij z j c j
zj

yij

B dual admis.

deci, 0, u ( ) este o soluie admisibil pentru problema (D).


Valoarea funciei obiectiv este:

u f ( ) b = u f b Bi1 b = z xi

lim u f ( ) b = z + lim ( xi ) = + .

>0

Problema (D) are optimul + i din T.F.D. rezult c (P) nu are soluie.

Tehnici de optimizare - Cursul 6

sm
s1 s2
B
=
A
A

A
Teorem (schimbarea bazei): Fie
o baz dual
admisibil i componenta xr < 0, pentru care exist j R cu yrj < 0.
Dac alegem indicele k R astfel nct

z j c j
zk ck
= min
jR
yrk
yrj

yrj < 0

= As1 Asr1 Ak Asr+1 Asm este o baz dual


B
1
f 1
f

z
=
c

B
b = z.
admisibil, pentru care
atunci, matricea

Demonstraie. Evident, yrk < 0. Din Lema substituiei rezult c


matrice nesingular.
Trebuie artat c

j = 1, n,

este o

z j c j = c B A j c j 0.

Tehnici de optimizare - Cursul 6

Din formulele de schimbare a bazei avem:

z j c j = ( z j c j )

B fiind dual admisibil, rezult:

(z

( zk ck ) yrj
yrk

c j ) 0, j = 1, n .

Dac yrj 0, evident z j c j 0.


Dac yrj < 0, avem:

z j c j zk ck

z j c j = yrj
y
yrk
rj
<0

0.

este dual admisibil.


Deci, B

Din formula de schimbare a valorii funciei obiectiv obinem:

zk ck )
(
z = z
x
yrk

z.

0
Tehnici de optimizare - Cursul 6

Paii algoritmului simplex dual




Pasul 0. Se determin (dac exist?!) o baz dual admisibil B i se


calculeaz B1.

Pasul 1. Se calculeaz

x = B 1 b, z = cBf x , Y = B 1 A, z f c f = cBf Y c f 0f .

Pasul 2. (test de optimalitate) Dac x 0, atunci s-a obinut valoarea


optim z , i soluia optim de baz xB = x , xR = 0. STOP.
Pasul 3. (test domeniu vid) Dac xi < 0 pentru care yij 0, j = 1, n,
atunci problema (P) nu are soluie. STOP.
Pasul 4. (schimbarea bazei) Dac xr < 0 i j R cu yrj < 0, se
determin k R astfel nct
z j c j
zk ck

= min
yrj < 0 .
jR
yrk
y
rj

= B\ Ar
Se formeaz B
i se revine la Pasul 1.
s

1 = E ( ) B 1
UAk , se calculeaz inversa B
r
Tehnici de optimizare - Cursul 6

Tabloul simplex standard


xB

c B V.B x

c si

x si

c sr

x sr

Y B1 A

z c

cj

ck

xj

xk

x i

y ij

x r

y rj

y rk

zj c j

z = csi xi
i =1

y ik

z j c j = csi yij c j
i =1

zk ck

Tehnici de optimizare - Cursul 6

Algoritmul simplex adaptat pentru


problema de transport
x11

x12

x1n

a1

x21

x22

x2n

a2

Marf disponibil

m Depozite

xm1
b1

xm2
b2

n Beneficiari

xmn

am
Matricea
costurilor

bn
c11

c1n

cm1

cmn

Marf solicitat

Tehnici de optimizare - Cursul 6

min cij xij

Modelul matematic:

Costul total

i =1 j =1

x
j =1

ij

n raport cu

x
i =1

ij

ai , i = 1, m ,

Cantitatea disponibil
(oferta)

bj ,

Cantitatea solicitat
(cererea)

j = 1, n ,

xij 0, i = 1, m , j = 1, n .
Condiia natural de existen a unei soluii admisibile este:
Oferta

Cererea

m n
ai xij = xij b j

i =1
i =1 j =1
j =1 i =1
j =1
m

bj

Tehnici de optimizare - Cursul 6

10

min cij xij

Forma standard a problemei de transport:


n

x
j =1

n raport cu

ij

x
i =1

ij

i =1 j =1

= ai , i = 1, m ,

(PT)

= bj ,

j = 1, n ,

xij 0, i = 1, m , j = 1, n .
Teorem. (PT) are o soluie admisibil dac i numai dac

ai 0, i = 1, m ; b j 0, j = 1, n ;
Demonstraie.

a = b .
i =1

j =1

Rezult imediat:

xij 0, i = 1, m , j = 1, n ,

ij

a
=
x
=
x
ij ij = b j .

i
i =1
i =1 j =1
j =1 i =1 j =1
m

= ai

ai 0
bj 0

= bj

Tehnici de optimizare - Cursul 6

11

Dac

i =1

j =1

i =1 j =1

S = 0 ai = b j = 0 xij = 0, i, j.
ai b j
S > 0 este suficient s lum xij =
0, i = 1, m , j = 1, n .
S
m
m ab
m
bj
i j
xij =
= ai = b j , j = 1, n .

S i =1
i =1
i =1 S
n
n ab
ai n
i j
xij =
= b j = ai , i = 1, m .

S j =1
j =1
j =1 S

Observaie. Putem considera mereu

( c
m

S = ai = b j = xij 0.

Notm
Dac

i =1 j =1

ij

cij 0 , i = 1, m , j = 1, n .

+ ) xij = cij xij + xij = cij xij + S


m

i =1 j =1

pentru = max { cij , 0 }


1i m
1 j n

i =1 j =1

c x
i =1 j =1

ij ij

i =1 j =1

= constant

(PT) are optim finit !


Tehnici de optimizare - Cursul 6

12

Structura matricei restriciilor:

x11

x12

x1n

x21

x22

x2n

xm1

xm2

xmn

= a1
1

= a2

o
f
e
r
t
a

= am
1
1

= b1
= b2

1
= bn

Teorema. Rangul matricei este = m + n 1.


1

Demonstraie. Rangul este < m + n .


i atunci,

c
e
r
e
r
e
a

Se elimin linia m + 1

det ( A11 , A21 , , Am 1,1 Am1 , Am 2 , , Amn ) = 1 0.


Tehnici de optimizare - Cursul 6

13

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

nu

i + jm+ n

13

Exemplu.

17
11
19
7

18

16

Tehnici de optimizare - Cursul 6

10

14

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

x11

13
17
11
19

18

16

Tehnici de optimizare - Cursul 6

10

15

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
17
11
19

18

16

Tehnici de optimizare - Cursul 6

10

16

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

x12

6
17
11
19

18

16

Tehnici de optimizare - Cursul 6

10

17

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

0
17
11
19

12

16

Tehnici de optimizare - Cursul 6

10

18

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

x22

17
11
19

12

16

Tehnici de optimizare - Cursul 6

10

19

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

12

5
11
19

16

Tehnici de optimizare - Cursul 6

10

20

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
x23

5
11
19

16

Tehnici de optimizare - Cursul 6

10

21

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5

0
11
19

16

Tehnici de optimizare - Cursul 6

10

22

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5

x33

11
19

16

Tehnici de optimizare - Cursul 6

10

23

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5

7
19

16

Tehnici de optimizare - Cursul 6

10

24

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
x34

7
19

16

Tehnici de optimizare - Cursul 6

10

25

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
7

0
19

Tehnici de optimizare - Cursul 6

10

26

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
7

x44

19

Tehnici de optimizare - Cursul 6

10

27

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
7

10

Tehnici de optimizare - Cursul 6

10

28

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
7

x45

10

Tehnici de optimizare - Cursul 6

10

29

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

0
5
4

0
7

10

Tehnici de optimizare - Cursul 6

30

Determinarea unei soluii iniiale de baz


Metoda colului de N V.

da

ai ai xij

xij = min {ai , b j }

i = j =1

i i +1

ai = 0

b j b j xij
da

nu

j j +1

Stop

Exemplu.

nu

i + jm+ n

6
12

13
5
4

18

17
7

11

10

16

10

Tehnici de optimizare - Cursul 6

19

31

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

13

17

11

19

Matricea costurilor

18

Tehnici de optimizare - Cursul 6

16

10
32

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
13

11

19

Matricea costurilor

x24

18

Tehnici de optimizare - Cursul 6

16

17

10
33

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
13

11

19

Matricea costurilor

16

18

Tehnici de optimizare - Cursul 6

10
34

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
x13

13

11

19

Matricea costurilor

16

18

Tehnici de optimizare - Cursul 6

10
35

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
9

11

19

Matricea costurilor

16

18

Tehnici de optimizare - Cursul 6

10
36

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

4
16

1
11

x41
7

19
18

Tehnici de optimizare - Cursul 6

10
37

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

4
16

1
11

7
0

12
18

Tehnici de optimizare - Cursul 6

10
38

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

x15
16

4
1
11

7
0

12
18

Tehnici de optimizare - Cursul 6

10
39

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

4
16

0
1
11

7
0

12
18

Tehnici de optimizare - Cursul 6

6
40

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
x22

4
16

0
1
11

7
0

12
18

Tehnici de optimizare - Cursul 6

6
41

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
1

4
16

0
0
11

7
0

12
17

Tehnici de optimizare - Cursul 6

6
42

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
1

4
16

0
x35

7
0

11
12

17

Tehnici de optimizare - Cursul 6

6
43

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
1

4
16

0
6

7
0

5
12

17

Tehnici de optimizare - Cursul 6

0
44

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
1

4
16

0
6

x42

17

Tehnici de optimizare - Cursul 6

5
12

0
45

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
5

Matricea costurilor

9
1

4
16

0
6

12

Tehnici de optimizare - Cursul 6

5
0

0
46

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
9

x32

Matricea costurilor

12

Tehnici de optimizare - Cursul 6

4
16

0
0

5
0

0
47

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
9

Matricea costurilor

12

Tehnici de optimizare - Cursul 6

4
16

0
0

0
0

0
48

Determinarea unei soluii iniiale de baz


Metoda costului minim.
I = {1, 2, , m}

cij = min

J = {1, 2, , n}

rI , kJ

ai ai xij

xij = min {ai , b j }

{ crk }

b j b j xij

I I \{ i }

nu

da
?

da

Stop

ai = 0

I = J =

J J \{ j }

nu

Exemplu.
9

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 6

4
16

13
17

11
19

16

10
49

Determinarea unei soluii iniiale de baz


7

6
12

Metoda colului de N V.
Costul total = 193

13
5
4

17
7

11

10

19

Metoda costului minim.


Costul total = 137

18

16

10

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 6

4
16

13
17

11
19

16

10
50

Soluii iniiale de baz


7

6
12

Metoda colului de N V.
Costul total = 193

13
5
4

17
7

11

10

19

Metoda costului minim.


Este
soluia
optim
Costul
total
= 137?

18

16

10

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

3
6
6

10

O soluie mai bun.


Costul total = 132

13

11

17

11

12

19

18

16

10

Matricea costurilor

Metoda costului minim.


Costul total = 137

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

Testul de optimalitate
Forma standard a problemei de transport:
m

min cij xij


i =1 j =1

x
j =1

n raport cu

ij

x
i =1

ij

= ai , i = 1, m ,
(PT)

= bj ,

j = 1, n ,

xij 0, i = 1, m , j = 1, n .
Condiia de existen a soluiei:

ai 0, i = 1, m ; b j 0, j = 1, n ;

Tehnici de optimizare - Cursul 7

a = b .
i =1

j =1

Structura datelor n problema de transport:


c11

c12

c1n

c21

c22

c2n

cm1

cm2

cmn

x11

x12

x1n

x21

x22

x2n

xm1

xm2

xmn

= a1
1

= a2

= am
1
1

= b1
= b2

1
= bn

Rangul matricei
este
1 restriciilor

1 m + n 1.

Matricea restriciilor este total unimodular: orice minor = +1, 1 sau 0.

Tehnici de optimizare - Cursul 7

xij ,

Fie B o baz optim i


problemei (PT).

n particular, pentru

( i, j ) B , zij cij = 0.

zij = cBf B 1 Ao( ) = ( u f , v f ) Ao( ) = ui + v j ,


ij

Rezult,

xij ,

ij

unde

Ao( ) Rm + n 1.
ij

ui + v j = cij , ( i, j ) B ,
ui + v j cij , ( i, j ) B .

( i, j ) B
( ui , v j ) , ( i, j ) B

Dac

soluia optim de baz a

zij cij 0, ( i, j ) , 1 i m, 1 j n.

Avem:

Dar,

( i, j ) B

este o soluie optim de baz, atunci


va fi soluia optim a dualei problemei (PT).

Tehnici de optimizare - Cursul 7

c11

c12

c1n

c21

c22

c2n

cm1

cm2

cmn

x11

x12

x1n

x21

x22

x2n

xm1

xm2

xmn

1
1

1
1

u1

= a2

u2

= am

um

= b1

v1

= b2

v2

= bn

vn

Duala problemei
1 de transport:

1
n
m
max ai ui + b j v j
j =1
i =1

= a1

ui + v j cij , i = 1, m , j = 1, n

Tehnici de optimizare - Cursul 7

(DT)

Teorema slab a ecarturilor complementare: Fie soluiile admisibile

xij ,

respectiv

(u , v ) ,
i

1 i m , 1 j n,

pentru (PT) i (DT).

Acestea sunt optime, dac i numai dac,

ui xij ai = 0, i = 1, m ,
j =1

v j xij b j = 0,
i =1

Condiii evident
satisfcute !

j = 1, n ,

xij ( ui + v j cij ) = 0, i = 1, m, j = 1, n .

Condiii evident
satisfcute pentru

xij = 0, ( i, j ) B .

xij > 0, ( i, j ) B ,
pentru ca aceasta s fie optim, trebuie ca: ui + v j cij = 0, ( i , j ) B .
Dac soluia admisibil de baz este:

Problem: Cum putem identifica existena unei soluii admisibile a problemei


duale (DT) care s verifice condiia de optimalitate ?

Tehnici de optimizare - Cursul 7

ui + v j = cij , ( i, j ) B .
card ( B ) = m + n 1 ecuaii i m + n variabile.

Considerm sistemul:
Acesta are

Rangul matricei acestui sistem este m + n 1, deci sistemul este compatibil


nedeterminat.
Rezolvarea sistemului: se d unei variabile ui sau vj o valoare arbitrar,
iar restul variabilelor se calculeaz succesiv din ecuaiile respective.
Fie

ui , i = 1, m, v j , j = 1, n,

Dac

soluia obinut.

ui + v j cij , ( i, j ) B ,

Teorema ecarturilor complementare

soluia este dual admisibil.

xij ,

( i, j ) B ,

soluie de baz
optim pentru problema (PT).

( r , k ) B , ur + vk crk = zrk crk > 0,


soluia de baz xij , ( i, j ) B , nu ndeplinete condiia de optimalitate
Dac

pentru problema (PT).

Tehnici de optimizare - Cursul 7

Schimbarea soluiei de baz


Fie

( r, k ) B ,

ur + vk > crk .

Se introduce n baz variabila

xrk = x 0.

Schimbarea bazei conform algoritmului simplex:

xst

Criteriul de ieire din baz:

B \ ( s, t )

y( st )( rk )

xij

= min
( ij )B

y( ij )( rk )

Recalcularea valorilor corespunztoare noii baze:

xij = xij
xrk =

y(ij )( rk )
y( st )( rk )

xst
y( st )( rk )

y( ij )( rk ) > 0

= B \ ( s, t ) U( r , k )
B

xst , ( i, j ) B \ ( s, t ) ,

= x 0.

Care sunt valorile componentelor vectorului

Y(

rk )

Tehnici de optimizare - Cursul 7

= B 1 Ao(

rk )

Considerm dou selecii de cte p indici distinci:

i1 , i2 , , i p {1, 2, , m} ,
Definiie. Mulimea perechilor
se numete ciclu.

j1 , j2 , , j p {1, 2, , n} .

( i1 , j1 ) , ( i1 , j2 ) , ( i2 , j2 ) , , ( i p , j p ) , ( i p , j1 )

Observaie: orice ciclu are un numr par de elemente = 2p.


Propoziie. Dac mulimea indicilor (i,j) a unor coloane A(ij) din matricea
restriciilor a problemei (PT) formeaz un ciclu, atunci aceste coloane sunt
liniar dependente.
Demonstraie. Notm vectorul unitar: ei Rm + n .

A(ij ) = ei + e m+ j Rm+ n

(i j )
(i j )
i j
A(i1 j1 ) A( i1 j2 ) + A(i2 j2 ) A( 2 3 ) + + A p p A p 1 =

ei1 + e m+ j1 ei1 e m+ j2 + ei2 + e m+ j2 ei2 e m+ j3 +


+ e p + e
i

Corolar. Mulimea indicilor de baz

m+ j p

e p em+ j1 = 0.
i

nu conine cicluri.

Tehnici de optimizare - Cursul 7

10

Propoziie. Pentru orice pereche r , k


aceast pereche i elemente din B .

Y(

Determinarea elementelor lui


Avem:

Ao( rk ) = B Y ( rk ) =

( ij )B

rk )

) B ,

= B 1 Ao( ) .
rk

y(ij )( rk ) Ao(ij )
0

Dar exist i un ciclu unic:

C=

Combinaie liniar (unic) cu


vectorii A(ij) din baz.
1

pentru care

( rj1 )

=A

( i1 j1 )

A
1

Rezult:

y(ij )( rk ) =

2p-2

2p-1

{ ( r , k ) , ( r , j ) , ( i , j ) , , ( i , j ) , ( i , k ) }
1

B
( rk )

exist un ciclu unic format din

pentru

1 pentru
0 pentru

( i1 j2 )

+A

(ip j p )
(ip k )
A
+A .

( i, j ) C de ordin impar
( i, j ) C de ordin par
( i, j ) C

Tehnici de optimizare - Cursul 7

11

xst

Criteriul de ieire din baz:

y( st )( rk )

= min
( ij )B

xij
y( ij )( rk )

y( ij )( rk ) > 0

= +1
adic,

xst = min xij


Perechea de indici

( s, t )

( i, j ) C

de ordin impar

va prsi baza B .

Tehnici de optimizare - Cursul 7

12

Formulele de schimbare a soluiei de baz:

xij = xij
xrk =

Rezult:

xij =

y(ij )( rk )
y( st )( rk )

xst
y( st )( rk )

xst , ( i, j ) B \ ( s, t ) ,

= x 0.

xij x pentru
xij + x pentru
xij

= + 1, 1, 0

pentru

= +1

( i, j ) C de ordin impar
( i, j ) C de ordin par
( i, j ) C

Tehnici de optimizare - Cursul 7

13

Exemplu
B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}

Metoda costului minim.


Costul total = 137

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

14

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

15

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

16

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

17

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

18

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

19

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

-2
9

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

20

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

ui

-2

-1
9

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

21

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

-1

4
3

ui

-2

-1

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

22

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

-1

4
3

ui

-2

-1

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

23

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

-1

-2

-2

-1

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

24

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: v2 = 0 .

vj

-1

-2

-2

-1

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

25

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Test de optimalitate:

vj

ui + v j cij pentru

( i, j ) B

-1

-2

-2

-1

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

26

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Test de optimalitate:

vj

ui + v j cij pentru

( i, j ) B

u3 + v4 > c34

( 3, 4 ) B

-1

-2

-2

-1

ui

Matricea costurilor

?
!

12

18

Tehnici de optimizare - Cursul 7

4
16

13
17

11
19

16

10

27

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


mbuntirea soluiei de baz.
Determinarea unui ciclu.

vj

C = {( 3, 4 )}

-1

-2

-2

-1

16

+x

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

28

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


mbuntirea soluiei de baz.
Determinarea unui ciclu.

vj

C = {( 3, 4 ) , ( 3, 2 )}

-1

-2

-2

-1

16

5-x

+x

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

29

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


mbuntirea soluiei de baz.
Determinarea unui ciclu.

vj

C = {( 3, 4 ) , ( 3, 2 ) , ( 2, 2 )}

-1

-2

-2

-1

1+x

16

5-x

+x

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

30

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


mbuntirea soluiei de baz.
Determinarea unui ciclu.

vj

C = {( 3, 4 ) , ( 3, 2 ) , ( 2, 2 ) , ( 2, 4 )}

-1

-2

-2

-1

1+x

16-x

5-x

+x

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

31

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 2 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


mbuntirea soluiei de baz.
Determinarea unui ciclu.

C = {( 3, 4 ) , ( 3, 2 ) , ( 2, 2 ) , ( 2, 4 )}
x = min { 5, 16 } = 5

vj

-1

-2

-2

-1

1+x

16-x

5-x

+x

ui

Matricea costurilor

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

32

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Rezolvarea sistemului:

( i, j ) B

ui + v j = cij pentru

Valoare iniial: u1 = 0 .

vj

ui

Matricea costurilor

9
6

4
11
5

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

33

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Test de optimalitate:

vj

ui + v j cij pentru

ui

Matricea costurilor

( i, j ) B

9
6

4
11
5

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

34

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Test de optimalitate:

ui + v j cij pentru

( i, j ) B

Soluie optim. Valoarea optim = 137 + 5(1 4 + 3 1) = 132

vj

+3

+1

ui

Matricea costurilor

9
6

4
11
5

12

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

35

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3)}
vj

ui

Matricea costurilor

9
6

4
11
5

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

36

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3)}
vj

ui

Matricea costurilor

9-x
6

4
11
5

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

37

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 )}


vj

ui

Matricea costurilor

9-x
6

4+x
11
5

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

11
19

16

10

38

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 )}


vj

ui

Matricea costurilor

9-x
6

4+x
11
5

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

39

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 ) , ( 3, 4 )}


vj

ui

Matricea costurilor

9-x
6

4+x
11
5+x

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

40

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 ) , ( 3, 4 ) , ( 2, 4 )}


vj

ui

Matricea costurilor

9-x
6

4+x
11-x
5+x

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

41

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 ) , ( 3, 4 ) , ( 2, 4 ) , ( 2, 2 )}


vj

ui

Matricea costurilor

9-x
6+x

4+x
11-x
5+x

12

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

42

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 ) , ( 3, 4 ) , ( 2, 4 ) , ( 2, 2 ) , ( 4, 2 )}


vj

ui

Matricea costurilor

9-x
6+x

4+x
11-x
5+x

12-x

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

43

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 3,5 ) , ( 4,1) , ( 4, 2 )}


Determinarea unei alte soluii optime:
Condiie:

ui + v j = cij

pentru ( i, j ) B . De exemplu, ( 4,3) B .

C = {( 4,3) , (1,3) , (1,5 ) , ( 3,5 ) , ( 3, 4 ) , ( 2, 4 ) , ( 2, 2 ) , ( 4, 2 )}


x = min { 9, 6, 11, 12 } = 6
vj

ui

Matricea costurilor

9-x
6+x

4+x
11-x
5+x

12-x

+x

18

Tehnici de optimizare - Cursul 7

13
17

6-x

11
19

16

10

44

B = {(1,3) , (1,5 ) , ( 2, 2 ) , ( 2, 4 ) , ( 3, 4 ) , ( 4,3) , ( 4,1) , ( 4, 2 )}


Test de optimalitate:

ui + v j cij pentru

( i, j ) B

Soluie optim. Valoarea optim = 132 + 6(22+33+11+33) = 132

vj

0
0

ui

+3

+3

+1

Matricea costurilor

3
12

3
3

18

Tehnici de optimizare - Cursul 7

10

13

17

11

11
19

16

10

45

Programare liniar n numere ntregi


Considerm problema:

inf c f x A x = b, x Rn+ , xk Z, k K {1, 2, , n}


unde:

A Rmn , b Rm , c Rn , rang ( A ) = m < n.

K {1, 2, , n}

Problem de programare liniar mixt

K = {1, 2, , n}
Notaii:

(P*)

Problem de programare liniar


n numere ntregi

P0 = { x Rn A x = b, x 0}

Evident,

P* = { x P0 xk Z, k K }

P0 P *

Putem considera problemele:


(P0)

inf {c f x x P0 }

(P*)

inf {c f x x P *}

Se rezolv cu algoritmul simplex.


Trebuie elaborat o metod!

Tehnici de optimizare - Cursul 8

Propoziie. Fie x P0 soluia optim a lui (P0). Dac


este soluie optim i pentru problema (P*).

x P *, atunci x

P0 P *

Demonstraie.
Avem:

c f x = inf {c f x x P0 } inf {c f x x P *} c f x
Pe de alt parte,

Rezult,

c f x = inf { c f x x P * } .

x P *

Soluia optim.

Stop

Algoritm: metoda planelor de seciune.


da

Rezolv (Pi )
i=0

c f x = inf c f x
xPi

Determin

x P *

nu

Pi +1 = Pi ( i )
x Pi +1

ii+1
Observaie:

P0 P1 Pi Pi+1 P *.
Tehnici de optimizare - Cursul 8

Determinarea planelor de seciune (Gomory).


Considerm problema (P*) n care K = {1, 2, , n} .
Fie B o baz optim pentru (Pi ) i presupunem c sk B ,

xsk = xk ykj x j

Avem:

jR

xk = xk + f k 0
ykj = ykj + f kj

Introducem notaiile:

Rezult,

xsk Z.

unde 0 < f k 0 < 1,


unde 0 f kj < 1.

xsk xk + ykj x j = f k 0 f kj x j 0 < 1.


jR

Dar, x P *
n plus, avem:

jR

f
jR

Se adaug restricia:

kj

x j 0 & f k 0 ( 0,1)

( f ) x
jR

kj

fk 0 .

Tehnici de optimizare - Cursul 8

Observaie. Soluia de baz corespunztoare lui


adugat. ntr-adevr,

xB x
x= =
xR 0

( f ) x
jR

kj

x nu verific restricia

= 0 fk 0 < 0 .

Contradicie!

Prin urmare, putem defini:

Pi +1 = Pi ( i ) = x Pi

( f ) x
jR

kj

+ y(i +1) = f k 0 , y(i +1)

Exist o soluie optim Z


Algoritmul se termin ntr-un
numr finit de pai:
Nu exist soluii n Z

Tehnici de optimizare - Cursul 8

Implementare.
Fie B(i) o baz optim pentru (Pi ). Pentru (Pi+1 ) considerm matricea:

B( i +1)

B( i )
= f
0

B(i 1+1)

B(i 1) 0
=

0f 1

Matricea B(i+1) este dual admisibil pentru (Pi+1 ) :


1
1
b

x( i )

0
B
(i )
( i ) b( i )
(i )
1
x(i +1) = B( i +1) b( i +1) =
=
0
=

0f 1 f f f
k0

k0
k0
j
j
1

A
Y

0
B
(i )
(i )
(i )
1
j
j

Y(i +1) = B( i +1) A( i +1) =


0f 1 f f

kj kj
j

Y
(i )
( i +1)
(i )
j
f
f
z j c j = cB(i+1) Y( i +1) c j = cB(i ) , 0
cj = zj cj 0
f
k0
(i )

x
i +1
i +1
(i )
z ( ) = cBf (i+1) x ( ) = cBf (i ) , 0
= z
fk 0

Tehnici de optimizare - Cursul 8

Tabloul simplex:

x si

xj

xp

x i

x sk

y ip

x k f k0

y i

y ij

y i

y kj f kj

y kp f kp

f k0

f kj

f kp

zj cj

zp cp

Tehnici de optimizare - Cursul 8

min {2x1 x2 }

Exemplu.

n raport cu

x1
x1
2 x1

+
+

x2
x2

1
3

x1 , x2 Z+

Rezolvare grafic:

Tehnici de optimizare - Cursul 8

Rezolvarea cu algoritmul ciclic al lui Gomory:

x x 1 x 2 x 3 x 4 x 5

x1 x2

x3 x4 x5

x 3 1 1

x3

7
2

1
2

x4 3

x4

1
2

1
2

x5 5

x1

5
2

1
2

x1 x2 x3 x4 x5

x3

x2

1
2

x1

5
2
11
2

0
1
0

0
1
0
0

1 1

1
2

1
2

0 1

1
2

x1 x2 x3 x4

x5

x3

1 1

x2

1
2

1
2

x1

5
2

1
2

1
2

1
2

11
2

0 1

1
2

Tehnici de optimizare - Cursul 8

x1 x2 x3 x4

x5

x3

x2

1
2

1
2

x1

5
2

1
2

1
2

1
2

11
2

1
2

x1 x2 x3 x4 x5

x3

1 1 0

1
2

x2

0 1

x1

1 2

5 0

0 1 0 1

Tehnici de optimizare - Cursul 8

Principiul de descompunere Dantzig-Wolfe


Problemele de programare liniar de dimensiuni mari au o structur special a
restriciilor, matricea coeficienilor avnd o form ''bloc-unghiular':

A1

D1

unde

A2

D2

Ak

Dk

Ai Rm0 ni , Di Rmi ni , 1 i k .

Rezolvarea n dou etape:

1.

Rezolv k subprobleme independente.

2.

Rezolv un program principal.

Problema iniial
Tehnici de optimizare - Cursul 9

Rezultate preliminare
n
Definiie. Fie X R o mulime convex. Mulimea punctelor extreme

Ext ( X ) = x X a, b X \ { x} , x a + (1 ) b, [ 0,1]

Observatie. Orice soluie admisibil de baz a unei probleme de programare


liniar este un punct extrem al domeniului de admisibilitate.
n
Definiie. Fie M R o mulime oarecare. Acoperirea convex Co ( M )

a lui M este cea mai mic mulime convex ce conine pe M.


n
Teorem. Fie X R o mulime convex i compact. Atunci

Co ( Ext ( X ) ) = X .

Corolar. Fie mulimea X = x R | A x = b, x 0

nevid i mrginit

i
i Ext ( X ) = x , 1 i r . Atunci, orice element x X poate fi scris sub
r
r
forma:
i

x = i x ,

i 0,

i =1

Tehnici de optimizare - Cursul 9

= 1.

i =1

Principiul de descompunere
Considerm problema

inf c f x
A x = b0
Dx = b

( m0 restricii )
( m restricii )

x0

Presupunem poliedrul convex

S = { x Rn | D x = b, x 0} mrginit i

Ext ( S ) = { x j , 1 j r} .
Prin urmare,

x S ,

x = i x ,
i

i 0,

i =1

Reformulm problema iniial:

j =c x
j = A x j
f

Notm:

= 1.

i =1

inf { c f x x S & A x = b0 }
r

j
r

inf

j j
j =1

Programul principal:

j = b0

j =1
r

= 1,

j 0, 1 j r

j =1

Tehnici de optimizare - Cursul 9

Comentarii pro i contra:


r

inf

j j
j =1

Avem doar

m0 + 1

j = b0

restricii !

j =1
r

= 1,

j 0, 1 j r

j =1

Numrul de
variabile/coloane:
r = card(Ext(S)).

Cum se poate obine o baz B primal


admisibil pentru programul principal ?

n
Printr-o procedur de faz 1 aplicat mulimii S = x R | D x = b, x 0
determinndu-se apoi l m0 + 1 puncte extreme.

Notm: u = B B . Baza B va fi optim dac


f

s
f

f
u s = max u
1 j r

Partiionm vectorul

u f = ( u0f , u1 ) ,

j
j 0.

u0 Rm0 , u1 R.

Tehnici de optimizare - Cursul 9

j
A x j f j
f
f
f
j
u j = ( u0 , u1 )

x
=
u

x
+ u1
(
)

0
1
1
f

Determinarea maximului revine la rezolvarea problemei:

f
max u
1 j r

= maxn
xR

j
j = jmax ( u0f A c f ) x j + u1
1
x Ext ( S )

{ (u

f
0

A c f ) x D x = b, x 0 + u1 =

Subproblema pentru testul de optimalitate

Fie xs soluia optim de baz a subproblemei (punct extrem optim!).


Dac 0, baza B este optim pentru programul principal, cu soluia
optim:

b0
= B .
1
1

x = i x i
iB

Tehnici de optimizare - Cursul 9

soluia optim a
problemei iniiale

s A xs
Dac > 0, coloana care intr n baz este: =
,
1 1
f
s
avnd coeficientul de cost: s = c x .
Efectund operaia de schimbare a bazei n programul principal, se obine o
nou baz primal admisibil i calculele se reiau cu testul de optimalitate.

inf {c1f x1 +
Acest procedeu devine
atractiv dac se aplic la

A1 x1 +

c2f x 2 + + ckf x k }
A2 x 2 + + Ak x k

D1 x1

= b1
D2 x 2

probleme bloc-unghiulare:

= b0
= b2

Dk x k

= bk

xi 0, i = 1, k , k > 0
Ai Rm0 ni , Di Rmi ni , ci Rni , bi Rmi .
Tehnici de optimizare - Cursul 9

Subproblema pentru testul de optimalitate:

k f
max ( u0 Ai cif ) xi
i =1

Di xi = bi , xi 0, i = 1, k

Funcia obiectiv fiind aditiv iar restriciile independente, subproblema este


echivalent cu rezolvarea urmtoarelor k subprobleme independente:

maxn
xi

R i

{ (u A c ) x
f
0

Di xi = bi , xi 0 ,

i = 1, k .

Algoritmul de descompunere Dantzig-Wolfe.


1.

Se determin o baz primal admisibil B pentru programul principal i


f
f
multiplicatorii simplex u = u0 , u1 corespunztori.

2.

Se rezolv subproblemele independente i se obin soluiile

xi ( u0 ) , i = 1, k .

= ( u0f Ai cif ) xi ( u0 ) + u1
k

1.

Se calculeaz

i =1

Tehnici de optimizare - Cursul 9

1.

Dac 0, soluia optim pentru problema iniial este

x = i x i
iB

unde xi sunt punctele extreme ale mulimii


k

ni

S = x Ri=1

1.

D1

b1


b
Dk
k

Dac > 0, se formeaz coloana


k

s
Ai xi ( u0 )
= i =1

care va fi introdus n noua baz. Se calculeaz multiplicatorii simplex


corespunztori i se revine la pasul 2.

Tehnici de optimizare - Cursul 9

Programul principal restrns


Schimbarea bazei curente a programului principal prin introducerea unei
f
variabile noi pentru care u0 + u1 > 0, se poate face rezolvnd
problema:

m0 +1

inf i i +
i =1

m0 +1

i + = b0
i =1

m0 +1

+ = 1
i

i =1

i 0, i = 1, m0 + 1, 0

Tehnici de optimizare - Cursul 9

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