Documente Academic
Documente Profesional
Documente Cultură
Tematic CURS
I.
II.
III.
IV.
V.
PROGRAMARE LINIAR
1.1.
1.2.
1.3.
1.4.
1.5.
2.2.
2.3.
Noiuni generale
3.2.
Modele deterministe
3.3.
Modele probabiliste
Concepte de baz
4.2.
4.3.
4.4.
4.5.
Tematic - SEMINAR
1. Probleme economice care conduc la modele de optimizare liniar
-
probleme de nutriie
metoda grafic
algoritmul simplex
modele deterministe
modele probabiliste
algoritmul Bellman-Kalaba
I.
PROGRAMARE LINIAR
1.1.
FORMA GENERAL
Se spune c o problem de programare liniar (P.P.L.) este prezentat sub forma general
dac este scris astfel:
[
Deci o P.P.L. este dat sub forma general dac, indiferent de scopul optimizrii (min sau
max), aceasta are restricii de toate felurile i variabile de toate semnele.
Observaie. Cnd se spune c
rezultatele
sau
sau
poate fi acceptat.
FORMA STANDARD
O problem de programare liniar este prezentat sub forma standard dac este scris astfel:
sau matricial:
[
unde:
( ),
Deci o P.P.L. este dat sub forma standard dac aceasta are toate restriciile egaliti i toate
variabilele nenegative.
FORME CANONICE
Forma canonic de max.
sau matricial:
[
sau matricial:
[
1.2.
Observaie. Orice numr real se poate scrie ca diferena a dou numere reale pozitive.
Etapa a-II-a Transformarea inegalitilor n egaliti - se face prin introducerea unor
variabile de compensare (egalizare, ecart) nenegative, prin adunarea la membrul cel mic al
fiecrei inegaliti:
dac
, atunci
dac
, atunci
echivalent
sau
1.3.
)
i nmulirea uneia dintre ele cu (-1).
]
(*)
unde:
( ),
Pentru o P.P.L. se poate ca mulimea soluiilor posibile s se afle ntr-una din situaiile:
1.
2.
3.
are cel puin 2 elemente, caz n care exist posibilitatea alegerii celei mai bune
soluii, printr-un procedeu sau algoritm specific.
Din punct de vedere practic, primele dou cazuri sunt lipsite de interes.
Teorema 1. Mulimea soluiilor posibile
este convex, adic odat cu oricare dou
puncte ale sale, segmentul care le unete aparine, de asemenea, mulimii:
( )
, segmentul [
]}
Teorema 2. Dac o P.P.L. (n variabile continue) admite mai mult de o soluie posibil,
atunci ea admite o infinitate de soluii posibile.
Soluii de baz
{
}
Fie
conine coeficienii necunoscutei
(**)
unde:
din
(
)
Observaie. Dac
, atunci se poate renuna la (m-r)
restricii, deoarece prezena sau absena lor nu influeneaz asupra existenei soluiei
problemei.
Definiia 2. O soluie posibil a P.P.L. (*) se numete soluie de baz dac ndeplinete
urmtoarele condiii:
1. are cel mult m componente strict pozitive, iar celelalte sunt nule.
2. coloanele matricei A corespunztoare componentelor strict pozitive sunt vectori liniar
independeni (din
).
Definiia 3. O soluie de baz a P.P.L. (*) se numete:
nedegenerat - dac are exact m componente strict pozitive;
degenerat dac are mai puin de m componente strict pozitive.
Vom nota cu
dac
Avem
Teorema 3. Dac
P.P.L. (*) satisface condiiile:
sau
. Dac
, atunci
se reduce la un punct.
Teorema 4. Orice soluie de baz a P.P.L. (*) este vrf al mulimii soluiilor posibile ale
problemei i reciproc.
Deci
Observaie.
Un punct
se numete punct extrem sau vrf al mulimii convexe
( ) astfel nct
exist nici o pereche de puncte
i
dac nu
) .
Geometric, este vrf al lui C orice punct care nu se poate afla pe nici un segment de dreapt
n interiorul segmentului.
Soluii optime
Definiia 4. O soluie posibil
dac satisface i cerina de optim:
Notm cu:
Avem
dac
)
[
sau
[
]
] ( )
( )}
se reduce la un punct.
Prin urmare, dac problema admite dou soluii optime distincte, atunci aceasta admite o
infinitate de soluii optime.
Teorema 6. Soluia optim a P.P.L. (*) se afl printre vrfurile mulimii soluiilor posibile
ale problemei.
Dac P.P.L. are optim finit, atunci acesta se afl ntr-un vrf al lui
(tronson sau
poliedru convex).
Dac P.P.L. are optim infinit, putem admite c acesta este atins n punctul de la infinit
(care aparine lui
numai cnd
este nemrginit).
, avnd astfel o
Prin urmare, att metoda grafic, ct i metoda algebric, presupun parcurgerea a dou etape:
Etapa I - etapa de enumerare a soluiilor de baz
Etapa a-II-a - etapa de evaluare a soluiilor de baz.
De fapt, aceasta este metoda de enumerare i evaluare a soluiilor, ntlnit i n alte clase
de probleme de optimizare.
METODA SIMPLEX
Scopul metodei simplex este de a alege soluia optim pornind de la un vrf oarecare al lui
, adic de la o soluie de baz, i trecnd apoi la un alt vrf care s fie o soluie mai bun
dect precedenta (n sensul optimului).
Algoritmul simplex va lua sfrit n dou situaii i anume:
s-a ajuns la cea mai bun soluie, constatndu-se dac problema are optim unic sau
multiplu;
nu se poate ajunge la cea mai bun soluie (pentru c nu exist) i se ia decizia c
problema nu are optim finit (problema are optim infinit).
ntrebrile la care trebuie s rspund orice metod de rezolvare a unei probleme de
optimizare, n particular i metoda simplex, sunt urmtoarele:
Cum pornim?
Cum trecem de la o soluie la alta?
Cum ne oprim?
Presupunem c problema de programare liniar (P.P.L.) este prezentat (adus)
la forma standard:
[
( ),
unde:
Observaie. Deoarece [
,
]
.
](
Presupunem
rezut c
are o infinitate de elemente, situaie n care P.P.L. prezint interes din punct de
vedere practic.
{
}, unde
este coloana
Presupunem
rangul), adic o submatrice
( ),
rezult c n A exist m coloane liniar independente (ca vectori din spaiul liniar (
Deoarece
a spaiului liniar (
)).
n baza
(
unde:
n baza B .
Observaie. n practic se urmrete ca baza iniial s fie format din vectorii unitari, adic
{
Fie
Deci
)
(
, unde:
) (
este:
Notm:
i cu
Prin urmare, diferenele corespunztoare coloanelor vectorilor bazei curente sunt nule.
CRITERIUL DE OPTIM
Dac toate diferenele
optim finit i
e soluie optim.
Pentru ca acest criteriu de optim s poat fi folosit indiferent de scopul optimizrii (max sau
min), diferenele se calculeaz:
MBUNTIREA SOLUIEI
CRITERIUL DE INTRODUCERE N BAZ
Dac exist un indice nebazic
pentru care
o nou soluie de baz cel puin la fel de bun ca i vechea soluie de baz (n sensul
optimului).
Dac exist mai multe diferene
corespunztor,
pentru care:
{
pentru care
, atunci se poate
obine o nou baz i, deci, o nou soluie de baz, eliminnd din vechea baz B vectorul
pentru care:
unde: (
determinat la criteriul de
intrare n baz.
Deci vectorul
. Cu alte cuvinte, nu
Observaie. Efectund rapoartele de la criteriul eliminrii din baz, se poate ntmpla ca:
1. S existe dou sau mai multe rapoarte minime egale, caz n care poate prsi baza
B oricare dintre vectorii care conduc la acest rezultat fr s fie afectat soluia
optim.
2. S nu existe nici un
(adic
pentru care
(P)
(1)
(D)
(2)
Problema (1) se numete primala, iar problema (2) se numete duala i reciproc. Perechea de
probleme (1) (2) se numete cuplu dual sau cuplu de probleme duale.
Teorem.
Duala dualei unei probleme de programare liniar este chiar problema de optimizare dat.
Altfel spus, duala dualei coincide cu primala.
Definiia 2. Se spune c o problem de programare liniar are restriciile concordante cu
funcia obiectiv, dac aceasta are forma de prezentare:
[
sau
Observaie.
Cel mai frecvent definiia dualitii sau a cuplului de probleme duale este dat prin
intermediul cuplului (P) (D) din definiia 1. n acest caz se introduce aa numitul concept de
dualitate simetric. Pornind de la dualitatea simetric se poate deduce apoi orice cuplu de
probleme duale, cupluri de dualitate nesimetric.
ntre problemele unui cuplu primal-dual exist anumite legturi precise a cror cunoatere
nseamn posibilitatea scrierii dualei oricrei probleme de programare liniar:
dac problema primal cere maximizarea funciei obiectiv, atunci n problema dual
se va cere minimizarea funciei obiectiv i reciproc;
numrul de restricii ale primalei indic numrul de variabile ale problemei duale i
reciproc;
numrul de variabile ale primalei indic numrul de restricii ale dualei i reciproc;
termenii liberi din primal devin coeficieni ai funciei obiectiv din dual i reciproc;
coeficienii funciei obiectiv din primal devin termeni liberi n dual i reciproc;
dac primala are matricea A a coeficienilor necunoscutelor sistemului de restricii,
atunci duala va avea ca matrice
),
).
(P)
(D)
relaiile:
(
Prin urmare:
dac soluia optim
problemei, atunci
dac soluia optim
atunci
dac o component
optim
dac o component
optim
Evident c fiecare dintre cele dou probleme ale cuplului dual (P) (D) poate fi soluionat
direct cu algoritmul simplex.
ntr-un astfel de context, se pun dou ntrebri:
1. poate fi dedus soluia uneia dintre probleme pe baza rezolvrii celeilalte?
2. dac rspunsul la prima ntrebare este afirmativ, care dintre probleme poate fi
soluionat mai rapid (mai eficient)?
Teorem.
Dac una din problemele duale (P) (D) are soluie optim, atunci soluia optim a celeilate
este dat de diferenele
i este
Se cunosc:
disponibilul depozitelor (oferta);
necesarul centrelor de consum (cererea);
costurile unitare de transport de la fiecare deposit la fiecare centru de
consum.
disponibilul depozitului
Notm cu
la centrul de consum
DEPOZITE
CENTRE DE CONSUM
Disponibil
Necesar
care satisfac:
restricii i
variabile.
Se demonstreaz c:
Prin urmare, orice soluie de baz a P.T. are cel mult componente nenule. Distingem:
soluie de baz nedegenerat - are exact
soluie de baz degenerat - are mai puin de
componente nenule;
componente nenule.
sau coloana
).
Observaii.
1. Pentru consumatorul fictiv sau pentru depozitul fictiv costurile unitare sunt nule
pentru c produsul neexistnd, nu se transport i, deci, nu produce cheltuieli.
2. n cazul problemelor neechilibrate, din punct de vedere economic, soluia optim nu
satisface (ca ofert sau ca cerere) pe toi partenerii.
va fi:
) (
nlocuind corespunztor, putem exprima costul total doar n funcie de variabila q, astfel:
( )
Determinm:
( )
. Cum
( )
2 Q cl
volumul optim al unei comenzi
cs
Q cs
Q
2 cl
T
perioada optim de aprovizionare
v
Q cs
C 2 Q cl cs gestiunea optim
);
- n care stocul satisface cererea (
- n care stocul nu mai satisface cererea (
).
n perioada
de stocare:
costul unitar
.
n perioada
avem lips de stoc (
nregistra cheltuielile medii de penalizare:
, deci se vor
Din relaiile:
nlocuind
) (
( ) punct staionar
).
unde:
stocul optim
gestiunea optim
unde: {
( )
( )
( )
( ( ))
sau
unde:
( )
Se cunosc :
Cazul discret
Variabila aleatoare care d excedentul de stoc are repartiia:
( ( )) ,
( )
( )
( )
( )
( )
( )
( ) i
mediilor
medie a cheltuielilor:
( )
( )
( )
(
(
)
)
( )
( )
Prin urmare, pentru a determina stocul optim trebuie s rezolvm sistemul de inecuaii:
{
(
(
)
)
( )
( )
( )
( )
(*)
Observaii.
1. Deoarece funcia de repartiie ( ) este nedescresctoare, din relaia (*) rezult c
este un minim absolut pentru funcia cost mediu.
)
( ), atunci ( )
2. Dac (
mediu are loc pentru dou valori i
.
)
( ), atunci
3. Dac (
mediu are loc pentru dou valori
(
i .
( )
( )
( )
Cazul continuu
Variabilele aleatoare excedent de stoc i lips de stoc au repartiiile:
( ( ))
( ( ))
( )
( )
( )
( )
( )
( )
( )
( )
iar
Observaii.
1.
( )
( )
( )
( )
4.1.
finit i
).
) dat de:
}
)(
)(
)(
)}
)(
( )
Distingem:
drum elementar un drum n care fiecare nod apare o singur dat;
drum neelementar - un drum care trece de dou sau mai multe ori prin acelai nod.
Un drum elementar care trece prin toate nodurile grafului se numete drum hamiltonian.
Lungimea unui drum este egal cu numrul arcelor care l formeaz.
Numrul de noduri la care se poate ajunge din nodul
i se noteaz ( ).
nodului
4.2.
Fie
}.
dat de relaiile:
( )
dat de relaiile:
, ( )
4.3.
Fie
}.
Algoritm 1.
Pas 1. Se construiete matricea arcelor A.
Pas 2. Se calculeaz succesiv puterile matricei A pn la
Observaie. Dac ne intereseaz doar existena drumurilor dintre noduri, nu i numrul lor,
atunci vom folosi nmulirea i adunarea boolean.
Algoritm 2.
Pas 1. Se construiete matricea arcelor A.
Pas 2. Pentru fiecare linie i, se adun boolean la aceasta toate liniile j pentru care
Pas 3. Se reia pasul 2 pn cnd, dup o aplicare a acestuia, matricea rmne aceeai.
Ultima matrice obinut este matricea drumurilor D.
Observaie. Aceti algoritmi sunt destul de leni n ceea ce privete aplicarea pe calculator.
Ambele procedee ne arat existena sau nu a unui drum ntre dou noduri, eventual ce
lungime are (
Matricea drumurilor
( )
dac
dac ( )
pentru care
4.4.
Fie
}.
( )
Teorem
Dac ntr-un graf orientat, fr circuite exist un drum hamiltonian, atunci acesta este unic.
Pas 3. Dac ( )
( )
Dac
STOP
se trece la pasul 4.
( )
Dac
( )
unde:
( )
,( )
( )
( )
( )
( )
Operaia de concatenare (&) (nmulire latin) respect regulile din nmulirea obinuit a
matricelor, cu urmtoarele precizri:
dac una din componentele participante la calcul este *, atunci rezultatul este *;
n caz contrar, rezultatul compunerii const n scrierea n continuare a vrfurilor
componente ale simbolurilor participante.
( )
4.5.
n marea majoritate a problemelor care pot fi modelate prin grafuri nu ne intereseaz numai
dac exist sau nu legturi ntre componentele reprezentate prin nodurile grafului, ci i
intensitatea acestora. Aceast intensitate are semnificaia unei valori numerice (pozitive sau
negative) asociate arcului corespunztor legturii a crei intensitate o msoar.
n aplicaiile economice aceast valoare poate fi:
lungimea drumului dintre dou localiti;
costul parcurgerii rutei reprezentate prin arcul corespunztor;
durata parcurgerii rutei respective;
cantitatea transportat pe ruta respectiv etc.
Una din problemele care poate aprea n aceste situaii este gsirea, pentru o anumit pereche
de noduri sau mai multe perechi, a drumului optim ntre acestea.
Pentru formalizarea problemei vom introduce noiunea de:
valoare a unui drum
) i o funcie
(
) ( )(
care asociaz fiecrui arc o valoare real, s se gseasc, pentru o pereche dat de noduri,
drumul (drumurile) de valoare optim (minim sau/i maxim) ntre cele dou noduri i
valoarea acestuia (acestora).
Deoarece majoritatea problemelor economice se modeleaz prin grafuri cu numr finit de
noduri, ne vom limita n continuare doar la acestea.
Din cauza varietii nelimitate a grafurilor posibile, nu exist un algoritm care s rezolve
orice problem, n timp util, dar s-au elaborat o mulime de algoritmi, fiecare fiind cel mai
eficace n anumite cazuri.
Algoritmul lui Bellman Kalaba
Algoritmul se aplic n grafuri finite care nu au circuite de valoare negativ (pentru o
problem de minim) sau care nu au circuite de valoare pozitiv (ntr-o problem de maxim) i
gsete drumurile de valoare minim (maxim) de la toate nodurile grafului la un nod
oarecare, fixat.
Dac dorim s cunoatem drumurile de valoare minim (maxim) ntre oricare dou noduri,
vom aplica algoritmul, pe rnd, pentru fiecare nod al grafului.
Fie
}.
, cu dimensiunea egal cu
( )
unde
), ( ) (
relaiile de recuren:
))
))
Pasul 3. Dup calcularea fiecrei linii noi, se compar elementele ei cu cele ale precedentei:
( )
dac
la nodul
se gsesc, ncepnd napoi de la ultima linie, pe care s-au obinut valorile finale, nodurile
care formeaz drumul cutat, unde:
Observaie. Pentru grafuri foarte mari, algoritmul necesit un volum mare de memorie, prin
necesitatea memorrii matricei M, care este greu de manipulat. Chiar dac, din cele
posibile, graful ar avea doar un procent foarte mic, matricea grafului va avea tot
memorat i analizat.
arce
poziii de