Curs Programare (1)

105
Matematici aplicate in economie Cercetari operationale lect. dr. Rodica Ioana LUNG www.econ.ubbcluj.ro/˜rodica.lung/co October 6, 2009 Rodica Ioana LUNG () Cercetari operationale October 6, 2009 1 / 52

Transcript of Curs Programare (1)

Page 1: Curs Programare (1)

Matematici aplicate in economieCercetari operationale

lect. dr. Rodica Ioana LUNGwww.econ.ubbcluj.ro/˜rodica.lung/co

October 6, 2009

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 1 / 52

Page 2: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Elemente de algebra liniara.Sisteme de ecuatii liniare

Multe din problemele economice, respectiv din aplicatiile matematiciiın alte domenii se reprezinta prin intermediul unor sisteme de ecuatiiliniare.

O ecuatie liniara este aceea care contine una sau mai multenecunoscute toate fiind la puterea I.Forma generala a unui sistem de ecuatii liniare este:

a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

.................................................am1x1 + am2x2 + ... + amnxn = bm

,

unde ai j sunt coeficienti reali, aij ∈ R, i = 1, m, j = 1, n; bi ∈ R,i = 1, m sunt termeni liberi iar xj sunt necunoscutele, j = 1, n.

Problema este de a determina xj astfel ıncat sa fie verificate toateecuatiile sistemului.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 2 / 52

Page 3: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Elemente de algebra liniara.Sisteme de ecuatii liniare

Multe din problemele economice, respectiv din aplicatiile matematiciiın alte domenii se reprezinta prin intermediul unor sisteme de ecuatiiliniare.

O ecuatie liniara este aceea care contine una sau mai multenecunoscute toate fiind la puterea I.

Forma generala a unui sistem de ecuatii liniare este:a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

.................................................am1x1 + am2x2 + ... + amnxn = bm

,

unde ai j sunt coeficienti reali, aij ∈ R, i = 1, m, j = 1, n; bi ∈ R,i = 1, m sunt termeni liberi iar xj sunt necunoscutele, j = 1, n.

Problema este de a determina xj astfel ıncat sa fie verificate toateecuatiile sistemului.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 2 / 52

Page 4: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Elemente de algebra liniara.Sisteme de ecuatii liniare

Multe din problemele economice, respectiv din aplicatiile matematiciiın alte domenii se reprezinta prin intermediul unor sisteme de ecuatiiliniare.

O ecuatie liniara este aceea care contine una sau mai multenecunoscute toate fiind la puterea I.Forma generala a unui sistem de ecuatii liniare este:

a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

.................................................am1x1 + am2x2 + ... + amnxn = bm

,

unde ai j sunt coeficienti reali, aij ∈ R, i = 1, m, j = 1, n; bi ∈ R,i = 1, m sunt termeni liberi iar xj sunt necunoscutele, j = 1, n.

Problema este de a determina xj astfel ıncat sa fie verificate toateecuatiile sistemului.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 2 / 52

Page 5: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Elemente de algebra liniara.Sisteme de ecuatii liniare

Multe din problemele economice, respectiv din aplicatiile matematiciiın alte domenii se reprezinta prin intermediul unor sisteme de ecuatiiliniare.

O ecuatie liniara este aceea care contine una sau mai multenecunoscute toate fiind la puterea I.Forma generala a unui sistem de ecuatii liniare este:

a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

.................................................am1x1 + am2x2 + ... + amnxn = bm

,

unde ai j sunt coeficienti reali, aij ∈ R, i = 1, m, j = 1, n; bi ∈ R,i = 1, m sunt termeni liberi iar xj sunt necunoscutele, j = 1, n.

Problema este de a determina xj astfel ıncat sa fie verificate toateecuatiile sistemului.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 2 / 52

Page 6: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Elemente de algebra liniara.Sisteme de ecuatii liniare

Multe din problemele economice, respectiv din aplicatiile matematiciiın alte domenii se reprezinta prin intermediul unor sisteme de ecuatiiliniare.

O ecuatie liniara este aceea care contine una sau mai multenecunoscute toate fiind la puterea I.Forma generala a unui sistem de ecuatii liniare este:

a11x1 + a12x2 + ... + a1nxn = b1

a21x1 + a22x2 + ... + a2nxn = b2

.................................................am1x1 + am2x2 + ... + amnxn = bm

,

unde ai j sunt coeficienti reali, aij ∈ R, i = 1, m, j = 1, n; bi ∈ R,i = 1, m sunt termeni liberi iar xj sunt necunoscutele, j = 1, n.

Problema este de a determina xj astfel ıncat sa fie verificate toateecuatiile sistemului.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 2 / 52

Page 7: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Transformari elementare ın matrici

Daca A este matricea coeficientilor, b coloana termenilor liberi si xcoloana necunoscutelor atunci sistemul se poate scrie sub forma uneiecuatii matriceale

A x = b

Pentru a introduce transformarea vom considera matricea Areprezentata ıntr-o forma ın care se evidentiaza liniile sale

A =

L1

L2...

Lm

Li = (ai1, ai2, ..., ain)

Principalele doua tipuri de transformari elementare sunt:

t1) ınmultirea unei linii cu o constanta diferita de 0 : λ, Li , λ Li → Li

t2) adunarea la elementele unei linii a elementelor corespunzatoareunei alte linii: Li , Lk : Li + Lk → Li

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 3 / 52

Page 8: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului

Regula dreptunghiului reprezinta un algoritm de reducere a coloanelor uneimatrici pentru a obtine o forma simplificata, echivalenta a acesteia. Ocoloana este redusa daca are toate elementele egale cu 0, mai putin unulegal cu 1. Elementul pe a carui pozitie va ramane valoarea 1 se numesteelement pivot. Regula dreptunghiului implementeaza o succesiune detransformari liniare pe linii.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 4 / 52

Page 9: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului:

1 Se alege un element pivot diferit de zero. Acesta se marcheaza prinıncercuire. Fie (i , j) pozitia acestuia.

2 Elementele de pe coloana pivotului vor deveni 0.

3 Elementele de pe linia pivotului se ımpart la elementul pivot.

4 Restul elementelor matricii se calculeaza dupa regula dreptunghiului,adica:

alk ←aijalk − aljaik

aij

unde alj si aik reprezinta ’colturile’ dreptunghiului format dinelementul pivot aij si elementul de calculat alk dupa cum se vede ınfigura de mai jos.

Daca pe linia pivotului avem elemente egale cu 0 atunci coloanarespectiva se poate copia; Daca pe coloana pivotului avem elementede 0 atunci putem copia linia respectiva.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 5 / 52

Page 10: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului:

1 Se alege un element pivot diferit de zero. Acesta se marcheaza prinıncercuire. Fie (i , j) pozitia acestuia.

2 Elementele de pe coloana pivotului vor deveni 0.

3 Elementele de pe linia pivotului se ımpart la elementul pivot.

4 Restul elementelor matricii se calculeaza dupa regula dreptunghiului,adica:

alk ←aijalk − aljaik

aij

unde alj si aik reprezinta ’colturile’ dreptunghiului format dinelementul pivot aij si elementul de calculat alk dupa cum se vede ınfigura de mai jos.

Daca pe linia pivotului avem elemente egale cu 0 atunci coloanarespectiva se poate copia; Daca pe coloana pivotului avem elementede 0 atunci putem copia linia respectiva.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 5 / 52

Page 11: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului:

1 Se alege un element pivot diferit de zero. Acesta se marcheaza prinıncercuire. Fie (i , j) pozitia acestuia.

2 Elementele de pe coloana pivotului vor deveni 0.

3 Elementele de pe linia pivotului se ımpart la elementul pivot.

4 Restul elementelor matricii se calculeaza dupa regula dreptunghiului,adica:

alk ←aijalk − aljaik

aij

unde alj si aik reprezinta ’colturile’ dreptunghiului format dinelementul pivot aij si elementul de calculat alk dupa cum se vede ınfigura de mai jos.

Daca pe linia pivotului avem elemente egale cu 0 atunci coloanarespectiva se poate copia; Daca pe coloana pivotului avem elementede 0 atunci putem copia linia respectiva.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 5 / 52

Page 12: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului:

1 Se alege un element pivot diferit de zero. Acesta se marcheaza prinıncercuire. Fie (i , j) pozitia acestuia.

2 Elementele de pe coloana pivotului vor deveni 0.

3 Elementele de pe linia pivotului se ımpart la elementul pivot.

4 Restul elementelor matricii se calculeaza dupa regula dreptunghiului,adica:

alk ←aijalk − aljaik

aij

unde alj si aik reprezinta ’colturile’ dreptunghiului format dinelementul pivot aij si elementul de calculat alk dupa cum se vede ınfigura de mai jos.

Daca pe linia pivotului avem elemente egale cu 0 atunci coloanarespectiva se poate copia; Daca pe coloana pivotului avem elementede 0 atunci putem copia linia respectiva.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 5 / 52

Page 13: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Regula dreptunghiului:

1 Se alege un element pivot diferit de zero. Acesta se marcheaza prinıncercuire. Fie (i , j) pozitia acestuia.

2 Elementele de pe coloana pivotului vor deveni 0.

3 Elementele de pe linia pivotului se ımpart la elementul pivot.

4 Restul elementelor matricii se calculeaza dupa regula dreptunghiului,adica:

alk ←aijalk − aljaik

aij

unde alj si aik reprezinta ’colturile’ dreptunghiului format dinelementul pivot aij si elementul de calculat alk dupa cum se vede ınfigura de mai jos.

Daca pe linia pivotului avem elemente egale cu 0 atunci coloanarespectiva se poate copia; Daca pe coloana pivotului avem elementede 0 atunci putem copia linia respectiva.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 5 / 52

Page 14: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 15: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 16: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 17: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;

sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 18: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;

sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 19: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 20: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Metoda eliminarii complete pentru rezolvarea sistemelor deecuatii

se scrie matricea extinsa a sistemului sub forma de tabel

se reduc coloanele matricii asociate sistemului alegand element pivotde pe o linie de pe care nu a mai fost ales pana cand nu se mai poatealege pivot;

se scrie sistemul de ecuatii echivalent (corespunzator matricii reduse)si se citeste solutia dupa caz:

sistem compatibil determinat;sistem compatibil nedeterminat;sistem incompatibil.

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 6 / 52

Page 21: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din multimea tuturor solutiilor unui sistem de ecuatii liniare se poateextrage o submultime de solutii care are o calitate speciala, si anumefiecare solutie are necunoscutele secundare toate cu valoarea egala cu0, iar necunoscutele principale cu valorile mai mari sau egale cu 0.Aceste solutii se numesc solutii admisibile de baza.

La o astfel de solutie admisibila de baza se poate ajunge utilizandmetoda eliminarii complete la care alegerea pivotului se face curespectarea unor conditii.

Sa presupunem ca sistemul considerat are m necunoscute principale,iar restul n−m sunt necunoscutele secundare. Presupunem si caprimele m necunoscute sunt cele principale. Asta revine la a spune catrebuie asociat sistemului un tabel care, dupa utilizareatransformarilor elementare, are urmatoarea forma, unde coloanele auo structura speciala:

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 7 / 52

Page 22: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din multimea tuturor solutiilor unui sistem de ecuatii liniare se poateextrage o submultime de solutii care are o calitate speciala, si anumefiecare solutie are necunoscutele secundare toate cu valoarea egala cu0, iar necunoscutele principale cu valorile mai mari sau egale cu 0.Aceste solutii se numesc solutii admisibile de baza.

La o astfel de solutie admisibila de baza se poate ajunge utilizandmetoda eliminarii complete la care alegerea pivotului se face curespectarea unor conditii.

Sa presupunem ca sistemul considerat are m necunoscute principale,iar restul n−m sunt necunoscutele secundare. Presupunem si caprimele m necunoscute sunt cele principale. Asta revine la a spune catrebuie asociat sistemului un tabel care, dupa utilizareatransformarilor elementare, are urmatoarea forma, unde coloanele auo structura speciala:

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 7 / 52

Page 23: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din multimea tuturor solutiilor unui sistem de ecuatii liniare se poateextrage o submultime de solutii care are o calitate speciala, si anumefiecare solutie are necunoscutele secundare toate cu valoarea egala cu0, iar necunoscutele principale cu valorile mai mari sau egale cu 0.Aceste solutii se numesc solutii admisibile de baza.

La o astfel de solutie admisibila de baza se poate ajunge utilizandmetoda eliminarii complete la care alegerea pivotului se face curespectarea unor conditii.

Sa presupunem ca sistemul considerat are m necunoscute principale,iar restul n−m sunt necunoscutele secundare. Presupunem si caprimele m necunoscute sunt cele principale. Asta revine la a spune catrebuie asociat sistemului un tabel care, dupa utilizareatransformarilor elementare, are urmatoarea forma, unde coloanele auo structura speciala:

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 7 / 52

Page 24: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Figure:Rodica Ioana LUNG () Cercetari operationale October 6, 2009 8 / 52

Page 25: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din tabel se observa ca prima solutie admisibila de baza este:

X1 =

β1

β2

...βm

0...0

, βi ≥ 0, i = 1, m

In continuare cu ajutorul regulii dreptunghiului vrem sa trecem de laaceasta solutie admisibila de baza la o alta solutie admisibila de baza.Consideram ca elementul pivot este α1,m+1 si efectuam transformareaelementelor care ne conduc la partea a doua a tabelului de mai sus.Prima conditie asupra pivotului este:

α1,m+1 6= 0 .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 9 / 52

Page 26: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din tabel se observa ca prima solutie admisibila de baza este:

X1 =

β1

β2

...βm

0...0

, βi ≥ 0, i = 1, m

In continuare cu ajutorul regulii dreptunghiului vrem sa trecem de laaceasta solutie admisibila de baza la o alta solutie admisibila de baza.

Consideram ca elementul pivot este α1,m+1 si efectuam transformareaelementelor care ne conduc la partea a doua a tabelului de mai sus.Prima conditie asupra pivotului este:

α1,m+1 6= 0 .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 9 / 52

Page 27: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din tabel se observa ca prima solutie admisibila de baza este:

X1 =

β1

β2

...βm

0...0

, βi ≥ 0, i = 1, m

In continuare cu ajutorul regulii dreptunghiului vrem sa trecem de laaceasta solutie admisibila de baza la o alta solutie admisibila de baza.Consideram ca elementul pivot este α1,m+1 si efectuam transformareaelementelor care ne conduc la partea a doua a tabelului de mai sus.Prima conditie asupra pivotului este:

α1,m+1 6= 0 .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 9 / 52

Page 28: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Necunoscutele principale sunt cele care au coloanele cu 0 si anumex2, x3..., xm+1 , celelalte fiind necunoscute secundare.Noua solutie admisibila de baza este:

X2 =

0

β2 −β1

α1,m+1α2,m+1

...

βm −β1

α1,m+1· αm,m+1

β1α1,m+1

0...

Solutia X2 este solutie admisibila de baza daca au loc relatiile:

β1

α1,m+1≥ 0, β2 −

β1

α1,m+1α2,m+1 ≥ 0, . . . , βm −

β1

α1,m+1· αm,m+1 ≥ 0

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 10 / 52

Page 29: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din prima inegalitate rezulta ca obligatoriu α1,m+1 > 0, deci pivotultrebuie sa fie pozitiv.

Daca α2,m+1≤ 0 a doua conditie este automat ındeplinita iar daca

α2,m+1 > 0 trebuie caβ2

α2,m+1≥ β1

α1,m+1.

In mod analog tragem concluzia ca daca αm,m+1 > 0 trebuie ca

βm

αm,m+1≥ β1

α1,m+1.

Din inegalitatile de mai sus deducem cea de a doua conditie esentialapentru pivot: raportul dintre termenul liber β1 si pivotul α1,m+1

este cel mai mic dintre toate rapoartele care se obtin ımpartindtermenii liberi la elementele pozitive corespunzatoare din

coloana pivotului, adicaβ1

α1,m+1este cel mai mic dintre rapoartele

βiαi ,m+1

,cuαi ,m+1 > 0.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 11 / 52

Page 30: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din prima inegalitate rezulta ca obligatoriu α1,m+1 > 0, deci pivotultrebuie sa fie pozitiv.Daca α2,m+1≤ 0 a doua conditie este automat ındeplinita iar daca

α2,m+1 > 0 trebuie caβ2

α2,m+1≥ β1

α1,m+1.

In mod analog tragem concluzia ca daca αm,m+1 > 0 trebuie ca

βm

αm,m+1≥ β1

α1,m+1.

Din inegalitatile de mai sus deducem cea de a doua conditie esentialapentru pivot: raportul dintre termenul liber β1 si pivotul α1,m+1

este cel mai mic dintre toate rapoartele care se obtin ımpartindtermenii liberi la elementele pozitive corespunzatoare din

coloana pivotului, adicaβ1

α1,m+1este cel mai mic dintre rapoartele

βiαi ,m+1

,cuαi ,m+1 > 0.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 11 / 52

Page 31: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din prima inegalitate rezulta ca obligatoriu α1,m+1 > 0, deci pivotultrebuie sa fie pozitiv.Daca α2,m+1≤ 0 a doua conditie este automat ındeplinita iar daca

α2,m+1 > 0 trebuie caβ2

α2,m+1≥ β1

α1,m+1.

In mod analog tragem concluzia ca daca αm,m+1 > 0 trebuie ca

βm

αm,m+1≥ β1

α1,m+1.

Din inegalitatile de mai sus deducem cea de a doua conditie esentialapentru pivot: raportul dintre termenul liber β1 si pivotul α1,m+1

este cel mai mic dintre toate rapoartele care se obtin ımpartindtermenii liberi la elementele pozitive corespunzatoare din

coloana pivotului, adicaβ1

α1,m+1este cel mai mic dintre rapoartele

βiαi ,m+1

,cuαi ,m+1 > 0.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 11 / 52

Page 32: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Elemente de algebra liniara

Solutii admisibile de baza

Din prima inegalitate rezulta ca obligatoriu α1,m+1 > 0, deci pivotultrebuie sa fie pozitiv.Daca α2,m+1≤ 0 a doua conditie este automat ındeplinita iar daca

α2,m+1 > 0 trebuie caβ2

α2,m+1≥ β1

α1,m+1.

In mod analog tragem concluzia ca daca αm,m+1 > 0 trebuie ca

βm

αm,m+1≥ β1

α1,m+1.

Din inegalitatile de mai sus deducem cea de a doua conditie esentialapentru pivot: raportul dintre termenul liber β1 si pivotul α1,m+1

este cel mai mic dintre toate rapoartele care se obtin ımpartindtermenii liberi la elementele pozitive corespunzatoare din

coloana pivotului, adicaβ1

α1,m+1este cel mai mic dintre rapoartele

βiαi ,m+1

,cuαi ,m+1 > 0.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 11 / 52

Page 33: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Programare liniaraFormularea problemei canonice.

O firma intentioneaza sa produca n tipuri de produse stiind ca poatesa utilizeze m tipuri de resurse. Se cunosc elementele: cantitatiledisponibile din fiecare resursa pe o perioada precizata (bi cantitateadin resursa Ri , i = 1, m), beneficiile unitare nete pentru fiecareprodus (cj pentru valorificarea unei bucati din Pj , j = 1, n),coeficientii tehnologici aij - care reprezinta cantitatea din resursa Ri

ce se foloseste pentru o unitate din produsul Pj , i = 1, m, j = 1, n.

Se cere sa se determine cantitatile ce urmeaza a fi realizate din fiecareprodus xj =?, j = 1, n, astfel ıncat sa se obtina beneficiul totalmaxim.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 12 / 52

Page 34: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Programare liniaraFormularea problemei canonice.

O firma intentioneaza sa produca n tipuri de produse stiind ca poatesa utilizeze m tipuri de resurse. Se cunosc elementele: cantitatiledisponibile din fiecare resursa pe o perioada precizata (bi cantitateadin resursa Ri , i = 1, m), beneficiile unitare nete pentru fiecareprodus (cj pentru valorificarea unei bucati din Pj , j = 1, n),coeficientii tehnologici aij - care reprezinta cantitatea din resursa Ri

ce se foloseste pentru o unitate din produsul Pj , i = 1, m, j = 1, n.

Se cere sa se determine cantitatile ce urmeaza a fi realizate din fiecareprodus xj =?, j = 1, n, astfel ıncat sa se obtina beneficiul totalmaxim.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 12 / 52

Page 35: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Programare liniaraFormularea problemei canonice.

Modelul matematic al acestei probleme este

xj =?, j = 1, n astfel ıncat

a11x1 + ...a1nxn = b1

..............................am1x1 + ... + amnxn = bm

sistem de restrictii

xj ≥ 0, j = 1, n conditii de nenegativitate

solutie admisibila

de baza.

f = c1x1 + ... + cnxn → maxima (functia scop, de eficienta).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 13 / 52

Page 36: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Programare liniara

Se cauta coloana necunoscutelor X astfel ıncatAX = b,X ≥ 0,f = C X → max

unde

A =

a11 a12 ... a1n

a21 a22 ... a2n

... ... ... ...am1 am2 ... amn

, X = (x1, x2, ..., xn)

si C = (c1, c2, ..., cn).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 14 / 52

Page 37: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 38: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 39: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 40: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 41: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 42: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

In sistemul de restrictii apar ecuatii si inecuatii

Algoritmul simplex NU se poate aplica direct

Se transforma inecuatiile ın ecuatii folosind variabile de compensare

Numarul variabilelor de compensare este egal cu numarul inecuatiilor

Cand adunam si cand scadem?

La fiecare inegalitate ≤ se aduna o variabila de compensare pozitivaLa fiecare inegalitate ≥ se scade o variabila de compensare pozitiva

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 15 / 52

Page 43: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Problema generala

Exemplu. Sa se rezolve urmatoarea problema de programare liniaragenerala:

2x1 + x2 + x3 ≤ 50−x1 + 4x2 + x4 ≥ 30x1 + x4 = 15

x3 + x4 = 20xj ≥ 0, j = 1, 4f = 2x3 − 5x4 → maxima

.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 16 / 52

Page 44: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Pentru rezolvarea problemei de programare liniara vom folosialgoritmul simplex (G.B.Dantzig 1947)

Solutiile problemei de programare liniara se afla ıntre solutiileadmisibile de baza ale sistemului de restrictii.

Se trece de la o solutie admisibila de baza la alta asigurandu-seimbunatatirea solutiei.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 17 / 52

Page 45: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Pentru rezolvarea problemei de programare liniara vom folosialgoritmul simplex (G.B.Dantzig 1947)

Solutiile problemei de programare liniara se afla ıntre solutiileadmisibile de baza ale sistemului de restrictii.

Se trece de la o solutie admisibila de baza la alta asigurandu-seimbunatatirea solutiei.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 17 / 52

Page 46: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Pentru rezolvarea problemei de programare liniara vom folosialgoritmul simplex (G.B.Dantzig 1947)

Solutiile problemei de programare liniara se afla ıntre solutiileadmisibile de baza ale sistemului de restrictii.

Se trece de la o solutie admisibila de baza la alta asigurandu-seimbunatatirea solutiei.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 17 / 52

Page 47: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Consideram cele doua solutii admisibile de baza:

X1 =

β1

β2

.βm

0.0

si X2 =

0

β2 −β1

α1,m+1α2,m+1

...

βm −β1

α1,m+1· αm,m+1

β1α1,m+1

0...0

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 18 / 52

Page 48: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

undeα1,m+1 > 0,

β1

α1,m+1= min

{βi

αi ,m+1

},

cuαi ,m+1 > 0.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 19 / 52

Page 49: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Care sunt valorile functiei obiectiv pentru cele doua solutii admisibile debaza?

f (X1)f (X2)

adica:

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 20 / 52

Page 50: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

f (X1) = C1β1 + C2β2 + ... + Cmβm.

f (X2) = C2

(β2 −

β1

α1,m+1α2,m+1

)+ ...

... + Cm

(βm −

β1

α1,m+1αm,m+1

)+ ...

... + Cm+1β1

α1,m+1.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 21 / 52

Page 51: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Rearanjam expresia lui f (X2) asfel:

f (X2) = C2β2 + ... + Cmβm + Cm+1β1

α1,m+1−

− β1

α1,m+1(C2α2,m+1 +... + Cmαm,m+1 ).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 22 / 52

Page 52: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Tinem cont de expresia lui f (X1) si avem:

f (X2) = f (X1)− C1β1 +

+β1

α1,m+1[Cm+1 − (C2 α2,m+1 +...

... + Cm αm,m+1 )]

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 23 / 52

Page 53: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Mai departe:

f (X2) = f (X1) +β1

α1,m+1·

·

Cm+1 −

not. fm+1︷ ︸︸ ︷C1α1,m+1 +C2 α2,m+1 +... + Cm αm,m+1

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 24 / 52

Page 54: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Asadar

f (X2) = f (X1) +β1

α1,m+1(Cm+1 − fm+1) .

Cand e X2 solutie mai buna decat X1? Atunci cand

β1

α1,m+1(Cm+1 − fm+1) > 0

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 25 / 52

Page 55: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Darβ1

α1,m+1≥ 0

asa ca trebuie sa avem:

(Cm+1 − fm+1) > 0

adicaCm+1 > fm+1.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 26 / 52

Page 56: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

In concluzie putem ımbunatatii solutia daca avem diferente

(Cm+1 − fm+1) > 0.

NU mai putem ımbunatatii solutia daca

Cj − fj ≤ 0, ∀j = 1, n

(conditiile de optimalitate)

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 27 / 52

Page 57: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Pas1 Se determina o solutie admisibila de baza;

Pas2 Se verifica daca sunt ındeplinite conditiile de optimalitate

1 Daca DA atunci se trece la pasul 3;2 Daca NU atunci se trece la o alta solutie admisibila de baza alegand

element pivot de pe coloana pe care diferenta Cj − fj este maxima. Sereia la pasul 2.

Pas3 Se citeste solutia optima si valoarea optima a functiei.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 28 / 52

Page 58: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Algoritmul simplex

Exemplu Sa se rezolve urmatoarea problema de programare liniara:x1 + 2x2 + 2x3 − x4 = 6x1 + x2 + 2x4 = 5

2x1 − x2 + x3 + x4 = 8xj ≥ 0, j = 1, 4f = 2x1 + x2 + 5x3 + 3x4 −→ max

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 29 / 52

Page 59: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 1

Maxim ∞:

Daca exista o singura coloana pentru care diferenta cj − fj e pozitiva iarelementele coloanei sunt negative ınseamna ca maximul functiei e infinit.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 30 / 52

Page 60: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 2

Solutii degenerate

Daca avem de ales ıntre doua rapoarte minime egale se aplica ordonarealexicografica:

se compara elmentele celor 2 linii pentru care rapoartele sunt egale,fiecare ımpartit la potentialul pivot

comparatia se face luand ın considerare ordonarea lexicografica, adicase compara componentele celor 2 linii doua cate 2 ıncepand de lastanga spre dreapta

se alege pivotul de pe linia pe care apare primul element mai micdecat corespondentul sau de pe cealalta linie.

solutia obtinuta este degenerata

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 31 / 52

Page 61: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 2

Solutii degenerate

Daca avem de ales ıntre doua rapoarte minime egale se aplica ordonarealexicografica:

se compara elmentele celor 2 linii pentru care rapoartele sunt egale,fiecare ımpartit la potentialul pivot

comparatia se face luand ın considerare ordonarea lexicografica, adicase compara componentele celor 2 linii doua cate 2 ıncepand de lastanga spre dreapta

se alege pivotul de pe linia pe care apare primul element mai micdecat corespondentul sau de pe cealalta linie.

solutia obtinuta este degenerata

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 31 / 52

Page 62: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 2

Solutii degenerate

Daca avem de ales ıntre doua rapoarte minime egale se aplica ordonarealexicografica:

se compara elmentele celor 2 linii pentru care rapoartele sunt egale,fiecare ımpartit la potentialul pivot

comparatia se face luand ın considerare ordonarea lexicografica, adicase compara componentele celor 2 linii doua cate 2 ıncepand de lastanga spre dreapta

se alege pivotul de pe linia pe care apare primul element mai micdecat corespondentul sau de pe cealalta linie.

solutia obtinuta este degenerata

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 31 / 52

Page 63: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 2

Solutii degenerate

Daca avem de ales ıntre doua rapoarte minime egale se aplica ordonarealexicografica:

se compara elmentele celor 2 linii pentru care rapoartele sunt egale,fiecare ımpartit la potentialul pivot

comparatia se face luand ın considerare ordonarea lexicografica, adicase compara componentele celor 2 linii doua cate 2 ıncepand de lastanga spre dreapta

se alege pivotul de pe linia pe care apare primul element mai micdecat corespondentul sau de pe cealalta linie.

solutia obtinuta este degenerata

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 31 / 52

Page 64: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 3

Solutii multiple

Atunci cand numarul zerourilor de pe linia cj − fj ın cazul unei solutiioptime este mai mare decat numarul necunoscutelor principaleınseamna ca problema poate avea mai multe solutii optime care sedetermina alegand element pivot pe rand de pe coloanele respective.

Solutia generala a problemei se scrie ca si combinatie liniara convexaa solutiilor determinate.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 32 / 52

Page 65: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 3

Solutii multiple

Atunci cand numarul zerourilor de pe linia cj − fj ın cazul unei solutiioptime este mai mare decat numarul necunoscutelor principaleınseamna ca problema poate avea mai multe solutii optime care sedetermina alegand element pivot pe rand de pe coloanele respective.

Solutia generala a problemei se scrie ca si combinatie liniara convexaa solutiilor determinate.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 32 / 52

Page 66: Curs Programare (1)

Matematici aplicate in economie. Cercetari operationale Programare liniara

Situatii speciale 4

Problema de minim

Daca se cere minimizarea functiei scop singura modificare apare laconditia de optimalitate: cj − fj ≥ 0, ∀j = 1, 2, ..., n

Se alege pivot de pe coloana pe care diferenta cj − fj este cea maimare in modul.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 33 / 52

Page 67: Curs Programare (1)

Problema de transport

Problema de repartitie (de transport)

O problema de programare liniara de o structura speciala este problema derepartitie. La o astfel de problema se evidentiaza:

grupul de restrictii care se ımparte ın doua

conditiile de negativitate

functia scop de obicei trebuie minimizata

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 34 / 52

Page 68: Curs Programare (1)

Problema de transport

Formularea economica

La m furnizori (producatori) se afla un tip de produs care va fi solicitat decatre n beneficiari (consumatori).Se cunosc:

cantitatile ai , i = 1, m disponibile existente la fiecare furnizorFi , i = 1, m,

cantitatea bj solicitata de fiecare beneficiar Bj

costurile unitare de transport de la fiecare furnizor la fiecare beneficiarcij de la Fi la Bj .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 35 / 52

Page 69: Curs Programare (1)

Problema de transport

Formularea economica

Se cer: cantitatile (xij ) ce urmeaza a fi transportate de la fiecare furnizorla fiecare beneficiar astfel ıncat:

toata cantitatea disponibila sa fie transportata;

toata cantitatea solicitata de fiecare beneficiar sa fie primita;

costul total al transportului sa fie minim.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 36 / 52

Page 70: Curs Programare (1)

Problema de transport

Formularea matematica

Cautam necunoscutele xij =? i = 1, m, j = 1, n astfel ıncat:

n∑

j=1xij = ai i = 1, m - toata cantitatea de la Fi sa fie transportata;

m∑

i=1xij = bj j = 1, n - toata cantitatea solicitata de Bj sa fie primita;

xij ≥ 0 i = 1, m, j = 1, n - conditii de nenegativitate;

f =m∑

i=1

n∑

j=1cijxij sa fie minima.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 37 / 52

Page 71: Curs Programare (1)

Problema de transport

Formularea matematica

Conditia de echilibrum

∑i=1

ai =n

∑j=1

bj

care arata ca totalul cantitatilor disponibile coincide cu totalul cantitatilornecesare solicitate.

Daca problema nu este echilibrata atunci ea se poate echilibra princonsiderarea unui furnizor fictiv ın primul caz sau a unui beneficiar fictiv ınal doilea caz astfel ıncat problema sa devina echilibrata.In continuare ne vom ocupa doar de cazul problemei echilibrate.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 38 / 52

Page 72: Curs Programare (1)

Problema de transport

Formularea matematica

Conditia de echilibrum

∑i=1

ai =n

∑j=1

bj

care arata ca totalul cantitatilor disponibile coincide cu totalul cantitatilornecesare solicitate.

Daca problema nu este echilibrata atunci ea se poate echilibra princonsiderarea unui furnizor fictiv ın primul caz sau a unui beneficiar fictiv ınal doilea caz astfel ıncat problema sa devina echilibrata.In continuare ne vom ocupa doar de cazul problemei echilibrate.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 38 / 52

Page 73: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv

Pentru rezolvarea problemei enuntate se va formula un algoritm numitalgoritmul distributiv, etapele caruia se parcurg comod prin considerareaunui tabel asociat problemei de transport. In tabelul cu doua intrari seevidentiaza pe linii datele referitoare la furnizori si pe coloane seevidentiaza datele referitoare la beneficiari.

La intersectia unei linii Fi cu coloana Bj apare ın tabel ceea ce se numeste,,casuta cu 4 camere” ın fiecare camera urmand a fi ınregistrat un anumitelement.

Bj

Ficij ui + vj

± xij

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 39 / 52

Page 74: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv

Pentru rezolvarea problemei enuntate se va formula un algoritm numitalgoritmul distributiv, etapele caruia se parcurg comod prin considerareaunui tabel asociat problemei de transport. In tabelul cu doua intrari seevidentiaza pe linii datele referitoare la furnizori si pe coloane seevidentiaza datele referitoare la beneficiari.

La intersectia unei linii Fi cu coloana Bj apare ın tabel ceea ce se numeste,,casuta cu 4 camere” ın fiecare camera urmand a fi ınregistrat un anumitelement.

Bj

Ficij ui + vj

± xij

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 39 / 52

Page 75: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Modelul matematic al problemei de transport xij =? i = 1, m, j = 1, n(m - furnizori, n - beneficiari) astfel ıncat:

n

∑j=1

xij = ai i = 1, m

m

∑i=1

xij = bj j = 1, n

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

f =m

∑i=1

n

∑j=1

cijxij → min.

cu conditia de echilibru:m

∑i=1

ai =n

∑j=1

bj

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 40 / 52

Page 76: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Modelul matematic al problemei de transport xij =? i = 1, m, j = 1, n(m - furnizori, n - beneficiari) astfel ıncat:

n

∑j=1

xij = ai i = 1, m

m

∑i=1

xij = bj j = 1, n

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

f =m

∑i=1

n

∑j=1

cijxij → min.

cu conditia de echilibru:m

∑i=1

ai =n

∑j=1

bj

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 40 / 52

Page 77: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Examinand modelul matematic rezulta ca avem mn necunoscute si m + necuatii. Vom avea m + n− 1 ecuatii principale (din cauza conditiei deechilibru rezulta ca o ecuatie e secundara)Din cele m n necunoscute numai m + n− 1 vor fi necunoscute principale,toate celelalte fiind necunoscute secundare.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 41 / 52

Page 78: Curs Programare (1)

Problema de transport

Rezolvarea problemei.

Determinarea unei solutii admisibile de baza:

Metoda coltului NV

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 42 / 52

Page 79: Curs Programare (1)

Problema de transport

Exemplu

La doi furnizori se afla acelasi tip de produs ın cantitatile: 80 buc. la primul (F1)si 140 buc. la al doilea (F2). Trei beneficiari solicita acest produs ın cantitatile60, 90, 70. Costurile unitare de transport sunt prezentate ın matricea:

C =(

2 3 54 1 2

)Sa se determine cantitatile ce vor fi transportate de la fiecare furnizor catre

fiecare beneficiar astfel ıncat cerintele sa fie ındeplinite.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 43 / 52

Page 80: Curs Programare (1)

Problema de transport

Rezolvarea problemei

xij =? i = 1, 2, j = 1, 3 astfel ıncat{x11 +x12 +x13 = 80

x21 +x22 +x23 = 140x11 +x21 = 60

x12 +x22 = 90x13 +x23 = 70

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

f = 2 x11 + 3 x12 + 5x13 + 4x21 + x22 + 2x23 → min

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 44 / 52

Page 81: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Tabelul asociat acestei probleme va fi:

B�F B1 B2 B3 Cant

Fi2

x11

3

x12

5

x1380

F24

x21

1

x22

2

x23140

Cant 60 90 70 230�230

Avem 2 3 = 6 - necunoscute; 2 + 3 = 5 - restrictii; 2 + 3− 1 = 4 -necunoscute principale

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 45 / 52

Page 82: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Determinarea unei solutii adimisibile de baza:

Metoda coltului NV

Intr-o casuta:

necunoscutele secundare se ınscriu cu punct

Casutele ocupate sunt casutele ce corespund necunoscutelor principale(acelea la care am ınscris valorile).

Casutele care corespund necunoscutelor secundare (cu ·) se numesccasute libere.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 46 / 52

Page 83: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Determinarea unei solutii adimisibile de baza:

Metoda coltului NV

Intr-o casuta:

necunoscutele secundare se ınscriu cu punct

Casutele ocupate sunt casutele ce corespund necunoscutelor principale(acelea la care am ınscris valorile).

Casutele care corespund necunoscutelor secundare (cu ·) se numesccasute libere.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 46 / 52

Page 84: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Determinarea unei solutii adimisibile de baza:

Metoda coltului NV

Intr-o casuta:

necunoscutele secundare se ınscriu cu punct

Casutele ocupate sunt casutele ce corespund necunoscutelor principale(acelea la care am ınscris valorile).

Casutele care corespund necunoscutelor secundare (cu ·) se numesccasute libere.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 46 / 52

Page 85: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Determinarea unei solutii adimisibile de baza:

Metoda coltului NV

Intr-o casuta:

necunoscutele secundare se ınscriu cu punct

Casutele ocupate sunt casutele ce corespund necunoscutelor principale(acelea la care am ınscris valorile).

Casutele care corespund necunoscutelor secundare (cu ·) se numesccasute libere.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 46 / 52

Page 86: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Determinarea unei solutii adimisibile de baza:

Metoda coltului NV

Intr-o casuta:

necunoscutele secundare se ınscriu cu punct

Casutele ocupate sunt casutele ce corespund necunoscutelor principale(acelea la care am ınscris valorile).

Casutele care corespund necunoscutelor secundare (cu ·) se numesccasute libere.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 46 / 52

Page 87: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv pentru rezolvarea problemelor de transport:

similar cu algoritmul simplex

Algoritmul distributiv:

Etapa 1. Se determina o solutie initiala de baza.

Etapa 2. Se verifica optimalitatea solutiei.

Etapa 3. Se ımbunatateste solutia.

Etapa 4. Se repeta etapele 2,3 pana cand toate conditiile de optimalitatevor fi ındeplinite.

Etapa 5. Se scrie solutia optima si se calculeaza valoarea minima a lui f .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 47 / 52

Page 88: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv pentru rezolvarea problemelor de transport:

similar cu algoritmul simplex

Algoritmul distributiv:

Etapa 1. Se determina o solutie initiala de baza.

Etapa 2. Se verifica optimalitatea solutiei.

Etapa 3. Se ımbunatateste solutia.

Etapa 4. Se repeta etapele 2,3 pana cand toate conditiile de optimalitatevor fi ındeplinite.

Etapa 5. Se scrie solutia optima si se calculeaza valoarea minima a lui f .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 47 / 52

Page 89: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv pentru rezolvarea problemelor de transport:

similar cu algoritmul simplex

Algoritmul distributiv:

Etapa 1. Se determina o solutie initiala de baza.

Etapa 2. Se verifica optimalitatea solutiei.

Etapa 3. Se ımbunatateste solutia.

Etapa 4. Se repeta etapele 2,3 pana cand toate conditiile de optimalitatevor fi ındeplinite.

Etapa 5. Se scrie solutia optima si se calculeaza valoarea minima a lui f .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 47 / 52

Page 90: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv pentru rezolvarea problemelor de transport:

similar cu algoritmul simplex

Algoritmul distributiv:

Etapa 1. Se determina o solutie initiala de baza.

Etapa 2. Se verifica optimalitatea solutiei.

Etapa 3. Se ımbunatateste solutia.

Etapa 4. Se repeta etapele 2,3 pana cand toate conditiile de optimalitatevor fi ındeplinite.

Etapa 5. Se scrie solutia optima si se calculeaza valoarea minima a lui f .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 47 / 52

Page 91: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Algoritmul distributiv pentru rezolvarea problemelor de transport:

similar cu algoritmul simplex

Algoritmul distributiv:

Etapa 1. Se determina o solutie initiala de baza.

Etapa 2. Se verifica optimalitatea solutiei.

Etapa 3. Se ımbunatateste solutia.

Etapa 4. Se repeta etapele 2,3 pana cand toate conditiile de optimalitatevor fi ındeplinite.

Etapa 5. Se scrie solutia optima si se calculeaza valoarea minima a lui f .

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 47 / 52

Page 92: Curs Programare (1)

Problema de transport

Verificarea optimalitatii

verificarea optimalitatii se face cu ajutorul unor necunoscute ,,duale”:ui → care corespund furnizorilorvj → care corespund beneficiarilor

solutii ale sistemului de ecuatii

ui + vj = cij , xij nec. principale (casute ocupate).

Conditia de optimalitate:

dupa rezolvarea sistemului trebuie sa aiba loc inegalitatile:

cij ≥ ui + vj , xij nec. secundare (casutele libere).

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 48 / 52

Page 93: Curs Programare (1)

Problema de transport

Verificarea optimalitatii

verificarea optimalitatii se face cu ajutorul unor necunoscute ,,duale”:ui → care corespund furnizorilorvj → care corespund beneficiarilor

solutii ale sistemului de ecuatii

ui + vj = cij , xij nec. principale (casute ocupate).

Conditia de optimalitate:

dupa rezolvarea sistemului trebuie sa aiba loc inegalitatile:

cij ≥ ui + vj , xij nec. secundare (casutele libere).

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 48 / 52

Page 94: Curs Programare (1)

Problema de transport

Verificarea optimalitatii

verificarea optimalitatii se face cu ajutorul unor necunoscute ,,duale”:ui → care corespund furnizorilorvj → care corespund beneficiarilor

solutii ale sistemului de ecuatii

ui + vj = cij , xij nec. principale (casute ocupate).

Conditia de optimalitate:

dupa rezolvarea sistemului trebuie sa aiba loc inegalitatile:

cij ≥ ui + vj , xij nec. secundare (casutele libere).

Exemplu

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 48 / 52

Page 95: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Etapa 3.

Daca cel putin o conditie de optimalitate nu este ındeplinitaci0j0 < ui0 + vj0 ınseamna ca solutia nu este optima si ea trebuieımbunatatita ın sensul ca necunocuta secundara xi0j0 care e zero, trebuiesa devina necunoscuta principala. Aceasta se realizeaza prin adunarea lazero a unei cantitati α unde α se determina astfel ıncat toate ecuatiile careau necunoscuta xi0j0 sa ramana satisfacute, xi0j0 = 0 + α.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 49 / 52

Page 96: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Daca se aduna α ıntr-un loc atunci α trebuie sa se scada din alt loc.

Scaderile se vor putea face doar de la necunoscutele care au valoripozitive (sunt necunoscute principale).

operatiile de adunare / scadere se vor face ıntr-un asa zis ,,ciclu decasute” format dintr-o succesiune de casute, prima de la care sepleaca fiind casuta libera, toate celelalte fiind casute ocupate.

In acest mod se obtine o noua solutie care este mai buna decatvechea solutie, adica valoarea functiei pentru noua solutie este maimica decat valoarea functiei pentru solutia anterioara.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 50 / 52

Page 97: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Daca se aduna α ıntr-un loc atunci α trebuie sa se scada din alt loc.

Scaderile se vor putea face doar de la necunoscutele care au valoripozitive (sunt necunoscute principale).

operatiile de adunare / scadere se vor face ıntr-un asa zis ,,ciclu decasute” format dintr-o succesiune de casute, prima de la care sepleaca fiind casuta libera, toate celelalte fiind casute ocupate.

In acest mod se obtine o noua solutie care este mai buna decatvechea solutie, adica valoarea functiei pentru noua solutie este maimica decat valoarea functiei pentru solutia anterioara.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 50 / 52

Page 98: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Daca se aduna α ıntr-un loc atunci α trebuie sa se scada din alt loc.

Scaderile se vor putea face doar de la necunoscutele care au valoripozitive (sunt necunoscute principale).

operatiile de adunare / scadere se vor face ıntr-un asa zis ,,ciclu decasute” format dintr-o succesiune de casute, prima de la care sepleaca fiind casuta libera, toate celelalte fiind casute ocupate.

In acest mod se obtine o noua solutie care este mai buna decatvechea solutie, adica valoarea functiei pentru noua solutie este maimica decat valoarea functiei pentru solutia anterioara.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 50 / 52

Page 99: Curs Programare (1)

Problema de transport

Rezolvarea problemei

Daca se aduna α ıntr-un loc atunci α trebuie sa se scada din alt loc.

Scaderile se vor putea face doar de la necunoscutele care au valoripozitive (sunt necunoscute principale).

operatiile de adunare / scadere se vor face ıntr-un asa zis ,,ciclu decasute” format dintr-o succesiune de casute, prima de la care sepleaca fiind casuta libera, toate celelalte fiind casute ocupate.

In acest mod se obtine o noua solutie care este mai buna decatvechea solutie, adica valoarea functiei pentru noua solutie este maimica decat valoarea functiei pentru solutia anterioara.

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 50 / 52

Page 100: Curs Programare (1)

Problema de transport

Exemplu

Sa se rezolve problema de transport data prin tabelul:

v1 = 1 v2 = 5 v3 = 10

u1 = 34 4

100

2 8

·3 13

· 100

u2 = 01 1

50

5 5− 250

2 10+ · 300 250

u3 = −33 −2

·2 2+ 0

7 7− 200

200

150 250 20050

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 51 / 52

Page 101: Curs Programare (1)

Problema de transport

Cazuri speciale

Solutii degenerate

Daca la calculearea solutiei initiale, la un furnizor si la un beneficiar seepuizeaza, respectiv se completeaza cantitatile in acelasi timp pentrua se evita ’pierderea’ unei necunoscute principale, una din casutele depe coloana sau linia respectiva se va completa cu 0 si va ficonsiderata casuta ocupata;

Daca in cadrul unui ciclu de casute avem mai multe valori minimeegale in casutele cu semn negativ, doar una din ele va deveni casutalibera, restul fiind completate cu zerouri si considerate casuteprincipale.

Daca unul din cazurile de mai sus apare, solutia obtinuta va fidegenerata (vom avea necunoscute principale cu valoarea 0).

Observatie

Numarul necunoscutelor principale trebuie sa fie constant (m + n− 1).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 52 / 52

Page 102: Curs Programare (1)

Problema de transport

Cazuri speciale

Solutii degenerate

Daca la calculearea solutiei initiale, la un furnizor si la un beneficiar seepuizeaza, respectiv se completeaza cantitatile in acelasi timp pentrua se evita ’pierderea’ unei necunoscute principale, una din casutele depe coloana sau linia respectiva se va completa cu 0 si va ficonsiderata casuta ocupata;

Daca in cadrul unui ciclu de casute avem mai multe valori minimeegale in casutele cu semn negativ, doar una din ele va deveni casutalibera, restul fiind completate cu zerouri si considerate casuteprincipale.

Daca unul din cazurile de mai sus apare, solutia obtinuta va fidegenerata (vom avea necunoscute principale cu valoarea 0).

Observatie

Numarul necunoscutelor principale trebuie sa fie constant (m + n− 1).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 52 / 52

Page 103: Curs Programare (1)

Problema de transport

Cazuri speciale

Solutii degenerate

Daca la calculearea solutiei initiale, la un furnizor si la un beneficiar seepuizeaza, respectiv se completeaza cantitatile in acelasi timp pentrua se evita ’pierderea’ unei necunoscute principale, una din casutele depe coloana sau linia respectiva se va completa cu 0 si va ficonsiderata casuta ocupata;

Daca in cadrul unui ciclu de casute avem mai multe valori minimeegale in casutele cu semn negativ, doar una din ele va deveni casutalibera, restul fiind completate cu zerouri si considerate casuteprincipale.

Daca unul din cazurile de mai sus apare, solutia obtinuta va fidegenerata (vom avea necunoscute principale cu valoarea 0).

Observatie

Numarul necunoscutelor principale trebuie sa fie constant (m + n− 1).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 52 / 52

Page 104: Curs Programare (1)

Problema de transport

Cazuri speciale

Solutii degenerate

Daca la calculearea solutiei initiale, la un furnizor si la un beneficiar seepuizeaza, respectiv se completeaza cantitatile in acelasi timp pentrua se evita ’pierderea’ unei necunoscute principale, una din casutele depe coloana sau linia respectiva se va completa cu 0 si va ficonsiderata casuta ocupata;

Daca in cadrul unui ciclu de casute avem mai multe valori minimeegale in casutele cu semn negativ, doar una din ele va deveni casutalibera, restul fiind completate cu zerouri si considerate casuteprincipale.

Daca unul din cazurile de mai sus apare, solutia obtinuta va fidegenerata (vom avea necunoscute principale cu valoarea 0).

Observatie

Numarul necunoscutelor principale trebuie sa fie constant (m + n− 1).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 52 / 52

Page 105: Curs Programare (1)

Problema de transport

Cazuri speciale

Solutii degenerate

Daca la calculearea solutiei initiale, la un furnizor si la un beneficiar seepuizeaza, respectiv se completeaza cantitatile in acelasi timp pentrua se evita ’pierderea’ unei necunoscute principale, una din casutele depe coloana sau linia respectiva se va completa cu 0 si va ficonsiderata casuta ocupata;

Daca in cadrul unui ciclu de casute avem mai multe valori minimeegale in casutele cu semn negativ, doar una din ele va deveni casutalibera, restul fiind completate cu zerouri si considerate casuteprincipale.

Daca unul din cazurile de mai sus apare, solutia obtinuta va fidegenerata (vom avea necunoscute principale cu valoarea 0).

Observatie

Numarul necunoscutelor principale trebuie sa fie constant (m + n− 1).

Rodica Ioana LUNG () Cercetari operationale October 6, 2009 52 / 52