P. 1
Cercetari Operation Ale Optimizari Liniare

Cercetari Operation Ale Optimizari Liniare

|Views: 1,380|Likes:
Published by Izabella Cristina

More info:

Published by: Izabella Cristina on Jan 07, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/24/2013

pdf

text

original

Sections

  • Introducere
  • 1.1 Caracteristici esenţiale ale cercetării opera- ţionale
  • 1.2 Introducere în optimizare
  • 1.3. Modele tip de optimizare 15
  • 1.3 Modele tip de optimizare
  • Teoria problemelor de optimizare liniară cu restricţii
  • 2.1. Forme ale modelului de optimizare liniară cu restricţii 23
  • 2.1 Forme ale modelului de optimizare liniară cu res-tricţii
  • 2.2 Soluţii ale problemei de optimizare liniară cu res-tricţii
  • 2.3 Teoria poliedrelor, inegalităţi liniare şi progra- mare liniară
  • 2.5 Rezolvarea grafică a modelelor cu m restricţii şi două variabile
  • Metoda simplex
  • 3.1 Noţiuni introductive
  • 3.2 Bazele teoretice ale algoritmului simplex primal
  • 3.3 Rezolvarea modelelor care, iniţial, nu admit soluţii de bază
  • 3.4. Degenerare şi ciclare în aplicarea algoritmului simplex 75
  • 3.4 Degenerare şi ciclare în aplicarea algoritmului simplex
  • Teoria dualităţii
  • 4.1 Introducere în dualitate
  • 4.2 Formularea problemei duale
  • 4.3. Interpretarea economică a dualităţii 85
  • 4.3 Interpretarea economică a dualităţii
  • 4.4 Teoreme de dualitate
  • 4.5. Algoritmul simplex dual 91
  • 4.5 Algoritmul simplex dual
  • 4.6. Bazele teoretice ale algoritmului simplex dual 95
  • 4.6 Bazele teoretice ale algoritmului simplex dual
  • 4.8 Legătura dintre soluţiile unui cuplu dual
  • Reoptimizare
  • 5.1 Reoptimizarea în urma modificării termenului liber
  • 5.2 Reoptimizarea în urma modificării coefi- cienţilor funcţiei de scop
  • 5.3 Reoptimizarea în urma modificării matricei res- tricţiilor
  • Tipuri speciale de probleme de optimizare
  • 6.1 Programare discretă
  • 6.1.1 Bazele programării discrete
  • 6.1.2 Metode de tip tăietură. Metoda lui Gomory
  • 6.1.3 Programare dinamică discretă
  • 6.2 Programare liniară parametrică
  • 6.2.1 Parametrizarea membrului drept
  • 6.2.2 Parametrizarea funcţiei de scop
  • 6.3 Programare hiperbolică
  • 6.4. Programare multicriterială 157
  • 6.4 Programare multicriterială
  • Problema de transport
  • 7.1 Formularea problemei. Proprietăţi generale
  • 7.1.1 Proprietăţi ale matricei coeficienţilor
  • 7.1.2 Proprietăţi grafice ale problemei de transport
  • 7.1. Determinarea unei soluţii de bază 179
  • 7.1.3 Determinarea unei soluţii de bază
  • 7.1.4 Adaptarea algoritmului simplex
  • 7.1.5 Utilizarea problemei duale
  • 7.1. Algoritmul de transport 183
  • 7.1.6 Algoritmul de transport
  • 7.1. Probleme propuse şi rezolvate 185
  • 7.1.7 Probleme propuse şi rezolvate
  • Teoria jocurilor
  • 8.1 Introducere în teoria jocurilor
  • 8.2 Jocuri matriceale
  • 8.3 Strategii
  • 8.3.1 Strategii optime
  • 8.3.2 Strategii optime într-un joc matriceal simetric
  • 8.3.4 Strategii pure
  • 8.4 Principiul dominării
  • 8.5. Rezolvarea jocurilor matriceale 233
  • 8.5 Rezolvarea jocurilor matriceale
  • 8.5.1 Rezolvarea jocurilor matriceale cu punct şa
  • 8.5.2 Metode generale de rezolvare a jocurilor matriceale
  • 8.5.4 Rezolvarea jocurilor de tipul 2×m,(n×2)

i

i
“JATEK” — 2005/3/11 — 10:29 — page 1 — #1
i
i
i
i
i
i
11 martie 2005
i
i
“JATEK” — 2005/3/11 — 10:29 — page 2 — #2
i
i
i
i
i
i
2
i
i
“JATEK” — 2005/3/11 — 10:29 — page 3 — #3
i
i
i
i
i
i
Dedic această carte fiicelor mele,
Dalma şi Marietta
Prefaţă
Datorită posibilităţilor oferite în practică, programarea matematică
cunoaşte o dinamică spectaculoasă. Programarea matematică devine im-
perativă în determinarea soluţiilor pentru fenomenele din cele mai diverse
domenii social-economice şi pentru o varietate de probleme decizionale.
În acest sens, responsabilitatea revine celor care construiesc şi rezolvă mo-
dele ale fenomenelor, deoarece modelarea, rezolvarea şi interpretarea soluţi-
ilor obţinute trebuie să fie conforme cu realitatea obiectivă. Altfel ar apărea
erori cantitative.
Cartea prezintă în mod riguros, din punct de vedere matematic, teoria
modelelor de optimizare liniară cu restricţii. Sunt prezentate metode nu-
merice de rezolvare - algoritmul simplex şi metoda punctelor interioare.
De asemenea sunt tratate modele de optimizare rezolvabile cu algoritmul
simplex, teoria jocurilor matriceale şi modele speciale de optimizare liniară.
Cartea cuprinde, pe lângă prezentarea teoretică, un număr mare de probleme
rezolvate şi aplicative din domeniul economic.
Demonstraţiile prezentate, aparent, sunt lipsite de interes pentru citi-
torii nematematicieni, pentru cei interesaţi doar de aplicarea metodelor, însă
evidenţiază valoarea de adevăr a proprietăţilor şi a afirmaţiilor prezentate.
Noţiunile din algebra liniară şi analiza matematică necesare comprehensiunii
aspectelor tratate în carte fac obiectul Anexei 2.
Cartea este destinată studenţilor de la facultăţile de ştiinţe economice,
matematică, inginerie economică - inginerie şi management, adresându-se în
acelaşi timp şi unui grup larg de cititori dornici să se iniţieze în acest domeniu
sau să aprofundeze instrumente ştiinţifice de optimizare a diverselor probleme
cu care se confruntă în practica economică.
Mulţumesc referenţilor, doamnei conf. dr. Liana Lupşa, Universitatea
"Babeş-Bolyai" Cluj-Napoca şi conf. dr. Adrian Petrescu, Universitatea
"Petru Maior", Târgu-Mureş, pentru observaţiile pertinente de care am ţinut
seama în îmbunătăţirea calităţii volumului de faţă!
3
i
i
“JATEK” — 2005/3/11 — 10:29 — page 4 — #4
i
i
i
i
i
i
4
Mulţumesc prietenelor mele, Luminiţa Chiorean, pentru sugestiile date în
urma lecturării manuscrisului, respectiv Csizmadia Erzsébet, pentru ajutorul
substanţial acordat în tehnoredactarea computerizată!
Mulţumesc personalului de la Tipografia MasterDruck, în special d-lui
director Klosz Viktor şi d-lui Kuti Zoltán, pentru amabilitate şi sprijinul
acordat în editarea cărţii!
Mai cu seamă, rămân recunoscătoare familiei mele, soţului şi celor două
fiice, pentru contextul moral benefic: înţelegerea şi răbdarea fără de care
cartea nu ar fi prins contur!
Autoarea
i
i
“JATEK” — 2005/3/11 — 10:29 — page 5 — #5
i
i
i
i
i
i
Cuprins
1 Introducere 9
1.1 Caracteristici esenţiale ale cercetării opera-ţionale . . . . . . . 9
1.2 Introducere în optimizare . . . . . . . . . . . . . . . . . . . . 14
1.3 Modele tip de optimizare . . . . . . . . . . . . . . . . . . . . . 15
2 Teoria problemelor de optimizare liniară cu restricţii 21
2.1 Forme ale modelului de optimizare liniară cu res-tricţii . . . . 23
2.2 Soluţii ale problemei de optimizare liniară cu res-tricţii . . . . 24
2.3 Teoria poliedrelor, inegalităţi liniare şi programare liniară . . 28
2.4 Trecerea unei probleme de programare liniară cu restricţii de
la o formă matematică de prezentare la alta . . . . . . . . . . 33
2.5 Rezolvarea grafică a modelelor cu m restricţii şi două variabile 39
3 Metoda simplex 47
3.1 Noţiuni introductive . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Bazele teoretice ale algoritmului simplex primal . . . . . . . . 56
3.3 Rezolvarea modelelor care, iniţial, nu admit soluţii de bază . . 64
3.4 Degenerare şi ciclare în aplicarea algoritmului simplex . . . . 75
4 Teoria dualităţii 81
4.1 Introducere în dualitate . . . . . . . . . . . . . . . . . . . . . 81
4.2 Formularea problemei duale . . . . . . . . . . . . . . . . . . . 82
4.3 Interpretarea economică a dualităţii . . . . . . . . . . . . . . 85
4.4 Teoreme de dualitate . . . . . . . . . . . . . . . . . . . . . . . 86
4.5 Algoritmul simplex dual . . . . . . . . . . . . . . . . . . . . . 91
4.6 Bazele teoretice ale algoritmului simplex dual . . . . . . . . . 95
4.7 Determinarea soluţiilor problemei duale cu ajutorul ultimului
tabel simplex al problemei primale . . . . . . . . . . . . . . . 99
4.8 Legătura dintre soluţiile unui cuplu dual . . . . . . . . . . . . 104
5
i
i
“JATEK” — 2005/3/11 — 10:29 — page 6 — #6
i
i
i
i
i
i
6
5 Reoptimizare 109
5.1 Reoptimizarea în urma modificării termenului liber . . . . . . 110
5.2 Reoptimizarea în urma modificării coeficienţilor funcţiei de scop114
5.3 Reoptimizarea în urma modificării matricei res-tricţiilor . . . 118
6 Tipuri speciale de probleme de optimizare 125
6.1 Programare discretă . . . . . . . . . . . . . . . . . . . . . . . 125
6.1.1 Bazele programării discrete . . . . . . . . . . . . . . . 125
6.1.2 Metode de tip tăietură. Metoda lui Gomory . . . . . 129
6.1.3 Programare dinamică discretă . . . . . . . . . . . . . . 135
6.2 Programare liniară parametrică . . . . . . . . . . . . . . . . . 135
6.2.1 Parametrizarea membrului drept . . . . . . . . . . . . 137
6.2.2 Parametrizarea funcţiei de scop . . . . . . . . . . . . . 141
6.3 Programare hiperbolică . . . . . . . . . . . . . . . . . . . . . 149
6.4 Programare multicriterială . . . . . . . . . . . . . . . . . . . . 157
7 Problema de transport 171
7.1 Formularea problemei. Proprietăţi generale . . . . . . . . . . 171
7.1.1 Proprietăţi ale matricei coeficienţilor . . . . . . . . . . 176
7.1.2 Proprietăţi grafice ale problemei de transport . . . . . 176
7.1.3 Determinarea unei soluţii de bază . . . . . . . . . . . . 179
7.1.4 Adaptarea algoritmului simplex . . . . . . . . . . . . . 180
7.1.5 Utilizarea problemei duale . . . . . . . . . . . . . . . . 182
7.1.6 Algoritmul de transport . . . . . . . . . . . . . . . . . 183
7.1.7 Probleme propuse şi rezolvate . . . . . . . . . . . . . . 185
8 Teoria jocurilor 211
8.1 Introducere în teoria jocurilor . . . . . . . . . . . . . . . . . . 211
8.2 Jocuri matriceale . . . . . . . . . . . . . . . . . . . . . . . . . 213
8.3 Strategii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
8.3.1 Strategii optime . . . . . . . . . . . . . . . . . . . . . 216
8.3.2 Strategii optime într-un joc matriceal simetric . . . . . 224
8.3.3 Proprietăţi ale strategiilor optime şi ale valorii unui joc
matriceal . . . . . . . . . . . . . . . . . . . . . . . . . 225
8.3.4 Strategii pure . . . . . . . . . . . . . . . . . . . . . . . 227
8.4 Principiul dominării . . . . . . . . . . . . . . . . . . . . . . . 231
8.5 Rezolvarea jocurilor matriceale . . . . . . . . . . . . . . . . . 233
8.5.1 Rezolvarea jocurilor matriceale cu punct şa . . . . . . 233
8.5.2 Metode generale de rezolvare a jocurilor matriceale . . 237
8.5.3 Rezolvarea jocurilor matriceale prin reducere la modele
de optimizare liniară cu restricţii . . . . . . . . . . . . 240
8.5.4 Rezolvarea jocurilor de tipul 2 m, (n 2) . . . . . . 249
i
i
“JATEK” — 2005/3/11 — 10:29 — page 7 — #7
i
i
i
i
i
i
7
9 Metoda punctelor interioare 257
9.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
9.2 Metoda Karmarkar . . . . . . . . . . . . . . . . . . . . . . . . 260
9.3 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Anexa 1 273
Anexa 2 289
Anexa 3 297
Bibliografie 299
i
i
“JATEK” — 2005/3/11 — 10:29 — page 8 — #8
i
i
i
i
i
i
8
i
i
“JATEK” — 2005/3/11 — 10:29 — page 9 — #9
i
i
i
i
i
i
Capitolul 1
Introducere
1.1 Caracteristici esenţiale ale cercetării opera-
ţionale
Cercetarea operaţională este una dintre cele mai noi ramuri ale matema-
ticii aplicate. A apărut după 1950 şi, datorită aplicabilităţii largi şi a utilităţii
semnificative, cunoaşte o dezvoltare extrem de rapidă. La dezvoltarea sa re-
marcabilă, un rol semnificativ l-au jucat revoluţia industrială (prin creşterea
complexităţii problemelor) şi dezvoltarea spectaculoasă a tehnicii de calcul.
Cercetarea operaţională se ocupă cu determinarea deciziei optime în urma
rezolvării modelelor deterministice şi stohastice construite pentru studiul
fenomenelor din cele mai diverse domenii ale vieţii.
Scurt istoric
Primele activităţi în acest domeniu au apărut în timpul celui de-al doilea
Război Mondial, când ofiţerii forţelor militare aliate au efectuat analiza ope-
raţiilor militare prin construirea şi rezolvarea unor modele de optimizare
liniară [Mau]. Încă din perioada 1935-1937, oameni de ştiinţă şi cercetă-
tori au fost solicitaţi să-şi aducă contribuţia în vederea elaborării strategiilor
şi a studiu-lui problemelor de tactică militară. În 1938, A.P. Rowe este
conducătorul acestui grup în Bawdsey (Anglia), loc de lansare a cercetării
operaţionale. În anul 1942, căpitanul american W.D. Baker a creat grupul
ASWORG (Anti-Submarine Warfare Operations Research Group) care a de-
venit mai târziu ORG (Operational Research Group). În fruntea acestui
grup a fost invitat Philip M. Morse din Massachusetts şi William Shockley
de la Bell Laboratories (pentru contribuţia adusă la tranzistoare, va obţine
premiul Nobel).
9
i
i
“JATEK” — 2005/3/11 — 10:29 — page 10 — #10
i
i
i
i
i
i
10 1. Introducere
În paralel se poate observa propagarea acestor metode de lucru în diferite
ramuri ale economiei. S-a constatat că şi în domenii nemilitare pot fi formu-
late probleme asemănătoare, dar într-un alt context. Astfel, în 1941, Frank
Hitchcock [Hit] şi, în mod independent, în 1947, T.C. Koopmans [Koo] for-
mulează problema de transport. G. Stigler [Sti], în 1945, formulează un
model matematic pentru stabilirea hranei raţionale pentru animale. Prob-
lema gene-rală de programare liniară a fost studiată şi aplicată în 1947 de
G.B. Dantzig, Marshall Wood şi de asociaţii lor de la Departamentul Forţelor
Aeriene (U.S. Department of Air Force). Metoda elaborată este cunoscută
sub denumirea de metoda simplex.
Prima conferinţă de programare matematică, cunoscută ca "zero sympo-
sium", are loc în 1949.
Înainte de sfârşitul anilor 1950, exista deja o teorie bine dezvoltată a
programării liniare, a programării dinamice, a teoriei firelor de aşteptare şi a
teoriei stocării. Condiţii necesare de optim în programarea neliniară au fost
formulate de H.W. Kuhn şi A.W. Tucker [Kuh] în 1951.
Acest rezultat este independent de cel obţinut şi prezentat în teza de
doctorat a lui W. Karush [Kar] în 1939.
În ianuarie 1952 a fost rezolvat, pentru prima dată, pe calculator, un
model de programare liniară (National Bureau of Standards SEAC Machine).
Apare primul program comercial de programare liniară în anul 1954 (cu
ajutorul acestuia, o problemă de amestec în domeniul petro-chimic s-a rezol-
vat în 10 ore). R.E. Gomory [Gom] prezintă o metodă generală de rezolvare
a modelelor de programare în numere întregi în anul 1958.
Analiza circuitelor şi a reţelelor reprezenta dintotdeauna o problemă im-
portantă în electrotehnică. Unele noţiuni ale acestei teorii s-au dovedit ex-
trem de utile în teoria informaţiei, în cibernetică, în planificarea proiectelor de
cercetare şi de dezoltare. Borz Allen şi Hamilton dezvoltă programul PERT
(Program Evaluation and Review Technique) şi metoda drumului critic CPM
(Critical Path Method). PERT poate fi aplicat cu succes dacă incertitudinea
privind previziunea duratei activităţilor este mare şi se doreşte verificarea efi-
cace a timpului de rulare a proiectului. Proiectele de cercetare şi dezvoltare
intră în această categorie. PERT a fost folosit prima dată în Statele Unite
ale Americii, în 1958, în programul de rachete balistice ale flotei şi a redus
cu doi ani timpul prevăzut pentru lansarea rachetelor Polaris.
Pogramul CPM este extrem de util atunci când durata activităţilor poate
fi precizată (de exemplu, în urma unor experienţe anterioare), aceste durate
sunt flexibile (pot fi uşor modificate, de exemplu, prin schimbarea număru-
lui de angajaţi) şi se urmăreşte raportul dintre timpul şi costurile necesare
realizării planului. În general proiectele de construcţii şi de întreţinere sunt
de acest tip. Programele PERT şi CPM sunt utile în proiectare. Aceste pro-
grame nu sunt perfecte, nu pot fi aplicate fără verificarea ipotezelor, altfel
i
i
“JATEK” — 2005/3/11 — 10:29 — page 11 — #11
i
i
i
i
i
i
1.1. Caracteristici esenţiale ale cercetării operaţionale 11
rezultatele obţinute sunt eronate. În acest sens, pot fi consultate lucrările
[Wei], [Ken].
AV. Klee şi G.J. Minty [Kle], în 1972, arată că algoritmul simplex este
un algoritm de complexitate exponenţială. Alte exemple, privind eficienţa
computaţională a algoritmului, pot fi găsite în [Pap], [Len], [Dob].
În 1979, matematicianul rus L.G. Khachiyan [Kha] a publicat un algo-
ritm de complexitate polinomială pentru rezolvarea modelelor de optimizare
liniară, numit "algoritm elipsoidal". Acest algoritm are doar importanţă
teoretică, fiind ineficient în practică, după cum arată analizele comparative
făcute de McCall [McC] în 1980 şi Dantzig [Dan] în 1979.
N. Karmarkar, programator la AT&T Bell Laboratories, a dezvoltat al-
goritmul elipsoidal ca să devină eficient şi în practică. În 1984, Karmarkar
[Karm] prezintă un algoritm de complexitate polinomială pentru rezolvarea
modelelor liniare. A aplicat metoda punctelor interioare pentru rezolvarea
modelelor liniare la care a adăugat o analiză inovatoare. Astfel a obţinut un
algoritm de complexitate polinomială, eficient în practică, mai performant
decât algoritmul simplex în cazul modelelor de mari dimensiuni.
Metoda lui Karmarkar a fost utilizată de către Comanda Militară Ame-
ricană a Podurilor Aeriene (Military Airlift Command) pentru a determina
frecvenţa zborurilor şi tipul de aeronavă necesar planificării zborurilor. Mod-
elul liniar obţinut pentru studiul acestei probleme conţinea 150 000 de vari-
abile şi 12 000 de restricţii şi soluţia s-a obţinut într-o oră. Cu algoritmul
simplex o problemă cu o structură asemănătoare formată numai din 36 000
de variabile şi 10 000 de restricţii a fost rezolvată în 4 ore.
Testele preliminare au arătat că algoritmul Karmarkar este de 50 de ori
mai rapid decât algoritmul simplex, în cazul problemelor de mari dimensiuni.
Metoda punctelor interioare a fost introdusă în 1960 de către Fiacco
[Fia] şi McCormick, ca apoi să fie abandonată. Karmakar a readus în cen-
trul atenţiei această metodă. În prezent există sute de variante ale metodei
punctelor interioare şi au fost publicate peste 2000 de articole. Pentru studiul
acestei teorii se recomandă [Meg], [Nes], [Roo], [Gje], [Wri].
Impactul cercetării operaţionale
Impactul cercetării operaţionale asupra conducerii întreprinderilor şi a in-
stituţiilor este în continuă creştere. Măsura impactului nu poate fi comparată
cu nici o altă descoperire.
În 1972, E. Turban [Tur] a publicat un sondaj privind dimensiunea
aplicării metodelor cercetării operaţionale din anul 1969. Dintre 500 de com-
panii, considerate, după "Fortune", cele mai mari, au fost alese companii
industriale şi companii din toate categoriile de servicii (bănci, transport,
asigurări, comerţ). Au fost trimise 475 de chestionare pentru directorii şi
i
i
“JATEK” — 2005/3/11 — 10:29 — page 12 — #12
i
i
i
i
i
i
12 1. Introducere
conducătorii de companii. S-a constatat că, după analiza statistică şi simu-
lare, programarea liniară era metoda cea mai frecvent aplicată. Majoritatea
companiilor au folosit în aplicarea metodelor şi tehnica de calcul.
În 1977, Ledbetter şi Cox [Led] au publicat un sondaj asemănător privind
situaţia aplicării metodelor cercetării operaţionale în anul 1975. Au obţinut
un rezultat asemănător. Aşadar s-au confirmat rezultatele sondajului date
de Turban.
În 1976, Fabozzi şi Valente [Fab] publică rezultatul unui sondaj referitor
la anul 1974 în care s-au analizat domeniile de aplicare a programării liniare
şi a programării dinamice. Cercetătorii au ajuns la concluzia că aplicaţiile
cele mai importante se concretizează la determinarea amestecului de pro-
duse, la planificarea timpului de lucru, planificarea investiţiilor, planificarea
financiară, analiza bugetului, analiza unificării şi cumpărării companiilor.
Datorită impactului semnificativ, pe plan mondial, s-au format societăţi
naţionale şi internaţionale de cercetare operaţională. Astfel la 1 ianuarie
1959, cu participarea a peste 30 de ţări, s-a creat Federaţia Internaţională
de Cer-cetare Operaţională (IFORS). În anul 1952, a fost fondată Societatea
Ameri-cană de Cercetări Operaţionale (ORSA) (în anul 1987, pentru prima
dată în istoria societăţii, ocupă funcţia de preşedinte o doamnă, Judith S.
Liebman). A fost creat Institutul de Management în 1953 (TIMS). ORSA
scoate revista "Operations Research", iar TIMS, revista "Management Sci-
ence", iar cele două societăţi publică revistele "Mathematics of Operations
Research" şi "Interfaces". Aceste reviste sunt generoase în informaţii, pub-
licând anual, în peste 3000 de pagini, cele mai noi rezultate din domeniu. Re-
viste asemănătoare sunt editate şi în Anglia, Franţa, Italia, Japonia, Canada,
Germania. În 1995, prin unificarea celor două societăţi ORSA şi TIMS, s-a
format Institutul de Cercetări Operaţionale şi de Management (INFORMS).
O serie de rezultate remarcabile ale cercetării operaţionale au fost apreci-
ate cu premiul Nobel în Economie. De exemplu, în 1972, Sir John R. Hicks şi
Kenneth J. Arrow obţin premiul pentru contribuţiile aduse în teoria generală
a echilibrului economic; în anul 1973, Wassily Leontief obţine premiul pentru
dezvoltarea şi aplicarea modelelor input-output în problemele importante ale
economiei; în 1975, L.V. Kantorovich şi T.C. Koopmans obţin acest premiu
pentru contribuţia adusă la dezvoltarea teoriei alocării optime a resurselor; în
1990, H.M. Markowitz, Marton M. Miller şi Wiliam F. Sharpe obţin premiul
pentru munca de pionieriat în teoria economiei financiare; în 1994, John C.
Harsányi, John F. Nash şi Reinhard Selten obţin premiul pentru rezultatele
obţinute în analiza echilibrului în teoria jocurilor "necooperative".
i
i
“JATEK” — 2005/3/11 — 10:29 — page 13 — #13
i
i
i
i
i
i
1.1. Caracteristici esenţiale ale cercetării operaţionale 13
Obiectul cercetării operaţionale
Citind şi analizând literatura de specialitate, se poate observa că există
o serie de definiţii ale cercetării operaţionale. În continuare, prezentăm surse
bi-bliografice ce oferă asemenea definiţii: 1943, Morse şi Kimball [Mor]; 1978,
Charles J. Sippl şi Charles P. Sippl [Sip]; 1996, Hillier & Lieberman [Hil],
Ronald L. Rardin; 1998, [Rar] etc.
În concluzie, se poate spune că cercetarea operaţională este o ramură a
matematicii aplicate care se ocupă cu modelarea problemelor complexe de
inginerie, management, marketing, educaţie, sănătate (teoretic, din orice
domeniu al activităţii umane), analizează aceste modele cu scopul obţinerii
soluţiilor posibile şi aplică metodele analitice ale matematicii în scopul deter-
minării deciziilor (soluţiilor, politicilor, strategiilor) optime.
Fiind o ramură a matematicii aplicate, pentru studiul modelelor sunt
necesare cunoştinţe de matematici superioare, cum ar fi algebra liniară,
analiza matematică, analiza funcţională, teoria probabilităţilor, ecuaţii difer-
enţiale, geometrie diferenţială.
În continuare, prezentăm câteva noţiuni de bază.
Definiţia 1. [Bre] Prin operaţie se înţelege un ansamblu de acţiuni îndrep-
tate spre realizarea unui anumit scop. Orice operaţie are un singur scop care
poate fi compus din mai multe obiective.
Definiţia 2. [Bre] Se numeşte parte operativă mulţimea acelor persoane
sau factori care acţionează într-o operaţie pentru îndeplinirea scopului pro-
pus.
Definiţia 3. [Bre] Prin mijloace active înţelegem anumite resurse care
stau la dispoziţia părţii operative. Prin folosirea lor (de regulă cheltuielile
lor) partea operativă îşi realizează scopul.
Definiţia 4. Modul de utilizare a mijloacelor active se numeşte strategia
(sau politica) părţii operative.
Acele strategii care conduc la realizarea scopului se numesc strategii
optime .
Observaţia 1. Rezultatele unei operaţii depind de strategia aleasă, adică de
factorii controlabili şi de factori care nu pot fi influenţaţi de partea operativă
şi care formează condiţiile efectuării operaţiei.
În agricultură, de exemplu, condiţiile meteorologice reprezintă factorii
necontrolabili.
În studiul oricărei operaţii (indiferent de domeniul căruia îi aparţine), se
deosebesc patru etape fundamentale:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 14 — #14
i
i
i
i
i
i
14 1. Introducere
a) analiza operaţiei - căutarea şi descrierea mijloacelor de acţiune care
ar putea duce la atingerea scopului operaţiei;
b) construirea unui model matematic al operaţiei care să ofere o
descriere matematică a scopului;
c) estimarea şi compararea eficacităţii diverselor strategii pe baza
modelului construit;
d) studierea strategiilor optime şi a metodelor matematice cu
ajutorul cărora pot fi obţinute.
Pe de o parte, modelul trebuie să reflecte cât mai exact procesul real, pe
de altă parte, trebuie să fie cât mai simplu.
Pentru studiul modelării se recomandă [Morr], [Wil].
1.2 Introducere în optimizare
Există foarte puţine noţiuni ştiinţifice uzuale atât în ştiinţă, cât şi în
viaţa de toate zilele, precum noţiunea de "optim" şi derivatele acestuia.
Rădăcinile optimizării se regăsesc, de exemplu, în lucrările matematicia-
nului francez Jean Baptiste Joseph Fourier (1768-1830), Farkas Gyula (1847-
1930), matematician maghiar, Hermann Minkowski (1864-1909), matemati-
cian german. În 1762, Lagrange rezolvă o problemă de optimizare cu restricţii
simple formată din egalităţi. În mod independent, Farkas şi Minkowski au
studiat inegalităţile liniare. În 1918, Haar Alfred a generalizat rezultatul
obţinut de Minkowski-Farkas pentru cazul neomogen.
Se poate observa că, în toate domeniile vieţii, există tendinţa "opti-
mizării" activităţilor. Putem auzi de planificarea optimă a producţiei, alo-
carea optimă a resurselor, organizarea optimă a circulaţiei, repartizarea op-
timă a sarcinilor de producţie, planificarea optimă a invesiţiilor, organizarea
optimă a timpului, organizarea optimă a transportului, continuându-se ex-
emplele.
A avea o "activitate optimă" înseamnă de fapt a o alege, în condiţii bine
stabilite, din mulţimea activităţilor posibile, pe cea care este cea mai bună
dintr-un anumit punct de vedere.
Reţinem că obiectul optimului nu este întotdeauna bine definit.
Considerând problema alegerii candidaţilor în urma unui test, obţinem
un obiect optim subiectiv, fiindcă baremul de evaluare stabilit pentru test
poate influenţa ierarhia candidaţilor. Optimul poate fi ales şi după mai
multe criterii, caz în care avem un optim multicriterial.
Dintre problemele de optim în cadrul acestei cărţi vom studia doar pro-
blemele pentru care:
- criteriile de optim pot fi formulate cu funcţii reale sau funcţii vector de
n variabile reale liniare sau neliniare;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 15 — #15
i
i
i
i
i
i
1.3. Modele tip de optimizare 15
- întrebările decizionale sunt întrebări cantitative (cât este valoarea vari-
abilei x
j
, j ∈ ¦1, . . . , n¦ ?);
- variabilele decizionale sunt soluţiile unui sistem liniar de inecuaţii.
Aceste probleme se numesc probleme de programare matematică
sau optimizare matematică cu restricţii.
Teoria problemelor de optimizare cu restricţii este o ramură a cercetării
operaţionale care studiază optimizarea uneia sau a mai multor funcţii pe un
domeniu definit de o mulţime de restricţii date asupra variabilelor indepen-
dente, restricţii care pot exprima diferite condiţii economice.
După natura matematică a funcţiei (funcţiilor) de scop şi a restricţiilor
putem distinge diferite clase de probleme de optimizare cu restricţii, cum ar
fi, de exemplu: modele de optimizare liniară, neliniară, în numere întregi,
stohastică, parametrică, multicriterială etc.
Vom studia acele probleme de programare matematică care pot fi rezol-
vate cu algoritmul simplex, modele care pot fi reduse la modele de optimizare
liniară cu restricţii.
1.3 Modele tip de optimizare
În acest paragraf vom prezenta câteva exemple reprezentative de progra-
mare liniară.
(a) Un model de planificare a producţiei
O întreprindere produce n produse P
1
, . . . , P
n
, folosind m resurse
R
1
, . . . , R
m
(materii prime, maşini-unelte, forţă de muncă etc.) de care dis-
pune în cantităţile b
1
, . . . , b
m
.
Ştiind că producerea unei unităţi din produsul P
j
, j ∈ ¦1, . . . , n¦ aduce în-
treprinderii beneficiul c
j
şi necesită a
ij
unităţi din resursa R
i
, i ∈ ¦1, . . . , m¦,
se cere să se planifice producţia, adică să se stabilească în ce cantităţi
să se producă fiecare dintre cele n produse, astfel încât beneficiul total al
întreprinderii să fie maxim.
Notăm pentru fiecare j ∈ ¦1, . . . , n¦ cu x
j
cantitatea (în unităţi) din
produsul P
j
ce urmează a fi produsă.
Beneficiul total al întreprinderii este:
f(x
1
, . . . , x
n
) = c
1
x
1
+ +c
n
x
n
(1.1)
iar cantităţile x
1
, . . . , x
n
trebuie să verifice următorul sistem de inecuaţii:
_
¸
_
¸
_
n

j=1
a
ij
x
j
≤ b
i
, i = 1, m
x
j
≥ 0, j = 1, n
(1.2)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 16 — #16
i
i
i
i
i
i
16 1. Introducere
Avem modelul care constă în maximizarea funcţiei (1.1) pe mulţimea
soluţiilor sistemului (1.2).
Modelul poate fi reformulat după scopul urmărit.
- Dacă se cere producerea unor cantităţi minime x
0
1
, . . . , x
0
n
(respectiv
maxime y
0
1
, . . . , y
0
n
), atunci adaugăm restricţiile:
x
0
j
≤ x
j
, j = 1, n (sau x
j
≤ y
0
j
, j = 1, n)
- Dacă se cere ca volumul total al producţiei să nu coboare sub o anumită
limită x
0
, atunci din punct de vedere matematic avem condiţia:
x
0
≤ x
1
+ +x
n
- Scopul nu este neapărat maximizarea beneficiului. Scopul poate să fie
obţinerea unui venit maxim în valută sau realizarea unui venit maxim de
valută şi realizarea unui beneficiu maxim. Dacă d
j
este venitul de valută
după produsul P
j
, atunci avem: (c
1
+d
1
)u
1
+ + (c
n
+d
n
)u
n
(b) Un model de amestec
Un astfel de model este problema dietei (vezi paragraful 4.3).
Dacă într-o problemă de amestec a
ij
reprezintă cantitatea de substanţă s
i
,
i = 1, m conţinută într-o unitate din componenta P
j
, j = 1, n a amestecului
şi amestecul trebuie să conţină cel puţin b
i
unităţi din substanţa s
i
, i = 1, k
şi cel mult B
i
unităţi din substanţa s
i
, i = k + 1, m, atunci se cere realizarea
amestecului cu cost minim, ştiind că costurile unitare din componentele P
j
sunt c
j
, j = 1, n.
Notăm cu x
j
numărul de unităţi din componentele P
j
. Putem scrie:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
c
j
x
j
→ min
n

j=1
a
ij
x
j
≥ b
i
, i = 1, k
n

j=1
a
ij
x
j
≤ B
i
, i = k + 1, m
x
j
≥ 0, j = 1, n
(c) Problema rucsacului
Un turist vrea să-şi ia în rucsac câteva din obiectele X
1
, X
2
, . . . , X
n
. El
cunoaşte greutatea fiecărui obiect P
1
, . . . , P
n
şi volumul corespunzător (locul
ocupat de un obiect) V
1
, . . . , V
n
. Turistul nu poate duce o greutate totală mai
i
i
“JATEK” — 2005/3/11 — 10:29 — page 17 — #17
i
i
i
i
i
i
1.3. Modele tip de optimizare 17
mare decât P, iar volumul maxim al rucsacului este V. Fiecare obiect are o
valoare subiectivă k
1
, . . . , k
n
.
Ce obiecte trebuie alese pentru a obţine o utilitate totală maximă?
Notăm cu x
i
valorile asociate obiectelor X
i
. Vom avea x
i
= 1 dacă obiec-
tul X
i
este pus în rucsac, respectiv x
i
= 0 în caz contrar.
Modelul matematic ataşat problemei este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

i=1
x
i
k
i
→ max
n

i=1
P
i
x
i
≤ P
n

i=1
V
i
x
i
≤ V
x
i
∈ ¦0, 1¦, i ∈ 1, n
Modelul obţinut este un model discret, un model de programare în numere
întregi.
(d) Model de alocare a resurselor
Să se repartizeze n resurse, notate cu R
1
, R
2
, . . . , R
n
pe n activităţi
A
1
, A
2
, . . . , A
n
, astfel încât:
- fiecare resursă să fie repartizată la câte o singură activitate;
- fiecărei activităţi să i se repartizeze câte o singură resursă.
Se introduce un criteriu de alegere a "posibilităţii optime". În acest scop
se introduc anumite costuri ce corespund diferitelor grupe formate din câte
o resursă şi câte o activitate. Astfel, cuplului (R
i
, A
j
) format din resursa R
i
,
i = 1, 2, . . . , n şi din activitatea A
j
, j = 1, 2, . . . , n îi corespunde valoarea C
ij
numită costul repartizării resursei R
i
pe activitatea A
j
. Pentru fiecare repar-
tizare a celor n resurse pe cele n activităţi, în condiţiile precizate mai sus, va
corespunde în acest mod un cost total, egal cu suma costurilor repartizărilor
diferitelor cupluri ce formează repartizarea dată.
Se cere repartizarea resurselor pe activităţi, astfel încât costul total să fie
minim (maxim), în funcţie de natura problemei propuse spre rezolvare.
Se introduc variabilele x
ij
, i, j ∈ ¦1, 2, . . . , n¦ definite astfel: x
ij
= 1,
dacă resursa R
i
este repartizată pe activitatea A
j
şi x
ij
= 0. În caz contrar,
i
i
“JATEK” — 2005/3/11 — 10:29 — page 18 — #18
i
i
i
i
i
i
18 1. Introducere
păstrând aceste notaţii, modelul matematic al problemei este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

i=1
n

j=1
c
ij
x
ij
→ min
n

i=1
x
ij
= 1, pentru i = 1, n
n

j=1
x
ij
= 1, pentru j = 1, n
x
ij
∈ ¦0, 1¦, pentru i = 1, n şi j = 1, n
(e) Problema de transport
Fie m centre de aprovizionare (depozitare) notate cu A
1
, . . . , A
m
şi n
centre de consum (beneficiari) notate cu B
1
, . . . , B
n
.
Dacă un produs omogen este depozitat în cantităţile a
i
, i = 1, m în
centrele A
i
şi este cerut de către beneficiari în cantitatea b
j
, j = 1, n, iar
costurile unitare de transport de la centrul A
i
la beneficiarul B
j
sunt egale
cu c
ij
,
atunci se cere să se organizeze transportul, astfel încât cheltuielile de
transport să fie minime!
Dacă notăm cu x
ij
cantitatea de produs care va fi transportată de la
furnizorul i la consumatorul j, atunci, matematic, putem descrie problema
cu următorul model:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
m

i=1
n

j=1
c
ij
x
ij
→ min
n

j=1
x
ij
≤ a
i
, i = 1, m
m

i=1
x
ij
≥ b
j
, j = 1, n
x
ij
≥ 0, i = 1, m, j = 1, n
c
ij
≥ 0, i = 1, m, j = 1, n
m

i=1
a
i

n

j=1
b
j
.
(1.3)
Funcţia obiectiv reprezintă evident cheltuielile totale; prin urmare, scopul
constă în minimizarea acestora.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 19 — #19
i
i
i
i
i
i
1.3. Modele tip de optimizare 19
(f ) O problemă de atribuire
Fie m tipuri de maşini, al căror timp de funcţionare este respectiv egal cu
t
1
, . . . , t
i
, . . . , t
m
unităţi de timp. Cu aceste maşini se pot produce n tipuri de
produse, planificate într-un număr de r
1
, . . . , r
j
, . . . , r
n
. Timpul λ
ij
, în care
maşina de tip i produce un produs de tip j, variază în funcţie de alegerea
tipului de maşină pe care este fabricat produsul. Costurile de fabricaţie pot
varia şi în funcţie de perechile (i, j), dar nu sunt neapărat proporţionale cu
timpul λ
ij
. Dacă se notează cu c
ij
costurile de fabricaţie, atunci se pune
problema determinării unui plan de producţie pentru realizarea produselor
în cantităţile menţionate, cu un cost total minim.
Dacă notăm cu x
ij
numărul unităţilor din produsul j fabricate pe maşina
de tip i, atunci modelul acestei probleme va fi:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
m

i=1
n

j=1
c
ij
x
ij
→ min
n

j=1
λ
ij
x
ij
≤ t
i
, pentru i = 1, m
m

i=1
x
ij
= r
j
, pentru j = 1, n
x
ij
≥ 0, pentru i = 1, m şi j = 1, n
Se poate observa că modelul prezentat este o generalizare a modelului
pro-blemei de transport.
(g) Generalizarea problemei de transport
Într-o staţie cu m garaje sunt t
1
, . . . , t
i
, . . . , t
m
camioane cu aceleaşi ca-
pacităţi de transport. Într-o anumită zi se solicită f
1
, . . . , f
k
, . . . , f
s
camioane
de către beneficiari pentru transportarea unui produs omogen care poate fi
încărcat de la n depozite. La un depozit se pot încărca, în acelaşi timp, un
număr de r
1
, . . . , r
j
, . . . , r
n
camioane. Costurile de transport se modifică în
funcţie de drumul parcurs de camioane, adică depinde de modul de grupare
a indicilor (i, j, k). Notând cu c
ijk
aceste costuri, se cere construirea planului
de dirijare în condiţiile menţionate, astfel încât costul total de transport să
fie minim.
Dacă se notează cu x
ijk
numărul camioanelor dirijate de la garajul i la
depozitul j şi la beneficiarul k, atunci modelul acestei probleme este:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 20 — #20
i
i
i
i
i
i
20 1. Introducere
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
m

i=1
n

j=1
s

k=1
c
ijk
x
ijk
→ min
n

j=1
s

k=1
x
ijk
= t
i
, i = 1, m
m

i=1
s

k=1
x
ijk
= r
j
, j = 1, n
m

i=1
n

j=1
x
ijk
= f
k
, k = 1, s
x
ijk
≥ 0, pentru i = 1, m; j = 1, n şi k = 1, s
(h) Planificarea investiţiilor
Fie o societate care dispune de o sumă de S unităţi monetare, sumă care
poate fi folosită în diverse activităţi notate cu ¦1, 2, . . . n¦.
Dacă investiţia la activitatea j aduce un beneficiu b
j
u.m., atunci se cere
determinarea unui plan de investiţii cu beneficiu total maxim.
Dacă se notează cu x
j
, j = 1, n suma investită în activitatea j, atunci
modelul matematic al problemei este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) =

n
j=1
b
j
x
j
→ max
n

j=1
x
j
≤ S, j = 1, n
x
j
≥ 0, j = 1, n
i
i
“JATEK” — 2005/3/11 — 10:29 — page 21 — #21
i
i
i
i
i
i
Capitolul 2
Teoria problemelor de
optimizare liniară cu restricţii
Problema generală de programare liniară a fost formulată pentru prima
dată în anul 1939 de către L.V. Kantorovici ([Kan]) şi a fost prezentată împre-
ună cu o metodă de rezolvare, numită metoda "multiplicatorilor rezolvanţi".
Kantorovici recunoaşte că o serie de probleme economice pot fi descrise cu
acelaşi model matematic şi pentru aceste modele pot fi elaborate metode
numerice de rezolvare.
În 1941, Frank Hitchcock ([Hit]) a formulat modelul de transport (care, de
asemenea, este un model special de programare liniară). O analiză riguroasă
a problemei a fost efectuată de T.C. Koopmans ([Koop]), în 1949. George
Stigler ([Sti]), în 1945, formulează un model matematic pentru stabilirea
hranei raţionale pentru animale.
Toate aceste modele împreună cu alte modele speciale din timpul celui de
al doilea Război Mondial arată necesitatea elaborării unor metode eficiente
de rezolvare numerică ale acestora.
O importanţă deosebită pentru programarea liniară a constituit-o metoda
simplex elaborată în 1947 de către George Dantzig [Dant]. Pentru de-
scoperirea şi dezvoltarea programării liniare, în 1976, Dantzig a primit pre-
miul naţional al Statelor Unite ale Americii.
Noţiunea de dualitate a fost introdusă de către John von Neumann în
1947 şi a fost publicată la scurt timp în lucrarea cu titlul "On maximization
problem", Institute for Advanced Study, Princetown, New Jersey, noiembrie,
1947. Neumann recunoaşte importanţa conceptului de dualitate, instrumen-
tul matematic care uneşte teoria jocurilor cu teoria problemelor de optimizare
liniară cu restricţii.
O teoremă explicită de dualitate a fost publicată şi demonstrată de către
21
i
i
“JATEK” — 2005/3/11 — 10:29 — page 22 — #22
i
i
i
i
i
i
22 1. Introducere
Gale, Kuhn şi Tucker în 1951, capitolul 19 din [Dant].
Metoda simplex nu acoperă în întregime problema legată de rezolvarea
numerică a problemelor de optimizare liniară cu restricţii. Această metodă
nu are o variantă de complexitate polinomială.
În 1979, matematicianul rus Leonid Khachiyan [Kha] publică un algoritm
de complexitate polinomială pentru rezolvarea modelelor liniare. Algoritmul
diferă de metoda simplex, folosindu-se de un şir de elipsoide care conduc
spre soluţia optimă a modelului. Din punct de vedere teoretic, rezultatul
este semnificativ, dar practic nu înlocuieşte algoritmul simplex.
În 1984, Narendra Karmarkar [Karm] publică un alt algoritm care
foloseşte sfere şi geometrie proiectivă pentru construirea unui şir care con-
verge către soluţia optimă a problemei de optimizare liniară cu restricţii.
Modelul matematic de programare liniară utilizat în reprezentarea unui
sistem economic este construit dintr-un ansamblu de relaţii liniare, dintre
care una reflectă obiectivul urmărit, iar celelalte cuprind restricţiile eco-
nomice sau tehnologice.
Unde putem aplica modelul de programare liniară?
Acest model acoperă o clasă de probleme de mare importanţă practică,
cum sunt cele de planificare, organizare, amestec, transporturi, investiţii,
reparaţii şi altele.
O serie de probleme, care nu sunt probleme de programare liniară, pot fi
reduse prin transformări convenabile la acest tip de model.
O altă clasă de probleme, care nu sunt liniare, pot fi rezolvate prin in-
termediul unui şir de modele liniare, ale căror soluţii determină un şir care
admite un subşir convergent către soluţia optimă a modelului considerat.
Faptul că, într-un model de programare liniară, funcţia de scop este
liniară atrage după sine două proprietăţi importante. Pe de o parte, valorile
variabilelor independente din funcţia de scop sunt proporţionale cu valoarea
variabilei respective (dacă costurile unitare de producţie reprezintă x u.m.
pentru un produs p fixat, atunci pentru n produse vor fi de n ori mai mare)
- adică are loc proprietatea de proporţionalitate.
Pe de altă parte, valorile componentelor funcţiei de scop sunt indepen-
dente între ele (dacă se produc n produse, atunci costurile de producţie ale
produsului p
i
nu sunt influenţate de costurile de producţie ale produsului
p
j
). Această proprietate este cunoscută ca proprietatea de aditivitate.
Pe lângă proprietăţile prezentate, un model liniar, care descrie un
fenomen economic, o problemă practică, trebuie să verifice proprietatea de
divizibilitate şi certitudine.
Prin proprietatea de divizibilitate se înţelege că variabilele pot lua şi va-
lori raţionale. Modelele în care variabilele pot lua doar valori întregi vor fi
prezentate în paragraful 6.1.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 23 — #23
i
i
i
i
i
i
2.1. Forme ale modelului de optimizare liniară cu restricţii 23
Proprietatea de certitudine înseamnă că toate datele de intrare (coefi-
cienţii funcţiei de scop, elementele matricei restricţiilor, termenii liberi din
membrul drept al restricţiilor) sunt cunoscute apriori.
Pentru rezolvarea numerică a problemelor de optimizare liniară cu re-
stricţii sunt necesare cunoştinţe de algebră liniară (v. Anexa2).
2.1 Forme ale modelului de optimizare liniară cu
res-tricţii
La modelarea unui fenomen în general este folosit un număr mare de
variabile şi modelul este bine definit doar în cazul în care aceste variabile pot
fi pozitive, negative sau chiar de semn variabil.
Modelul matematic al unui fenomen este un model matematic al unei
probleme de optimizare liniară cu restricţii, dacă este format dintr-un
anumit număr de restricţii date asupra variabilelor independente (care sunt
liniare şi pot fi inegalităţi sau egalităţi) şi o funcţie de scop care este de
asemenea liniară. Problema care se pune este determinarea valorii optime a
funcţiei de scop pe domeniul determinat de aceste restricţii.
Definiţia 2.1.1. Forma generală a problemei de optimizare liniară cu res-
tricţii prin definiţie este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = c
1
x
1
+c
2
x
2
+c
3
x
3
→ min / max
A
11
x
1
+A
12
x
2
+A
13
x
3
≤ b
1
A
21
x
1
+A
22
x
2
+A
23
x
3
= b
2
A
31
x
1
+A
32
x
2
+A
33
x
3
≥ b
3
x
1
i
≥ 0, i = 1, l x
2
j
≤ 0, j = l + 1, r x
3
k
, k = r + 1, n de semn oarecare
unde:
A =
_
_
A
11
A
12
A
13
A
21
A
22
A
23
A
31
A
32
A
33
_
_
∈ /
m,n
(R),
f : R
n
→R
x = (x
1
, x
2
, . . . , x
l
, x
l+1
, . . . , x
r
, x
r+1
, . . . , x
n
)
not
= (x
1
x
2
x
3
) ∈ R
n
x
1
= (x
1
, . . . , x
l
); x
2
= (x
l+1
, . . . , x
r
); x
3
= (x
r+1
, . . . , x
n
)
b
1
= (b
1
, . . . , b
k
); b
2
= (b
k+1
, . . . , b
p
); b
3
= (b
p+1
, . . . , b
m
)
b = (b
1
b
2
b
3
) ∈ R
m
c
1
= (c
1
, . . . , c
l
); c
2
= (c
l+1
, . . . , c
r
); c
3
= (c
r+1
, . . . , c
n
)
c = (c
1
c
2
c
3
) ∈ R
n
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 24 — #24
i
i
i
i
i
i
24 2. Teoria problemelor de optimizare liniară cu restricţii
Definiţia 2.1.2. Se numeşte forma standard a problemei de optimizare
liniară cu restricţii următorul model:
_
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
c
j
x
j
→ min /max
n

j=1
a
ij
x
j
= b
i
, i = 1, m
x
j
≥ 0, j = 1, n
sau în forma matriceală:
_
_
_
f(x) = (c, x) → min/max
Ax = b
x ≥ 0,
unde (, ) : R
n
R
n
→ R este produsul scalar euclidean al vectorilor din
spaţiul vectorial R
n
, A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
.
Definiţia 2.1.3. Forma canonică a unui model de minimizare prin
definiţie este:
_
_
_
f(x) = (c, x) → min
Ax ≥ b
x ≥ 0
unde A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
.
Forma canonică a problemei de maximizare este:
_
_
_
f(x) = (c, x) → max
Ax ≤ b
x ≥ 0
unde A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
.
2.2 Soluţii ale problemei de optimizare liniară cu
res-tricţii
În acest paragraf vom preciza condiţiile necesare pentru rezolvarea nu-
merică a problemei de optimizare liniară cu restricţii şi vom defini câteva
tipuri de soluţii care pot fi asociate problemei propuse spre rezolvare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 25 — #25
i
i
i
i
i
i
2.2. Soluţii ale problemei de optimizare liniară cu restricţii 25
A. Cazul formei standard
Fie modelul:
_
_
_
f(x) = (c, x) → min/max
Ax = b
x ≥ 0
(2.1)
unde A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
, f : R
n
→R.
Vom presupune că sistemul de restricţii Ax = b are cel puţin o soluţie.
În caz contrar, problema de optimizare considerată nu are sens.
Pe tot parcursul expunerii vom presupune că rang A = m.
Dacă rang A < m, atunci, în caz de compatibilitate, ar însemna că une-
le restricţii sunt consecinţe ale celorlalte, adică modelul construit în scopul
studierii unui fenomen economic este un model încărcat.
Se va presupune de asemenea că are loc inegalitatea m < n, (dacă m = n
atunci sistemul de restricţii formează un sistem Cramer).
În aceste condiţii, sistemul liniar de ecuaţii Ax = b este un sistem nede-
terminat. În consecinţă, sistemul liniar admite o infinitate de soluţii.
Definiţia 2.2.1. O soluţie a sistemului de ecuaţii Ax = b care verifică în
plus condiţia de nenegativitate (x ≥ 0) se numeşte soluţie posibilă (soluţie
admisibilă sau program) al problemei (2.4).
S = ¦x ∈ R
n
[ Ax = b, x ≥ 0¦ se numeşte mulţimea soluţiilor posibile.
Definiţia 2.2.2. O soluţie posibilă, x

, a problemei (2.4) se numeşte pro-
gram optim, soluţie optimă, dacă verifică condiţia de optim, adică
(c, x

) ≤ (c, x), unde x ∈ S oarecare (dacă avem model de minimizare) şi
(c, x

) ≥ (c, x), unde x ∈ S oarecare (dacă avem o problemă de maximizare).
Definiţia 2.2.3. O soluţie posibilă x ∈ S cu cel mult m componente strict
po-zitive se numeşte soluţie de bază , dacă coloanele matricei A, care core-
spund acestor componente, formează o bază în R
m
.
Definiţia 2.2.4. O soluţie de bază se numeşte nedegenerată , dacă are exact
m componente nenule, şi degenerată , în caz contrar.
Teorema 2.2.1. Orice soluţie de bază a unei probleme de programare liniară
este un punct extrem al mulţimii S şi, reciproc, orice punct extrem al mulţimii
S este soluţie bazică.
Dacă determinăm mulţimea soluţiilor bazice, atunci prin înlocuirea aces-
tora în funcţia de scop putem alege soluţia optimă a problemei considerate.
Câte soluţii de bază are un model cu n variabile şi m restricţii?
i
i
“JATEK” — 2005/3/11 — 10:29 — page 26 — #26
i
i
i
i
i
i
26 2. Teoria problemelor de optimizare liniară cu restricţii
Pe baza definiţiei 2.2.3, aceste soluţii bazice pot fi obţinute în urma re-
zolvării tuturor sistemelor Cramer de m ecuaţii şi n necunoscute, pe care le
putem forma din sistemul de restricţii Ax = b.
Astfel se poate afirma că numărul soluţiilor bazice este cel mult C
m
n
.
Definiţia 2.2.5. Preţul umbră asociat restricţiei de ordinul i este valoarea
cu care se îmbunătăţeşte valoarea funcţiei de scop, atunci când valoarea lui
b
i
creşte cu o unitate (b
i
este înlocuit cu b
i
+ 1.)
Problemă rezolvată
Să se determine soluţiile bazice ale problemei:
_
¸
¸
_
¸
¸
_
f(x) = 2x
1
+x
2
+ 2x
3
+x
4
+ 3x
5
→ max
2x
1
+x
2
+x
3
−x
4
−x
5
= 2
x
1
+ 2x
2
−x
3
−x
4
+ 3x
5
= 4
x
j
≥ 0, j = 1, 5
Matricea restricţiilor este:
A =
_
2 1 1 −1 −1
1 2 −1 −1 3
_
rang A = 2
Notăm C
ij
, i < j 1 ≤ i, j ≤ 5 toate matricile pătratice de ordin doi ce
pot fi formate cu coloanele lui A.
C
12
=
_
2 1
1 2
_
C
13
=
_
2 1
1 −1
_
C
14
=
_
2 −1
1 −1
_
C
15
=
_
2 −1
1 3
_
C
23
=
_
1 1
2 −1
_
C
24
=
_
1 −1
2 −1
_
C
25
=
_
1 −1
2 3
_
C
34
=
_
1 −1
−1 −1
_
C
35
=
_
1 −1
−1 3
_
C
45
=
_
−1 −1
−1 3
_
.
Avem 10 astfel de matrici
_
C
2
5
=
5!
2!3!
= 10
_
.
Toţi determinanţii det(C
ij
) sunt diferiţi de zero, ceea ce înseamnă că vom
avea cel mult 10 soluţii bazice obţinute în urma rezolvării celor 10 sisteme
liniare de două ecuaţii şi două necunoscute.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 27 — #27
i
i
i
i
i
i
2.2. Soluţii ale problemei de optimizare liniară cu restricţii 27
În cazul unui sistem liniar de ecuaţii asociat matricei C
ij
, variabilele
x
i
şi x
j
sunt considerate variabile principale. Variabilele secundare sunt
considerate nule.
Pentru matricea C
12
, de exemplu, variabilele principale sunt x
1
, x
2
, iar
x
3
= x
4
= x
5
= 0.
În acest caz avem de rezolvat sistemul:
_
2x
1
+x
2
= 2
x
1
+ 2x
2
= 4
.
Soluţia obţinută este (0 2 0 0 0). În mod analog, rezolvând sistemele liniare
de ecuaţii, se vor obţine soluţiile: (2 0 -2 0 0), (-2 0 0 -6 0), (10/7 0 0 0 6/7),
(0 2 0 0 0), (0 2 0 0 0), (0 2 0 0 0), (0 0 -1 -3 0), (0 0 -1 0 3), (0 0 0 -5/2 1/2).
Dintre cele 10 soluţii obţinute, sunt soluţii de bază doar cele pentru care
toate componentele sunt pozitive. Deci problema de optimizare liniară cu
restricţii considerată admite o soluţie bazică nedegenerată şi 4 soluţii bazice
degenerate. Prin calcul direct, prin înlocuirea soluţiilor bazice în funcţia de
scop, putem alege soluţia optimă. Avem:
f(10/7 0 0 0 6/7) = 38/7
f(0 2 0 0 0) = 2
adică soluţia optimă este x
0
= (10/7 0 0 0 6/7) şi f
max
= 38/7.
Dacă considerăm un model cu n = 17 variabile şi m = 8 restricţii, atunci
am avea de rezolvat 24 310 sisteme Cramer cu 8 ecuaţii şi 8 variabile pentru
a determina soluţiile bazice.
Deci, chiar şi în cazul unei probleme de dimensiune redusă, determinarea
soluţiilor bazice necesită foarte mult timp, ceea ce înseamnă că metoda nu
este eficientă pentru determinarea optimului.
În 1947, G. Dantzig formulează un algoritm eficient pentru rezolvarea
mo-delelor liniare.
Principiul metodei lui Dantzig constă în alegerea unei soluţii bazice
oarecare, în formularea unui criteriu de optim cu care se verifică optimalitatea
soluţiei bazice propuse şi stabilirea unei metode cu care se poate pune în
evidenţă o nouă soluţie bazică pentru care valoarea funcţiei de scop creşte,
dacă se caută un maxim (sau descreşte dacă se caută un minim).
Se repetă operaţia până când mărirea/ micşorarea funcţiei de scop nu
mai este posibilă, ceea ce înseamnă că s-a atins optimul acesteia.
B. Cazul formei generale
Modelul de optimizare liniară cu restricţii, dat într-o formă oarecare de
prezentare poate fi redus, folosind transformări echivalente, la un model în
i
i
“JATEK” — 2005/3/11 — 10:29 — page 28 — #28
i
i
i
i
i
i
28 2. Teoria problemelor de optimizare liniară cu restricţii
forma standard prin introducerea unor variabile auxiliare, artificiale şi prin
folosirea unor substituţii adecvate.
Metoda de trecere dintr-o formă de reprezentare în alta va fi prezentată
în paragraful 2.4.
Se poate arăta că soluţiile modelului astfel obţinut sunt soluţii ale prob-
lemei iniţiale, iar valorile optime coincid. Variabilele auxiliare introduse au
doar semnificaţii economice.
2.3 Teoria poliedrelor, inegalităţi liniare şi progra-
mare liniară
În acest paragraf vom prezenta noţiunile de mulţime convexă, mulţime
poliedrală şi politop. Mulţimea poliedrală reprezintă latura geometrică şi
inegalităţile liniare latura algebrică a problemei de optimizare liniară cu re-
stricţii.
Teorema fundamentală a inegalităţilor liniare se datorează lui Gy. Farkas
(1894) şi Minkowski (1896). Rezultatul a fost extins de Caratheodory (1911)
şi Weyl (1935).
Deoarece restricţiile unui model liniar de optimizare formează un sistem
liniar de inecuaţii, teoremele de caracterizare a incompatibilităţii unui sistem
de inecuaţii liniare sunt extrem de importante. Gy. Farkas în 1902 [Fark]
publică următorul criteriu de incompatibilitate:
Teorema 2.3.1. Fie a
0
, b
1
. . . b
p
∈ R
n
puncte date. Sistemul de inecuaţii
definit în R
n
prin produsul scalar:
_
(x, a
0
) < 0
(x, b
i
) ≤ 0, i = 1, p
este incompatibil, dacă şi numai dacă există un punct v ∈ R
p
, astfel încât:
a
0
+
p

i=1
v
i
b
i
= 0.
În anul 1936, T. Motzkin demonstrează următorul rezultat.
Teorema 2.3.2. Fie date punctele a
1
, . . . a
p
, b
1
, . . . , b
q
, c
1
, . . . , c
r
din R
n
.
Sistemul definit în R
n
prin:
_
_
_
(x, a
i
) < 0, i = 1, p
(x, b
i
) ≤ 0, i = 1, q
(x, c
i
) = 0, i = 1, r
i
i
“JATEK” — 2005/3/11 — 10:29 — page 29 — #29
i
i
i
i
i
i
2.3. Teoria poliedrelor, inegalităţi liniare şi programare liniară 29
este incompatibil, dacă şi numai dacă există (u, v, w) ∈ R
p
+
R
q
+
R
r
+
cu
u ,= 0, astfel încât să avem:
p

i=1
u
i
a
i
+
q

i=1
v
i
b
i
+
r

i=1
w
i
c
i
= 0.
Demonstraţia teoremei se face cu ajutorul teoremei lui Farkas. Dar, pe
de altă parte, teorema lui Farkas este evident un caz particular al teoremei
lui Motzkin, deci cele două teoreme sunt echivalente.
Rezultatul obţinut în 1873 de P. Cordan este o consecinţă a teoremei lui
Motzkin.
Teorema 2.3.3. Fie punctele a
1
, . . . a
p
din spaţiul R
n
. Sistemul de inecuaţii
definit în R
n
prin:
(x, a
i
) < 0, i = 1, p
este incompatibil, dacă şi numai dacă există u ∈ R
p
+
cu u ,= 0, astfel încât

p
i=1
u
i
a
i
= 0.
În continuare, ne ocupăm cu interpretarea geometrică a restricţiilor
liniare. În acest scop se dau următoarele definiţii:
Definiţia 2.3.1. Mulţimea M ⊂ R
n
este convexă , dacă pentru orice
x
1
, x
2
∈ M şi λ ∈ [0, 1] avem λx
1
+ (1 −λ)x
2
∈ M.
Remarcăm faptul că mulţimea M ⊂ R
n
este convexă, dacă pentru ori-
care două puncte ale sale x
1
, x
2
∈ M, segmentul [x
1
, x
2
] determinat de aceste
două puncte aparţine în întregime mulţimii date.
Mulţimea ¦λx
1
+ (1 −λ)x
2
, λ ∈ [0, 1]¦ se numeşte combinaţia convexă a
punctelor date şi coincide cu segmentul cu capetele x
1
, x
2
.
Mulţimile convexe pot fi mărginite şi nemărginite.
Mulţimea vidă şi mulţimea formată dintr-un singur element sunt conside-
rate mulţimi convexe.
Definiţia 2.3.2. O mulţime M de vectori din R
n
se numeşte hiperplan
dacă există a ∈ R
n
¸ ¦0¦ astfel încât:
M = ¦x ∈ R
n
[ (a, x) = b, b ∈ R¦.
Definiţia 2.3.3. O mulţime M de vectori din R
n
se numeşte semispaţiu
dacă există a ∈ R
n
¸ ¦0¦ astfel încât:
M = ¦x ∈ R
n
[ (a, x) ≥ 0¦.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 30 — #30
i
i
i
i
i
i
30 2. Teoria problemelor de optimizare liniară cu restricţii
Definiţia 2.3.4. O mulţime M de vectori din R
n
se numeşte mulţime
poliedrală (tronson) dacă există (a
i
)
i=1,m
∈ R
n
¸ ¦0¦, (b
i
)
i=1,m
∈ R ast-
fel încât:
M =
m

i=1
¦x ∈ R
n
[ (a
i
, x) ≥ b
i
¦.
Teorema 2.3.4. Hiperplanul, semispaţiul şi mulţime poliedrală sunt mulţimi
convexe.
Demonstraţie. Folosim definiţia convexităţii. Se poate verifica uşor că pentru
oricare două puncte din hiperplan (semispaţiu, mulţime poliedrală), com-
binaţia convexă ale acestora este de asemenea în hiperplan (semispaţiu,
mulţime poliedrală).
Definiţia 2.3.5. O mulţime M de vectori din R
n
se numeşte con dacă pentru
orice x ∈ M şi orice α ∈ R
+
avem: αx ∈ M.
M se numeşte con convex dacă este con şi este convex (adică pentru
orice x, y ∈ M şi orice λ, µ ∈ R
+
are loc: λx +µy ∈ M).
M se numeşte con cu vârf dacă este con şi 0 ∈ M.
M se numeşte con poliedral dacă există punctele (a
i
)
i=1,m
∈ R
n
¸ ¦0¦
astfel încât:
M =
m

i=1
¦x ∈ R
n
[ (a
i
, x) ≥ 0¦.
Teorema 2.3.5. (Farkas, Minkowski-Weyl)
Un con convex este poliedral dacă şi numai dacă este finit generat.
Demonstraţie. [Sch] pg. 87.
Trivial, un con poliedral este o mulţime poliedrală.
O mulţime poliedrală este mulţime închisă. (O mulţime este închisă dacă
şi numai dacă îşi conţine toate punctele de acumulare).
Definiţia 2.3.6. O mulţime de vectori din spaţiul R
n
este politop dacă este
învelitoarea convexă a unui număr finit de vectori.
Între noţiunea de mulţimi poliedrale şi noţiunea de politop (poliedru)
există o legătură, după cum arată şi teorema de descompunere a poliedrului
formulat de Motzkin (1936).
Teorema 2.3.6. O mulţime P ⊆ R
n
este o mulţime poliedrală dacă şi numai
dacă P = Q+C, unde Q este un politop iar C este un con poliedral oarecare.
Demonstraţie. [Sch] pg. 88-89.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 31 — #31
i
i
i
i
i
i
2.3. Teoria poliedrelor, inegalităţi liniare şi programare liniară 31
Teorema bazelor finite pentru politopi este o consecinţă a teoremei de
descompunere. Acest rezultat este atribuit lui Minkowski (1896), Steinitz
(1916) şi Weyl (1935).
Teorema 2.3.7. O mulţime P ⊆ R
n
este politop dacă şi numai dacă P este
o mulţime poliedrală mărginită.
Demonstraţie. [Sch] pg. 89.
Dacă se notează cu k dimensiunea spaţiului cu proprietatea "este spaţiu
de dimensiune minimă care include mulţimea poliedrală P", atunci k se nu-
meşte dimensiunea lui P.
Definiţia 2.3.7. Un politop a cărui dimensiune este mai mare cu 1 decât
numărul vârfurilor sale se numeşte simplex .
Un segment este 1-simplex, un triunghi este 2-simplex, un tetraedru este
un 3-simplex, un politop cu n + 1 vârfuri se numeşte n-simplex.
Restricţiile problemei de programare liniară formează o mulţime
poliedrală. Modelul liniar admite soluţie (optim finit) doar în cazul în care
această mulţime este mărginită. Adică, în cazul optimului finit, mulţimea
soluţiilor posibile este un politop.
Definiţia 2.3.8. Fie M o mulţime convexă din spaţiul R
n
. Punctul x este
un punct extrem pentru mulţimea M, dacă nu este interior nici unui segment
inclus în întregime în mulţimea M.
Teorema 2.3.8. Orice politop coincide cu invelitoarea convexă a extremelor
sale.
Demonstraţie. Demonstraţia poate fi consultată în [Pre], pp. 54-55.
Teorema 2.3.9. Extremele mulţimii S sunt chiar soluţiile bazice.
Demonstraţie. Demonstraţia poate fi consultată în [Pre], pp. 55-59.
Teorema 2.3.10. La extremele lui S pot fi găsite două baze B
1
, B
2
care
diferă doar printr-un vector.
Demonstraţie. Demonstraţia poate fi consultată în [Pre], pp. 67-68,[Thi].
Teorema 2.3.11. Dacă f este o funcţie liniară, definit pe un poliedru convex,
atunci fie că nu este mărginit superior pe această mulţime, fie îşi atinge
maximul în cel puţin un punct extrem al poliedrului (evident dacă poliedrul
are cel puţin un extrem).
Demonstraţie. Poate fi consultată în [Pre], [Gas].
i
i
“JATEK” — 2005/3/11 — 10:29 — page 32 — #32
i
i
i
i
i
i
32 2. Teoria problemelor de optimizare liniară cu restricţii
Proprietăţile poliedrului convex prezentate mai sus se datorează lui H.
Minkowski (1864-1909). Noţiunea de soluţie bazică exista cu mult înainte
de apariţia programării liniare. Meritul lui Dantzig este de a fi recunoscut
utilitatea acestor rezultate existente.
Deci, din mulţimea S, care admite o infinitate de elemente, ne interesează
doar acele puncte care reprezintă vârfurile poliedrului, adică soluţiile bazice.
Teorema 2.3.12. Mulţimea soluţiilor posibile ale problemei de optimizare
liniară cu restricţii este o mulţime convexă.
Demonstraţie. Notăm: S = ¦x ∈ R
n
[ Ax = b, x ≥ 0¦.
a) Dacă S = ¦x
0
¦, atunci demonstraţia este banală.
b) În continuare presupunem: cardS > 1.
Avem de arătat că pentru orice u, v ∈ S ⇒ [u, v] ∈ S, adică ∀ x ∈
[u, v] ⇒ x ∈ S.
Evident orice punct x ∈ [u, v] poate fi scris ca: x = (1 − t)u + tv, t ∈
[0, 1].
Dar u, v ∈ S ⇒
_
Au = b
u ≥ 0
şi
_
Av = b
v ≥ 0
.
Astfel putem scrie:
Ax = A[(1 −t)u +tv] = Au(1 −t) +Atv = (1 −t)b +tb = b (2.2)
Pe de altă parte avem:
u ≥ 0
v ≥ 0
t ∈ [0, 1]
⇒ (1 −t)u +tv = x ≥ 0 (2.3)
şi teorema este demonstrată.
Teorema 2.3.13. Mulţimea soluţiilor optime ale problemei de optimizare
liniară cu restricţii este o mulţime convexă.
Demonstraţie. Fie u, v ∈ S două soluţii optime, f(u) = f(v) = k (unde k este
valoarea minimă a funcţiei de scop). Avem de arătat că f(x) = (c, x) = k,
dacă x este combinaţia convexă a soluţiilor optime considerate.
Deoarece orice punct x ∈ [u, v] poate fi scris ca : x = (1−t)u+tv, t ∈ [0, 1],
funcţia f este liniară, putem scrie:
f(x) = f((1 −t)u +tv) = (1 −t)f(u) +tf(v) = (1 −t)k +tk = k
şi teorema este demonstrată.
Observaţie. Din punct de vedere practic, teorema este foarte importantă.
În consecinţă, se poate afirma că o problemă de programare liniară admite
fie o soluţie optimă unică, fie o infinitate de soluţii optime.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 33 — #33
i
i
i
i
i
i
2.4. Schimbarea formei de reprezentare 33
Se poate formula următoarea întrebare:
Ce proprietăţi trebuie să verifice acele modele de programare matematică
care pot fi rezolvate pe baza principiului de mai sus?
Doar pentru problemele de optimizare liniară cu restricţii sunt valabile
proprietăţile de mai sus?
Are loc următorul rezultat.
Teorema 2.3.14. Dacă în modelul:
_
_
_
f(x) = (c, x) → min/max
Ax b
x ≥ 0
(2.4)
unde A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
, funcţia de scop f : D R
n
→ R este
strict cvasimonotonă şi îşi atinge minimul/maximul, atunci soluţia sa op-
timă poate fi obţinută cu principiul vârfurilor vecine (principiul lui Dantzig).
Demonstraţie. Demonstraţia poate fi consultată în [Dany].
2.4 Trecerea unei probleme de programare liniară
cu restricţii de la o formă matematică de
prezentare la alta
În general, trecerea de la o formă de prezentare la alta nu este dificilă, dar
este necesară datorită faptului că diversitatea situaţiilor economico-sociale ce
pot fi analizate prin intermediul programării liniare ne conduce la apariţia
oricăreia dintre formele de prezentare menţionate.
(a) Trecerea de la forma generală la forma canonică
În forma canonică, toate variabilele verifică condiţia de nenegativitate şi
res-tricţiile sunt inegalităţi de acelaşi sens.
Pentru a obţine forma canonică a unui model, vor fi parcurse următoarele
etape:
1. inegalităţile de sens contrar celor dorite vor fi înmulţite cu (-1);
2. fiecare egalitate va fi înlocuită cu două inegalităţi (una cu sensul dorit,
iar pentru celălalt se aplică (1));
3. pentru variabila x negativă se va folosi substituţia x = −y, unde y ≥ 0;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 34 — #34
i
i
i
i
i
i
34 2. Teoria problemelor de optimizare liniară cu restricţii
4. pentru variabila x de semn oarecare se va folosi substituţia x = y −z,
unde y ≥ 0, z ≥ 0.
(Orice număr real poate fi exprimat ca diferenţa a două numere reale
pozitive.)
Problemă rezolvată
Să se reducă la forma canonică modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 3x
1
+x
2
−x
3
+ 2x
4
→ max
2x
1
+x
2
−3x
3
+ 2x
4
≤ 10
x
1
−2x
2
+ 2x
3
+ 5x
4
= 12
−x
1
+ 3x
2
+x
3
−2x
4
≥ 6
x
1
≥ 0, x
2
de semn oarecare, x
3
≤ 0, x
4
≥ 0.
Pentru uniformitatea scrierii, toate variabilele vor fi notate cu y.
Folosind substituţiile:
x
1
= y
1
x
2
= y
2
−y
3
x
3
= −y
4
x
4
= y
5
unde y
j
≥ 0, i = 1, 5
şi, înlocuind egalitatea cu două inegalităţi, se obţine modelul:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(y) = 3y
1
+y
2
−y
3
+y
4
+ 2y
5
→ max
2y
1
+y
2
−y
3
+ 3y
4
+ 2y
5
≤ 10
y
1
−2y
2
+ 2y
3
−2y
4
+ 5y
5
≤ 12
y
1
−2y
2
+ 2y
3
−2y
4
+ 5y
5
≥ 12/(−1)
−y
1
+ 3y
2
−3y
3
−y
4
−2y
5
≥ 6/(−1)
y
j
≥ 0, j = 1, 5
Restricţiile de sens opus celor dorite vor fi înmulţite cu (-1) şi se va obţine
forma canonică a modelului:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(y) = 3y
1
+y
2
−y
3
+y
4
+ 2y
5
→ max
2y
1
+y
2
−y
3
+ 3y
4
+ 2y
5
≤ 10
y
1
−2y
2
+ 2y
3
−2y
4
+ 5y
5
≤ 12
−y
1
+ 2y
2
−2y
3
+ 2y
4
−5y
5
≤ −12
y
1
−3y
2
+ 3y
3
+y
4
+ 2y
5
≤ −6;
y
j
≥ 0, j = 1, 5
i
i
“JATEK” — 2005/3/11 — 10:29 — page 35 — #35
i
i
i
i
i
i
2.4. Schimbarea formei de reprezentare 35
(b) Trecerea de la forma generală la forma standard
În forma standard, variabilele trebuie să verifice condiţia de pozitivitate
(vezi cazul (a)), iar restricţiile trebuie să fie egalităţi.
Pentru transformarea inegalităţilor în egalităţi, se introduc variabile
auxi-liare, numite şi variabile ecart. Aceste variabile nu afectează funcţia
obiectiv şi nici soluţia problemei (au unele semnificaţii doar în interpretarea
soluţiei problemei), fapt pentru care le introducem în funcţia de scop cu
coeficienţi nuli.
Problemă rezolvată
Să se reducă la forma standard modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(y) = 2x
1
+ 3x
2
−4x
3
+ 2x
4
+x
5
→ min
x
1
−2x
2
+x
3
−x
4
+ 2x
5
≤ 10
2x
1
+x
2
−x
3
+ 3x
4
−x
5
= 8
x
1
+ 2x
2
+ 2x
3
+ 5x
4
−x
5
≥ 14
x
1
≥ 0, x
2
≤ 0, x
3
oarecare , x
4
≤ 0, x
5
≥ 0
Folosind substituţiile:
x
1
= y
1
, y
1
≥ 0
x
2
= −y
2
, y
2
≥ 0
x
3
= y
3
−y
4
, y
3
, y
4
≥ 0
x
4
= −y
5
, y
5
≥ 0
x
5
= y
6
, y
6
≥ 0
şi introducând variabilele auxiliare y
7
, y
8
, care evident verifică condiţia de
pozi-tivitate, putem scrie:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(y) = 2y
1
−3y
2
−4y
3
+ 4y
4
−2y
5
+y
6
→ min
y
1
+ 2y
2
+y
3
−y
4
+y
5
+ 2y
6
+y
7
= 10
2y
1
−y
2
−y
3
+y
4
−3y
5
−y
6
= 8
y
1
−2y
2
+ 2y
3
−2y
4
−5y
5
−y
6
−y
8
= 14
y
j
≥ 0, j = 1, 8
(c) Trecerea de la forma canonică la forma standard
Condiţia de pozitivitate a variabilelor este verificată, deoarece se va porni
cu forma canonică. Pentru transformarea inegalităţilor în egalităţi, vor fi
introduse variabile auxiliare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 36 — #36
i
i
i
i
i
i
36 2. Teoria problemelor de optimizare liniară cu restricţii
(d) Trecerea de la forma generală la forma standard de lucru
Definiţia 2.4.1. O problemă de programare liniară este în forma standard
de lucru , dacă este în forma standard, în matricea A ∈ /
m,n
(R) este
inclusă o matrice unitate de ordinul m şi componentele vectorului b sunt
pozitive.
Această formă de prezentare are un rol extrem de important în rezolvarea
problemelor.
Vor fi parcurse următoarele etape:
1. se reduce modelul considerat la forma standard;
2. se verifică dacă toate componentele vectorului b sunt pozitive (unde
este cazul, restricţiile respective vor fi înmulţite cu -1);
3. se va scrie matricea coeficienţilor A.
Dacă nu este inclusă o matrice unitate de ordinul m în matricea A,
atunci vor fi introduse variabile nenegative numite variabile artificiale prin
adunarea acestora la membrul stâng al restricţiilor, astfel încât în fiecare res-
tricţie să apară câte o astfel de variabilă o singură dată.
Observaţie. Observăm că:
1. variabilele artificiale perturbă vechiul echilibru al restricţiilor, de aceea
vor fi introduse şi în funcţia de scop;
2. variabilele artificiale sunt introduse în funcţia obiectiv cu un coeficient
pozitiv relativ mare în comparaţie cu ceilalţi coeficienţi din model (prin
adunare la funcţia de scop, în cazul modelelor de minimizare, respectiv
prin scădere, în cazul modelelor de maximizare);
3. pentru a înlătura încărcarea modelului, se introduc numai atâtea vari-
abile artificiale câţi vectori unitari lipsesc.
Problemă rezolvată
Să se reducă modelul dat în forma standard de lucru!
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 4x
1
−5x
2
+ 3x
3
→ min
x
1
+ 2x
2
+ 3x
3
≥ 6
2x
1
−3x
2
+x
3
= 2
x
1
−3x
2
+ 5x
3
≤ 4
2x
1
−x
2
+ 4x
3
≥ 5
x
1
≥ 0, x
2
oarecare, x
3
≥ 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 37 — #37
i
i
i
i
i
i
2.4. Schimbarea formei de reprezentare 37
Folosind substituţiile: x
1
= y
1
, x
2
= y
2
−y
3
, x
3
= y
4
putem scrie:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(y) = 4y
1
−5y
2
+ 5y
3
+ 3y
4
→ min
y
1
+ 2y
2
−2y
3
+ 3y
4
≥ 6
2y
1
−3y
2
+ 3y
3
+y
4
= 2
y
1
−3y
2
+ 3y
3
+ 5y
4
≤ 4
2y
1
−y
2
+y
3
+ 4y
4
≥ 5
y
j
≥ 0, j = 1, 4
(2.5)
Introducem variabile auxiliare y
5
, y
6
, y
7
:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(y) = 4y
1
−5y
2
+ 5y
3
+ 3y
4
→ min
y
1
+ 2y
2
−2y
3
+ 3y
4
−y
5
= 6
2y
1
−3y
2
+ 3y
3
+y
4
= 2
y
1
−3y
2
+ 3y
3
+ 5y
4
+y
6
= 4
2y
1
−y
2
+y
3
+ 4y
4
−y
7
= 5
y
j
≥ 0, j = 1, 7
Scriind matricea restricţiilor:
A =
_
_
_
_
1 2 −2 3 −1 0 0
2 −3 3 1 0 0 0
1 −3 3 5 0 1 0
2 −1 1 4 0 0 −1
_
_
_
_
se observă că modelul obţinut nu este în forma standard de lucru.
Vor fi introduse variabile artificiale, u
1
, u
2
, u
3
, care evident verifică
condiţia de pozitivitate, în prima, a doua şi în ultima restricţie, deoarece
coloana a şasea a matricei este vector unitar.
Astfel se poate scrie:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(y) = 4y
1
−5y
2
+ 5y
3
+ 3y
4
+Mu
1
+Mu
2
+Mu
3
→ min
y
1
+ 2y
2
−2y
3
+ 3y
4
−y
5
+u
1
= 6
2y
1
−3x
2
+ 3y
3
+y
4
+u
2
= 2
y
1
−3x
2
+ 3y
3
+ 5y
4
+y
6
= 4
2y
1
−y
2
+y
3
+ 4y
4
−y
7
+u
3
= 5
y
j
≥ 0 u
k
≥ 0 k = 1, 3, j = 1, 7
Privind rezolvarea numerică a modelelor, forma standard de lucru repre-
zintă o importanţă majoră. Algoritmul lui Dantzig poate fi aplicat doar în
cazul în care avem la dispoziţie o soluţie bazică oarecare. Determinarea unei
soluţii bazice cu metoda prezentată în paragraful 2.2 (prin rezolvarea sis-
temelor Cramer) nu este eficientă, deoarece nu orice soluţie obţinută verifică
şi condiţia de pozitivitate.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 38 — #38
i
i
i
i
i
i
38 2. Teoria problemelor de optimizare liniară cu restricţii
Dacă considerăm un model care este în forma standard de lucru, atunci
rezolvând sistemul ales astfel încât matricea coeficienţilor să fie matrice uni-
tate, obţinem o soluţie bazică cu componentele nenegative formate chiar cu
componentele vectorului b.
Observaţie. Folosind metoda lui Gauss, se poate transforma matricea A în
mod echivalent, astfel încât să conţină o matrice unitate.
Dezavantajul acestei metode constă în faptul că nu garantează pozitivi-
tatea termenilor liberi.
Problemă rezolvată
Fie modelul:
_
¸
¸
_
¸
¸
_
f(x) = 3x
1
+ 2x
2
+x
3
+ 5x
4
+ 2x
5
→ max
x
1
+ 2x
2
+x
3
+ 3x
4
+x
5
= 10
2x
1
+x
2
+x
3
+x
4
+ 3x
5
= 4
x ≥ 0
Dacă scriem matricea extinsă şi aplicăm metoda lui Gauss, atunci vom oţine
pe rând:
_
1 2 1 3 1 10
2 1 1 1 3 4
_
/(−2)
_
1 2 1 3 1 10
0 −3 −1 −5 1 −16
_
/ : (−3)
_
1 2 1 3 1 10
0 1
1
3
5
3

1
3
16
3
_
/(−2)
_
_
_
1 0
1
3

1
3
5
3

2
3
0 1
1
3
5
3

1
3
16
3
_
_
_
.
Deoarece b =
_
_
_

2
3
16
3
_
_
_
, rezultă că soluţia sistemului Cramer format
cu matricea unitate C
12
va fi x
1
= −
2
3
, x
2
=
16
3
. Fiind egală cu
(−2/3 16/3 0 0 0), soluţia sistemului nu este (soluţie) bazică.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 39 — #39
i
i
i
i
i
i
2.5. Rezolvarea modelelor pe cale grafică 39
2.5 Rezolvarea grafică a modelelor cu m restricţii şi
două variabile
Fie modelul:
_
_
_
f(x) = (c, x) → min/ max
Ax = b
x ≥ 0
unde A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
, f : R
n
→R.
Rezolvarea numerică a problemei înseamnă determinarea în ordine a
mulţimilor: S (mulţimea soluţiilor posibile), S
B
(mulţimea soluţiilor bazice)
şi S
o
(mulţimea soluţiilor optime).
Se va considera modelul liniar în cazul particular, când n = 2 :
_
_
_
f(x) = (c, x) → min/ max
Ax = b
x ≥ 0
unde A ∈ /
m,2
(R), b ∈ R
m
, c ∈ R
2
, f : R
2
→R.
Aceste modele pot fi rezolvate pe cale grafică.
Reprezentând grafic restricţiile problemei, se va obţine un poligon convex
care este chiar mulţimea S.
Mulţimea S
B
se obţine în urma rezolvării unor sisteme de două ecuaţii şi
două necunoscute (calculând punctele de intersecţie a dreptelor).
Muţimea S
o
în cazul unei probleme reduse se poate obţine prin calcul
direct, adică prin înlocuirea soluţiilor bazice în funcţia de scop.
În continuare vom prezenta câteva exemple numerice, după care se va
formula un procedeu pentru determinarea mulţimii S
o
, fără a recurge la de-
terminarea tuturor elementelor mulţimii S
B
.
Problemă rezolvată
1. Să se determine soluţia optimă a problemei:
_
¸
¸
_
¸
¸
_
f(x) = 3x
1
+ 5x
2
→ max
2x
1
+ 3x
2
≥ 6
x
1
+x
2
≤ 1
x
1
≥ 0, x
2
≥ 0
(2.6)
Reprezentăm dreptele în acelaşi sistem de coordonate:
(d
1
) 2x
1
+ 3x
2
−6 = 0
(d
2
) x
1
+x
2
−1 = 0 (2.7)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 40 — #40
i
i
i
i
i
i
40 2. Teoria problemelor de optimizare liniară cu restricţii
x
2
(d
1
)
x
1

2
3
(d
2
)
1
1
Figura 2.1:
iar mulţimea S va fi intersecţia semiplanelor respective (fig. 2.1).
Se poate observa că S = ∅ ⇒ S
B
,= ∅ şi S
o
= ∅, adică problema dată
nu admite soluţie.
2. Fie modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = 3x
1
+ 2x
2
→ max
2x
1
+x
2
≥ 2
x
1
+ 2x
2
≥ 2
0 ≤ x
1

2
3
0 ≤ x
2

2
3
(2.8)
Mulţimea S este intersecţia dreptelor:
(d
1
) 2x
1
+x
2
−2 = 0;
(d
2
) x
1
+ 2x
2
−2 = 0;
(d
3
) x
1

2
3
= 0;
(d
4
) x
2

2
3
= 0;
care, în acest caz, se reduce la un singur punct, ceea ce este şi soluţia optimă
a problemei (fig. 2.2).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 41 — #41
i
i
i
i
i
i
2.5. Rezolvarea modelelor pe cale grafică 41
x
2
1
(d
2
)
A (2/3, 2/3)
(d
3
) (d
1
)
(d
4
)
2
2
1
2/3
2/3
x
1
Figura 2.2:
S =
__
2
3
,
2
3
__
= S
B
= S
o
; f
max
=
10
3
.
3. Fie problema de optimizare liniară cu restricţii:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 2x
1
+ 5x
2
→ max
3x
1
+ 4x
2
≤ 12
x
1
+x
2
≥ 1
4x
1
+x
2
≥ 2
2x
1
−3x
2
≤ 3
x
1
≥ 0, x
2
≥ 0
(2.9)
În mod analog, pe cale grafică, se va determina mulţimea S, care este un
hexagon convex, după cum se vede din reprezentarea grafică (fig. 2.3).
Vârfurile hexagonului le putem obţine în urma rezolvării unor sisteme
liniare de ecuaţii cu două ecuaţii şi două necunoscute, deoarece vârfurile
sunt punctele de intersecţie a dreptelor:
¦A¦ = (d
1
) ∩ (Oy)
_
x
1
= 0
3x
1
+ 4x
2
−12 = 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 42 — #42
i
i
i
i
i
i
42 2. Teoria problemelor de optimizare liniară cu restricţii
x
2
½
x
1
D
1
4
1
-1
2
3
C
B
F
E
A
(d
3
)
(d
4
)
(d
2
)
(d
1
)
Figura 2.3:
Rezolvând sistemul, avem: A(0, 3).
¦C¦ = (d
2
) ∩ (d
3
)
_
x
1
+x
2
−1 = 4x
1
+x
2
−2
x
1
+x
2
−1 = 0
Rezolvând sistemul, obţinem: C
_
1
3
,
2
3
_
.
În mod analog se vor obţine punctele: A(0, 3); B(0, 2); C
_
1
3
,
2
3
); D(1, 0);
E(3/2, 0)F(48/17, 15/17).
Înlocuind aceste soluţii bazice în funcţia de scop, se va obţine soluţia
optimă a problemei care, în acest caz, va fi A = (0, 3), iar valoarea optimă a
funcţiei de scop va fi: f
max
= 15.
Observaţie. Funcţia de scop f(x) = ax
1
+bx
2
formează o familie de drepte
paralele:
ax
1
+bx
2
= λ, λ ∈ R.
Considerăm dreapta ax
1
+bx
2
= 0, pentru λ = 0.
Fie dreapta z = ax
1
+bx
2
şi ( ¯ x
1
, ¯ x
2
) un punct oarecare.
Distanţa punctului de la această dreaptă este:
d =
[a ¯ x
1
+b ¯ x
2
−z[

a
2
+b
2
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 43 — #43
i
i
i
i
i
i
2.5. Rezolvarea modelelor pe cale grafică 43
Astfel distanţa originii O(0, 0) de la dreapta considerată este:
d =
[z[

a
2
+b
2
.
Deci valoarea funcţiei f(x) = ax
1
+ bx
2
într-un punct este proporţională cu
distanţa de la origine la dreapta ce trece prin acel punct şi este paralelă cu
dreapta ax
1
+bx
2
= 0.
Constanta de proporţionalitate este

a
2
+b
2
.
Astfel se pot deduce imediat următoarele: cu cât un vârf al lui S este
mai depărtat (mai apropiat) de dreapta ax
1
+bx
2
= 0, cu atât este mai mare
(mai mică) valoarea lui z pe care funcţia f(x) = ax
1
+ bx
2
o atinge în acel
punct.
Astfel, după obţinerea lui S, pe cale grafică, avem de calculat doar coor-
donatele unui singur vârf.
4. Să se rezolve problema:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 3x
1
+ 4x
2
→ max
3x
1
+ 4x
2
≤ 12
x
1
+x
2
≥ 1
x
1
−x
2
≤ 2
−x
1
+x
2
≤ 2
x
1
, x
2
≥ 0
Folosind acelaşi raţionament, se va reprezenta mulţimea soluţiilor posi-
bile.
Acest model admite optim multiplu, deoarece dreapta (d
1
) este paralelă
cu dreapta (d) : 3x
1
+ 4x
2
= 0 (fig. 2.4).
Calculând vârfurile poligonului în care funcţia de scop admite valoare
optimă, putem scrie:
¦A¦ = (d
1
) ∩ (d
4
)
_
3x
1
+ 4x
2
−12 = −x
1
+x
2
−2
−x
1
+x
2
−2 = 0

_
4x
1
+ 3x
2
= 10
−x
1
+x
2
= 2/ 4
Coordonatele punctului sunt: A
_
4
7
,
18
7
_
.
¦B¦ = (d
1
) ∩ (d
3
)
_
3x
1
+ 4x
2
−12 = x
1
−x
2
−2
x
1
−x
2
= 2

_
2x
1
+ 5x
2
= 10
x
1
−x
2
= 2/ 5
de unde obţinem: B
_
20
7
,
6
7
_
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 44 — #44
i
i
i
i
i
i
44 2. Teoria problemelor de optimizare liniară cu restricţii
x
2
x
1
C
2
1
1
3
-2
-2 2
B
D
F
A
(d
4
)
4
(d)
(d
1
)
(d
2
)
(d
3
)
E
Figura 2.4:
Deci f
max
= f
_
4
7
,
18
7
_
= f
_
20
7
,
6
7
_
= 12, iar mulţimea soluţiilor op-
time este combinaţia convexă a soluţiilor optime.
Putem scrie:
x
0
= λ
_
4
7
,
18
7
_
+ (1 −λ)
_
20
7
,
6
7
_
=
=
_
20
7

16
7
λ,
12
7
λ +
6
7
_
, λ ∈ [0, 1]
Scopul principal pe care-l urmăreşte programarea matematică constă în
obţinerea soluţiei optime a unei probleme economice pe baza unui model
matematic. În continuare prezentăm câteva probleme aplicative.
Problemă aplicativă
1. Pentru a fabrica două produse P
1
şi P
2
este necesar să se execute
operaţii de prelucrare la trei maşini M
1
, M
2
, M
3
, în mod succesiv. Timpii
unitari de execuţie sunt daţi în tabelul de mai jos, unde se vede, de exemplu,
că timpul unitar de execuţie a piesei P
1
la maşina M
1
este de 12 minute. Se
presupune că maşinile nu au timp morţi provocaţi de aşteptarea unui produs
i
i
“JATEK” — 2005/3/11 — 10:29 — page 45 — #45
i
i
i
i
i
i
2.5. Rezolvarea modelelor pe cale grafică 45
aflat în curs de prelucrare la o altă maşină, datorită faptului că nu există
preferinţe în ordinea operaţiilor.
M
1
M
2
M
3
P
1
12 min 8 min 6 min
P
2
9 min 12 min 16 min
Orele disponibile ale fiecărei maşini în decurs de o lună sunt:
165 ore = 9900 min. pentru maşina M
1
140 ore = 8400 min. pentru maşina M
2
160 ore = 9600 min. pentru maşina M
3
Beneficiul pe unitate de produs este de 900 de unităţi monetare (u.m) la
produsul P
1
şi de 1000 (u.m) la produsul P
2
.
Să se determine câte produse P
1
şi P
2
trebuie fabricate lunar, pentru a
obţine în condiţiile date un beneficiu total maxim?
Notând cu x
1
, respectiv x
2
numărul de produse ce urmează să fie realizat
din produsele P
1
şi P
2
, beneficiul se poate formula matematic cu funcţia
liniară
f(x
1
, x
2
) = 900x
1
+ 1000x
2
.
În continuare avem de determinat valoarea maximă a funcţiei economice res-
pectând condiţiile x
1
≥ 0, x
2
≥ 0 şi restricţiile:
12x
1
+ 9x
2
≤ 9900 pentru maşina 1
8x
1
+ 12x
2
≤ 8400 pentru maşina 2
6x
1
+ 16x
2
≤ 9600 pentru maşina 3
Funcţia obiectiv şi restricţiile sunt funcţii liniare. Problema se va re-
zolva pe cale grafică, reprezentând în acelaşi sistem de coordonate dreptele:
(d
1
) 12x
1
+9x
2
−9900 = 0; (d
2
) 8x
1
+12x
2
−8400 = 0; (d
3
) 6x
1
+
16x
2
−9600 = 0 (v. figura 2.5).
Mulţimea S este chiar poligonul haşurat din cadranul I.
Construind dreapta (d) : 900x
1
+ 1000x
2
= 0 se observă imediat că
punctul
¦A¦ = (d
1
)∩(d
2
) este cel mai îndepărtat de origine, prin urmare coordonatele
acestui punct reprezintă soluţia optimă.
Coordonatele punctului A se obţin în urma rezolvării sistemului liniar de
ecuaţii:
_
12x
1
+ 9x
2
−9900 = 8x
1
+ 12x
2
−8400
8x
1
+ 12x
2
= 8400
Rezolvând sistemul, se obţine: x
1
= 600, x
2
= 300. Astfel:
f
max
= 900 600 + 1000 300 = 840000 u.m.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 46 — #46
i
i
i
i
i
i
46 2. Teoria problemelor de optimizare liniară cu restricţii
1600 1050 825
700
1100
x2
(d)
A
(d1)
100
(d2)
100
600
x1
(d3)
Figura 2.5:
Soluţia sistemului pentru care funcţia de scop are valoare maximă cores-
punde încărcării complete a maşinilor M
1
, M
2
, iar M
3
rămâne disponibilă
pentru un timp egal: 9600 −(6 600 + 16 300) = 1200 min. Dacă cele trei
drepte care reprezintă restricţiile s-ar intersecta într-un singur punct, atunci
cele trei maşini ar fi toate complet încărcate.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 47 — #47
i
i
i
i
i
i
Capitolul 3
Metoda simplex
3.1 Noţiuni introductive
Fie următorul model de minimizare sub forma standard:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
c
j
x
j
→ min
n

j=1
a
ij
x
j
= b
i
, i = 1, m
x
j
≥ 0, j = 1, n
(3.1)
unde c
j
, a
ij
, b
i
sunt numere reale date, pentru orice i = 1, m şi j = 1, n.
Notăm cu:
S = ¦x ∈ R
n
: Ax = b, x ≥ 0¦
mulţimea soluţiilor posibile ale problemei considerate.
Matricea restricţiilor este:
A
1
. . . A
n
A =
_
_
_
_
_
a
11
. . . a
1n
a
21
. . . a
2n
.
.
.
a
m1
. . . a
mn
_
_
_
_
_
Fie A
1
, A
2
, . . . , A
n
puncte din R
m
care reprezintă coloanele matricei A.
Definiţia 3.1.1. Se numeşte bază a problemei (3.1) orice submulţime a
spaţiului R
m
format din m vectori liniar independenţi alese dintre puntele
A
1
, . . . , A
n
.
47
i
i
“JATEK” — 2005/3/11 — 10:29 — page 48 — #48
i
i
i
i
i
i
48 3. Metoda simplex
Dacă B este o bază a problemei (3.1), atunci putem defini următoarele
mulţimi de indici:
B = ¦j ∈ ¦1, . . . , n¦ ∩ N : A
j
∈ B¦
mulţimea indicilor bazice şi:
¯
B = ¦i ∈ ¦1, . . . , n¦ : A
i
,∈ B¦
mulţimea indicilor nebazice.
Evident următoarele egalităţi sunt adevărate:
B ∪
¯
B = ¦1, . . . , n¦ şi B ∩
¯
B = ∅.
Considerăm o bază B a problemei (3.1) şi vom introduce următoarele
notaţii:
b =

j∈B
α
0j
A
j
, α
0j
∈ R, (3.2)
unde α
0j
reprezintă coordonatele vectorului b în baza B,
A
i
=

j∈B
α
ij
A
j
, pentru orice i ∈
¯
B α
ij
∈ R, (3.3)
unde α
ij
sunt coordonatele vectorului A
i
,∈ B în baza B,
d
0
=

j∈B
α
0j
c
j
(3.4)
d
i
=

j∈B
α
ij
c
j
−c
i
, pentru orice i ∈
¯
B. (3.5)
Definiţia 3.1.2. Spunem că baza B este bază primal admisibilă , dacă
pentru orice j ∈ B avem α
0j
≥ 0.
O soluţie asociată bazei B vom nota cu x
B
= (x
B
1
, . . . , x
B
n
) ∈ R
n
, unde
coordonatele punctului sunt date de relaţia:
x
B
j
=
_
α
0j
, dacă j ∈ B
0 , dacă j ∈
¯
B
Teorema 3.1.1. Dacă B este o bază primal admisibilă a problemei (3.1),
atunci x
B
∈ S.
Demonstraţie. Avem de arătat că x
B
este o soluţie posibilă, adică verifică
sistemul de restricţii şi condiţia de pozitivitate.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 49 — #49
i
i
i
i
i
i
3.1. Noţiuni de bază 49
Putem scrie:
A x
B
=
n

j=1
A
j
x
B
j
=

j∈B
α
0j
A
j
= b
(A x = (A
1
. . . A
n
)
_
_
_
x
1
.
.
.
x
n
_
_
_
= x
1
A
1
+ +x
n
A
n
)
Evident, pe baza definiţiei 3.1.2, avem x
B
≥ 0 ⇒ x
B
∈ S şi teorema este
demonstrată.
Schema algoritmică a algoritmului simplex primal:
1. să se determine o bază primal admisibilă B;
2. să se calculeze numerele reale α
0j
, α
ij
folosind relaţiile (3.2), (3.3);
3. să se calculeze numerele d
0
, d
i
folosind formulele (3.4), (3.5);
4. să se verifice semnul numerelor d
i
, i ∈
¯
B
Se pot ivi două situaţii:
a) Dacă pentru orice i ∈
¯
B, d
i
≤ 0 atunci baza B ales în pasul (1) este
o bază optimă. Astfel punctul x
0
= (x
0
1
, . . . , x
0
n
) ∈ R
n
cu coordonatele:
x
0
j
=
_
α
0j
, j ∈ B este soluţie optimă iar
0 , j ∈
¯
B
d
0
este valoarea minimă a funcţiei de scop;
Altfel:
b) Dacă există i ∈
¯
B astfel încât d
i
> 0,
atunci formează mulţimea:
¯
B
+
= ¦i ∈
¯
B : d
i
> 0¦.
5. Pentru fiecare i ∈
¯
B
+
să se verifice semnul numerelor α
ij
, j ∈ B.
Se pot ivi două situaţii:
a) Dacă există i ∈
¯
B
+
astfel încât pentru orice j ∈ B, α
ij
≤ 0,
atunci funcţia de scop a problemei este nemărginită inferior pe
mulţimea soluţiilor posibile şi problema nu admite soluţie (se obţine
optim infinit).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 50 — #50
i
i
i
i
i
i
50 3. Metoda simplex
Altfel:
b) dacă pentru orice i ∈
¯
B
+
există cel puţin un j ∈ B astfel încât
α
ij
> 0 atunci se va trece la pasul următor
6. să se determine un indice h ∈
¯
B
+
,
7. să se determine un indice k ∈ B astfel încât:
α
0k
α
hk
= min
_
α
0j
α
hj
, j ∈ B, α
hj
> 0
_
.
8. Să se înlocuiască în baza B vectorul A
k
cu A
h
şi cu noua bază astfel
obţinută se va trece la pasul (2) din algoritm.
Bazele se modifică până când se va ajunge la unul din criteriile de oprire
date în algoritm.
Pentru aplicarea algoritmului se întocmesc tabele, numite tabele sim-
plex primal.
Întocmirea tabelelor simplex primal
Se va presupune că s-a determinat o bază primal admisibilă B, pentru
pro-blema de optimizare liniară considerată.
Se va construi tabelul de mai jos:
2

1 2 ∗ ∗
3

3 6 7 8
∗ 4 5 9
∗ 10 ∗ ∗
Sectoarele indicate în tabel se vor completa după următoarea regulă:
- în sectorul 1 se va trece numărul de ordine al tabelului simplex;
- în sectorul 2 se vor trece componentele bazei B (m coloane) A
j
, j ∈ B;
- în sectorul 3 se vor trece punctele A
i
, i ∈
¯
B;
- în sectorul 4 vor fi scrise numerele α
0j
, j ∈ B;
- în sectorul 5 se va trece numărul d
0
, valoarea funcţiei de scop pentru
soluţia posibilă x
B
;
- în sectorul 6 vor fi scrise numerele α
ij
, j ∈ B;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 51 — #51
i
i
i
i
i
i
3.1. Noţiuni de bază 51
- în sectorul 7 se trec, pentru fiecare i ∈
¯
B, numerele d
i
.
Folosirea sectoarelor 8 şi 9 este opţională, pot fi trecute nişte valori care
nu erau menţionate în algoritm, însă care pot fi folosite pentru verificarea
corectitudinii calculelor:
- în sectorul 8 vor fi scrise numerele notate cu p
i
, ∀ i ∈
¯
B :
p
i
= 1 −

j∈B
α
ij
−d
i
;
- în sectorul 9 va fi scris numărul p
0
= 1 −

j∈B
α
0j
−d
0
.
După completarea celor 9 sectoare se va aplica pasul 4 din algoritm, adică
se va efectua testarea optimalităţii soluţiei posibile x
B
.
Dacă soluţia bazică nu este optimă şi problema dată nu are optim infinit
(se verifică în pasul 5), atunci se va alege h, adică o linie din tabel, numită
linie pivot.
Pentru reducerea numărului de iteraţii se recomandă să fie aleasă o linie
pentru care:
d
h
= max¦d
i
: i ∈
¯
B
+
¦
(S-a constatat că, în urma alegerii în acest mod a liniei de pivot, se reduce
numărul iteraţiilor simplex).
Cu alegerea lui h se alege de fapt vectorul care va intra în bază. Pasul
(6) se numeşte criteriu de intrare în bază.
Urmează completarea sectorului 10 din tabel.
În sectorul 10 vor fi trecute câturile
α
0j
α
hj
menţionate în pasul (7) din
algoritm. (Dacă α
hj
< 0, atunci raportul nu se calculează, locul respectiv
din tabel se barează.)
Coloana corespunzătoare indicelui k (ales în pasul 7 din algoritm) se
numeşte coloană pivot.
Alegerea coloanei pivot se numeşte criteriu de ieşire din bază.
α
hk
(elementul care se află la intersecţia liniei pivot cu coloana pivot) se
numeşte element pivot.
Aici se termină prima iteraţie simplex primal.
În continuare, în baza B, va fi înlocuit vectorul A
k
cu A
h
şi cu baza astfel
obţinută se va trece la întocmirea noului tabel simplex.
Trecerea dintr-un tabel simplex în altul
La o iteraţie de ordinul r avem tabelul simplex primal:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 52 — #52
i
i
i
i
i
i
52 3. Metoda simplex
r . . . A
j
. . . A
k
. . . ∗ ∗
. . . . . . . . . . . . . . . . . . . . . . . .
A
i
. . . α
ij
. . . α
ik
. . . d
i
p
i
. . . . . .
A
h
. . . α
hj
. . . α
hk
. . . d
h
p
h
. . . . . .
∗ . . . x
B
j
. . . x
B
k
. . . d
0
p
0
∗ . . . x
B
j

hj
. . . x
B
k

hk
∗ ∗
Completarea tabelului:
- numărul din sectorul 1 se măreşte cu o unitate;
- în sectorul 2 vectorul A
k
se înlocuieşte cu A
h
;
- în sectorul 3 vectorul A
h
se înlocuieşte cu A
k
;
- în locul elementului pivot se va scrie inversul acestuia, adică valoarea
1/α
hk
;
- pe coloana pivot, elementele vor fi înmulţite cu 1/α
hk
;
- pe linia pivot, elementele vor fi înmulţite cu −1/α
hk
;
- numerele din sectoarele 4, 5, 6, 7, 8, 9 se calculează folosind regula
drept-unghiului.
În sectorul (2’), respectiv (3’) vor fi trecute componentele vectorului c ∈
R
n
corespunzătoare indicilor bazici j ∈ B, respectiv indicilor nebazici i ∈ B.
Aceste valori sunt folosite doar la completarea primului tabel la calculul
diferenţelor d
i
¸şi d
0
.
Regula dreptunghiului
Considerând patru numere α, β, γ, δ, din tabelul simplex aşezate astfel
încât să formeze vârfurile unui dreptunghi:
α β
sd
d
d
d
d ©

γ δ
prin regula dreptunghiului valoarea lui α se va înlocui cu numărul:
α →
α δ −γ β
δ
,
unde δ este chiar elementul pivot α
hk
.
Astfel la iteraţia de ordinul r + 1 se va obţine următorul tabel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 53 — #53
i
i
i
i
i
i
3.1. Noţiuni de bază 53
r + 1 . . . A
j
. . . A
k
. . . ∗ ∗
. . . . . . . . . . . . . . . . . . . . . . . .
A
i
. . . α
ij

α
hj
α
ik
α
hk
. . .
α
ik
α
hk
. . . d
i

α
ik
d
h
α
hk
p
i

α
ik
p
h
α
hk
. . . . . .
A
h
. . . −
α
hj
α
hk
. . .
1
α
hk
. . . −
d
h
α
hk

p
h
α
hk
. . . . . .
∗ . . . x
B
j

α
hj
x
B
k
α
hk
. . .
x
B
k
α
hk
. . . d
0

x
B
k
d
h
α
hk
p
0

x
B
k
p
h
α
hk
∗ . . . . . . ∗ ∗
În continuare, prezentăm exemple numerice.
Problemă rezolvată
1. Să se determine soluţia optimă a problemei:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−x
2
−3x
3
+ 5x
4
→ min
−x
1
+x
2
+x
3
+x
4
= 1
x
1
−2x
2
+ 3x
3
+x
5
= 2
x
1
−x
2
+x
6
= 3
x
j
≥ 0, j = 1, 6
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A
5
A
6
A =
_
_
−1 1 1 1 0 0
1 −2 3 0 1 0
1 −1 0 0 0 1
_
_
.
Problema dată este în forma standard de lucru, deoarece în matricea A
este inclusă o matrice unitate de ordinul 3, iar componentele vectorului b
sunt pozitive.
Putem aplica direct algoritmul simplex primal.
Alegem baza B = (A
4
, A
5
, A
6
).
Observaţie. Dacă modelul este în forma standard de lucru, atunci baza pri-
mal admisibilă pe care o alegem este baza canonică din R
m
. Această alegere
este foarte avantajoasă, deoarece, după cum este cunoscut, în baza canonică,
fiecare vector îşi păstrează coordonatele iniţiale. Deci nu trebuie calculate
valorile α
0j
şi α
ij
. Astfel putem înlocui în tabel coordonatele iniţiale ale
vectorului b şi ale vectorilor A
i
.
Putem scrie:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 54 — #54
i
i
i
i
i
i
54 3. Metoda simplex
1 A
4
A
5
A
6
∗ ∗
A
1
-1 1 1 -6 6
A
2
1 -2 -1 6 -3
A
3
1 3 0 8 -11
∗ 1 2 3 5 -10
∗ 1 2/3 - ∗ ∗
Din sectorul 4 se citeşte soluţia bazică:
x
B
= (0 0 0 1 2 3)
iar din sectorul 5 valoarea funcţiei de scop pentru această soluţie:
f(x
B
) = d
0
= 5.
Soluţia nu este optimă d
2
> 0, d
3
> 0. Trecem la următoarea iteraţie simplex:
2 A
4
A
3
A
6
∗ ∗
A
1
-4/3 1/3 1 -26/3 29/3
A
2
5/3 -2/3 -1 34/3 -31/3
A
5
-1/3 1/3 0 -8/3 11/3
∗ 1/3 2/3 3 -1/3 -8/3
∗ 1/5 - - ∗ ∗
x
B
= (0 0 2/3 1/3 0 3)
f(x
B
) = −1/3.
3 A
2
A
3
A
6
∗ ∗
A
1
-4/5 -1/5 1/5 2/5 7/5
A
4
3/5 2/5 3/5 -34/5 31/5
A
5
-1/5 1/5 -1/5 -2/5 8/5
∗ 1/5 4/5 16/5 -13/5 -3/5
∗ - - 16 ∗ ∗
x
B
= (0 1/5 4/5 0 0 16/5)
f(x
B
) = −13/5
4 A
2
A
3
A
1
∗ ∗
A
6
4 1 5 -2 -7
A
4
3 1 3 -8 2
A
5
-1 0 -1 0 3
∗ 13 4 16 -9 -23
∗ - - - ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 55 — #55
i
i
i
i
i
i
3.1. Noţiuni de bază 55
Soluţia optimă a problemei este: x
0
= (16 13 4 0 0 0), iar valoarea op-
timă a funcţiei de scop este f
min
= d
0
= −9.
2. Să se determine soluţia optimă a problemei:
_
¸
¸
_
¸
¸
_
f = 2x
1
+x
2
+ 3x
3
+ 5x
4
+ 9x
5
→ min
x
1
+ 2x
3
+x
4
+ 3x
5
= 15
x
2
+x
3
+ 2x
4
+x
5
= 12
x ≥ 0
A =
_
_
A
1
A
2
A
3
A
4
A
5
1 0 2 1 3
0 1 1 2 1
_
_
Se va alege baza B = (A
1
, A
2
), bază primal admisibilă.
Aplicând algoritmul simplex primal, se vor obţine pe rând următoarele
tabele:
1 A
1
A
2
∗ ∗
A
3
2 1 2 -4
A
4
1 2 -1 -1
A
5
3 1 -2 -1
∗ 15 12 42 -68
∗ 15/2 12 ∗ ∗
x
B
= (15 12 0 0 0), f(x)
B
= 42
2 A
3
A
2
∗ ∗
A
1
1/2 -1/2 -1 2
A
4
1/2 3/2 -2 1
A
5
3/2 -1/2 -5 5
∗ 15/2 9/2 27 -38
∗ - - ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 56 — #56
i
i
i
i
i
i
56 3. Metoda simplex
Soluţia optimă a problemei este:
x
0
= (0 9/2 15/2 0 0) şi f
min
= 27.
3.2 Bazele teoretice ale algoritmului simplex primal
Teorema 3.2.1. (Criteriul de îmbunătăţire a soluţiei) Fie x
B
o soluţie
bazică nedegenerată. Dacă există cel puţin un indice j = 1, n pentru care avem
d
j
< 0 în cazul unei probleme de maxim (sau d
j
> 0 în cazul unei probleme
de minim), atunci se poate determina o altă soluţie de bază x
B

care să dea
o valoare mai bună decât x
B
pentru funcţia de scop, iar baza corespunzătoare
soluţiei x
B

să difere de baza corespunzătoare soluţiei x
B
printr-un singur
vector.
Demonstraţie. Putem presupune, fără restrângerea generalităţii (variabilele
pot fi renumerotate), că:
x
B
= (x
1
, . . . , x
m
, 0, . . . , 0)
adică:
B = (A
1
, A
2
, . . . , A
m
),
pentru modelul:
_
_
_
f(x) = (c, x) → max
Ax = b
x ≥ 0
Dacă calculăm diferenţele d
i
cu formula d
i
= c
i

j∈B
α
ij
c
j
pentru orice
i ∈
¯
B, atunci criteriul de îmbunătăţire pentru modele de maximizare va fi
identic cu cel folosit la modelele de minimizare.
Adică, în cazul problemelor de maximizare, de asemenea, algoritmul sim-
plex va fi continuat, dacă există cel puţin un i ∈
¯
B astfel încât d
i
> 0.
Acum construim B

astfel încât în baza B înlocuim vectorul A
k
cu A
h
(modul de alegere a vectorilor va fi precizat mai târziu).
Presupunem că B

este o bază pentru modelul considerat.
Atunci soluţia asociată acestei baze o putem scrie în forma:
x
B

= (y
1
, . . . , y
k−1
, 0, y
k+1
, . . . , y
m
, 0, . . . , 0, y
h
, 0, . . . , 0).
I. Cercetăm alegerea vectorului A
k
ce trebuie înlocuit în baza B, astfel
încât soluţia x
B

să fie posibilă.
Adică să avem y
i
≥ 0, i ∈ ¦1, 2, . . . , k −1, k +1, . . . , m, h¦, (se va verifica
această condiţie mai târziu).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 57 — #57
i
i
i
i
i
i
3.2. Bazele teoretice ale algoritmului simplex primal 57
Folosind faptul că x
B
şi x
B

satisfac sistemul de restricţii, scriem:
_
¸
¸
_
¸
¸
_
m

j=1
x
j
A
j
=
m

j=1
j=k
y
j
A
j
+y
h
A
h
= b
A
h
=

m
j=1
α
h
j
A
j
În urma acestor egalităţi avem:
m

j=1
x
j
A
j
=
m

j=1
j=k
y
j
A
j
+y
h
m

j=1
α
h
j
A
j
Putem scrie:
m

j=1
x
j
A
j
=
m

j=1
j=k
y
j
A
j
+y
h
m

j=1
j=k
α
hj
A
j
+y
h
α
hk
A
k

m

j=1
x
j
A
j
=
m

j=1
j=k
[y
j
+y
h
α
hj
]A
j
+y
h
α
hk
A
k
(3.6)
Deci în baza B, am obţinut două descompuneri pentru vectorul b. Deoarece
descompunerea unui vector într-o bază este unică, rezultă că trebuie să aibă
loc relaţiile:
x
j
= y
j
+y
h
α
hj
pentru j ∈ ¦1, k −1, k + 1, . . . , m¦
x
k
= y
h
α
hk
(3.7)
Aceste relaţii dau posibilitatea calculării componentelor soluţiei x
B
în funcţie
de componentele soluţiei x
B

.
Dar scopul urmărit este acela de a exprima componentele soluţiei x
B

în
funcţie de componentele soluţiei x
B
.
Astfel relaţiile (3.7) vor fi scrise în următoarea formă:
y
h
=
x
k
α
hk
y
j
= x
j
−y
h
α
hj
= x
j

x
k
α
hk
α
hj
pentru
j ∈ ¦1, . . . , k −1, k + 1, . . . , m¦.
(3.8)
Pentru a ilustra modul de utilizare a formulelor (3.8), prezentăm tabelul
simplex:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 58 — #58
i
i
i
i
i
i
58 3. Metoda simplex
r . . . A
j
. . . A
k
. . . x x
. . . . . . . . . . . . . . . . . . . . . . . .
A
i
. . . α
ij
. . . α
ik
. . . d
i
p
i
. . . . . .
A
h
. . . α
hj
. . . α
hk
. . . d
h
p
h
. . . . . .
x . . . x
B
j
. . . x
B
k
. . . d
0
p
0
x . . . x
B
j

hj
. . . x
B
k

hk
x x
Avem d
h
> 0, astfel putem alege A
h
, ca vector care intră în bază.
În formula (3.8) apare elementul α
hk
, care se găseşte la intersecţia coloanei
vectorului A
k
, care va ieşi din bază, cu linia vectorului A
h
, care va intra în
bază.
α
hk
se numeşte element pivot.
Componenta y
h
(cu notaţiile folosite α
0h
) ce urmează să ia locul compo-
nentei x
k
(adică α
0k
) se obţine prin împărţirea acesteia cu elementul pivot
_
α
0h
=
α
0k
α
hk
_
.
Celelalte componente bazice ale soluţiei x
B

se calculează prin regula
drept-unghiului dat, astfel:
y
k
=
x
k
α
hk
şi y
j
=
x
j
α
hk
−x
k
α
hj
α
hk
Dar vectorul A
k
nu a fost încă precizat.
Fixarea acestui vector se va face cu condiţia ca soluţia x
B

să fie posibilă.
Astfel reluăm condiţiile y
j
≥ 0, i ∈ ¦1, . . . , k−1, k+1, . . . , m, h¦. Pe baza
relaţiilor (3.8), va trebui să avem:
x
k
α
hk
≥ 0 (3.9)
x
j

x
k
α
hk
α
hj
≥ 0, pentru j ∈ ¦1, . . . , k −1, k + 1, . . . , m¦.(3.10)
Din ipoteză (x
B
soluţie bazică posibilă) avem x
k
> 0 rezultă pe baza inegal-
ităţii (3.9) că elementul pivot α
hk
trebuie să fie strict pozitiv.
Acum considerăm inegalitatea (3.10).
Ştim că x
j
şi x
k
sunt pozitive (x
B
soluţie bazică posibilă).
Va trebui să avem:
x
j

x
k
α
hk
α
hj
≥ 0.
Dacă α
hj
≤ 0 atunci inegalitatea este evidentă.
Notăm mulţimea indicilor j, pentru care α
hj
> 0, cu:
J = ¦j [ α
hj
> 0¦ (B
+
= ¦j [ α
hj
> 0¦)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 59 — #59
i
i
i
i
i
i
3.2. Bazele teoretice ale algoritmului simplex primal 59
Putem scrie atunci:
x
k
α
hk

x
j
α
hj
, j ∈ J,
ceea ce înseamnă că indicele k corespunzător vectorului A
k
, ce urmează a fi
eliminat din baza B, se poate determina cu ajutorul relaţiei:
x
k
α
hk
= min
j∈J
_
x
j
α
hj
_
= min
_
α
0j
α
hj
[ α
hj
> 0
_
(3.11)
Pentru utilizarea relaţiei (3.11) se ataşează tabelului o linie suplimentară
(sectorul 10) în care se trec rapoartele dintre componentele soluţiei x
B
şi
componentele corespunzătoare vectorului A
h
ce intră în bază (rapoarte ce se
calculează numai pentru componentele strict pozitive de pe linia h).
Dacă α
hj
≤ 0 atunci se barează locul respectiv din tabel.
Dintre rapoartele pozitive din sectorul 10, pe baza relaţiei (3.11), va fi
ales cel cu valoarea minimă, obţinându-se vectorul A
k
, care va fi eliminat din
baza B.
Dacă avem mai multe rapoarte minime egale, atunci poate fi ales oricare
dintre ele. În acest caz vom obţine o soluţie degenerată (în următorul tabel
simplex, printre numerele α
0j
vom avea zerouri).
Această regulă poartă numele de criteriu de ieşire din bază.
II. Avem de demonstrat că soluţia x
B

construită în etapa (I) a demon-
straţiei este într-adevăr mai bună decât soluţia x
B
, adică are loc relaţia
f(x
B

) > f(x
B
).
Folosind relaţiile (3.8), calculăm diferenţa:
f(x
B

) −f(x
B
) =
_
_
_
_
m

j=1
j=k
c
j
y
j
+c
h
y
h
_
_
_
_

m

j=1
c
j
x
j
=
=
m

j=1
j=k
c
j
_
x
j

x
k
α
hk
α
hj
_
+c
h

x
k
α
hk

m

j=1
c
j
x
j
(3.12)
Adunând şi scăzând termenul obţinut pentru j = k în prima sumă de mai
sus, aceasta se poate scrie sub forma:
m

j=1
j=k
c
j
_
x
j

x
k
α
hk
α
hj
_
=
m

j=1
c
j
_
x
j

x
k
α
hk
α
hj
_

−c
k
_
x
k

x
k
α
hk
α
hk
_
=
m

j=1
c
j
_
x
j

x
k
α
hk
α
hj
_
−0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 60 — #60
i
i
i
i
i
i
60 3. Metoda simplex
Înlocuind în relaţia (3.12), putem scrie:
f(x
B

) −f(x
B
) =
m

j=1
c
j
_
x
j

x
k
α
hk
α
hj
_
+c
h
x
k
α
hk

m

j=1
c
j
x
j
=
=
m

j=1
c
j
x
j

m

j=1
c
j
x
k
α
hk
α
hj
+c
h
x
k
α
hk

m

j=1
c
j
x
j
=
= c
h
x
k
α
hk

m

j=1
c
j
x
k
α
hk
α
hj
=
x
k
α
hk
_
_
c
h

m

j=1
c
j
α
hj
_
_
=
x
k
α
hk
d
h
Evident că trebuie să avem d
h
> 0, încât inegalitatea cerută să aibă loc
(aşadar alegem vectorul A
h
).
Atunci f(x
B

) − f(x
B
) > 0 ⇔ f(x
B

) ≥ f(x
B
). O astfel de alegere se
numeşte criteriu de intrare în bază.
Teorema 3.2.2. (Testul de optimalitate)
Dacă pentru o soluţie bazică avem d
i
≤ 0 (i = 1, n) în cazul unei probleme
de minimizare (sau d
i
≥ 0, i = 1, n pentru o problemă de maximizare), atunci
soluţia este optimă (problema are optim finit).
Demonstraţie. Fie x
B
o soluţie de bază.
Fără restrângerea generalităţii putem scrie B = (A
1
, . . . , A
m
) şi x
B
=
(x
0
1
, . . . , x
0
m
, 0, . . . , 0), x
0
i
≥ 0.
Considerăm o soluţie posibilă x ∈ S oarecare, x = (x
1
, . . . , x
n
).
Având problema de maximizare considerată mai sus, vom demonstra că:
f(x) −f(x
0
) ≤ 0.
Deoarece x
B
, x sunt soluţii posibile, rezultă că verifică sistemul de restricţii.
Avem:
n

j=1
x
j
A
j
=
m

k=1
x
0
k
A
k
= b (3.13)
Vectorii din A care nu aparţin lui B pot fi scrişi ca o combinaţie liniară a
bazei, adică:
A
j
=
m

k=1
α
jk
A
k
(3.14)
Înlocuim în relaţia (3.13) şi obţinem:
n

j=1
x
j
_
m

k=1
α
jk
A
k
_
=
m

k=1
x
0
k
A
k
m

k=1
_
_
n

j=1
x
j
α
jk
_
_
A
k
=
m

k=1
x
0
k
A
k
i
i
“JATEK” — 2005/3/11 — 10:29 — page 61 — #61
i
i
i
i
i
i
3.2. Bazele teoretice ale algoritmului simplex primal 61
Astfel s-a obţinut descompunerea vectorului b în baza B, care, fiind unică,
se poate scrie:
n

j=1
x
j
α
jk
= x
0
k
, k = 1, m (3.15)
Acum revenim la ceea ce avem de demonstrat şi scriem:
f(x) −f(x
0
) =
n

j=1
c
j
x
j

m

k=1
c
k
x
0
k
=
=
n

j=1
c
j
x
j

m

k=1
c
k
_
_
n

j=1
x
j
α
jk
_
_
=
=
n

j=1
c
j
x
j

n

j=1
x
j
_
m

k=1
c
k
α
jk
_
=
=
n

j=1
x
j
_
c
j

m

k=1
c
k
α
jk
_
= −
n

j=1
x
j
d
j
Deoarece d
j
≤ 0 pentru orice j = 1, n rezultă că f(x) −f(x
0
) ≤ 0 şi teorema
este demonstrată.
Teorema 3.2.3. (recunoaşterea optimului infinit)
Dacă există un indice h ∈
¯
B cu d
h
> 0, astfel încât toate numerele α
hj

0, j ∈ B, atunci problema are optim infinit.
Demonstraţie. Avem α
hj
≤ 0 pentru orice j ∈ B.
I. Fie α
hj
= 0 pentru orice j ∈ B.
Putem alege h ca linie pivot, deoarece d
h
> 0.
Dar având pentru orice j ∈ B, α
hj
≤ 0
_
y
h
=
x
k
α
hk
y
j
= x
j
−y
h
α
hj
_
, rezultă
că din (3.7)soluţia şi evident funcţia obiectiv devine infinită.
II. Dacă α
hj
< 0 pentru orice j ∈ B, atunci noile soluţii nu mai sunt
admisibile. Funcţia obiectiv poate lua orice valoare (nu avem element pivot).
Observaţie. Este suficient să se cunoască algoritmul simplex pentru re-
zolvarea problemelor de minimizare.
Dacă se doreşte rezolvarea unui model de maximizare, atunci se va înmulţi
formal funcţia de scop cu −1 şi se va rezolva modelul cu funcţia de scop −f.
În acest caz se va determina valoarea minimă a funcţiei de scop pe acelaşi
domeniu determinat de restricţiile problemei de maximizare. Soluţia optimă
a acestui model este optimă şi pentru modelul iniţial, iar f
max
= −d
0
=
−f
min
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 62 — #62
i
i
i
i
i
i
62 3. Metoda simplex
Problemă rezolvată
Să se determine soluţia optimă a problemei:
_
¸
¸
_
¸
¸
_
f(x) = 2x
2
+x
3
→ max
x
1
+x
2
−2x
3
≤ 7
−3x
1
+x
2
+ 2x
3
≤ 3
x ∈ R
3
+
_
¸
¸
_
¸
¸
_
−f(x) = −2x
2
−x
3
→ min
x
1
+x
2
−2x
3
+x
4
= 7
−3x
1
+x
2
+ 2x
3
+x
5
= 3
x ∈ R
5
+
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A
5
_
1 1 −2 1 0
−3 1 2 0 1
_
Modelul considerat este în forma standard de lucru. Rezolvăm cu algo-
ritmul simplex primal.
1 A
4
A
5
∗ ∗
A
1
1 -3 0 3
A
2
1 1 2 -3
A
3
-2 2 1 0
∗ 7 3 0 -9
∗ 7 3 ∗ ∗
2 A
4
A
2
∗ ∗
A
1
4 -3 6 -6
A
5
-1 1 -2 3
A
3
-4 2 -3 6
∗ 4 3 -6 0
∗ 1 - ∗ ∗
3 A
1
A
2
∗ ∗
A
4
1/4 3/4 -6/4 6/4
A
5
-1/4 1/4 -2/4 6/4
A
3
-1 -1 3 0
∗ 1 6 -12 6
∗ ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 63 — #63
i
i
i
i
i
i
3.2. Bazele teoretice ale algoritmului simplex primal 63
Există în acest tabel d
3
= 3 > 0 pentru care toate numerele α
31
= −1 <
0, α
32
= −1 < 0, ceea ce înseamnă că funcţia de scop este nemărginită inferior
pe S, adică modelul are optim infinit.
Observaţie. Dacă în pasul (7) din algoritm avem mai multe rapoarte min-
ime egale (în tabel, sectorul 10), atunci în urma alegerii arbitrare a unuia
dintre vectorii consideraţi pentru eliminarea din bază vom fi conduşi la de-
generarea soluţiei bazice.
Observaţie. În aplicaţii practice este foarte importantă recunoaşterea
optimu-lui multiplu.
Dacă în urma aplicării algoritmului simplex primal, la ultima iteraţie, nu
toate diferenţele d
i
sunt strict negative, adică există un d
h
= 0 pentru care
nu toate numerele α
hj
, j ∈ B sunt negative, atunci problema admite optim
multiplu. În această situaţie se va alege h ca linie pivot şi se va efectua
încă o iteraţie simplex. Mulţimea soluţiilor optime este combinaţia convexă
a soluţii-lor obţinute.
Problemă rezolvată
Să se determine mulţimea soluţiilor optime ale problemei:
_
¸
¸
_
¸
¸
_
f(x) = 2x
1
+x
2
+ 4x
3
+ 3x
4
+ 6x
5
→ max
x
1
+x
3
+ 2x
4
+x
5
= 10
x
2
+x
3
+x
4
+ 2x
5
= 12
x ≥ 0
_
¸
¸
_
¸
¸
_
−f(x) = −2x
1
−x
2
−4x
3
−3x
4
−6x
5
→ min
x
1
+x
3
+ 2x
4
+x
5
= 10
x
2
+x
3
+x
4
+ 2x
5
= 12
x ≥ 0
A
1
A
2
A
3
A
4
A
5
A =
_
1 0 1 2 1
0 1 1 1 2
_
, B = (A
1
, A
2
)
1 A
1
A
2
∗ ∗
A
3
1 1 1 -2
A
4
2 1 -2 0
A
5
1 2 2 -4
∗ 10 12 -32 11
∗ 10 6 ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 64 — #64
i
i
i
i
i
i
64 3. Metoda simplex
2 A
1
A
5
∗ ∗
A
3
1/2 1/2 0 0
A
4
3/2 1/2 -3 2
A
2
-1/2 1/2 -1 2
∗ 4 6 -44 35
∗ 8 12 ∗ ∗
Soluţia optimă obţinută este x
01
= (4, 0, 0, 0, 6), iar valoarea optimă a
funcţiei de scop este f
max
= 44.
Efectuăm încă o iteraţie simplex, deoarece d
3
= 0 şi α
31
> 0, α
35
> 0.
Avem astfel:
3 A
3
A
5
∗ ∗
A
1
2 -1 0 0
A
4
3 -1 -3 2
A
2
-1 1 -1 2
∗ 8 2 -44 35
∗ ∗ ∗
Soluţia optimă obţinută este x
02
= (0, 0, 8, 0, 2), iar f
max
= 44.
Deci am obţinut două soluţii optime, ceea ce înseamnă că problema are
optim multiplu. Mulţimea soluţiilor optime este combinaţia convexă a soluţi-
ilor obţinute:
x
0
= λx
01
+ (1 −λ)x
02
, pentru orice λ ∈ [0, 1]. Avem:
x
0
= λ
_
_
_
_
_
_
4
0
0
0
6
_
_
_
_
_
_
+ (1 −λ)
_
_
_
_
_
_
0
0
8
0
2
_
_
_
_
_
_
=
_
_
_
_
_
_

0
8 −8λ
0
6λ + 2 −2λ
_
_
_
_
_
_
, λ ∈ [0, 1]
Observaţie. Pentru λ = 0 sau λ = 1 avem soluţiile bazice calculate mai
sus. Pentru λ ∈ (0, 1) obţinem şi soluţii optime nebazice (de exemplu, pentru
λ = 0, 5). Deci în cazul optimului multiplu S ,⊂ S
B
.
Numai în cazul soluţiei optime unice avem S ⊆ S
B
.
3.3 Rezolvarea modelelor care, iniţial, nu admit
soluţii de bază
Algoritmul simplex primal poate fi utilizat cu succes numai în cazul în
care modelul de optimizare liniară cu restricţii este în forma standard de
lucru.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 65 — #65
i
i
i
i
i
i
3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 65
În aceste cazuri soluţia asociată bazei canonice este soluţie de bază in-
iţială, deoarece după cum s-a arătat baza este primal admisibilă.
Dacă modelul dat spre rezolvare nu este în forma standard de lucru,
atunci prima dată trebuie formulat un procedeu cu care se poate genera o
bază primal admisibilă, adică o soluţie bazică iniţială.
În acest scop poate fi aplicată metoda celor două faze sau metoda coefi-
cienţilor de penalizare. În continuare, vom prezenta aceste metode.
I. Metoda celor două faze
Cu metoda celor două faze, în prima fază de lucru, se va determina o
soluţie bazică iniţială după care, în faza a doua de lucru, se va rezolva modelul
considerat cu algoritmul simplex primal.
Fie următorul model de programare liniară cu restricţii:
_
_
_
f(x) = (c, x) → max / min
Ax = b
x ≥ 0
Presupunem că problema dată nu este în forma standard de lucru, adică nu
admite soluţie de bază iniţială.
În continuare, în scopul aplicării metodei celor două faze, fără restrân-
gerea generalităţii, vom presupune că toate componentele lui b sunt
pozitive şi în matricea A nu este inclusă o matrice unitate de or-
dinul m.
Introducem variabile artificiale u
i
, i = 1, m cu scopul obţinerii unei ma-
trici unitate de ordinul m în matricea restricţiilor.
După introducerea variabilelor artificiale se efectuează:
(a) rezolvarea unei probleme de minimizare obţinute în urma înlocuirii
funcţiei de scop a problemei date cu o funcţie formată din suma tuturor
variabilelor artificiale:
_
¸
¸
¸
_
¸
¸
¸
_
g(u) =
m

i=1
u
i
→ min
Ax +I
m
U = b
x ≥ 0, u ≥ 0
(b) după rezolvarea problemei de la punctul (a) cu algoritmul simplex
primal, trecem în faza a doua de lucru unde vom întâlni una din următoarele
situaţii:
1. Dacă g
min
= 0, u
i
= 0 pentru orice i = 1, m, şi nici un vector artificial
nu este în baza optimă, atunci se va începe rezolvarea problemei iniţiale.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 66 — #66
i
i
i
i
i
i
66 3. Metoda simplex
Soluţia obţinută, în prima fază de lucru, este soluţie bazică iniţială pen-
tru problema considerată, iar baza optimă este bază primal admisibilă.
2. Dacă g
min
= 0, u
i
= 0, i = 1, m, dar cel puţin un vector artificial se află
în baza optimă, atunci soluţia problemei rezolvate este soluţie optimă
şi pentru problema iniţială.
Valoarea funcţiei de scop se va obţine prin calcul direct (înlocuind
soluţia optimă în funcţia de scop). Evident în acest caz, problema
iniţială are soluţie optimă degenerată.
3. Dacă g
min
,= 0, (înseamnă că există cel puţin o variabilă artificială strict
pozitivă în soluţie), atunci problema considerată nu admite soluţie op-
timă.
Probleme rezolvate
Prezentăm un exemplu pentru fiecare caz în parte.
(a) Să se determine soluţia optimă a problemei:
(a)
_
¸
¸
_
¸
¸
_
f(x) = 3x
1
+ 2x
2
+x
3
+ 2x
4
→ max
2x
1
+x
2
+x
3
+ 2x
4
= 12
x
1
+ 2x
2
+x
3
+ 3x
4
= 14
x ≥ 0
Problema nu este în forma standard de lucru, deci nu se poate aplica în
mod direct algoritmul simplex primal.
Cu metoda celor două faze se va determina o soluţie bazică iniţială, o
bază primal admisibilă.
În prima fază de lucru se va rezolva modelul:
_
¸
¸
_
¸
¸
_
g(u) = u
1
+u
2
→ min
2x
1
+x
2
+x
3
+ 2x
4
+u
1
= 12
x
1
+ 2x
2
+x
3
+ 3x
4
+u
2
= 14
x ≥ 0, u ≥ 0
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
u
1
u
2
A =
_
2 1 1 2 1 0
1 2 1 3 0 1
_
Avem, pe rând, tabelele simplex:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 67 — #67
i
i
i
i
i
i
3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 67
1 u
1
u
2
∗ ∗
A
1
2 1 3 -5
A
2
1 2 3 -5
A
3
1 1 2 -3
A
4
2 3 5 -9
∗ 12 14 26 -51
∗ 6 14/3 ∗ ∗
2 u
1
A
4
∗ ∗
A
1
4/3 1/3 4/3 -2
A
2
-1/3 2/3 -1/3 1
A
3
1/3 1/3 1/3 0
u
2
-2/3 1/3 -5/3 3
∗ 8/3 14/3 8/3 -9
∗ 2 14 ∗ ∗
În următorul tabel simpex, putem reduce numărul liniilor, deoarece linia
vectorului artificial u
2
întotdeauna o vom putea elimina. Dacă reuşim să
scoatem un vector artificial din bază, nu vom avea interesul să-l introducem
încă o dată la o altă iteraţie simplex. Putem scrie:
3 A
1
A
4
∗ ∗
u
1
3/4 -1/4 -1 3/2
A
2
-1/4 3/4 0 1/2
A
3
1/4 1/4 0 +1/2
∗ 2 4 0 -5
∗ ∗ ∗
Dacă toate diferenţele d
i
sunt negative, înseamnă că am ajuns la ultima
iteraţie simplex, deoarece g
min
= 0, u
1
= u
2
= 0, B
0
= (A
1
A
4
) rezultă că
soluţia obţinută x
B
= (2 0 0 4) este soluţie de bază iniţială petru prob-
lema dată.
De fapt, în prima fază de lucru, se urmăreşte schimbarea formei de
reprezentare. Din tabelul 3, dacă scriem matricea restricţiilor:
A =
_
1 −1/4 1/4 0
0 3/4 1/4 1
_
şi vectorul b = (2 4) atunci modelul iniţial se transformă astfel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 68 — #68
i
i
i
i
i
i
68 3. Metoda simplex
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 3x
1
+ 2x
2
+x
3
+ 2x
4
→ max
x
1

1
4
x
2
+
1
4
x
3
= 2
3
4
x
2
+
1
4
x
3
+x
4
= 4
x ≥ 0
Acest model este în forma standard de lucru. Se va rezolva cu algoritmul
simplex primal. Se vor obţine pe rând:
1 A
1
A
4
∗ ∗
A
2
-1/4 3/4 5/4 -3/4
A
3
1/4 1/4 -1/4 3/4
∗ 2 4 -14 9
∗ - 16/3 ∗ ∗
2 A
1
A
2
∗ ∗
A
4
1/3 4/3 -5/3 1
A
3
1/3 1/3 -2/3 1
∗ 10/3 16/3 -62/3 39/3
∗ ∗ ∗
x
0
=
_
10
3
,
16
3
, 0, 0
_
f
max
=
62
3
= −d
0
.
Se poate observa că nu este necesar să se scrie după prima fază de lu-
cru modelul transformat, ci din ultimul tabel simplex, obţinut în prima fază
de lucru, în urma eliminării liniei vectorului artificial u
1
şi a eliminării el-
ementelor din sectoarele 5,7,8 şi 9 cu ajutorul funcţiei de scop a problemei
iniţiale putem întocmi primul tabel din faza a doua de lucru.
(b) Să se rezolve problema:
_
¸
¸
_
¸
¸
_
f(x) = 2x
1
+x
2
+x
3
→ min
2x
1
+ 3x
2
+ 3x
3
= 12
x
1
+x
2
+ 2x
3
= 8
x ≥ 0
Matricea restricţiilor fiind:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 69 — #69
i
i
i
i
i
i
3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 69
A
1
A
2
A
3
A =
_
2 3 3
1 1 2
_
modelul nu este în forma standard de lucru.
I. Scriem:
_
¸
¸
_
¸
¸
_
g(u) = u
1
+u
2
→ min
2x
1
+ 3x
2
+ 3x
3
+u
1
= 12
x
1
+x
2
+ 2x
3
+u
2
= 8
x ∈ R

+
, u ∈ R
2
+
A
1
A
2
A
3
u
1
u
2
A =
_
2 3 3 1 0
1 1 2 0 1
_
, B = (u
1
, u
2
)
1 u
1
u
2
∗ ∗
A
1
2 1 3 -5
A
2
3 1 4 -7
A
3
3 2 5 -9
∗ 12 8 20 -39
∗ 4 4 ∗ ∗
2 A
3
u
2
∗ ∗
A
1
2/3 -1/3 -1/3 1
A
2
1 -1 -1 2
u
1
1/3 -2/3 -5/3 3
∗ 4 0 0 -3
∗ ∗ ∗
În prima fază de lucru s-a obţinut g
min
= 0 x
0
= (0, 0, 4) B = (x
3
, u
2
)
cu u
2
= 0, deci soluţia obţinută este soluţie optimă şi pentru problema
iniţială, iar valoarea funcţiei de scop se va obţine prin calcul direct şi va fi
f
min
= 4.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 70 — #70
i
i
i
i
i
i
70 3. Metoda simplex
(c). Să se arate că problema nu admite soluţie optimă:
Fie modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 2x
1
+x
2
+x
3
+ 2x
4
→ min
2x
1
+x
2
+ 2x
3
+ 2x
4
= 16
x
1
+x
2
+ 2x
3
+ 2x
4
= 10
2x
1
+x
2
+x
3
+ 2x
4
= 20
x ≥ 0
cu:
A =
_
_
2 1 2 2
1 1 2 2
2 1 1 2
_
_
.
I. În prima fază de lucru scriem:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(u) = u
1
+u
2
+u
3
→ min
2x
1
+x
2
+ 2x
3
+ 2x
4
+u
1
= 16
x
1
+x
2
+ 2x
3
+ 2x
4
+u
2
= 10
2x
1
+x
2
+x
3
+ 2x
4
+u
3
= 20
x ∈ R
4
+
, u ∈ R
3
+
A
1
A
2
A
3
A
4
u
1
u
2
u
3
A =
_
_
2 1 2 2 1 0 0
1 1 2 2 0 1 0
2 1 1 2 0 0 1
_
_
, B = (u
1
, u
2
, u
3
)
1 u
1
u
2
u
3
∗ ∗
A
1
2 1 2 5 -9
A
2
1 1 1 3 -5
A
3
2 2 1 5 -9
A
4
2 2 2 6 -11
∗ 16 10 20 46 -91
∗ 8 5 10 ∗ ∗
2 u
1
A
4
u
3
∗ ∗
A
1
1 1/2 1 2 -7/2
A
2
0 1/2 0 0 1/2
A
3
0 1 -1 -1 2
u
2
-1 1/2 -1 -3 11/2
∗ 6 5 10 16 -36
∗ 6 10 10 ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 71 — #71
i
i
i
i
i
i
3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 71
3 A
1
A
4
u
3
∗ ∗
u
1
1 -1/2 -1 -2 7/2
A
2
0 1/2 0 0 1/2
A
3
0 1 -1 -1 2
∗ 6 2 4 4 -15
∗ ∗ ∗
g
min
= d
0
= 4 ,= 0
u
1
= u
2
= 0, u
3
= 4
Deoarece g
min
= 4 ,= 0 ⇒ problema iniţială nu admite soluţie.
II. Metoda coeficienţilor de penalizare
Fie modelul:
_
_
_
f(x) = (c, x) → min / max
Ax = b , A ∈ /
m,n
(R)
x ≥ 0 b ∈ R
m
, c ∈ R
n
(3.16)
Presupunem că problema (3.16) nu este în forma standard de lucru, adică în
matricea A nu avem o matrice unitate de ordinul m. Fără restrângerea gene-
ralităţii, putem presupune că toate componentele vectorului b sunt pozitive.
Introducem variabile artificiale (maximumm astfel de variabile) cu scopul
obţinerii unei matrici unitate de ordinul m.
Aceste variabile strică vechiul echilibru al restricţiilor şi soluţiile modelu-
lui (model lărgit) astfel obţinut, în general, nu corespund cu soluţiile mod-
elului propus spre rezolvare.
Evident, pentru ca o soluţie a modelului lărgit să fie soluţie şi pentru
modelul iniţial, trebuie ca în ea toate variabilele artificiale să fie nule. De
aceea forţăm anularea variabilelor artificiale prin introducerea acestora în
funcţia de scop cu un coeficient M (prin adunare în cazul problemelor de
minimizare şi prin scădere în cazul problemelor de maximizare).
Coeficientul de penalizare M este considerat ca un număr arbitrar
po-zitiv, relativ mare faţă de ceilalţi coeficienţi din model.
Rolul acestor coeficienţi de penalizare este acela de a nu lăsa funcţia de
scop să-şi atingă valoarea optimă până când nu se anulează toate variabilele
artificiale.
Observaţie.
1. Dacă prin aplicarea algoritmului s-a ajuns la o soluţie optimă a mod-
elului lărgit, fără ca toate variabilele artificiale să aibă valori nule în
această soluţie, atunci modelul iniţial nu admite soluţie optimă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 72 — #72
i
i
i
i
i
i
72 3. Metoda simplex
2. În calculele manuale nu este necesară particularizarea valorii lui M. Pe
parcursul algoritmului simplex îl privim ca pe un număr relativ mare
în raport cu celelalte valori numerice din model.
3. Deoarece valorile variabilelor artificiale trebuie să fie nule, orice vector
artificial ieşit din bază nu va mai fi cercetat pentru o eventuală introdu-
cere în bază (deci nu se calculează diferenţa d
i
), iar la următoarea
iteraţie linia respectivă se va elimina din tabel.
Problemă rezolvată
1. Fie modelul de optimizare liniară:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 5x
1
+ 5x
2
+ 4x
3
→ max
x
1
+x
2
+x
3
≤ 60
2x
1
+x
2
+ 3x
3
≥ 90
x
2
+ 2x
3
≥ 40
x
j
≥ 0, j = 1, 3
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = −5x
1
−5x
2
−4x
3
→ min
x
1
+x
2
+x
3
+x
4
= 60
2x
1
+x
2
+ 3x
3
−x
5
= 90
x
2
+ 2x
3
−x
6
= 40
x
j
≥ 0, j = 1, 6
A =
_
_
1 1 1 1 0 0
2 1 3 0 −1 0
0 1 2 0 0 −1
_
_
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = −5x
1
−5x
2
−4x
3
+Mu
1
+Mu
2
→ min
x
1
+x
2
+x
3
+x
4
= 60
2x
1
+x
2
+ 3x
3
−x
5
+u
1
= 90
x
2
+ 2x
3
−x
6
+u
2
= 40
x
j
≥ 0, u
1
≥ 0, u
2
≥ 0
A
1
A
2
A
3
A
4
A
5
A
6
u
1
u
2
A =
_
_
1 1 1 1 0 0 0 0
2 1 3 0 -1 0 1 0
0 1 2 0 0 -1 0 1
_
_
, B = (A
4
, u
1
, u
2
)
Aplicând algoritmul, vom obţine următoarele tabele:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 73 — #73
i
i
i
i
i
i
3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 73
1 A
4
u
1
u
2
∗ ∗
A
1
1 2 0 5 + 2M −2M −7
A
2
1 1 1 5 + 2M −2M −7
A
3
1 3 2 4 + 5M −5M −9
A
5
0 -1 0 −M 2 +M
A
6
0 0 -1 −M 2 +M
∗ 60 90 40 130M −130M −189
60 30 20 ∗ ∗
2 A
4
u
1
A
3
∗ ∗
A
1
1 2 0 5 + 2M −2M −7
A
2
1/2 -1/2 1/2 3 −M/2 M/2 −5/2
u
2
-1/2 -3/2 1/2 2 + 5M/2 (−5M + 1)/2
A
5
0 -1 0 −M M + 2
A
6
1/2 3/2 -1/2 (3M + 4)/2 -5/2-3M/2
* 40 30 20 −80 + 30M −30M −9
* 40 15 - ∗ ∗
3 A
4
A
1
A
3
∗ ∗
u
1
-1/2 1/2 0 (5 + 2M)/2 M + 7/2
A
2
3/4 -1/4 1/2 17/4 -17/4
A
5
1/2 -1/2 0 5/2 -3/2
A
6
-1/4 3/4 -1/2 -7/4 11/4
∗ 25 15 20 -155 96
∗ 100/3 - 40 ∗ ∗
4 A
2
A
1
A
3
∗ ∗
A
4
4/3 1/3 -2/3 -17/3 17/3
A
5
2/3 -1/3 -1/3 -1/3 4/3
A
6
1/3 2/3 -1/3 -1/3 4/3
∗ 100/3 70/3 10/3 -890/3 713/3
∗ ∗ ∗
Soluţia optimă este: x
0
=
_
70
3
,
100
3
,
10
3
_
şi f
max
= −d
0
=
890
3
.
Observaţie. În urma aplicării metodei se poate întâmpla ca:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 74 — #74
i
i
i
i
i
i
74 3. Metoda simplex
1. variabila artificială să fie eliminată din tabelul simplex, obţinând astfel
o soluţie de pornire pentru problema iniţială şi se va continua algoritmul
simplex primal;
2. variabilele artificiale rămân în soluţia finală, dar cu valoarea zero, ceea
ce înseamnă că problema iniţială admite soluţie (nu depinde de vari-
abilele artificiale);
3. variabilele artificiale rămân în soluţia finală, şi cel puţin una este
nenulă; caz în care problema iniţială nu admite soluţie (sistemul de
restricţii Ax = b poate fi compatibil, dar nu admite soluţie de bază).
2. Să se rezolve problema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+ 2x
2
+ 2x
3
+x
4
→ min
x
1
+ 2x
2
+ 2x
3
+x
4
= 10
2x
1
+x
2
+ 2x
3
+ 2x
4
= 12
x
1
+ 2x
2
+ 2x
3
+ 2x
4
= 16
x
j
≥ 0, j = 1, 4
A =
_
_
1 2 2 1
2 1 2 2
1 2 2 2
_
_
Introducem variabile artificiale, deoarece problema considerată nu este în
forma standard de lucru:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+ 2x
2
+ 2x
3
+x
4
+Mu
1
+Mu
2
+Mu
3
→ min
x
1
+ 2x
2
+ 2x
3
+x
4
+u
1
= 10
2x
1
+x
2
+ 2x
3
+ 2x
4
+u
2
= 12
x
1
+ 2x
2
+ 2x
3
+ 2x
4
+u
3
= 16
x
j
≥ 0, j = 1, 4, u
i
≥ 0, i = 1, 3
Aplicăm metoda coeficienţilor de penalizare, pornind cu baza B =
(u
1
, u
2
, u
3
) primal admisibilă.
Efectuând calculele, se obţin tabelele:
1 u
1
u
2
u
3
∗ ∗
A
1
1 2 1 4M −1 −4M −2
A
2
2 1 2 5M −2 −5M −2
A
3
2 2 2 6M −2 −6M −3
A
4
1 2 2 5M −1 −5M −3
∗ 10 12 16 38M −38M −37
∗ 5 6 8 ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 75 — #75
i
i
i
i
i
i
3.4. Degenerare şi ciclare în aplicarea algoritmului simplex 75
2 A
3
u
2
u
3
∗ ∗
A
1
1/2 1 0 M −M −1/2
A
2
1 -1 0 −M M + 1
u
1
1/2 -1 -1 −3M + 1 3M + 3/2
A
4
1/2 1 1 2M −2M −3/2
∗ 5 2 6 8M + 10 −8M −22
∗ 10 2 6 ∗ ∗
3 A
3
A
4
u
3
∗ ∗
A
1
0 1 -1 −M M + 1
A
2
3/2 -1 1 M −M −1/2
u
2
-1/2 1 -1 −2M 2M + 3/2
∗ 4 2 4 4M + 10 −4M −19
∗ 8/3 4 ∗ ∗
4 A
2
A
4
u
3
∗ ∗
A
1
0 1 -1 −M M + 1
A
3
2/3 2/3 -2/3 −2M/3 1/3 + 2M/3
∗ 8/3 14/3 4/3 4M/3 + 10 −(4M + 53)/3
∗ ∗ ∗
Deoarece din ultimul tabel simplex primal avem x
2
=
8
3
x
4
=
14
3
u
3
=
4
3
rezultă că problema considerată nu admite soluţie optimă.
3.4 Degenerare şi ciclare în aplicarea algoritmului
simplex
În urma aplicării algoritmului simplex primal nu întotdeauna obţinem
soluţia optimă, deşi modelul admite optim finit, deoarece în unele cazuri
apare fenomenul de ciclare.
Acest fenomen poate să apară din mai multe motive, cum ar fi de exemplu:
1. dacă soluţia bazică este degenerată, adică numărul componentelor
strict pozitive este mai mic decât dimensiunea bazei (avem α
0j
= 0
pentru j ∈ B);
2. dacă în sectorul 10 avem mai multe rapoarte minime egale;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 76 — #76
i
i
i
i
i
i
76 3. Metoda simplex
3. dacă pornim algoritmul cu o soluţie bazică degenerată (adică există
i = 1, m pentru care b
i
= 0).
Deoarece numărul soluţiilor bazice este cel mult C
m
n
(m < n) înseamnă
că algoritmul simplex ar trebui să se termine într-un număr finit de paşi.
Această afirmaţie însă în practică nu are suport, fiindcă pot apărea diferite
situaţii complicate, în urma cărora algoritmul nu se opreşte.
Prin fenomenul de ciclare se înţelege obţinerea, la un moment dat
(după un număr de iteraţii), a unei baze, a unei soluţii corespunzătoare aces-
tei bazei şi unei valori a funcţiei de scop, iar în urma aplicării, în continuare, a
algoritmului simplex, peste câteva iteraţii, se ajunge iarăşi la iteraţia iniţială.
Acest fenomen poate să apară şi în cazul în care avem:
1) d
i
= 0 (ceea ce se întâmplă în cazul optimului multiplu);
2) α
0j
= 0 (şi vectorul A
j
este eliminat din bază)
Dacă degenerarea ne conduce la apariţia fenomenului de ciclare, atunci
evitarea ciclării presupune, evident, evitarea degenerării. În acest scop au
fost date mai multe metode.
Fenomenul de ciclare apare foarte rar. Construirea unui model practic în
care apare fenomenul de ciclare nu este uşor.
Primul exemplu a fost construit în 1955 de către E.M.L. Beale [Bea]:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = −
3
4
x
1
+ 150x
2

1
50
x
3
+ 6x
4
→ min
1
4
x
1
−60x
2

1
25
x
3
+ 9x
4
+x
5
= 0
1
2
x
1
−90x
2

1
50
x
3
+ 3x
4
+x
6
= 0
x
3
+x
7
= 1
x
j
≥ 0, j = 1, 7
Rezolvând problema cu algoritmul simplex primal după şase iteraţii,
tabelul, la iteraţia a şaptea, va fi identic cu primul tabel simplex.
Pentru prima dată în 1978 T.C.T. Kotiah şi D.I. Steinberg au semnalat
apariţia fenomenului la o problemă practică. Deşi nu este un fenomen des
întâlnit, au fost formulate diferite metode de eliminare. În 1977 R. Bland
[Blan] formulează un criteriu extrem de simplu pentru înlăturarea acestui
fenomen.
Criteriul Bland
Dacă la criteriul de intrare în bază este ales vectorul al cărui indice
are valoarea minimă şi la criteriul de ieşire din bază de asemenea este ales
i
i
“JATEK” — 2005/3/11 — 10:29 — page 77 — #77
i
i
i
i
i
i
3.4. Degenerare şi ciclare în aplicarea algoritmului simplex 77
vectorul care are cel mai mic index dintre cei posibili, atunci după un număr
finit de iteraţii se va obţine soluţia optimă.
Metoda perturbării
Proceduri constructive, metode de prevenire a fenomenului de ciclare,
care implică modificarea membrului drept au fost formulate şi demonstrate
de Philip Wolfe [Wol], Dantzig [Dan1].
Problemă rezolvată
Fie modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
3
4
x
4
−20x
5
+
1
2
x
6
−6x
7
→ max
x
1
+
1
4
x
4
−8x
5
−x
6
+ 9x
7
= 0
x
2
+
1
2
x
4
−12x
5

1
2
x
6
+ 3x
7
= 0
x
3
+x
6
= 1
x ≥ 0
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A
5
A
6
A
7
_
_
_
_
_
_
1 0 0
1
4
−8 −1 9
0 1 0
1
2
−12 −
1
2
3
0 0 1 0 0 1 0
_
_
_
_
_
_
Pornind cu baza primal admisibilă B = (A
1
, A
2
, A
3
), se va aplica algorit-
mul simplex primal. După 6 iteraţii simplex, se va ajunge înapoi la primul
tabel simplex.
Charnes [Chr] demonstrează că, adăugând câte un ε la fiecare dintre
componentele termenului liber, putem evita fenomenul de ciclare. Lucrăm
cu termenul liber modificat, iar la sfârşitul algoritmului renunţăm la ε şi
citim soluţia optimă a problemei.
Teorema 3.4.1. Dacă B este o bază primal admisibilă pentru modelul
conside-rat, atunci există ε
0
> 0 astfel încât soluţia bazică
x
B
(ε) = B
−1
b(ε)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 78 — #78
i
i
i
i
i
i
78 3. Metoda simplex
a problemei obţinute după introducerea lui ε, corespunzător lui B să fie nede-
generat pentru orice ε ∈ (0, ε
0
).
Demonstraţie. [Chr], [Gas]
Pe baza teoremei, avem de rezolvat problema:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
3
4
x
4
−20x
5
+
1
2
x
6
−6x
7
→ max
x
1
+
1
4
x
4
−8x
5
−x
6
+ 9x
7
= ε
x
2
+
1
2
x
4
−12x
5

1
2
x
6
+ 3x
7
= ε
x
3
+x
6
= 1
x ≥ 0
˜
b = (ε, ε, 1). Aplicând algoritmul simplex se va obţine soluţia optimă:
x
0
=
_
3
4
, 0, 0, 1, 0, 1, 0
_
iar valoarea funcţiei de scop va fi f
max
= 5/4.
Observaţie. Se poate demonstra că numărul minim de iteraţii, în urma
căruia apare fenomenul de ciclare, este 6 [Yud].
Degenerarea nu cauzează întotdeauna fenomenul de ciclare.
Fie de exemplu următorul model:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 2x
1
−x
2
+x
3
+ 10x
4
−x
5
→ max
x
1
+ 2x
4
−x
5
= 0
x
2
+x
4
−2x
5
= 0
x
3
+x
4
+x
5
= 12
x ≥ 0
Aplicând algoritmul simplex primal (se poate observa uşor că problema
este în forma standard de lucru), după 2 iteraţii se va obţine soluţia optimă
x
0
= (0, 12, 0, 4, 8)
şi valoarea optimă a funcţiei de scop f
max
= 20.
Marshall şi Suurballe [Mars] arată că fenomenul de ciclare poate să apară
în cazul în care modelul admite cel puţin două restricţii, cel puţin şase vari-
abile şi cel puţin trei variabile nebazice.
În continuare, prezentăm două exemple construite de Marshall şi Suur-
balle pentru fenomenul de ciclare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 79 — #79
i
i
i
i
i
i
3.4. Degenerare şi ciclare în aplicarea algoritmului simplex 79
_
¸
¸
_
¸
¸
_
f(x) = 2x
2
+ 4x
4
+ 4x
6
→ min
x
1
−3x
2
−x
3
−x
4
−x
5
+ 6x
6
= 0
2x
2
+x
3
−3x
4
−x
5
+ 2x
6
= 0
x ≥ 0
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = −
2
5
x
5

2
5
x
6
+
9
5
x
7
→ min
x
1
+
3
5
x
5

32
5
x
6
+
24
5
x
7
= 0
x
2
+
1
5
x
5

9
5
x
6
+
3
5
x
7
= 0
x
3
+
2
5
x
5

8
5
x
6
+
1
5
x
7
= 0
x
4
+x
6
= 1
x ≥ 0
Să se arate că, la următorul exemplu dat de H.W.Kuhn şi publicat în
[Bal], după şase iteraţii, apare fenomenul de ciclare.
_
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
_
f(x) = −2x
4
−3x
5
+x
6
+ 12x
7
→ min
−2x
4
−9x
5
+x
6
+ 9x
7
= 0
x
2
+
1
3
x
4
+x
5

1
3
x
6
−2x
7
= 0
x
3
+ 2x
4
+ 3x
5
−x
6
−12x
7
= 2
x ≥ 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 80 — #80
i
i
i
i
i
i
80 3. Metoda simplex
i
i
“JATEK” — 2005/3/11 — 10:29 — page 81 — #81
i
i
i
i
i
i
Capitolul 4
Teoria dualităţii
4.1 Introducere în dualitate
Dualitatea ocupă un loc important în programarea liniară, atât din punct
de vedere teoretic, cât şi din punct de vedere practic.
Teoria dualităţii constă în construirea pentru problema dată:
(P) ¦f(x) : x ∈ S¦ → min
a unei probleme duale:
(D) ¦f

(y) : y ∈ S

¦ → max
şi în indicarea unor condiţii în care problemele (P) şi (D) au următoarele
proprietăţi:
1. pentru fiecare x ∈ S şi fiecare y ∈ S

avem f

(y) ≤ f(x);
2. dacă (P) admite soluţie optimă, atunci rezultă că şi (D) admite soluţie
optimă, iar valorile optime sunt egale;
3. dacă (D) admite soluţie optimă, atunci rezultă că şi (P) admite soluţie
optimă, iar valorile optime sunt egale;
4. dacă x
0
∈ S este soluţie optimă a problemei (P) şi y
0
∈ S

este soluţie
optimă pentru problema (D), atunci f(x
0
) = f

(y
0
);
5. dacă una din probleme are optim infinit, atunci cealaltă nu admite
soluţie posibilă (adică optimă) şi reciproc.
81
i
i
“JATEK” — 2005/3/11 — 10:29 — page 82 — #82
i
i
i
i
i
i
82 4. Teoria dualităţii
4.2 Formularea problemei duale
Fie următoarea problemă de programare liniară în forma generală:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = c
1
x
1
+c
2
x
2
+c
3
x
3
→ min
A
11
x
1
+A
12
x
2
+A
13
x
3
≤ b
1
A
21
x
1
+A
22
x
2
+A
23
x
3
= b
2
A
31
x
1
+A
32
x
2
+A
33
x
3
≥ b
3
x
1
≥ 0, x
2
≤ 0, x
3
de semn oarecare
(4.1)
Definiţia 4.2.1. Fiind dată problema (4.1), se numeşte duală a sa prob-
lema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(y) = b
1
y
1
+b
2
y
2
+b
3
y
3
→ max
A
T
11
y
1
+A
T
21
y
2
+A
T
31
y
3
≤ c
1
A
T
12
y
1
+A
T
22
y
2
+A
T
32
y
3
≥ c
2
A
T
13
y
1
+A
T
23
y
2
+A
T
33
y
3
= c
3
y
1
≤ 0, y
2
de semn oarecare y
3
≥ 0.
(4.2)
Modelul (4.1) se numeşte problemă primală şi se va nota cu (P), iar
modelul (4.2) se numeşte problemă duală şi se va nota cu (D).
Deci pentru fiecare caz în parte avem următoarele modele:
(P)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = c
1
x
1
+c
2
x
2
+c
3
x
3
→ max
A
11
x
1
+A
12
x
2
+A
13
x
3
≤ b
1
A
21
x
1
+A
22
x
2
+A
23
x
3
= b
2
A
31
x
1
+A
32
x
2
+A
33
x
3
≥ b
3
x
1
≥ 0, x
2
≤ 0, x
3
de semn oarecare
(D)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
g(y) = b
1
y
1
+b
2
y
2
+b
3
y
3
→ min
A
T
11
y
1
+A
T
21
y
2
+A
T
31
y
3
≥ c
1
A
T
21
y
1
+A
T
22
y
2
+A
T
23
y
3
≤ c
2
A
T
31
y
1
+A
T
32
y
2
+A
T
33
y
3
= c
3
y

≥ 0, y
2
de semn oarecare
y
3
≤ 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 83 — #83
i
i
i
i
i
i
4.2. Formularea problemei duale 83
(P)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = c
1
x
1
+c
2
x
2
+c
3
x
3
→ min
A
11
x
1
+A
12
x
2
+A
13
x
3
≤ b
1
A
21
x
1
+A
22
x
2
+A
23
x
3
= b
2
A
31
x
1
+A
32
x
2
+A
33
x
3
≥ b
3
x
1
≥ 0, x
2
≤ 0, x
3
de semn oarecare
(D)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(y) = y
1
b
1
+y
2
b
2
+y
3
b
3
→ max
A
T
11
y
1
+A
T
21
y
2
+A
T
31
y
3
≤ c
1
A
T
21
y
1
+A
T
22
y
2
+A
T
23
y
3
≥ c
2
A
T
31
y
1
+A
T
32
y
2
+A
T
33
y
3
= c
3
y
1
≤ 0, y
2
de semn oarecare, y
3
≥ 0
Observaţia 4.2.1. Se observă că duala problemei duale este chiar problema
primală. Din acest motiv vom spune că problemele (4.1) - (4.2) (respectiv
(P)-(D)) formează un cuplu de probleme duale.
Analizând cuplurile de probleme duale date, putem formula următoarele
legături dintre elementele cuplului:
a) forma funcţiei obiectiv din (P) implică forma funcţiei obiectiv din duală
(şi reciproc);
b) forma restricţiilor problemei primale implică semnele variabilelor
dualei (şi reciproc);
c) semnele variabilelor problemei primale implică forma restricţiilor pro-
blemei duale (şi reciproc).
Explicit se pot formula următoarele:
• dacă în problema (P) se cere maximizare/ minimizare, atunci în duala
(D) se cere minimizare / maximizare;
• numărul variabilelor problemei primale determină numărul de restricţii
ale problemei duale;
• numărul de restricţii ale primalei dă numărul de variabile ale problemei
duale;
• termenii liberi din (P) devin coeficienţii funcţiei de scop în (D);
• coeficienţii funcţiei de scop din (P) devin termenii liberi în (D);
• dacă A este matricea coeficienţilor problemei (P), atunci A
T
va fi ma-
tricea coeficienţilor problemei; (D)
• dacă (P) are restricţii concordante, atunci (D) are variabile pozitive;
dacă (P) are restricţii neconcordante inegalităţi, atunci (D) are vari-
abile negative;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 84 — #84
i
i
i
i
i
i
84 4. Teoria dualităţii
dacă (P) are restricţii neconcordante egalităţi, atunci (D) are variabile
de semn oarecare;
• dacă (P) are variabile pozitive, atunci (D) va avea restricţii concor-
dante;
dacă (P) are variabile negative, atunci (D) va avea restricţii neconcor-
dante inegalităţi;
dacă (P) are variabile de semn oarecare, atunci (D) va avea restricţii
neconcordante egalităţi.
Definiţia 4.2.2. O restricţie de forma ≤, respectiv ≥ în cazul unei prob-
leme de maximizare / minimizare se numeşte restricţie concordantă. O
restricţie de forma ≥, respectiv ≤ în cazul unei probleme de maximizare /
minimizare se numeşte restricţie neconcordantă de tip inegalitate.
Se poate observa că restricţia concordantă este identică cu tipul restricţi-
ilor din forma canonică a problemei primale.
Se pot demonstra următoarele teoreme:
Teorema 4.2.2. Dacă:
(P)
_
_
_
f(x) = (c, x) → max
Ax ≤ b
x ≥ 0
atunci:
(D)
_
_
_
g(y) = (b, y) → min
A
T
y ≥ c
y ≥ 0
Teorema 4.2.3. Dacă:
(P)
_
_
_
f(x) = (c, x) → min
Ax ≤ b
x ≥ 0
atunci:
(D)
_
_
_
g(y) = (b, y) → max
A
T
y ≥ c
y ≥ 0
Cuplul de probleme duale, remarcabil prin simetria sa (ambele probleme
sunt în formă canonică), se numeşte cuplu dual simetric:
(P) ¦x ∈ R
n
[ Ax ≥ b, x ≥ 0¦ → min
(D) ¦u ∈ R
m
[ A
T
u ≤ c, u ≥ 0¦ → max
i
i
“JATEK” — 2005/3/11 — 10:29 — page 85 — #85
i
i
i
i
i
i
4.3. Interpretarea economică a dualităţii 85
Un motiv al definirii problemelor duale este şi acela al posibilităţii de
soluţionare mai rapidă a unuia din elementele cuplului primal - dual.
Interesul se concentrează asupra modului în care găsim soluţia celuilalt
element al cuplului.
Se poate vedea că dualitatea se poate defini în mod echivalent utilizând
oricare dintre cuplurile de probleme duale.
Aceasta înseamnă că putem studia proprietăţile de dualitate pe oricare
dintre cuplurile de probleme duale, fără a restrânge prin aceasta generali-
tatea.
4.3 Interpretarea economică a dualităţii
În continuare prezentăm o problemă aplicativă.
Se urmăreşte stabilirea hranei raţionale pentru animale, hrană care să
conţină în mod obligatoriu patru elemente nutritive, A, B, C şi D. Se produc
două nutreţuri M şi N care conţin aceste elemente. Un kilogram din nutreţul
M conţine 100 grame din elementul A, 100 grame din C şi 200 grame din D.
1 kg din nutreţul N conţine 100 grame din elementul B, 200 grame din
elementul C şi 100 grame din D.
Un animal trebuie să consume pe zi cel puţin 0,4 kg din A; 0,6 kg din B;
2 kg din C şi 1,7 kg din D.
Nutreţul M costă 10 u.m./kg, iar nutreţul N costă 4 u.m./kg.
Ce cantităţi de nutreţuri M şi N trebuie folosite pe zi şi pe cap de animal
pentru a obţine hrana cea mai ieftină?
Dacă notăm cantităţile prescrise cu x
1
, x
2
, atunci putem formula matem-
atic scopul şi restricţiile problemei propuse spre rezolvare.
Avem:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 10x
1
+ 4x
2
→ min
0, 1x
1
≥ 0, 4
0, 1x
2
≥ 0, 6
0, 1x
1
+ 0, 2x
2
≥ 2
0, 2x
1
+ 0, 1x
2
≥ 1, 7
(4.3)
Folosind algoritmul simplex se obţine soluţia optimă x
1
= 4, x
2
= 9.
Valoarea optimă a funcţiei de scop este f
min
= 76 u.m.
În continuare, să studiem problema care se pune unui concurent al vânză-
torului nutreţurilor M şi N.
Acest concurent vinde şi elementele A, B, C, D. El ştie că vânzările lui
sunt egale cu cantităţile prescrise pe zi şi pe cap de animal şi doreşte să afle
cu ce preţ unitar trebuie să vândă elementele pentru ca beneficiul lui să fie
maxim.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 86 — #86
i
i
i
i
i
i
86 4. Teoria dualităţii
Cu aceste considerente, putem formula următoarea problemă de opti-
mizare:
- beneficiul poate fi descris matematic cu funcţia:
g(y) = 0, 4y
1
+ 0, 6y
2
+ 2y
3
+ 1, 7y
4
→ max
- pentru formularea restricţiilor, luăm în considerare faptul că vânzătorul nu
vinde cu preţuri mai ridicate decât cele ale concurentului său.
Astfel putem scrie:
0, 1y
1
+ 0, 1y
3
+ 0, 2y
4
≤ 10
0, 1y
2
+ 0, 2y
3
+ 0, 1y
4
≤ 4
y
1
, y
2
, y
3
, y
4
≥ 0
(4.4)
Cu metodele prezentate în paragrafele anterioare soluţia problemei este:
y
1
= 20, y
2
= 0, y
3
= 0, y
4
= 40 f
max
= 76
Observaţie. Problemei (4.3) îi corespunde problema (4.4) în care datele au
fost inversate. De această inversare este legată o proprietate foarte impor-
tantă, şi anume:
max g(y) = min f(x) = 76.
Proprietatea, după cum se va arăta în continuare, este generală.
4.4 Teoreme de dualitate
Teoreme ale dualităţii sunt acelea care arată că, între elementele cuplu-
lui dual, nu există doar o legătură formală, ci şi o puternică interdependenţă
a soluţiilor acestora.
Fie problema de optimizare liniară cu restricţii şi duala sa:
(P)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
c
j
x
j
→ min
n

j=1
a
ij
x
j
≥ b
i
, i = 1, m
x
j
≥ 0 j = 1, n
(4.5)
(D)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
g(v) =
m

i=1
b
i
v
i
→ max
m

i=1
a
ji
v
i
≤ c
j
, j = 1, n
v
i
≥ 0 i = 1, m
(4.6)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 87 — #87
i
i
i
i
i
i
4.4. Teoreme de dualitate 87
Scriind matriceal avem:
(P)
_
_
_
f(x) = (x, c) → min
Ax ≥ b
x ≥ 0
(D)
_
_
_
g(v) = (v, b) → max
A
T
v ≤ c
v ≥ 0
Vom arăta că problemele sunt legate prin proprietatea max g = minf.
Astfel căutarea optimului unei probleme poate fi înlocuită cu căutarea
optimului problemei duale.
Dualitatea este o noţiune importantă atât din punctul de vedere al con-
ceptelor economice, cât şi din cel al metodelor de calcul (de obicei, dualul
are o semnificaţie economică artificială).
Pentru studiul dualităţii problemelor de optimizare liniară cu restricţii şi
formularea teoremelor de dualitate considerăm cuplul de probleme (P) - (D)
de mai sus.
Notăm cu:
S = ¦x ∈ R
n
: Ax = b, x ≥ 0¦
mulţimea soluţiilor admisibile problemei (P) şi
S

= ¦v ∈ R
m
: A
T
v ≤ c¦
mulţimea soluţiilor admisibile problemei (D).
Teorema 4.4.1. Pentru orice x ∈ S şi orice v ∈ S

are loc: (v, b) ≤ (x, c)
(adică valoarea funcţiei de scop a dualei nu depăşeşte valoarea funcţiei de
scop a primalei).
Demonstraţie.
x ∈ S ⇒ Ax = b, x ≥ 0
v ∈ S

⇒ A
T
v ≤ c
(v, b) = (v, Ax) = (A
T
v, x) =
n

j=1
_
m

i=1
b
ij
v
i
_
x
j

c
j
x
j
= (x, c),
deoarece x
j
≥ 0, j ∈ B.
Teorema 4.4.2. Dacă x
0
∈ S, v
0
∈ S

astfel încât (x
0
, c) = (v
0
, b)
atunci sunt adevărate afirmaţiile:
(i) x
0
este soluţie optimă pentru (P);
(ii) v
0
este soluţie optimă pentru (D).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 88 — #88
i
i
i
i
i
i
88 4. Teoria dualităţii
Demonstraţie.
(i) pentru orice x ∈ S din teorema 4.4.1 ⇒ (x, c) ≥ (v
0
, b)
ip
= (x
0
, c);
(ii) pentru orice v ∈ S

din teorema 4.4.1 ⇒ (v, b) ≤ (x
0
, c)
ip
= (v
0
, b)
Pentru prima dată conceptul de dualitate a problemelor de optimizare
cu restricţii a fost pus în evidenţă pentru probleme de optimizare liniară cu
res-tricţii.
În 1961, P. Wolfe extinde teoria dualităţii problemelor de optimizare
liniară la o clasă mai generală de probleme de optimizare (pentru probleme
de optimizare cu restricţii cu funcţii de scop diferenţiabile şi cu restricţii
diferenţiabile.)
În continuare, prezentăm particularizarea acestor rezultate pentru modele
liniare cu restricţii, iar demonstraţia acestora într-un cadru general poate fi
consultată în [Bre].
Fie cuplul dual:
(P)
_
_
_
f(x) = (x, c) → min
Ax ≥ b
x ≥ 0
şi (D)
_
_
_
f

(v) = (v, b) → max
A
T
v ≤ c
v de semn oarecare
S şi S

este mulţimea soluţiilor posibile ale modelelor considerate.
Teorema 4.4.3. (Teorema de dualitate)
Dacă una dintre problemele (P) sau (D) are soluţie, atunci şi cealaltă are
o soluţie şi valorile optime ale funcţiilor de scop sunt egale.
Teorema de dualitate se datorează lui Neumann (1947) şi Gale, Kuhn,
Tucker (1951) şi este o consecinţă a teoremei fundamentale a inegalităţilor
liniare (Farkas).
Teorema 4.4.4. Dacă S ,= ∅, atunci următoarele afirmaţii sunt echivalente:
1. problema (P) are o soluţie;
2. mulţimea S

,= ∅;
3. funcţia f este mărginită inferior pe S.
Teorema 4.4.5. Dacă S

,= ∅, atunci următoarele afirmaţii sunt echivalente:
(i) problema (D) are o soluţie;
(ii) mulţimea S ,= ∅;
(iii) funcţia f

este mărginită superior pe S

.
Următoarea teoremă, cunoscută ca teorema ecarturilor comple-
mentare, formulează un criteriu pentru ca două soluţii posibile x
0
∈ S
şi v
0
∈ S

să fie soluţii optime ale problemelor duale (P) şi (D).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 89 — #89
i
i
i
i
i
i
4.4. Teoreme de dualitate 89
Teorema 4.4.6. Fie x
0
∈ S şi v
0
∈ S

. Pentru ca x
0
să fie o soluţie a
problemei (P) şi v
0
a problemei duale (D) este necesar şi suficient ca:
(v
0
, Ax
0
−b) = 0 şi (c −A
T
v
0
, x
0
) = 0
Demonstraţie. "Necesitatea"
Presupunem că x
0
este soluţia problemei (P)şi v
0
este soluţia problemei
(D), atunci rezultă că f(x
0
) = f

(v
0
) ⇔ f(x
0
) −f

(v
0
) = 0.
Avem:
0 = (x
0
, c) −(v
0
, b) = (x
0
, c) −(v
0
, b) + (v
0
, Ax
0
) −
−(v
0
, Ax
0
) = (x
0
, c) −(A
T
v
0
, x
0
) + (v
0
, Ax
0
) −(v
0
, b) =
= (x
0
, c −A
T
v
0
) + (v
0
, Ax
0
−b)
deoarece (x
0
, A
T
v
0
) = (A
T
v
0
, x
0
).
Astfel am obţinut:
(x
0
, c −A
T
v
0
) + (v
0
, Ax
0
−b) = 0 (4.7)
Dar:
x
0
∈ S
v
0
∈ S

_

(v
0
, Ax
0
−b) ≥ 0
(c −A
T
v
0
, x
0
) ≥ 0
(4.8)
Din relaţiile (4.7) şi (4.8) rezultă că:
(x
0
, c −A
T
v
0
) = 0 şi (v
0
, Ax
0
−b) = 0
"Suficienţa"
Presupunem că au loc relaţiile:
(v
0
, Ax
0
−b) = 0 şi (c −A
T
v
0
, x
0
) = 0
Putem scrie:
0 = (v
0
, Ax
0
−b) + (c −A
T
v
0
, x
0
) = (v
0
, Ax
0
) −
−(v
0
, b) + (c, x
0
) −(A
T
v
0
, x
0
) = (c, x
0
) −(v
0
, b)
Deci: (c, x
0
) = (v
0
, b) dar x
0
∈ S şi v
0
∈ S

rezultă că x
0
este soluţia
problemei (P), v
0
este soluţia optimă al problemei (D).
Fie cuplul dual:
(P)
_
_
_
f(x) = (c, x) → min
Ax = b
x ≥ 0
(D)
_
_
_
g(v) = (b, v) → max
A
T
v ≤ c
v de semn oarecare
i
i
“JATEK” — 2005/3/11 — 10:29 — page 90 — #90
i
i
i
i
i
i
90 4. Teoria dualităţii
Definiţia 4.4.1. O bază B a problemei (P) se numeşte bază dual admis-
ibilă, dacă d
i
≤ 0 pentru oricare i ∈
¯
B.
Denumirea de bază dual admisibilă provine de la proprietatea exprimată
prin următoarea teoremă.
Teorema 4.4.7. Dacă B este o bază dual admisibilă a problemei (P), atunci
soluţia v
B
a sistemului de ecuaţii definit în R
m
prin:
(A
j
, v) = c
j
, j ∈ B
este o soluţie posibilă a problemei duale.
Demonstraţie. Ştiind că pentru orice i ∈
¯
B avem A
i
=

j∈B
α
ij
A
j
şi baza
B este dual admisibilă (B = ¦A
1
. . . A
m
¦), putem scrie:
0 ≥ d
i
=

j∈B
α
ij
c
j
−c
i
=

j∈B
α
ij
(A
j
, v) −c
i
=
= (

j∈B
α
ij
A
j
, v) −c
i
= (A
i
, v) −c
i
. (4.9)
Deci pentru orice i ∈
¯
B avem (A
i
, v) −c
i
≤ 0.
A rămas de arătat că: A
T
v ≤ c.
Din relaţia obţinută şi folosind proprietatea că v satisface sistemul de
ecuaţii, putem scrie:
A
T
v = ((A
1
, v), (A
2
, v), . . . , (A
n
, v)) ≤ c
Observaţie. În general soluţia bazică x
B
asociată unei baze dual admisi-
bile B a problemei (P) nu este o soluţie posibilă a problemei (P) (deoarece
coordonatele pot fi strict negative).
Deci o bază dual admisibilă nu este întotdeauna şi o bază primal admis-
ibilă.
Teorema 4.4.8. Fie B o bază a problemei (P) care este primal şi dual
admisi-bilă. Următoarele afirmaţii sunt adevărate:
(a) x
B
este soluţia optimă a problemei (P);
(b) v
B
este soluţia optimă a problemei (D);
(c) (x
B
, c) = d
0
= (v
B
, b).
Demonstraţie.
B este o bază primal admisibilă pentru problema (P) ⇒ x
B
∈ S.
B este o bază dual admisibilă pentru problema (D) ⇒ v
B
∈ S

.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 91 — #91
i
i
i
i
i
i
4.5. Algoritmul simplex dual 91
Trebuie demonstrat că (v
B
, b) = (x
B
, c) şi atunci pe baza teoremei 4.4.2
x
B
va fi soluţie optimă pentru (P), iar v
B
soluţie optimă pentru (D):
x
B
∈ S ⇒ (x
B
, c) =

j∈B
α
0j
c
j
not
= d
0
v
B
∈ S

rezultă că este soluţia sistemului de ecuaţii (A
j
, v
B
) = c
j
, j ∈ B.
Avem astfel:
(v
B
, b) = (v
B
,

j∈B
α
0j
A
j
) =

j∈B
α
0j
(v
B
, A
j
) =

j∈B
α
0j
c
j
= d
0
.
Deci am obţinut:
(x
B
, c) = d
0
= (v
B
, b)
Pe baza teoremei de dualitate 4.4.2 rezultă că x
B
este soluţie optimă pentru
(P), v
B
soluţie optimă pentru (D).
Definiţia 4.4.2. Dacă B este o bază primal şi dual admisibilă, atunci se
numeşte bază optimă.
4.5 Algoritmul simplex dual
Fie următorul model de minimizare cu restricţii:
_
_
_
f(x) = (c, x) → min
Ax = b
x ≥ 0
(4.10)
A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
, f : R
n
→R.
Folosind proprietatea de dualitate, se poate formula un algoritm pentru
rezolvarea modelelor liniare cu restricţii, numit algoritmul simplex dual.
În continuare, prezentăm etapele algoritmului.
1. să se determine o bază B dual admisibilă a problemei (4.10);
2. să se calculeze numerele α
0j
şi numerele α
ij
folosind relaţiile (3.2) ¸şi
(3.3);
3. să se calculeze numărul d
0
şi pentru orice i ∈
¯
B să se determine difer-
enţele d
i
folosind relaţiile (3.4) şi (3.5);
4. să se studieze semnul numerelor α
0j
, j ∈ B.
Se pot ivi două situaţii:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 92 — #92
i
i
i
i
i
i
92 4. Teoria dualităţii
(a) dacă pentru orice j ∈ B, α
0j
≥ 0, atunci să se specifice că punctul
x
B
= x
0
= (x
0
1
, . . . , x
0
n
) ∈ R
n
, x
0
j
=
_
α
0j
, j ∈ B
0 , j ∈
¯
B
este o soluţie
optimă a problemei (4.10), d
0
este valoarea minimă a funcţiei de scop;
altfel
b) dacă există cel puţin un j ∈ B, α
0j
< 0, atunci să se formeze
mulţimea B

= ¦j ∈ B : α
0j
< 0¦.
5. pentru orice j ∈ B

să se studieze semnul numerelor α
ij
, i ∈
¯
B.
Se pot ivi două situaţii:
a) dacă există cel puţin un j ∈ B

astfel încât pentru orice i ∈
¯
B
α
ij
≥ 0, atunci să se specifice că problema (4.10) nu admite soluţii
admisibile, deci nici soluţie optimă;
altfel
b) dacă pentru orice j ∈ B

există cel puţin un indice i ∈
¯
B cu α
ij
< 0
atunci continuă algoritmul:
6. să se determine un indice k din B


0k
= min¦α
0j
: j ∈ B

¦)
7. să se determine un indice h din
¯
B astfel încât α
hk
< 0 şi
d
h
α
hk
= min
_
d
i
α
ik
, i =
¯
B, α
ik
< 0
_
.
8. să se înlocuiască vectorul A
k
din baza B cu vectorul A
h
şi cu baza B

astfel obţinută să se revină la pasul 2.
Pentru aplicarea algoritmului, se folosec tabele asemănătoare celor de la
algoritmul simplex primal, numite tabele simplex dual.
Completarea tabelului simplex dual
1 2 ∗ ∗ ∗
3 6 7 8 10
∗ 4 5 9 ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 93 — #93
i
i
i
i
i
i
4.5. Algoritmul simplex dual 93
Sectoarele 1 - 9 au acelaşi rol ca şi în tabelele simplex primal şi se com-
pletează în mod analog.
Sectorul 10 este altfel aşezat, are o altă semnificaţie.
În sectorul 10 vor fi scrise câturile
d
i
α
ik
pentru i ∈
¯
B pentru care α
ik
< 0.
Folosind aceste rapoarte se va alege indicele h din etapa 7 a algoritmului.
La o iteraţie de ordinul r putem scrie tabelul:
r . . . A
j
. . . A
k
. . . ∗ ∗ ∗
. . . . . . . . . . . . . . . . . . . . . . . .
A
i
. . . α
ij
. . . α
ik
. . . d
i
p
i
d
i

ik
. . . . . .
A
h
. . . α
hj
. . . α
hk
. . . d
h
p
h
d
h

hk
. . . . . .
∗ . . . x
B
j
. . . x
B
k
. . . d
0
p
0

Schimbarea bazei se realizează prin schimbarea unui vector din bază. La
algoritmul simplex dual, prima dată este ales vectorul care iese din bază şi
după aceea vectorul care intră în locul acestuia în bază.
Alegerea lui A
k
(k din pasul 6) se efectuează prin alegerea coloanei pivot.
Alegerea vectorului A
h
(h din pasul 7) se realizează prin alegerea liniei
pivot.
α
hk
se numeşte element pivot.
Trecerea dintr-un tabel simplex dual în altul se realizează cu regula
prezentată la aplicarea algoritmului simplex primal.
Observaţie. La algoritmul simplex primal pornim cu o bază B primal
admisi-bilă şi aplicăm algoritmul până când baza devine dual admisibilă (ev-
ident în cazul în care problema admite optim finit).
Valoarea funcţiei de scop descreşte după fiecare iteraţie.
În algoritmul simplex dual, pornim cu o bază B dual admisibilă şi conti-
nuăm algoritmul până când baza devine primal admisibilă. Valoarea funcţiei
de scop creşte la fiecare iteraţie (deşi avem model de minimizare), deoarece
pe parcurs se lucrează cu soluţii asociate bazei dual admisibile care nu sunt
soluţii posibile.
Problemă rezolvată
Să se rezolve problema următoare cu algoritmul simplex dual:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 94 — #94
i
i
i
i
i
i
94 4. Teoria dualităţii
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+ 2x
2
+ 3x
3
→ min
x
1
−x
2
+x
3
= 7
3x
1
+x
3
−x
4
= 10
x
1
+ 2x
3
−x
5
= 15
x
j
≥ 0, j = 1, 5
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A
5
A =
_
_
1 −1 1 0 0
3 0 1 −1 0
1 0 2 0 −1
_
_
b =
_
_
7
10
15
_
_
Dacă în modelul considerat matricea restricţiilor se include o matrice uni-
tate de ordinul m, dar nu toate componentele vectorului b sunt pozitive, atunci
în general baza canonică este bază dual admisibilă.
În acest caz este mult mai eficient algoritmul simplex dual, deoarece nu
se încarcă modelul cu variabile artificiale. Pe de altă parte, dacă există optim
finit, atunci se va obţine în urma rezolvării unei singure probleme (cu metoda
celor două faze, se vor rezolva două probleme).
Înmulţind restricţiile cu −1 se observă imediat că sistemul de vectori
(A
2
, A
4
, A
5
) este o bază canonică, iar din primul tabel se deduce dacă este
dual admisibilă pentru acest model.
Având vectorul c = (1, 2, 3, 0, 0) , se obţine tabelul:
1 A
2
A
4
A
5
∗ ∗ ∗
A
1
-1 -3 -1 -3 9 3
A
3
-1 -1 -2 -5 10 5/2
∗ -7 -10 -15 -14 47 ∗
În sectorul 7 toate diferenţele d
i
, i ∈ ¦1, 3¦ sunt negative, prin urmare
baza este dual admisibilă şi se poate aplica algoritmul simplex dual:
2 A
2
A
4
A
3
∗ ∗ ∗
A
1
-1/2 -5/2 1/2 -1/2 4 1/5
A
5
-1/2 -1/2 -1/2 -5/2 5 5
∗ 1/2 -5/2 15/2 47/2 -28 ∗
3 A
2
A
1
A
3
∗ ∗ ∗
A
4
-1/5 -2/5 1/5 -1/5 8/5
A
5
-2/5 1/5 -3/5 -12/5 21/5
∗ 1 1 7 24 -32 ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 95 — #95
i
i
i
i
i
i
4.6. Bazele teoretice ale algoritmului simplex dual 95
Soluţia optimă a problemei este:
x
0
= (1 1 7 0 0) d
0
= 24 = f
min
.
4.6 Bazele teoretice ale algoritmului simplex dual
Teorema 4.6.1. (criteriul de intrare în bază)
Fie un model de programare liniară şi o bază B căreia îi corespunde o
soluţie dual admisibilă x
B
. Fie de asemenea o bază B

care diferă de baza B
printr-un singur vector şi soluţia corespunzătoare acestei baze este x
B

.
Fiind fixat vectorul A
k
ce a ieşit din baza B, soluţia x
B

este dual admis-
ibilă, dacă şi numai dacă în locul său a intrat un vector A
h
corespunzător
căruia avem:
d
h
α
hk
= min
_
d
i
α
ik
, α
ik
< 0, i ∈
¯
B
_
Demonstraţie. Considerăm modelul de maximizare:
_
_
_
f(x) = (c, x) → max
Ax = b
x ≥ 0
Fără restrângerea generalităţii, se consideră:
B = ¦A
1
, A
2
, . . . , A
m
¦. Se presupune că soluţia obţinută prin schimbarea
bazei notată cu x
B

este o soluţie dual admisibilă adică d

i
≤ 0 pentru orice
i = 1, n.
În continuare, se vor calcula aceste diferenţe.
I. Prima dată se ia cazul când i = k.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 96 — #96
i
i
i
i
i
i
96 4. Teoria dualităţii
Putem scrie:
d

k
= c
k

m

j=1
j=h
α

kj
c
j
−α

kh
c
h
=
= c
k

m

j=1
j=h(h→k)
_

α
hj
α
hk
_
c
j

1
α
hk
c
h
=
= c
k
+
m

j=1
j=h
α
hj
α
hk
c
j

1
α
hk
c
h
=
= c
k
+
1
α
hk
_
¸
¸
_
m

j=1
j=h
α
hj
c
j
−c
h
_
¸
¸
_
=
= c
k
+
1
α
hk
_
_
m

j=1
α
hj
c
j
−c
h
−α
hk
c
k
_
_
= c
k
−c
k

d
h
α
hk
Avem deci: d

k
= −
d
h
α
hk
.
Dar ştiind că d
h
≤ 0 (deoarece B este bază dual admisibilă,) iar din
ipoteză avem d

k
≤ 0, rezultă că trebuie să avem α
hk
< 0.
Observaţie. În demonstraţie s-au folosit formulele de schimbare a vari-
abilelor (vezi algoritmul simplex primal)pe baza cărora avem:
α

kh
=
1
α
hk
α

kj
j=h
= −
α
hj
α
hk
II. Să considerăm, în continuare, cazul i ,= k şi se calculează diferenţele
d

i
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 97 — #97
i
i
i
i
i
i
4.6. Bazele teoretice ale algoritmului simplex dual 97
d

i
= c
i

m

j=1
j=h
α

ij
c
j
−α

ih
c
h
=
= c
i

m

j=1
j=k(h→k)
_
α
ij

α
hj
α
ik
α
hk
_
c
j

α
ik
α
hk
c
h
=
= c
i

m

j=1
j=k
α
ij
c
j
+
m

j=1
j=k
α
hj
α
ik
α
hk
c
j

α
ik
α
hk
c
h
=
= c
i

m

j=1
α
ij
c
j

ik
c
k
+
α
ik
α
hk
_
¸
¸
_
m

j=1
j=k
α
hj
c
j
−c
h
_
¸
¸
_
=
= d
i

ik
c
k
+
α
ik
α
hk
_
_
m

j=1
α
hj
c
j
−c
h
−α
hk
c
k
_
_
=
= d
i

ik
c
k

α
ik
α
hk
d
h
−α
ik
c
k
Deci avem:
d

i
= d
i

α
ik
α
hk
d
h
=
d
i
α
hk
−α
ik
d
h
α
hk
Pentru ca baza x
B

să fie dual admisibilă este necesar ca:
d

i
=
d
i
α
hk
−α
ik
d
h
α
hk
≤ 0
pentru orice i ,= k.
De aici, folosind faptul că α
hk
< 0, putem scrie:
d
i
α
hk
−α
ik
d
h
≥ 0
d
i
α
hk
≥ α
ik
d
h
/ : α
hk
< 0
d
i
≤ α
ik
d
h
α
hk
/ : α
ik
< 0
d
i
α
ik

d
h
α
hk
Relaţia obţinută având loc pentru orice i rezultă că:
d
h
α
hk
= min
_
d
i
α
ik
, α
ik
< 0
_
numit criteriul de intrare în bază.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 98 — #98
i
i
i
i
i
i
98 4. Teoria dualităţii
Teorema 4.6.2. (criteriul de ieşire din bază) Fie un model de progra-
mare liniară şi două baze B şi B

care diferă printr-un singur vector. Fie x
B
,
respectiv x
B

soluţiile corespunzătoare acestor baze dual admisibile. Soluţia
x
B

este mai bună decât soluţia x
B
dacă şi numai dacă baza B

a fost obţin-
ută din baza B prin înlocuirea unui vector A
k
căruia îi corespunde (în soluţia
x
B
) o componentă α
0k
strict negativă.
Demonstraţie. Se consideră acelaşi model de maximizare. Se calculează va-
loarea funcţiei de scop pentru soluţia x
B

.
f(x
B

) =
m

j=1
j=h
c
j
y
j
+c
h
y
h
=
m

j=1
j=k
c
j
_
x
j

x
k
α
hk
α
hj
_
+c
h
x
k
α
hk
=
=
m

j=1
c
j
_
x
j

x
k
α
hk
α
hj
_
−c
k
_
x
k

x
k
α
hk
α
hk
_
+c
h
x
k
α
hk
=
=
m

j=1
c
j
x
j

x
k
α
hk
m

j=1
α
hj
c
j
+c
h
x
k
α
hk
=
= f(x
B
) +
x
k
α
hk
_
_
c
h

m

j=1
α
hj
c
j
_
_
= f(x
B
) +
x
k
α
hk
d
h
(4.11)
Soluţia dual admisibilă x
B

este mai bună decât soluţia x
B
, dacă şi numai
dacă f(x
B

) ≤ f(x
B
).
Folosind relaţia (8.4), putem scrie:
f(x
B

) −f(x
B
) =
x
k
α
hk
d
h
≤ 0
d
h
≤ 0 deoarece B este bază dual admisibilă şi α
hk
< 0 (vezi demonstraţia
teoremei anterioare). Astfel condiţia este verificată numai în cazul în care
x
k
< 0 şi astfel teorema este demonstrată.
Observaţie. Pentru a asigura o variaţie cât mai mare valorii funcţiei de
eficienţă se recomandă, pentru eliminarea din bază a vectorului A
k
, alegerea
pentru care îi corespunde o componentă x
k
= α
0k
negativă cea mai mare în
valoare absolută.
Teorema 4.6.3. Fie un model de programare liniară şi considerând o soluţie
de bază dual admisibilă x
B
corespunzătoate unei baze B.
Dacă există cel puţin o componentă x
B
j
< 0 a acestei soluţii astfel încât
α
ij
≥ 0 pentru orice j = 1, n, atunci modelul nu are soluţii posibile.
Observaţie. Cea mai importantă aplicaţie a algoritmului simplex dual este
cea legată de rezolvarea modelelor când apar modificări ale datelor de intrare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 99 — #99
i
i
i
i
i
i
4.7. Citirea soluţiilor problemei duale 99
4.7 Determinarea soluţiilor problemei duale cu aju-
torul ultimului tabel simplex al problemei pri-
male
Fie modelul de optimizare liniară în forma standard:
(P)
_
_
_
f(x) = (x, c) → min
Ax = b
x ≥ 0.
(4.12)
Scriem matricea restricţiilor, transpusa acestei matrici şi formulăm duala
pro-blemei considerate:
A =
_
_
_
a
11
. . . a
1n
.
.
.
a
m1
. . . a
mn
_
_
_
A
T
=
_
_
_
a
11
. . . a
m1
.
.
.
a
1n
. . . a
mn
_
_
_
(D)
_
¸
¸
¸
_
¸
¸
¸
_
g(v) = (v, b) → max
m

i=1
a
ji
v
i
≤ c
j
j = 1, n
v
i
de semn oarecare i = 1, m
Se presupune că problema primală admite optim finit.
Teorema 4.7.1. Dacă B este baza optimă a problemei (P), atunci soluţia
v
B
a sistemului de ecuaţii definit în R
m
prin:
(A
j
, v
B
) = c
j
j ∈ B (4.13)
este soluţia optimă a problemei duale.
Demonstraţie. Baza B fiind optimă, rezultă că x
B
este soluţia optimă a pro-
blemei primale şi v
B
∈ S

(teorema 4.4.7).
Putem scrie:
(x
B
, c) =

j∈B
c
j
x
B
j
=

j∈B
(A
j
, v
B
)x
B
j
=

j∈B
(x
B
j
A
j
, v
B
) = (b, v
B
)
Deoarece optimele funcţiilor de scop sunt egale, rezultă că v
B
este soluţia
optimă a problemei duale.
Deci, după rezolvarea problemei primale, dacă construim sistemul liniar
de ecuaţii precizat în teorema de mai sus, atunci putem calcula soluţiile
problemei duale.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 100 — #100
i
i
i
i
i
i
100 4. Teoria dualităţii
În continuare, vom presupune că matricea A conţine o matrice unitate de
ordin m şi vom arăta că soluţiile problemei duale, în acest caz, pot fi citite
direct din ultimul tabel simplex al problemei primale.
Notăm cu:
A
k
i
= e
i
, i = 1, m (e
i
∈ R
m
componentele bazei canonice (e
1
, . . . , e
m
))
din R
m
.
Fie B
c
= (A
k
1
. . . A
k
m
) baza canonică cu care începem aplicarea algorit-
mului simplex.
Notăm cu
B
o
= ¦A
j
1
, . . . , A
j
m
¦
baza optimă obţinută în urma rezolvării problemei primale.
Astfel pe baza teoremei 4.7.1 putem scrie:
(A
j
, v
B
) = c
j
, j ∈ B
o

_
¸
¸
_
¸
¸
_
(A
j
1
, v
B
) = c
j1
(A
j
2
, v
B
) = c
j2
. . . . . . . . .
(A
j
m
, v
B
) = c
jm
Scriind explicit produsul scalar euclidean, obţinem următorul sistem liniar
de ecuaţii:
_
¸
¸
_
¸
¸
_
a
1j
1
v
B
1
+a
2j
1
v
B
2
+ +a
mj
1
v
B
m
= c
j1
a
1j
2
v
B
1
+a
2j
2
v
B
2
+ +a
mj
2
v
B
m
= c
j2
. . . . . . . . .
a
1j
m
v
B
1
+a
2j
m
v
B
2
+ +a
mj
m
v
B
m
= c
jm
În forma matriceală se poate scrie:
(v
B
1
, . . . , v
B
m
)A
B
= (c
j
1
, . . . , c
j
m
)
unde s-a folosit notaţia:
A
B
=
_
_
_
a
1j
1
. . . a
1j
m
.
.
.
a
mj
1
. . . a
mj
m
_
_
_
Deoarece matricea A
B
este inversabilă, soluţia problemei duale va fi:
(v
B
1
, . . . , v
B
m
) = (c
j
1
, . . . , c
j
m
)A
−1
B
În continuare, se determină matricea inversă A
−1
B
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 101 — #101
i
i
i
i
i
i
4.7. Citirea soluţiilor problemei duale 101
Ştiind că orice vector (coloană din matricea A) care nu intră în formarea
bazei, notată cu A
i
, i ∈
¯
B, poate fi scris în mod unic ca o combinaţie liniară
a bazei B, se poate scrie:
A
i
=

j∈B
α
ij
A
j
, i = 1, m (i ∈
¯
B)
Dacă vectorul A
k
i
din baza canonică cu care s-a început aplicarea algo-
ritmului simplex nu este în baza optimă, atunci, evident, se pot determina
coordonatele acestuia în această bază.
Deoarece A
k
i
= e
i
, în cazul în care acest vector nu este în baza optimă,
putem scrie:
e
i
=

j∈B
α
k
i
j
A
j
i = 1, m ⇔
_
¸
¸
_
¸
¸
_
e
1
= α
k
1
j
1
A
j
1

k
1
j
2
A
j
2
+ +α
k
1
j
m
A
j
m
e
2
= α
k
2
j
1
A
j
1

k
2
j
2
A
j
2
+ +α
k
2
j
m
A
j
m
. . . . . . . . .
e
m
= α
k
m
j
1
A
j
1

k
m
j
2
A
j
2
+ +α
k
m
j
m
A
j
m
Matriceal scriind avem:
_
_
_
1 0 . . . 0
.
.
.
0 0 . . . 1
_
_
_
= (A
j
1
. . . A
j
m
)
_
_
_
α
k
1
j
1
. . . α
k
m
j
1
.
.
.
α
k
1
j
m
. . . α
k
m
j
m
_
_
_
de unde evident:
A
−1
B
=
_
_
_
α
k
1
j
1
. . . α
k
m
j
1
.
.
.
α
k
1
j
m
. . . α
k
m
j
m
_
_
_
.
Deci soluţiile problemei duale se obţin din relaţia:
v
B
i
=

j∈B
α
k
i
j
c
j
, i = 1, m.
În concluzie:
dacă pentru un indice i ∈ ¦1, . . . , m¦ avem k
i
∈ B, ceea ce
înseamnă
α
k
i
j
=
_
0, dacă j ,= k
i
1, dacă j = k
i
atunci v
B
i
= c
k
i
;
altfel
dacă k
i
,∈ B,
i
i
“JATEK” — 2005/3/11 — 10:29 — page 102 — #102
i
i
i
i
i
i
102 4. Teoria dualităţii
atunci v
B
i
= c
k
i
+d
k
i
.
În consecinţă, coordonatele vectorului v
B
sunt date cu valorile:
v
B
i
=
_
c
k
i
, k
i
∈ B
c
k
i
+d
k
i
, k
i
,∈ B
care pot fi citite din ultimul tabel simplex.
În continuare, se prezintă un exemplu numeric.
Problemă rezolvată
Să se formuleze duala problemei considerate şi să se determine soluţiile
pro-blemei duale!
(P)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−x
2
−3x
3
+ 5x
4
→ min
−x
1
+x
2
+x
3
+x
4
= 1
x
1
−2x
2
+ 3x
3
+x
5
= 2
x
1
−x
2
+x
6
= 3
x
j
≥ 0, j = 1, 6
Se scrie matricea restricţiilor problemei primale:
A
1
A
2
A
3
A
4
A
5
A
6
A =
_
_
−1 1 1 1 0 0
1 −2 3 0 1 0
1 −1 0 0 0 1
_
_
Deoarece primala are trei restricţii, duala va avea trei variabile, pe care le
vom nota cu v
1
, v
2
, v
3
. Cu ajutorul matricei A
T
putem scrie problema duală.
(D)
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
g(v) = v
1
+ 2v
2
+ 3v
3
→ max
−v
1
+v
2
+v
3
≤ 1
v
1
−2v
2
−v
3
≤ −1
v
1
+ 3v
2
≤ −3
v
1
≤ 5
v
2
≤ 0
v
3
≤ 0
v
1
, v
2
, v
3
de semn oarecare
Cum problema primală este în forma standard de lucru, se alege baza
canonică B
c
= (A
4
, A
5
, A
6
) care este bază primal admisibilă şi se aplică
metoda simplex primal:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 103 — #103
i
i
i
i
i
i
4.7. Citirea soluţiilor problemei duale 103
1 A
4
A
5
A
6
∗ ∗
A
1
-1 1 1 -6 6
A
2
1 -2 -1 6 -3
A
3
1 3 0 8 -11
∗ 1 2 3 5 -10
∗ 1 2/3 - ∗ ∗
2 A
4
A
3
A
6
∗ ∗
A
1
-4/3 1/3 1 -26/3 29/3
A
2
5/3 -2/3 -1 34/3 -31/3
A
5
-1/3 1/3 0 -8/3 11/3
∗ 1/3 2/3 3 -1/3 -8/3
∗ 1/5 - - ∗ ∗
3 A
2
A
3
A
6
∗ ∗
A
1
-4/5 -1/5 1/5 2/5 7/5
A
4
3/5 2/5 3/5 -34/5 31/5
A
5
-1/5 1/5 -1/5 -2/5 8/5
∗ 1/5 4/5 16/5 -13/5 -3/5
∗ - - 16 ∗ ∗
4 A
2
A
3
A
1
∗ ∗
A
6
4 1 5 -2 -7
A
4
3 1 3 -8 2
A
5
-1 0 -1 0 3
∗ 13 4 16 -9 -23
∗ - - - ∗ ∗
Soluţia optimă a problemei primale este x
0
= (16 13 4 0 0 0) :
_
B
c
= (A
4
A
5
A
6
)
B
0
= (A
2
A
3
A
1
)
În continuare, se determină soluţiile optime ale problemei duale, folosind
relaţia:
v
0
i
=
_
c
k
i
, k
i
∈ B
c
k
i
+d
k
i
, k
i
,∈ B
i
i
“JATEK” — 2005/3/11 — 10:29 — page 104 — #104
i
i
i
i
i
i
104 4. Teoria dualităţii
Conform relaţiei date, putem scrie:
v
0
1
→ e
1
= A
4
,∈ B
o
v
0
2
→ e
2
= A
5
,∈ B
o
v
0
3
→ e
3
= A
6
,∈ B
o
v
0
1
= c
4
+d
4
= 5 −8 = −3
v
0
2
= c
5
+d
5
= 0 + 0 = 0
v
0
3
= c
6
+d
6
= 0 −2 = −2
Deci v
0
= (−3 0 −2) şi g
max
= −3 + 2 0 + 3 (−2) = −9 = d
0
= f
min
.
4.8 Legătura dintre soluţiile unui cuplu dual
Conform teoremei fundamentale a dualităţii (Teorema 4.4.3), dacă un
element al cuplului dual are optim finit, atunci şi celălalt model admite soluţie
optimă, iar valorile optime ale funcţiilor de scop coincid.
După cum s-a văzut în paragraful anterior 4.7, soluţiile problemei duale
pot fi citite din ultimul tabel de iteraţie al problemei primale.
Privind citirea soluţiilor problemei duale, există şi un alt aspect al prob-
lemei despre care teorema nu prezintă suficiente informaţii, şi anume:
"Cum deducem din informaţiile pe care ni le dă tabelul simplex al dualei
că primala, respectiv duala, admite optim multiplu şi cum le putem deter-
mina?"
Teorema 4.8.1. Dacă duala unei probleme de programare liniară are optim
finit şi numărul componentelor nule ale soluţiei optime (variabile propriu-
zise plus variabile auxiliare) este egal cu numărul variabilelor propriu-zise
ale dualei, atunci primala are optim unic.
Teorema 4.8.2. Dacă duala unei probleme de programare liniară are optim
finit şi numărul componentelor nule ale soluţiei optime (variabile propriu-zise
plus variabile auxiliare) este mai mare decât numărul variabilelor propriu-zise
ale dualei, atunci primala are optim multiplu.
Problemă rezolvată:
1. Să se determine soluţiile cuplului dual de mai jos:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 105 — #105
i
i
i
i
i
i
4.8. Legătura dintre soluţiile unui cuplu dual 105
(P)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 3x
1
+ 2x
2
→ min
3x
1
+ 2x
2
≥ 6
−x
1
−x
2
≥ −5
x
1
−x
2
≥ −4
−x
1
+x
2
≥ −3
x
1
≥ 0, x
2
≥ 0
(D)
_
¸
¸
_
¸
¸
_
g(v) = 6v
1
−5v
2
−4v
3
−3v
4
→ max
3v
1
−v
2
+v
3
−v
4
≤ 3
2v
1
−v
2
−v
3
+v
4
≤ 2
v
1
≥ 0, v
2
≥ 0, v
3
≥ 0, v
4
≥ 0
Se rezolvă problema (D). Introducând variabile auxiliare, problema fiind
în forma standard de lucru, se va aplica metoda simplex primal.
Matricea restricţiilor este:
v
1
v
2
v
3
v
4
y
1
y
2
_
3 −1 1 −1 1 0
2 −1 −1 1 0 1
_
B = (y
1
, y
2
)
Se notează variabilele auxiliare cu y
1
, y
2
pentru a le deosebi de variabilele
propriu-zise:
1 y
1
y
2
∗ ∗
v
1
3 2 6 -10
v
2
-1 -1 -5 8
v
3
1 -1 -4 5
v
4
-1 1 -3 4
∗ 3 2 0 -4
∗ 1 1 ∗ ∗
2 v
1
y
2
∗ ∗
y
1
1/3 -2/3 -2 10/3
v
2
-1/3 -1/3 -3 14/3
v
3
1/3 -5/3 -6 25/3
v
4
-1/3 5/3 -1 2/3
∗ 1 0 -6 6
∗ ∗ ∗
Soluţia optimă este v
0
= (1 0 0 0 0 0).
În soluţia optimă obţinută există cinci valori nule, dar în problema (D)
sunt patru variabile propriu-zise, rezultă că problema (P) are optim multiplu.
Cum determinăm mulţimea soluţiilor optime ale problemei (P)?
Putem scrie:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 106 — #106
i
i
i
i
i
i
106 4. Teoria dualităţii
(P)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 3x
1
+ 2x
2
→ min
3x
1
+ 2x
2
≥ 6
−x
1
−x
2
≥ −5
x
1
−x
2
≥ −4
−x
1
+x
2
≥ −3
x
1
≥ 0, x
2
≥ 0
(D)
_
¸
¸
_
¸
¸
_
g(v) = 6v
1
−5v
2
−4v
3
−3v
4
→ max
3v
1
−v
2
+v
3
−v
4
≤ 3
2v
1
−v
2
−v
3
+v
4
≤ 2
v
j
≥ 0, j = 1, 4
Cu substituţia t
1
= −x
1
şi t
2
= −x
2
se obţine (P

) din modelul (P)!
(P

)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f

(t) = 3t
1
+ 2t
2
→ max
3t
1
+ 2t
2
≤ −6
−t
1
−t
2
≤ 5
t
1
−t
2
≤ 4
−t
1
+t
2
≤ 3
t
1
≤ 0, t
2
≤ 0
(D

)
_
¸
¸
_
¸
¸
_
g

(z) = −6z
1
+ 5z
2
+ 4z
3
+ 3z
4
→ min
3z
1
−z
2
+z
3
−z
4
≤ 3
2z
1
−z
2
−z
3
+z
4
≤ 2
z
j
≥ 0, j = 1, 4
Dacă se studiază cu atenţie aceste cupluri de probleme, se observă imediat
că problema (D)

s-a rezolvat mai sus.
Din ultimul tabel al problemei rezolvate obţinem o soluţie optimă a prob-
lemei (P)

. Folosind metoda de citire a soluţiilor dualei din ultimul tabel
simplex al problemei rezolvate, putem scrie:
t
0
1
→ e
1
= A
k
1
= y
1
,∈ B
o
⇒ t
0
1
= d
k
1
+c
k
1
= −2
t
0
2
→ e
2
= A
k
2
= y
2
∈ B
o
⇒ t
0
2
= 0
Deci soluţia optimă a problemei (P)

este t
01
= (−2, 0), iar soluţia prob-
lemei (P) va fi x
01
= (2, 0).
Acum se revine în primul tabel simplex unde, în sectorul 10, sunt două
rapoarte minime egale.
Dacă se va rezolva problema (D)

astfel încât vectorul y
2
este ales ca
vector care iese din bază, atunci se va obţine:
2’ y
1
v
1
∗ ∗
y
2
-3/2 1/2 -3 5
v
2
1/2 -1/2 -2 3
v
3
5/2 -1/2 -1 0
v
4
-5/2 1/2 -6 9
∗ 0 1 -6 6
∗ ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 107 — #107
i
i
i
i
i
i
4.8. Legătura dintre soluţiile unui cuplu dual 107
Din acest tabel, se obţine o altă soluţie optimă pentru problema (P)

:
t
0
1
→ e
1
= A
k
1
= y
1
∈ B
o
⇒ t
0
1
= 0
t
0
2
→ e
2
= A
k
2
= y
2
,∈ B
o
⇒ t
0
2
= c
k
2
+d
k
2
= −3
Deci soluţia optimă a problemei (P)

în acest caz este t
02
= (0, −3). Astfel
soluţia problemei (P) va fi x
02
= (0, 3).
Acum se poate scrie mulţimea soluţiilor optime ale problemei (P).
Deoarece am obţinut două soluţii optime, rezultă că problema (P) admite
o infinitate de soluţii optime. Mulţimea soluţiilor optime este combinaţia
convexă a soluţiilor obţinute, adică:
x
0
= λx
01
+ (1 −λ)x
02
, λ ∈ [0, 1]
x
0
= λ(2 0) + (1 −λ)(0 3) = (2λ 3(1 −λ)), λ ∈ [0, 1].
2. Fie următorul cuplu dual:
(P)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = 12x
1
+ 8x
2
→ min
2x
1
+x
2
≥ 1
x
1
+ 2x
2
≥ 2
3x
1
+ 2x
2
≥ 4
x
1
+x
2
≥ 3
x
1
, x
2
≥ 0
(D)
_
¸
¸
_
¸
¸
_
g(y) = y
1
+ 2y
2
+ 4y
3
+ 3y
4
→ max
2y
1
+y
2
+ 3y
3
+y
4
≤ 12
y
1
+ 2y
2
+ 2y
3
+y
4
≤ 8
y
j
≥ 0, j = 1, 4
Rezolvând problema (D), se poate observa că numărul componentelor
nule ale dualei coincide cu numărul variabilelor din problema duală, adică
este 4. De aici rezultă că (P) va avea optim unic.
3. Putem avea cupluri de probleme duale pentru care:
1. un element al cuplului admite optim multiplu, iar celălalt are optim
unic;
2. ambele modele admit optim multiplu.
De exemplu, modelele:
_
¸
¸
_
¸
¸
_
f(x) = 2x
1
+ 2x
2
→ min
x
1
+x
2
≥ 2
x
1
−x
2
≤ 2
x
1
, x
2
≥ 0
_
¸
¸
_
¸
¸
_
g(y) = 2y
1
−2y
2
→ max
y
1
−y
2
≤ 2
y
1
+y
2
≤ 2
y
1
, y
2
≥ 0
admit optim multiplu.
Practic, ne interesează dacă primala are optim finit, unic sau multiplu.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 108 — #108
i
i
i
i
i
i
108 4. Teoria dualităţii
Observaţie. Cu aplicarea algoritmului simplex dual, dacă este posibil,
obţinem în mai puţine iteraţii soluţia optimă.
Dacă considerăm modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
x
1
+ 2x
2
+ 3x
3
+x
4
−3x
5
+x
6
+ 2x
7
→ min
x
1
−x
4
+x
5
−2x
6
−x
7
= −6
x
2
−2x
4
−2x
5
+ 2x
6
+x
7
= 8
x
3
+x
4
−x
5
−x
6
−2x
7
= −2
x
j
≥ 0, j = 1, 7
atunci se poate verifica prin calcul direct că, după o iteraţie cu algoritmul
simplex dual, se obţine soluţia optimă a problemei, iar cu algoritmul simplex
primal sunt necesare 3 iteraţii.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 109 — #109
i
i
i
i
i
i
Capitolul 5
Reoptimizare
Practica pune în faţa matematicii situaţia instabilităţii variantei optime
obţinute pentru un anumit model liniar la un moment dat ca urmare a unui
întreg ansamblu de factori economici, politici, sociali etc., care pot influenţa
elementele modelului, conducând în speţă la modificări ale acestora şi implicit
la modificarea modelului.
Aceste influenţe se pot materializa prin:
- modificări ale termenului liber;
- modificări ale coeficientului funcţiei obiectiv;
- modificări ale coloanelor matricei coeficienţilor;
- modificări ale liniilor matricei coeficienţilor;
- modificări ale numărului de restriţii ale problemei;
- modificări ale numărului de variabile ale problemei.
Aceste modificări atrag după sine, în mod evident, rezolvarea unei probleme
noi de programare liniară.
Se pune întrebarea: Nu se poate rezolva problema modificată prin
folosirea rezultatelor obţinute în urma rezolvării problemei iniţiale?
Răspunsul este afirmativ şi, pentru fiecare caz în parte, au fost formulate
diferite metode de rezolvare.
109
i
i
“JATEK” — 2005/3/11 — 10:29 — page 110 — #110
i
i
i
i
i
i
110 5. Reoptimizare
5.1 Reoptimizarea în urma modificării termenului
liber
Considerăm următoarele modele liniare:
_
¸
_
¸
_
f(x) = (c, x) → min/ max
Ax = b
x ≥ 0
(5.1)
şi:
_
¸
_
¸
_
f(x) = (c, x) → min/ max
Ax = b

x ≥ 0
(5.2)
unde f : R
n
→R, A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
astfel încât:
b

= b + ∆b, adică modelul (5.2) se obţine din modelul (5.1) în urma
modificării vectorului b.
Se presupune, în continuare, că modelul (5.1) admite soluţie optimă şi
se determină soluţia optimă a problemei (5.2) pornind de la ultimul tabel
simplex al problemei rezolvate (5.1).
În urma rezolvării problemei (5.1) cu una din metodele numerice cunos-
cute, ultimul tabel simplex va fi:
ult. A
j
1
. . . A
j
m
∗ ∗ ∗
A
i
α
ij
1
. . . α
ij
m
d
0
p
0
∗ α
0j
1
. . . α
0j
m
d
i
p
i

unde sistemul de vectori din sectorul 2, B
0
= (A
j
1
. . . A
j
m
) este baza optimă.
Teorema 5.1.1. Sistemul de vectori B = (A
j
1
. . . A
j
m
) este bază dual ad-
misibilă pentru problema (5.2).
Demonstraţie. B este bază, deoarece este chiar B
0
şi evident avem B ≡ B
0
,
respectiv B ≡ B
0
. Primul tabel simplex al problemei va arăta astfel:
1. A
j
1
. . . A
j
m
∗ ∗ ∗
A
i
α

ij
1
. . . α

ij
m
d

i
p

i
∗ α

0j
1
. . . α

0j
m
d

0
p

0

i
i
“JATEK” — 2005/3/11 — 10:29 — page 111 — #111
i
i
i
i
i
i
5.1. Reoptimizarea în urma modificării termenului liber 111
Deoarece orice vector poate fi scris în mod unic ca o combinaţie liniară a
bazei, avem: α

ij
= α
ij
pentru orice i ∈ B şi j ∈ B.
De asemenea d

i
= d
i
≤ 0, p

i
= p
i
pentru orice i ∈ B, ceea ce înseamnă
că sistemul de vectori B este bază dual admisibilă.
În continuare, se determină coordonatele vectorului b

în baza B, notate
în tabel cu (α

0j
1
. . . α

0j
m
).
Folosind relaţia cunoscută:
b =

j∈B
α
0j
A
j
putem scrie:
b

=
m

k=1
α

0j
k
A
j
k

(b

1
. . . b

m
) = α

0j
1
A
j
1
+ +α

0j
m
A
j
m
Cu notaţia:
A
j
1
. . . A
j
m
A
B
=
_
_
_
a
1j
1
. . . a
1j
m
.
.
.
.
.
.
a
mj
1
. . . a
mj
m
_
_
_
putem scrie:
(b

1
. . . b

m
) = (α

0j
1
. . . α

0j
m
)
_
_
_
a
1j
1
. . . a
1j
m
.
.
.
.
.
.
a
mj
1
. . . a
mj
m
_
_
_

(b

1
. . . b

m
) = (α

0j
1
. . . α

0j
m
) A
B
De unde obţinem:

0j
1
. . . α

0j
m
) = (b

1
. . . b

m
) A
−1
B
.
Matricea A
−1
B
este în sectorul 6 al ultimului tabel simplex al problemei re-
zolvate.
În urma reoptimizării, pot apărea următoarele situaţii:
(a) baza B dual admisibilă este şi primal admisibilă pentru problema (5.2),
deci avem α

0j
k
≥ 0, pentru orice k = 1, m.
În acest caz, soluţia optimă a problemei (5.1) este optimă şi pentru
pro-blema (5.2).
(b) Dacă există cel puţin un k ∈ ¦1, . . . , m¦ pentru care α

0j
k
< 0, atunci
aplicăm simplex dual pentru problema (5.2).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 112 — #112
i
i
i
i
i
i
112 5. Reoptimizare
Problemă rezolvată
Fie problema de optimizare liniară:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+x
2
→ min
6x
1
+x
2
≥ 1
2x
1
−7x
2
≤ −1
x ∈ R
2
+
(5.3)
a cărei soluţie optimă este x
0
= (6/44, 8/44), iar valoarea optimă a funcţiei
de scop este f
min
= 14/44.
Problema se rezolvă cu algoritmul simplex dual. Forma standard a prob-
lemei considerate este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+x
2
→ min
−6x
1
−x
2
+x
3
= −1
2x
1
−7x
2
+x
4
= −1
x ∈ R
4
+
(5.4)
Ultimul tabel simplex dual va fi:
3. A
1
A
2
∗ ∗ ∗
A
3
-7/44 -2/44 -9/44 62/44
A
4
1/44 -6/44 -5/44 54/44
∗ 6/44 8/44 14/44 16/44 ∗
x
0
= (6/44 8/44) şi f
min
= 14/44.
În continuare, ne interesează soluţia optimă (evident dacă există) a proble-
mei:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+x
2
→ min
−6x
1
−x
2
+x
3
= 2
2x
1
−7x
2
+x
4
= 1
x ∈ R
4
+
şi valoarea optimă a funcţiei de scop.
Acest model se obţine din (5.4) în urma modificării termenului liber:
b

=
_
2
1
_
b

= b + ∆b, ∆b =
_
3
2
_
.
Scriind matricea restricţiilor:
A
1
A
2
A
3
A
4
A =
_
−6 −1 1 0
2 −7 0 1
_
i
i
“JATEK” — 2005/3/11 — 10:29 — page 113 — #113
i
i
i
i
i
i
5.1. Reoptimizarea în urma modificării termenului liber 113
pe baza teoremei 5.1.1 se poate afirma că B = (A
1
A
2
) este bază dual
admisibilă.
Putem scrie:
1 A
1
A
2
∗ ∗ ∗
A
3
-7/44 -2/44 -9/44
A
4
1/44 -6/44 -5/44
∗ α

01
α

02
d

0

A
−1
B
=
_
−7/44 −2/44
1/44 −6/44
_

01
α

02
) = (2 1)
_
−7/44 −2/44
1/44 −6/44
_

01
α

02
) =
_
−13/44 −10/44
_
d

0
= −23/44.
Vom obţine pe rând următoarele tabele simplex dual:
1 A
1
A
2
∗ ∗ ∗
A
3
-7/44 -2/44 -9/44 62/44 9/2
A
4
1/44 -6/44 -5/44 54/44 5/6
∗ -13/44 -10/44 -23/44 90/44 ∗
2 A
1
A
4
∗ ∗ ∗
A
3
-1/6 1/3 -1/6 1 1
A
2
1/6 -44/6 -5/6 54/6 -
∗ -2/6 10/6 -2/6 0 ∗
3 A
3
A
4
∗ ∗ ∗
A
1
-6 2 -1 6
A
2
-1 -7 -1 10
∗ 2 1 0 -2 ∗
Soluţia optimă este x
0
= (0 0 2 1), iar f
min
= 0 este valoarea optimă a
funcţiei de scop.
Observaţie. Problema (5.2), în urma modificării termenului liber, este în
forma standard de lucru.
Dacă problema (5.2), fără aplicarea reoptimizării, se va rezolva cu al-
goritmul simplex primal, atunci vom avea ca primul tabel simplex primal,
chiar ultimul tabel obţinut în urma reoptimizării. Adică baza (A
3
A
4
) primal
admisi-bilă este şi dual admisibilă şi se obţine soluţia optimă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 114 — #114
i
i
i
i
i
i
114 5. Reoptimizarea soluţiilor unei probleme de programare liniară
5.2 Reoptimizarea în urma modificării coefi-
cienţilor funcţiei de scop
În continuare, se consideră modelele liniare:
_
¸
_
¸
_
f(x) = (c, x) → min/ max
Ax = b
x ≥ 0
(5.5)
şi:
_
¸
_
¸
_
f(x) = (c

, x) → min / max
Ax = b
x ≥ 0
(5.6)
unde f : R
n
→R, A ∈ /
m,n
(R), b ∈ R
m
, c ∈ R
n
astfel încât
c

= c + ∆c ∈ R
n
.
Deci vectorul c

este o modificare discretă a vectorului c din problema
(5.5).
Se presupune că modelul (5.5) admite soluţie optimă şi se determină
soluţia optimă a problemei (5.6) folosind ultimul tabel simplex al problemei
(5.5).
Dacă ultimul tabel simplex (primal sau dual) al problemei (5.5) este:
A
j
1
. . . A
j
m
∗ ∗ ∗
A
i
α
ij
1
. . . α
ij
m
d
i
p
i
∗ α
0j
1
. . . α
0j
m
d
0
p
0

unde sistemul de vectori din sectorul 2, notat cu B
0
= (A
j
1
. . . A
j
m
) este bază
optimă, atunci se poate demonstra următorul rezultat.
Teorema 5.2.1. Sistemul de vectori B = (A
j
1
. . . A
jm
) este bază primal
admisibilă pentru problema (5.6).
Demonstraţie. Sistemul de vectori B este bază optimă şi pentru problema
(5.5); prin urmare este un sistem de vectori liniar independenţi.
Evident B ≡ B
0
şi B ≡ B
0
, adică mulţimea indicilor bazici, respectiv
nebazici este aceeaşi în ultimul tabel al problemei (5.5) şi în primul tabel al
problemei (5.6).
Primul tabel simplex primal al problemei (5.6) va fi:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 115 — #115
i
i
i
i
i
i
5.2. Reoptimizarea în urma modificării funcţiei de scop 115
1 A
j
1
. . . A
j
m
∗ ∗
A
i
α

ij
1
. . . α

ij
m
d

i
p

i
∗ α

0j
1
. . . α

0j
m
d

0
p

0
∗ ∗ ∗
unde α

ij
k
= α
ij
k
şi α

0j
k
= α
0j
k
pentru k = 1, m.
Diferenţele din sectoarele 7 şi 8 ale tabelului se calculează cu:
d
i
=

j∈B
α
ij
c
j
−c
i
pentru ∀ i ∈ B
d
0
=

j∈B
α
0j
c
j
(vezi(3.4), (3.5))
Deoarece c

= c +∆c în general vom avea c

j
,= c
j
, j = 1, n ceea ce înseamnă
că d

i
,= d
i
, i ∈ B şi d

0
,= d
0
.
Astfel, în urma aplicării algoritmului simplex primal, pot apărea urmă-
toarele situaţii:
(a) Pentru orice i ∈ B avem d

i
≤ 0, adică baza este şi dual admisibilă,
adică optimă. Soluţia optimă a problemei (5.5) este optimă şi pentru
modelul (5.6).
(b) Dacă există cel puţin un i ∈ B pentru care d

i
> 0, atunci cu algoritmul
simplex primal se va determina soluţia optimă al problemei (5.6).
Observaţie. Formulând duala problemelor considerate, putem scrie:
(D
1
)
_
¸
_
¸
_
g(y) = (v, b) → max / min
A
T
y ≤ c
y de semn oarecare
(D
2
)
_
¸
_
¸
_
g(y) = (y, b) → max / min
A
T
y ≤ c

y de semn oarecare
unde vectorul c

= c +∆c, adică (D
2
,) se obţine din (D
1
) în urma modificării
termenilor liberi. Astfel se poate aplica în scopul determinării soluţiei optime
problemei (D
2
) reoptimizarea în urma modificării termenilor liberi prezentată
în paragraful anterior.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 116 — #116
i
i
i
i
i
i
116 5. Reoptimizarea soluţiilor unei probleme de programare liniară
Problemă rezolvată
Fie următorul model de programare liniară:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 2x
1
+ 3x
2
→ max
x
1
+ 2x
2
≤ 8
3x
1
+ 2x
2
≤ 12
x ∈ R
2
+
Forma standard a problemei este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
−f(x) = −2x
1
−3x
2
→ min
x
1
+ 2x
2
+x
3
= 8
3x
1
+ 2x
2
+x
4
= 12
x ∈ R
4
+
de unde scriem matricea restricţiilor:
A
1
A
2
A
3
A
4
A =
_
1 2 1 0
3 2 0 1
_
.
Problema se rezolvă cu algoritmul simplex primal, obţinând pe rând urmă-
toarele tabele simplex:
1. A
3
A
4
∗ ∗
A
1
1 3 2 -5
A
2
2 2 3 -6
∗ 8 12 0 -19
∗ 4 6 ∗ ∗
2. A
2
A
4
∗ ∗
A
1
1/2 2 1/2 -2
A
3
1/2 -1 -3/2 3
∗ 4 4 -12 5
∗ 8 2 ∗ ∗
3. A
2
A
1
∗ ∗
A
4
-1 /4 1/2 -1/4 1
A
3
3/4 -1/2 -5/4 2
∗ 3 2 -13 9
∗ ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 117 — #117
i
i
i
i
i
i
5.2. Reoptimizarea în urma modificării funcţiei de scop 117
x
0
= (2 3) este soluţia optimă a problemei. Variabilele ecart sunt: x
3
=
x
4
= 0. Valoarea optimă a funcţiei de scop este f
max
= −(−13) = 13.
În continuare, se consideră un model liniar obţinut din modelul rezolvat
prin modificarea discretă a vectorului c, formulat astfel:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 3x
1
+x
2
→ max
x
1
+ 2x
2
≤ 8
3x
1
+ 2x
2
≤ 12
x ∈ R
2
+
Avem:
c = (2 3) ∈ R
2
; c

= (3 1) ∈ R
2
.
Forma standard a problemei considerate este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
−f(x) = −3x
1
−x
2
→ min
x
1
+ 2x
2
+x
3
= 8
3x
1
+ 2x
2
+x
4
= 12
x ∈ R
4
+
Pe baza teoremei 5.2.1, putem considera sistemul de vectori B = (A
2
A
1
),
care este bază primal admisibilă pentru acest model.
Putem scrie:
1 A
2
A
1
∗ ∗
A
4
-1/4 1/2 -5/4 2
A
3
3/4 -1/2 3/4 0
∗ 3 2 -9 5
∗ 4 - ∗ ∗
Baza nu este dual admisibilă, deci continuăm algoritmul:
2 A
3
A
1
∗ ∗
A
4
-1/3 1/3 -1 2
A
2
4/3 2/3 -1 0
∗ 4 4 -12 5
∗ ∗ ∗
Soluţia optimă a problemei este x
0
= (4 0), f
max
= 12, iar variabilele
auxiliare sunt x
3
= 4, x
4
= 0.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 118 — #118
i
i
i
i
i
i
118 5. Reoptimizarea soluţiilor unei probleme de programare liniară
5.3 Reoptimizarea în urma modificării matricei res-
tricţiilor
Privind acest tip de reoptimizare, ne vom opri asupra cazului în care mod-
ificarea se produce în urma adăugării unei restricţii la sistemul de restricţii
al problemei iniţial rezolvate şi al unei variabile.
Acest tip de reoptimizare este utilizat la rezolvarea modelelor discrete,
precum şi la rezolvarea unor modele neliniare.
Rezolvarea unei probleme de optimizare liniară cu restricţii sub
forma standard obţinută prin adăugarea unei restricţii şi a unei
variabile pozitive
Fie modelele liniare:
(1)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
x
j
c
j
→ min
n

j=1
a
ij
x
j
= b
i
, i = 1, m
x
j
≥ 0, j = 1, n
(2)
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
x
j
c
j
→ min
n

j=1
a
ij
x
j
= b
i
i = 1, m
n

j=1
a
m+1j
x
j
+x
n+1
= b
m+1
x
j
≥ 0, j = 1, n + 1
unde c
j
, a
ij
, b
i
∈ R.
Problema (2)se obţine din problema (1) prin adăugarea unei restricţii şi
a unei variabile.
Astfel avem o problemă de programare liniară în R
n
(problema (1)) şi o
problemă de programare liniară în R
n+1
(problema (2)).
Matricile restricţiilor sunt:
A
1
. . . A
n
A
1
1
A
n
1
A
n+1
1
A =
_
_
_
a
11
. . . a
1n
.
.
.
a
m1
. . . a
mn
_
_
_
A
1
=
_
_
_
_
_
a
11
. . . a
1n
0
.
.
.
a
m1
. . . a
mn
0
a
m+1,1
. . . a
m+1,n
1
_
_
_
_
_
unde s-a notat cu A
1
, . . . , A
n
, A
1
1
, . . . , A
n+1
1
vectorii coloană ale matricilor A
şi A
1
iar A
1
, . . . , A
n
∈ R
m
, A
1
1
, . . . , A
n+1
1
∈ R
m+1
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 119 — #119
i
i
i
i
i
i
5.3. Reoptimizarea în urma modificării matricei restricţiilor 119
Din analiza matricilor se observă uşor că între vectorii coloană are loc
relaţia:
A
j
1
= (A
j
, a
m+1,j
) ∈ R
m
R
pentru orice j = 1, n şi
A
n+1
1
= (θ
m
, 1) ∈ R
m
R.
Presupunem că problema (1) admite soluţie optimă, notată în continuare
cu x
0
∈ R
n
.
În ultimul tabel simplex, dacă vom nota cu ¦j
1
, . . . , j
m
¦ o submulţime
a mulţimii ¦1, 2, . . . , n¦, atunci (A
j
1
, . . . , A
j
m
) va reprezenta baza optimă a
problemei (1).
Teorema 5.3.1. Sistemul de vectori B
1
= (A
j
1
1
, . . . , A
j
m
1
, A
n+1
1
) este o bază
dual admisibilă pentru problema (2).
Demonstraţie. Se demonstrează prima dată că acest sistem de vectori este
bază pentru problema (2).
În acest sens trebuie demonstrat că determinantul format din componen-
tele vectorilor este diferit de zero (adică formează un sistem liniar indepen-
dent de vectori). Dezvoltăm determinantul:
A
j
1
1
. . . A
j
m
1
A
n+1
1
D =
¸
¸
¸
¸
¸
¸
¸
¸
¸
a
1j
1
. . . a
1j
m
0
.
.
.
.
.
.
.
.
.
a
mj
1
. . . a
mj
m
0
a
m+1,j
1
. . . a
m+1,j
m
1
¸
¸
¸
¸
¸
¸
¸
¸
¸
după ultima coloană, în care doar ultimul element este diferit de zero. De-
terminantul de ordinul m astfel obţinut:
D

=
¸
¸
¸
¸
¸
¸
¸
a
1j
1
. . . a
1j
m
.
.
.
.
.
.
.
.
.
a
mj
1
a
mj
m
¸
¸
¸
¸
¸
¸
¸
este format din componentele vectorilor care formează baza optimă, prin
urmare acest determinant va fi diferit de zero, ceea ce înseamnă că sistemul
de vectori formează o bază.
În continuare, vom lucra în ipoteza că sistemul de vecori B
1
este bază
dual admisibilă. La demonstraţie, vom reveni după stabilirea modului de
completare a tabelului simplex dual în vederea rezolvării problemei (2).
Ultimul tabel al problemei rezolvate (1) arată astfel.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 120 — #120
i
i
i
i
i
i
120 5. Reoptimizarea soluţiilor unei probleme de programare liniară
ult. A
j
1
. . . A
j
m
∗ ∗ ∗
A
i
α
ij
1
. . . α
ij
m
d
0
p
0
∗ α
0j
1
. . . α
0j
m
d
i
p
i

unde sistemul de vectori din sectorul 2, B
0
= (A
j
1
. . . A
j
m
) este baza optimă.
Vectorii care nu au intrat în formarea bazei sunt:
A
i
1
= (α
ij
1
, . . . , α
ij
m
)
unde coordonatele α
ij
k
, k = 1, m sunt scrise în sectorul 6 în tabel, i ∈ B.
Dacă analizăm acest ultim tabel şi sistemul de vectori B
1
, se observă că
acele coloane din matricea A
1
, care sunt corespunzătoare exact indicilor i,
vor reprezenta vectorii care nu intră în formarea bazei B
1
.
Primul tabel simplex al problemei (2) este:
1. A
j
1
1
. . . A
j
m
1
A
n+1
1
∗ ∗ ∗
A
i
1
α

ij
1
. . . α

ij
m
α

i,n+1
d

i
p

i
∗ α

0j
1
. . . α

0j
m
α

0,n+1
d

0
p

0

Vectorii care nu au intrat în bază se scriu ca o combinaţie liniară a bazei
B
1
.
A
i
1
= α

ij
1
A
j
1
1
+ +α

ij
m
A
j
m
1

i,n+1
A
n+1
1
i ∈
¯
B
1
Putem scrie această relaţie folosind legătura dintre coloanele matricilor A şi
A
1
astfel:
(A
i
, a
m+1,i
) = α

ij
1
(A
j
1
, a
m+1,j
1
)+ +α

ij
m
(A
j
m
, a
m+1,j
m
)+α

i,n+1

m
, 1) i ∈
¯
B
1
Această egalitate din R
m+1
este echivalentă cu sistemul:
_
A
i
= α

ij
1
A
j
1
+ +α

ij
m
A
j
m
i ∈
¯
B
a
m+1,i
= α

ij
1
a
m+1,j
1
+ +α

ij
m
a
m+1,j
m

i,n+1
⇒ α

ij
1
= α
ij
1
, . . . , α

ij
m
= α
ij
m
deoarece scrierea unui vector într-o bază se poate realiza în mod unic.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 121 — #121
i
i
i
i
i
i
5.3. Reoptimizarea în urma modificării matricei restricţiilor 121
Astfel obţinem din a doua egalitate:
α

i,n+1
= a
m+1,i

m

k=1
α
ij
k
a
m+1,j
k
În mod analog, putem deduce:
α

0j
1
= α
0j
1
, . . . , α

0j
m
= α
0j
m
iar
α
0,n+1
= x
0
n+1
= b
m+1

m

k=1
α
0j
k
a
m+1,j
k
Numerele de control pot fi obţinute din:
p

i
= p
i
−α
in+1
, i ∈ B.
p

0
= p
0
−α
0n+1
.
Diferenţele d

i
şi d

0
sunt egale cu cele din ultimul tabel al problemei rezolvate,
deoarece variabila x
n+1
are coeficientul zero în funcţia de scop. Astfel au loc
relaţiile:
d

0
= d
0
, d

i
= d
i
∀ i ∈
¯
B,
ceea ce arată că baza B
1
este bază dual admisibilă. Astfel teorema este
complet demonstrată.
Problemă rezolvată
Se consideră următoarele probleme:
_
¸
¸
_
¸
¸
_
f(x) = x
1
−x
2
+ 2x
3
+x
4
→ min
x
1
+x
2
+x
3
= 3
2x
1
+x
2
+x
4
= 4
x
1
≥ 0, x
4
≥ 0
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−x
2
+ 2x
3
+x
4
→ min
x
1
+x
2
+x
3
= 3
2x
1
+x
2
+x
4
= 4
3x
1
−2x
2
+ 6x
4
+x
5
= −1
x
1
, . . . , x
5
≥ 0
Matricile restricţiilor sunt:
A
1
A
2
A
3
A
4
A
1
1
A
2
1
A
3
1
A
4
1
A
5
1
A =
_
1 1 1 0
2 1 0 1
_
A
1
=
_
_
1 1 1 0 0
2 1 0 1 0
3 -2 0 6 1
_
_
Prima problemă este în forma standard de lucru. Tabelele simplex primal
sunt:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 122 — #122
i
i
i
i
i
i
122 5. Reoptimizarea soluţiilor unei probleme de programare liniară
1 A
3
A
4
∗ ∗
A
1
1 2 3 -5
A
2
1 1 4 -5
∗ 3 4 10 -16
∗ 3 4 ∗ ∗
2 A
2
A
4
∗ ∗
A
1
1 1 -1 0
A
3
1 -1 -4 5
∗ 3 1 -2 -1
∗ ∗ ∗
După două iteraţii, soluţia optimă a primei probleme este:
x
0
= (0 3 0 1); f
min
= −2.
Acum trecem la rezolvarea celei de-a doua probleme.
Folosind teorema 5.3.1, scriem baza dual admisibilă pentru modelul doi:
B
1
= (A
2
1
A
4
1
A
5
1
)
Se completează primul tabel simplex dual:
1 A
2
1
A
4
1
A
5
1
∗ ∗ ∗
A
1
1
1 1 -1 -1 1 1
A
3
1
1 -1 8 -4 -3 -
∗ 3 1 -1 -2 0 ∗
Completarea tabelului simplex dual s-a realizat cu ajutorul relaţiilor date.
Putem scrie: α

15
= a
31
− (1 a
32
+ 1 a
34
) = 3 − (1 (−2) + 1 6) sau
scriind vectorul, care nu intră în formarea bazei, ca o combinaţie liniară a
bazei, putem calcula coordonatele necunoscute astfel:
A
1
1
= 1 A
2
1
+ 1 A
4
1
+αA
5
1
A
1
1
= 1 (1 1 −2) + 1 (0 1 6) +α(0 0 1)
(1 2 3) = (1 2 4 +α)
α = −1.
În mod analog, putem scrie:
A
3
1
= 1 A
2
1
−1A
4
1

35
A
5
1
(1 0 0) = 1 (1 1 −2) −1(0 1 6) +α
35
(0 0 1)
α
35
= 8
b
1
= 3 A
2
1
+ 1 A
4
1

05
A
5
1
(3 4 −1) = 3(1 1 −2) + 1 (0 1 6) +α
05
(0 0 1)
a
05
= −1
După alegerea elementului pivot, trecem la completarea următorului tabel
simplex dual:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 123 — #123
i
i
i
i
i
i
5.3. Reoptimizarea în urma modificării matricei restricţiilor 123
2 A
2
1
A
4
1
A
1
1
∗ ∗ ∗
A
5
1
1 1 -1 -1 1
A
3
1
9 7 -8 -12 5
∗ 2 0 1 -1 -1 ∗
Soluţia optimă a celei de-a doua probleme este:
x
0
= (1 2 0 0 0) f
min
= −1.
Observaţie. Dacă nu folosim reoptimizarea, atunci rezolvarea celei de-a
doua probleme este mai complicată, necesită mai multe iteraţii şi tabele
simplex cu dimensiuni mai mari.
Analizând matricea A
1
, se poate observa că problema nu este în forma
standard de lucru. Algoritmul simplex dual nu se poate aplica în mod di-
rect. Problema poate fi rezolvată cu metoda celor două faze sau cu metoda
coeficienţilor de penalizare.
Reoptimizarea poate fi aplicată şi într-un alt context. Având o problemă
dată spre rezolvare, eliminând din restricţii şi variabile (dacă este cazul, adică
variabilele eliminate nu apar în alte restricţii şi în funcţia de scop), putem
rezolva problema redusă, după care, cu reoptimizare, vom obţine soluţia
optimă a problemei iniţiale.
Problemă rezolvată:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = x
2
−6x
3
+ 2x
5
→ min
x
1
+ 3x
2
−x
3
= 7
−2x
2
+ 4x
3
+x
4
= 12
−4x
2
+ 3x
3
+ 8x
5
+x
6
= 10
x
1
+ 2x
2
+x
3
+x
4
+x
6
+x
7
= 20
x
1
, . . . , x
7
≥ 0
Matricea restricţiilor este:
A =
_
_
_
_
1 3 −1 0 0 0 0
0 −2 4 1 0 0 0
0 −4 3 0 8 1 0
1 2 1 1 0 1 1
_
_
_
_
c = (0 1 −6 0 2 0 0), b = (7 12 10 20). Se poate elimina ultima
restricţie şi variabila x
7
, deoarece nu apare decât în ultima restricţie. Astfel,
i
i
“JATEK” — 2005/3/11 — 10:29 — page 124 — #124
i
i
i
i
i
i
124 5. Reoptimizarea soluţiilor unei probleme de programare liniară
mai întâi, se va rezolva problema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
2
−6x
3
+ 2x
5
→ min
x
1
+ 3x
2
−x
3
= 7
−2x
2
+ 4x
3
+x
4
= 12
−4x
2
+ 3x
3
+ 8x
5
+x
6
= 10
x
1
. . . x
6
≥ 0
după care se aplică reoptimizarea:
A
1
A
2
A
3
A
4
A
5
A
6
A =
_
_
1 3 -1 0 0 0
0 -2 4 1 0 0
0 -4 3 0 8 1
_
_
Problema este în forma standard de lucru şi se va rezolva cu algoritmul
simplex primal. După reoptimizare, obţinem soluţia optimă a problemei
iniţiale care va fi x
0
= (0 4 5 0 0 11), d
0
= f
min
= −26.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 125 — #125
i
i
i
i
i
i
Capitolul 6
Tipuri speciale de probleme de
optimizare
În acest capitol, prezentăm modele de probleme de optimizare care pot fi
rezolvate cu algoritmul simplex.
6.1 Programare discretă
6.1.1 Bazele programării discrete
Obiectul programării discrete este rezolvarea unor anumite probleme de
optimizare.
Definiţia 6.1.1. Programarea discretă studiază probleme de forma:
_
f(x) → min/ max
x ∈ S,
unde S este o mulţime numărabilă.
În literatura de specialitate internaţională, în cadrul programării discrete,
nu există o terminologie unică. În acest sens, sunt folosite denumirile de
programare în numere întregi şi programare combinatorială.
Aceste tipuri de modele pot fi împărţite în două mari grupe:
A. Modele care formal seamănă cu modelele programării liniare, dar sunt
şi alte condiţii puse asupra variabilelor pe lângă condiţia de nenegativitate.
Aceste condiţii, care determină tipurile de probleme discrete, pot fi:
A1: x
i
= 0 sau 1 (unde notăm cu x
i
variabilele problemei);
A2: x
i
∈ [0, d], x
i
întreg (d ∈ N fixat);
A3: x
i
≥ 0, x
i
întregi.
125
i
i
“JATEK” — 2005/3/11 — 10:29 — page 126 — #126
i
i
i
i
i
i
126 6. Tipuri speciale de probleme de optimizare
Se poate observa că A
3
⇒ A
2
⇒ A
1
, implicaţia reciprocă neavând loc. În
concluzie, dacă avem o metodă de rezolvare pentru probleme cele mai gen-
erale A
3
, atunci rezultă că aceste metode pot fi folosite şi pentru rezolvarea
problemelor A
2
şi A
1
.
B. Cea de-a doua grupă constă în probleme mixte în care avem restricţii
de tipul A
1
, A
2
, A
3
doar pentru unele variabile, iar pentru celelalte doar
condiţia de nenegativitate.
Un exemplu cunoscut în acest domeniu este problema rucsacului (vezi
paragraful 1.3).
În continuare, prezentăm câteva modele discrete care vor scoate în evi-
denţă probleme esenţiale legate de rezolvabilitatea modelelor discrete.
Vom prezenta modele discrete în R
2
, care pot fi rezolvate pe cale grafică.
Fie modelul:
_
¸
¸
_
¸
¸
_
f(x) =

2x
1
−x
2
→ max

2x
1
−x
2
≤ 0
−x
2
≤ −1
x
1
, x
2
≥ 0, x
1
, x
2
∈ N
În acelaşi sistem de coordonate, reprezentăm dreptele:
(d
1
)

2x
1
−x
2
= 0 (d
2
) −x
2
+ 1 = 0
x
2
(d
1
)
(d
2
)
x
1 2
Observaţie. Dacă pentru o problemă de programare discretă ne rezumăm
la raţionamentul folosit, în cazul modelelor liniare putem greşi.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 127 — #127
i
i
i
i
i
i
6.1. Programare discretă 127
Exemplu.
_
¸
¸
_
¸
¸
_
f(x) =

5x
1
−x
2
→ max

5x
1
−x
2
≤ 0
−x
1
≤ −1
x
1
, x
2
≥ 0, x
1
, x
2
∈ N
În mod analog lucrând, vom obţine:
x
2
(d
1
)
(d
2
)
1
x
1
Învelitoarea convexă a punctelor conv ¦a
1
, . . . , a
n
¦ (punctele de inter-
secţie a dreptelor) nu este neapărat un poliedru. De exemplu, la modelul
considerat, învelitoarea convexă tinde spre dreapta

5x
1
= x
2
, dar nu atinge.
Deci trebuie luat în considerare cazul în care există soluţie admisibilă, funcţia
de scop este mărginită. Şi totuşi nu există soluţie optimă.
Are loc următorul rezultat:
Teorema 6.1.1. Fie modelul:
_
_
_
f(x, y) = cx +dy → min(max)
Ax +By = b
x ∈ N
p
+
y ∈ R
q
+
A ∈ /
m×p
B ∈ /
m×q
Notăm cu C = conv (S).
Dacă A şi B sunt formate din numere raţionale, atunci C este un
poliedru.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 128 — #128
i
i
i
i
i
i
128 6. Tipuri speciale de probleme de optimizare
Observaţie. În orice caz practic, teorema asigură existenţa soluţiei optime,
dacă există soluţie admisibilă şi funcţia de scop este mărginită, deoarece
calculatorul lucrează numai cu numere raţionale.
Sunt două principii funadamentale (principiul relaxării, principiul lui
Bellmann)care stau la baza metodelor numerice elaborate pentru rezolvarea
mode-lelor discrete.
Principiul relaxării
Dintre toate tipurile de programare matematică, prima dată a fost for-
mulată şi studiată programarea liniară. Astfel este firesc ca rezolvarea prob-
lemelor de programare discretă să fie redusă la rezolvarea numerică a acestor
probleme.
În acest sens, dacă în modelul:
_
_
_
f(x) = (c, x) → opt.
Ax = b
x ∈ N
n
se renunţă la condiţia de integritate a variabilelor, atunci se obţine o problemă
de programare liniară. Rezolvând această problemă şi dacă soluţia x
0
verifică
condiţiile x ∈ N
n
, atunci reiese că avem soluţie optimă şi pentru problema
discretă. Metodele de rezolvare care urmăresc acest raţionament se bazează
pe principiul relaxării.
În continuare, enunţăm principiul relaxării .
Fie S, T două mulţimi oarecare astfel încât S ⊂ T. Fie f : T →R o funcţie
oarecare. Dacă problema
_
f(x) → max
x ∈ T
admite soluţie optimă notată cu
y şi y ∈ S, atunci y va fi de asemenea soluţie optimă pentru problema
_
f(x) → max
x ∈ S
Prima problemă prin definiţie se numeşte problemă relaxată.
Metodele de tip tăietură şi metoda mărginirii şi separării sunt construite
pe acest principiu.
Deşi trivial, principiul relaxării este un instrument extrem de util.
Practic este util atunci când rezolvarea problemei relaxate este mult mai
simplă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 129 — #129
i
i
i
i
i
i
6.1. Programare discretă 129
În continuare, se consideră problema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 7x
1
+ 5x
2
→ max
6x
1
+ 9x
2
≤ 54
7x
1
+ 6x
2
≤ 42
x
1
≤ 4
x
1
, x
2
∈ N
Vom rezolva pe cale grafică. În acelaşi sistem de coordonate, vom
reprezenta dreptele şi vom determina mulţimea soluţiilor posibile:
x
2
9
6
(d
2
)
x
1
(d
3
)
(d
1
)
Evident mulţimea soluţiilor posibile este:
S = ¦(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6)
(1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5)
(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)
(3, 0), (3, 1), (3, 2), (3, 3)
(4, 0), (4, 1), (4, 2)¦
Obţinem soluţia optimă într-un poliedru convex. Învelitoarea convexă a
punctelor (soluţiilor posibile) este un poliedru mai mic.
Soluţia optimă a problemei discrete va fi x = (4 2), iar soluţia problemei
relaxate este x
0
= (4 7/3), punctul de intersecţie a dreptelor (d
3
) ∩ (d
2
).
6.1.2 Metode de tip tăietură. Metoda lui Gomory
Algoritmul lui Gomory este o metodă de tip tăietură şi a fost formulat în
1959 [Gom].
i
i
“JATEK” — 2005/3/11 — 10:29 — page 130 — #130
i
i
i
i
i
i
130 6. Tipuri speciale de probleme de optimizare
Fie modelul liniar cu restricţii în numere întregi:
_
_
_
f(x) = (x, c) → min
Ax = b
x ∈ N
n
.
(6.1)
Asociem acestui model problema relaxată:
_
_
_
f(x) = (x, c) → min
Ax = b
x ≥ 0
(6.2)
care este o problemă de programare liniară obişnuită.
Notăm cu S = ¦x ∈ N
n
: Ax = b¦ mulţimea soluţiilor problemei discrete
şi cu S
1
= ¦x ∈ R
n
: Ax = b, x ≥ 0¦ mulţimea soluţiilor admisibile ale
problemei relaxate.
Evident are loc relaţia S ⊆ S
1
.
În continuare, prezentăm algoritmul lui Gomory.
1. Se va rezolva problema relaxată cu una din metodele prezentate şi se
va nota cu x
1
∈ S
1
soluţia optimă obţinută.
2. Aplicăm principiul relaxării.
Se pot ivi două situaţii:
(a) dacă x
1
∈ S ⇒ x
1
este soluţia optimă a problemei discrete;
(b) dacă x
1
,∈ S, atunci există cel puţin o componentă a vectorului care
nu este număr natural.
În cazul (b), se va continua algoritmul.
3. Notăm cu B
o
baza optimă a problemei relaxate. Deoarece x
1
,∈ S,
rezultă că există cel puţin un număr α
0j
care nu este natural, adică:
∃ j ∈ B : α
0j
,∈ N.
4. Fie j ∈ B pentru care α
0j
,∈ N.
Se va construi o nouă problemă astfel:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (x, c) → min
Ax = b

i∈
¯
B
¦α
ij
¦x
i
≥ ¦α
0j
¦/ (−1)
x ≥ 0
(6.3)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 131 — #131
i
i
i
i
i
i
6.1. Programare discretă 131
Mulţimea soluţiilor posibile ale problemei (6.3) se va nota cu:
S
2
= ¦x ∈ R
n
: Ax = b,

i∈
¯
B
¦α
ij
¦x
i
≥ ¦α
0j
¦, x ≥ 0¦.
Au loc relaţiile:
S
2
⊆ S
1
(chiar se poate arăta că S
2
⊂ S
1
);
S ⊆ S
2
.
În scopul rezolvării, problema se va transforma astfel:
_
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
_
f(x) = (x, c) → min
Ax = b

i∈
¯
B
¦α
ij
¦x
i
+x
n+1
= −¦α
0j
¦
x ≥ 0, x
n+1
≥ 0
(6.4)
Acest model se va rezolva cu reoptimizare.
Soluţia acestei probleme va avea (n+1) coordonate. Se vor lua primele
n componente pe care le vom nota cu x
2
∈ S
2
.
5. Cu soluţia x
2
astfel obţinută se va trece la pasul 2 din algoritm.
Observaţie. Algoritmul prezentat nu oferă soluţie într-un număr finit de
paşi în cazul tuturor problemelor, însă poate fi construită o variantă cu număr
finit de iteraţii. În cazul algoritmului simplex, numărul maxim de iteraţii este
C
m
n+m
, dar în cazul algoritmului Gomory nu se poate da un astfel de număr, o
margine superioară în funcţie de dimensiunea problemei [Jer]. Dezavantajul
metodei este că, la fiecare iteraţie, creşte dimensiunea problemei. Mulţimea
soluţiilor posibile S este aproximată cu un şir de mulţimi tot mai restrictive,
care sunt mulţimile soluţiilor posibile ale modelelor liniare construite în pasul
4 din algoritm.
Se poate demonstra că, în cazul în care datele de intrare ale problemei,
A, c, b, sunt formate din numere întregi, iar mulţimea S este mărginită atunci
după un număr finit de paşi, se va obţine soluţia optimă a problemei de
minimizare total întreagă.
Inegalitatea:

i∈
¯
B
¦α
ij
¦x
i
≥ ¦α
0j
¦
se numeşte tăietura lui Gomory, unde ¦x¦ reprezintă partea fracţionară a
numărului real x.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 132 — #132
i
i
i
i
i
i
132 6. Tipuri speciale de probleme de optimizare
Pentru orice x ∈ R poate fi scris:
x = ¦x¦ + [x], unde [x]
este partea întreagă a numărului.
Teorema 6.1.2. Presupunem că problema relaxată admite soluţie optimă şi
funcţia de scop este mărginită inferior (pentru f(x
0
) ∃ w : w ≤ f(x
0
)).
După un număr finit de iteraţii, vom întâlni una din următoarele situaţii:
1. obţinem soluţia optimă pentru problema de programare total întreagă;
2. găsim f(x
0
) < w;
3. demonstrăm că o variabilă poate lua numai valori negative.
Demonstraţie. [Sch] pg. 356-358.
Problemă rezolvată:
Să se determine soluţia optimă a problemei discrete:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−6x
2
+x
3
→ min
2x
1
−3x
2
+x
3
= 2
x
1
+ 3x
2
+x
4
= 3
3x
1
+ 6x
2
+x
5
= 3
x
1
, . . . , x
5
∈ N
Problema relaxată este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−6x
2
+x
3
→ min
2x
1
−3x
2
+x
3
= 2
x
1
+ 3x
2
+x
4
= 3
3x
1
+ 6x
2
+x
5
= 3
x
j
≥ 0, j = 1, 5
Matricea problemei relaxate este:
A
1
A
2
A
3
A
4
A
5
A =
_
_
2 -3 1 0 0
1 3 0 1 0
3 6 0 0 1
_
_
Problema este în forma standard de lucru şi se va rezolva cu algoritmul
simplex primal.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 133 — #133
i
i
i
i
i
i
6.1. Programare discretă 133
1 A
3
A
4
A
5
∗ ∗
A
1
2 1 3 1 -6
A
2
-3 3 6 3 -8
∗ 2 3 3 2 -9
∗ - 1 1/2 ∗ ∗
2 A
3
A
4
A
2
∗ ∗
A
1
7/2 -1/2 1/2 -1/2 -2
A
5
1/2 -1/2 1/6 -1/2 4/3
∗ 7/2 3/2 1/2 1/2 -5
∗ ∗ ∗
Soluţia optimă este:
x
1
=
_
0
1
2
7
2
3
2
0
_
d
0
= f
min
=
1
2
j ∈ ¦2, 3, 4¦
α
02
=
1
2
,∈ N
Pentru j = 2 ales din mulţimea indicilor bazici ¦2, 3, 4¦, scriem tăietura
lui Gomory.

i∈
¯
B
¦α
ij
¦x
i
≥ ¦α
0j
¦
j = 2 α
02
=
1
2
⇒ ¦α
02
¦ =
1
2
i ∈
¯
B = ¦1, 5¦
α
12
=
1
2
⇒ ¦α
12
¦ =
1
2
α
5,2
=
1
6
⇒ ¦α
5,2
¦ =
1
6
Folosind tăietura lui Gomory, scriem modelul liniar:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = x
1
−6x
2
+x
3
→ min
2x
1
−3x
2
+x
3
= 2
x
1
+ 3x
2
+x
4
= 3
3x
1
+ 6x
2
+x
5
= 3
1
2
x
1
+
1
6
x
5

1
2
x
1
. . . x
5
≥ 0
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = x
1
−6x
2
+x
3
→ min
2x
1
−3x
2
+x
3
= 2
x
1
+ 3x
2
+x
4
= 3
3x
1
+ 6x
2
+x
5
= 3

1
2
x
1

1
6
x
5
+x
6
= −
1
2
x
1
. . . x
6
≥ 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 134 — #134
i
i
i
i
i
i
134 6. Tipuri speciale de probleme de optimizare
Problema va fi rezolvată prin reoptimizare. Matricea restricţiilor este:
A
1
1
A
2
1
A
3
1
A
4
1
A
5
1
A
6
1
A
1
=
_
_
_
_
_
_
2 −3 1 0 0 0
1 3 0 1 0 0
3 6 0 0 1 0

1
2
0 0 0 −
1
6
1
_
_
_
_
_
_
b
1
=
_
_
_
_
_
2
3
3

1
2
_
_
_
_
_
c =
_
1 −6 1 0 0 0
_
Vom rezolva cu algoritmul simplex dual.
Ştiind că sistemul de vectori B
1
= ¦A
3
1
, A
4
1
, A
2
1
, A
6
1
¦ este bază dual ad-
misibilă, completăm primul tabel simplex dual:
1 A
3
1
A
4
1
A
2
1
A
6
1
∗ ∗ ∗
A
1
1
7/2 -1/2 1/2 -1/2 -1/2 -3/2 1
A
5
1
1/2 -1/2 1/6 -1/6 -1/2 3/2 3
∗ 7/2 3/2 1/2 -1/2 1/2 -9/2 ∗
Ultima coordonată a vectorilor care nu intră în formarea bazei se obţine
efectuând calculele:
A
1
1
=
7
2
A
3
1

1
2
A
4
1
+
1
2
A
2
1
+αA
6
1
=
7
2
(1, 0, 0, 0) −
1
2
(0, 1, 0, 0) +
+
1
2
(−3, 3, 6, 0) +α(0, 0, 0, 1) =
_
7
2

3
2
, −
1
2
+
3
2
, 3, α
_
= (2, 1, 3, α)
_
2, 1, 3, −
1
2
_
= (2, 1, 3, α)
α = −
1
2
b
1
=
7
2
A
3
1
+
3
2
A
4
1
+
1
2
A
2
1
+βA
6
1
⇒ β = −
1
2
După o iteraţie simplex dual, se obţine următorul tabel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 135 — #135
i
i
i
i
i
i
6.1. Programare discretă 135
2 A
3
1
A
4
1
A
2
1
A
1
1
∗ ∗ ∗
A
6
1
7 -1 1 -2 -1 -3
A
5
1
-2/3 -1/3 0 1/3 -1/3 2
∗ 0 2 0 1 1 -3 ∗
Baza dual admisibilă este şi primal admisibilă. Soluţia optimă este:
x
2
= (1, 0, 0, 2, 0) ∈ S. Pe baza principiului relaxării, această soluţie este
soluţie şi pentru problema iniţială:
d
0
= 1 = f
min
6.1.3 Programare dinamică discretă
Metodele numerice de rezolvare a modelelor discrete bazate pe principiul
lui Bellman sunt diferite de metoda simplex şi nu reprezintă obiectul acestei
lu-crări.
Deoarece programarea dinamică discretă este relevantă prin aplicaţiile
importante în economie, o vom prezenta în Anexa 1.
6.2 Programare liniară parametrică
Problemele indicate de practica economică conduc la formarea modelelor
matematice cu coeficienţi variabili. Studiul variaţiei soluţiei optime în funcţie
de variaţia datelor de intrare reprezintă o problemă extrem de importantă.
Datele de intrare sunt resurse, costuri, beneficii şi alte mărimi economice.
Fie modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
ξ
j
x
j
→ max(min)
n

j=1
η
ij
x
j
≤ ζ
i
, i = 1, m
x
j
≥ 0, j = 1, n
(6.5)
unde ξ
j
, η
ij
, ζ
i
pentru i = 1, m, j = 1, n sunt variabile aleatoare. Acest model
este de fapt negarea determinabilităţii unui model obişnuit de programare
liniară.
Modelul (6.5) reprezintă obiectul programării stohastice.
Dacă ξ
j
, η
ij
, ζ
i
pentru i = 1, m, j = 1, n sunt funcţii deterministice, atunci
modelul (6.5) aparţine domeniului programării neliniare.
Acest model reprezintă extinderea situaţiilor şi consideraţiilor prezentate
în capitolele anterioare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 136 — #136
i
i
i
i
i
i
136 6. Modele rezolvabile cu algoritmul simplex
În scopul aplicării metodei simplex problemei (6.5), vom considera cazul
în care aceste funcţii sunt funcţii liniare de o variabilă, astfel:
_
¸
_
¸
_
(c +c

α, x) → max(min)
(A+A

β)x ≤ b +b

γ
0 ≤ β ≤ β
0
, 0 ≤ α ≤ α
0
, 0 ≤ γ ≤ γ
0
(6.6)
unde:
ξ
j
= c
j
+c

j
α, j = 1, n
η
ij
= a
ij
+a

ij
β, i = 1, m; j = 1, n
ζ
i
= b
i
+b

i
γ, i = 1, m
iar α, β, γ sunt variabile care iau valori dintr-un interval bine determinat.
Modelul (6.6) este un model de programare cu n+3 variabile, care admite
soluţie în cazul în care sistemul de restricţii este consistent, dar determinarea
soluţiei optime este în afara posibilităţilor metodei simplex.
În continuare vom considera următoarele cazuri:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (c, x) → opt.
Ax ≤ b +b

λ
x ≥ 0
λ
0
≤ λ ≤ λ
1
(6.7)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (c +c

λ, x) → opt.
Ax ≤ b
x ≥ 0
λ
0
≤ λ ≤ λ
1
(6.8)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (c, x) → opt.
(A+A

λ)x ≤ b
x ≥ 0
λ
0
≤ λ ≤ λ
1
(6.9)
în care, pe rând, cantităţile din membrul drept, componentele funcţiei de
scop şi resursele sunt funcţii care depind liniar de un parametru.
Definiţia 6.2.1. Modelele (6.7), (6.8) şi (6.9) se numesc modele de progra-
mare parametrică.
Putem formula două probleme:
- determinarea variantei optime a modelului liniar pentru o valoare fixată
a parametrului (sau valori fixate ale parametrilor), ceea ce este o problemă
de programare liniară obişnuită;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 137 — #137
i
i
i
i
i
i
6.2. Programare liniară parametrică 137
- reoptimizarea soluţiei determinate pentru valori fixate ale parametrilor
în condiţiile când parametrii variază pe mulţimea în care iau valori sau pe
părţi ale acesteia.
Problema parametrizării modelului înseamnă analiza dependenţei
parame-trice a elementelor sale, adică a vectorului resursă (b), a vectoru-
lui beneficiar (c), a matricei tehnologice (A).
Aceste probleme nu pot fi considerate ca o simplă prelungire a reopti-
mizării. Dificultăţile sunt mari şi ele cresc o dată cu natura dependenţei
parametrice şi cu simultaneitatea dependenţei elementelor modelului.
La prima vedere, modelele (6.7), (6.8) şi (6.9) reprezintă o infinitate de
modele liniare pe care le obţinem pe rând pentru fiecare valoare fixată a
parametrului λ ∈ [λ
0
, λ
1
]. Pe de altă parte, practic, nu pentru fiecare λ fixat
am obţine o bază optimă.
Definiţia 6.2.2. Bazele optime ale problemei (6.6) se numesc baze ca-
racteristice.
La fiecare bază caracteristică B
car
i se poate asocia un interval [λ
c
1
, λ
c
2
] ⊂

0
, λ
1
] numit interval caracteristic.
Rezolvarea unui astfel de model înseamnă determinarea bazelor caracter-
istice şi a intervalelor caracteristice corespunzătoare.
6.2.1 Parametrizarea membrului drept
În acest paragraf, prezentăm algoritmul de rezolvare a problemei
de tip (6.7).
1. Pentru λ = 0 (cea mai utilă fixare a parametrului), rezolvăm modelul
de programare liniară obţinut cu una din metodele numerice cunos-
cute. Se presupune că există soluţie optimă; în caz contrar, nu are sens
parametrizarea.
2. Cu algoritmul simplex, soluţia optimă de la etapa 1, notată cu x
λ
0
,
este:
x
λ
0
= B
−1
0
b.
În continuare, considerăm termenul liber b(λ) = b + b

λ al problemei
(6.7) şi scriem:
x(λ) = B
−1
0
b(λ).
3. Valorile lui λ ∈ R pentru care x(λ) ≥ 0 (este soluţie posibilă) formează
intervalul caracteristic asociat lui λ = 0, notat cu [λ
0
c
1
, λ
0
c
2
].
i
i
“JATEK” — 2005/3/11 — 10:29 — page 138 — #138
i
i
i
i
i
i
138 6.2.1. Parametrizarea membrului drept
4. Studiem cazurile pentru care λ ,∈ [λ
0
c
1
, λ
0
c
2
].
Se pot ivi două situaţii:
Dacă intervalul caracteristic nu se poate prelungi pentru că în sectorul
4 există o valoare α
0j
< 0, j ∈ B pentru care α
ij
≥ 0 pentru orice
i ∈ B, atunci problema nu admite soluţie optimă:
altfel
5. se aplică algoritmul simplex dual şi se obţine o prelungire a intervalului
caracteristic.
6. Continuăm procedura de la pasul 5, până când se va ajunge la criteriul
de oprire din 4.
Problemă rezolvată
Să se determine bazele şi intervalele caracteristice problemei:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = −9x
1
−16x
2
→ min
x
1
+ 4x
2
≤ 8 −2λ
2x
1
+ 3x
2
≤ 9 + 3λ
x ∈ R
2
+
, λ ∈ R
Considerăm λ = 0 şi rezolvăm modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = −9x
1
−16x
2
→ min
x
1
+ 4x
2
+x
3
= 8
2x
1
+ 3x
2
+x
4
= 9
x ∈ R
4
+
,
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A =
_
1 4 1 0
2 3 0 1
_
1. A
3
A
4
∗ ∗
A
1
1 2 9 -11
A
2
4 3 16 -22
∗ 8 9 0 -16
∗ 2 3 ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 139 — #139
i
i
i
i
i
i
6.2. Programare liniară parametrică 139
2. A
2
A
4
∗ ∗
A
1
1/4 5/4 5 -22/4
A
3
1/4 -3/4 -4 22/4
∗ 2 3 -32 28
∗ 8 12/5 ∗ ∗
3. A
2
A
1
∗ ∗
A
4
-1/5 4/5 -4 22/5
A
3
2/5 -3/5 - 1 11/5
∗ 7/5 12/5 -44 206/5
∗ ∗ ∗
Soluţia optimă este:
x
0
= b (12/5, 7/5) şi f
min
= −44.
Revenim la modelul de programare parametrică şi scriem:
b(λ) =
_
8 −2λ
9 + 3λ
_
x(λ) = B
−1
b(λ), B
−1
=
_
2/5 −1/5
−3/5 4/5
_
x(λ) =
_
2/5 −1/5
−3/5 4/5
__
8 −2λ
9 + 3λ
_
=
_
_
_
_
7
5

7
5
λ
12
5
+
18λ
5
_
_
_
_
Dacă x(λ) ≥ 0, atunci B = (A
2
, A
1
) este bază optimă. Astfel obţinem din:
x(λ) ≥ 0 ⇔
_
¸
¸
_
¸
¸
_
7
5

7
5
λ ≥ 0
12
5
+
18λ
5
≥ 0

_
_
_
λ ≤ 1
λ ≥ −
2
3
.
Dacă λ ∈
_

2
3
, 1
_
atunci B = (A
2
, A
1
) este bază optimă şi:
_
x
2
(λ)
x
1
(λ)
_
=
_
_
_
_
7
5

7
5
λ
12
5
+
18λ
5
_
_
_
_
este soluţie optimă.
Valoarea optimă a funcţiei de scop este f
min
(λ) = −44 −10λ.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 140 — #140
i
i
i
i
i
i
140 6.2.1. Parametrizarea membrului drept
Dacă λ ,∈
_

2
3
, 1
¸
atunci cel puţin o componentă a lui x(λ) va deveni
negativă, prin urmare, în cazul în care există soluţie, va trebui să se aplice
algoritmul simplex dual.
Astfel, dacă λ > 1, atunci notăm λ = 1 +µ, µ > 0. Putem scrie:
x(µ) =
_
_
_
_
7
5

7
5
(1 +µ)
12
5
+
18
5
(1 +µ)
_
_
_
_
=
_
_
_
_

7
5
µ

6
5

18
5
µ
_
_
_
_
.
Revenim la ultimul tabel al problemei rezolvate pentru λ = 0 şi vom avea:
1. A
2
A
1
∗ ∗ ∗
A
4
-1/5 4/5 -4 22/5 -
A
3
2/5 -3/5 -1 11/5 5/3
∗ -7/5µ −
6
5

18
5
µ
54+274µ
5

2. A
2
A
3
∗ ∗ ∗
A
4
1/3 -4/3 -16/3
A
1
2/3 -5/3 -5/3 11/3
∗ −
4+19µ
5
2 + 6µ
Deoarece pentru α
02
= −
4 + 19µ
5
< 0 valorile α
42
=
1
3
> 0 şi α
12
=
2
3
>
0 rezultă că problema nu admite optim finit.
În concluzie, intervalul nu poate fi prelungit la dreapta, pentru λ > 1
modelul considerat nu admite soluţie optimă.
Dacă λ < −
2
3
atunci putem introduce notaţia λ = −
2
3
− α, α > 0 şi
putem scrie:
x(α) =
_
_
_
_
_
7
5

7
5
_

2
3
−α
_
12
5
+
18
5
_

2
3
−α
_
_
_
_
_
_
=
_
_
_
7
3
+

5

18
5
α
_
_
_
.
Revenim la ultimul tabel al problemei rezolvate pentru λ = 0 şi scriem:
1. A
2
A
1
∗ ∗ ∗
A
4
-1/5 4/5 -4 22/5
A
3
2/5 -3/5 -1 11/5 5/3

7
3
+

5

18α
5
∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 141 — #141
i
i
i
i
i
i
6.2. Programare liniară parametrică 141
2. A
2
A
3
∗ ∗ ∗
A
4
1/3 -4/3 -16/3
A
1
2/3 -5/3 -5/3 11/3
∗ 7/3-α 6α ∗
Dacă
7
3
−α ≥ 0 atunci x(α) =
_
7
3
−α
0
_
este soluţie optimă. Astfel pentru
α ≤
7
3
avem λ = −
2
3

7
3
= −3, adică intervalul poate fi prelungit la stânga.
Dacă α ∈
_
0,
7
3
_
atunci λ ∈
_
−3, −
2
3
_
şi B = (A
2
, A
3
) este bază optimă:
f
min
(α) = −
112
3
+ 16α.
Dacă
7
3
−α < 0 atunci modelul nu admite optim finit, deoarece:
α
42
=
1
3
> 0 şi α
12
=
2
3
> 0.
Deci modelul de programare parametrică admite soluţie optimă doar în
cazul în care λ ∈ [−3, 1].
6.2.2 Parametrizarea funcţiei de scop
Fie modelul:
_
¸
_
¸
_
f(x) = (c +c

λ, x) → min/ max
Ax = b
x ≥ 0, λ ∈ R
Putem presupune, fără restrângerea generalităţii, că b ∈ R
m
+
. Astfel, la re-
zolvarea numerică a problemei se aplică algoritmul simplex primal.
În sectorul 7, vor fi diferenţele d
i
, i ∈ B, care sunt funcţii de λ.
Putem scrie d
i
(λ) = α
i
λ + β
i
, i ∈ B şi notăm soluţiile ordonate ale
ecuaţiilor d
i
(λ) = 0 cu λ
0
i
= −
β
i
α
i
, α
i
,= 0. Considerând, pe rând, intervalele
caracteristice (−∞, λ
0
1
], [λ
0
1
, λ
0
2
] . . . [λ
m
0
, ∞) şi ţinând cont de semnul funcţiilor
d
i
pe aceste intervale se vor determina bazele caracteristice.
Problemă rezolvată
Să se determine bazele şi intervalele caracteristice pentru următorul
model:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 142 — #142
i
i
i
i
i
i
142 6.2.2. Parametrizarea funcţiei de scop
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+x
2
−λx
3
+ 2λx
4
→ min
x
1
+x
3
+ 2x
4
= 2
2x
1
+x
2
+ 3x
4
= 4
x ∈ R
4
+
, λ ∈ R
Matricea restricţiilor este:
A
1
A
2
A
3
A
4
A =
_
1 0 1 2
2 1 0 3
_
, B = (A
3
, A
2
)
1. A
3
A
2

A
1
1 2 −λ + 1
A
4
2 3 −4λ + 3
∗ 2 5 −2λ + 5
∗ 2 5/2 ∗
În sectorul 7, avem funcţiile reale de o variabilă reală:
d
1
(λ) = −λ + 1, d
1
: R →R
d
4
(λ) = −4λ + 3, d
4
: R →R.
Soluţiile ecuaţiilor d
i
(λ) = 0, i ∈ B = ¦1, 4¦ sunt λ
0
1
=
3
4
, λ
0
2
= 1.
Pentru studiul semnului, considerăm tabelul:
λ −∞ 3/4 1 ∞
d
1
(λ) + + + + + + 0 – – –
d
4
(λ) + + + + 0 – – – – –
Pe baza tabelului, putem scrie:
I. Dacă λ ∈
_
−∞,
3
4
_
atunci d
1
(λ) > 0, d
4
(λ) ≥ 0.
II. Dacă λ ∈
_
3
4
, 1
_
atunci d
1
(λ) ≥ 0, d
4
(λ) < 0.
III. Dacă λ ∈ (1, ∞) atunci d
1
(λ) < 0, d
4
(λ) < 0.
În cazul III, dacă λ ∈ (1, ∞) din tabelul simplex, citim baza caracteristică
care este B = (A
3
, A
2
) şi x
0
= (0 5 2 0) este soluţie optimă:
f
min
(λ) = −2λ + 5.
Dacă λ ∈
_
3
4
, 1
_
, atunci considerăm algoritmul simplex primal, A
1
va fi
vectorul care va intra în bază. Putem scrie:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 143 — #143
i
i
i
i
i
i
6.2. Programare liniară parametrică 143
2. A
1
A
2

A
3
1 -2 λ −1
A
4
2 -1 −2λ + 1
∗ 2 1 3
∗ 1 ∗
B = (A
1
, A
2
) este bază caracteristică, dacă d
3
(λ) ≤ 0 şi d
4
(λ) ≤ 0.
Rezolvând sistemul de inecuaţii:
_
λ −1 ≤ 0
−2λ + 1 ≤ 0
⇔ λ ∈
_
1
2
, 1
_
.
Deci pentru λ ∈
_
3
4
, 1
_
baza caracteristică este B = (A
1
, A
2
) şi
x
0
= (2 1 0 0) este soluţie optimă:
f
min
(λ) = 3.
Dacă λ ∈
_
−∞,
3
4
_
, revenim la primul tabel simplex şi aplicăm algorit-
mul simplex primal. Luând vectorul A
1
, ca vector care intră în bază, vom
obţine tabelul 2.
Se deduce imediat că, pentru λ ∈
_
1
2
,
3
4
_
, baza B = (A
1
, A
2
) este bază
caracteristică.
În continuare, studiem cazul pentru care λ ∈
_
−∞,
1
2
_
şi continuăm
algoritmul simplex în tabelul 2.
Vectorul care va intra în bază va fi A
4
, deoarece d
4
(λ) > 0 în cazul
conside-rat. Vom obţine:
3. A
4
A
2

A
3
1/2 -3/2
4λ−3
2
A
1
1/2 1/2
2λ−1
2
∗ 1 2 2λ + 2
∗ ∗
Se poate verifica uşor că d
3
(λ) < 0 şi d
1
(λ) < 0, adică B = (A
4
, A
2
)
este bază caracteristică şi x
0
= (0 2 0 1) este soluţie optimă, f
min
(λ) =
2λ + 2.
Probleme aplicative
1. Cu ocazia programului de modernizare-reorganizare a unei fabrici de
mobilă au fost cumpărate maşini noi şi au fost înfiinţate noi secţii. Filiala
i
i
“JATEK” — 2005/3/11 — 10:29 — page 144 — #144
i
i
i
i
i
i
144 6.2.2. Parametrizarea funcţiei de scop
X a întreprinderii a început producţia acum doi ani şi nu a adus venituri
scontate, motiv pentru care s-a propus necesitatea determinării planului de
producţie cu ajutorul metodelor matematice.
Pentru fabricarea mobilei sunt folosite două ateliere: T
1
şi T
2
. În atelierul
T
1
sunt trei maşini: M
1
, M
2
, M
3
. Piesele fabricate în atelierul T
1
sunt
direcţionate spre atelierul de asamblare T
2
din depozitul d
1
. Mobila se obţine
în urma asamblării a patru piese, care se pot cumpăra şi cu bucata. Filiala X,
prin combinarea celor patru piese, realizează şapte tipuri diferite de mobilă
notate cu A, B, C, D, E, F, G.
Se cere organizarea producţiei în filiala X pe o jumătate de an.
Capacitatea atelierului T
2
depinde în primul rând de numărul de munci-
tori. În prima jumătate a anului, lucrează 40 de angajaţi, pentru a doua
jumătate, se planifică să se angajeze încă 20 de muncitori. Deci se poate
afirma că, în a doua jumătate a anului, în atelierul T
2
, numărul muncitorilor
va fi cel puţin 40 şi cel mult 60. Norma de lucru este de 8 ore pe zi. Timpul
de lucru al unui muncitor din T
2
, pe o jumătate de an, pe baza datelor din
anii precedenţi, este 60138 minute. Deci, pentru 40 de muncitori, capaci-
tatea atelierului T
2
pe o jumătate de an este 2 405 520 minute, iar cu 60 de
muncitori 3 608 280 minute. Timpul total de prelucrare a celor patru piese
şi cel de asamblare a mobilelor, calculate în minute sunt:
Tip de mobilă
úi componente
A B C D E F G E
1
E
2
E
3
E
4
Timpul de lucru 612 550 570 510 740 680 500 152 130 100 80
Capacitatea de producţie este influenţată de capacitatea de lucru a
maşinilor. Timpul total de lucru pe o maşină nu poate să depăşească ca-
pacitatea de lucru a maşinii.
Timpul de lucru, pe cele trei maşini, necesar pentru fabricarea unui pro-
dus este dat în următorul tabel:
Produse
Maúini
A B C D E F G E
1
E
2
E
3
E
4
Capacitatea
de maúini
I 18 15 17 13 21 19 11 4 3 3 4 73920
II 11 9 10 14 18 15 16 3 2 3 4 73920
III 19 16 16 14 18 17 12 3 3 4 3 73920
Depozitul d
1
, în patru zile, poate să furnizeze spre atelierul de asamblare
T
2
, cel mult 28 000 piese fabricate în atelierul T
1
. La organizarea producţiei,
i
i
“JATEK” — 2005/3/11 — 10:29 — page 145 — #145
i
i
i
i
i
i
6.2. Programare liniară parametrică 145
trebuie luat în considerare ca necesarul pieselor să nu depăşească 980 000
bucăţi (140 ∗ 28000/4) (140 zile de lucru).
Numărul pieselor fabricate şi numărul pieselor necesare pentru asam-
blarea mobilierelor sunt prezentate în tabelul următor:
Tip de mobilă
úi componente
A B C D E F G E
1
E
2
E
3
E
4
Număr de piese 98 85 87 60 65 50 72 20 16 16 12
Întreprinderea Y , care se ocupă cu vânzarea mobilierului, solicită din
toate cele şapte tipuri de mobilier câte 1000 de bucăţi. Întreprinderea Y a mai
comandat, în urma unei negocieri ulterioare, mobilier, după cum urmează:
200 buc. din A, 100 buc. din B, 100 buc. din C, 200 buc. din D, 300 buc.
din E, 500 buc. din F, 300 buc. din G şi, de asemenea, un număr de piese
de mobilier: cel puţin 60 buc. piese de tip E
1
, cel puţin 50 buc. de tip E
2
,
cel puţin 40 buc. de tip E
3
, cel puţin 40 buc. de tip E
4
.
Ţinând cont de cererea de pe piaţă, întreprinderea Y a impus fabricii ca,
pe durata celor şase luni, să asigure mobilier de tipul E, F şi G, în total,
cel puţin atât cât transportă din tipurile A, B, C şi D, în total. Iar din
piesele E
1
şi E
2
(deoarece sunt mai căutate de către cumpărători), în total,
să transporte la beneficiar atât cât transportă din E
3
şi E
4
, în total.
Se cere planificarea producţiei, astfel încât preţul total brut să fie maxim.
Datele necesare planificării sunt prezentate în tabelul următor:
Ch. T
1
Cheltuieli T
2
Produse
PreĠ
contractat
Chelt.
totale
Ch.
materii
Salarii
Salarii
ore supl.
Între-
Ġinere
Ch.
totale
Cost de
fabr.
Bene-
ficiu
A 10221 6415 2090 143 22 41 198 8909 1312
B 9144 5832 1770 121 19 35 176 7953 1191
C 9631 6064 1953 137 21 39 186 8400 1231
D 6464 4020 1182 97 15 28 122 5464 1000
E 8722 5790 1552 131 19 40 166 7698 1024
F 5465 3423 863 84 12 24 86 4492 973
G 8207 5421 1552 139 21 40 111 7284 923
E
1
2400 1412 420 38 6 8 52 1936 464
E
2
2118 1321 382 36 12 8 48 1807 311
E
3
2020 1261 420 33 6 8 42 1770 250
E
4
2100 1366 382 36 12 8 36 1840 260
Să se determine structura produselor fabricate care asigură un beneficiu
maxim!
Cum se modifică structura programului, dacă în următoarele şase luni
numărul muncitorilor din atelierul T
2
va creşte?
Notând cu x
i
, i = 1, 7 numărul de mobilier fabricat din cele şapte tipuri
i
i
“JATEK” — 2005/3/11 — 10:29 — page 146 — #146
i
i
i
i
i
i
146 6.2.2. Parametrizarea funcţiei de scop
şi cu y
i
, i = 1, 2 numărul de piese care vor fi vândute la bucată, se poate
formula următorul model:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = 1312x
1
+ 1191x
2
+ 1231x
3
+ 1000x
4
+ 1024x
5
+ 973x
6
+ 923x
7
+
+464y
1
+ 311y
2
+ 250y
3
+ 260y
4
→ max
612x
1
+ 550x
2
+ 570x
3
+ 510x
4
+ 740x
5
+ 680x
6
+ 500x
7
+
+152y
1
+ 130y
2
+ 100y
3
+ 80y
4
≤ 3608280 −λ
18x
1
+ 15x
2
+ 17x
3
+ 13x
4
+ 21x
5
+ 19x
6
+ 11x
7
+
+4y
1
+ 3y
2
+ 3y
3
+ 4y
4
≤ 73920
11x
1
+ 9x
2
+ 10x
3
+ 14x
4
+ 18x
5
+ 15x
6
+ 16x
7
+
+3y
1
+ 2y
2
+ 3y
3
+ 4y
4
≤ 73920
19x
1
+ 16x
2
+ 16x
3
+ 14x
4
+ 18x
5
+ 17x
6
+ 12x
7
+
3y
1
+ 3y
2
+ 4y
3
+ 3y
4
≤ 73920
x
1
+x
2
+x
3
+x
4
−x
5
−x
6
−x
7
≤ 0
−y
1
−y
2
+y
3
+y
4
= 0
200 ≤ x
1
≤ 1000, 100 ≤ x
2
≤ 1000, 100 ≤ x
3
≤ 1000,
200 ≤ x
4
≤ 1000, 300 ≤ x
5
≤ 1000, 500 ≤ x
6
≤ 1000,
300 ≤ x
7
≤ 1000, 60 ≤ y
1
≤ 1000, 50 ≤ y
2
≤ 1000,
40 ≤ y
3
≤ 1000, 40 ≤ y
4
≤ 1000, 0 ≤ λ ≤ 1202760.
Este un model de programare parametrică. Planul optim este determinat
în funcţie de numărul angajaţilor din atelierul de asamblare [?].
Problemă aplicativă pentru parametrizarea funcţiei de scop
Fie o întreprindere X care se ocupă cu fabricarea centralelor telefonice
electronice. Asamblarea pieselor componente şi a centralei se realizează în
ateliere din oraşele A, B, precum şi în unele ateliere ale intreprinderii X.
Asamblarea centralelor se face fie din piesele fabricate în aceste ateliere, fie
din piese importate.
Se cere planificarea producţiei, astfel încât întreprinderea X să obţină un
beneficiu maxim.
Preţul de fabricaţie şi de vânzare este dat în tabelul de mai jos:
Pentru asamblarea unor tipuri sunt necesare următoarele piese "cross-
bar":
i
i
“JATEK” — 2005/3/11 — 10:29 — page 147 — #147
i
i
i
i
i
i
6.2. Programare liniară parametrică 147
Tip CA 102 CA 41 CA 1001 CA 42/B CA 20
PreĠ vânzare
(un_mon/buc)
450 120 500 390 100
Cost total
(un_mon/buc)
370 90 400 320 70
Venit
(un_mon/buc)
80 30 100 70 30
Tip CA 102 CA 41 CA 1001 CA 42/B CA 20
K
1
1 1 –
– –
K
2
1 1
– – –
K
3
1
– – – –
K
4
1

1 1 –
K
5
– –
2 1 1
K
6
– –
2 2

K
7
– –
1 1

Comenzile pentru tipurile fabricate sunt 3, 5, 5, 0, respectiv 10 buc.
Ţinând cont de producţia atelierelor în care se fabrică comutatoarele, re-
spectiv numărul pieselor importate, cantităţile disponibile sunt următoarele:
Tip K
1
K
2
K
3
K
4
K
5
K
6
K
7
Cantitate 28 20 8 30 47 27 15
Piesa notată cu K
5
se importă de la o firmă suedeză şi preţul se va
modifica în timpul perioadei analizate, fapt ce influenţează atât cheltuielile,
cât şi beneficiul.
Să se analizeze cum influnţează această modificare de preţ structura pro-
gramului optim de producţie!
Dacă notăm cu x
i
cantăţile fabricate din fiecare tip de centrală telefonică,
iar variaţia beneficiului cu parametrul λ, atunci modelul matematic este:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 148 — #148
i
i
i
i
i
i
148 6.2.2. Parametrizarea funcţiei de scop
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = 8x
1
+ 3x
2
+ (10 + 2λ)x
3
+ (7 +λ)x
4
+ (3 +λ)x
5
→ max
x
1
+x
2
≤ 28
x
1
+x
2
≤ 20
x
1
≤ 8
x
1
+x
3
+x
4
≤ 30
2x
3
+x
4
+x
5
≤ 47
2x
3
+x
4
≤ 27
x
3
+x
4
≤ 15
x
1
≥ 3, x
2
≥ 5, x
3
≥ 5, x
4
≥ 0, x
5
≥ 10.
Rezolvând problema cu metoda simplex, intervalele caracteristice vor fi:
(−∞, −7], [−7, −3], [−3, +∞). Pentru λ = −3 vom avea patru soluţii bazice
optime alternative, iar în intervalul [−3, +∞) vom avea două soluţii optime.
Conform acestora, structura producţiei optimale poate fi scrisă în următorul
tabel:
VariaĠia venit
(unitate monetară)
CA 102 CA 41 CA 1001 CA 42/B CA 20
1. – 70 úi mai puĠin 8 12 5 0 10
2. [– 70, – 30] 8 12 5 10 10
3. – 30 8 12 12 3 10
4. – 30 úi peste (1) 8 12 12 3 20
5. – 30 úi peste (2) 8 12 5 10 27
Beneficiile pe tipuri sunt: 180 + 20λ; 250 + 30λ; 160; 301 + 47λ (unitate
monetară).
Se poate observa că, dacă nu are loc o modificare de preţ, atunci ben-
eficiul total este de 301 unităţi monetare. Dacă, în urma modificării de
preţ, rezultă o scădere a beneficiului de 70 unităţi monetare sau mai mare,
atunci fabricarea produselor care conţin piese de import nu sunt rentabile. O
scădere a beneficiului cu 30 unităţi monetare atrage după sine înjumătăţirea
beneficiului total.
Vom putea realiza un plan real de producţie, dacă variaţia preţului de
importare a piesei K
5
va produce o scădere mai mică de 30 unităţi monetare
a beneficiului pe centrale.
În acest caz, combinaţia liniară convexă a structurilor de producţie, aflate
în rândurile 4 şi 5 ale tabelului, este optimă. Dacă variaţia preţului este
convenabilă, atunci această structură aduce beneficiul maxim.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 149 — #149
i
i
i
i
i
i
6.3. Programare hiperbolică 149
Probleme propuse
Să se determine bazele şi intervalele caracteristice pentru problemele de
mai jos!
1.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+λx
2
→ max
x
1
+ 3x
2
≤ 3
2x
1
−3x
2
≤ 3
x ∈ R
2
+
, λ ∈ R
2.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+x
2
+ 2x
3
+x
4
→ min
x
1
−2x
3
−x
4
= 2 −λ
x
2
−x
3
+x
4
= −1 +λ
x ∈ R
4
+
, λ ∈ R
3.
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = (3 −λ)x
1
−(2 +λ)x
2
→ min
2x
1
+ 5x
2
≤ 10
6x
1
+x
2
≤ 12
x
1
−x
2
≤ 1
x ∈ R
2
+
, λ ∈ R
4.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (2 −λ)x
1
+ (4 + 2λ)x
2
→ max
x
1
+x
2
≤ 6
2x
1
−x
2
≤ 4
x ∈ R
2
+
, λ ∈ R
5.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+ 2x
2
+ 3x
3
+ 4x
4
+ 5x
5
→ max
2x
1
+x
2
+x
3
+ 3x
4
+x
5
= 18 −3λ
x
1
+ 2x
2
+x
3
+x
4
+ 3x
5
= 12 + 4λ
x
j
≥ 0, 1 ≤ j ≤ 5, λ ∈ R
6.3 Programare hiperbolică
Fie problema de optimizare:
_
¸
¸
¸
_
¸
¸
¸
_
f(x) =
(c, x) +c
0
(d, x) +d
0
→ max
Ax ≤ b
x ≥ 0,
(6.10)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 150 — #150
i
i
i
i
i
i
150 6. Modele rezolvabile cu algoritmul simplex
unde A ∈ /
m,n
(R), b ∈ R
m
, f : D ⊆ R
n
→ R, ( , ) : R
n
R
n
→ R este
produs scalar euclidean.
Deoarece f este continuă, dacă (d, x) +d
0
> 0 sau (d, x) +d
0
< 0 pentru
orice soluţie posibilă x, vom presupune că are loc una din cele două inegalităţi
.
Fie:
S
+
= ¦x ∈ D [ Ax ≤ b, x ≥ 0, (d, x) +d
0
> 0¦,
S

= ¦x ∈ D [ Ax ≤ b, x ≥ 0, (d, x) +d
0
< 0¦.
Teorema 6.3.1. f
¸
¸
S
+
este cvasiconvexă şi f
¸
¸
S

este cvasiconcavă.
Demonstraţie. Vom presupune că pentru x
1
, x
2
∈ S avem f(x
1
) < f(x
2
),
adică are loc:
C
1
D
1
not
=
(c, x
1
) +c
0
(d, x
1
) +d
0
<
(C, x
2
) +c
0
(d, x
2
) +d
0
not
=
C
2
D
2
⇔ C
1
D
2
< C
2
D
1
(6.11)
şi vom arăta că pentru orice x ∈ [x
1
, x
2
], unde x = λx
1
+(1−λ)x
2
, ∀ λ ∈ [0, 1]
are loc relaţia: f(x) < f(x
2
).
Putem scrie:
f(x) =
(c, λx
1
+ (1 −λ)x
2
) +c
0
(d, λx
1
+ (1 −λ)x
2
) +d
0
=
λ(c, x
1
) + (1 −λ)(c, x
2
) +c
0
λ(d, x
1
) + (1 −λ)(d, x
2
) +d
0
=
=
λ[(c, x
1
) −(c, x
2
)] + (c, x
2
) +c
0
λ[(d, x
1
) −(d, x
2
)] + (d, x
2
) +d
0
=
λ(C
1
−C
2
) +C
2
λ(D
1
−D
2
) +D
2
=
=
λC
1
+ (1 −λ)C
2
λD
1
+ (1 −λ)D
2
<
C
2
D
2
= f(x
2
)
Inegalitatea are loc, deoarece D
2
≥ 0 şi λD
1
+(1 −λ)D
2
> 0 şi astfel putem
scrie:
λC
1
D
2
+ (1 −λ)C
2
D
2
< λD
1
C
2
+ (1 −λ)D
2
C
2
⇔ λ(C
1
D
2
−D
1
C
2
) < 0
ceea ce este relaţia (6.11), adică funcţia este cvasiconvexă.
În demonstraţie, s-au folosit proprietăţile produsului scalar.
În continuare, avem de arătat că funcţia obiectiv f este strict cvasicon-
cavă.
Vom considera funcţia:
−f(x) =
−(c, x) −c
0
(d, x) +d
0
, unde (d, x) +d
0
> 0.
Folosind un raţionament analog, se poate arăta că funcţia (−f) este cvasi-
convexă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 151 — #151
i
i
i
i
i
i
6.3. Programare hiperbolică 151
În consecinţă, funcţia obiectiv este funcţie cvasimonotonă şi se poate
determina soluţia optimă a problemei cu algoritmul simplex.
Matematicianul Martos Bela [Mar] a fost primul care a adaptat algoritmul
simplex pentru rezolvarea numerică a modelelor hiperbolice. El a introdus
această noţiune.
Forma standard a problemei de optimizare hiperbolică (6.11) este:
_
¸
¸
¸
_
¸
¸
¸
_
f(x) =
(d, x) +c
0
(d, x) +d
0
→ max
Ax +I
m
x

= b
X ∈ R
n
+
, x

∈ R
m
+
,
(6.12)
unde se consideră (d, x) +d
0
> 0.
Tabelul simplex propus de Martos are forma:
B
0
x

x

A b
c

−x
0
d

−d
0
Soluţia bazică iniţială este x
1
= θ
n
∈ R
n
pentru care f(x
1
) =
c
0
d
0
.
O soluţie x
r
la iteraţia de ordinul r este o soluţie mai bună pentru modelul
considerat dacă are loc relaţia:
f(x
1
) −f(x
r
) ≤ 0

c
0
d
0

(c, x
r
) +c
0
(d, x
r
) +d
0
≤ 0.
Inegalitatea este adevărată dacă:
c
0
((d, x
r
) +d
0
) −d
0
((c, x
r
) +c
0
) ≤ 0
deoarece d
0
> 0 şi (d, x
r
) +d
0
> 0 prin ipoteză.
Deci soluţia este îmbunătăţită dacă
x
r
(c
0
d −d
0
c) ≤ 0.
Notând cu t

= (c
0
, d) − (d
0
, c) ∈ R
n
, condiţia de optim pentru probleme
hiperbolice este t

≤ 0.
Tabelul simplex primal adaptat este alcătuit din 10 sectoare:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 152 — #152
i
i
i
i
i
i
152 6. Modele rezolvabile cu algoritmul simplex
1 2 ∗ d c
3 6 7 8 9
∗ 4 5 8’ 9’
∗ 10 ∗ ∗
Completarea tabelului simplex primal adaptat:
• sectoarele 1, 2, 3, 4, 6 se completează ca şi în cazul tabelelor simplex
primal;
• în secorul 8 se pun componentele vectorului d;
• în sectorul 8’ se va scrie valoarea d
0
;
• în sectorul 9 vor fi scrise componentele vectorului c;
• în sectorul 9’ se va scrie valoarea c
0
;
• în sectorul 5 vom scrie valoarea funcţiei de scop pentru soluţia actuală,
adică valoarea c
0
/d
0
;
• în sectorul 7 vor fi scrise componentele vectorului t

pe care le calculăm
astfel:
t

i
= −c
0
d
i
−(−d
0
) c
i
, ∀ i ∈ B
• în cazul, în care soluţia nu este optimă, se va completa sectorul 10
folosind procedura de la algoritmul simplex primal.
Observaţie. În urma aplicării algoritmului simplex adaptat, ne vom întâlni
cu una din următoarele situaţii:
(a) t

i
≤ 0 pentru orice i ∈ B, ceea ce înseamnă că soluţia bazică este
optimă.
(b) Dacă ∃ i ∈ B astfel încât t

i
> 0,
atunci dacă pentru orice j ∈ B α
ij
≤ 0 atunci nu admite soluţie optimă
problema considerată,
altfel se va determina elementul pivot folosind procedura simplex pri-
mal cunoscută.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 153 — #153
i
i
i
i
i
i
6.3. Programare hiperbolică 153
Problemă aplicativă
În cazul planificării planului de producţie, în scopul obţinerii unui profit
maxim, se construieşte modelul liniar:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
n

j=1
c
j
x
j
→ max
n

j=1
a
ij
x
j
≤ b
i
, i = 1, m
x
j
≥ 0, j = 1, n
Dacă ne interesează un plan de producţie pentru care câştigul unitar rapor-
tat la cheltuielile de producţie să fie maxim, atunci se obţine un model de
programare hiperbolică. Funcţia obiectiv va fi:
g(x) =
n

j=1
d
j
x
j
n

j=1
c
j
x
j
+c
0
unde d
j
reprezintă preţul de vânzare unitară a produsului x
j
, j = 1, n, iar c
j
cheltuielile directe de producţie. c
0
reprezintă valoarea cheltuielilor planifi-
cate care nu pot fi distribuite.
Probleme rezolvate
1.
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
30x
1
+ 19x
2
10x
1
+ 9x
2
+ 4
→ max
40x
1
+ 20x
2
≤ 280
20x
1
+ 50x
2
≤ 300
2x
1
≤ 12
x ∈ R
2
+
i
i
“JATEK” — 2005/3/11 — 10:29 — page 154 — #154
i
i
i
i
i
i
154 6. Modele rezolvabile cu algoritmul simplex
Forma standard este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
30x
1
+ 19x
2
10x
1
+ 9x
2
+ 4
→ max
40x
1
+ 20x
2
+x
4
= 280
20x
1
+ 50x
2
+x
3
= 300
2x
1
+x
5
= 12
x ∈ R
5
+
A
1
A
2
A
3
A
4
A
5
A =
_
_
40 20 1 0 0
20 50 0 1 0
2 0 0 0 1
_
_
1. A
3
A
4
A
5
∗ d c
A
1
40 20 2 120 10 30
A
2
20 50 0 76 9 19
∗ 280 300 12 0 -4 0
∗ 7 15 6 ∗ ∗ ∗
2 A
3
A
4
A
1
∗ d c
A
5
-20 -10 1/2 -60 -5 -15
A
2
20 50 0 -404 9 19
∗ 40 180 6 180/64 -64 -180

Valorile lui t

sunt negative, deci soluţia este optimă:
t

= (−60, −404) ≤ 0
x
0
= (6 0)
f
max
=
180
64
2.
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
2x
1
+ 2x
2
+ 4x
3
+x
4
+ 1
x
1
+x
2
+ 2x
3
+ 5
→ max
x
1
+x
2
−x
3
+x
4
≤ 6
x
1
+x
3
≤ 10
x
3
+x
4
≤ 8
x ∈ R
4
+
i
i
“JATEK” — 2005/3/11 — 10:29 — page 155 — #155
i
i
i
i
i
i
6.3. Programare hiperbolică 155
Forma standard a problemei este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
2x
1
+ 2x
2
+ 4x
3
+x
4
+ 1
x
1
+x
2
+ 2x
3
+ 5
→ max
x
1
+x
2
−x
3
+x
4
+x
5
= 6
x
1
+x
3
+x
6
= 10
x
3
+x
4
+x
7
= 8
x ∈ R
7
+
A
1
A
2
A
3
A
4
A
5
A
6
A
7
A =
_
_
1 1 -1 1 1 0 0
1 0 1 0 0 1 0
0 0 1 1 0 0 1
_
_
1. A
5
A
6
A
7
∗ d c
A
1
1 1 0 9 1 2
A
2
1 0 0 9 1 2
A
3
-1 1 1 18 2 4
A
4
1 0 1 5 0 1
∗ 6 10 8 1/5 -5 -1
∗ – 10 8 ∗ ∗ ∗
2. A
5
A
6
A
3
∗ d c
A
1
1 1 0 9 1 2
A
2
1 0 0 9 1 2
A
7
1 -1 1 -18 -2 -4
A
4
2 -1 1 3 -2 -3
∗ 14 2 8 33/21 -21 -33
∗ 14 ∗ ∗ ∗
3. A
2
A
6
A
3
∗ d c
A
1
1 1 0 0 0 0
A
5
1 0 0 -9 -1 -2
A
7
1 -1 1 -27 -3 -6
A
4
2 -1 1 -1 -4 -7
∗ 14 2 8 61/35 -35 -61
∗ ∗ ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 156 — #156
i
i
i
i
i
i
156 6. Modele rezolvabile cu algoritmul simplex
Avem t

= (0 −9 −27 −1) ≤ 0, deci x
0
= (0 14 8 0) este soluţie
optimă, f
max
= 61/35.
Observaţie.
(1) În general, este dificilă verificarea condiţiei (d, x) +d
0
< 0 sau (d, x) +
d
0
> 0 pentru x ∈ S. Dacă evaluăm greşit semnul numitorului, atunci în
tabelul simplex valoarea lui d
0
va fi pozitivă (valoarea lui d
0
trebuie să
fie negativă). În această situaţie elementele din sectorul 9 şi 9’ trebuie
înmulţite cu (-1) şi poate fi aplicat în continuare algoritmul simplex
adaptat.
(2) Modelul (6.10) prin utilizarea unor substituţii convenabile poate fi re-
dus la un model de optimizare liniară.
În acest scop notăm:
t =
1
(d, x) +d
0
de unde avem:
t(d, x) +td
0
= 1.
Dacă notăm cu ¯ x = tx atunci modelul (6.10) devine:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(¯ x) = (c, ¯ x) +c
0
t → max
A¯ x −bt ≤ 0
d¯ x +td
0
= 1
¯ x ≥ 0, t ≥ 0
(6.13)
ceea ce este un model de optimizare liniară cu (m+1) restricţii şi (n+1)
variabile.
Teoremă. Dacă ¯ x, t este soluţie optimă pentru problema de optimizare
(6.13), atunci x =
¯ x
t
este soluţie optimă pentru modelul de optimizare
hiperbolică (6.10), iar valorile optime sunt egale.
(3) Dacă trebuie determinată valoarea minimă a funcţiei de scop, se for-
mulează problema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) =
(c, x) +c
0
(d, x) +d
0
→ min
Ax ≤ b
x ≥ 0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 157 — #157
i
i
i
i
i
i
6.4. Programare multicriterială 157
atunci numărătorul se va înmulţi cu (-1) şi se va rezolva problema:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(x) = −f(x) =
−(c, x) −c
0
(d, x) +d
0
→ max
Ax ≤ b
x ≥ 0
3. Problemă rezolvată
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
4x
1
+x
2
+ 2x
3
+ 10
2x
1
+x
2
+ 3x
3
−15
→ max
x
1
+x
3
= 30
x
3
≥ 20
−x
1
+x
2
+x
3
≥ 60
x ∈ R
3
+
Verificarea condiţiei de pozitivitate pe mulţimea soluţiilor posibile ale numi-
torului este o problemă dificilă.
Pentru verificarea condiţiei de pozitivitate, vom aduna restricţiile.
Avem astfel:
x
2
+ 3x
3
≥ 110.
Astfel putem scrie:
2x
1
+x
2
+ 3x
3
−15 ≥ x
2
+ 3x
3
−15 ≥ 95
deci numitorul verifică condiţia de pozitivitate.
Problema poate fi rezolvată cu metodele prezentate.
6.4 Programare multicriterială
Modelele prezentate în capitolele anterioare au urmărit un singur scop
(obţinerea unui beneficiu maxim sau minimizarea cheltuielilor totale etc.).
În aplicaţii practice, pot fi întâlnite deseori situaţii în care trebuie ur-
mărite mai multe obiective în acelaşi timp. Dacă, pe lângă obţinerea unui
profit maxim, trebuie ţinut cont ca efectul asupra mediului să fie minim sau,
în pro-blema planificării producţiei, pe lângă obţinerea unui profit maxim,
factorul de decizie urmăreşte minimizarea resurselor, reducerea costurilor
de depozitare, menţinerea unui profit stabil, asigurarea preţurilor stabile,
creşterea prestigiului, atunci se obţine un model cu mai multe funcţii de
scop.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 158 — #158
i
i
i
i
i
i
158 6. Modele rezolvabile cu algoritmul simple
Pentru prima dată, un astfel de model a fost formulat la începutul anilor
’50 de către H.W. Kuhn şi A.W. Tucker [Kuh].
Peste zece ani, A. Charnes şi W.W. Cooper [Char] au deschis calea spre
cercetarea programării de scop (goal programming). Un studiu intensiv al
programării multicriteriale începe în cea de a doua parte a anilor ’70.
Definiţia 6.4.1. Problema de optimizare cu restricţii:
_
f(x) → ” max / min ”
x ∈ S
unde f : D ⊆ R
n
→ R
q
iar S este o mulţime determinată de un număr
finit de restricţii, date asupra variabilelor independente se numeşte model de
optimizare multicriterială cu restricţii.
Definiţia 6.4.2.
_
¸
_
¸
_
f(x) = Cx → ” max / min ”
Ax = b
x ≥ 0
unde C ∈ /
q,n
(R), f : D ⊆ R
n
→R
q
, A ∈ /
m,n
, b ∈ R
m
se numeşte model
de optimizare multicriterială, liniară.
Mulţimea R
n
nu este o mulţime total ordonată, astfel noţiunea de optim
(minim, maxim) nu poate fi definită ca şi în cazul spaţiului real unidimen-
sional. În studiul modelelor multicriteriale, o primă problemă a reprezentat-o
formularea noţiunii de optim. Noţiunea des folosită şi extrem de utilă este
cea introdusă de Pareto pe care o vom prezenta în continuare.
Vom nota mulţimea soluţiilor posibile cu:
S
p
= ¦x
p
[ Cx
p
≥ Cx, x ∈ S¦
unde:
S = ¦x ∈ R
n
[ Ax = b, x ≥ 0¦.
Determinarea mulţimii S, mai ales în cazul în care este mulţime mărginită nu
este dificilă. Determinarea mulţimii S
p
reprezintă o problemă mai complexă,
deoarece nu neapărat există un punct x
p
pentru care Cx
p
> Cx pentru orice
x ∈ S.
Pentru studiul rezolvabilităţii problemelor multicriteriale este necesară
introducerea noţiunii de soluţie Pareto-optimă sau soluţie eficientă, difer-
ită de noţiunea de soluţie optimă studiată până acum. Această noţiune a
fost introdusă în economie şi se bazează pe următorul principiu: factorul de
decizie ia o decizie dând prioritate acelor decizii pentru care este adevărat
i
i
“JATEK” — 2005/3/11 — 10:29 — page 159 — #159
i
i
i
i
i
i
6.4. Programare multicriterială 159
că nu există alta mai bună, în sensul că varianta nouă este la fel de bună, şi
totuşi din cel puţin un aspect este indiscutabil mai bună.
Dacă se poate realiza o "îmbunătăţire de tip Pareto", atunci acea decizie
nu poate fi considerată optimă.
Definiţia 6.4.3. Se numeşte soluţie eficientă sau soluţie Pareto-optimă orice
punct x
p
∈ S
p
pentru care nu există un alt punct x

∈ S
p
, x

,= x
p
, astfel încât
să avem f(x

) ≥ f(x
p
) şi f(x

) ,= f(x
p
), adică nu există x

∈ S
p
astfel încât
f
j
(x

) ≥ f
j
(x
p
) pentru orice j = 1, q dar pentru cel puţin un j ∈ ¦1, . . . , q¦
are loc f
j
(x

) > f
j
(x
p
).
J. Philip în 1972 [Phi] formulează următorul rezultat:
Teorema 6.4.1. Fie f
k
= (c
k
, x), k ∈ ¦1, . . . , q¦ fixat, o componentă a
funcţiei de scop din modelul (6.4.2).
Dacă x
0
∈ S este o soluţie optimă unică a problemei:
_
¸
_
¸
_
f
k
(x) → max
Ax = b
x ≥ 0
atunci x
0
este soluţie eficientă a problemei (6.4.2)
Demonstraţie. Pe baza definiţiei 6.4.3, demonstraţia este imediată.
Se poate formula o condiţie suficientă de existenţă a punctului eficient.
Teorema 6.4.2. Fie modelul (6.4.2) şi funcţia g(x) =
q

k=1
f
k
(x).
Dacă modelul:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(x) → max
Ax = b
(c
k
, x) ≥ (c
k
, x
e
)
x ≥ 0
admite soluţie optimă şi g
max
(x) = g(x
e
), atunci x
e
este punct eficient.
Demonstraţie. Dacă x
0
este soluţie optimă pentru modelul considerat, atunci
este soluţie posibilă, adică x
0
∈ S, unde:
S = ¦x ∈ R
n
[ Ax = b, Cx ≥ Cx
e
, x ≥ 0¦
şi Cx
0
≥ Cx
e
.
Dar, deoarece g
max
(x) = g(x
e
) ⇔ Cx
0
= Cx
e
, rezultă că nu există în S
soluţie mai bună decât x
e
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 160 — #160
i
i
i
i
i
i
160 6. Modele rezolvabile cu algoritmul simple
Problemă rezolvată
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = Cx =
_
9x
1
+ 16x
2
x
1
+x
2
_
→ max
x
1
+ 4x
2
≤ 8
2x
1
+ 3x
2
≤ 9
x
1
≥ 0, x
2
≥ 0
Vom determina mulţimea punctelor eficiente pe cale grafică.
Analizând figura 6.1, putem observa:
A(12/5, 7/5)
B(9/2, 0)
(d
2
)
(d
1
)
0
3
2
1
x
2
8
x
1
Figura 6.1:
x
1
= A
_
12
5
,
7
5
_
este soluţie optimă unică pentru f
1
(x) = 9x
1
+ 16x
2
şi punc-
tul x
2
= B
_
9
2
, 0
_
este soluţie optimă în cazul în care considerăm problema
cu f
2
(x) = x
1
+ x
2
→ max . Dintre cele două soluţii, pe oricare am alege-o
ca soluţie pentru modelul multicriterial, ar fi în defavoarea celeilalte funcţii
obiectiv. Pentru orice altă soluţie posibilă, valoarea funcţiei de scop a prob-
lemei considerate va avea cel mult valorile lui f(x
1
), f(x
2
) sau valori mai
mici.
Prin urmare punctele x
1
respectiv x
2
sunt soluţii eficiente.
Folosind teorema 6.4.2, să se verifice dacă x
1
este punct eficient!
i
i
“JATEK” — 2005/3/11 — 10:29 — page 161 — #161
i
i
i
i
i
i
6.4. Programare multicriterială 161
Construim modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
g(x) = f
1
(x) +f
2
(x) = 10x
1
+ 17x
2
→ max
x
1
+ 4x
2
≤ 8
2x
1
+ 3x
2
≤ 9
9x
1
+ 16x
2
≥ f
1
(x
1
) = 44
x
1
+x
2
≥ f
2
(x
1
) = 19/5
x
1
, x
2
≥ 0
Forma standard a problemei este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
−g(x) = −10x
1
−17x
2
→ min
x
1
+ 4x
2
+x
3
= 8
2x
1
+ 3x
2
+x
4
= 9
9x
1
+ 16x
2
−x
5
= 44
x
1
+x
2
−x
6
= 19/5
x
j
≥ 0, j = 1, 6
Rezolvăm cu metoda celor două faze. Astfel, în prima fază de lucru, se
rezolvă cu algoritmul simplex primal modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x) = u
1
+u
2
→ min
x
1
+ 4x
2
+x
3
= 8
2x
1
+ 3x
2
+x
4
= 9
9x
1
+ 16x
2
−x
5
+u
1
= 44
x
1
+x
2
−x
6
+u
2
= 19/5
x
j
≥ 0, j = 1, 6, u
i
≥ 0, i = 1, 2
A
1
A
2
A
3
A
4
A
5
A
6
u
1
u
2
A =
_
_
_
_
1 4 1 0 0 0 0 0
2 3 0 1 0 0 0 0
9 16 0 0 -1 0 1 0
1 1 0 0 0 -1 0 1
_
_
_
_
Efectuând calculele, se obţin următoarele tabele simplex:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 162 — #162
i
i
i
i
i
i
162 6. Modele rezolvabile cu algoritmul simple
1. A
3
A
4
u
1
u
2
∗ ∗
A
1
1 2 9 1 10
A
2
4 3 16 1 17
A
5
0 0 -1 0 -1
A
6
0 0 0 -1 -1
∗ 8 9 44 19/5 239/5
∗ 2 3 44/16 19/5 ∗ ∗
2. A
2
A
4
u
1
u
2
∗ ∗
A
1
1/4 5/4 5 3/4 23/4
A
3
1/4 -3/4 -4 -1/4 -17/4
A
5
0 0 -1 0 -1
A
6
0 0 0 -1 -1
∗ 2 3 12 9/5 69/5
∗ 8 12/5 12/5 12/5 ∗ ∗
3. A
2
A
4
A
1
u
2
∗ ∗
u
1
-1/20 -1/4 1/5 -3/20 -23/20
A
3
9/20 1/4 -4/5 7/20 7/20
A
5
1/20 1/4 -1/5 3/20 3/20
A
6
0 0 0 -1 -1
∗ 7/5 0 12/5 0 0
∗ 28/9 0 - 0 ∗ ∗
4. A
2
A
4
A
1
A
3
∗ ∗
u
2
-9/7 -5/7 16/7 20/7 -1
A
3
-1/7 1/7 1/7 3/7 0
A
6
9/7 5/7 -16/7 -20/7 0
∗ 7/5 0 12/5 0 0
∗ - ∗ ∗
Faza a doua de lucru:
1. A
2
A
4
A
1
A
3
∗ ∗
A
5
-1/7 1/7 1/7 3/7 1
A
6
9/7 5/7 -16/7 -20/7 1
∗ 7/5 0 12/5 0 -239/5
∗ - 0 84/5 0 ∗ ∗
2. A
2
A
5
A
1
A
3
∗ ∗
A
4
1 7 -1 -3 -7
A
6
2 5 -3 -5 -4
∗ 7/5 0 12/5 0 -239/5
∗ ∗ ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 163 — #163
i
i
i
i
i
i
6.4. Programare multicriterială 163
x
0
= x
1
= (12/5, 7/5)
g
max
= −
_
−239
5
_
= g(x
1
) = g(x
0
) =
239
5
deci x
1
este punct eficient.
Mulţimea soluţiilor Pareto-optimale este infinită şi generarea acestei
mulţimi, în general, nu dă soluţie pentru problema decizională (v. Stahl
[Sta] (1991)).
Metodele numerice pentru determinarea soluţiilor eficiente sunt:
(a) metoda ponderilor;
(b) metoda lexicografică;
(c) metoda marginilor;
(d) principiul programării a compromisului.
Aceste metode asociază problemei multicriteriale o problemă de programare
liniară obişnuită.
(a) Metoda ponderilor
Cu această metodă se asociază ponderi de importanţă componentelor
funcţiei vector f.
Astfel se urmăreşte optimizarea funcţiei:
g(x) =
q

i=1
p
i
f
i
(x) → max
pe mulţimea soluţiilor posibile.
Determinarea ponderilor p
i
, i = 1, q în general este subiectivă. Problema
care apare în general este legată de faptul că funcţiile f
k
, k = 1, q sunt de
diferite mărimi şi dimensiuni şi sunt definite pe diferite domenii.
Pentru înlăturarea acestei deficienţe, se recomandă folosirea funcţiei de
scop:
g(x) =
q

i=1
p
i
(c
i
, x) −m
i
M
i
−m
i
unde m
i
= min
x
f
i
(x), M
i
= max
x
f
i
(x).
Cu metoda ponderilor, problema multicriterială se transformă într-o pro-
blemă de optimizare liniară cu parametri (parametrizarea funcţiei de scop).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 164 — #164
i
i
i
i
i
i
164 6. Modele rezolvabile cu algoritmul simple
_
¸
_
¸
_
g(x) =

q
i=1
p
i
f
i
(x) → min/ max
Ax = b
x ≥ 0
(6.14)
Teorema 6.4.3. Soluţia problemei (6.14) cu parametri p
i
> 0, i = 1, q fixaţi
este soluţie eficientă pentru problema multicriterială (6.4.2).
Demonstraţie. Presupunem că soluţia problemei (6.14) notată cu x
0
nu este
soluţie eficientă, adică există o soluţie posibilă x, astfel încât să avem:
(c
k
, x) ≥ (c
k
, x
0
) pentru orice k = 1, q
şi există cel puţin un k ∈ ¦1, . . . , q¦ astfel încât:
(c
k
, x) > (c
k
, x
0
).
Înmulţind cu parametri p
k
, corespunzători şi adunându-le, avem:
q

i=1
p
i
(c
k
, x) >
q

i=1
p
i
(c
k
, x
0
)
adică x
0
nu este soluţie optimă pentru modelul (6.14) prin urmare am ajuns
în contradicţie cu ipoteza.
Teorema 6.4.4. Fie x
0
∈ R
n
un punct care verifică inegalităţile Ax = b,
x ≥ 0. x
0
este punct eficient pentru problema (6.4.2), dacă şi numai dacă
există p
0
= (p
0
1
, . . . , p
0
q
) > 0 astfel încât x
0
pentru p = p
0
să fie soluţie optimă
pentru problema (6.14).
Pentru studiul procedurilor computaţionale se recomandă lucrările: [Phi],
[Ecke], [Gal], [Ise], [Cha].
Sunt lucrări, cum ar fi [Char], [Eck], în care se studiază problema dacă
o soluţie posibilă x
0
a modelului (6.4.2) este sau nu soluţie eficientă şi for-
mulează criterii de existenţă a soluţiilor eficiente.
Teorema 6.4.5. Fie x
0
o soluţie posibilă a problemei (6.4.2).
Considerăm problema:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
d
0
=
q

k=1
d
k
→ max
(c
k
, x) −d
k
= (c
k
, x
0
), k = 1, q
Ax = b
x ≥ 0, d
k
≥ 0, k = 1, q
Sunt adevărate următoarele afirmaţii:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 165 — #165
i
i
i
i
i
i
6.4. Programare multicriterială 165
(a) x
0
este soluţie eficientă, dacă şi numai dacă d
0
= 0;
(b) dacă x
0
este soluţie optimă nebanală, atunci x
0
este soluţie eficientă;
(c) dacă modelul nu are un număr finit de soluţii optime, atunci mo-delul
(6.4.2) nu admite soluţii eficiente.
Probleme propuse
1. Să se determine extremele şi soluţiile eficiente problemei:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = Cx =
_
_
_
3x
1
+x
2
+ 2x
3
+x
4
x
1
−x
2
+ 2x
3
+ 4x
4
−x
1
+ 5x
2
+x
3
+ 2x
4
_
_
_
→ max
2x
1
+x
2
+ 4x
3
+ 3x
4
≤ 60
3x
1
+ 4x
2
+x
3
+ 2x
4
≤ 60
x
j
≥ 0, j = 1, 4
(Admite 9 extreme dintre care 6 sunt soluţii eficiente)
2. Să se determine mulţimea punctelor eficiente pentru:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = Cx =
_
x
1
+ 2x
2
3x
1
−x
2
_
→ max
3x
1
+x
2
≤ 9
x
1
+ 3x
2
≤ 19
x
1
+x
2
≤ 9
x
1
−x
2
≤ 3
x
j
≥ 0, j = 1, 2
(b) Metoda lexicografică
În cazul acestei metode, componentele funcţiei de scop sunt scrise în or-
dinea priorităţilor. Dacă avem o singură decizie optimă după componenta cea
mai importantă, atunci aceasta va fi soluţie optimă pentru modelul multicri-
terial. Dacă avem optim multiplu, atunci vom alege decizia optimă după ur-
mătoarea componentă. Continuăm acest procedeu până când obţinem soluţia
optimă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 166 — #166
i
i
i
i
i
i
166 6. Modele rezolvabile cu algoritmul simple
(c) Metoda marginilor
Se va alege o componentă a funcţiei de scop, iar pentru celelalte se vor
stabili margini inferioare "acceptabile". Astfel se va rezolva modelul liniar:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f
k
(x) = (c
k
, x) → max
Ax = b
ˆ
Cx ≥ d,
ˆ
C ∈ /
q−1,n
(R), d ∈ R
q−1
x ≥ 0,
ˆ
C = C ¸ ¦c
qj
¦
j=1,n
În general se aplică această metodă în cazul în care pentru factorul de decizie
doar un simplu scop este prioritar, iar pentru celelalte este de ajuns atingerea
unui nivel minim.
(d) Metoda numerică care se bazează pe principiul programării com-
promisurilor urmăreşte determinarea unei soluţii optime "absolute", soluţie
optimă pentru toate componentele lui f.
Practic se va determina soluţia cea mai apropiată de cea "ideală".
În concluzie, dacă se notează mulţimea valorilor funcţiei f pe mulţimea
soluţiilor posibile cu:
V = ¦f(x) [ x ∈ S¦,
atunci putem distinge 4 situaţii:
(A) V este mulţime ordonată, adică modelul admite optim absolut.
Se aplică algoritmul simplex. În tabelul simplex, sectorul 7 va fi format
din q coloane (este dat de numărul componentelor lui f).
Dacă diferenţele d
i
, i ∈ B sunt negative în cele q coloane ale sectorului 7,
atunci soluţia bazică este optim absolut.
Problemă rezolvată
1. Să se determine optimul absolut al problemei:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = Cx =
_
2x
1
+ 3x
2
x
1
+ 2x
2
+x
3
_
→ max
x
1
+x
2
+x
3
≤ 4
x
1
+ 2x
2
−x
3
≤ 6
x ∈ R
3
+
i
i
“JATEK” — 2005/3/11 — 10:29 — page 167 — #167
i
i
i
i
i
i
6.4. Programare multicriterială 167
Forma standard a problemei este:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
−f
1
(x) = −2x
1
−3x
2
→ min
−f
2
(x) = −x
1
−2x
2
−x
3
→ min
x
1
+x
2
+x
3
+x
4
= 4
x
1
+ 2x
2
−x
3
+x
5
= 6
x ∈ R
5
+
A
1
A
2
A
3
A
4
A
5
A =
_
1 1 1 1 0
1 2 -1 0 1
_
Baza B = ¦A
4
, A
5
¦ este bază primal admisibilă.
Aplicăm algoritmul simplex primal. În ultimele două coloane sunt cal-
culate diferenţele d
i
corespunzătoare funcţiilor de scop. Efectuând calculele,
pe rând, vom obţine tabelele:
1. A
4
A
5
∗ ∗
A
1
1 1 2 1
A
2
1 2 3 2
A
3
1 -1 0 1
∗ 4 6 0 0
∗ 4 3 ∗ ∗
2. A
4
A
2
∗ ∗
A
1
1/2 1/2 1/2 0
A
5
-1/2 1/2 -3/2 -1
A
3
3/2 -1/2 3/2 2
∗ 1 3 -9 -6
∗ 2/3 - ∗ ∗
3. A
3
A
2
∗ ∗
A
1
1/3 2/3 0 -2/3
A
5
-1/3 1/3 -1 -1/3
A
4
2/3 1/3 -1 -4/3
∗ 2/3 10/ 3 -10 -22/3
∗ ∗ ∗
Diferenţele în ultimele două coloane sunt negative, deci:
x
0
= (0, 10/3, 2/3) este optim absolut f
max
= (10, 22/3).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 168 — #168
i
i
i
i
i
i
168 6. Modele rezolvabile cu algoritmul simple
(B) Există V

⊂ V o submulţime ordonată. În acest caz problema (6.4.2)
admite optim condiţionat.
2. Să se arate că următorul model are optim condiţionat şi să se deter-
mine acest optim!
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f
1
(x) = 2x
1
+ 3x
2
→ max
f
2
(x) = x
1
+ 2x
2
+x
3
→ max
f
3
(x) = x
2
−2x
3
→ max
x
1
+x
2
+x
3
≤ 4
x
1
+ 2x
2
−x
3
≤ 6
x ∈ R
3
+
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
−f
1
(x) = −2x
1
−3x
2
→ min
−f
2
(x) = −x
1
−2x
2
−x
3
→ min
−f
3
(x) = −x
2
−2x
3
→ min
x
1
+x
2
+x
3
+x
4
= 4
x
1
+ 2x
2
−x
3
+x
5
= 6
x ∈ R
5
+
Formulând forma standard a problemei propuse spre rezolvare, putem
scrie matricea restricţiilor:
A
1
A
2
A
3
A
4
A
5
A =
_
1 1 1 1 0
1 2 -1 0 1
_
1. A
4
A
5
∗ ∗ ∗
A
1
1 1 2 1 0
A
2
1 2 3 2 1
A
3
1 -1 0 1 2
∗ 4 6 0 0 0
∗ 4 3 ∗ ∗ ∗
2. A
4
A
2
∗ ∗ ∗
A
1
1/2 1/2 1/2 0 -1/2
A
5
-1/2 1/2 -3/2 -1 -1/2
A
3
3/2 -1/2 3/2 2 5/2
∗ 1 3 -9 -6 -3
∗ 2/3 - ∗ ∗ ∗
3. A
3
A
2
∗ ∗ ∗
A
1
1/3 2/3 0 -2/3 -4/3
A
5
-1/3 1/3 -1 -1/3 1/3
A
4
2/3 1/3 -1 -4/3 -5/3
∗ 2/3 10/ 3 -10 -22/3 -14/3
∗ ∗ ∗ ∗
x
0
= (0 10/3 2/3) este optim condiţionat, deoarece diferenţele d
i
cores-punzătoare funcţiilor de scop d
1
, d
2
sunt negative. Printre diferenţele
d
i
cores-punzătoare funcţiei de scop f
3
există o valoare pozitivă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 169 — #169
i
i
i
i
i
i
6.4. Programare multicriterială 169
f
max
= (10 22/3 14/3)
(C) Mulţimea V este parţial ordonată, dacă sunt puncte eficiente pe
mulţimea părţilor lui S.
(D) V nu este mulţime ordonată, dacă toate punctele lui S sunt puncte
eficiente.
Probleme propuse spre rezolvare
1. Să se verifice dacă problema admite optim absolut!
Punctul x = (0 3 0) este punct eficient pentru acest model?
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f
1
(x) = 3x
1
+ 2x
2
→ max
f
2
(x) = 2x
1
+x
2
+x
3
→ max
f
3
(x) = x
1
−2x
3
→ max
x
1
+x
2
+x
3
≤ 4
x
1
+ 2x
2
−x
3
≤ 6
x
j
≥ 0, j = 1, 3
2. Să se arate că problema admite optim condiţionat!
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f
1
(x) = 2x
1
+ 3x
2
+ 2x
3
+ 2x
4
→ max
f
2
(x) = 4x
1
+ 6x
2
+ 5x
3
+ 4x
4
→ max
−f
3
(x) = −x
1
−5x
2
−x
3
−3x
4
→ max
x
1
+x
2
+x
4
+x
5
= 100
x
2
+x
3
+x
4
+x
6
= 80
x
1
+x
2
+x
3
+x
7
= 50
x
j
≥ 0, j = 1, 7
i
i
“JATEK” — 2005/3/11 — 10:29 — page 170 — #170
i
i
i
i
i
i
170 6. Modele rezolvabile cu algoritmul simple
i
i
“JATEK” — 2005/3/11 — 10:29 — page 171 — #171
i
i
i
i
i
i
Capitolul 7
Problema de transport
În acest capitol vom studia o problemă particulară de programare liniară.
Pentru prima dată, în 1941, Frank Hitchcock [Hit] a formulat o astfel de
problemă pentru organizarea transportului maritim.
7.1 Formularea problemei. Proprietăţi generale
Din punct de vedere economic, se poate formula următoarea problemă:
Fie m centre de aprovizionare (depozitare) notate cu A
1
, . . . , A
m
şi n
centre de consum (beneficiari) notate cu B
1
, . . . , B
n
. Dacă un produs omogen
este depozitat în cantităţile a
i
, i = 1, m în centrele A
i
, şi este cerut de către
beneficiari în cantitatea b
j
, j = 1, n, iar costurile unitare de transport de la
centrul A
i
la beneficiarul B
j
sunt egale cu c
ij
,
atunci se cere să se organizeze transportul astfel încât cheltuielile de
transport să fie minime.
Funcţia obiectiv va reprezenta cheltuielile totale; prin urmare scopul este
minimizarea acestora.
Dacă notăm cu x
ij
cantitatea de produs care va fi transportată de la
furnizorul i la consumatorul j, atunci matematic a problemei este un model
de optimizare liniară cu restricţii (vezi paragraful 1.3.).
Problemei propuse îi putem un graf orientat, numit reţea de transport.
Nodul A se numeşte nod de intrare în reţea, iar nodul B, nod de ieşire
din reţea.
Definiţia 7.1.1. Se numeşte problemă de transport neechilibrat următorul
171
i
i
“JATEK” — 2005/3/11 — 10:29 — page 172 — #172
i
i
i
i
i
i
172 7.Problema de transport
b
m
A
1
B
1
A A
i
B
A
m B
n
b
1 a
1
a
m
a
i
b
j
B
j
modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
m

i=1
n

j=1
c
ij
x
ij
→ min
n

j=1
x
ij
≤ a
i
, i = 1, m
m

i=1
x
ij
≥ b
j
, j = 1, n
x
ij
≥ 0, i = 1, m, j = 1, n
c
ij
≥ 0, i = 1, m, j = 1, n
m

i=1
a
i

n

j=1
b
j
.
(7.1)
Primele m restricţii
n

j=1
x
ij
≤ a
i
, i = 1, m arată că totalul cerut de
consumatori de la furnizorul i nu poate depăşi disponibilul acestuia,
iar următoarele n restricţii
m

i=1
x
ij
≥ b
j
, j = 1, n se referă la faptul că
totalul distribuit de către furnizori trebuie să fie cel puţin egal cu necesarul
consumatorilor.
Restricţiile:
m

i=1
a
i

n

j=1
b
j
, c
ij
≥ 0
arată că disponibilul total este cel puţin egal cu necesarul total.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 173 — #173
i
i
i
i
i
i
7.1. Formularea problemei. Proprietăţi generale 173
Se poate observa uşor că acest model numit model liniar de transport
este o problemă de programare liniară cu m+n restricţii şi m n variabile.
Definiţia 7.1.2. Dacă

m
i=1
a
i
>

n
j=1
b
j
sau

m
i=1
a
i
<

n
j=1
b
j
, atunci
problema de transport se numeşte neechilibrată. Dacă

m
i=1
a
i
=

n
j=1
b
j
,
atunci este problemă de transport echilibrată.
Observaţie.
a) Modelul de transport echilibrat este:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) =
m

i=1
n

j=1
c
ij
x
ij
→ min
n

j=1
x
ij
= a
i
, i = 1, m
m

i=1
x
ij
= b
j
, j = 1, n
¯ x
ij
≥ 0, i = 1, m; j = 1, n
m

i=1
a
i
=
n

j=1
b
j
c
ij
≥ 0, a
i
≥ 0, b
j
≥ 0, i = 1, m; j = 1, n
(7.2)
b) Efectuând transformări echivalente, o problemă neechilibrată poate fi
redusă întotdeauna la o problemă echilibrată prin introducerea unor centre
fictive.
Dacă
m

i=1
a
i
>
n

j=1
b
j
, atunci se va introduce un consumator fictiv (B
n+1
)
al cărui necesar este egal cu
m

i=1
a
i

n

j=1
b
j
, cu costurile unitare de transport
nule.
Dacă
m

i=1
a
i
<
n

j=1
b
j
, atunci se va introduce un furnizor fictiv al cărui
disponibil este egal cu
n

j=1
b
j

m

i=1
a
i
, iar costurile de transpot pot fi consid-
erate egale cu zero.
Justificarea faptului că se poate considera costul de transport egal cu zero
este evidentă: neavând consumator, nu se consumă produsul sau produsul
nu există în disponibilul fictiv, prin urmare nu se transportă, deci nu există
cheltuieli în acest sens.
Observaţie. Modelul de transport fiind un model de programare liniară
rezultă că proprietăţile prezentate în acest sens rămân valabile.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 174 — #174
i
i
i
i
i
i
174 7.Problema de transport
Forma specială a problemei a condus însă şi la unele rezultate particulare
în ceea ce priveşte soluţionarea problemei.
Teorema 7.1.1. Orice problemă de tip (7.2) admite întotdeauna o soluţie.
Dacă a
i
< ∞ şi b
j
< ∞, i = 1, m; j = 1, n, atunci soluţia de bază este
mărginită.
Demonstraţie. Se arată uşor că:
x
ij
=
a
i
b
j

m
i=1
a
i
, i = 1, m, j = 1, n
este soluţie pentru modelul (7.2.)
Putem verifica că aceste rapoarte definesc o soluţie mărginită:
m

i=1
x
ij
=
m

i=1
a
i
b
j
m

i=1
a
i
=
b
j
m

i=1
a
i
m

i=1
a
i
= b
j
, j = 1, n
n

j=1
x
ij
=
a
i
n

j=1
b
j
m

i=1
a
i
= a
i
, i = 1, m
Forma matriceală a problemei (7.2) este:
f(x) =
_
_
_
c
T
x → min
Ax = b
x ≥ 0,
(7.3)
unde A este matricea coeficienţilor din cele (m+n) restricţii.
Matricea restricţiilor are o structură specială. În continuare, vom studia
proprietăţile acestei matrici.
Scriind explicit primele m :
n

j=1
x
ij
= a
i
, i = 1, m

x
11
+x
12
+ +x
1n
= a
1
i
i
“JATEK” — 2005/3/11 — 10:29 — page 175 — #175
i
i
i
i
i
i
7.1. Formularea problemei. Proprietăţi generale 175
x
21
+x
22
+ +x
2n
= a
2
. . .
x
m1
+x
m2
+ +x
mn
= a
m
respectiv următoarele n restricţii:
m

i=1
x
ij
= b
j
, j = 1, n

x
11
+x
21
+ +x
n1
= b
1
x
12
+x
22
+ +x
n2
= b
2
. . .
x
m1
+x
m2
+ +x
mn
= b
n
putem completa următorul tabel:
x
11
x
12
x
1j
x
1n } x
i1 } x
ij } x
in } x
m1 } x
mj } x
mn
u
1
1 1 1 1 } 0 } 0 } 0 } 0 } 0 } 0 a
1
} } } } } } } } } } } } } } } } } }
u
i
0 0 0 0 } 1 } 1 } 1 } 0 } 0 } 0 a
i
} } } } } } } } } } } } } } } } } }
u
m
0 0 0 0 } 0 } 0 } 0 } 1 } 1 } 1 a
m
v
1
1 0 0 0 } 1 } 0 } 0 } 1 } 0 } 0 b
1
} } } } } } } } } } } } } } } } } }
v
j
0 0 1 0 } 0 } 1 } 0 } 0 } 1 } 0 b
j
} } } } } } } } } } } } } } } } } }
v
n
0 0 1 } 0 } 0 } 1 } 0 } 0 } 1 b
n
c
11
c
12
c
1j
c
1n } c
i1 } c
ij } c
in } c
m1 } c
mj } c
mn
Adică în matricea restricţiilor:
A = (a
11
. . . a
1n
, a
21
. . . a
2n
. . . a
m1
, . . . , a
mn
)
componentele a
ij
∈ R
n+m
, i = 1, m, j = 1, n pot fi scrise:
a
ij
=
_
e
i
e
j
_
unde e
i
∈ R
m
e
j
∈ R
n
,
x = (x
11
. . . x
1n
, x
21
. . . x
2n
, . . . x
m1
, . . . x
mn
), b = (a
1
. . . a
m
, b
1
. . . b
n
)
T
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 176 — #176
i
i
i
i
i
i
176 7. Modele speciale de programare liniară. Problema de transport
7.1.1 Proprietăţi ale matricei coeficienţilor
Teorema 7.1.2.
rang A = m + n −1.
Demonstraţie. Deoarece A ∈ /
m+n,mn
(R), prin definiţie , are loc rang A ≤
min(m + n, mn). Dar pentru m ≥ 2, n ≥ 2 avem m + n ≤ mn rezultă că
rang A ≤ m+n.
Din

m
i=1
a
i
=

n
j=1
b
j
rezultă că suma primelor m linii ale matricei A
este egală cu suma celorlalte n linii, de unde rezultă că rang A ≤ m+n −1.
Acum formăm o matrice nesingulară B, de ordin m+n −1.
Alegem coloanele: 1, (n + 1), (2n + 1), . . . , (m−1)n + 1, 2, 3, . . . , n.
Astfel B ∈ /
m+n−1
este triunghiulară de unde rezultă că detB = 1 ,= 0
nesingulară; deci rezultă că rang A = m+n −1.
Observaţie. Semnificaţia teoremei constă în aceea că o soluţie de bază a
unei probleme liniare de tip transport nu poate avea mai mult de m+n −1
componente nenule.
Definiţia 7.1.3. O soluţie de bază a problemei (7.2) este nedegenerată,
dacă numărul componentelor sale nenule este egal cu (m + n − 1) şi este
degenerată, în caz contrar.
Teorema 7.1.3. Orice minor al matricei A are valoarea −1, 0 sau 1 (A este
total unimodulară).
Corolar. Dacă a
i
, i = 1, m şi b
j
, j = 1, n sunt întregi, atunci există cel puţin
o soluţie optimă a problemei de transport (7.2) care are toate componentele
întregi.
7.1.2 Proprietăţi grafice ale problemei de transport
Problemei de transport (7.2) i se poate asocia un tabel numit tabel de
transport, care conţine datele numerice ale problemei. Tabelul are m + 1
linii şi n+1 coloane. În fiecare celulă (i, j) scriem costul unitar de transport
c
ij
.
c
11
. . . c
1j
. . . c
1n
a
1
. . . . . . . . . . . . . . . . . .
c
i1
. . . c
ij
. . . c
in
a
i
. . . . . . . . . . . . . . . . . .
c
m1
. . . c
mj
. . . c
mn
a
m
b
1
. . . b
j
. . . b
n
Valoarea actuală x
ij
a variabilei x
ij
dintr-o anumită iteraţie se va intro-
duce astfel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 177 — #177
i
i
i
i
i
i
7.1. Proprietăţi grafice ale problemei de transport 177
x
ij
c
ij
Definiţia 7.1.4. Celula (i, j) cu x
ij
,= 0 se numeşte celulă bazică, în caz
contrar o vom numi celulă liberă.
Tabelului de transport îi putem asocia un graf neorientat Γ:
1,1 1, j 1, m
2, 1 2, m
m, 2 m, j m, n
1, 2
2, 2 2, j
i, 2 i, j i, m
m, 1
i, 1
Definiţia 7.1.5. Se numeşte Π − graf un subgraf parţial al grafului neori-
entat Γ.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 178 — #178
i
i
i
i
i
i
178 7. Modele speciale de programare liniară. Problema de transport
De exemplu:
1,1 1, j 1, m
2, 1 2, m
1, 2
2, 2 2, j
i, 1 i, m i, j i, 2
m, 1 m, 2 m, n m, j
Definiţia 7.1.6. Un Π − graf care este un lanţ (ciclu) elementar având
cel mult o muchie în fiecare linie sau coloană (a tabelului de transport) se
numeşte µ-ciclu.
Problemei de transport îi putem asocia graful G:
A
i
A
1
A
m
B
1
B
n
B
j
Observaţie. Între graful G construit astfel şi graful Γ se poate stabili o
cores-pondenţă bijectivă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 179 — #179
i
i
i
i
i
i
7.1. Determinarea unei soluţii de bază 179
Teorema 7.1.4. O condiţie suficientă ca un sistem de vectori coloană ai
matricei A să formeze un sistem liniar dependent este ca mulţimea celulelor
tabelului de transport corespunzătoare acestor coloane să formeze un µ-ciclu.
Coeficienţii combinaţiei nule ai acestui sistem de vectori sunt alternativ
+1 şi −1, dacă se adoptă un sens oarecare de parcurgere a µ-ciclului.
7.1.3 Determinarea unei soluţii de bază
Pentru rezolvarea problemei de transport cu algoritmul simplex este nece-
sar obţinerea unei soluţii de bază iniţială.
În continuare, prezentăm o metodă generală de construcţie a soluţiilor
bazi-ce: algoritmul DSBI.
Algoritmul DSBI:
1) - se fixează o celulă (i, j) oarecare;
2) - se atribuie variabilei x
ij
valoarea maximă pe care o poate lua, adică:
x
ij
= min(a
i
, b
j
)
dacă x
ij
= a
i
atunci se va elimina linia i şi se va atribui lui b
j
valoarea
b

j
= b
j
−x
ij
;
dacă x
ij
= b
j
atunci se va elimina coloana j şi se va atribui lui a
i
valoarea a

i
= a
i
−x
ij
;
dacă x
ij
= a
i
= b
j
atunci la alegere se va lua una din cazurile de mai
sus;
3) - se va continua algoritmul (se va trece la pasul (1)) până când se vor
reduce toate liniile şi coloanele din tabelul de transport.
Folosind algoritmul DSBI, se va putea obţine o soluţie bazică.
Metoda poate fi particularizată prin diverse moduri de selectare a celulei
(i, j).
Metodele cele mai cunoscute şi utilizate sunt:
[A] Metoda colţului de nord-vest (N-V): se selectează celula (i, j)
situată în prima linie şi prima coloană (din colţul nord-vest al tabelului)
netăiată;
[B] Metoda costului minim: la fiecare pas, se alege celula (i, j) netăiată
corespunzătoare costului (c
ij
) minim din tabel.
Observaţie Metoda [A] este uşor de aplicat, însă metoda [B] este mult
mai utilă privind numărul de iteraţii în algoritmul de transport.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 180 — #180
i
i
i
i
i
i
180 7. Modele speciale de programare liniară. Problema de transport
7.1.4 Adaptarea algoritmului simplex
Deoarece modelul liniar de transport are o formă specială, algoritmul
simplex, aplicat în general la rezolvarea modelelor liniare cu restricţii, poate
fi modificat.
În continuare, vom adapta algoritmul simplex.
Avem la dispoziţie o soluţie bazică iniţială necesară în aplicarea algorit-
mului simplex(v. algoritmul DSBI din 7.1.4). Va trebui să adaptăm apoi
condiţia de optim, respectiv procedeul de îmbunătăţire a soluţiei (adică cri-
teriul de intrare şi de ieşire din bază) din algoritmul simplex.
În acest sens, prima dată sunt necesare câteva precizări.
Fie mulţimea celulelor bazice:
B = ¦(i, j) ∈ I J[a
ij
∈ A¦
unde I = ¦1, 2 . . . , m¦ şi J = ¦1, 2, . . . , n¦ sunt mulţimi de indici.
Evident, în această mulţime, sunt m+n −1 elemente. Această mulţime
o obţinem deodată cu determinarea soluţiei bazice iniţiale. Vom nota cu R
mulţimea celulelor libere (coloanale corespunzătoare acestor celule nu intră
în formarea bazei).
Pe baza teoremei 7.1.4, putem afirma că la fiecare celulă liberă din R
corespunde în mod unic un µ −ciclu, adică un poligon cu vârfurile
situate în celula liberă şi într-o submulţime a lui B având cel mult
o latură în fiecare linie, respectiv coloană a tabelului de transport.
Deci mulţimea formată din elementul h ∈ R şi elementele lui B formează un
sistem liniar dependent.
În continuare, ne propunem să alegem din această mulţime un sistem
liniar dependent format dintr-un număr minim de vectori (elemente). Evi-
dent putem alege un astfel de sistem; în cazul cel mai nefavorabil, luăm toate
elementele din mulţime. Se poate demonstra că µ−ciclul asociat unei celule
libere verifică această proprietate, adică se asociează în mod unic unei celule
libere şi este format dintr-un număr minim de elemente.
Astfel, dacă vectorului h îi corespunde celula liberă (i
1
, j
1
), atunci µ −
ciclul construit se poate vedea mai jos, unde cercul reprezintă celula liberă,
iar pătratele celulele bazice.
În construcţia µ−ciclului avem în vedere că trebuie să obţinem un poligon
cu nodurile în celulele bazice având cel mult o latură în fiecare linie şi coloană.
Fireşte, combinaţia liniară a vectorilor corespunzători celulelor din µ −
ciclu este egală cu zero (fiind un sistem liniar dependent), iar coeficienţii
combinaţiei liniare sunt pe rând egale cu −1 şi 1 (vezi teorema 7.1.4).
Putem scrie:
_
e
i
1
e
j
1
_

_
e
i
1
e
j
2
_
+
_
e
i
2
e
j
2
_

_
e
i
2
e
j
3
_
+. . . −
_
e
i
t
e
j
1
_
= 0.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 181 — #181
i
i
i
i
i
i
7.1. Adaptarea algoritmului simplex 181
i
2
, j
3
i
2
, j
2
i
t
, j
1
i
1
, j
2
i
1
, j
1
Explicaţia este evidentă, deoarece vectorii e
i
k
,
pentru k ∈ ¦1, . . . , t¦ re-
spectiv e
j
l
pentru l ∈ ¦1, . . . , r¦ apar într-un număr par. Prin urmare avem
două din fiecare, deoarece fiecare nod este într-o linie (coloană), dar în fiecare
astfel de linie (coloană) avem o latură care este determinată de două vârfuri.
Dacă din µ-ciclu scoatem o celulă, atunci vom avea un sistem liniar indepen-
dent de vectori. În continuare, vom scrie combinaţia liniară a vectorilor din
µ-ciclu fără celula liberă. Luăm chiar valorile actuale ale variabilelor inde-
pendente drept coeficienţi ai combinaţiei liniare. Astfel se obţine un vector
_
a
1
b
1
_
= ¯ x
ij
2
_
e
i
1
e
j
2
_
+ ¯ x
i
2
j
2
_
e
i
2
e
j
2
_
+ ¯ x
i
2
j
3
_
e
i
2
e
j
3
_
+. . . + ¯ x
i
t
j
1
_
e
i
t
e
j
1
_
Se poate verifica uşor că această combinaţie liniară a tuturor vectorilor
bazici este egală cu
_
_
_
_
_
_
_
_
_
_
a
1
.
.
.
a
m
b
1
.
.
.
b
n
_
_
_
_
_
_
_
_
_
_
not
=
_
a
b
_
.
Revenim la combinaţia liniară nulă pe care o vom înmulţi cu o cantitate
pozitivă notată cu Q, încât putem scrie:
Q
_
e
i
1
e
j
1
_
−Q
_
e
i
1
e
j
2
_
+Q
_
e
i
2
e
j
2
_
−Q
_
e
i
2
e
j
3
_
+Q. . . −Q
_
e
i
t
e
j
1
_
= 0.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 182 — #182
i
i
i
i
i
i
182 7. Modele speciale de programare liniară. Problema de transport
după care o adunăm la vectorul
_
a
1
b
1
_
.
Astfel se obţine:
Q
_
e
i
1
e
j
1
_
+ (¯ x
i,j
2
−Q)
_
e
i
1
e
j
2
_
+ (¯ x
i
2
j
2
+Q)
_
e
i
2
e
j
2
_
+ (¯ x
i
2
j
3
+Q)
_
e
i
2
e
j
3
_
+. . .
+ (¯ x
i
t
j
1
−Q)
_
e
i
t
e
j
1
_
. (7.4)
De aici se deduce procedeul schimbării vectorilor, procedeul de îm-
bunătăţire a bazei. Cu alegerea convenabilă a lui Q vom putea introduce
celula (vectorul) liberă în bază şi în acelaşi timp vom putea scoate una din
bază. Astfel se va obţine o nouă bază şi combinaţia liniară a vectorilor de
tip 7.4 va fi egală de asemenea cu
_
a
1
b
1
_
. Valoare lui Q se va alege astfel
încât
Q = min¦Q[x
i
r
j
l
−Q = 0, (i
r
, j
l
) ∈ B¦
Modul de alegere a lui Q se numeşte criteriu de intrare în bază.
Având în vedere că următoarea soluţie trebuie să fie mai bună, este foarte
importantă alegerea celulei libere.
Celula liberă este aleasă prin intermediul problemei duale, descrisă în
continuare.
7.1.5 Utilizarea problemei duale
Duala problemei de transport (7.2) este:
_
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
_
g(u, v) =
m

i=1
a
i
u
i
+
n

j=1
b
j
v
j
→ max
u
i
+v
j
≤ c
ij
, i = 1, m, j = 1, n
u
i
, v
j
, i = 1, m, j = 1, n de semn oarecare
(7.5)
Teorema 7.1.5. Fie x
ij
, i = 1, m, j = 1, n o soluţie de bază pentru prob-
lema de transport, iar (u
i
, v
j
), i = 1, m, j = 1, n o soluţie a problemei duale.
Soluţiile sunt optime, dacă şi numai dacă are loc relaţia:
x
ij
(c
ij
−u
i
−v
j
) = 0, i = 1, m, j = 1, n.
Observaţie. Dacă luăm o celulă (i, j) ∈ B, atunci are loc egalitatea
c
ij
− u
i
− v
j
= 0. Altfel are loc relaţia de mai sus, deoarece valorile
varia-bilelor independente ale problemei primale x
ij
, sunt egale cu zero.
Deci soluţia problemei duale trebuie să verifice sistemul liniar de ecuaţii:
c
ij
= u
i
+v
j
, (i, j) ∈ B. (7.6)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 183 — #183
i
i
i
i
i
i
7.1. Algoritmul de transport 183
Astfel valorile actuale ale variabilelor duale le obţinem în urma rezolvării
sistemului (7.6). Acest sistem este nedeterminat, deoarece este format din
m + n −1 ecuaţii şi m + n necunoscute, prin urmare admite o infinitate de
soluţii.
Analizând condiţia de optim, putem observa că de fapt ne interesează
sumele u
i
+v
j
, i = 1, m, j = 1, n şi nu soluţiile, valorile variabilelor, în sine.
Se poate demonstra următorul rezultat.
Teorema 7.1.6. Dacă (u
0
i
, v
0
j
) este o soluţie particulară a sistemului de
ecuaţii de tip 7.6, atunci mulţimea tuturor soluţiilor este:
u
i
= u
0
i
+c
v
j
= v
0
j
−c
pentru orice i = 1, m, j = 1, n unde c este o constantă reală oarecare.
Pe baza acestei teoreme se poate deduce că, pentru verificarea optimal-
ităţii, este suficient de fapt o soluţie particulară, deoarece:
u
i
+v
j
= u
0
i
+v
0
j
pentru orice i = 1, m, j = 1, n.
Teorema 7.1.7. Soluţia sistemului de ecuaţii (7.6) este optimă dacă şi nu-
mai dacă este soluţie posibilă pentru (7.5), adică:
c
ij
−(u
i
+v
j
) ≥ 0, i = 1, m, j = 1, n
Astfel, dacă există cel puţin o celulă (i, j) pentru care c
ij
− (u
i
+ v
j
) <
0, atunci soluţia problemei duale nu este optimă, prin urmare nici soluţia
problemei primale nu este optimă.
Dacă se va alege celula pentru care această diferenţă strict negativă este
minimă, atunci se va obţine celula care va intra în bază.
Acest mod de alegere a celulei libere se numeşte criteriu de intrare în
bază.
7.1.6 Algoritmul de transport
Algoritmul simplex adaptat pentru rezolvarea modelelor liniare de tip
transport se numeşte algoritmul de transport.
Descrierea algoritmului:
1. Să se verifice dacă problema este echilibrată şi să se echilibreze, dacă
este cazul;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 184 — #184
i
i
i
i
i
i
184 7. Modele speciale de programare liniară. Problema de transport
2. Să se determine o soluţie de bază şi o bază B (se foloseşte metoda
colţului de N-V sau metoda costului minim);
3. Să se verifice optimalitatea soluţiei obţinute la pasul (2).
- să se rezolve sistemul
u
i
+v
j
= c
ij
, (i, j) ∈ B cu u
1
= 0
Dacă
c
ij
−(u
i
+v
j
) ≥ 0 pentru orice i = 1, m; j = 1, n
atunci soluţia obţinută în (2) este optimă şi calculează f
min
;
altfel alege celula liberă, care va intra în bază (vezi criteriul de intrare
în bază);
4. Cu celula liberă obţinută în pasul (3), să se construiască µ-ciclul şi
aplică criteriul de ieşire din bază (alege în mod convenabil valoarea lui
Q);
5. Să se efectueze redistribuirea pe µ-ciclu şi, cu soluţia şi baza astfel
obţinute, treci la pasul (2).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 185 — #185
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 185
7.1.7 Probleme propuse şi rezolvate
1. Să se rezolve problema de transport:
2 4 3 23
1 3 5 12
6 2 1 15
18 20 12
Deoarece
n

i=1
a
i
= 23 + 12 + 15 = 50 = 18 + 20 + 12 =
3

j=1
b
j
, problema
considerată este echilibrată şi putem începe aplicarea algoritmului de trans-
port. Folosim metoda colţului de N-V pentru determinarea unei solutii
bazice. Alegând pe rând celulele cuvenite (celulele din N-V), dând valorile
posibile maxime variabilelor independente şi reducând liniile, coloanele core-
spunzatoare vom obţine:
(1, 1) ¯ x
11
= min(23, 18) = 18
(1, 2) ¯ x
12
= min(5, 20) = 5
(2, 2) ¯ x
22
= min(12, 15) = 12
(3, 2) ¯ x
32
= min(15, 3) = 3
(3, 3) ¯ x
33
= min(12, 12) = 12
Astfel putem întocmi următorul tabel de transport:
2 4
18 5
3 23
3
1
12
5 12
2 1
6
3 12
15
18 20 12 50
Baza cu care vom începe algoritmul de transport este:
B = ¦(1, 1), (1, 2), (2, 2), (3, 2), (3, 3)¦.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 186 — #186
i
i
i
i
i
i
186 7. Modele speciale de programare liniară. Problema de transport
Valoarea funcţiei de scop (costul de transport) pentru această soluţie este:
f(x
B
) = 2 18 +4 5 +3 12 +2 3 +1 12 = 36 +20 +36 +6 +12 = 110 u.m.
În continuare, verificăm optimalitatea soluţiei.
Pentru verificarea condiţiei de optim c
ij
− (u
i
+ v
j
) ≥ 0, i = 1, 3; j =
1, 3 vom calcula prima dată valorile variabilelor duale din sistemul liniar de
ecuaţii:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 4
u
2
+v
2
= 3
u
3
+v
2
= 2
u
3
+v
3
= 1
Luând u
1
= 0 soluţiile vor fi:
u
2
= −1
u
3
= −2
v
1
= 2
v
2
= 4
v
3
= 3
Se va folosi un tabel ajutător:
2 4 3
0
2
0
4
0
3
0
-1
1
0
3
0
5
3
-2
6
6
2
0
1
0
Deoarece c
ij
−(u
i
+v
j
) ≥ pentru orice i = 1, 3; j = 1, 3 rezultă că soluţia
bazică este optimă.
Cum se verifică dacă soluţia este unică?
Deoarece există c
ij
−(u
i
+v
j
) = 0, unde (i, j) ,= B şi în rest c
ij
−(u
i
+v
j
) ≥
0 pentru orice i = 1, 3 şi j = 1, 3, rezultă că problema admite optim
multiplu. Alegem o celulă liberă pentru care c
ij
− (u
i
+ v
j
) = 0. Putem
alege, de exemplu, celula (2,1) cu care vom construi µ-ciclul
Pe µ-ciclul construit cu cantitatea Q şi cu o direcţie de parcurgere a
µ-ciclului putem scrie:
Q
_
e
2
e
1
_
+ (¯ x
11
−Q)
_
e
1
e
1
_
+ (¯ x
12
) +Q)
_
e
1
e
2
_
+ (¯ x
22
−Q)
_
e
2
e
2
_
de unde avem:
Q
_
e
2
e
1
_
+ (18 −Q)
_
e
1
e
1
_
+ (5 +Q)
_
e
1
e
2
_
+ (12 −Q)
_
e
2
e
2
_
i
i
“JATEK” — 2005/3/11 — 10:29 — page 187 — #187
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 187
2 4
18 5
3 23
1 3
12
5 12
2 1
6
3 12
15
18 20 12
Dintre soluţiile ecuaţiilor
18 −Q = 0
12 −Q = 0
vom alege Q = 12. Astfel celula (2,2)
va ieşi din bază. Efectuăm redistribuire pe µ - ciclul ales şi vom avea:
2 4
6 17
3 23
1
12
3 5 12
2 1
6
3 12
15
18 20 12 50
i
i
“JATEK” — 2005/3/11 — 10:29 — page 188 — #188
i
i
i
i
i
i
188 7. Modele speciale de programare liniară. Problema de transport
Astfel am pus în evidenţă încă o soluţie optimă. Prin urmare problema
admite o infinitate de soluţii optime. Notăm soluţiile optime cu:
x
01
= ¦¯ x
11
, ¯ x
12
, ¯ x
22
, ¯ x
32
, ¯ x
33
¦
x
02
= ¦¯ x
11
, ¯ x
12
, ¯ x
22
, ¯ x
32
, ¯ x
33
¦
Mulţimea soluţiilor optime va fi: x
0
= λx
01
+ (1 −λ)x
02
, λ ∈ [0, 1]
x
0
= λ
_
_
_
_
_
_
_
_
¯ x
11
¯ x
12
¯ x
21
¯ x
22
¯ x
32
¯ x
33
_
_
_
_
_
_
_
_
+ (1 −λ)
_
_
_
_
_
_
_
_
¯ x
11
¯ x
12
¯ x
21
¯ x
22
¯ x
32
¯ x
33
_
_
_
_
_
_
_
_
= λ
_
_
_
_
_
_
_
_
18
5
0
12
3
12
_
_
_
_
_
_
_
_
+ (1 −λ)
_
_
_
_
_
_
_
_
6
17
12
0
3
12
_
_
_
_
_
_
_
_
=
=
_
_
_
_
_
_
_
_
12λ + 6
−12λ + 17
−12λ + 12
12λ
3
12
_
_
_
_
_
_
_
_
, λ ∈ [0, 1]
Observaţie: În continuare, vom rezolva problema folosind metoda costu-
lui minim pentru determinarea soluţiei bazice iniţiale.
Avem problema de transport dată cu următorul tabel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 189 — #189
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 189
2 4 3 23
1 3 5 12
6 2 1 15
18 20 12 50
Alegem întotdeauna celule cu cost minim.
Alegem celula (2,1) şi ¯ x
21
= min(12, 18) = 12
Alegem celula (3,3) şi ¯ x
33
= min(15, 12) = 12
Alegem celula (1,1) şi ¯ x
11
= min(23, 6) = 6
Alegem celula (3,2) şi ¯ x
32
= min(3, 20) = 3
A rămas netăiată celula (1,2) şi ¯ x
21
= min(17, 17) = 17
Cu soluţia bazică iniţială vom întocmi tabelul de transport şi vom obţine:
2 4
6 17
3 23
1
12
3 5 12
2 1
6
3 12
15
18 20 12 50
Valoarea funcţiei de scop va fi:
f(x
B
) = 2 6 + 4 17 + 1 12 + 2 12 + 2 3 + 1 12 = 68 + 42 = 1001 u.m.
unde B = ¦(1, 1), (1, 2), (2, 1), (3, 2), (3, 3)¦.
Valorile variabilelor duale le obţinem din sistemul liniar nedeterminat:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 4
u
2
+v
1
= 1
u
3
+v
2
= 2
u
3
+v
3
= 1
i
i
“JATEK” — 2005/3/11 — 10:29 — page 190 — #190
i
i
i
i
i
i
190 7. Modele speciale de programare liniară. Problema de transport
De unde, dacă u
1
= 0, vom avea:
u
2
= −1
u
3
= −2
v
1
= 2
v
2
= 4
v
3
= 3
Verificăm optimalitatea soluţiei folosind tabelul ajutător:
2 4 3
0
2
0
4
0
3
0
-1
1
0
3
0
5
3
-2
6
6
2
0
1
0
Se poate observa uşor că soluţia este optimă. Folosind un raţionament
analog, ca şi în cazul metodei colţului de N-V, putem scrie mulţimea soluţi-
ilor optime.
2. Fie problema de transport dată cu următorul tabel:
2 1 3 2 15
1 2 3 1 15
3 2 1 2 20
9 8 8 15
Deoarece a
1
+a
2
+a
3
= 50 > 40 = b
1
+b
2
+b
3
+b
4
rezultă că problema
este neechilibrată. Vom introduce un beneficiar fictiv şi vom avea următorul
tabel de transport:
Folosind metoda colţului de N-V, vom determina o soluţie bazică iniţială.
Putem scrie pentru celulele alese:
¯ x
11
= min(15, 9) = 9
¯ x
12
= min(6, 8) = 6
¯ x
22
= min(15, 2) = 2
¯ x
23
= min(13, 8) = 8
¯ x
24
= min(5, 15) = 5
¯ x
34
= min(20, 10) = 10
¯ x
35
= min(10, 10) = 10
Vom introduce soluţiile obţinute în tabel şi vom avea:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 191 — #191
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 191
2 1 3 2 0 15
1 2 3 1 0 15
3 2 1 2 0 20
9 8 8 15 10 50
v
1
v
2
v
3
v
4
v
5
2 1
u
1
9 6
3 2 0 15
2 3 1
u
2
1
2 8 5
0 15
2 0
u
3
3 2 1
10 10
20
9 8 8 15 10 50
Valoarea funcţiei de scop pentru această soluţie bazică este:
f(x
B
) = 29+16+22+38+15+210 = 18+6+4+24+5+20 = 77 u.m.
În scopul verificării optimalităţii, determinăm valorile variabilelor duale.
Putem scrie sistemul liniar nedeterminat:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 1
u
2
+v
2
= 2
u
2
+v
3
= 3
u
2
+v
4
= 1
u
3
+v
4
= 2
u
3
+v
5
= 0
Luând u
1
= 0, obţinem
u
2
= 1
u
3
= 2
v
1
= 2
v
2
= 1
v
3
= 2
v
4
= 0
v
5
= −2
.
Condiţia de optim c
ij
− (u
i
+ v
j
) ≥ 0 pentru orice i = 1, 3 şi j = 1, 5 o
verificăm folosind tabelul ajutător:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 192 — #192
i
i
i
i
i
i
192 7. Modele speciale de programare liniară. Problema de transport
2 1 2 0 -2
0
2
0
1
0
3
1
2
2
0
2
1
1
-2
2
0
3
0
1
0
0
1
1
2
3
-1
2
-1 -3
2
0
0
0
Deoarece există (i, j) pentru care c
ij
−(u
i
+v
j
) < 0, înseamnă că soluţia
bazică nu este optimă. min¦−2, −1, −3¦ = −3, astfel vom alege celula liberă
(3,3) cu care vom construi µ-ciclul. În acest scop revenim la tabelul de
transport:
2 1
9 6
3 2 0 15
2 3 1
8 5
1
2
0 15
1 2 0
10
3 2
10
20
9 8 8 15 10
50
Pe µ-ciclul construit luând o direcţie de parcurgere, putem scrie:
Q
_
e
3
e
3
_
+ (¯ x
23
−Q)
_
e
2
e
3
_
+ (¯ x
24
+Q)
_
e
2
e
4
_
(¯ x
34
−Q)
_
e
3
e
4
_
.
Observaţie. Coloanele din matricea restricţiilor A, corespunzătoare
celulelor care formează µ - ciclul, formează un sistem liniar dependent de
i
i
“JATEK” — 2005/3/11 — 10:29 — page 193 — #193
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 193
vectori. Adică orice combinaţie liniară a vectorilor respectivi egală cu zero
nu implică egalitatea cu zero a coeficienţilor combinaţiei liniare. Pe baza
teoremei 7.1.4 avem:
_
e
3
e
3
_

_
e
2
e
3
_
+
_
e
2
e
4
_

_
e
3
e
4
_
= 0
Vom înmulţi egalitatea cu o cantitate Q ,= 0 şi vom avea:
Q
_
e
3
e
3
_
−Q
_
e
2
e
3
_
+Q
_
e
2
e
4
_
−Q
_
e
3
e
4
_
= 0.
Considerăm un vector:
v = ¯ x
23
_
e
2
e
3
_
+ ¯ x
24
_
e
2
e
4
_
+ ¯ x
34
_
e
3
e
4
_
,
combinaţia liniară a vectorilor bazici din µ - ciclu, la care adăugăm vectorul
nul. Astfel putem scrie:
v = Q
_
e
3
e
3
_
+ (¯ x
23
−Q)
_
e
2
e
3
_
+ (¯ x
24
+Q)
_
e
2
e
4
_
+ (¯ x
34
−Q)
_
e
3
e
4
_
şi avem chiar combinaţia liniară a vectorilor din µ-ciclu în forma în care am
scris. Continuăm prin înlocuirea valorilor actuale ale variabileleor ¯ xij, şi
obţinem:
Q
_
e
3
e
3
_
+ (8 −Q)
_
e
2
e
3
_
+ (5 +Q)
_
e
2
e
4
_
+ (10 −Q)
_
e
3
e
4
_
.
Dintre soluţiile ecuaţiilor 8 − Q = 0 ¸şi 10 − Q = 0, vom alege valoarea
minimă şi astfel pentru Q = 8 celula (2,3) va ieşi din bază. Efectuăm apoi o
redistribuire pe µ-ciclu şi obţinem următorul tabel de transport:
2 1
9 6
3 2 0 15
2 1
1
2
3
13
0 15
1 2 0
3 2
8 2 10
20
9 8 8 15 10 50
i
i
“JATEK” — 2005/3/11 — 10:29 — page 194 — #194
i
i
i
i
i
i
194 7. Modele speciale de programare liniară. Problema de transport
Valoarea funcţiei de scop (costul transportului) pentru această soluţie va
fi:
f(x
B
) = 29+16+22+113+18+22+010 = 18+6+4+13+8+4 = 53 < 77 u.m.
Continuăm cu verificarea optimalităţii.
Avem de rezolvat sistemul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 1
u
2
+v
2
= 2
u
2
+v
4
= 1
u
3
+v
3
= 1
u
3
+v
4
= 2
u
3
+v
4
= 0
.
Luând u
1
= 0, avem pe rând soluţiile:
u
2
= 1 v
1
= 2
u
3
= 2 v
2
= 1
v
3
= −1
v
4
= 0
v
5
= −2
Folosim tabelul ajutător:
2 1 -1 0 -2
0
2
0
1
0
3
4
2
2
0
2
1
1
-2
2
0
3
3
1
0
0
1
2
3
-1
2
-1
1
0
2
0
0
0
Există (i, j) pentru care c
ij
− (u
i
+ v
j
) < 0, ceea ce înseamnă că nu am
obţinut soluţia optimă. Alegem celula liberă (2,1) care va intra în bază şi cu
care construim µ-ciclul. Efectuăm încă o iteraţie în urma căreia celula (2,2)
va ieşi din bază. Pe µ-ciclul construit, efectuăm o redistribuire şi obţinem
următorul tabel:
Valoarea funcţiei de scop pentru această soluţie va fi:
f(x
B
) = 2 7 +1 8 +1 2 +1 13 +1 8 +2 2 = 14 +10 +13 +12 = 49 u.m.
În continuare, va fi verificată optimalitatea soluţiei.
Deoarece pentru orice i = 1, 3 şi j = 1, 5 diferenţele c
ij
− (u
i
+ v
j
) ≥ 0,
rezultă că soluţia obţinută este optimă şi f
min
= 49 u.m.
3. Să se rezolve problema de transport:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 195 — #195
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 195
2 1
7 8
3 2 0 15
1 1
2
2 3
13
0 15
1 2 0
3 2
8 2 10
20
9 8 8 15 10 50
4 3 2 1 13
2 5 6 3 28
7 4 3 6 39
25 15 37 23
Deoarece a
1
+a
2
+a
3
= 80 şi b
1
+b
2
+b
3
+b
4
= 100, adică:
3

i=1
a
i
<
4

j=1
b
j
,
problema de trasnsport nu este echilibrată. Va fi introdus un centru fictiv de
depozitare A
4
şi se va obţine următorul tabel:
Folosind metoda colţului de nord-vest (N-V), determinăm o soluţie de
bază iniţială. Astfel:
- alegem celula (1,1), luăm ¯ x
11
= min(13, 25) = 13 şi vom tăia prima
linie;
- alegem celula (2,1), luăm ¯ x
21
= min(28, 12) = 12 şi vom tăia prima
coloană;
- alegem celula (2,2), luăm ¯ x
22
= min(16, 15) = 15 şi vom tăia a doua
coloană;
- alegem celula (2,3), luăm ¯ x
23
= min(1, 37) = 1 şi vom tăia a doua linie;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 196 — #196
i
i
i
i
i
i
196 7. Modele speciale de programare liniară. Problema de transport
4 3 2 1 13
2 5 6 3 28
7 4 3 6 39
0 0 0 0 20
25 15 37 23
100
100
- alegem celula (3,3), luăm ¯ x
33
= min(39, 36) = 36 şi vom tăia a treia
coloană;
- alegem celula (3,4), luăm ¯ x
34
= min(3, 23) = 3 şi vom tăia a treia linie;
- alegem celula (4,4), luăm ¯ x
44
= min(20, 20) = 20 şi vom tăia a patra
linie (coloană).
Putem observa că toate liniile şi coloanele sunt eliminate. Astfel s-a obţinut
soluţia bazică şi baza:
B = ¦(1, 1), (2, 1), (2, 2), (2, 3), (3, 3), (3, 4), (4, 4)¦
cu (m+n −1) = 4 + 4 −1 = 7 celule bazice.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 197 — #197
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 197
Soluţia bazică astfel obţinută va fi introdusă în tabel şi vom avea:
v
1
v
2
v
3
v
4
4
u
1
13
3 2 1 13
2 5 6
u
2
12 15 1
3 28
3 6
u
3
7 4
36 3
39
0
u
4
0 0 0
20
20
25 15 37 23 100
Se poate verifica uşor că
4

i=1
¯ x
ij
= b
j
, j = 1, 4 şi
4

j=1
¯ x
ij
= a
i
, i =
1, 4. Urmează verificarea optimalităţii. Variabilele problemei duale notate cu
u
1
, u
2
, u
3
, u
4
, v
1
, v
2
, v
3
, v
4
sunt soluţiile sistemului liniar de ecuaţii u
i
+ v
j
=
c
ij
, (i, j) ∈ B. Astfel putem scrie:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 4
u
2
+v
1
= 2
u
2
+v
2
= 5
u
2
+v
3
= 6
u
3
+v
3
= 3
u
3
+v
4
= 6
u
4
+v
4
= 0
Este un sistem liniar nedeterminat. Vom determina o soluţie particulară
pornind cu u
1
= 0 şi vom avea pe rând:
u
2
= −2
u
3
= −5
u
4
= −11
v
1
= 4
v
2
= 7
v
3
= 8
v
4
= 11
Condiţia de optim este: c
ij
−(u
i
+ v
j
) ≥ 0 pentru orice (i, j)
i=1,m
j=1,n
. Această
condiţie va fi verificată folosind un tabel ajutător:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 198 — #198
i
i
i
i
i
i
198 7. Modele speciale de programare liniară. Problema de transport
v
1
= 4 v
2
= 7 v
3
= 8 v
4
= 11
1
u
1
= 0
4
0
3
-4
2
-6 -10
u
2
= -2
2
0
5
0
6
0
3
-6
u
3
= -5
7
8
4
2
3
0
6
0
u
4
= -11
0
7
0
4
0
3
0
0
Deoarece există celule (i, j) pentru care c
ij
− (u
i
+ v
j
) < 0, cum ar fi
celulele (1,2), (1,3), (1,4), (2,4), rezultă că soluţia nu este optimă.
În scopul determinării unei soluţii îmbunatăţite vom alege celula liberă
h, astfel încât:
h
not
= (i, j)
1
= min¦c
ij
−(u
i
+v
j
) < 0 [ i = 1, 4, j = 1, 4¦
şi vom construi un µ-ciclu. Celula liberă astfel aleasă va intra în bază. Celula
care va ieşi va fi obţinută din µ-ciclul asociat celulei libere h.
Revenim la tabelul de transport şi construim µ-ciclul.
4
1
13
3 2
13
2 5 6
12 15 1
3 28
3 6
7 4
36
3
39
0
0 0 0
20
20
25 15 37 23
100
100
În continuare, scriem o combinaţie liniară a vectorilor care formează µ-
ciclul, pornind cu celula liberă, folosind o mărime Qşi o direcţie de parcurgere
i
i
“JATEK” — 2005/3/11 — 10:29 — page 199 — #199
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 199
a µ-ciclului.
În urma efectuării calculelor, vom alege valoarea minimă, Q = 1.
Astfel ¯ x
23
−Q va fi egală cu zero şi prin urmare celula (2, 3) va ieşi din
bază.
Pe µ-ciclu vom efectua o redistribuire conform combinaţiei liniare
scrise la efectuarea calculelor. Astfel vom avea o nouă bază: B

=
¦(1, 1), (1, 4), (2, 1), (2, 2), (3, 3), (3, 4), (4, 4)¦ şi o soluţie bazică pe care o
putem citi din tabel. Costul de transport este:
f(x
B

) = 4 12 + 1 1 + 2 13 + 5 15 + 3 37 + 6 2 + 0 20 = 273 u.m.
Aici se termină prima iteraţie.
După două iteraţii, în urma redistribuirii, vom avea următorul tabel:
1
4 3 2
13
13
2 3
25
5 6
3
28
4 3
7
2 37
6 39
0 0
0
13
0
7
20
25 15 37 23
100
100
Astfel vom avea o nouă bază şi o soluţie bazică:
B

= ¦(1, 4), (2, 1), (2, 4), (3, 2), (3, 3), (4, 2), (4, 4)¦
Valoarea funcţiei de scop este:
f(x
B

) = 1 13 + 2 25 + 3 3 + 4 2 + 3 37 + 0 13 + 0 7 = 19 u.m.
În continuare se determină valoarea variabilelor problemei duale.
Avem sistemul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
4
= 1
u
2
+v
1
= 2
u
2
+v
4
= 3
u
3
+v
2
= 4
u
3
+v
3
= 3
u
4
+v
2
= 0
u
4
+v
4
= 0
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 200 — #200
i
i
i
i
i
i
200 7. Modele speciale de programare liniară. Problema de transport
Luând u
1
= 0, vom obţine:
u
2
= 2
u
3
= 3
u
4
= −1
v
1
= 0
v
2
= 1
v
3
= 0
v
4
= 1
Verificăm optimalitatea soluţiei problemei duale folosind tabelul ajutător:
0 1 0 1
0
4
4
3
2
2
2
1
0
2
2
0
5
2
6
4
3
0
3
7
4
4
0
3
0
6
2
-1
0
1
0
0
0
1
0
0
Deoarece c
ij
−(u
i
+v
j
) ≥ 0 pentru orice (i, j)
i=1,4
j=1,4
înseamnă că am obţinut
soluţia optimă. Deci soluţia problemei de transport este:
¯ x
14
= 13; ¯ x
21
= 25; ¯ x
24
= 3; ¯ x
32
= 2; ¯ x
33
= 37; ¯ x
42
= 13; ¯ x
44
= 7 şi
f
min
= 191u.m.
4. Să se rezolve problema de transport:
2 1 2 3 15
1 2 3 1 17
3 1 1 2 13
7 8 18 12
45
45
Se poate verifica uşor că
3

i=1
a
i
=

b
j
= 45, adică problema de trans-
port este echilibrată. Folosind metoda colţului de N-V, vom determina o
soluţie de bază iniţială. Alegând pe rând celulele corespunzătoare vom da
valorile maxime posibile variabilelor independente. Adică:
pentru celula (1,1) ¯ x
11
= min(15, 7) = 7
pentru celula (1,2) ¯ x
11
= min(8, 8) = 8.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 201 — #201
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 201
Înainte să se ajungă la ultima celulă netăiată, avema
1
= b
2
= min(a
1
, b
2
),
ceea ce înseamnă că se va reduce simultan şi o linie şi o coloană din tabel.
Prin urmare, la sfârşitul algoritmului, numărul celulelor bazice va fi mai
mic decât m + n − 1, adică vom obţine o soluţie degenerată. Continuând
algoritmul, vom alege celula (2,3) şi astfel vom avea ¯ x
23
= min(17, 18) = 17.
În continuare, pentru celula (3, 3) avem ¯ x
32
= min(1, 13) = 1;
iar pentru celula (3,4) ¯ x
34
= min(12, 12) = 12.
Soluţia bazică va fi introdusă în tabel, iar baza obţinută este:
B = ¦(1, 1), (1, 2), (2, 3), (3, 3), (3, 4)¦ adică m+n −1 = 3 + 4 −1 = 6 > 5
2 1
7 8
2 3 15
3
1 2
17
1 17
1 2
3 1
1 12
13
7 8 18 12
Dacă avem soluţie bazică degenerată, atunci nu putem aplica algorit-
mul de transport, deoarece la rezolvarea sistemului u
i
+v
j
= c
ij
, (i, j) ∈ B nu
este suficientă teorema 7.1.6, fiindcă sistemul este de două ori nedeterminat
(vom avea 5 ecuaţii şi 7 variabile).
În aceste cazuri, prima dată, va trebui să eliminăm degenerarea. Se
poate verifica fără dificultate că are loc relaţia b
1
+ b
2
= a
1
. Degenerarea
va fi eliminată prin perturbare. Alegem ε > 0 foarte mic, pe care-l
vom aduna la valorile (a
i
)
i=1,3
, respectiv (b
j
)
j=1,4
, astfel încât problema să
rămână echilibrată şi să nu aibă loc condiţia de mai sus. Astfel putem scrie
problema dată în felul următor:
2 1 2 3 15
1 2 3 1 17
3 1 1 2 13 + İ
7 8 + İ 18 12
Aplicând metoda colţului de N-V, putem scrie:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 202 — #202
i
i
i
i
i
i
202 7. Modele speciale de programare liniară. Problema de transport
(1, 1) ¯ x
11
= min(15, 6) = 7 (1, 2) ¯ x
12
= min(8, 8 +ε) = 8
(2, 2) ¯ x
22
= min(17, ε) = ε (2, 3) ¯ x
23
= min(17 −ε, 18) = 17 −ε
(3, 3) ¯ x
33
= min(13 +ε, 1 +ε) = 1 +ε (3, 4) ¯ x
34
= min(12, 12) = 12
Astfel avem baza: B = ¦(1, 1), (1, 2), (2, 2), (2, 3), (3, 3), (3, 4)¦ şi tabelul
de transport cu soluţiile bazice:
v
1
v
2
v
3
v
4
2 1
u
1
7 8
2 3 15
2 3
u
2
1
İ 17-İ
1 17
1 2
u
3
3 1
1+İ 12
13 + İ
7 8 + İ 18 12
f(x
B
) = 2 7 + 1 8 + 2 ε + 3 (17 −ε) + (1 +ε) + 2 12 =
= 14 + 8 + 2ε + 51 −3ε + 1 +ε + 24 = 98 u.m.
Verificăm optimalitatea soluţiei. Scriem sistemul liniar de ecuaţii: u
i
+
v
j
= c
ij
, (i, j) ∈ B şi determinăm valorile variabilelor duale.
u
1
+v
1
= 2 u
2
+v
3
= 3 u
3
+v
3
= 1
u
1
+v
2
= 1 u
2
+v
2
= 2 y
3
+v
4
= 2
Luând u
1
= 0, avem pe rând:
u
2
= 1 v
1
= 2 v
3
= 2
u
3
= −1 v
2
= 1 v
4
= 3
. Verificăm
optimalitatea soluţiei problemei duale prin folosirea unui tabel ajutator:
2 1 2 3
0
2
0
1
0
2
0
3
0
1
1
-2
2
0
3
0
1
-3
-1
3
2
1
1
1
0
2
0
i
i
“JATEK” — 2005/3/11 — 10:29 — page 203 — #203
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 203
Deoarece există (i, j) pentru care c
ij
− (u
i
+ v
j
) < 0, soluţia problemei
duale nu este optimă, prin urmare nici soluţia bazică a problemei de transport
nu este optimă.
Dintre valorile negative alegem minimul (-3) şi astfel celula liberă care va
intra în bază va fi (2,4).
Revenim la tabelul de transport şi, pornind cu celula liberă (2,4), vom
construi µ-ciclul.
2 1
7 8
2 3 15
2 3 1
17-İ
1
İ
17
1 2
1+İ 12
3 1 13 + İ
7 8+İ 18 12
Putem scrie:
Q
_
e
2
e
4
_
+ (¯ x
34
−Q)
_
e
3
e
4
_
+ (¯ x
33
+Q)
_
e
3
e
3
_
+ (¯ x
23
−Q)
_
e
2
e
3
_
Q
_
e
2
e
4
_
+ (12 −Q)
_
e
3
e
4
_
+ (1 +ε +Q)
_
e
3
e
3
_
+ (17 −ve −Q)
_
e
2
e
3
_
Rezolvăm ecuaţiile: 12 − Q = 0, 17 − ε − Q = 0 şi vom alege Q =
min¦12 17−ε¦ = 12, astfel celula (3,4) va ieşi din bază. Pe µ-ciclul construit
efectuăm redistribuirea soluţiei şi obţinem următorul tabel:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 204 — #204
i
i
i
i
i
i
204 7. Modele speciale de programare liniară. Problema de transport
2 1
7 8
2 3 15
2 3 1
1
İ 5-İ 12
17
1
3 1
13+İ
2 13 + İ
7 8 + İ 18 12
Valoarea funcţiei de scop pentru această soluţie este:
f(x
B
) = 27+18+2ε+3(5−ε)+112+1(13+ε) = 14+8+2ε+15−3ε+12+13+ε = 72
În continuare, efectuăm iteraţia a doua şi verificăm optimalitatea soluţiei
obţinute. Avem:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 1
u
2
+v
2
= 2
u
2
+v
3
= 3
u
2
+v
4
= 1
u
3
+v
3
= 1
.
Luând u
1
= 0, obţinem pe rând:
u
2
= 1 v
1
= 2 v
3
= 2
u
3
= −1 v
2
= 1 v
4
= 0
.
Completăm tabelul ajutător:
2 1 2 0
0
2
0
1
0
2
0
3
3
1
1
-2
2
0
3
0
1
0
-1
3
2
1
1
1
0
2
3
Deoarece c
21
−(u
2
+v
1
) = −2 < 0, rezultă că soluţia nu este optimă, iar
cu celula liberă (2,1) vom construi µ-ciclul. Scriem tabelul de transport:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 205 — #205
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 205
2 1
7 8
2 3 15
1 2 3 1
İ
5 – İ 12
17
1
3 1
13 + İ
2 13 + İ
7 8 + İ 18 12
Putem scrie în continuare:
Q
_
e
2
e
1
_
+ (¯ x
11
−Q)
_
e
1
e
1
_
+ (¯ x
12
+Q)
_
e
1
e
1
_
+ (¯ x
22
−Q)
_
e
2
e
2
3
_
Q
_
e
2
e
1
_
+ (7 −Q)
_
e
1
e
1
_
+ (8 +Q)
_
e
1
e
1
_
+ (ε −Q)
_
e
2
e
2
3
_
Dintre soluţiile ecuaţiilor 7 − Q = 0 şi ε − Q = 0 vom alege Q = ε. Astfel
celula (2,2) va ieşi din bază şi pe µ - ciclul construit efectuăm o redistribuire
a soluţiei şi astfel vom obţine noile soluţii bazice. Avem:
2 1
7 – İ 8+İ
2 3 15
1 3 1
İ
2
5 – İ 12
17
1
3 1
13+İ
2 13+İ
7 8+İ 18 12
i
i
“JATEK” — 2005/3/11 — 10:29 — page 206 — #206
i
i
i
i
i
i
206 7. Modele speciale de programare liniară. Problema de transport
Valoarea funcţiei de scop este:
4

j=1
3

i=1
c
ij
x
ij
= 2(7 −ε) + 1(8 +ε) + 1 ε + 3(5 −ε) + 1 12 + 1(13 +ε) =
= 14 −2ε + 8 +ε +ε + 15 −3ε + 12 + 13 +ε =
= 22 + 27 −3ε + 13 +ε = 66 −2ε.
Pentru a verifica optimalitatea soluţiei, scriem mai întâi sistemul de
ecuaţii u
i
+v
j
= c
ij
, (i, j) ∈ B. Adică avem pe rând:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 1
u
2
+v
1
= 1
u
2
+v
3
= 3
u
2
+v
4
= 1
u
3
+v
3
= 1
.
Pentru u
1
= 0, avem:
u
2
= −1 v
1
= 2 v
3
= 4
u
3
= −3 v
2
= 1 v
4
= 2
. Completăm tabelul
ajutător:
2 1 4 2
2
0
2
0
1
0
-2
3
1
-1
1
0
2
2
3
0
1
0
-3
3
4
1
3
1
0
2
3
Soluţia nu este optimă, deoarece pentru celula (1,3) avem c
13
−(u
1
+v
3
) =
−2 < 0.
Cu celula (1,3), care va intra în bază, construim µ-ciclul şi obţinem:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 207 — #207
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 207
2 1 2
7-İ 8+İ
3 15
1 3 1
2
İ 5-İ
12
17
1
3 1
13+İ
2 13+İ
7 8+İ 18 12
În continuare avem pe rând:
Q
_
e
1
e
3
_
+ (¯ x
23
−Q)
_
e
2
e
3
_
+ (¯ x
21
+Q)
_
e
2
e
1
_
+ (¯ x
11
−Q)
_
e
1
e
1
_
Q
_
e
1
e
3
_
+ (5 −ε −Q)
_
e
2
e
3
_
+ (ε +Q)
_
e
2
e
1
_
+ (7 −ε −Q)
_
e
1
e
1
_
Rezolvăm ecuaţiile 5−ε−Q = 0, 7−ε−Q = 0 şi alegem Q = min¦5−ε, 7−
ε¦ = 5 − ε. Astfel celula (2,3) va ieşi din bază şi, efectuând o redistribuire
pe µ-ciclu, obţinem următorul tabel de transport:
v
1
v
2
v
3
v
4
2 1 2
u
1
2 8+İ 5-İ
3 15
1 1
u
2
5
2 3
12
17
1
u
3
3 1
13+İ
2 13+İ
7 8+İ 18 12
i
i
“JATEK” — 2005/3/11 — 10:29 — page 208 — #208
i
i
i
i
i
i
208 7. Modele speciale de programare liniară. Problema de transport
Valoarea funcţiei de transport este acum:
f(x
B
) = 2 2 + 1 (8 +ε) + 2 (5 −ε) + 1 12 + 1 (1 +ε) + 1 5 =
= 4 + 8 +ε + 10 −2ε + 12 + 13 +ε + 5 = 52 u.m.
În continuare, se efectuează următoarea iteraţie cu verificarea optimalităţii
soluţiei duale.
Avem de rezolvat astfel sistemul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
u
1
+v
1
= 2
u
1
+v
2
= 1
u
1
+v
3
= 2
u
2
+v
1
= 1
u
2
+v
4
= 1
u
3
+v
3
= 1
. Luând u
1
= 0, soluţiile
sistemului sunt:
u
2
= −1 v
1
= 2 v
3
= 2
u
3
= −1 v
2
= 1 v
4
= 2
. Construim tabelul ajută-
tor:
2 1 2 2
0
2
0
1
0
2
0
3
1
-1
1
0
2
2
3
2
1
0
-1
3
2
1
1
1
0
2
3
Deoarece c
ij
− (u
i
+ v
j
) ≥ 0, pentru orice i = 1, 3 şi j = 1, 4, rezultă că
soluţia este optimă. Luând ε = 0, avem: ¯ x
11
= 2, ¯ x
12
= 8, ¯ x
13
= 5, ¯ x
21
= 5,
¯ x
24
= 12, ¯ x
33
= 13 şi f
min
= 52 u.m.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 209 — #209
i
i
i
i
i
i
7.1. Probleme propuse şi rezolvate 209
Probleme propuse
Să se rezolve următoarele probleme de transport:
1.
2 1 3 2 150
1 2 3 1 150
3 2 1 2 200
90 75 85 150
Soluţia este: ¯ x
11
= 75, ¯ x
12
= 75, ¯ x
21
= 15, ¯ x
24
= 135, ¯ x
33
= 85, ¯ x
34
= 15.
Cost de transport C
T
= 490.
2.
1 3 4 2 60
2 1 2 3 280
4 1 3 2 210
80 200 70 250
Soluţia este: ¯ x
11
= 60, ¯ x
21
= 205, ¯ x
22
= 190, ¯ x
23
= 70, ¯ x
32
= 10,
¯ x
34
= 200.
Cost de transport C
T
= 840.
3.
3 5 4 200
5 2 4 100
6 3 5 80
150 120 60
Soluţia este: ¯ x
11
= 150, ¯ x
13
= 50, ¯ x
22
= 100, ¯ x
32
= 20, ¯ x
33
= 10.
Cost de transport C
T
= 960.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 210 — #210
i
i
i
i
i
i
210 7. Modele speciale de programare liniară. Problema de transport
4.
1 4 2 60
2 2 3 280
4 3 2 210
80 70 250
Soluţia este: ¯ x
11
= 40, ¯ x
12
= 120, ¯ x
13
= 40, ¯ x
21
= 150, ¯ x
31
= 50.
Cost de transport C
T
= 1350.
5.
2 5 1 6
3 7 2 10
4 1 5 13
3 9 19
Soluţia este: ¯ x
13
= 6, ¯ x
23
= 10, ¯ x
31
= 3, ¯ x
32
= 9, ¯ x
33
= 1.
Cost de transport C
T
= 52.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 211 — #211
i
i
i
i
i
i
Capitolul 8
Teoria jocurilor
8.1 Introducere în teoria jocurilor
Istoric
Putem distinge două tipuri de jocuri: jocuri de noroc şi jocuri strategice.
În secolul al XVII-lea au fost studiate jocurile de noroc de către B. Pascal,
P. Fermat, Jacques şi D. Bernoulli, însă lucrările lor au fundamentat teoria
probabilităţilor. Aspectul sub care au fost privite şi studiate aceste jocuri a
fost diferit de cel al teoriei jocurilor. Studiul matematic al jocurilor de noroc
se realizează cu instrumentele şi metodele teoriei probabilităţilor.
Jocurile strategice se caracterizează prin situaţii de conflict.
Situaţii de conflict au existat dintotdeauna însă studiul lor matematic a
apărut recent.
În secolul al XIX-lea începe interesul pentru analiza matematică a situ-
aţiilor de conflict în sectorul economic, lucrările lui Cournot, Pareto, Walras
fundamentând econometria.
În 1921, E. Borel publică primul studiu de teoria jocurilor. Funda-
mentarea teoriei a fost făcută de Neumann şi Morgenstern, prin publicarea
primei cărţi de teoria jocurilor în 1944 cu titlul "Theory of Games and Eco-
nomic Behavoir".
În cadrul acestui capitol vom prezenta fundamentarea matematică a
jocurilor strategice împreună cu metode numerice de rezolvare ale acestora.
Noţiuni de bază
Teoria jocurilor este teoria matematică a situaţiilor de conflict.
Definiţia 8.1.1. Prin situaţii de conflict înţelegem circumstanţele în care
se întâlnesc două sau mai multe părţi a căror activitate urmăreşte un scop
bine determinat şi în care interesele părţilor sunt contrarii.
211
i
i
“JATEK” — 2005/3/11 — 10:29 — page 212 — #212
i
i
i
i
i
i
212 8. Teoria jocurilor
Orice situaţie de conflict cotidiană este complexă, cu numeroşi factori
secundari.
În scopul efectuării unei analize matematice a situaţiei de conflict trebuie
construit un model al situaţiei, numit joc matematic.
Se vor defini în continuare elementele fundamentale unui joc
matema-tic, şi anume: partidă, regula repartiţiei de valori, jucători sau
parteneri.
Definiţia 8.1.2. Prin partidă se înţelege un proces format dintr-o succe-
siune de acţiuni (mutări) executate, rând pe rând, după anumite reguli care
constituie caracteristica jocului. Acţiunile sunt executate de un număr finit
de persoane numite jucători (sau parteneri).
Într-un joc există o regulă a repartiţiei de valori între jucători, care
permite fiecărui jucător să-şi fixeze ca scop realizarea unei valori cât mai
mari.
Pentru formularea matematică a situaţiei de conflict,în descrierea unui
joc, considerăm n jucători, notaţi cu i ∈ ¦1, 2, . . . , n¦.
Fie A
i
mulţimea acţiunilor care sunt la dispoziţia jucătorului i, i = 1, n.
Dacă luăm a
i
∈ A
i
, atunci spunem că jucătorul i a ales acţiunea a
i
i ∈ ¦1, . . . , n¦.
Utilitatea alegerii acţiunii a
i
pentru jucătorul i poate fi măsurată cu o
funcţie reală de n variabile reale, notată cu f
i
, care reprezintă câştigul jucă-
torului i, pentru i = 1, n.
Problema centrală a teoriei jocurilor constă în determinarea modului de
alegere de către jucătorul i a acţiunii a
i
în scopul obţinerii unui câştig maxim,
ţinând seama că şi ceilalţi jucători urmăresc acelaşi scop.
Clasificarea jocurilor
Jocurile pot fi clasificate după diferite criterii:
a) După numărul jucătorilor, putem distinge jocuri cu 2 jucători, 3
jucători etc.
De obicei numărul jucătorilor nu coincide cu numărul persoanelor fizice
care participă la joc, acestea pot forma coaliţii.
Numărul jucătorilor este determinat de mulţimea intereselor contrarii
care se confruntă.
De exemplu, jocul bridge este un joc matematic cu doi jucători (deşi
numărul persoanelor fizice care participă este 4); un atac aerian poate fi
descris prin modelul unui joc cu doi jucători.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 213 — #213
i
i
i
i
i
i
8.2. Jocuri matriceale 213
b) Dacă pentru un joc cu n jucători există un număr real c astfel
încât:
f
1
(a
1
i
1
, . . . , a
n
i
n
) + +f
n
(a
1
i
1
, . . . , a
n
i
n
) = c, pentru orice
(a
1
i
1
, . . . , a
n
i
n
) ∈ A
1
A
n
atunci spunem că acest joc este un joc cu sumă constantă.
Dacă c = 0, atunci jocul se numeşte joc cu sumă nulă.
c) După numărul acţiunilor care stau la dispoziţia fiecărui jucător putem
distinge jocuri finite, dacă A
1
, . . . , A
n
sunt mulţimi finite, respectiv jocuri
infinite, dacă există cel puţin o mulţime A
i
, i ∈ ¦1, . . . , n¦ cu o infinitate
de elemente.
d) După natura acţiunilor care stau la baza jucătorilor distingem
jocuri cu acţiune liberă şi jocuri cu acţiune aleatoare.
O acţiune a
i
∈ A
i
este liberă, dacă ea poate fi utilizată de către jucătorul
i în orice moment.
O acţiune a
i
∈ A
i
este aleatoare, dacă este aleasă cu ajutorul unui
meca-nism aleatoriu (zar, urnă cu bile, ruletă).
De exemplu, şahul este un joc cu acţiuni libere, iar tablele, un joc cu
acţiuni aleatoarii.
e) După informaţia disponibilă fiecărui jucător, există:
- joc cu informaţie completă, în care fiecare jucător cunoaşte întreaga
desfăşurare a jocului atunci când alege o anumită acţiune;
- joc cu informaţie incompletă, în care jucătorul nu cunoaşte mulţimea
acţiunilor partenerilor (de exemplu, în bridge, nu cunoaşte ce cărţi posedă
ceilalţi jucători).
Majoritatea jocurilor cu însemnătate practică sunt jocuri cu informaţii
incomplete. Necunoaşterea acţiunilor adversarilor este de obicei o caracter-
istică a situaţiilor de conflict.
8.2 Jocuri matriceale
În continuare, vom studia jocurile finite cu doi jucători şi cu sumă nulă.
Acestea reprezintă o clasă importantă de jocuri.
Considerăm doi jucători notaţi cu 1 şi 2. Notăm cu:
A
1
= ¦a
1
1
, . . . , a
1
m
¦ mulţimea acţiunilor jucătorului 1 şi
A
2
= ¦a
2
2
, . . . , a
2
n
¦ mulţimea acţiunilor jucătorului 2.
Presupunem că, pe parcursul partidei, jucătorul 1 alege acţiunea a
1
i
, iar
jucătorul 2 alege acţiunea a
2
j
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 214 — #214
i
i
i
i
i
i
214 8. Teoria jocurilor
Nici unul dintre jucători nu este informat în legătură cu alegerea făcută
de celălalt.
Presupunem că, în urma acestor alegeri, jucătorul 1 obţine câştigul
f
1
(a
1
i
, a
2
j
), iar jucătorul 2 obţine câştigul f
2
(a
1
i
, a
2
j
), şi are loc relaţia:
f
1
(a
1
i
, a
2
j
) +f
2
(a
1
i
, a
2
j
) = 0 ⇔
f
1
(a
1
i
, a
2
j
) = −f
2
(a
1
i
, a
2
j
)
Astfel se poate afirma că, într-un joc cu 2 jucători şi sumă nulă, este
suficient să cunoaştem câştigul jucătorului 1. Câştigul jucătorului 2 este
opusul câştigului realizat de către jucătorul 1.
Deci un joc finit cu doi jucători şi cu sumă nulă este complet determinat,
dacă se cunosc mulţimile finite A
1
, A
2
şi funcţia reală f
1
: A
1
A
2
.
Tripletul (A
1
, A
2
, f
1
) care caracterizează jocul poate fi reprezentat cu
următorul tabel:
A
1
A
2
a
2
1
. . . a
2
j
. . . a
2
n
a

1
c
11
. . . c
1j
. . . c
1n
.
.
.
.
.
.
a

i
c
i1
. . . c
ij
. . . c
in
.
.
.
.
.
.
a

m
c
m1
. . . c
m
j
. . . c
mn
unde c
ij
= f
1
(a
1
i
, a
2
j
) este câştigul jucătorului 1.
Matricea C = (c
ij
)
i,j
se numeşte matricea câştigurilor (sau matricea
plăţilor, matricea jocului).
Jocul finit cu 2 jucători şi sumă nulă este complet determinat de tripletul
G = (A
1
, A
2
, C), unde C ∈ /
m,n
.
Prima etapă în cercetarea situaţiilor de conflict este stabilirea acţiunilor
jucătorilor şi întocmirea matricei de plăţi.
8.3 Strategii
Definiţia 8.3.1. Prin strategia unui jucător se înţelege un ansamblu de re-
guli care definesc în mod unic alegerea acţiunilor libere în funcţie de situaţia
concretă ivită în decursul jocului.
De obicei alegerea unei acţiuni libere este efectuată de jucător în decursul
jocului în funcţie de situaţia concretă ivită.
Totuşi, din punct de vedere teoretic, este posibil ca toate aceste situaţii
să fie prevăzute de jucător înaintea începerii jocului. De aceea, la început,
i
i
“JATEK” — 2005/3/11 — 10:29 — page 215 — #215
i
i
i
i
i
i
8.3. Strategii 215
jucătorul trebuie să intuiască toate situaţiile şi să-şi aleagă soluţia pentru
fiecare dintre ele, ceea ce înseamnă că jucătorul a ales o strategie bine definită.
Teoria jocurilor urmăreşte găsirea celor mai bune strategii pentru fiecare
jucător.
Jucătorul trebuie să ia în considerare că adversarul este cel puţin tot atât
de priceput ca şi el şi să facă totul pentru împiedicarea scopului acestuia.
În teoria jocurilor nu se mizează pe incapacitatea adversarului, ci din con-
tră se iau în calcul virtuţile intelectuale ale jucătorilor. Principiul jucătorilor
este principiul lipsei de risc.
Un jucător alege strategia luând în considerare acţiunea cea mai defavor-
abilă pe care i-o rezervă adversarul.
Formularea matematică a strategiei
Fie:
A
1
= ¦a
1
1
, . . . , a
1
m
¦ mulţimea acţiunilor jucătorului 1,
A
2
= ¦a
2
1
, . . . , a
2
n
¦ mulţimea acţiunilor jucătorului 2 şi
C = (c
ij
)
i,j
matricea plăţilor.
Jucându-se mai multe partide, presupunem că jucătorul 1 alege:
acţiunea a
1
1
cu probabilitatea (ponderea) x
1
;
acţiunea a
1
2
cu probabilitatea x
2
;
. . .
acţiunea a
1
i
cu probabilitatea x
i
;
. . .
acţiunea a
1
m
cu probabilitatea x
m
.
Vectorul x = (x
1
, . . . , x
m
) ∈ R
m
se numeşte strategia jucătorului 1.
Ponderile arată în ce măsură sunt folosite acţiunile care stau la dispoziţia
jucătorului pentru a-şi atinge scopul propus.
Este firesc ca orice strategie x = (x
1
, . . . , x
m
) a jucătorului 1 să verifice
proprietatea x ∈ R
m
+
şi

m
i=1
x
i
= 1.
Vom nota cu X mulţimea tuturor strategiilor jucătorului 1.
Adică:
X = ¦x ∈ R
m
+
¸
¸
¸
¸
¸
m

i=1
x
i
= 1¦
Prin analogie, putem defini strategia jucătorului 2.
Jucându-se mai multe partide, presupunem că jucătorul 2 alege:
acţiunea a
2
1
cu probabilitatea (ponderea) y
1
;
acţiunea a
2
2
cu probabilitatea y
2
;
. . .
acţiunea a
2
j
cu probabilitatea y
j
;
. . .
i
i
“JATEK” — 2005/3/11 — 10:29 — page 216 — #216
i
i
i
i
i
i
216 8. Teoria jocurilor
acţiunea a
2
n
cu probabilitatea y
n
.
Vectorul y = (y
1
, . . . , y
n
) ∈ R
n
se numeşte strategia jucătorului 2.
Vom nota cu:
Y = ¦y = (y
1
, . . . , y
n
) ∈ R
n
+
[
n

j=1
y
j
= 1¦
mulţimea strategiilor jucătorului 2.
Dacă, într-o partidă, jucătorul 1 alege acţiunea a
1
i
, iar jucătorul 2 acţiunea
a
2
j
, atunci câştigul jucătorului 1 cu notaţiile introduse în primul capitol este
c
ij
.
Dar probabilităţile cu care au fost alese aceste acţiuni sunt x
i
, respectiv
y
j
. Alegerile se fac în mod independent, ceea ce înseamnă că probabilitatea
acestei alegeri este x
i
y
j
, (adică produsul probabilităţilor). Deci probabili-
tatea câştigului c
ij
este x
i
y
j
.
Astfel câştigul jucătorului 1 îl putem descrie matematic cu o vari-
abilă aleatoare discretă care ia valorile c
ij
cu probabilităţile x
i
y
j
, (i, j) ∈
¦1, . . . , m¦ ¦1, . . . , n¦.
Valoarea medie a variabilei aleatoare discrete este:
F(x, y) =
m

i=1
n

j=1
c
ij
x
i
y
j
= (x, Cy)
Funcţia F : XY se numeşte funcţie de câştig mediu şi reprezintă câştigul
jucătorului 1, dacă, în decursul partidelor, jucătorii folosesc strategiile x şi
y.
8.3.1 Strategii optime
Cu ajutorul funcţiei de câştig mediu putem defini strategiile optime ale
jucătorilor.
Dacă jucătorul 1 foloseşte strategia x ∈ X, atunci el câştigă cel puţin:
F(x) = min
y∈Y
F(x, y),
indiferent de strategia utilizată de către jucătorul 2.
Jucătorul urmăreşte obţinerea unui câştig maxim, iar cel mai mare câştig
ce poate fi realizat de către el este:
max
x∈X
F(x) = max
x∈X
(min
y∈Y
F(x, y)) (8.1)
deoarece va alege o strategie pentru a-şi maximiza câştigurile.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 217 — #217
i
i
i
i
i
i
8.3. Strategii 217
Orice strategie care garantează jucătorului 1 un câştig mediu egal cu (8.1)
se numeşte strategie maximin.
Deci o strategie x
0
∈ X a jucătorului 1 se numeşte strategie maximin,
dacă:
F(x
0
) = max
x∈X
F(x)
Astfel putem formula următoarea problemă de maximizare (a cărei soluţie
este x
0
) :
(A)
_
¸
¸
¸
_
¸
¸
¸
_
F(x) : x ∈ X¦ → max
unde F : X →R definit prin
F(x) = min
y∈Y
F(x, y) pentru orice x ∈ X.
Soluţia optimă a problemei (A), notată cu x
0
, este strategie maximin pentru
jucătorul 1.
Jucătorul 2 urmăreşte realizarea unei pierderi minime. Astfel, folosind
un raţionament analog, putem scrie că jucătorul 2 pierde cel mult:
F(y) = max
x∈X
F(x, y)
dacă foloseşte strategia y ∈ Y.
Pentru a-şi minimiza pierderile, alege o strategie pentru care obţine:
min
y∈Y
F(y) = min
y∈Y
max
x∈X
F(x, y) (8.2)
Strategia care garantează jucătorului 2 pierderea minimă este egală cu
(8.2) ¸şi se numeşte strategie minimax.
Deci o strategie y
0
∈ Y a jucătorului 2 se numeşte strategie minimax,
dacă:
F(y
0
) = min
y∈Y
F(y)
Strategiile minimax sunt soluţiile problemei de minimizare, şi anume:
(B)
_
¸
¸
_
¸
¸
_
F(y) : y ∈ Y ¦ → min unde
F : Y →R definit prin
F(y) = max
x∈X
F(x, y) pentru orice y ∈ Y.
Definiţia 8.3.2. Fie X, Y două mulţimi nevide, oarecare şi F : X Y →R
o aplicaţie. Spunem că punctul (x
0
, y
0
) ∈ XY este un punct şa al funcţiei
F relativ la mulţimea X Y dacă:
F(x, y
0
) ≤ F(x
0
, y
0
) ≤ F(x
0
, y) pentru orice (x, y) ∈ X Y.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 218 — #218
i
i
i
i
i
i
218 8. Teoria jocurilor
Exemplu. Considerăm mulţimile X = Y = R, F : X Y →R definite prin
F(x, y) = −
x
2
a
2
+
y
2
b
2
pentru orice (x, y) ∈ X Y, a, b ∈ R

.
Reprezentând această suprafaţă de ordinul doi

x
2
a
2
+
y
2
b
2
= z
obţinem un paraboloid - hiperbolic:
O
z
Se poate verifica uşor că punctul (0, 0) este un punct şa al funcţiei F
relativ la mulţimea X Y, deoarece:
F(x, 0) ≤ F(0, 0) ≤ F(0, y)
pentru orice (x, y) ∈ X Y.
Teorema 8.3.1.
Fie x
0
∈ X şi y
0
∈ Y. Fie F : X Y →R, F(x) = min¦F(x, y), y ∈ Y ¦
F : X →R, şi F(y) = max¦F(x, y), x ∈ X¦, F : Y →R.
Sunt adevărate următoarele afirmaţii:
1. Dacă perechea (x
0
, y
0
) ∈ X Y este un punct şa al funcţiei F, atunci
F(x
0
) = F(x
0
, y
0
) = F(y
0
)
2. Dacă F(x
0
) = F(y
0
), atunci (x
0
, y
0
) este un punct şa al funcţiei F.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 219 — #219
i
i
i
i
i
i
8.3. Strategii 219
Demonstraţie. 1. Presupunem că (x
0
, y
0
) este un punct şa al funcţiei F.
Atunci pentru orice x ∈ X are loc:
F(x, y
0
) ≤ F(x
0
, y
0
) ⇒
max
x∈X
F(x, y
0
) ≤ F(x
0
, y
0
)

F(y
0
) ≤ F(x
0
, y
0
) (8.3)
Prin analogie, avem pentru orice y ∈ Y :
F(x
0
, y
0
) ≤ F(x
0
, y)

F(x
0
, y
0
) ≤ min
y∈Y
F(x
0
, y) ⇒
F(x
0
, y
0
) ≤ F(x
0
) (8.4)
Folosind definiţia funcţiilor F şi F avem:
F(x) ≤ F(x, y) ≤ F(y) pentru orice (x, y) ∈ X Y
Considerăm cazul particular: x = x
0
, y = y
0
şi obţinem:
F(x
0
) ≤ F(x
0
, y
0
) ≤ F(y
0
) (8.5)
Din (8.3), (8.4) şi (8.5) rezultă că F(x
0
) = F(x
0
, y
0
) = F(y
0
)
2. Acum presupunem că F(x
0
) = F(y
0
) şi vom demonstra că punctul
(x
0
, y
0
) este un punct şa al funcţiei F.
Folosim relaţia (8.5), adică avem:
F(x
0
) ≤ F(x
0
, y
0
) ≤ F(y
0
)
dar din ipoteză F(x
0
) = F(y
0
)
_

F(x
0
) = F(x
0
, y
0
) = F(y
0
)
Pentru orice (x, y) ∈ X Y putem scrie, folosind definiţia funcţiilor F şi
F, că:
F(x, y
0
) ≤ F(y
0
) = F(x
0
, y
0
) = F(x
0
) ≤ F(x
0
, y)
de unde rezultă că (x
0
, y
0
) este un punct şa al funcţiei F.
Consecinţa 8.3.2. Fie F : X Y →R şi funcţiile F, F definite în teorema
8.3.1 Punctul (x
0
, y
0
) ∈ X Y este un punct şa al funcţiei F relativ la
X Y ⇔
x
0
este un punct de maxim al funcţiei F relativ la X şi y
0
este un punct
de minim al funcţiei F relativ la Y şi are loc relaţia:
max
x∈X
min
y∈Y
F(x, y) = min
y∈Y
max
x∈X
F(x, y) = F(x
0
, y
0
)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 220 — #220
i
i
i
i
i
i
220 8. Teoria jocurilor
Demonstraţie. Mai întâi, vom presupune că (x
0
, y
0
) este un punct şa pentru
funcţia F şi vom demonstra că x
0
este punct maxim şi y
0
este punct minim.
Dacă (x
0
, y
0
) este punct şa, atunci folosind teorema 8.3.1 putem scrie:
F(x
0
) = F(x
0
, y
0
) = F(y
0
) (8.6)
Folosind definiţia funcţiilor:
F(x) = min
y∈Y
F(x, y), x ∈ X
F(y) = max
x∈X
F(x, y), y ∈ Y
putem scrie:
F(x) ≤ F(x, y) ≤ F(y)
⇔ F(x) ≤ F(y)
Deci pentru orice x ∈ X are loc inegalitatea. Luând y = y
0
⇒ F(x) ≤ F(y
0
).
Dar din teorema 8.3.1 avem F(y
0
) = F(x
0
) ⇒ x
0
este punct de maxim al
funcţiei F relativ la X.
În mod analog, demonstrăm că y
0
este punct de minim pentru F relativ
la Y.
Din cele demonstrate acum rezultă că:
F(x
0
) = max
x∈X
F(x) = max
x∈X
min
y∈Y
F(x, y) şi
F(y
0
) = min
y∈Y
F(y) = min
y
max
x
F(x, y)
şi pe baza teoremei 8.3.1 obţinem:
max
x∈X
min
y∈Y
F(x, y) = min
y∈Y
max
x∈X
F(x, y) = F(x
0
, y
0
)
Acum, pentru a demonstra reciproca afirmaţiei, vom presupune că
x
0
este punct de maxim:
⇒ F(x
0
) = max
x∈X
F(x) = max
x∈X
min
y∈Y
F(x, y) şi
y
0
punct de minim:
⇒ F(y
0
) = min
y∈Y
F(y) = min
y∈Y
max
x∈X
F(x, y)
Deoarece max
x∈X
min
y∈Y
F(x, y) = min
y∈Y
max
x∈X
F(x, y)
rezultă că F(x
0
) = F(y
0
) ⇒ (x
0
, y
0
) punct şa al funcţiei F relativ la
mulţimea X Y.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 221 — #221
i
i
i
i
i
i
8.3. Strategii 221
Teorema 8.3.3. Dacă X ⊆ R
m
şi Y ⊆ R
n
sunt mulţimi compacte, nevide,
iar F : X Y → R este o funcţie continuă, atunci funcţiile F : X → R şi
F : Y →R sunt continue.
În continuare, prezentăm condiţiile suficiente pentru existenţa
punctului şa.
Definiţia 8.3.3. Fie X ⊆ R
m
, Y ⊆ R
n
mulţimile nevide şi convexe. O
funcţie f : X Y → R se numeşte concav - convexă (respectiv strict
concav - convexă), dacă:
(i) pentru orice y ∈ Y funcţia F(, y) : X → R este concavă (respectiv
strict concavă);
(ii) pentru orice x ∈ X funcţia F(x, ) : Y → R este convexă (strict
convexă).
Teorema 8.3.4. Dacă X ⊆ R
m
şi Y ⊆ R
n
sunt mulţimi convexe, nevide,
compacte şi funcţia F : X Y → R este strict concav - convexă, continuă,
atunci F posedă cel puţin un punct şa relativ la X Y.
Teorema 8.3.5. Dacă X ⊆ R
m
, Y ⊆ R
n
sunt mulţimi convexe, nevide şi
compacte, iar funcţia F : XY →R este o funcţie concav-convexă continuă,
atunci F posedă cel puţin un punct şa relativ la X Y.
Consecinţa 8.3.6. Fie matricea C ∈ /
m,n
(R) şi:
X = ¦x ∈ R
m
+
[
m

i=1
x
i
= 1¦, Y = ¦y ∈ R
n
+
[
n

j=1
y
j
= 1¦.
Funcţia F : X Y →R definită prin F(x, y) = (x, Cy) pentru orice
(x, y) ∈ X Y posedă cel puţin un punct şa relativ la X Y.
Teorema 8.3.7. Dacă X, Y sunt mulţimi nevide şi F : X Y → R este o
funcţie astfel încât să existe numerele:
max
x∈X
min
y∈Y
F(x, y), min
y∈Y
max
x∈X
F(x, y)
atunci este adevărată inegalitatea:
max
x∈X
min
y∈Y
≤ min
y∈Y
max
x∈X
F(x, y).
Avem egalitate, dacă şi numai dacă F posedă cel puţin un punct şa relativ la
X Y.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 222 — #222
i
i
i
i
i
i
222 8. Teoria jocurilor
Demonstraţie. Fie x ∈ X oarecare. Pentru orice y ∈ Y are loc:
min
v∈Y
F(x, v) ≤ F(x, y) ≤ max
u∈X
F(u, y) ⇒
min
v∈Y
F(x, v) ≤ max
u∈X
F(u, y)
max
x∈X
min
v∈Y
F(x, v) ≤ max
u∈X
F(u, y)
max
x∈X
min
v∈Y
F(x, v) ≤ min
y∈Y
max
u∈X
F(u, y)
Efectuăm o schimbare de variabile: v = y, u = x şi obţinem inegalitatea pe
care am avut-o de demonstrat.
Acum presupunem că are loc:
max
x∈X
min
y∈Y
F(x, y) = min
y∈Y
max
x∈X
F(x, y)
şi vom demonstra că F admite punct şa.
Alegem x
0
∈ X (există un astfel de element), astfel încât:
min
y∈Y
F(x
0
, y) = max
x∈X
min
y∈Y
F(x, y) ⇔
F(x
0
) = max
x∈X
F(x)
de unde rezultă că x
0
este punct de maxim.
Alegem y
0
∈ Y, astfel încât:
max
x∈X
F(x, y
0
) = min
y∈Y
max
x∈X
F(x, y) ⇒
F(y
0
) = min
y∈Y
F(y) ⇒
y
0
este punct de minim, iar pe baza consecinţei 8.3.2 rezultă că punctul
(x
0
, y
0
) este un punct şa a lui F.
Dacă presupunem că F admite punct şa, atunci din consecinţa 8.3.2 avem
egalitatea, iar teorema este complet demonstrată.
Acum prezentăm condiţii suficiente pentru a avea egalitate.
Teorema 8.3.8. (Kakutani 1941)
Dacă X ⊆ R
m
şi Y ⊆ R
n
sunt mulţimi convexe, compacte, nevide, iar
F : X Y → R este o funcţie concav - convexă continuă, atunci există
numerele max
x∈X
min
y∈Y
F(x, y) şi min
y∈Y
max
x∈X
F(x, y) şi sunt egale.
Consecinţa 8.3.9. (J.V. Neumann 1928) Fie o matrice C ∈ /
m,n(R)
şi
mulţimile:
X = ¦x ∈ R
m
+
[
m

i=1
x
i
= 1¦, Y = ¦y ∈ R
n
+
[
n

j=1
y
j
= 1¦
i
i
“JATEK” — 2005/3/11 — 10:29 — page 223 — #223
i
i
i
i
i
i
8.3. Strategii 223
Dacă F : X Y →R este definită prin:
F(x, y) = (x, Cy)
atunci există numerele max
x∈X
min
y∈Y
F(x, y), min
y∈Y
max
x∈X
F(x, y) şi
sunt egale.
Acest rezultat, dat de J. von Neumann, este foarte important, deoarece
asigură rezolvabilitatea jocurilor matriceale.
Din teorema lui Neumann 8.3.9, rezultă că numerele (8.1) şi (8.2) sunt
egale, adică valorile optime ale funcţiilor de scop ale problemelor de opti-
mizare (A) şi (B) sunt egale.
Are loc următoarea proprietate:
Teorema 8.3.10. Pentru orice joc matriceal sunt adevărate următoarele afir-
maţii:
1. dacă (x
0
, y
0
) ∈ X Y este un punct şa al funcţiei F relativ la X Y,
atunci x
0
este o strategie maximin a jucătorului 1 şi y
0
este o strategie
minimax a jucătorului 2;
2. dacă x
0
∈ X este o strategie maximin a jucătorului 1 şi y
0
∈ Y este o
strategie minimax a jucătorului 2, atunci (x
0
, y
0
) este un punct şa al
funcţiei F relativ la X Y.
Demonstraţie. Folosind teoremele minimax 8.3.1, 8.3.2, demonstraţia este
banală.
Observaţie. Din teorema 8.3.10, rezultă că cele mai bune strategii pentru
jucătorul 1 sunt strategiile maximin şi pentru jucătorul 2 strategiile minimax.
Deoarece (x
0
, y
0
) este un punct şa pentru funcţia F, are loc relaţia:
F(x, y
0
) ≤ F(x
0
, y
0
) ≤ F(x
0
, y) pentru orice (x, y) ∈ X Y.
Nici unul dintre jucători nu este interesat să-şi schimbe strategia. Din această
inegalitate, se poate observa că pentru orice altă strategie x ∈ X, câştigul
jucătorului 1 devine mai mic, iar pentru orice altă strategie y ∈ Y, pierderile
jucătorului 2 devin mai mari.
Perechea (x
0
, y
0
) se numeşte soluţia jocului matriceal (unde x
0
, y
0
sunt strategii optime).
Pe baza teoremelor prezentate, se poate afirma că (x
0
, y
0
) ∈ X Y este
soluţia jocului matriceal, dacă şi numai dacă este un punct şa al funcţiei F
relativ la X Y.
Numărul F(x
0
, y
0
)
not
= w se numeşte valoarea jocului matriceal.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 224 — #224
i
i
i
i
i
i
224 8. Teoria jocurilor
Din 8.3.9 rezultă că un joc matriceal are o singură valoare egală cu nu-
merele (8.1), (8.2).
w este cel mai mare câştig al jucătorului 1 la care poate spera să şi-l
achi-ziţioneze şi este cea mai mică pierdere pe care jucătorul 2 şi-o asumă.
A rezolva un joc matriceal înseamnă a găsi o soluţie a jocului şi valoarea
jocului.
8.3.2 Strategii optime într-un joc matriceal simetric
Definiţia 8.3.4. Fie o matrice pătratică C ∈ /
n
(R).
Matricea se numeşte strâmb simetrică, dacă elementele de pe diagonala
principală sunt egale cu 0, iar succesiunea elementelor de pe linii este aceeaşi
cu succesiunea elementelor pe coloane cu semn schimbat.
Adică: C
T
= −C.
De exemplu matricea:
_
_
0 1 −2
−1 0 3
2 −3 0
_
_
este o matrice strâmb simetrică.
Definiţia 8.3.5. Un joc matriceal G = (A
1
, A
2
, C) se numeşte joc simetric,
dacă [A
1
[ = [A
2
[ = n şi C ∈ /
n
(R) este strâmb simetrică.
Teorema 8.3.11. Valoarea unui joc matriceal simetric este zero şi orice
strategie optimă pentru unul dintre jucători este optimă şi pentru celălalt
jucător.
Demonstraţie. Fie G = (A
1
, A
2
, C) un joc matriceal simetric, C ∈ /
n
(R).
Mulţimea X a strategiilor jucătorului 1 este egală cu Y. Folosind proprietatea
C = −C
T
, putem scrie:
F(x, y) = (x, −C
T
y) = −(Cx, y) = −F(y, x) (8.7)
pentru orice (x, y) ∈ X Y.
Dacă luăm x = y, obţinem F(x, x) = −F(x, x) ⇒ F(x, x) = 0 pentru
orice x ∈ X. Adică, în cazul în care jucătorii folosesc aceeaşi strategie, câştigul
mediu este zero.
Fie acum (x
0
, y
0
) ∈ X Y o soluţie a jocului. Putem scrie:
F(x, y
0
) ≤ w ≤ F(x
0
, y) pentru orice (x, y) ∈ X Y
Înlocuind pe x cu y
0
, iar pe y cu x
0
şi folosind relaţia F(x
0
, x
0
) = F(y
0
, y
0
) =
0, obţinem w = 0.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 225 — #225
i
i
i
i
i
i
8.3. Strategii 225
Pentru a arăta că strategia optimă pentru unul dintre jucători este optimă
şi pentru celălalt jucător, scriem:
F(x, y
0
) ≤ F(x
0
, y
0
) ≤ F(x
0
, y) pentru orice (x, y) ∈ X Y
deoarece (x
0
, y
0
) este punct şa pentru F.
Folosind relaţia (8.7), obţinem:
−F(y
0
, x) ≤ −F(y
0
, x
0
) ≤ −F(y, x
0
) ⇔
F(y, x
0
) ≤ F(y
0
, x
0
) ≤ F(y
0
, x)
Deoarece X = Y ⇒ (y
0
, x
0
) este punct şa al funcţiei F relativ la X Y.
Adică orice strategie optimă pentru jucătorul 1 este optimă şi pentru
jucătorul 2 şi invers.
Observaţie. Dacă valoarea unui joc matriceal este zero înseamnă că jucă-
torul 1 nu câştigă nimic şi jucătorul 2 nu pierde nimic, adică regulile jocului
nu favorizează pe nici unul din jucători.
Un joc matriceal cu valoarea zero se numeşte joc echitabil.
Din teorema 8.3.11 rezultă că orice joc simetric este joc echitabil, însă
reciproca afirmaţiei nu este adevărată.
8.3.3 Proprietăţi ale strategiilor optime şi ale valorii unui joc
matriceal
Orice joc matriceal are cel puţin o soluţie, deoarece funcţia F are cel
puţin un punct şa (vezi consecinţa 8.3.9) relativ la mulţimea X Y.
Teorema 8.3.12. Un joc matriceal are fie o soluţie unică, fie o infinitate de
soluţii.
În continuare, prezentăm câteva proprietăţi care arată cum se schimbă
valoarea jocului, dacă efectuăm operaţii aritmetice asupra elementelor ma-
tricei de plăţi.
Teorema 8.3.13. Fie un număr real oarecare notat cu k şi G = (A
1
, A
2
, C)
un joc matriceal cu matricea de plăţi:
C =
_
_
_
c
11
. . . c
1n
.
.
.
c
m1
. . . c
mn
_
_
_
i
i
“JATEK” — 2005/3/11 — 10:29 — page 226 — #226
i
i
i
i
i
i
226 8. Teoria jocurilor
Dacă
´
G = (A
1
, A
2
,
´
C) este un joc matriceal cu matricea de plăţi:
´
C =
_
_
_
c
11
+k . . . c
1n
+k
.
.
.
c
m1
+k . . . c
mn
+k
_
_
_
atunci are loc relaţia ´ w = w + k şi orice soluţie a unuia dintre jocuri este
soluţie şi pentru celălalt joc matriceal.
Demonstraţie. Scriem funcţia de câştig mediu pentru jocul
´
G :
´
F(x, y) =
m

i=1
n

j=1
(c
ij
+k)x
i
y
j
= F(x, y) +k
unde F este funcţia de câştig mediu al jocului G.
Putem scrie:
max
x∈X
min
y∈Y
´
F(x, y) = max
x∈X
min
y∈Y
F(x, y) +k ⇔
´ w = w +k
Acum luăm o soluţie a jocului G notată cu (x
0
, y
0
) ∈ X Y. Pentru orice
(x, y) ∈ X Y are loc:
F(x, y
0
) ≤ F(x
0
, y
0
) ≤ F(x
0
, y)
Adunăm numărul real k şi obţinem:
F(x, y
0
) +k ≤ F(x
0
, y
0
) +k ≤ F(x
0
, y) +k
ceea ce se poate scrie:
´
F(x, y
0
) ≤
´
F(x
0
, y
0
) ≤
´
F(x
0
, y)
Deci punctul (x
0
, y
0
) este un punct şa pentru funcţia
´
F, adică este soluţie
pentru jocul
´
G.
Reciproca afirmaţiei se demonstrează în mod similar.
Teorema 8.3.14. Fie k > 0, k ∈ R. Dacă G = (A
1
, A
2
, C) este un joc
matriceal cu matricea de plăţi:
C =
_
_
_
c
11
. . . c
1n
.
.
.
c
m1
. . . c
mn
_
_
_
i
i
“JATEK” — 2005/3/11 — 10:29 — page 227 — #227
i
i
i
i
i
i
8.3. Strategii pure 227
iar
´
G = (A
1
, A
2
,
´
C) este un joc matriceal cu matricea de plăţi:
´
C =
_
_
_
kc
11
. . . kc
1n
.
.
.
kc
m1
. . . kc
mn
_
_
_
atunci ´ w = k w şi orice soluţie a unuia dintre jocuri este soluţie şi pentru
celălalt joc.
Demonstraţia este uşoară, se foloseşte un raţonament analog cu cel uti-
lizat la demonstrarea teoremei 8.3.13.
8.3.4 Strategii pure
Fie G = (A
1
, A
2
, C), un joc matriceal cu C ∈ /
m,n
.
Fie mulţimile de indici I = ¦1, 2, . . . , m¦, J = ¦1, 2, . . . , n¦. X, Y reprez-
intă mulţimea strategiilor jucătorilor.
Ştim că x ∈ R
m
este o strategie pentru jucătorul 1, dacă x
i
≥ 0 pentru
orice i ∈ I şi

m
i=1
x
i
= 1.
Definiţia 8.3.6. O strategie x = (x
1
, . . . , x
m
) a jucătorului 1 pentru care
există i ∈ I, astfel încât x
i
= 1 se numeşte strategie pură pentru jucătorul
1.
Se poate observa că jucătorul 1 posedă m strategii pure care sunt chiar
elementele bazei canonice a spaţiului R
m
, şi în continuare le vom nota cu
e
i
, i ∈ I.
Observaţie. Orice strategie a jucătorului 1 poate fi scrisă ca o combinaţie
liniară a strategiilor pure.
Folosirea unei strategii pure e
i
de către jucătorul 1 exprimă faptul că
jucătorul 1 alege pe tot parcursul jocului aceeaşi acţiune a
1
i
.
În mod analog, definim strategiile pure ale jucătorului 2.
Ştim că y ∈ R
n
este o strategie pentru jucătorul 2, dacă y
j
≥ 0 pentru
orice j ∈ J şi

n
j=1
y
j
= 1.
Definiţia 8.3.7. O strategie y = (y
1
, . . . , y
n
) a jucătorului 2, pentru care
există j ∈ J astfel încât y
j
= 1, se numeşte strategie pură pentru jucătorul
2.
Jucătorul 2 posedă n strategii pure, care sunt chiar elementele bazei cano-
nice a spaţiului R
n
, şi în continuare le vom nota cu e
j
, j ∈ J. Cele n strategii
pure, e
j
, j ∈ J, formează baza canonică în R
n
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 228 — #228
i
i
i
i
i
i
228 8. Jocuri matriceale
Observaţie. Orice strategie a jucătorului 2 este o combinaţie liniară a strate-
giilor pure.
Folosirea unei strategii pure e
j
exprimă faptul că jucătorul 2 optează pe
tot parcursul jocului pentru aceeaşi acţiune a
2
j
.
Următoarele teoreme prezintă proprietăţi ale funcţiei de câştig mediu,
dacă se folosesc strategii pure.
Teorema 8.3.15. Într-un joc matriceal de tipul m n sunt adevărate ur-
mătoarele afirmaţii:
(1) ∀ x ∈ X min
y∈Y
F(x, y) = min
j∈J
F(x, e
j
)
(2) ∀ y ∈ Y max
x∈X
F(x, y) = max
i∈I
F(e
i
, y)
Demonstraţie. Fie x ∈ X o strategie oarecare a jucătorului 1. Orice strategie
y ∈ Y poate fi scrisă sub forma:
y =
n

j=1
y
j
e
j
.
Vom evalua în continuare funcţia de câştig mediu, F(x, y) :
F(x, y) = F
_
_
x,
n

j=1
y
j
e
j
_
_
=
n

j=1
y
j
F(x, e
j
) =
= y
1
F(x, e
1
) + +y
n
F(x, e
n
) ≥ (y
1
+ +y
n
) min
j∈J
F(x, e
j
) =
= min
j∈J
F(x, e
j
)
Deci avem:
F(x, y) ≥ min
j∈J
F(x, e
j
) pentru orice y ∈ Y,
de unde:
min
y∈Y
F(x, y) ≥ min
j∈J
F(x, e
j
). (8.8)
Pe de altă parte, strategia pură e
j
∈ Y pentru orice j ∈ J este strategie şi o
putem scrie:
min
y∈Y
F(x, y) ≤ F(x, e
j
) pentru orice j ∈ J.
Are loc atunci:
min
y∈Y
F(x, y) ≤ min
j∈J
F(x, e
j
) (8.9)
Din (8.8) şi (8.9) rezultă ceea ce trebuia demonstrat.
Analog, se demonstrează afirmaţia 2.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 229 — #229
i
i
i
i
i
i
8.3. Strategii pure 229
Consecinţa 8.3.16. Valoarea unui joc matriceal w verifică relaţia
w ≤ w ≤ w
Demonstraţie. Ştim că:
w = max
x∈X
min
y∈Y
F(x, y) = max
x∈X
min
j∈J
F(x, e
j
) ≥
≥ min
j∈J
F(e
i
, e
j
) = min
j∈J
c
ij
pentru orice i ∈ I. Deci pentru orice i ∈ I avem:
w ≥ min
j∈J
c
ij
şi putem scrie:
w ≥ max
i
min
j
c
ij
= w
În mod analog, putem scrie:
w = min
y∈Y
max
x∈X
F(x, y) = min
y∈Y
max
i∈I
F(e
i
, y) ≤ max
i∈I
F(e
i
, e
j
) =
= max
i∈I
c
ij
, pentru orice j ∈ J
deoarece
w ≥ max
i
c
ij
w ≤ min
j∈J
max
i∈I
c
ij
= w
Acum prezentăm câteva criterii pentru determinarea strategiilor optime.
Teorema 8.3.17. Dacă x
0
este o strategie a jucătorului 1 într-un joc ma-
triceal de tipul mn, cu valoarea w, atunci următoarele afirmaţii sunt echiva-
lente:
1. x
0
este o strategie optimă a jucătorului 1;
2. este adevărată egalitatea:
min
j∈J
F(x
0
, e
j
) = w;
3. pentru orice j ∈ J este îndeplinită inegalitatea
w ≤ F(x
0
, e
j
).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 230 — #230
i
i
i
i
i
i
230 8. Jocuri matriceale
Demonstraţie. Presupunem că x
0
este strategie optimă pentru jucătorul 1 şi
arătăm că are loc relaţia:
min
j∈J
F(x
0
, e
j
) = w
Putem scrie:
min
y∈Y
F(x
0
, y) = max
x∈X
min
y∈Y
F(x, y) = w
folosind teorema 8.3.15 obţinem:
w = max
x∈X
min
y∈Y
F(x, y) = max
x∈X
min
j∈J
F(x, e
j
) = min
j∈J
F(x
0
, e
j
)
şi astfel implicaţia este demonstrată.
Implicaţia 2 ⇒ 3 este evidentă.
Avem de arătat că 3 ⇒ 1.
Vom presupune că pentru orice j ∈ J, este îndeplinită inegalitatea w ≤
F(x
0
, e
j
) şi vom demonstra că, în aceste condiţii, x
0
este soluţie optimă.
Putem scrie:
w ≤ min
j∈J
F(x
0
, e
j
) = min
y∈Y
F(x
0
, y) ≤ max
x∈X
min
y∈Y
F(x, y) = w
min
y∈Y
F(x
0
, y) = max
x∈X
min
y∈Y
F(x, y) ⇒
min
y∈Y
F(x
0
, y) = w
adică x
0
este strategie optimă pentru jucătorul 1.
Teorema 8.3.18. Dacă y
0
este o strategie pentru jucătorul 2 într-un joc
matriceal de tipul m n, iar w este valoarea jocului, atunci următoarele
afirmaţii sunt echivalente:
1. y
0
este strategie optimă pentru jucătorul 2;
2. este adevărată:
w = max F(e
i
, y
0
), i ∈ I;
3. pentru fiecare i ∈ I este îndeplinită inegalitatea F(e
i
, y
0
) ≤ w.
Demonstraţia se face folosind un raţionament analog cu cel folosit la
demonstrarea teoremei 8.3.17.
Teorema 8.3.19. Dacă x
0
este o strategie pentru jucătorul 1 şi y
0
o strategie
a jucătorului 2 într-un joc matriceal de tipul mn, iar w ∈ R, este valoarea
jocului, atunci sunt echivalente următoarele afirmaţii:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 231 — #231
i
i
i
i
i
i
8.4. Principiul dominării 231
1. (x
0
, y
0
) este o soluţie a jocului şi w este valoarea sa;
2. este adevărată relaţia:
max
i∈I
F(e
i
, y
0
) = w = min
j∈J
F(x
0
, e
j
);
3. Pentru fiecare (i, j) ∈ I J avem
F(e
i
, y
0
) ≤ w ≤ F(x
0
, e
j
).
Demonstraţie. Folosim teoremele 8.3.17 ¸şi 8.3.18.
8.4 Principiul dominării
Din matricea de plăţi se poate deduce dacă alegerea anumitor acţiuni este
dezavantajoasă pentru jucători.
Pentru o înţelegere corectă, luăm ca exemplu jocul:
A
1
¸ A
2
a
2
1
a
2
2
a
2
3
a
2
4
a
1
1
3 3 -6 -5
a
1
2
1 2 4 3
a
1
3
0 2 -3 2
Jucătorul 1 urmăreşte obţinerea unui câştig maxim. Dacă alege acţiunea
a
1
3
, atunci se poate observa că toate câştigurile obţinute (scrise în linia a
3-a) sunt mai mici (sau egale) decât câştigurile obţinute cu alegerea acţiunii
a
1
2
(linia a doua). Deci, indiferent de strategia folosită de către jucătorul 2,
jucătorul 1 nu va alege acţiunea a
1
3
, deoarece este dezavantajoasă pentru el.
Astfel putem tăia linia a treia din matricea de plăţi, adică putem elimina
acţiunea a
1
3
din mulţimea acţiunilor A
1
.
Astfel obţinem jocul matriceal:
´
A
1
¸ A
2
a
2
1
a
2
2
a
2
3
a
2
4
a
1
1
3 3 -6 -5
a
1
2
1 2 4 3
Vom analiza matricea de plăţi din punctul de vedere al jucătorului 2.
Acest jucător urmăreşte minimizarea pierderilor. Putem observa că, în
coloana a doua, toate elementele sunt mai mari (sau egale) decât în prima
coloană. Astfel jucătorul 2 nu va alege niciodată acţiunea a
2
2
, deci coloana a
doua poate fi tăiată din matricea de plăţi, acţiunea a
2
2
poate fi eliminată din
mulţimea acţiunilor A
2
.
Astfel se obţine jocul redus:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 232 — #232
i
i
i
i
i
i
232 8. Jocuri matriceale
´
A
1
¸
´
A
2
a
2
1
a
2
3
a
2
4
a
1
1
3 -6 -5
a
1
2
1 4 3
Definiţia 8.4.1.
Fie spaţiul R
n
, n ∈ N

. Considerăm punctele x = (x
1
, . . . , x
n
) ∈ R
n
şi
y = (y
1
, . . . , y
n
) ∈ R
n
. Introducem o relaţie de ordine astfel: x ≤ y şi spunem
că x este dominat de y (sau y domină pe x), dacă x
j
≤ y
j
pentru orice
j = 1, n.
Fie jocul matriceal de tipul mn :
A
1
¸ A
2
a
2
1
a
2
2
. . . a
2
n
a
1
1
c
11
c
12
. . . c
1n
a
1
2
c
21
c
22
. . . c
2n
.
.
.
.
.
.
a
1
m
c
m1
c
m2
. . . c
mn
Putem afirma că o acţiune care corespunde unei linii dominate de o altă
linie este dezavantajoasă pentru jucătorul 1 şi o acţiune care corespunde unei
coloane care domină o altă coloană este dezavantajoasă pentru jucătorul
2. Acţiunile dezavantajoase pentru jucători pot fi eliminate.
Această regulă de reducere a matricei de plăţi este numită principiul
do-minării.
Teoremele următoare prezintă legătura dintre strategiile optime şi princi-
piul dominării.
Teorema 8.4.1. Fie G = (A
1
, A
2
, C) un joc matriceal de tipul mn. Pre-
supunem că linia p a matricei C este dominată de linia q, iar
´
G = (
´
A
1
, A
2
,
´
C)
este un joc matriceal de tipul (m− 1) n, în care
´
A
1
= A
1
¸¦a
1
p
¦ şi în care
matricea
´
C este obţinută prin eliminarea liniei p din matricea C.
Sunt adevărate următoarele afirmaţii:
1. dacă ˆ x
0
= (ˆ x
0
1
, . . . , ˆ x
0
p−1
, ˆ x
0
p+1
, . . . , ˆ x
0
m
) este o strategie optimă pentru
jucătorul 1 în jocul
´
G, atunci x
0
= (ˆ x
0
1
, . . . , ˆ x
0
p−1
, 0, ˆ x
0
p+1
, . . . , ˆ x
0
m
) este
o strategie optimă a jucătorului 1 în jocul G;
2. fiecare strategie optimă a jucătorului 2 în jocul
´
G este optimă pentru
acest jucător şi în jocul G;
3. ´ w = w (valoarea jocului
´
G este egală cu valoarea jocului G).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 233 — #233
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 233
Teorema 8.4.2. Fie G = (A
1
, A
2
, C) un joc matriceal de tipul m n în
care coloana r a matricei C domină coloana s, iar
´
G = (A
1
,
´
A
2
,
´
C) este un
joc matriceal de tipul m (n − 1) în care
´
A
2
= A
2
¸¦a
2
r
¦ şi în care
´
C este
obţinută prin eliminarea coloanei r din C.
Sunt adevărate următoarele afirmaţii:
1. dacă ˆ y
0
= (ˆ y
0
1
, . . . , ˆ y
0
r−1
, ˆ y
0
r+1
, . . . , ˆ y
0
n
) este o strategie optimă a jucă-
torului 2 în jocul
ˆ
G, atunci y
0
= (ˆ y
0
1
, . . . , ˆ y
0
r−1
, 0, ˆ y
0
r+1
, . . . , ˆ y
0
n
) este o
strategie optimă a jucătorului 2 în jocul G;
2. fiecare strategie optimă a jucătorului 1 în jocul
´
G este optimă pentru el
şi în jocul G;
3. ´ w = w.
Cu principiul dominării putem reduce matricea jocului prin eliminarea
acţiunilor dezavantajoase.
8.5 Rezolvarea jocurilor matriceale
8.5.1 Rezolvarea jocurilor matriceale cu punct şa
Teorema 8.5.1. Fie G = (A
1
, A
2
, C) un joc matriceal, C ∈ /
m,n
(R).
Dacă matricea de plăţi admite punct şa,
atunci w = w = w şi sunt adevărate următoarele afirmaţii:
1. c
i
0
j
0
∈ C este un punct şa al matricei C, adică
min
j∈J
c
i
0
j
= w şi max
i∈I
c
ij
0
= w
2. Dacă c
i
0
j
0
∈ C este un punct şa al maticei C, atunci (e
i
0
, e
j
0
) ∈ R
m

R
n
este o soluţie a jocului şi c
i
0
j
0
este valoarea jocului.
Demonstraţie. Din consecinţa 8.3.16 avem:
w ≤ w ≤ w
dar G fiind un joc matriceal cu punct şa, rezultă că w = w, de unde avem
imediat
w = w = w
Acum demonstrăm afirmaţia (1), care este o caracterizare a punctelor şa.
Dacă c
i
0
j
0
∈ C este punct şa, atunci pentru orice (i, j) ∈ I J avem:
c
ij
0
≤ c
i
0
j
0
≤ c
i
0
j
i
i
“JATEK” — 2005/3/11 — 10:29 — page 234 — #234
i
i
i
i
i
i
234 8. Jocuri matriceale
Folosim funcţia f
1
: A
1
A
2
→R definită prin
f(a
1
i
, a
2
j
) = c
ij
pentru orice (a
1
i
, a
2
j
) ∈ A
1
A
2
. Astfel inegalitatea de mai sus o putem
transcrie şi obţinem:
f
1
(a
1
i
, a
2
j
0
) ≤ f
1
(a
1
i
0
, a
2
j
0
) ≤ f
1
(a
1
i
0
, a
2
j
)
pentru oricare (i, j) ∈ I J.
Adică (a
1
i
0
, a
2
j
0
) este punct şa pentru funcţia f
1
relativ la mulţimea A
1

A
2
.
Definim funcţiile:
f
1
(a
1
i
) = min
j∈J
f
1
(a
1
i
, a
2
j
)
not
= α
i
f
2
(a
2
j
) = max
i∈I
f
2
(a
1
i
, a
2
j
)
not
= β
j
Avem:
max
i∈I
f
1
(a
1
i
) = f
1
(a
1
i
0
)
min
j∈J
f
2
(a
2
j
) = f
2
(a
2
j
0
)
Pe de altă parte, avem:
f
1
(a
1
i
0
) = f
2
(a
2
j
0
)
deoarece (a
1
i
0
, a
2
j
0
) este punct şa.
Putem scrie:
min
j∈J
f
1
(a
1
i
0
, a
2
j
) = max α
i
= w
min
j∈J
c
i
0
j
= w
deoarece min
j∈J
f
1
(a
1
i
0
, a
2
j
) = min
j∈J
c
i
0
j
Prin acelaşi raţionament, obţinem:
max
i∈I
c
ij
0
= w
Acum demonstrăm afirmaţia (2).
Dacă c
i
0
j
0
∈ C este punct şa, atunci putem scrie pentru orice (i, j) ∈ IJ
c
ij
0
≤ c
i
0
j
0
≤ c
i
0
j
i
i
“JATEK” — 2005/3/11 — 10:29 — page 235 — #235
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 235
Funcţia de câştig mediu este:
F(x, y) =
m

i=1
n

j=1
c
ij
x
i
y
j
, de unde F(e
i
, e
j
) = c
ij
Pentru orice (i, j) ∈ I J putem scrie:
F(e
i
, e
j
0
) ≤ c
i
0
j
0
≤ F(e
i
0
, e
j
)
Din teorema 8.3.19 rezultă că (e
i
0
, e
j
0
) este soluţia jocului, iar w = c
i
0
j
0
este
valoarea sa. Cu ajutorul teoremei jocurilor matriceale cu punct şa, rezolvăm
după următoarea schemă:
1. analizăm matricea de plăţi C ∈ /
m,n
şi aplicăm principiul dominării
(dacă este posibil);
2. determinăm numerele:
w = max
i∈I
α
i
= max
i∈I
min
j∈J
c
ij
w = min
j∈J
β
j
= min
j∈J
max
i∈I
c
ij
.
Dacă w = w rezultă că matricea de plăţi admite punct şa, valoarea
obţi-nută este valoarea jocului.
(w este maximul minimelor din linii, iar w este minimul maximelor din
coloane)
3. din pasul 2, determinăm i
0
∈ I şi j
0
∈ J astfel încât
α
i
0
= min
j∈J
c
i
0
j
= w
β
j
0
= max
i∈I
c
ij
0
= w
x
0
= e
i
0
şi y
0
= e
j
0
⇒ (x
0
, y
0
) sunt soluţii ale jocului.
Observaţie. Dacă matricea de plăţi admite punct şa, atunci jucătorii folos-
esc strategii pure, ceea ce înseamnă că pe tot parcursul jocului jucătorii
folosesc o singură acţiune.
Probleme rezolvate
1. Considerăm jocul matriceal:
A
1
¸ A
2
a
2
1
a
2
2
a
2
3
a
1
1
0,30 0,25 0,15
a
1
2
0,18 0,14 0,16
a
1
3
0,35 0,22 0,17
a
1
4
0,21 0,16 0,10
i
i
“JATEK” — 2005/3/11 — 10:29 — page 236 — #236
i
i
i
i
i
i
236 8. Jocuri matriceale
Calculăm valorile:
w = max
i
min
j
c
ij
= max(0, 15; 0, 14; 0, 17; 0, 10) = 0, 17
w = min
j
max
i
c
ij
= min(0, 35; 0, 25; 0, 17) = 0, 17
w = w ⇒ w = 0, 17
i
0
= 3 ⇒ x
0
= (0 0 1 0) este strategie optimă pentru jucătorul 1
j
0
= 3 ⇒ y
0
= (0 0 1) este strategie optimă pentru jucătorul 2.
Observaţie. Dacă aplicăm principiul dominării, atunci putem elimina acţi-
unile a
1
1
, a
1
2
şi a
1
4
din mulţimea A
1
şi acţiunile a
2
1
, a
2
2
din mulţimea A
2
. Astfel
obţinem jocul redus:
ˆ
A
1
¸
ˆ
A
2
a
2
3
a
3
1
0,17
Aplicăm teoremele 8.4.1, 8.4.2 şi putem scrie w = 0, 17 x
0
= (0 0 1 0),
y
0
= (0 0 1).
Observaţie. Există jocuri în care matricea de plăţi admite mai multe puncte
şa. În aceste cazuri, jucătorii pot folosi mai multe strategii optime. Strategia
optimă poate fi aleasă folosind un criteriu diferit de cel stabilit în joc.
2. Fie jocul cu matricea:
C =
_
_
_
_
2 9 3 1
7 6 5 8
2 3 4 10
5 6 5 6
_
_
_
_
Calculăm valorile:
w = max(1, 5, 2, 5) = 5
w = min(7, 9, 5, 10) = 5
w = 5
Deoarece w = w putem scrie:
w = c
23
⇒ i
0
= 2 j
0
= 3 ⇒ x
01
= (0, 1, 0, 0), y
01
= (0, 0, 1, 0)
sau:
w = c
43
⇒ i
0
= 4 j
0
= 3 ⇒ x
02
= (0, 0, 0, 1), y
02
= (0, 0, 1, 0)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 237 — #237
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 237
8.5.2 Metode generale de rezolvare a jocurilor matriceale
Rezolvarea jocurilor folosind calculul matriceal
Fie G = (A
1
, A
2
, C) un joc matriceal de tipul m n. Presupunem că
matricea de plăţi nu admite punct şa.
Dacă matricea de plăţi este:
C =
_
_
_
c
11
. . . c
1n
.
.
.
c
m1
. . . c
mn
_
_
_
atunci vom nota cu:
[α] - o submatrice de ordinul r formată din elementele lui C;
[j
r
] = (1 1 . . . 1), o matrice de tipul 1 r, (2 ≤ r ≤ min(m, n));
[α]

- matricea adjunctă a lui [α];
[x] = (x
1
. . . x
m
) un vector, adică matrice de tipul 1 m;
x
0
= (x
0
1
. . . x
0
m
) strategia optimă a jucătorului 1;
[y] = (y
1
. . . y
n
) un vector, adică matrice de tipul 1 n;
y
0
= (y
0
1
. . . y
0
n
) strategia optimă a jucătorului 2;
[˜ x] un vector obţinut din vectorul [x] prin eliminarea elementelor core-
spunzătoare liniilor eliminate din C pentru a obţine [α];
[˜ y] un vector obţinut din vectorul [y] după eliminarea elementelor core-
spunzătoare coloanelor luate din C pentru a obţine [α];
În scopul rezolvării jocurilor cu metoda matriceală trebuie parcurse ur-
mătoarele etape:
1. alegem [α] de ordinul r ≤ 2, (pornim cu r = min(m, n);)
2. calculăm:
[˜ x] =
[j
r
][α]

[j
r
] [α]

[j
r
]
T
not
= [x
r
1
, . . . , x
r
r
]
[˜ y] =
[j
r
] (α
T
)

[j
r
] [α
T
]

[j
r
]
T
not
= [y
r
1
, . . . y
r
r
];
3. dacă există cel puţin un x
r
i
sau y
r
i
, i = 1, n negativ, atunci revenim
la pasul (1) şi vom alege un alt [α];
4. dacă pentru orice i = 1, n avem x
r
i
≥ 0 respectiv y
r
j
≥ 0, j = 1, r
atunci calculăm:
w =
[α]
[j
r
][α]

[j
r
]
T
5. construim vectorii [x] şi [y] din [˜ x], [˜ y] punând 0 în locurile cuvenite;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 238 — #238
i
i
i
i
i
i
238 8. Jocuri matriceale
6. verificăm dacă sunt satisfăcute inegălităţile:
m

i=1
c
ij
x
i
≥ w pentru orice j = 1, n
n

j=1
c
ij
y
j
≤ w pentru orice i = 1, m.
7. Dacă condiţiile din pasul (6) sunt verificate, atunci scriem strategia
optimă a jucătorilor; [x] = x
0
şi [y] = y
0
şi valoarea jocului w.
8. Revenim la pasul (1), până când obţinem toate celelalte strategii op-
time, şi scriem mulţimea strategiilor optime
Problemă rezolvată
1. Fie jocul cu matricea de plăţi:
A
1
¸ A
2
a
2
1
a
2
2
a
2
3
a
1
1
4 0 2
a
1
2
6 7 1
Calculăm valorile w = 1; w = 2. Nu sunt egale, deci matricea nu admite
punct şa.
Luăm r = min(2, 3) = 2 ¸şi alegem:
[α] =
_
4 0
6 7
_
[α]
T
=
_
4 6
0 7
_
[α]

=
_
7 0
−6 4
_
[˜ x] =
[j
r
] [α
T
]

[j
r
] [α]

[j
r
]
T
=
(1 1)
_
7 0
−6 4
_
(1 1)
_
7 0
−6 4
__
1
1
_ =
=
(1 4)
(1 4)
_
1
1
_ =
(1 4)
5
=
_
1
5
4
5
_
[˜ y] =
[j
r
] [α]

[j
r
] [α]

[j
r
]
T
=
(1 1)
_
7 −6
0 4
_
(7 −2)
_
1
1
_ =
(7 −2)
5
=
_
7
5

2
5
_
i
i
“JATEK” — 2005/3/11 — 10:29 — page 239 — #239
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 239
[˜ y] nu are toate componentele pozitive. Trebuie aleasă o altă submulţime
[α].
Fie acum: [α] =
_
0 2
7 1
_
[α]
T
=
_
0 7
2 1
_
[α]

=
_
1 −2
−7 0
_

T
]

=
_
1 −7
−2 0
_
[˜ x] =
[j
r
] [α]

[j
r
][α]

[j
r
]
T
=
(1 1)
_
1 −2
−7 0
_
(−6 −2)
_
1
1
_ =
(−6 −2)
−8
=
_
3
4
1
4
_
[˜ y] =
[j
r
] [α
T
]

[j
r
][α
T
]

[j
r
]
T
=
(1 1)
_
1 −7
−2 0
_
(−1 −7)
_
1
1
_ =
(−1 −7)
−8
=
_
1
8
7
8
_
Cum elementele lui [˜ x], [˜ y] sunt pozitive, rezultă că pot fi componente ale
strategiilor optime.
Calculăm:
w =
det[α]
[j
r
][α]

[j
r
]

=
¸
¸
¸
¸
0 2
7 1
¸
¸
¸
¸
(1 1)
_
1 −2
−7 0
__
1
1
_
=
¸
¸
¸
¸
0 2
7 1
¸
¸
¸
¸
(−6 −2)
_
1
1
_ =
¸
¸
¸
¸
0 2
7 1
¸
¸
¸
¸
−8
=
−14
−8
=
7
4
⇒ w =
7
4
Putem scrie strategiile: [x] =
_
3
4
,
1
4
_
, [y] =
_
0,
1
8
,
7
8
_
şi aplicăm pasul
(6) din algoritm.
Verificăm dacă

2
i=1
c
ij
x
i
≥ w j = 1, 3.
Scriind explicit avem:
_
_
_
c
11
x
1
+c
21
x
2
≥ w
c
12
x
1
+c
22
x
2
≥ w
c
13
x
1
+c
23
x
2
≥ w
adică
_
3
4
1
4
_ _
4 0 2
6 7 1
_

_
7
4
7
4
7
4
_

_
9
2
7
4
7
4
_

_
7
4
7
4
7
4
_
ceea ce
este adevărat.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 240 — #240
i
i
i
i
i
i
240 8. Jocuri matriceale
Acum trebuie verificat dacă:
3

j=1
c
ij
y
j
≤ w i = 1, 2
Putem scrie:
_
4 0 2
6 7 1
_

_
_
_
_
_
_
_
0
1
8
7
8
_
_
_
_
_
_
_

_
_
_
_
7
4
7
4
_
_
_
_

_
_
_
_
7
4
7
4
_
_
_
_

_
_
_
_
7
4
7
4
_
_
_
_
ceea ce este adevărat. Deci avem strategiile optime:
x
0
= [x] =
_
3
4
,
1
4
_
y
0
= [y] =
_
0,
1
8
,
7
8
_
şi valoarea jocului este w =
7
4
.
Algoritmul se termină după ce toate matricile α au fost analizate.
8.5.3 Rezolvarea jocurilor matriceale prin reducere la modele
de optimizare liniară cu restricţii
Fie jocul matriceal G = (A
1
, A
2
, C), C ∈ /
m,n
(R). Strategiile optime
ale jucătorilor sunt soluţiile problemelor de optimizare:
(A)
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
¦F(x) [ x ∈ X¦ → max
x ∈ X
F : X →R, definit prin
F(x) = min
y∈Y
F(x, y)
(B)
_
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
_
¦F(y) [ y ∈ Y ¦ → min
y ∈ Y
F : Y →R, definit prin
F(y) = max
x∈X
F(x, y)
unde X şi Y reprezintă mulţimea strategiilor jucătorilor.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 241 — #241
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 241
Folosind strategiile pure (teorema 8.3.15), aceste probleme pot fi scrise
în următoarea formă echivalentă:
_
_
_
min
j∈J
F(x, e
j
) → max
x ∈ X
(8.10)
şi
_
_
_
max
i∈I
F(e
i
, y) → min
y ∈ Y
(8.11)
Notăm cu s = min
j∈J
F(x, e
j
).
Putem scrie:
s = min
j∈J
_
m

i=1
c
ij
x
i
_

m

i=1
c
ij
x
i

m

i=1
c
ij
x
i
−s, ≥ 0 pentru orice j ∈ J
Notăm cu t = max
i∈I
F(e
i
, y).
Putem scrie:
t = max
i∈I
_
_
n

j=1
c
ij
y
j
_
_

n

j=1
c
ij
y
j

n

j=1
c
ij
y
j
−t, ≤ 0 pentru orice i ∈ I
Astfel avem următoarele probleme echivalente cu cele de mai sus:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
s → max
m

i=1
c
ij
x
i
−s ≥ 0, ∀ j = 1, n
m

i=1
x
i
= 1,
x
i
≥ 0, i = 1, m
(8.12)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 242 — #242
i
i
i
i
i
i
242 8. Jocuri matriceale
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
t → min
n

j=1
c
ij
y
j
−t ≤ 0, ∀ i = 1, m
n

j=1
y
j
= 1,
y
j
≥ 0, j = 1, n
(8.13)
Acum analizăm restricţiile:
m

i=1
c
ij
x
i
−s ≥ 0, ∀ j = 1, n
Presupunem că s > 0 şi împărţim restricţiile cu s. Obţinem astfel:
m

i=1
c
ij
x
i
s
−1 ≥ 0, ∀ j = 1, n
Notăm
x
i
s
= u
i
pentru orice i = 1, m.
Are loc relaţia:
m

i=1
x
i
s
=
m

i=1
u
i

m

i=1
u
i
=
1
s
În mod analog, vom transcrie problema (8.13). Avem:
n

j=1
c
ij
y
j
−t ≤ 0, ∀ i = 1, m.
Presupunem că t > 0 şi împărţim restricţiile cu t. Obţinem astfel:
n

j=1
c
ij
y
j
t
−1 ≤ 0, ∀ i = 1, m
Notăm
y
j
t
= v
j
pentru orice j = 1, n.
Are loc relaţia:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 243 — #243
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 243
n

j=1
y
j
t
=
n

j=1
v
j

n

j=1
v
j
=
1
t
Astfel problemele (8.12), (8.13) sunt echivalente cu:
_
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
_
m

i=1
u
i
→ min
m

i=1
c
ij
u
i
≥ 1, ∀ j = 1, n
u
i
≥ 0, i = 1, m
(8.14)
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
v
j
→ max
n

j=1
c
ij
v
j
≤ 1, ∀ i = 1, m
v
j
≥ 0, j = 1, n
(8.15)
Se poate observa uşor că problemele (8.14), (8.15) formează un cuplu
dual.
Teorema 8.5.2. Dacă w > 0 şi x
0
∈ R
m
, y
0
∈ R
n
sunt soluţiile problemelor
(A) şi (B), atunci u
0
=
x
0
w
şi v
0
=
y
0
w
sunt soluţiile problemelor (8.14) şi
(8.15) şi are loc relaţia:
m

i=1
u
0
i
=
n

j=1
v
0
j
=
1
w
Demonstraţie. Dacă x
0
este soluţia problemei (A) şi y
0
∈ R
n
soluţia proble-
mei (B), atunci (x
0
, w) şi (y
0
, w) sunt soluţiile problemelor (8.12) şi (8.13) şi
putem scrie:
x
0
w
şi
y
0
w
sunt soluţii posibile pentru problemele (8.14) şi (8.15).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 244 — #244
i
i
i
i
i
i
244 8. Jocuri matriceale
Dacă notăm cu u
0
=
x
0
w
, v
0
=
y
0
w
, atunci are loc relaţia:
m

i=1
u
0
i
=
n

j=1
v
0
j
=
1
w
Dar având două soluţii posibile pentru care valorile funcţiilor de scop
coincid, rezultă că acestea sunt soluţii optime.
Adică u
0
şi v
0
sunt soluţii optime pentru (8.14) şi (8.15).
Teorema 8.5.3. Dacă u
0
∈ R
m
şi v
0
∈ R
n
sunt soluţiile problemelor (8.14)
şi (8.15), atunci w =
1

m
i=1
u
0
i
=
1

n
j=1
v
0
j
şi x
0
= wu
0
, y
0
= wv
0
sunt
soluţiile problemelor (A) şi (B).
Demonstraţie. Presupunem că u
0
∈ R
m
şi v
0
∈ R
n
sunt soluţiile problemelor
(8.14) şi (8.15).
Aplicând teorema de dualitate rezultă că

m
i=1
u
0
i
=

n
j=1
v
0
j
. Dacă
notăm: s
0
=
1

m
i=1
u
0
i
atunci (s
0
u
0
, s
0
) este soluţie posibilă pentru prob-
lema (8.12).
Vom demonstra prin reducerea la absurd că este chiar soluţia optimă.
Presupunem că există o soluţie posibilă (x, s) ∈ R
m
R pentru (8.12),
astfel încât s
0
< s.
Dacă este soluţie posibilă, atunci rezultă că u =
x
s
este soluţie posibilă
pentru (8.14). Astfel avem:
m

i=1
u
i
=
1
s
<
1
s
0
=
m

i=1
u
0
i
ceea ce contrazice faptul că u
0
∈ R
m
este soluţie optimă pentru problema
(8.14).
Deci (s
0
u
0
, s
0
) este soluţia optimă a problemei (8.12).
Deci w = s
0
¸şi are loc relaţia:
1
m

i=1
u
0
i
=
1
n

j=1
v
0
j
= w
şi x
0
= s
0
u
0
= wu
0
este soluţia problemei (A). În mod analog, demonstrăm
că y
0
= wv
0
este soluţia problemei (B).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 245 — #245
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 245
Problemă rezolvată
1. Fie jocul matriceal:
A
1
¸ A
2
(1) (2) (3)
(1) -1 1 1
(2) 2 -2 2
(3) 3 3 -3
Calculăm valorile:
w = max¦−1, −2, −3¦ = −1
w = min¦3, 3, 2¦ = 2
Deoarece w ,= w, rezultă că matricea de plăţi nu admite punct şa. Pentru a
determina strategiile optime ale jucătorilor vom utiliza teorema de mai sus.
Vom determina strategiile optime prin intermediul unor modele de optimizare
liniară cu restricţii.
Deoarece w = −1 < 0, prima dată trebuie transformată matricea de
plăţi. Teorema poate fi aplicată numai în ipoteza w > 0 (ceea ce înseamnă
că trebuie să avem w > 0, w > 0). Aplicăm teorema 8.5.2. Vom considera
k = 2 (cel mai mic număr real care, adunat la elementele matricei de plăţi,
ne dă w > 0, w > 0).
Obţinem astfel matricea:
ˆ
C =
_
_
1 3 3
4 0 4
5 5 −1
_
_
pentru care:
w = max¦1, 0, −1¦ = 1
w = min¦5, 5, 4¦ = 4
Aplicăm teorema 8.5.2. Vom putea determina strategiile optime cu aju-
torul soluţiilor optime ale modelelor:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(u) = u
1
+u
2
+u
3
→ min
u
1
+ 4u
2
+ 5u
3
≥ 1
3u
1
+ 5u
3
≥ 1
3u
1
+ 4u
2
−u
3
≥ 1
u
1
, u
2
, u
3
≥ 0
(8.16)
şi
i
i
“JATEK” — 2005/3/11 — 10:29 — page 246 — #246
i
i
i
i
i
i
246 8. Jocuri matriceale
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(v) = v
1
+v
2
+v
3
→ max
v
1
+ 3v
2
+ 3v
3
≤ 1
4v
1
+ 4v
3
≤ 1
5v
1
+ 5v
2
−v
3
≤ 1
v
1
, v
2
, v
3
≥ 0
(8.17)
Primul model se poate rezolva cu algoritmul simplex dual, iar problema
a doua cu algoritmul simplex primal.
Vom rezolva problema (8.16).
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(u) = u
1
+u
2
+u
3
→ min
−u
1
−4u
2
−5u
3
+u
4
= −1
−3u
1
−5u
3
+u
5
= −1
−3u
1
−4u
2
+u
3
+u
6
= −1
u
1
, . . . , u
6
≥ 0
A =
_
_
_
_
−1 −4 −5 1 0 0
−3 0 −5 0 1 0
−3 −4 1 0 0 1
A
1
A
2
A
3
A
4
A
5
A
6
_
_
_
_
B = (A
4
, A
5
, A
6
) b =
_
_
−1
−1
−1
_
_
1 A
4
A
5
A
6
∗ ∗ ∗
A
1
-1 -3 -3 -1 9 1
A
2
-4 0 -4 -1 10 1/4
A
3
-5 -5 1 -1 11 1/5
∗ -1 -1 -1 0 4 ∗
2 A
3
A
5
A
6
∗ ∗ ∗
A
1
1/5 -2 -16/5 -4/5 34/5 1/4
A
2
4/5 4 -24/5 -1/5 6/5 1/24
A
4
-1/5 -1 1/5 -1/5 11/5 -
∗ 1/5 0 -6/5 1/5 9/5 ∗
3 A
3
A
5
A
2
∗ ∗ ∗
A
1
-1/3 -14/3 2/3 -2/3 6 1/7
A
6
1/6 5/6 -5/24 -1/24 1/4 -
A
4
-1/6 -5/6 -1/24 -5/24 9/4 1/4
∗ 0 -1 1/4 1/4 3/2 ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 247 — #247
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 247
4 A
3
A
1
A
2
∗ ∗ ∗
A
5
-1/14 -3/14 1/7 -1/7 9/7
A
6
3/28 -5/28 -5/56 -9/56 37/28
A
4
-3/28 5/28 -9/56 -5/56 33/28
∗ 1/14 3/14 3/28 11/28 3/14 ∗
Soluţia optimă este: u
0
=
_
3
14
,
3
28
,
1
14
_
.
Modelul(8.17) este duala problemei rezolvate. Astfel, din ultimul tabel,
putem citi soluţiile dualei: v
0
=
_
5
56
,
1
7
,
9
56
_
.
Valoarea jocului (A
1
, A
2
,
ˆ
C) este:
ˆ w =
1

3
i=1
u
0
i
=
1
d
0
=
28
11
x
0
= ˆ wu
0
⇒ x
0
=
_
3
14

28
11
,
3
28

28
11
,
1
14

28
11
_
=
_
6
11
,
3
11
,
2
11
_
y
0
= ˆ w v
0
⇒ y
0
=
_
5
22
,
4
11
,
9
22
_
Valoarea jocului iniţial este:
w = ˆ w −2 =
28
11
−2 =
6
11
Jocul nu este echitabil.
2. Fie jocul matriceal cu matricea de plăţi:
C =
_
_
−2 3 −6 −5
3 4 −5 6
−2 3 4 7
_
_
Aplicăm principiul dominării. Din punctul de vedere al jucătorului 1, prima
acţiune nu este avantajoasă. Prin urmare, putem elimina prima linie din
matricea de plăţi. Se poate observa uşor că pentru jucătorul 2 nu sunt
avantajoase acţiunile a
2
1
şi a
2
4
, ceea ce înseamnă că a doua coloană şi a patra
pot fi eliminate.
Astfel avem de rezolvat jocul redus cu matricea de plăţi:
C =
_
3 −5
−2 4
_
w = max¦−5, −2¦ = −2
w = min¦3, 4¦ = 3
i
i
“JATEK” — 2005/3/11 — 10:29 — page 248 — #248
i
i
i
i
i
i
248 8. Jocuri matriceale
Luăm k = 3 şi obţinem:
ˆ
C =
_
6 −2
1 7
_
Modelele liniare asociate matricei de plăţi sunt:
_
¸
¸
_
¸
¸
_
u
1
+u
2
→ min
6u
1
+u
2
≥ 1
−2u
1
+ 7u
2
≥ 1
u
i
≥ 0, i = 1, 2
_
¸
¸
_
¸
¸
_
v
1
+v
2
→ max
6v
1
−2v
2
≤ 1
v
1
+ 7v
2
≤ 1
v
1
, v
2
≥ 0
Vom rezolva primul model liniar.
_
¸
¸
_
¸
¸
_
u
1
+u
2
→ min
−6u
1
−u
2
+u
3
= −1
2u
1
−7u
2
+u
4
= −1
u
i
≥ 0, i = 1, 4
A
1
A
2
A
3
A
4
A =
_
−6 −1 1 0
2 −7 0 1
_
Aplicăm algoritmul simplex dual:
1 A
3
A
4
∗ ∗ ∗
A
1
-6 2 -1 6 1/6
A
2
-1 -7 -1 10 1
∗ -1 -1 0 3 ∗
2 A
1
A
4
∗ ∗ ∗
A
3
-1/6 2/6 -1/6 1 -
A
2
1/6 -44/6 -5/6 9 5/44
∗ 1/6 -8/6 1/6 2 ∗
3 A
1
A
2
∗ ∗ ∗
A
3
-7/44 -2/44 -9/44 62/44
A
4
1/44 -6/44 -5/44 54/44
∗ 6/44 8/44 14/44 16/44 ∗
i
i
“JATEK” — 2005/3/11 — 10:29 — page 249 — #249
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 249
Soluţia optimă este u
0
= (6/44 8/44). Valoarea jocului
ˆ
C este: ˆ w =
1
d
0
=
44
14
.
t
1
→ e
1
= A
3
,∈ B
0
t
1
= −
9
44
t
2
→ e
2
= A
4
,∈ B
0
t
2
= −
5
44
Deci soluţia celei de-a doua probleme este: v
0
= (9/44, 5/44).
Strategiile optime ale jucătorilor sunt:
x
0
= u
0
ˆ w = (6/14, 8/14) = (3/7, 4/7)
y
0
= v
0
ˆ w = (9/14, 5/14)
Valoarea jocului iniţial este:
w =
44
14
−3 =
44 −42
14
=
2
14
=
1
7
.
Deoarece am aplicat la început principiul dominării strategiile optime ale
jucătorilor, în jocul considerat sunt:
x
0
= (0 3/7 4/7), y
0
= (9/14 0 5/14 0).
8.5.4 Rezolvarea jocurilor de tipul 2 m, (n 2)
Fie jocul G = (A
1
, A
2
, C) C ∈ /
2,n
R.
În acest caz putem scrie:
A
1
¸ A
2
a
2
1
. . . a
2
j
. . . a
2
n
a
1
1
c
11
. . . c
1j
. . . c
1n
a
1
2
c
21
. . . c
2j
. . . c
2n
Strategia optimă a jucătorului 1 este dată de:
max
x∈X
min
y∈Y
F(x, y) = max
x∈X
min
j∈J
F(x, e
j
)
Putem scrie:
F(x, e
j
) =
2

i=1
c
ij
x
i
= c
1j
x
1
+c
2j
x
2
i
i
“JATEK” — 2005/3/11 — 10:29 — page 250 — #250
i
i
i
i
i
i
250 8. Jocuri matriceale
Deoarece mulţimea strategiilor jucătorului 1 este X = ¦x ∈ R
2
+
[ x
1
+x
2
= 1¦,
orice strategie x ∈ X poate fi scrisă ca x = (1 −s, s), s ∈ [0, 1].
Astfel avem:
min
j∈J
F(x, e
j
) = min
j∈J
¦c
1j
x
1
+c
2j
x
2
¦ =
= min
j∈J
¦c
1j
(1 −s) +c
2j
s¦ =
= min
j∈J
¦(c
2j
−c
1j
)s +c
1j
¦
Fie funcţia f : [0, 1] →R, definită prin:
f(s) = min
j∈J
¦c
2j
−c
1j
)s +c
1j
¦ ∀ s ∈ [0, 1]
Astfel strategia optimă a jucătorului 1 este soluţia problemei:
¦f(s) [ s ∈ [0, 1]¦ → max
Dacă s
0
∈ [0, 1] este soluţia problemei, rezultă că x
0
= (1 − s
0
, s
0
) este
strategia optimă pentru jucătorul 1 şi w = f(s
0
) este valoarea jocului.
Considerăm funcţiile afine:
ϕ
j
: [0, 1] →R, j = 1, n
definite prin:
ϕ
1
(s) = (c
21
−c
11
)s +c
11
ϕ
2
(s) = (c
22
−c
12
)s +c
12
.
.
.
ϕ
n
(s) = (c
2n
−c
1n
)s +c
1n
(8.18)
Cu ajutorul acestor funcţii, vom determina soluţia optimă a problemei
de maximizare.
Reprezentăm funcţiile ϕ
j
, j = 1, n în acelaşi sistem de coordonate, luând
punctele ϕ
j
(0) = c
1j
şi
ϕ
j
(1) = c
2j
, j = 1, n.
Folosind graficul, determinăm funcţia f(s). (vezi segmentele îngroşate).
Calculăm valoarea lui s
0
∈ [0, 1], ştiind că trebuie să avem f(s
0
) =
max
s∈[0,1]
f(s).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 251 — #251
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 251
c
2j
c
1j
1 0
M
p
M
q
Aşadar avem de calculat strategia optimă a jucătorului 2. y
0
∈ R
n
este
strategie optimă, dacă verifică condiţiile:
_
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
_
F(e
i
, y
0
) ≤ w, ∀ i ∈ I
y
0
j
≥ 0, ∀ j = 1, n
n

j=1
y
0
j
= 1

_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
c
ij
y
0
j
≤ w, ∀ i ∈ I
y
0
j
≥ 0, j = 1, n
n

j=1
y
0
j
= 1
(8.19)
Cazul I.
Presupunem că funcţia f admite un singur punct de maxim relativ la
[0, 1] şi s
0
∈ (0, 1).
Atunci, evident, există două funcţii afine ϕ
p
, ϕ
q
a căror intersecţie este
punctul s
0
.
s
0
= ϕ
p
∩ ϕ
q
. Alegem cele două funcţii astfel încât ϕ
p
să fie strict de-
screscătoare, ϕ
q
să fie strict crescătoare.
Există t
0
∈ [0, 1], astfel încât:
w = (1 −t
0
)c
1q
+t
0
c
1p
(8.20)
Ştim că:
ϕ
p
(s
0
) = ϕ
q
(s
0
) = w
ϕ
p
(s
0
) = (c
2p
−c
1p
)s
0
+c
1p
ϕ
q
(s
0
) = (c
2q
−c
1q
)s
0
+c
1q
i
i
“JATEK” — 2005/3/11 — 10:29 — page 252 — #252
i
i
i
i
i
i
252 8. Jocuri matriceale
s
0
c
2p
+ (1 −s
0
)c
1p
= w ⇒
c
1p
=
w −s
0
c
2p
1 −s
0
În mod analog, din ϕ
q
(s
0
) = w deducem:
c
1q
=
w −s
0
c
2q
1 −s
0
Înlocuind în relaţia (8.20), obţinem:
w = (1 −t
0
)
w −s
0
c
2p
1 −s
0
+t
0
w −s
0
c
2q
1 −s
0
=
=
w −wt
0
−s
0
c
2p
+t
0
s
0
c
2p
+t
0
w −t
0
s
0
c
2q
1 −s
0
=
=
w −s
0
c
2p
(1 −t
0
) −t
0
s
0
c
2q
1 −s
0
Avem de aici relaţia:
w(1 −s
0
) = w −s
0
c
2p
(1 −t
0
) −t
0
s
0
c
2q
w −ws
0
= w −s
0
c
2p
(1 −t
0
) −t
0
s
0
c
2q
/
Împărţind relaţia de mai sus cu −s
0
, obţinem:
w = c
2p
(1 −t
0
) +t
0
c
2q
(8.21)
Din (8.20) şi (8.21) rezultă că punctul y
0
= (1−t
0
)e
p
+t
0
e
q
∈ R
n
verifică
sistemul (8.19). Prin urmare este strategie optimă pentru jucătorul 2.
Cazul II. Dacă funcţia f are mai multe puncte de maxim s
0
∈ (0, 1),
atunci rezultă că există p ∈ ¦1, . . . , n¦, astfel încât ϕ
p
(s) = w, pentru oricare
s ∈ [0, 1], rezultă că y
0
= e
p
∈ R
n
este strategia optimă a jucătorului 2.
Cazul III. Dacă s
0
este punct de maxim pentru funcţia f, atunci alegem
p ∈ ¦1, . . . , n¦, astfel încât ϕ
p
(0) = w şi ϕ
p
(1) ≤ w ⇔ c
1p
= w şi c
2p
≤ w ⇒
y
0
= e
p
∈ R
n
este strategie optimă pentru jucătorul 2.
Cazul IV. Dacă s
0
= 1 este punct de maxim pentru f, atunci alegem
p ∈ ¦1, . . . , n¦, astfel încât ϕ
p
(1) = w, ϕ
p
(0) ≤ w ⇔ ϕ
1p
≤ w şi c
2p
= w ⇒
y
0
= e
p
∈ R
n
este strategie optimă pentru jucătorul 2.
Problemă rezolvată
Fie jocul matriceal:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 253 — #253
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 253
A
1
¸ A
2
a
2
1
a
2
2
a
2
3
a
2
4
a
1
1
2 9 6 3
a
1
2
8 3 7 5
Funcţiile afine asociate acestui joc sunt ϕ
j
= [0, 1] → R, j = 1, 4 definite
prin:
ϕ
1
(s) = 6s + 2
ϕ
2
(s) = −6s + 9
ϕ
3
(s) = s + 6
ϕ
4
(s) = 2s + 3
Reprezentând funcţiile, obţinem:
8
7
5
3
9
6
3
2
0 s
0
M
1
M
3
M
4
M
2
1
f
Acum se vede uşor funcţia f, şi avem:
¦s
0
¦ = ϕ
2
∩ ϕ
4
de unde putem scrie:
−6s + 9 = 2s + 3
−8s = −6
deci:
s
0
=
3
4
i
i
“JATEK” — 2005/3/11 — 10:29 — page 254 — #254
i
i
i
i
i
i
254 8. Jocuri matriceale
astfel strategia optimă a jucătorului 1 este x
0
=
_
1
4
,
3
4
_
, iar valoarea jocului
este f(s
0
) =
9
2
= w.
Deoarece ϕ
p
trebuie să fie strict descrescătoare, rezultă că p = 2, iar ϕ
q
fiind strict crescătoare, rezultă că q = 4. Strategia optimă a jucătorului 2 va
fi astfel:
y
0
= (1 −t
0
)e
2
+t
0
e
4
t
0
putând fi determinată din relaţia (8.21):
w = c
2p
(1 −t
0
) +c
2q
t
0
Putem scrie:
w = c
22
(1 −t
0
) +c
2q
t
0

w = 3(1 −t
0
) + 5t
0
⇒ 3 + 2t
0
=
9
2
t
0
=
3
4
Deci strategia optimă a jucătorului 2 este:
y
0
=
1
4
e
2
+
3
4
e
4
=
1
4
(0 1 0 0) +
3
4
(0 0 0 1)
y
0
=
_
0,
1
4
, 0,
3
4
_
Problemă rezolvată
Banda de proiectile a unui tun de bord de aviaţie se poate încărca cu
proiectile de două tipuri: P
1
şi P
2
.
Inamicul dispune de patru tipuri de avioane T
1
, T
2
, T
3
şi T
4
.
Probabilitatea de distrugere a fiecărui tip de avion, prin cele două tipuri
de proiectile, este prezentată în tabelul:
T
1
T
2
T
3
T
4
P
1
0,2 0,9 0,6 0,3
P
2
0,8 0,3 0,7 0,5
Se cere: să se determine proporţia de proiectile P
1
, P
2
cu care trebuie să
se încarce banda tunului de bord pentru a produce inamicului un maximum
de pierderi.
Avem de rezolvat de fapt jocul:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 255 — #255
i
i
i
i
i
i
8.5. Rezolvarea jocurilor matriceale 255
A
1
A
2
a
2
1
a
2
2
a
2
3
a
2
4
a
1
1
2 9 6 3
a
1
2
8 3 7 5
Soluţia jocului este: x
0
= (1 − s
0
, s
0
) =
_
1
4
,
3
4
_
, strategia optimă pen-
tru jucătorul 1. ˆ w =
9
2
este valoarea jocului din care rezultă că valoarea
jocului iniţial este w =
9
20
= 0, 45, adică 1/4 din numărul proiectilelor din
bandă să fie P
1
şi 3/4 din numărul proiectilelor din bandă să fie P
2
. Astfel
probabilitatea de distrugere a avioanelor inamice este cel puţin 0,45.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 256 — #256
i
i
i
i
i
i
256 8. Jocuri matriceale
i
i
“JATEK” — 2005/3/11 — 10:29 — page 257 — #257
i
i
i
i
i
i
Capitolul 9
Metoda punctelor interioare
În acest capitol se va prezenta o analiză din punct de vedere com-
putaţional a metodelor de rezolvare numerică a problemelor de optimizare
liniară cu res-tricţii.
Pornind de la studiul eficacităţii şi a deficienţei algoritmului simplex vor
fi prezentate noile posibilităţi ale metodei punctelor interioare (IPM).
Apariţia şi dezvoltarea metodei IPM este o necesitate practică.
Rezolvarea modelelor liniare de mari dimensiuni într-un timp cât mai
scurt a devenit o prioritate a cercetării în acest domeniu, după 1980.
9.1 Introducere
Problema generală de programare liniară a fost studiată, prima dată în
1947, de către G.B. Dantzig, Marshall Wood şi de asociaţii lor de la De-
partamentul Forţelor Aeriene (U.S. Department of Air Force). Acest depar-
tament a organizat un grup de cercetare sub denumirea SCOOP (Scientific
Computation of Optimum Programs) a cărui contribuţie foarte importantă
a fost dezvoltarea formală şi aplicarea modelelor liniare în diferite domenii.
Aceste aplicaţii timpurii ale modelelor liniare s-au concetrat pe trei mari di-
recţii: aplicaţii militare generate de proiectul SCOOP, aplicaţii economice în
domeniul industrial bazate pe modele input-output Leontif şi probleme care
abordează relaţia dintre jocurile cu doi jucători, cu sumă nulă şi modele de
programare liniară.
În ianuarie 1952, a fost obţinută, pentru prima dată, soluţia unui model
de programare liniară pe un calculator performant (National Bureau of Stan-
dards Computer SEAC).
257
i
i
“JATEK” — 2005/3/11 — 10:29 — page 258 — #258
i
i
i
i
i
i
258 9. Metoda punctelor interioare
Metoda de rezolvare s-a bazat pe procedura simplex. Necesitatea re-
zolvării unor modele de mari dimensiuni i-a obligat pe cercetători să realizeze
proceduri complexe de rezolvare, sisteme de programare matematică (MPS).
Metoda simplex este elementul computaţional central al sistemului MPS
şi se aplică, în general, cu succes în practică. Pentru valori relativi mari ale
lui m şi n, metoda devine ineficientă.
În acest sens, Smale (1983), K.H. Borgwardt (1982), V. Klee şi G.J. Minty
(1972) au construit clase de probleme spre a arăta deficienţa algoritmului.
AV. Klee şi G.J. Minty [Kle], în 1972, arată că algoritmul simplex este
un algoritm de complexitate exponenţială:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f(x) = −100x
4
−10x
5
−x
6
→ min
x
1
+x
4
= 1
x
2
+ 20x
4
+x
5
= 100
x
3
+ 200x
4
+ 20x
5
+x
6
= 10000
x ≥ 0
(9.1)
Rezolvând cu algoritmul simplex primal, problema considerată se va ob-
serva că, la fiecare iteraţie, alegerea elementului pivot poate fi efectuată în
mod unic. Soluţia optimă se va obţine după 7 iteraţii.
Acest rezultat poate fi generalizat. Considerăm problema:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
f(x) = −10
n−1
x
n+1
−10
n−2
x
n+2
−x
2n
→ min
x
1
+x
n+1
= 1
x
2
+ 2 10x
n+1
+x
n+2
= 100
x
3
+ 2 10
2
x
n+1
+ 2 10x
n+2
+x
n+3
= 100
2
.
.
.
x
n
+ 2 10
n−1
x
n+1
+ 2 10
n−2
x
n+2
+ +x
2n
= 100
n−1
xj ≥ 0, j = 1, 2n
(9.2)
Soluţia optimă a problemei cu n restricţii şi 2n variabile (în forma stan-
dard) se obţine după 2
n
−1 iteraţii. Deoarece 2
n
creşte mai repede decât orice
polinom P(n), exemplul dat arată că nu există o margine polinomială pentru
numărul iteraţiilor. Algoritmul simplex este de complexitate exponenţială.
Alte exemple, privind eficienţa computaţională a algoritmului, pot fi
găsite în [Pap], [Len], [Dob].
Complexitatea algoritmului din punct de vedere computaţional este
prezentată detaliat - de exemplu, în lucrările lui Papadimitriou, Stieglitz
(1982), Lenstra (1982), R.M. Karp (1975), J. Telgen (1979), S. Smale (1983).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 259 — #259
i
i
i
i
i
i
9.1. Metoda Karmarkar 259
Deşi algoritmul simplex este de complexitate exponenţială, se comportă
extraordinar de bine în practică şi majoritatea problemelor pot fi rezolvate
cu acesta. Există lucrări care analizează algoritmul simplex chiar din acest
punct de vedere: "Dacă nu este algoritm de complexitate polinomială, de ce
conduce la rezultat în majoritatea cazurilor?"
După 1970, apare o nouă direcţie privind rezolvarea modelelor liniare.
În 1979, matematicianul rus Leonid Khachiyan [Kha] publică un algoritm
cu timp polinomial pentru rezolvarea modelelor liniare. Algoritmul diferă de
metoda simplex, folosind un şir de elipsoide care conduc spre soluţia op-
timă a modelului. Din punct de vedere teoretic, rezultatul este semnificativ,
dar practic nu înlocuieşte algoritmul simplex (v. E.L. Lawler (1980), M.W.
Browne (1979)).
În 1984, Karmarkar [Karm] publică un alt algoritm care foloseşte sfere şi
geometrie proiectivă pentru construirea unui şir de puncte care converg către
soluţia optimă a problemei de optimizare liniară cu restricţii.
Metoda lui Karmarkar a fost utilizată de către Comanda Militară ame-
ricană a podurilor aeriene (Military Airlift Command) în scopul deter-
minării frecvenţei zborurilor şi tipului de aeronavă necesar pentru planificarea
zborurilor. Modelul liniar obţinut pentru studiul acestei probleme avea 150
000 de variabile şi 12 000 de restricţii şi s-a obţinut soluţia într-o oră.
Prin algoritmul simplex, o problemă cu o structură asemănătoare formată
din 36 000 de variabile şi 10 000 de restricţii este rezolvată în 4 ore.
Testele preliminare au arătat că algoritmul Karmarkar este de 50 de ori
mai rapid decât algoritmul simplex în cazul problemelor de mari dimensiuni.
Metoda punctelor interioare a fost introdusă în 1960 de Fiacco şi Mc-
Cormick, dar ulterior nu a mai fost utilizată. Karmakar a readus în centrul
atenţiei această metodă(1984). În prezent, sunt sute de variante ale metodei
punctelor interioare şi au fost publicate peste 2000 de articole. Pentru studiul
acestei teorii se recomandă [Meg],[Nes], [Roo], [Gje], [Wri].
O descriere riguroasă şi detaliată a metodei lui Karmarkar poate fi găsită
în lucrările lui Hooker (1986), Parker, Rardin (1988) şi Murty (1989).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 260 — #260
i
i
i
i
i
i
260 9. Metoda punctelor interioare
9.2 Metoda Karmarkar
Lucrarea lui Karmarkar şi-a dat girul pentru multe cercetări. După pu-
blicarea acestei metode, s-a iniţiat o intensă muncă de cercetare a algoritmilor
pentru modele de programare liniară. Algoritmul Khachiyan şi Karmarkar
sunt algoritmi de punct interior (IPM) şi reprezintă o abordare fundamental
diferită de algoritmul simplex (S. Wright (2002)).
Sunt peste 2000 de lucrări care prezintă sute de variante ale metodei
punctelor interioare.
În continuare, prezentăm metoda lui Karmarkar. În prezent sunt variante
ale metodei care sunt mult mai eficiente, însă noi vom prezenta acest algoritm
pentru tehnicile interesante şi ideile originale ale metodei şi ale posibilităţilor
(acestei tehnici).
Metoda Karmarkar poate fi aplicată modelelor liniare în următoarea
formă de prezentare:
(KF)
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = (c, x) → min
Ax = 0
x
1
+ +x
n
= 1
x ≥ 0
unde A este o matrice de tip m n şi c = (c
1
, . . . , c
n
) un vector din R
n
,
reprezentând coeficienţii funcţiei de scop.
În mod necesar, modelul liniar trebuie să verifice condiţiile:
x
0
=
_
1
n
, . . . ,
1
n
_
∈ S,
şi valoarea optimă a funcţiei de scop trebuie să fie:
f
min
= 0
unde S este mulţimea soluţiilor posibile.
La prima vedere, forma (KF) pare o formă particulară, dar vom arăta în
continuare că orice problemă de optimizare liniară poate fi adusă la această
formă de prezentare.
În acest scop, considerăm un model de optimizare liniară cu restricţii în
forma standard:
_
¸
_
¸
_
f(x) = (x, c) → min
Ax ≤ b
x ≥ 0
(9.3)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 261 — #261
i
i
i
i
i
i
9.1. Metoda Karmarkar 261
şi duala acestei probleme:
_
¸
_
¸
_
g(y) = (y, b) → max
A
T
y ≥ c
y ≥ 0
(9.4)
unde f : R
n
→R, g : R
n
→R, A ∈ /
m,n
, c ∈ R
n
, b ∈ R
m
.
Utilizând problemele (9.3), (9.4) construim o nouă problemă de progra-
mare liniară:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
h(x, y) = f(x) −g(y) → min
Ax ≤ b
A
T
y ≥ c
x ≥ 0
y ≥ 0
(9.5)
Funcţia de scop este diferenţa funcţiilor de scop ale cuplului dual. Funcţia
h este diferenţa funcţiilor de scop al cuplului dual, cunoscut în literatura de
specialitate ca "duality gap". Bineînţeles dacă (x
0
, y
0
) este soluţia optimă a
problemei (9.5), atunci vom avea h
min
= 0 şi x
0
va fi soluţie optimă pentru
problema (9.3). Astfel este suficient să se rezolve doar problema (9.5).
În scopul reducerii problemei (9.5) la forma standard, vor fi introduse
variabile auxiliare u ∈ R
m
+
, şi v ∈ R
n
+
.
Putem scrie:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
h → min
Ax +u = b
A
T
y −v = c
x ≥ 0, y ≥ 0, u ≥ 0, v ≥ 0
(9.6)
Fie M = max
i,j
¦b
i
, c
j
¦. Se poate introduce o nouă restricţie şi vom putea
scrie:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h → min
Ax +u = b
A
T
y −v = c
n

i=1
x
i
+
m

j=1
y
j
+
m

i=1
u
i
+
n

j=1
v
j
≤ 2(n +m)M
x ≥ 0, y ≥ 0, u ≥ 0, v ≥ 0
(9.7)
În continuare, se va introduce o nouă variabilă notată cu w
1
(w
1
≥ 0),
necesară pentru păstrarea formei standard a problemei. Se va considera o
variabilă notată cu w
2
, astfel încât w
2
= 1.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 262 — #262
i
i
i
i
i
i
262 9. Metoda punctelor interioare
Cu notaţiile introduse se obţine modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(z) → min
Ax +u −bw
2
= 0
A
T
y −v −cw
2
= 0
n

i=1
x
i
+
m

j=1
y
j
+
m

i=1
u
i
+
n

j=1
v
j
+w
1
−2(n +m)Mw
2
= 0
n

i=1
x
i
+
m

j=1
y
j
+
m

i=1
u
i
+
n

j=1
v
j
+w
1
+w
2
= 2(n +m)M + 1
x ≥ 0, y ≥ 0, u ≥ 0, v ≥ 0
(9.8)
Folosind substituţiile:
x
i
= (M + 1)x

i
, i = 1, n
y
j
= (M + 1)y

j
, j = 1, m
u
i
= (M + 1)u

i
, i = 1, n
v
j
= (M + 1)v

j
, j = 1, n
w
l
= (M + 1)w

l
, l = 1, 2
vom obţine:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(z

) → min
Ax

+u

−bw

2
= 0
A
T
y

−v

−cw

2
= 0
n

i=1
x

1
+
m

j=1
y

j
+
m

j=1
u

j
+
n

j=1
v

i
−2(n +m)Mw

2
= 0
n

i=1
x

i
+
m

j=1
y

j
+
m

j=1
u

j
+
n

i=1
v

i
+w

1
+w

2
= 1
x

≥ 0, y

≥ 0, u

≥ 0, v

≥ 0, w

≥ 0
(9.9)
ceea ce este chiar forma (KF) a problemei de optimizare liniară cu restricţii
(9.3).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 263 — #263
i
i
i
i
i
i
9.1. Metoda Karmarkar 263
În cadrul metodei Karmarkar, următoarele trei noţiuni joacă un rol es-
enţial:
(1.) proiecţia unui vector dată pe mulţimea punctelor care verifică res-
tricţiile Ax = 0;
(2.) aplicarea transformării centrale a lui Karmarkar asupra soluţiei posi-
bile x
k
∈ S, căreia i se asociază punctul T((x
1
, . . . , x
n
)
T
; x
k
)
not
= (y
1
, . . . , y
n
)
T
,
unde:
y
j
=
x
j
x
k
j
n

r=1
x
r
x
k
r
, j = 1, n;
Pentru a obţine un nou punct x
k+1
cu transformarea centrală, restricţia:
n

i=1
x

i
+
m

j=1
y

j
+
m

j=1
u

j
+
n

i=1
v

i
+w

1
+w

2
= 1
este esenţială în determinarea punctului y
k+1
.
Cum se calculează soluţia îmbunătăţită: vectorul x
k+1
? Folosind trans-
formarea centrală:
T((x
1
, . . . , x
n
)
T
, x
k
) = (y
1
, . . . , y
n
)
T
şi având vectorul y
k+1
, putem scrie:
x
k+1
= T
−1
(y
k+1
, x
k
).
Se poate arăta că:
x
k+1
j
=
x
k
j
y
j
n

r=1
x
k
r
y
r
, j = 1, n.
Observaţie. În cazul în care n = 3 vom arăta cum se obţine în această
i
i
“JATEK” — 2005/3/11 — 10:29 — page 264 — #264
i
i
i
i
i
i
264 9. Metoda punctelor interioare
formă vectorul x
k+1
. Pentru k = 0, putem scrie:
y
j
=
x
j
x
0
j
3

r=1
x
r
x
0
r

(TC)
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
y
1
=
x
1
x
0
1
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
y
2
=
x
2
x
0
2
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
y
3
=
x
3
x
0
3
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
Se verifică uşor că are loc relaţia y
1
+y
2
+y
3
= 1. Ecuaţiile le vom înmulţi
pe rând cu x
0
1
, x
0
2
respectiv x
0
3
. Putem scrie:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
y
1
=
x
1
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
y
2
=
x
2
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
y
3
=
x
3
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
Adunăm ecuaţiile şi obţinem:
y
1
x
0
1
+y
2
x
0
2
+y
3
x
0
3
=
x
1
+x
2
+x
3
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
. (9.10)
Deoarece x
1
+ x
2
+ x
3
= 1, iar din fiecare ecuaţie a sistemului (TC) putem
scrie:
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
=
x
1
x
0
1

1
y
1
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
=
x
2
x
0
2

1
y
2
x
1
x
0
1
+
x
2
x
0
2
+
x
3
x
0
3
=
x
3
x
0
3

1
y
3
i
i
“JATEK” — 2005/3/11 — 10:29 — page 265 — #265
i
i
i
i
i
i
9.1. Metoda Karmarkar 265
Înlocuind, pe rând, obţinem:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
y
1
x
0
1
+y
2
x
0
2
+y
3
x
0
3
=
1
x
1
x
0
1

1
y
1
y
1
x
0
1
+y
2
x
0
2
+y
3
x
0
3
=
1
x
2
x
0
2

1
y
2
y
1
x
0
1
+y
2
x
0
2
+y
3
x
0
3
=
1
x
3
x
0
3

1
y
3
de unde, pe rând, avem:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
x
1
=
x
0
1
y
1
x
0
1
y
1
+x
0
2
y
2
+x
0
3
y
3
x
2
=
x
0
2
y
2
x
0
1
y
1
+x
0
2
y
2
+x
0
3
y
3
x
3
=
x
0
3
y
3
x
0
1
y
1
+x
0
2
y
2
+x
0
3
y
3
unde x
1
= (x
1
, x
2
, x
3
).
(3.) Funcţia potenţial a lui Karmarkar.
Definiţia 9.2.1. Mulţimea punctelor [x
1
x
2
. . . , x
n
]
T
∈ R
n
care verifică
condiţiile

n
j=1
x
j
= 1 şi x
j
≥ 0, j = 1, n se numeşte simplex de unitate
n dimensională şi se va nota cu S.
Ce înseamnă din punct de vedere geometric proiecţia unui vector pe
mulţimea punctelor x care verifică restricţiile Ax = 0 ? Se poate arăta
că orice vector v poate fi scris ca v = v
1
+v
2
, unde v
1
verifică sistemul de re-
stricţii Av
1
= 0, iar vectorul v
2
este perpendicular pe vectorul x care verifică
res-tricţiile Ax = 0.
Proiecţia vectorului v pe mulţimea punctelor x care verifică restricţiile
Ax = 0 se poate realiza în forma [I −B
T
(BB
T
)
−1
B]v, unde B este o matrice
de tipul (m + 1) n, cu primele m linii egale cu coloanele matricei A, iar
elementele ultimei linii sunt egale cu 1.
În continuare, prezentăm algoritmul lui Karmarkar.
Algoritm Karmarkar:
Etapa 1
Fie x
0
=
_
1
n
, . . . ,
1
n
_
;
i
i
“JATEK” — 2005/3/11 — 10:29 — page 266 — #266
i
i
i
i
i
i
266 9. Metoda punctelor interioare
k = 0.
Etapa 2
Dacă (c, x
k
) < ε atunci x
k
este soluţie optimă;
altfel se continuă cu etapa 3
Etapa 3
Determină următoarea soluţie posibilă x
k+1
astfel:
Calculează:
y
k+1
=
_
1
n
. . .
1
n
_
T

θ(I −P
T
(PP
T
)
−1
P)[Diag(x
k
)]c
T
|c|
_
n(n −1)
şi utilizează transformarea centrală:
x
k+1
= T
−1
(y
k+1
, x
k
)
k = k + 1;
şi treci la etapa 2.
În algoritm, P este o matrice de ordinul (m+1)n cu primele m coloane
egale cu A[Diag(x
k
)], iar valoarea θ ∈ (0, 1) este aleasă astfel încât să asigure
convergenţa algoritmului.
Funcţia potenţial a lui Karmarkar este importantă pentru asigurarea con-
vergenţei. Deoarece se proiectează vectorul [Diag(x
k
)]c
T
(în locul vectorului,
c
T
), nu avem siguranţa că, la orice iteraţie, soluţia obţinută este mai bună.
S-ar putea întâmpla să obţinem, la o iteraţie, inegalitatea (c, x
k+1
) >
(c, x
k
). În scopul evitării acestei situaţii, Karmarkar introduce funcţia
potenţial definită prin:
f(x) =
n

j=1
ln
(c, x)
x
j
Karmarkar a demonstrat că în cazul în care proiectăm vectorul
[Diag(x
k
)]c
T
(şi nu vectorul c
T
) pe mulţimea transformată a soluţiilor posi-
bile, atunci pentru o valoare δ > 0, este adevărată pentru orice k = 0, 1, 2, . . .
inegalitatea:
f(x
k
) −f(x
k+1
) ≥ δ.
Karmarkar a arătat că, în cazul în care valoarea funcţiei potenţial în x
k
este suficient de mică, (c, x
k
) va fi aproape de zero. Deoarece f(x
k
) descreşte
cel puţin cu valoarea lui δ, la fiecare iteraţie, luând pentru k o valoare suficient
i
i
“JATEK” — 2005/3/11 — 10:29 — page 267 — #267
i
i
i
i
i
i
9.1. Metoda Karmarkar 267
de mare, putem asigura ca valoarea funcţiei de scop în punctul x
k
să fie mai
mică decât ε.
Problemă rezolvată
Să se determine soluţia optimă a problemei:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = −x
1
+ 2x
2
→ min
x
1
−2x
2
+x
3
= 0
x
1
+x
2
+x
3
= 1
x ∈ R
3
+
Problema considerată este în forma (KF).
Pe baza notaţiilor de mai sus, avem: A = (1 −2 1)
n = 3
x
0
=
_
1
3
1
3
1
3
_
Fie ε =
1
10
.
Pentru k = 0, putem scrie pe rând:
f(x
0
) =
1
3
>
1
10
Diag(x
0
) =
_
_
1
3
0 0
0
1
3
0
0 0
1
3
_
_
A Diag(x
0
) =
_
1
3

2
3
1
3
_
P =
_
1
3

2
3
1
3
1 1 1
_
P P
T
=
_
2
3
0
0 3
_
P
0
= (I
3
−P
T
(PP
T
)
−1
P) =
_
_
1
2
0 −
1
2
0 0 0

1
2
0
1
2
_
_
(Diag x
0
) C
T
=
_
_

1
3
2
3
0
_
_
y
1
=
_
1
3
1
3
1
3
_

θ
_

1
6
0
1
6
_
T

3 2
_
2/36
Dacă alegem θ =
1
4
, atunci avem:
y
1
= (0, 4055 0, 3333 0, 2611)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 268 — #268
i
i
i
i
i
i
268 9. Metoda punctelor interioare
x
1
1
=
x
0
1
y
1
1
x
0
1
y
1
1
+x
0
2
y
1
2
+x
0
3
y
1
3
x
1
1
= 0, 4055
x
1
2
=
x
0
2
y
1
2
x
0
1
y
1
1
+x
0
2
y
1
2
+x
0
3
y
1
3
x
1
2
= 0, 3333
x
1
3
=
x
0
3
y
1
3
x
0
1
y
1
1
+x
0
2
y
1
2
+x
0
3
y
1
3
x
1
3
= 0, 2611
x
1
= (0, 4055 0, 3333 0, 2611)
f(x
1
) = −0, 4055 + 2 0, 3333 = 0, 2611 >
1
10
Cu soluţia obţinută, putem trece la următoarea iteraţie şi vom scrie:
A Diag (x
1
) = (0, 4055 −0, 6666 0, 2612)
P P
T
=
_
0, 4055 −0, 6666 0, 2611
1 1 1
_
_
_
0, 4055 1
−0, 6666 1
0, 2611 1
_
_
=
_
0, 6769 0
0 3
_
Algoritmul se va continua până când valoarea funcţiei de scop pentru
soluţia obţinută va fi mai mică decât ε.
Să se reducă la forma (KF) următorul model:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = 3x
1
+x
2
→ max
2x
1
−x
2
≤ 2
x
1
+ 2x
2
≤ 5
x
1
, x
2
≥ 0
Duala problemei considerate este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
g(y) = 2y
1
+ 5y
2
→ min
2y
1
+y
2
≥ 3
−y
1
+ 2y
2
≥ 1
y
1
, y
2
≥ 0
Cu ajutorul acestor modele construim modelul liniar, cu funcţia obiectiv
formată din diferenţa funcţiilor obiectiv ale modelelor de mai sus. Putem
i
i
“JATEK” — 2005/3/11 — 10:29 — page 269 — #269
i
i
i
i
i
i
9.1. Metoda Karmarkar 269
scrie:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x, y) = 3x
1
+x
2
−2y
1
−5y
2
→ min
2x
1
−x
2
≤ 2
x
1
+ 2x
2
≤ 5
2y
1
+y
2
≥ 3
−y
1
+ 2y
2
≥ 1
x
1
, x
2
, y
1
, y
2
≥ 0
Evident h
opt
= 0 şi astfel soluţia optimă (x
0
, y
0
) este optimă pentru prob-
lemele considerate (x
0
pentru problema primală, iar y
0
pentru problema
duală). Vom introduce variabile auxiliare u
1
, u
2
, v
1
, v
2
. Obţinem:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x, y) = 3x
1
+x
2
−2y
1
−5y
2
→ min
2x
1
−x
2
+u
1
= 2
x
1
+ 2x
2
+u
2
= 5
2y
1
+y
2
−v
1
= 3
−y
1
+ 2y
2
−v
2
= 1
x ∈ R
2
+
, y ∈ R
2
+
, v ∈ R
2
+
, u ∈ R
2
+
Alegem M = 2(2 + 2 + 2 + 2) 5 = 80. Valoarea trebuie aleasă astfel încât
suma tuturor variabilelor să fie egală cu cel mult acest număr.
În continuare, avem modelul:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x, y) = 3x
1
+x
2
−2y
1
−5y
1
→ min
2x
1
−x
2
+u
1
= 2
x
1
+ 2x
2
+u
2
= 5
2y
1
+y
2
−v
1
= 3
−y
1
+ 2y
2
−v
2
= 1
x
1
+x
2
+y
1
+y
2
+u
1
+u
2
+v
1
+v
2
≤ 80
x, y, u, v ∈ R
2
+
Vom introduce o variabilă auxiliară notată cu w
1
pentru a menţine forma
standard. Avem astfel:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x, y) = 3x
1
+x
2
−2y
1
−5y
1
→ min
2x
1
−x
2
+u
1
= 2
x
1
+ 2x
2
+u
2
= 5
2y
1
+y
2
−v
1
= 3
−y
1
+ 2y
2
−v
2
= 1
x
1
+x
2
+y
1
+y
2
+u
1
+u
2
+v
1
+v
2
+w
1
= 80
x, y, u, v ∈ R
2
+
, w
1
≥ 0.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 270 — #270
i
i
i
i
i
i
270 9. Metoda punctelor interioare
În continuare omogenizarea restricţiilor se poate obţine prin introducerea
unei variabile de omogenizare notată cu w
2
, aleasă astfel încât w
2
= 1. Vom
avea în continuare:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x, y) = 3x
1
+x
2
−2y
1
−5y
1
→ min
2x
1
−x
2
+u
1
−2w
2
= 0
x
1
+ 2x
2
+u
2
−5w
2
= 0
2y
1
+y
2
−v
1
−3w
2
= 0
−y
1
+ 2y
2
−v
2
−w
2
= 0
x
1
+x
2
+y
1
+y
2
+u
1
+u
2
+v
1
+v
2
+w
1
−80w
2
= 0
x
1
+x
2
+y
1
+y
2
+u
1
+u
2
+v
1
+v
2
+w
1
+w
2
= 81
x, y, u, v, w ∈ R
2
+
.
În continuare, vom introduce substituţiile:
x
i
= 81x

i
y
i
= 81y

i
u
i
= 81u

i
v
i
= 81v

i
w
i
= 81w

i
, i = 1, 2
substituţii necesare pentru obţinerea condiţiei din forma (FK), ca suma tu-
turor variabilelor să fie 1. Astfel avem:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
h(x

, y

) = 3x

1
+x

2
−2y

1
−5y

1
→ opt.
2x

1
−x

2
+u

1
−2w

2
= 0
x

1
+ 2x

2
+u

2
−5w

2
= 0
2y

1
+y
2
−v

1
−3w

2
= 0
−y

1
+ 2y

2
−v

2
−w

2
= 0
x

1
+x

2
+y

1
+y

2
+u

1
+u

2
+v

1
+v

2
+w

1
−80w

2
= 0
x

1
+x

2
+y

1
+y

2
+u

1
+u

2
+v

1
+v

2
+w

1
+w

2
= 1
x

, y

, u

, v

, w

∈ R
2
+
Încă o condiţie ce trebuie asigurată în scopul aplicării metodei Karmarkar
este ca:
x
0
=
_
1
n
,
1
n
. . . . ,
1
n
_
să fie soluţie posibilă şi h
opt
= 0.
În acest caz x
0
=
_
1
10
,
1
10
, . . . ,
1
10
_
nu este soluţie posibilă (nu verifică toate
resctricţiile), de aceea se va introduce încă o variabilă, notată cu t astfel încât
x
0
=
_
1
11
, . . . ,
1
11
_
să fie soluţie posibilă.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 271 — #271
i
i
i
i
i
i
9.1. Metoda Karmarkar 271
La ultima restricţie, se va aduna variabila t, iar în restul restricţiilor se
va introduce un coeficient pentru care suma tuturor coeficienţilor va deveni
0.
Deoarece în caz de optim t va trebui să aibă valoarea 0, vom avea de
rezolvat următoarea problemă:
(KF)
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
t → min
3x

1
+x

2
−2y

1
−5y

2
+ 3t = 0
2x

1
−x

2
+u

1
−2w

2
= 0
x

1
+ 2x

2
+u

2
−5w

2
+t = 0
2y

1
+y

2
−v

1
−3w

2
+t = 0
−y

1
+ 2y

2
−v

2
−w

2
+t = 0
x

1
+x

2
+y

1
+y

2
+u

1
+u

2
+v

1
+v

2
+w

1
−80w

2
+ 71t = 0
x

1
+x

2
+y

1
+y

2
+u

1
+u

2
+v

1
+v

2
+w

1
+w

2
+t = 1
x

, y

, u

, v

, w

∈ R
2
+
, t ≥ 0
Probleme propuse spre rezolvare
Să se aplice metoda Karmarkar şi să se calculeze două iteraţii pentru:
1.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
+ 2x
2
−x
3
→ min
x
1
−x
3
= 0
x
1
+x
2
+x
3
= 1
x ∈ R
3
+
2.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
f(x) = x
1
−x
2
+ 6x
3
→ min
x
1
−x
2
= 0
x
1
+x
2
+x
3
= 1
x ∈ R
3
+
9.3 Concluzii
Dacă se realizează o comparaţie a timpului de lucru a metodei simplex
şi a metodei Karmarkar, atunci se constată că nu se poate afirma că, pentru
orice tip de model, unul ar fi mai rapid decât celălalt.
Eficienţa practică a metodelor este strâns legată de detaliile de imple-
mentare.
Numărul iteraţiilor necesare, în cazul metodei Karmarkar, este în mod
tipic între 10 şi 100. Metoda simplex necesită 2n, 3n iteraţii, unde n este
numărul variabilelor iniţiale.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 272 — #272
i
i
i
i
i
i
272 9. Metoda punctelor interioare
Metodele de punct interior sunt mai eficiente în rezolvarea problemelor
de mari dimensiuni.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 273 — #273
i
i
i
i
i
i
Anexa 1
Programare dinamică discretă
Matematica clasică s-a dovedit ineficientă în rezolvarea numerică a multor
probleme de optimizare, conţinând un număr mare de variabile de decizie
sau de restricţii sub formă de inegalităţi. Ideea de a descompune o problemă
de dimensiuni mari în mai multe subprobleme, fiecare cu un număr mic de
variabile, este eficientă din punctul de vedere al rezolvării.
Programarea dinamică este construită pe acest principiu. La dezvoltarea
teoriei, o contribuţie de seamă au avut lucrările lui Richard Bellman.
Definiţia 1. Prin optimizare dinamică înţelegem un ansamblu de metode
matematice utilizate în studiul şi rezolvarea unor tipuri de probleme de op-
timizare care apar în cadrul proceselor de decizie cu mai multe etape.
Este o ramură a programării matematice caracterizată prin metode pro-
prii şi printr-un mod propriu de a pune problemele cu utilizarea esenţială a
adoptării dinamice a deciziilor, adică pas cu pas.
Această metodă este aplicabilă în rezolvarea unei largi varietăţi de pro-
bleme, incluzând probleme de alocare, de teoria stocurilor şi teoria reînnoirii.
Definiţia 2. Programarea dinamică deterministă studiază procese de decizii
secvenţiale în care adoptarea unei decizii la un moment dat are ca efect
trecerea sistemului într-o anumită stare bine definită.
Definiţia 3. Dacă trecerea sistemului dintr-o stare în alta este guvernată
de legi de probabilitate, atunci modelul se numeşte model de programare
dinamică aleatoare.
Procesul secvenţial de decizii este stohastic, dacă aceste legi sunt cunos-
cute apriori.
Procesul secvenţial de decizii este adaptiv, dacă aceste legi nu sunt cunos-
cute, ci trebuie estimate în cursul procesului de luare a deciziilor.
273
i
i
“JATEK” — 2005/3/11 — 10:29 — page 274 — #274
i
i
i
i
i
i
274 Anexa 1
Modelele de programare dinamică pot fi clasificate astfel:
programare dinamică
aleatoare
programare dinamică
deterministă
programare dinamică
procesul
secvenĠial de
decizii este
stohastic
procesul
secvenĠial de
decizii este
adaptiv
staĠionare
sau
semistaĠionare
cu orizont finit
sau
cu orizont infinit
probleme secvenĠiale
discrete în timp sau
în timp continuu
În practică, trecerea sistemului dintr-o stare în alta poate avea loc şi sub
influenţa unor factori asupra cărora nu putem acţiona în mod direct, factori
numiţi incontrolabili. Acţiunea lor are ca efect o comportare aleatoare a
sistemului considerat.
Definiţia 4. Numărul de etape într-un proces secvenţial se numeşte orizont.
Definiţia 5. Modelul de programare dinamică deterministă cu orizont finit
se numeşte model de programare dinamică discretă. În acest caz, numărul
de subprobleme formează o mulţime cel mult numărabilă.
Definiţia 6. Problemele de programarea dinamică pot fi considerate ca pro-
bleme secvenţiale, discrete în timp. În această situaţie deciziile nu pot avea
loc în orice moment de timp din intervalul [t
0
, t
0
] ( în domeniul economic pot
fi luate la anumite intervale de timp, de exemplu, zilnic, lunar).
Esenţa metodei de programare dinamică constă în analiza secvenţială a
procesului de luare a deciziilor. În acest scop, se folosesc:
a) relaţiile de recurenţă care caracterizează acest proces (anii 1940-50 lu-
crările lui A. Wald);
i
i
“JATEK” — 2005/3/11 — 10:29 — page 275 — #275
i
i
i
i
i
i
Programare dinamică discretă 275
b) ecuaţiile funcţionale corespunzătoare acestor relaţii de recurenţă (în
anul 1951 prin lucrările lui R. Bellman. El introduce termenul de pro-
gramare dinamică).
La baza acestei metode stă următorul principiu al optimului, enunţat de
Bellman (1957) astfel: "O politică optimă are proprietatea că, oricare ar fi
starea iniţială (finală) şi decizia iniţială (finală), deciziile rămase să constituie
o politică optimă în raport cu starea care rezultă din prima (ultima) decizie."
Adică, dacă comanda unui proces este optimă, ea va rămâne optimă şi
după efectuarea primului pas, pentru procesul care va urma.
x
2
x
2
x
0
x
3
x
1
O
x
1
Considerăm x

(t) o traiectorie op-
timă t ∈ [t
0
, t
1
] între punctele x
0
, x
1
.
Fie t
2
, t
3
∈ [t
0
, t
1
], t
2
< t
3
oarecare
momentele arbitrare de timp.
x
2
= x

(t
2
), x
3
= x

(t
3
) sunt
puncte corespunzătoare de pe traiec-
toria optimă.
În anumite condiţii bine precizate,
se poate arăta că traiectoria x

(t),
t ∈ [t
2
, t
3
] este de asemenea optimă
între x
2
, x
3
.
Observaţie. Acest principu nu este valabil pentru orice tip de problemă, ci
numai în cazurile în care dependenţa comenzilor la diferiţi paşi ai procesului
are o anumită structură şi pentru funcţii obiective având o formă specială
(pentru funcţionale aditive de traiectorie).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 276 — #276
i
i
i
i
i
i
276 Anexa 1
Formularea matematică a problemei de programare dinamică discretă va
fi prezentată în paralel cu formularea problemei.
Punerea problemei
Să considerăm un sistem de natură eco-
nomică care în evoluţia sa într-un inter-
val de timp [t
0
, t
0
] precizat trece prin
mai multe stări.
Trecerea dintr-o stare în alta se reali-
zează numai în urma adoptării unei de-
cizii, aleasă dintr-o anumită mulţime de
decizii posibile (admitem că avem un
proces de decizie cu un orizont finit).
Deciziile ce se pot adopta într-o etapă
se deosebesc între ele prin efectul eco-
nomic produs.
Se cere să se precizeze ce decizie să se
adopte în fiecare etapă astfel încât efec-
tul economic total, produs în intervalul
de timp [t
0
, t
0
] considerat să fie optim.
Formularea matematică
- fie un proces de decizie cu n etape
(numerotate cu 1, 2, . . . , n);
- presupunem că starea sistemului
poate fi descrisă în fiecare moment cu
ajutorul unui vector x = (x
1
, . . . , x
p
) ∈
R
P
numit vector de stare;
- fie x
0
∈ R
P
starea iniţială a sistemu-
lui;
- fie X
j
⊆ R
P
mulţimea stărilor în
care se poate afla sistemul în etapa
j ∈ ¦1, . . . , n¦;
- punem X
0
= ¦x
0
¦;
- presupunem că fiecare decizie poate
fi descrisă cu ajutorul unui vector u =
(u
1
, . . . , u
q
) ∈ R
q
numit vector de de-
cizie (sau vector de control);
- fie U
j
(x) ⊆ R
q
mulţimea deciziilor ce
se pot adopta în etapa j ∈ ¦1, . . . , n¦
dacă sistemul se află în starea x.
Să urmărim acest proces de decizie grafic:
n
}
1
}
2 j
Etapa:
} }
u
n
U
n
(x
n-1
) u
2
U
2
(x
1
) u
j
U
j
(x
j-1
) u
1
U
1
(x
0
)
Decizia:
}
x
j
x
j-1 }
x
n
Starea
sistemului:
x
1
x
0
Efectul
economic:
f
j
(x
j-1
, u
j
) f
1
(x
0
, u
1
) f
2
(x
1
, u
2
) f
j
(x
n-1
, u
n
)
Putem observa că pentru fiecare j ∈ ¦1, . . . , n¦ starea x
j
depinde de
starea anterioară x
j−1
şi de decizia u
j
.
Deci evoluţia sistemului poate fi descrisă prin relaţii de forma:
x
j
= g
j
(x
j−1
, u
j
) j = 1, n
i
i
“JATEK” — 2005/3/11 — 10:29 — page 277 — #277
i
i
i
i
i
i
Programare dinamică discretă 277
unde g
1
, . . . , g
n
sunt funcţii cunoscute.
În urma ultimei decizii, sistemul trece în starea finală x
n
.
Definiţia 7. Vectorul (u
1
, . . . , u
n
) ale cărui coordonate sunt deciziile adop-
tate în cele n etape se numeşte politică a procesului de decizie.
Observaţie.
1. Cunoscând starea iniţială x
0
a sistemului, o politică (u
1
, . . . , u
n
) de-
termină complet atât comportarea sistemului de-a lungul celor n etape
ale procesului, cât şi starea finală.
Urmărind graficul, se poate scrie succesiv:
x
1
= g
1
(x
0
, u
1
) = ˜ g
1
(x
0
, u
1
)
x
2
= g
2
(x
1
, u
2
) = g
2
(˜ g
1
(x
0
, u
1
), u
2
) = ˜ g
2
(x
0
, u
1
, u
2
)
.
.
.
x
n
= g
n
(x
n−1
, u
n
) = g
n
(˜ g
n−1
(x
0
, . . . , u
n−1
), u
n
) = ˜ g
n
(x
0
, u
1
, . . . , u
n
).
2. Pentru fiecare j ∈ ¦1, . . . , n¦, efectul economic produs în etapa j, prin
adoptarea deciziei u
j
, depinde de această decizie şi de starea anterioară
x
j−1
a sistemului.
Efectul economic total este o funcţie a efectelor economice parţiale
f
1
(x
0
, u
1
), . . . , f
n
(x
n−1
, u
n
)
Cazul cel mai frecvent întâlnit în practică este cel în care efectul economic
total este egal cu suma efectelor economice parţiale. Presupunem, în conti-
nuare, că suntem în această situaţie.
Observaţie. Pentru o stare iniţială x
0
dată şi o politică dată (u
1
, . . . , u
n
),
efectul economic total este complet determinat.
Avem succesiv:
f
1
(x
0
, u
1
) =
˜
f(x
0
, u
1
)
f
2
(x
1
, u
2
) = f
2
(˜ g, (x
0
, u
1
), u
2
) =
˜
f
2
(x
0
, u
1
, u
2
)
.
.
.
f
n
(x
n−1
, u
n
) = f
n
(˜ g
n−1
(x
0
, u
1
, . . . , u
n−1
, u
n
) =
˜
f
n
(x
0
, u
1
, . . . , u
n
)
deci:
f
1
(x
0
, u
1
)+ +f
n
(x
n−1
, u
n
) =
˜
f
1
(x
0
, u
1
)+
˜
f
2
(x
0
, u
1
, u
2
)+ +
˜
f
n
(x
0
, u
1
, . . . , u
n
)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 278 — #278
i
i
i
i
i
i
278 Anexa 1
şi efectul economic total este:
f(x
0
, u
1
, . . . , u
n
) = f
1
(x
0
, u
1
) +f
2
(x
1
, u
2
) + +f
n
(x
n−1
, u
n
) (9.11)
Putem formula următoarea problemă:
- cunoscând starea iniţială x
0
a sistemului, să se determine o politică
(u
1
, . . . , u
n
) pentru care efectul economic total este optim. O astfel de politică
se numeşte politică optimă.
Deci putem scrie următoarea problemă:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
f
j
(x
j−1
, u
j
) → min(max)
x
j
= g
j
(x
j−1
, u
j
), j = 1, n
x
0
dat
x
j
∈ X
j
, j = 1, n
u
j
∈ U
j
(x
j−1
), j = 1, n
(9.12)
Definiţia 8. Orice problemă de tipul (9.12) se numeşte problemă de opti-
mizare dinamică discretă.
Restricţiile x
j
= g
j
(x
j−1
, u
j
), j = 1, n se numesc restricţii dinamice,
iar restricţiile:
_
¸
_
¸
_
x
0
dat
x
j
∈ X
j
, j = 1, n
u
j
∈ U
j
(x
j−1
), j = 1, n
(9.13)
se numesc restricţii statice.
Un vector (u
1
, . . . , u
n
) care satisface restricţiile problemei (9.12) se nu-
meşte politică posibilă (sau admisibilă).
Ecuaţia funcţională a lui Bellman şi rezolvarea numerică a proble-
mei de optimizare dinamică discretă
Se consideră un proces de decizie cu n etape şi problema (9.12) la care
conduce acest proces.
Pentru fiecare k ∈ ¦1, . . . , n¦, notăm cu P
k
subprocesul de decizie care
începe cu etapa k şi cuprinde ultimele n −k + 1 etape ale procesului iniţial.
Definim recursiv mulţimile:
ˆ
X
n
= X
n
ˆ
X
k−1
= ¦x
k−1
∈ X
k−1
, ∃ u
k
∈ U
k
(x
k−1
), g(x
k−1
, u
k
) ∈
˜
X
k
¦, k = 1, n.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 279 — #279
i
i
i
i
i
i
Programare dinamică discretă 279
Pentru fiecare k ∈ ¦1, . . . , n¦, mulţimea
ˆ
X
k−1
reprezintă mulţimea acelor
stări iniţiale ale subprocesului P
k
pentru care există politici posibile în sub-
procesul P
k
.
Introducem mulţimile:
ˆ
U
k
(x
k−1
) = ¦u
k
∈ U
k
(x
k−1
) : g
k
(x
k−1
, u
k
) ∈
ˆ
X
k
¦
pentru fiecare k ∈ ¦1, . . . , n¦, x
k−1
∈ X
k−1
.
Mulţimea
ˆ
U
k
(x
k−1
) reprezintă mulţimea deciziilor ce se pot adopta în
etapa k pentru ca sistemul să treacă din starea x
k−1
într-o stare
x
k
= g
k
(x
k−1
, u
k
) din
ˆ
X
k
, adică într-o stare în care subprocesul P
k+1
care porneşte cu x
k
să posede politici posibile.
Deci problema (9.12) este echivalentă cu problema:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
n

i=1
f
j
(x
j−1
, u
j
) → min
x
j
= g
j
(x
j−1
, u
j
) j = 1, n
x
0
dat
x
j

ˆ
X
j
, j = 1, n
u
j

ˆ
U
j
(x
j−1
), j = 1, n
(9.14)
Pentru orice k ∈ ¦1, . . . , n¦, o politică optimă în subprocesul P
k
se găseşte
prin rezolvarea modelului:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
n

i=1
f
j
(x
j−1
, u
j
) → min
x
j
= g
j
(x
j−1
, u
j
) j = k, n
x
k−1

ˆ
X
k−1
dat
x
j

ˆ
X
j
, j = k, n
u
j

ˆ
U
j
(x
j−1
), j = k, n
(9.15)
Presupunem că toate aceste probleme admit soluţii.
Teoremă. Sunt adevărate următoarele afirmaţii:
1. Pentru fiecare k ∈ ¦1, . . . , n¦, numărul:
a
k
= min
_
_
_
n

j=k
f
j
(x
j−1
, u
j
) : u
j

ˆ
U
j
(x
j−1
), j = k, n
_
_
_
depinde numai de vectorul de stare x
k−1

ˆ
X
k−1
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 280 — #280
i
i
i
i
i
i
280 Anexa 1
2. Funcţiile F
k
:
ˆ
X
k−1
→R, k = 1, n + 1 definite prin:
F
k
(x
k−1
) = min
_
_
_
n

j=k
f
j
(x
j−1
, u
j
) : u
j

ˆ
U
j
(x
j−1
), j = k, n
_
_
_
dacă k = n + 1, atunci F
n+1
(x
n
) = 0
¸şi, în rest, verifică ecuaţia funcţională:
F
k
(x
k−1
) = min¦f
k
(x
k−1
, u
k
) +F
k+1
(x
k
) : u
k

ˆ
U
k
(x
k−1
)¦ (9.16)
numită ecuaţia funcţională a lui Bellman.
Demonstraţie. Fixăm un indice k ∈ ¦1, . . . , n¦.
Dacă k = n,
a
n
= min¦f
n
(x
n−1
, u
n
) +F
n+1
(x
n
), u
n

ˆ
U
n
(x
n−1
)¦ = f
n
(x
n−1
)
este evident.
Dacă k < n,
a
k
= min
_
_
_
u−1

j=k
f
j
(x
j−1
, u
j
) +f
n
(x
n−1
, u
n
), u
j

ˆ
U
j
(x
j−1
), j = k, n −1
_
_
_
a
k
depinde de x
k−1
, . . . , x
n−1
, u
k
, . . . , u
n
.
Folosind proprietatea:
min¦ϕ(u) +ψ(u, v) : u ∈ U, v ∈ V ¦ = min
u
¦ϕ(u) + min
v
ψ(u, v)¦
putem scrie:
a
k
= min
u
j

ˆ
U
j
(x
j−1
)
j=k,n−1
_
_
_
n−1

j=k
f
j
(x
j−1
, u
j
) + min
u
n

ˆ
U
n
(x
n−1
)
f
n
(x
n−1
, u
n
)
_
_
_
.
Continuând acest raţionament rezultă:
a
k
= min
u
k

ˆ
U
k
(x
n−1
)
_
¸
_
¸
_
f
k
(x
k−1
, u
k
) + min
u
j

ˆ
U
j
(x
j−1
)
j=k+1,n
n

j=k+1
f
j
(x
j−1
, u
j
)
_
¸
_
¸
_
depinde numai de x
k−1
.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 281 — #281
i
i
i
i
i
i
Programare dinamică discretă 281
Rezolvarea numerică a problemei de optimizare dinamică discretă
folosind ecuaţia funcţională a lui Bellman
Dificultatea generală care se pune în adoptarea unei decizii într-o etapă
a unui proces de decizie cu n etape constă în aceea că trebuie luată în con-
siderare influenţa ei asupra tuturor etapelor care urmează. Cu cât suntem
mai aproape de starea finală a sistemului, cu atât alegerea deciziei este mai
simplă.
În ultima etapă se pune, în consecinţă, numai problema adoptării deciziei
pentru care efectul economic în acea etapă este optim.
De aceea pentru determinarea politicii optime a problemei (9.12), par-
curgem procesul în sensul invers desfăşurării lui (adică începem cu
ultima etapă).
Dând lui k valorile n, n − 1, . . . , 2, 1 determinăm succesiv cu ecuaţia
funcţională a lui Bellman (9.16):
F
k
(x
k−1
) = min¦f
k
(x
k−1
, u
k
) +F
k+1
(g
k
(x
k−1
, u
k
)) : u
k

ˆ
U
k
(x
k−1

efectul economic optim F
k
(x
k−1
) în subprocesul P
k
constituit din etapele
k, . . . , n şi o decizie optimă ce trebuie luată în etapa k.
Astfel obţinem F
1
(x
0
), adică valoarea minimă a funcţiei de scop din pro-
blema (9.12).
Etapa 1 Luăm k = n
şi pentru fiecare x
n−1

ˆ
X
n−1
determinăm cu formula (9.16) efectul eco-
nomic produs în ultima etapă:
F
n
(x
n−1
) = min¦f
n
(x
n−1
, u
n
) : u
n

ˆ
U
n
(x
n−1

ˆ u
n
(x
n−1
) un punct minim al funcţiei f
n
(x
n−1
, ) relativ la mulţimea
ˆ
U
n
(x
n−1
).
Are loc
F
n
(x
n−1
) = f
n
(x
n−1
, ˆ u
n
(x
n−1
)) (9.17)
pentru toţi x
n−1

ˆ
X
n−1
.
Etapa 2 Dacă k = n −1,
atunci pentru fiecare x
n−2

ˆ
X
n−2
determinăm efectul economic optim
în ultimele două etape.
F
n−1
(x
n−2
) = min¦f
n−1
(x
n−2
, u
n−1
)+F
n
(g
n−1
(x
n−1
, u
n−1
)) : u
n−1

ˆ
U
n−1
(x
n−2

ˆ u
n−1
(x
n−2
) este un punct minim al funcţiei f
n−1
(x
n−2
, )+F
n
(g
n−1
(x
n−2
, ))
relativ la mulţimea
ˆ
U
n+1
(x
n−2
).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 282 — #282
i
i
i
i
i
i
282 Anexa 1
Acest punct reprezintă decizia optimă care trebuie luată în etapa (n−1),
dacă sistemul a ajuns în starea x
n−2
şi are loc:
F
n−1
(x
n−2
) = f
n−1
(x
n−2
, ˆ u
n−1
(x
n−2
)) +F
n
(g
n−1
(x
n−2
, ˆ u
n−1
(x
n−2
)) (9.18)
pentru x
n−2

ˆ
X
n−2
Continuând raţionamentul pentru k + 1 se determină F
k+1
(x
k
) efectul
economic optim în subprocesul de decizie P
k+1
(constituit din etapele k +
1, . . . , n), precum şi decizia optimă ˆ u
k+1
(x
k
).
Pentru k se determină F
k
(x
k−1
) pentru fiecare x
k−1

ˆ
X
k−1
(în P
k
), cât
şi un punct minim ˆ u
k
(x
k−1
) al funcţiei:
f
k
(x
k−1
, ) +F
k+1
(g
k
(x
k−1
, ))
relativ la mulţimea
ˆ
U
k
(x
k−1
) care satisface egalitatea:
F
k
(x
k−1
) = f
k
(x
k−1
, ˆ u
k
(x
k−1
) +F
k+1
(g
k
(x
k−1
, ˆ u
k
(x
k−1
))). (9.19)
În final, obţinem efectul economic total F
1
(x
0
) produs în cele n etape şi
decizia optimă ˆ u
1
(x
0
) pentru etapa 1. Evident punctul ˆ u
1
(x
0
) satisface:
F
1
(x
0
) = f
1
(x
0
, ˆ u
1
(x
0
)) +F
2
(g
1
(x
0
, ˆ u
1
(x
0
))). (9.20)
Deoarece x
0
este un punct dat, parcurgând acum procesul în ordinea des-
făşurării lui, putem determina punctele:
ˆ u
1
= ˆ u
1
(x
0
) ˆ x
1
= g
1
(x
0
, ˆ u
1
)
ˆ u
2
= ˆ u
2
(x
1
) ˆ x
2
= g
2
(x
1
, ˆ u
2
)
.
.
.
.
.
.
ˆ u
n
= ˆ u
n
(x
n−1
) ˆ x
n
= g
n
(x
n−1
, ˆ u
n
)
Astfel folosind relaţiile (9.17) - (9.20) avem:
F
1
(x
0
) = f
1
(x
0
, ˆ u
1
) +F
2
(ˆ x
1
)
ˆ
F
k
(ˆ x
k−1
) = f
k
(ˆ x
k−1
, ˆ u
k
) +F
k+1
(ˆ x
k
)
. . .
ˆ
F
n−1
(ˆ x
n−2
) = f
n−1
(ˆ x
n−2
, ˆ u
n−1
) +F
n
(ˆ x
n−1
)
F
n
(ˆ x
n−1
) = f
n
(ˆ x
n−1
, ˆ u
n
)
de unde:
F
1
(x
0
) = f
1
(x
0
, ˆ u
1
) + +f
k
(ˆ x
k−1
, ˆ u
k
) + +f
n
(ˆ x
n−1
, ˆ u
n
)
deci (ˆ u
1
, . . . , ˆ u
n
) este o politică optimă a procesului de decizie, iar (ˆ x
1
, . . . , ˆ x
n
)
sunt stările corespunzătoare prin care trece sistemul.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 283 — #283
i
i
i
i
i
i
Programare dinamică discretă 283
Observaţie. Pentru rezolvarea problemei:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
f
j
(x
j−1
, u
j
) → max
x
j
= g
j
(x
j−1
, u
j
), j = 1, n
x
0
dat
x
j
∈ X
j
, j = 1, n
u
j
∈ U
j
(x
j−1
), j = 1, n
se poate aplica un raţionament analog, dar în ecuaţia funcţională a lui
Bellman (9.16)trebuie înlocuit min cu max şi ˆ u
k
(x
k−1
) este pentru fiecare
k ∈ ¦1, . . . , n¦ un punct maxim al funcţiei:
f
k
(x
k−1
, ) +F
k+1
(g
k
(x
k−1
, ))
relativ la
ˆ
U
k
(x
k−1
).
Analiza prospectivă şi retrospectivă a proceselor secvenţiale de de-
cizii. Funcţii obiectiv decompozabile prospectiv şi retrospectiv
(metoda progresivă şi regresivă)
Definiţia 9. Dacă desfăşurarea procesului secvenţial de luare a deciziilor
este privită ca începând cu starea iniţială x
0
şi terminând cu starea finală
x
n
, atunci, în acest caz, facem analiza prospectivă a procesului secvenţial
de decizii.
Definiţia 10. În opoziţie cu analiza prospectivă a procesului secvenţial de
decizii, se poate imagina o desfăşurare retrospectivă a acesteia. Dacă
pornim de la starea finală x
n
, putem să ne imaginăm că adoptarea deciziei
u
n
are ca efect trecerea sistemului din starea x
n
într-o stare x
n−1
.
Singura diferenţă între analiza prospectivă şi analiza retrospectivă a unui
proces secvenţial de decizii constă în modul în care este privită evoluţia
sistemului. Deşi analiza prospectivă pare mai naturală, se întâmplă frecvent
ca analiza retrospectivă să fie mai eficientă din punctul de vedere al calculării
unei politici optime.
Principiul optimalităţii nu are loc pentru orice tip de problemă. În conti-
nuare, prezentăm cazuri speciale pentru care aplicarea principiului optimali-
tăţii este încă posibilă.
Oricărui proces secvenţial de decizii i se poate asocia un graf numit graf
secvenţial cu o structură particulară.
Astfel problema determinării unei politici optime în cazul unei funcţii
obiectiv aditive este echivalentă cu problema determinării unui drum de
lungime maximă /minimă în graful secvenţial asociat.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 284 — #284
i
i
i
i
i
i
284 Anexa 1
Problemă aplicativă
1. Determinarea politicii optime de desfacere a unui produs.
Dintr-un stoc, al cărui nivel iniţial este x
0
, se pune la începutul fiecărei
luni o anumită cantitate din produsul stocat în vânzare.
Se cere să se planifice pe o perioadă de n luni cantităţile ce urmează a fi
puse lunar în vânzare, ştiind că nivelul stocului creşte în cursul fiecărei luni
de c ori (c > 1) şi că prin vânzarea de u unităţi din produs la începutul
lunii j ∈ ¦1, . . . , n¦ se obţine beneficiul f
j
(u). Drept criteriu de apreciere a
politicii de desfacere se alege beneficiul total realizat în cele n luni. Să se
determine politica optimă de desfacere!
Dacă notăm cu u
j
cantitatea ce urmează a fi pusă în vânzare la începutul
lunii j şi cu x
j
nivelul stocului de la sfârşitul lunii j, atunci, după vânzarea
celor u
j
unităţi, nivelul stocului va fi x
j−1
−u
j
.
Deoarece, într-o lună, nivelul stocului creşte de c ori, el va atinge la
sfârşitul lunii j valoarea:
x
j
= c(x
j−1
−u
j
).
Aşadar, pentru a determina o politică optimă de vânzare, se va rezolva ur-
mătoarea problemă de optimizare dinamică discretă:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
n

j=1
f
j
(u
j
) → max
x
j
= c(x
j−1
−u
j
), j = 1, n
x
0
dat
x
j
≥ 0 j = 1, n
0 ≤ u
j
≤ x
j−1
, j = 1, n
Observăm că în acest caz avem:
X
j
=
ˆ
X
j
= [0, ∞) =
U
j
(x
j−1
) =
ˆ
U
j
(x
j−1
) = [0, x
j−1
], j = 1, n.
Ecuaţia funcţională lui Bellman va fi:
F
k
(x
k−1
) = max¦f
k
(u
k
) +F
k+1
(c(x
k−1
−u
k
)) : u
k
∈ [0, x
k−1

x
k−1
∈ [0, ∞) pentru k = 1, n
Pentru a rezolva numeric, considerăm cazul în care n = 3
f
1
(u) = f
2
(u) = f
3
(u) =

u, c = 2, x
0
= 1
i
i
“JATEK” — 2005/3/11 — 10:29 — page 285 — #285
i
i
i
i
i
i
Programare dinamică discretă 285
Putem scrie:
F
3
(x
2
) = max¦f
3
(u
3
) : u
3

ˆ
U
3
(x
2
)¦ = max¦

u
3
: u
3
∈ [0, x
2
]¦ =

x
2
ˆ u
3
(x
2
) = x
2
pentru orice x
2
≥ 0.
F
2
(x
1
) = max¦f
2
(u
2
) +F
3
(g
2
(x
1
, u
2
)) : u
2

ˆ
U
2
(x
1
) = [0, x
1

unde din:
x
j
= g
j
(x
j−1
, u
j
)
avem:
x
2
= g
2
(x
1
, u
2
) = c(x
1
−u
2
)
Deci:
F
2
(x
1
) = max¦f
2
(u
2
) +F
3
(2(x
1
−u
2
)) : u
2
∈ [0, x
1
]¦ =
= max
_

u
2
+
_
3(x
1
−u
2
) : u
2
∈ [0, x
1
]
_
Efectuând calculele, valoarea maximă a funcţiei f(x) =

x +
_
3(x
1
−x)
este 2

x
1
. Deci F
2
(x
1
) = 2

x
1
cu ˆ u
2
(x
1
) =
x
1
4
pentru orice x
1
≥ 0.
F
1
(x
0
) = max¦

u
1
+F
2
(3(x
0
−u
1
)) : u
1
∈ [0, x
0
]¦ =
= max¦

u
1
+ 2
_
3(x
0
−u
1
) : u
1
∈ [0, x
0

În urma efectuării calculelor, f are valoarea maximă pentru x =
x
0
13
.
Astfel:
F
1
(x
0
) = max¦

u
1
+ 2
_
3(x
0
−u
1
) : u
1
∈ [0, x
0
]¦ =

13x
0
având ˆ u
1
(x
0
) =
x
0
13
.
Având în vedere că x
0
= 1 ⇒ F
1
(x
0
) =

13 şi politica optimă de des-
facere este: (ˆ u
1
, ˆ u
2
, ˆ u
3
) =
_
1
13
,
9
13
,
81
13
_
Adoptând această politică, benefi-
ciul total va fi

13, iar la sfârşitul perioadei de 3 luni stocul va fi epuizat.
Nivelul stocului în fiecare perioadă este:
_
1,
36
13
,
81
13
, 0
_
.
2. O întreprindere cinematografică intenţionează să deschidă 6 cinematografe
noi în 4 cartiere ale unui oraş. Beneficiul pe care îl va realiza în fiecare din
cele 4 cartiere, după deschiderea noilor cinematografe, depinde de numărul
cinematografelor noi din acel cartier şi este dat în tabelul de mai jos.
Se cere să se determine, pentru fiecare cartier, numărul de cinematografe
noi, astfel încât beneficiul total realizat în cele 4 cartiere să fie maxim.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 286 — #286
i
i
i
i
i
i
286 Anexa 1
Cartierul
Nr. cinematografe 1 2 3 4
0 40 50 30 28
1 50 54 32 31
2 60 58 40 37
3 70 68 50 47
4 80 80 56 56
5 90 92 65 62
6 90 99 72 73
Dacă notăm cu u
j
numărul de cinematografe ce urmează a fi deschise în
cartierul j ∈ ¦1, 2, 3, 4¦ cu f
j
(u
j
) beneficiul realizat după deschiderea lor şi cu
x
j
numărul de cinematografe care rămâne disponibil (din totalul de 6) pentru
cartierele j + 1, . . . , 4, după ce s-au deschis în cartierele 1, . . . , j respectiv
u
1
. . . u
j
cinematografe, atunci modelul matematic al problemei este:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
f
1
(u
1
) +f
2
(u
2
) +f
3
(u
3
) +f
4
(u
4
) → max
x
j
= x
j−1
−u
j
j = 1, 4
x
0
= 6
x
j
∈ [0, 6] ∩ (N ∪ ¦0¦) j = 1, 4
u
j
∈ [0, x
j−1
] ∩ (N ∪ ¦0¦) j = 1, 4
Avem acum:
X
j
=
ˆ
X
j
= [0, 6] ∩ (N ∪ ¦0¦)
U
j
=
ˆ
U
j
(x
j−1
) = [0, x
j−1
] ∩ (N ∪ ¦0¦) pentru orice j = 1, 4
Ecuaţia funcţională a lui Bellman este:
F
k
(x
k−1
) = max¦f
k
(u
k
) +F
k+1
(x
k−1
−u
k
) : u
k

ˆ
U
k
(x
k−1
)¦,
unde evident x
k−1

ˆ
X
k−1
Putem scrie pentru k = 4
F
4
(x
3
) = max¦f
4
(u
4
) : u
4

ˆ
U
4
(x
3
)¦, pentru orice x
3

ˆ
X
3
= ¦0, 1, 2, 3, 4, 5, 6¦
În vederea determinării valorii maxime, folosim următorul tabel:
x
3
0 1 2 3 4 5 6
F
4
(x
3
) 28 31 37 47 56 62 73
ˆ u
4
(x
3
) 0 1 2 3 4 5 6
x
3
= 0 u
4

ˆ
U
4
(x
3
) = [0, x
3
] ∩ N

ˆ
U
4
(0) = ¦0¦ f
4
(0) = 28
x
3
= 1 ⇒
ˆ
U
4
(1) = ¦0, 1¦ ⇒ f
4
(1) = 31.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 287 — #287
i
i
i
i
i
i
Programare dinamică discretă 287
Folosind raţionamentul, se obţin datele din tabel.
Pentru k = 3 avem:
F
3
(x
2
) = max¦f
3
(u
3
) +F
4
(x
2
−u
3
) : u
3

ˆ
U
3
(x
2
)¦, x
2

ˆ
X
2
.
Acum pentru toate valorile x
2
∈ ¦0, 1, . . . , 6¦ alcătuim un tabel cu valorile
lui f
3
(u
3
) +F
4
(x
2
−u
3
) :
x
2
−u
3
0 1 2 3 4 5 6
u
3
f
3
¸ F
4
28 31 37 47 56 62 73
0 30 58 61 67 77 86 92 103
1 32 60 63 69 79 88 94
2 40 68 71 77 87 96
3 50 78 81 87 97
4 56 84 87 93
5 65 93 96
6 72 100
Pentru un x
2
∈ ¦0, . . . , 6¦ fixat valorile lui f
3
(u
3
) +F
4
(x
2
−u
3
) sunt situate
pe diagonala de la u
3
= x
2
până la X
2
−u
3
= x
2
şi se obţin adunând valorile
lui f
3
(u
3
) şi F
4
(x
2
−u
3
) scrise pe margine.
Valoarea cea mai mare de pe diagonală reprezintă pe F
3
(x
2
), iar linia lui
u
3
pe care se află valoarea lui ˆ u
3
(x
2
) :
x
2
= 0 u
3
= 0 u
3

ˆ
U
3
(x
2
) = [0, x
2
] ∩ N
x
2
= 1 u
3
∈ ¦0, 1¦
x
2
= 2 u
3
∈ ¦0, 1, 2¦
x
2
= 3 u
3
∈ ¦0, 1, 2, 3¦
Avem astfel:
x
2
0 1 2 3 4 5 6
F
3
(x
2
) 78 81 88 98 106 113 123
ˆ u
3
(x
2
) 0 0 2 3 0 5 0
În mod analog se determină:
F
2
(x
1
) = max¦f
2
(u
2
) +F
3
(x
1
−u
2
) : u
2

ˆ
U
2
(x
1
)¦,
pentru orice x
1
∈ ¦0, 1, 2, 3, 4, 5, 6¦ şi se obţine
x
1
0 1 2 3 4 5 6
F
2
(x
1
) 138 142 148 158 168 180 187
ˆ u
2
(x
1
) 0 1 0 0 4 5 6
i
i
“JATEK” — 2005/3/11 — 10:29 — page 288 — #288
i
i
i
i
i
i
288 Anexa 1
Ştiind că x
0
= 6 putem scrie pe rând:
F
1
(x
0
) = max¦f
1
(u
1
) +F
2
(x
0
−u
1
) : u
1

ˆ
U
1
(x
0

x
0
−u
1
0 1 2 3 4 5 6
u
1
f
1
¸ F
2
138 142 148 158 168 180 187
0 50 237
1 60 240
2 70 238
3 80 238
4 90 238
5 100 242
6 100 238
Pentru x
0
= 6, u
1
∈ ¦0, 1, 2, 3, 4, 5, 6¦ avem F
1
(x
0
) = 202 şi ˆ u
1
(x
0
) =
5, prin urmare:
ˆ u
1
= ˆ u
1
(x
0
) = 5 ˆ x
1
= x
0
− ˆ u
1
= 1
ˆ u
2
= ˆ u
2
(x
1
) = 1 ˆ x
2
= x
1
− ˆ u
2
= 0
ˆ u
3
= ˆ u
3
(x
2
) = 0 ˆ x
3
= x
2
− ˆ u
3
= 0
ˆ u
4
= ˆ u
4
(x
3
) = 0 ˆ x
4
= x
3
− ˆ u
4
= 0
Prin urmare, politica optimă este: (ˆ u
1
, ˆ u
2
, ˆ u
3
, ˆ u
4
) = (5, 1, 0, 0).
Adoptând această politică, se va obţine un beneficiu total de 202 unităţi
monetare.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 289 — #289
i
i
i
i
i
i
Anexa 2
Elemente de algebră liniară şi analiză matematică
În continuare, sunt prezentate noţiuni de bază din algebra liniară şi anal-
iză matematică necesare pentru înţelegerea teoriei prezentate.
Definiţia 1. V este un spaţiu vectorial (spaţiu liniar) peste corpul K (R sau
C) dacă:
(a) se introduce o operaţie notată cu ”+” şi (V, +) este un grup comutativ;
(b) se introduce o operaţie externă φ : K V → V, definită prin
φ(a, x) = ax şi pentru orice x, y ∈ V şi orice a, b, c ∈ K au loc relaţiile:
1 x = x
a(bx) = (ab)x
(a +b)x = ax +bx
a(x +y) = ax +ay
(c) pentru orice x, y ∈ V şi a ∈ K avem:
x +y ∈ V
a x ∈ V.
Dacă K ≡ R, atunci spaţiul vectorial se numeşte spaţiu vectorial
(liniar) real.
Exemple. (/
m,n
(R), +, ) unde /
m,n
este mulţimea matricilor de ordin
mn; (R
n
, +, ), (C
n
, +, ) (spaţii euclidiene).
Mulţimea polinoamelor de grad ≤ n cu coeficienţi reali formează un spaţiu
liniar real.
Definiţia 2. Fie n ∈ N

un număr natural fixat. Mulţimea R
n
este definită
prin:
R
n
= R R.
Elementele mulţimii x ∈ R
n
sunt formate din grupuri ordonate de n
numere reale x = (x
1
, . . . , x
n
). Un punct fixat din R
n
îl vom nota cu x
0
=
(x
0
1
, . . . , x
0
n
).
289
i
i
“JATEK” — 2005/3/11 — 10:29 — page 290 — #290
i
i
i
i
i
i
290 Anexa 2
Definiţia 3. Pe mulţimea R
n
definim o operaţie de adunare notată cu ‘+‘.
Pentru x, y ∈ R
n
oarecare, x = (x
1
, . . . , x
n
), y = (y
1
, . . . , y
n
), suma x + y a
acestor puncte este:
x +y = (x
1
+y
1
, . . . , x
n
+y
n
).
Pe mulţimea R
n
definim o operaţie de înmulţire cu scalari reali astfel:
pentru λ ∈ R şi x ∈ R
n
oarecare λx = (λx
1
, . . . , λx
n
).
Teoremă. Mulţimea R
n
cu operaţiile definite mai sus este un spaţiu liniar
real (spaţiu vectorial).
Demonstraţie. Se poate verifica uşor că operaţia internă notată cu "+" şi
operaţia externă verifică condiţiile date în definiţia spaţiului vectorial.
Elementele spaţiului sunt numite vectori. Elementul nul care este de
altfel originea spaţiului, îl notăm cu θ = (0, 0, . . . , 0).
Observaţie. Elementele unui spaţiu liniar se numesc vectori.
În continuare, fie V un spaţiu vectorial peste corpul K. Considerăm un
sistem de vectori (v
i
)
i∈I
∈ V, I (mulţime de indici) finită.
Definiţia 4. Dacă (c
i
)
i∈I
sunt numere reale date, atunci

i∈I
c
i
v
i
se numeşte
o combinaţie liniară a vectorilor.
Definiţia 5. Dacă (c
i
)
i∈I
sunt numere reale pozitive, astfel încât

i∈I
c
i
= 1,
atunci

i∈I
c
i
v
i
se numeşte combinaţia convexă a vectorilor.
Definiţia 6. Fie S = ¦v
1
. . . v
n
¦ ⊂ V. S se numeşte sistem finit de generatori
pentru spaţiul V, dacă pentru orice v ∈ V există (c
i
)
i=1,n
∈ K astfel încât să
avem:
v =
n

i=1
c
i
v
i
.
Definiţia 7. Spaţiul vectorial V se numeşte finit generat, dacă există un
sistem finit de generatori al său (altfel se numeşte infinit generat).
Definiţia 8. S se numeşte sistem liniar independent, dacă pentru (c
i
)
i∈I
∈ K
oarecare are loc implicaţia:

i∈I
c
i
v
i
= 0 ⇒ c
i
= 0, i ∈ I.
altfel se numeşte sistem liniar dependent.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 291 — #291
i
i
i
i
i
i
Elemente de algebră liniară şi analiză matematică 291
Teoremă. Un sistem de vectori ¦v
1
, . . . , v
n
¦ din spaţiul liniar real R
n
formează un sistem liniar independent de vectori, dacă şi numai dacă de-
terminantul format din componentele vectorilor este diferit de zero.
Demonstraţie. Sistemul de vectori:
v
i
= (v
i
1
, v
i
2
, . . . , v
i
n
), i = 1, n
este un sistem liniar independent prin definiţie, dacă şi numai dacă pentru
orice (c
i
)
i=1,n
∈ K are loc:
n

i=1
c
i
v
i
= 0 ⇒ c
i
= 0, i = 1, n

c
1
(v
1
1
. . . v
1
n
) +c
n
(v
n
1
. . . v
n
n
) = 0

_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
c
1
v
1
1
+ +c
n
v
n
1
= 0
c
1
v
1
2
+ +c
n
v
n
2
= 0
.
.
.
c
1
v
1
n
+ +c
n
v
n
n
= 0
Un sistem liniar omogen admite soluţie banală, dacă şi numai dacă determi-
nantul:
∆ =
¸
¸
¸
¸
¸
¸
v
1
1
. . . v
n
1
. . . . . . . . .
v
1
n
. . . v
n
n
¸
¸
¸
¸
¸
¸
este diferit de zero.
Acest determinant este format din componentele vectorilor (v
i
)
i=1,n
şi
astfel teorema este demonstrată.
Observaţie. Orice submulţime a unui sistem liniar independent este liniar
independent.
Definiţia 9. Fie B = (v
i
)
i∈I
⊂ V. B se numeşte bază a spaţiului liniar
V, dacă este o familie liniar independentă de vectori şi un sistem generator
pentru V.
Dacă B este un sistem finit de vectori, atunci spaţiul vectorial se numeşte
finit generat. Algebra liniară lucrează cu spaţii finit generate.
Dacă B este un sistem infinit de vectori, atunci spaţiul vectorial se
numeşte infinit dimensional. Cu aceste tipuri de spaţii operează analiza
funcţională.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 292 — #292
i
i
i
i
i
i
292 Anexa 2
Teoremă. Fie V ,= ¦0¦ un spaţiu vectorial peste corpul K, finit generat.
Din orice sistem de generatori finit al lui V se poate construi o bază a sa.
Teoremă. Fie V ,= ¦0¦ un spaţiu vectorial peste corpul K, finit generat.
Toate bazele sunt finite şi au acelaşi număr de elemente.
Definiţia 10. Numărul de vectori dintr-o bază a spaţiului vectorial V finit
generat se numeşte dimensiune.
Teoremă. Fie V un spaţiu vectorial n dimensional peste corpul K. Dacă
B = ¦v
1
, . . . , v
n
¦ este o bază atunci orice vector x ∈ V poate fi scris în mod
unic ca o combinaţie liniară a bazei, adică există un mod unic (x
i
)
i∈1,n
∈ K
astfel încât x =
n

i=1
x
i
v
i
.
Valorile (x
i
)
i=1,n
se numesc coordonatele vectorului x în baza B.
Teoremă. Fie V un spaţiu vectorial n dimensional peste corpul K. Sistemul
de vectori B = ¦v
1
, . . . , v
n
¦ formează bază pentru V, dacă şi numai dacă este
un sistem liniar independent de vectori.
Demonstraţie. Avem de arătat că B este un sistem generator pentru V, adică
pentru orice v ∈ V există (c
i
)
i=1,n
∈ K astfel încât să avem v =
n

i=1
c
i
v
i
.
Putem scrie:
v = c
1
v
1
+c
2
v
2
+ +c
n
v
n

(v
1
. . . v
n
) = c
1
(v
1
1
. . . v
1
n
) +c
2
(v
2
1
. . . v
2
n
) + +c
n
(v
n
1
. . . v
n
n
)

_
¸
¸
_
¸
¸
_
v
1
= c
1
v
1
1
+c
2
v
2
1
+ +c
n
v
n
1
.
.
.
v
n
= c
1
v
1
n
+c
2
v
2
n
+ +c
n
v
n
n
(9.21)
Sistemul Cramer admite soluţie unică, dacă şi numai dacă determinantul
format din coeficienţii restricţiilor:
∆ =
¸
¸
¸
¸
¸
¸
v
1
1
v
2
1
. . . v
n
1
. . . . . . . . . . . .
v
1
n
v
2
n
. . . v
n
n
¸
¸
¸
¸
¸
¸
este diferit de zero. Deoarece B este bază, iar coloanele sunt chiar compo-
nentele vectorilor (v
i
)
i=1,n
rezultă că ∆ ,= 0 şi astfel teorema este demon-
strată.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 293 — #293
i
i
i
i
i
i
Elemente de algebră liniară şi analiză matematică 293
Problemă rezolvată
Fie B = ¦v
1
, v
2
, v
3
¦ ⊂ R
3
un sistem de vectori astfel încât v
1
=
(1 0 1), v
2
= (2 1 0) şi v
3
= (−3 2 1). Se dă vectorul v =
(2 − 1 0) din R
3
. Să se arate că sistemul de vectori B este bază şi să
se determine coordonatele vectorului v în baza B!
B este bază ⇔ ∆ =
¸
¸
¸
¸
¸
¸
v
1
1
v
2
1
v
3
1
v
1
2
v
2
2
v
3
2
v
1
3
v
2
3
v
3
3
¸
¸
¸
¸
¸
¸
,= 0.
Se poate verifica uşor că determinantul format din componentele vecto-
rilor este egal cu 8, deci sistemul de vectori B este bază.
B fiind bază este sistem generator, adică există (c
i
)
i=1,3
∈ R astfel încât
să avem: v =
3

i=1
c
i
v
i
. Putem scrie:
v = c
1
v
1
+c
2
v
2
+c
3
v
3
⇔ (2 −1 0) = c
1
(1 0 1) +c
2
(2 1 0) +c
3
(−3 2 1)

_
¸
_
¸
_
c
1
+ 2c
2
−3c
3
= 2
c
2
+ 2c
3
= −1
c
1
+c
3
= 0
În urma rezolvării sistemului Cramer, vom obţine c
1
=
1
2
, c
2
= 0 c
3
= −
1
2
,
iar vectorul v = (2 −1 0) în baza B este v
B
=
_
1
2
0 −
1
2
_
.
Observaţie. Fie spaţiul vectorial real R
n
, n ≥ 2, natural. Sistemul
de vectori B = (e
1
, e
2
, . . . , e
n
) unde e
1
= (1 0 0 . . . 0); e
2
=
(0 1 0 . . . 0), . . . , e
n
= (0 0 . . . 0 1) se numeşte bază canonică. În
baza canonică notată cu B
c
, fiecare vector îşi păstrează coordonatele.
Lema substituţiei. Considerăm spaţiul liniar real R
n
.
Fie B
c
= (e
1
, . . . , e
n
) ⊂ R
n
şi luăm un vector v ∈ R
n
astfel încât v
i
,= 0.
Atunci sistemul de vectori B = (e
1
, . . . , e
i−1
, v, e
i+1
, . . . , e
n
) este bază în R
n
.
Coordonatele unui vector oarecare u ∈ R
n
în baza B sunt:
u
B
=
_
u
1
−v
1
u
i
v
i
, u
2
−v
2
u
i
v
i
, . . . , u
i−1
−v
i−1
u
i
v
i
,
u
i
v
i
, . . . , u
n
−v
n
u
i
v
i
_
.
Observaţie. Componentele vectorului u în baza B se calculează folosind
următoarele tabele:
i
i
“JATEK” — 2005/3/11 — 10:29 — page 294 — #294
i
i
i
i
i
i
294 Anexa 2
B v u
e
1
v
1
u
1
e
2
v
2
u
2
.
.
.
.
.
.
.
.
.
e
i
v
i
u
i
.
.
.
.
.
.
.
.
.
e
n
v
n
u
n
B e
i
u
e
1
0
v
i
u
1
−u
i
v
1
v
i
.
.
.
.
.
.
.
.
.
v
i
1
u
i
v
i
.
.
.
.
.
.
.
.
.
e
n
0
v
i
u
n
−u
i
v
n
v
i
Componentele vectorului u se calculează folosind regula dreptunghiului.
Probleme rezolvate
1. Considerăm sistemul de vectori B = (v
1
, v
2
, v
3
, v
4
), unde:
v
1
= (1 2 −3 0), v
2
= (−1 0 2 3), v
3
= (−1 1 0 0) şi
v
4
= (1 0 0 1). Să se determine coordonatele vectorului:
v = (2 7 −3 1) în baza B.
Construim tabelul:
B
c
v
1
v
2
v
3
v
4
v
e
1
1 -1 -1 1 2
e
2
2 0 1 0 7
e
3
-3 2 0 0 -3
e
4
0 3 0 1 1
Aplicăm lema substituţiei şi, pe rând, vom schimba vectorii din B
c
cu vectorii
(v
i
)
i=1,4
.
Putem scrie:
B
1
e
1
v
2
v
3
v
4
v
v
1
1 -1 -1 1 2
e
2
0 2 3 -2 3
e
3
0 -1 -3 3 3
e
4
0 3 0 1 1
B
2
e
1
e
2
v
3
v
4
v
v
1
1 0 1/2 0 7/2
v
2
0 1 3/2 -1 3/2
e
3
0 0 −3/2 2 9/2
e
4
0 0 -9/2 4 -7/2
B
3
e
1
e
2
e
3
v
4
v
v
1
1 0 0 2/3 5
v
2
0 1 0 1 6
v
3
0 0 1 -4/3 -3
e
4
0 0 0 -2 -17
B e
1
e
2
e
3
e
4
v
v
1
1 0 0 0 -2/3
v
2
0 1 0 0 -5/2
v
3
0 0 1 0 7/3
v
4
0 0 0 1 17/2
v
B
= (−2/3 −5/2 7/3 17/2)
i
i
“JATEK” — 2005/3/11 — 10:29 — page 295 — #295
i
i
i
i
i
i
Elemente de algebră liniară şi analiză matematică 295
2. Fie matricea A =
_
_
1 2 3
2 4 5
3 5 6
_
_
.
Să se calculeze A
−1
.
A
1
A
2
A
3
e
1
e
2
e
3
e
1
1 2 3 1 0 0
e
2
2 4 5 0 1 0
e
3
3 5 6 0 0 1
e
1
A
2
A
3
A
1
1 2 3 1 0 0
e
2
0 0 -1 -2 1 0
e
3
0 -1 -3 -3 0 1
e
1
A
2
e
3
A
1
1 1 0 -2 0 1
e
2
0 1/3 0 -1 1 -1/3
A
3
0 1/3 1 1 0 -1/3
e
1
e
2
e
3
A
1
1 0 0 1 -3 2
A
2
0 1 0 -3 3 -1
A
3
0 0 1 2 -1 0
Matricea inversă este: A
−1
=
_
_
1 −3 2
−3 3 −1
2 −1 0
_
_
Definiţia 11. Fie X un spaţiu liniar peste K (K este R sau C).
( [ ) : XX → K este formă neunitară (funcţie hermetiană) în X, dacă:
a) pentru orice α, β ∈ K şi orice x, y, z ∈ X : (αx + βy[z) = α(x[z) +
β(y[z)
b) pentru orice x, y ∈ X : (x[y) = (y[x) (conjugata complexă)
( [ ) : XX → K este semiprodus scalar în X, dacă este formă neunitară şi
c) pentru orice x ∈ X : (x[x) ≥ 0
( [ ) : X X → K este produs scalar în X, dacă este semiprodus scalar şi:
d) pentru orice x ∈ X, x ,= 0 (x[x) > 0
Teoremă. (inegalitatea lui Cauchy - Buniakowski V. (1804-1889) - Schwarz
(1843-1921))
Dacă ( [ ) : X X → K este semiprodus scalar într-un spaţiu liniar X
peste K, atunci pentru orice x, y ∈ X avem:
[(x[y)[ ≤
_
(x[x)
_
(y[y).
Exemplu. Dacă X = C[a, b] atunci (f, g) =
_
b
a
f(x) g(x)dx este produs
scalar.
Inegalitatea lui Cauchy - Buniakowski - Schwarz, în acest caz, va fi:
¸
¸
¸
¸
_
b
a
f(x)g(x)dx
¸
¸
¸
¸

¸
_
b
a
f
2
(x)dx
¸
_
b
a
g
2
(x)dx
i
i
“JATEK” — 2005/3/11 — 10:29 — page 296 — #296
i
i
i
i
i
i
296 Anexa 2
Observaţie. În literatura de specialitate, produsul scalar este notat şi cu
( [ ) sau < , > .
Norma folosită în definiţie este norma euclideană introdusă cu produsul
scalar euclidean :
|x| =

< x, x > =
¸
¸
¸
_
n

i=1
x
2
i
pentru orice x ∈ R
n
.
Definiţia 12. Mulţimea M ⊆ R
n
, M ,= ∅ se numeşte subspaţiu liniar, dacă
penru orice x, y ∈ R
n
şi pentru orice a, b ∈ R : ax +by ∈ M.
Definiţia 13. Mulţimea M ⊆ R
n
, M ,= ∅ se numeşte afină, dacă pentru
orice x, y ∈ M, şi pentru orice a ∈ R avem: (1 −a)x +ay ∈ M.
Definiţia 14. Fie M ⊆ R
n
, M ,= ∅ un subspaţiu liniar. f : M → R se
numeşte liniară, dacă pentru orice x, y ∈ M şi orice a, b ∈ R :
f(ax +by) = af(x) +bf(y).
Teoremă. (Teorema de caracterizare a funcţiilor liniare în spaţiul R
n
)
Fie M ⊆ R
n
, M ,= ∅, un subspaţiu liniar, f : M → R. Funcţia f este
liniară, dacă şi numai dacă există un punct u ∈ R
n
astfel încât f(x) = (x, u).
Teoremă. (Teorema de caracterizare a funcţiilor afine din spaţiul R
n
)
Funcţia f : R
n
→R este afină, dacă şi numai dacă există o funcţie liniară
g : R
n
→R şi c ∈ R astfel încât f(x) = g(x) +c.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 297 — #297
i
i
i
i
i
i
Anexa 3
Pachete de programe
Prezentarea şi modul de aplicare a pachetelor de programe pentru re-
zolvarea problemelor de programare matematică nu reprezintă obiectul aces-
tei cărţi.
Pentru cei interesaţi, recomandăm pachete de programe ce pot fi utilizate
cu succes şi adrese de pe Internet de unde se pot accesa pachete de programe
pentru rezolvarea problemelor prezentate în carte.
Dintre pachetele de programe, Matlab (pachet de programe numerice)
şi Mathematica (pachet de programare simbolică) pot fi folosite pentru
rezolvarea problemelor de programare matematică.
Pachetul Matlab determină soluţiile problemelor cu metodele analizei
numerice.
Denumirea pachetului provine din MATrix LABoratory, şi a fost dezvoltat
din pachetele de programe LINPACK şi EISPACK. Varianta originală a fost
scrisă în Fortran de Cleve Moler.
Pentru o aplicabilitate cât mai largă au fost dezvoltate instrumente de
lucru (Toolbox) care se ocupă cu rezolvarea unei clase speciale de probleme.
Se foloseşte "Otimazation Toolbox" la rezolvarea modelelor liniare şi
neliniare cu sau fără restricţie.
(Problemele de optimizare liniară cu restricţii se rezolvă prin procedura
x=lp (f, A, b)).
Mathematica este un pachet de programe cu scop general, şi anume:
poate fi utilizat în rezolvarea problemelor din diferite domenii ale matem-
aticii.
Iniţiatorul acestui pachet este Stephen Wolfram (în 1986).
La rezolvarea problemelor de optimizare liniară se folosesc funcţiile Con-
strainedMax, ConstrainedMin şi LinearProgramming (LinearProgramming
[c, A, b]).
În continuare, recomandăm adrese de pe Internet, de unde putem obţine
informaţii despre problemele actuale în programarea liniară, modele-tip, cele
297
i
i
“JATEK” — 2005/3/11 — 10:29 — page 298 — #298
i
i
i
i
i
i
298 Anexa 3
mai frecvente întrebări, pachete de programe (gratuite, comerciale, variante
"demo" pentru pachete care pot fi cumpărate) şi altele.
Informaţii utile se obţin de pe site-ul Centrului de optimizare "Optimiza-
tion Technology Center of Northwestern University and Argonne National
Laboratory":
http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-
faq.html
Folosind adresa de mai sus, putem obţine informaţii despre pachetul de
programe bazate pe algoritmul simplex (GLPK - GNU Linear Programming
Kit). LP-Optimizer poate fi utilizat pentru probleme de programare liniară şi
în numere întregi. LP-Optimizer a fost realizat de către Markus Weidenauer.
Sursa Borland Pascal 7.0 şi Borland Delphi 4 poate fi descărcat gratuit.
SoPlex este o implementare orientată obiect al algoritmului simplex primal
şi dual. Sursa poate fi descărcată gratuit în scop necomercial.
Pot fi descărcate, de asemenea, pachete de programe care se bazează pe
metoda punctelor interioare.
Pentru programare liniară şi pătratică a fost creat un soft de Csaba
Meszaros. Varianta "demo", care rezolvă probleme de dimensiunea 500500,
poate fi descărcată.
De pe site-ul HOPDM, se poate obţine programul realizat de Jacek
Gondzio, dezvoltat pentru rezolvarea problemelor de programare liniară şi
pătratică.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 299 — #299
i
i
i
i
i
i
Bibliografie
[And] András A., András P., Szabo Zs., A Genetic Solution for the Cut-
ting Stock Problem, Proceedings of the First Online Workshop on
soft Computing, Japan, 1996, http://www.uchikawa.nuie. nagoya-
u.ac.jp/wsc 1/papers/listabst.html/GA Application.
[Baj] Bajalinov E., Balázs I., Operációkutatás, Szeged, SZTE Bolyai In-
tézet, Polygon Jegyzettár, 2001.
[Bal] Balinski M.L., Tucker A.W., Duality Theory of Linear Programs: A
constructive Approach with Applications, SIAM Review, 11(1969),
no.3.
[Bea] Beale E.M.L., Cycling in the Dual Simplex Algorithm, Naval Re-
search Logistics, Quarterly, 2, (1955), no.4.
[Bla] Blaga L., Lupşa L., Elemente de programare liniară, Cluj-Napoca,
Risoprint, 2003.
[Blan] Bland R.G., New Finite Pivoting Rules for the Simplex Method,
Mathematics of Operations Research, 2 (1977), pp. 103-107.
[Bre] Breckner W., Cercetare operaţională, Cluj-Napoca, Universitatea
"Babeş-Bolyai", 1981.
[Cha] Chankong V., Haimes Y. Y., Multiobjective Decisior: Making, New
York, North-Holland Publishing Company, 1983.
[Char] Charnes A., and Cooper W. W., Management Models and Indus-
trial Application of Linear Programming, vol. I and II, New York,
John Wiley & Sons, Inc., 1960.
[Chr] Charnes A., Optimality and Degeneracy in Linear Programming,
Econometrica, 20 (1952).
299
i
i
“JATEK” — 2005/3/11 — 10:29 — page 300 — #300
i
i
i
i
i
i
300 Bibliografie
[Dan] Dantzig G.B., Comments on Khachian’s Algorithm for Linear Pro-
gramming, Technical Report SOL 79-22, Department of Operations
Research, Stanford University, Stanford, CA, 1979.
[Dan1] Dantzig G.B., Linear Programming and Extensions, Princeton,
Princeton University Press, NJ, 1963.
[Dant] Dantzig G.B., Maximization of a Linear FUnction of Variables Sub-
ject to Linear Inequalities, Chap. 21 from Activity Analysis of Pro-
duction and Allocation, Cowles Commision Monograph 13, New
York, John Wiley & Sons, Inc, 1951.
[Dany] Danyi P., Varró Z., Óperációkutatás üzleti döntések
megalapozásához, Jannus Pannonius Tudományegyetem, Pécs,
1997.
[Dob] Dobkin D.P., Reiss S.P., The Complexity of Linear Programming,
Theoretical Computer Science, 11 (1980).
[Eck] Ecker J. G., and Kouada I. A., Finding Efficient Points for Lin-
eal Multiple Objective Programs, Mathematical Programming, 8
(1975), no.3.
[Ecke] Ecker J. G., Kouada A., Finding All Efficient Extreme Points for
Multiple Objective Linear Programs, Mathematical Programming,
14 (1978), no. 2.
[Fab] Fabozzi F.J., Valente J., Mathematical Programming in American
Companies, A Sample Survey, Interfaces, 7(1) (1976), november.
[Far] Fărcaş Gh., Algebră (Cap.6), Editura Universităţii "Petru Maior",
Tg.Mureş, 1996.
[Fark] Farkas J., Über die Theorie der einfachen Ungleichungen, J. Reine
Angrew. Math.,124, (1902).
[Fia] Fiacco A.V., McCormick G.P., Nonlinear Programming, Sequen-
tial Unconstrained Minimazation Techniques, John Wiley and Sons,
New York, 1968. Reprint 4 (1990) SIAM Classics in Applied Math-
ematics, SIAM Publications, Philadelphia, PA, USA.
[Gas] Saul L. Gass, Linear Programming, An International Thomson
Publishing Company, 1985.
[Gass] Gass S.I., RapcsákT., Singular value decomposition in AHP, Euro-
pean Journal of Operational Research, 154 (2004).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 301 — #301
i
i
i
i
i
i
Bibliografie 301
[Gasp] Gáspár L., Temesi József, Matematikai Programozási gyakorlatok,
Nemzeti Tankönyvkiadó, Budapest,1989.
[Gal] Gal T., A General Method for Determining the set of All Efficient
Solutions to a Linear Vector-maximum problem, European Journal
of Operational Research, 1(1977).
[Gje] Gjerrit Meinsma, Interioar Point Methods, Systems and Control
Group Department of Applied Mathematics, The University of
Twente, 1997.
[Gom] Gomory R.E., Essentials of on Algorithm for Integer Solutions to
Linear Programs, Bulletin of the American mathematical Society,
64 (1958).
[Hil] Hillier & Lieberman, Introduction to Operation Research, 7th Ed.
Holden-Day, 1996.
[Hit] Hitchcock F.L., Distribution of a Product from Several Soures to
Numerous Localities, Jorunal of Mathematical Physics, 20 (1941).
[Ise] Isermann H., The Enumeration of the Set of All Efficient Solu-
tions for a Linear Multiple Objective Program, Operational Re-
search Quarterly, 28(1977), no.3.
[Jer] Jeroslow R.G., Kortanek K.O.,Dense Sets of Two Variable Inte-
ger Programs Requiring Arbitrarly Many Cuts by Fractional Algo-
rithms, Man.Sci.Res. Rep. 174 (1969), Carnegie-Mellon University.
[Kan] Kantorovich L.V., Mathematical Methods of Organization and
Planning Production, Publication House of the Leningrad State
University, 1939, translated in Management Science, 6 (1960),
no.42.
[Kar] Karush W., Minimia of functions of Several Variables with Inequal-
ities as Slide Conditions, M.S. Thesis, Department fo mathematics,
University of Chicago, 1939.
[Karm] Karmarker N., A new polynomial-time algorithm for linear pro-
gramming, Combinatoria 4 (1984).
[Ken] Kennigton, Jeff L. and Richard V. Helgason, Algorithms for Net-
work Planning, Wiley-Interscience, Somerset, N.J., 1980.
[Kha] Khachiyan L.G., A Polynomial Algorithm for Linear Programming
(Russian), Doklady Akad. Nauk SSSR, 244 (1979).
i
i
“JATEK” — 2005/3/11 — 10:29 — page 302 — #302
i
i
i
i
i
i
302 Bibliografie
[Kle] Klee V., Minty G.J., How Good is the Simplex Method?, O. Shisha
(ed.), Inequalities III, Academic Press, New York, 1972.
[Koo] Koopmans T.C., Three Essays on the state of Economic Science,
New York, Mc Grow-Hill Book Company, 1957.
[Koop] Koopmans T.C., Optimum Utilization of the Transportation Sys-
tem, Econometrica, 17, supplement, (1949).
[Kuh] Kuhn H.W., Tucker A.W., Nonlinear Programming, Proceedings of
the Second Berkeley Symposium, Berkeley, University of California
Press, 1951, pp. 481-492.
[Led] Ledbetter W.N., Cox J.F., Are OR Techniques Being Used, Indus-
trial Engineering, pp. 19-21, February 1977.
[Len] Lenstra J.K., Rinooy Kan A.H.G., P. van Emde Boas, Am Ap-
praisal of Computational Complexity for Operations Researchers,
European Journal of Operations Research, 11 (1982).
[Lup] Lupşa L., Probleme particulare de programare liniară şi neliniară,
Teză de doctorat, UBB Cluj-Napoca, 1982.
[Mar] Martos Béla, Hiperbolikus programozás, MTA Mat. Kut. Kozl.
(1960), Nr. 4.
[Maru] Maruşciac I., Programare matematică, Cluj-Napoca, Universitatea
"Babeş-Bolyai", 1975.
[Mars] Marshall K.T., Suurballe J.W., A Note on Cycling in the Simplex
Method, Naval Research Logistics Quarterly, 16 (1969), no.1.
[Mau] Maurice W. Kirby, Operational Research in War and Peace. The
British Experience from the 1930s to 1970, Imperial College Press
(2003).
[McC] McCall E.H., A Study of Khachiyan Algorithms for Real -World
Linear Proggraming, Sparry Univac, St. Paul, MN, 1980.
[Meg] Megiddo, Pathways to the optimal set in linear programming,
Springer-Verlag, New-York (1989), Chap.8, pp.131-158, Progress
in Mathematical Programming: Interior Point and Related Meth-
ods.
[Mei] Meinsma G., Interior - Point Methods, University of Twente, 1997.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 303 — #303
i
i
i
i
i
i
Bibliografie 303
[Mor] Morse, Kimball, Methods of Operations Research, Columbia Uni-
versity Press for Office of Naval Research, 9
th
printing 1963.
[Morr] Morris, William T., On the Art of Modeling, Management Science
13(1967).
[Nes] Nesterov Y.E., Nemirovski A.S., Interior Point Polynomial Meth-
ods in Convex Programming, Theory and Algorithms, SIAM Pub-
lications, SIAm Philadelphia, USA, 1993.
[Pap] Papadimitriou C.H., Steiglitz K., Combinatorial optimization, Al-
gorithms and Complexity, Prentice Hall, Inc., Englewood Cliffs,
N.J., 1982.
[Phi] Philip J., Algorithms for the Vector Maximization Problem, Math-
ematical programming 2 (1972), no. 2.
[Poc] Pocock I.W., PERT as an Analitical Aid for Program Panning -
Its Payoff and Problems, Operation Research, 10 (1962).
[Pre] Prékopa András Lineáris Programozás I. Editura Bolyai János
Matematikai Társulat, Budapest, 1967.
[Rar] Ronald L. Rardin, Optimization in Operations Research, Prentice-
Hall Inc. 1998.
[Roo] Roos C., Terlaky T., Vial J.Ph., Theory and Algorithms for Linear
Optimization. An Interior Approach. John Wiley and Sons, Chich-
ester, UK, 1997.
[Ros] Roşculeţ M.N., Algebră liniară, geoemtrie analitică şi geometrie
diferenţială, Editura Tehnică, 1987.
[Sch] Scharnitzky Viktor, Vektorgeometria és lineáris algebra, Budapest,
Nemzeti Tankönyvkiadó, 1985.
[Sip] Charles J. Sippl, Charles P. Sippl, Computer Dictionary, Howard
W. Sams & CO., Inc. Indianapolis, 1978.
[Sta] Stahl J., Optimumszámítas, Budapest, Aula kiadó, 1991.
[Sti] Stigler G.J., The Cost of Subsistence, Journal of Farm Economics,
27 (1945).
[Sto] Stoyan G., Matlab 4. és 5. verzió, Budapest, Typotex Kiadó, 1999.
[Şte] Ştefănescu A. , Cercetări operaţionale, Ed. did. şi ped. 1981.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 304 — #304
i
i
i
i
i
i
304 Bibliografie
[Sza] Szabó Zs., Kovács M., On Interior Point Methods and Simplex
Method in Linear Programming,Prima Conferinţă de Cercetări Op-
eraţionale, Constanţa, (în curs de apariţie), 2003.
[Szi] Szili L., Tóth J., Matematika és Mathematica, Budapest, ELTE
Eötvös Kiadó, 1996.
[Tem] Temesi J., A döntéselmélet alapjai, Ed. Aula, 2002.
[Thi] Paul R. Thie, An Introduction to Linear Programming and Game
Theory, Second Edition, John Wiley and Sons, 1988.
[Tur] Turban E., A Sample Survey of Operations Research Activities at
the corporate Level, Operations Research, 20(1972).
[Var] Varga J., Matematikai programozás, Egyetemi Tankönyvkiadó.
1977.
[Vra] Vrânceanu Gh., Mititelu, Probleme de cercetare operaţională, Ed.
Tehnică, Bucureşti, 1978.
[Way] Wayne L. Winston, Operations Research, PWS - Kent Publishing
Company, 1991.
[Wei] Weist, Jerome D. and Ferdinand K. Levy, Management Guide to
PERT/CPM, 2nd ed, Prentice-Hall, Englewood Cliffs, N.I., 1977.
[Wil] Williams H.P., Model Building in Mathematical Programming, 2
nd
,
New-York, Ed., Wiley, 1985.
[Wol] Wolfe P., A Technique for Resolving Degeneracy in Linear Pro-
gramming, SIAM J. Appl.Math, 11(1963).
[Wri] Stephen Wright, Interior-Point Methods, Computer Sciences De-
partment, University of Wiscontis-Maditou, 2002.
[Yud] Yudin D.B., Gol’shtein E.G., Linear Programming, Jerusalem, Is-
rael Program for Scientific Translations Ltd., 1965.
[Zid] Zidăroiu C., Programarea Liniară, Editura Tehnică, Bucureşti,
1983.
[Zio] Zionts S., and Wallenius J., An Interactive Multiple Objective Lin-
ear Programming Method for a Class of Underlying Nonlinear Util-
ity Functions, Management Science, 29 (1983), no. 5.
i
i
“JATEK” — 2005/3/11 — 10:29 — page 305 — #305
i
i
i
i
i
i
Glosar
algoritm simplex primal, 49
bază, 47
bază primal admisibilă, 48
cercetare operaţională, 13
convexă, 29
degenerată, 25
forma canonică, 24
forma generală, 23
forma standard, 24
forma standard de lucru, 36
hiperplan, 29
mijloace active, 13
model, 23
mulţime poliedrală, 30
mulţimea, 29
nedegenerată, 25
operaţie, 13
optimizare liniară, 23
parte operativă, 13
politica, 13
politop, 30
preţul umbră, 26
semispaţiu, 29
simplex, 31
soluţie admisibilă, 25
soluţie de bază, 25
soluţie posibilă, 25
strategia, 13
strategii optime, 13
variabile artificiale, 36
variabile auxiliare, 35
305

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 2 — #2

i

2

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 3 — #3

i

Dedic această carte fiicelor mele, Dalma şi Marietta

Prefaţă
Datorită posibilităţilor oferite în practică, programarea matematică cunoaşte o dinamică spectaculoasă. Programarea matematică devine imperativă în determinarea soluţiilor pentru fenomenele din cele mai diverse domenii social-economice şi pentru o varietate de probleme decizionale. În acest sens, responsabilitatea revine celor care construiesc şi rezolvă modele ale fenomenelor, deoarece modelarea, rezolvarea şi interpretarea soluţiilor obţinute trebuie să fie conforme cu realitatea obiectivă. Altfel ar apărea erori cantitative. Cartea prezintă în mod riguros, din punct de vedere matematic, teoria modelelor de optimizare liniară cu restricţii. Sunt prezentate metode numerice de rezolvare - algoritmul simplex şi metoda punctelor interioare. De asemenea sunt tratate modele de optimizare rezolvabile cu algoritmul simplex, teoria jocurilor matriceale şi modele speciale de optimizare liniară. Cartea cuprinde, pe lângă prezentarea teoretică, un număr mare de probleme rezolvate şi aplicative din domeniul economic. Demonstraţiile prezentate, aparent, sunt lipsite de interes pentru cititorii nematematicieni, pentru cei interesaţi doar de aplicarea metodelor, însă evidenţiază valoarea de adevăr a proprietăţilor şi a afirmaţiilor prezentate. Noţiunile din algebra liniară şi analiza matematică necesare comprehensiunii aspectelor tratate în carte fac obiectul Anexei 2. Cartea este destinată studenţilor de la facultăţile de ştiinţe economice, matematică, inginerie economică - inginerie şi management, adresându-se în acelaşi timp şi unui grup larg de cititori dornici să se iniţieze în acest domeniu sau să aprofundeze instrumente ştiinţifice de optimizare a diverselor probleme cu care se confruntă în practica economică. Mulţumesc referenţilor, doamnei conf. dr. Liana Lupşa, Universitatea "Babeş-Bolyai" Cluj-Napoca şi conf. dr. Adrian Petrescu, Universitatea "Petru Maior", Târgu-Mureş, pentru observaţiile pertinente de care am ţinut seama în îmbunătăţirea calităţii volumului de faţă!

3
i i i i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 4 — #4

i

4 Mulţumesc prietenelor mele, Luminiţa Chiorean, pentru sugestiile date în urma lecturării manuscrisului, respectiv Csizmadia Erzsébet, pentru ajutorul substanţial acordat în tehnoredactarea computerizată! Mulţumesc personalului de la Tipografia MasterDruck, în special d-lui director Klosz Viktor şi d-lui Kuti Zoltán, pentru amabilitate şi sprijinul acordat în editarea cărţii! Mai cu seamă, rămân recunoscătoare familiei mele, soţului şi celor două fiice, pentru contextul moral benefic: înţelegerea şi răbdarea fără de care cartea nu ar fi prins contur!

Autoarea

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 5 — #5

i

Cuprins
1 Introducere 1.1 Caracteristici esenţiale ale cercetării opera-ţionale . . . . . . . 1.2 Introducere în optimizare . . . . . . . . . . . . . . . . . . . . 1.3 Modele tip de optimizare . . . . . . . . . . . . . . . . . . . . . 2 Teoria problemelor de optimizare liniară cu restricţii 2.1 Forme ale modelului de optimizare liniară cu res-tricţii . . . . 2.2 Soluţii ale problemei de optimizare liniară cu res-tricţii . . . . 2.3 Teoria poliedrelor, inegalităţi liniare şi programare liniară . . 2.4 Trecerea unei probleme de programare liniară cu restricţii de la o formă matematică de prezentare la alta . . . . . . . . . . 2.5 Rezolvarea grafică a modelelor cu m restricţii şi două variabile 3 Metoda simplex 3.1 Noţiuni introductive . . . . . . . . . . . . . . . . . . . . . . 3.2 Bazele teoretice ale algoritmului simplex primal . . . . . . . 3.3 Rezolvarea modelelor care, iniţial, nu admit soluţii de bază . 3.4 Degenerare şi ciclare în aplicarea algoritmului simplex . . . 4 Teoria dualităţii 4.1 Introducere în dualitate . . . . . . . . . . . . . . . 4.2 Formularea problemei duale . . . . . . . . . . . . . 4.3 Interpretarea economică a dualităţii . . . . . . . . 4.4 Teoreme de dualitate . . . . . . . . . . . . . . . . . 4.5 Algoritmul simplex dual . . . . . . . . . . . . . . . 4.6 Bazele teoretice ale algoritmului simplex dual . . . 4.7 Determinarea soluţiilor problemei duale cu ajutorul tabel simplex al problemei primale . . . . . . . . . 4.8 Legătura dintre soluţiile unui cuplu dual . . . . . . 5
i i i i

9 9 14 15 21 23 24 28 33 39 47 47 56 64 75 81 81 82 85 86 91 95

. . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ultimului . . . . . . 99 . . . . . . 104

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 6 — #6

i

6 5 Reoptimizare 109 5.1 Reoptimizarea în urma modificării termenului liber . . . . . . 110 5.2 Reoptimizarea în urma modificării coeficienţilor funcţiei de scop114 5.3 Reoptimizarea în urma modificării matricei res-tricţiilor . . . 118 6 Tipuri speciale de probleme de optimizare 6.1 Programare discretă . . . . . . . . . . . . . . . . . . 6.1.1 Bazele programării discrete . . . . . . . . . . 6.1.2 Metode de tip tăietură. Metoda lui Gomory 6.1.3 Programare dinamică discretă . . . . . . . . . 6.2 Programare liniară parametrică . . . . . . . . . . . . 6.2.1 Parametrizarea membrului drept . . . . . . . 6.2.2 Parametrizarea funcţiei de scop . . . . . . . . 6.3 Programare hiperbolică . . . . . . . . . . . . . . . . 6.4 Programare multicriterială . . . . . . . . . . . . . . . 7 Problema de transport 7.1 Formularea problemei. Proprietăţi generale . . . . . 7.1.1 Proprietăţi ale matricei coeficienţilor . . . . . 7.1.2 Proprietăţi grafice ale problemei de transport 7.1.3 Determinarea unei soluţii de bază . . . . . . . 7.1.4 Adaptarea algoritmului simplex . . . . . . . . 7.1.5 Utilizarea problemei duale . . . . . . . . . . . 7.1.6 Algoritmul de transport . . . . . . . . . . . . 7.1.7 Probleme propuse şi rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 125 125 129 135 135 137 141 149 157 171 171 176 176 179 180 182 183 185 211 211 213 214 216 224 225 227 231 233 233 237 240 249

8 Teoria jocurilor 8.1 Introducere în teoria jocurilor . . . . . . . . . . . . . . . . . . 8.2 Jocuri matriceale . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Strategii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Strategii optime . . . . . . . . . . . . . . . . . . . . . 8.3.2 Strategii optime într-un joc matriceal simetric . . . . . 8.3.3 Proprietăţi ale strategiilor optime şi ale valorii unui joc matriceal . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.4 Strategii pure . . . . . . . . . . . . . . . . . . . . . . . 8.4 Principiul dominării . . . . . . . . . . . . . . . . . . . . . . . 8.5 Rezolvarea jocurilor matriceale . . . . . . . . . . . . . . . . . 8.5.1 Rezolvarea jocurilor matriceale cu punct şa . . . . . . 8.5.2 Metode generale de rezolvare a jocurilor matriceale . . 8.5.3 Rezolvarea jocurilor matriceale prin reducere la modele de optimizare liniară cu restricţii . . . . . . . . . . . . 8.5.4 Rezolvarea jocurilor de tipul 2 × m, (n × 2) . . . . . .

i i i

i

. . . . 260 9. . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Anexa 1 Anexa 2 Anexa 3 Bibliografie 273 289 297 299 i i i i . . . . . . . . . . . . . . . . .i i i “JATEK” — 2005/3/11 — 10:29 — page 7 — #7 i 7 9 Metoda punctelor interioare 257 9.1 Introducere . . . . . . .3 Concluzii . . . . . . . . . . . . . . . . . . . . .2 Metoda Karmarkar . . . 257 9. . . . .

i i i “JATEK” — 2005/3/11 — 10:29 — page 8 — #8 i 8 i i i i .

În anul 1942. Morse din Massachusetts şi William Shockley de la Bell Laboratories (pentru contribuţia adusă la tranzistoare. Baker a creat grupul ASWORG (Anti-Submarine Warfare Operations Research Group) care a devenit mai târziu ORG (Operational Research Group).i i i “JATEK” — 2005/3/11 — 10:29 — page 9 — #9 i Capitolul 1 Introducere 1. În fruntea acestui grup a fost invitat Philip M. În 1938. cunoaşte o dezvoltare extrem de rapidă. Rowe este conducătorul acestui grup în Bawdsey (Anglia).1 Caracteristici esenţiale ale cercetării operaţionale Cercetarea operaţională este una dintre cele mai noi ramuri ale matematicii aplicate. când ofiţerii forţelor militare aliate au efectuat analiza operaţiilor militare prin construirea şi rezolvarea unor modele de optimizare liniară [Mau]. loc de lansare a cercetării operaţionale. va obţine premiul Nobel). Încă din perioada 1935-1937. La dezvoltarea sa remarcabilă.P. oameni de ştiinţă şi cercetători au fost solicitaţi să-şi aducă contribuţia în vederea elaborării strategiilor şi a studiu-lui problemelor de tactică militară. Cercetarea operaţională se ocupă cu determinarea deciziei optime în urma rezolvării modelelor deterministice şi stohastice construite pentru studiul fenomenelor din cele mai diverse domenii ale vieţii. Scurt istoric Primele activităţi în acest domeniu au apărut în timpul celui de-al doilea Război Mondial. A. căpitanul american W. datorită aplicabilităţii largi şi a utilităţii semnificative. A apărut după 1950 şi. un rol semnificativ l-au jucat revoluţia industrială (prin creşterea complexităţii problemelor) şi dezvoltarea spectaculoasă a tehnicii de calcul. 9 i i i i .D.

Karush [Kar] în 1939. Programele PERT şi CPM sunt utile în proiectare. un model de programare liniară (National Bureau of Standards SEAC Machine). T.i i i “JATEK” — 2005/3/11 — 10:29 — page 10 — #10 i 10 1. Astfel. în 1958. exista deja o teorie bine dezvoltată a programării liniare. Frank Hitchcock [Hit] şi.W. G. prin schimbarea numărului de angajaţi) şi se urmăreşte raportul dintre timpul şi costurile necesare realizării planului. formulează un model matematic pentru stabilirea hranei raţionale pentru animale. aceste durate sunt flexibile (pot fi uşor modificate. în planificarea proiectelor de cercetare şi de dezoltare. în 1947. pentru prima dată. Condiţii necesare de optim în programarea neliniară au fost formulate de H. În general proiectele de construcţii şi de întreţinere sunt de acest tip. Metoda elaborată este cunoscută sub denumirea de metoda simplex. are loc în 1949. Unele noţiuni ale acestei teorii s-au dovedit extrem de utile în teoria informaţiei. R. PERT a fost folosit prima dată în Statele Unite ale Americii. Pogramul CPM este extrem de util atunci când durata activităţilor poate fi precizată (de exemplu.S. Kuhn şi A. Analiza circuitelor şi a reţelelor reprezenta dintotdeauna o problemă importantă în electrotehnică. Prima conferinţă de programare matematică. Stigler [Sti]. în cibernetică. altfel i i i i . Aceste programe nu sunt perfecte. cunoscută ca "zero symposium". Introducere În paralel se poate observa propagarea acestor metode de lucru în diferite ramuri ale economiei. Department of Air Force). Gomory [Gom] prezintă o metodă generală de rezolvare a modelelor de programare în numere întregi în anul 1958. de exemplu.W. în programul de rachete balistice ale flotei şi a redus cu doi ani timpul prevăzut pentru lansarea rachetelor Polaris. dar într-un alt context. în urma unor experienţe anterioare). în 1945. o problemă de amestec în domeniul petro-chimic s-a rezolvat în 10 ore). Tucker [Kuh] în 1951.C.E.B. Dantzig. Marshall Wood şi de asociaţii lor de la Departamentul Forţelor Aeriene (U. Problema gene-rală de programare liniară a fost studiată şi aplicată în 1947 de G. Înainte de sfârşitul anilor 1950. Acest rezultat este independent de cel obţinut şi prezentat în teza de doctorat a lui W. a teoriei firelor de aşteptare şi a teoriei stocării. pe calculator. în mod independent. Proiectele de cercetare şi dezvoltare intră în această categorie. În ianuarie 1952 a fost rezolvat. în 1941. PERT poate fi aplicat cu succes dacă incertitudinea privind previziunea duratei activităţilor este mare şi se doreşte verificarea eficace a timpului de rulare a proiectului. S-a constatat că şi în domenii nemilitare pot fi formulate probleme asemănătoare. Borz Allen şi Hamilton dezvoltă programul PERT (Program Evaluation and Review Technique) şi metoda drumului critic CPM (Critical Path Method). Koopmans [Koo] formulează problema de transport. a programării dinamice. Apare primul program comercial de programare liniară în anul 1954 (cu ajutorul acestuia. nu pot fi aplicate fără verificarea ipotezelor.

Testele preliminare au arătat că algoritmul Karmarkar este de 50 de ori mai rapid decât algoritmul simplex. În 1984. Karmarkar. Pentru studiul acestei teorii se recomandă [Meg]. transport. [Nes]. cele mai mari. programator la AT&T Bell Laboratories. Khachiyan [Kha] a publicat un algoritm de complexitate polinomială pentru rezolvarea modelelor de optimizare liniară. În prezent există sute de variante ale metodei punctelor interioare şi au fost publicate peste 2000 de articole. matematicianul rus L. Impactul cercetării operaţionale Impactul cercetării operaţionale asupra conducerii întreprinderilor şi a instituţiilor este în continuă creştere. [Gje]. Modelul liniar obţinut pentru studiul acestei probleme conţinea 150 000 de variabile şi 12 000 de restricţii şi soluţia s-a obţinut într-o oră. comerţ). eficient în practică. În 1979. În acest sens. fiind ineficient în practică. [Ken].G. Minty [Kle]. [Roo]. Astfel a obţinut un algoritm de complexitate polinomială. Caracteristici esenţiale ale cercetării operaţionale 11 rezultatele obţinute sunt eronate. Klee şi G. [Dob]. În 1972. Alte exemple. [Len]. Măsura impactului nu poate fi comparată cu nici o altă descoperire. pot fi consultate lucrările [Wei]. A aplicat metoda punctelor interioare pentru rezolvarea modelelor liniare la care a adăugat o analiză inovatoare. N. E. Turban [Tur] a publicat un sondaj privind dimensiunea aplicării metodelor cercetării operaţionale din anul 1969. Karmarkar [Karm] prezintă un algoritm de complexitate polinomială pentru rezolvarea modelelor liniare. Acest algoritm are doar importanţă teoretică. numit "algoritm elipsoidal". în cazul problemelor de mari dimensiuni. Dintre 500 de companii. după cum arată analizele comparative făcute de McCall [McC] în 1980 şi Dantzig [Dan] în 1979. Metoda punctelor interioare a fost introdusă în 1960 de către Fiacco [Fia] şi McCormick. pot fi găsite în [Pap]. Metoda lui Karmarkar a fost utilizată de către Comanda Militară Americană a Podurilor Aeriene (Military Airlift Command) pentru a determina frecvenţa zborurilor şi tipul de aeronavă necesar planificării zborurilor. Cu algoritmul simplex o problemă cu o structură asemănătoare formată numai din 36 000 de variabile şi 10 000 de restricţii a fost rezolvată în 4 ore. Karmakar a readus în centrul atenţiei această metodă. Au fost trimise 475 de chestionare pentru directorii şi i i i i . în 1972. a dezvoltat algoritmul elipsoidal ca să devină eficient şi în practică.i i i “JATEK” — 2005/3/11 — 10:29 — page 11 — #11 i 1. privind eficienţa computaţională a algoritmului. mai performant decât algoritmul simplex în cazul modelelor de mari dimensiuni. [Wri].J. ca apoi să fie abandonată. arată că algoritmul simplex este un algoritm de complexitate exponenţială.1. au fost alese companii industriale şi companii din toate categoriile de servicii (bănci. asigurări. după "Fortune". AV. considerate.

iar cele două societăţi publică revistele "Mathematics of Operations Research" şi "Interfaces". programarea liniară era metoda cea mai frecvent aplicată. O serie de rezultate remarcabile ale cercetării operaţionale au fost apreciate cu premiul Nobel în Economie. planificarea investiţiilor. Datorită impactului semnificativ. s-au format societăţi naţionale şi internaţionale de cercetare operaţională. Canada. De exemplu. Germania. Franţa. analiza bugetului. Harsányi. Japonia. Aceste reviste sunt generoase în informaţii. cu participarea a peste 30 de ţări. Arrow obţin premiul pentru contribuţiile aduse în teoria generală a echilibrului economic. în anul 1973. A fost creat Institutul de Management în 1953 (TIMS).V. Markowitz. publicând anual. Au obţinut un rezultat asemănător. în peste 3000 de pagini. John C. i i i i . Aşadar s-au confirmat rezultatele sondajului date de Turban. Cercetătorii au ajuns la concluzia că aplicaţiile cele mai importante se concretizează la determinarea amestecului de produse. s-a format Institutul de Cercetări Operaţionale şi de Management (INFORMS). Miller şi Wiliam F. după analiza statistică şi simulare. În 1976. Ledbetter şi Cox [Led] au publicat un sondaj asemănător privind situaţia aplicării metodelor cercetării operaţionale în anul 1975. Sir John R. analiza unificării şi cumpărării companiilor. John F. S-a constatat că. Kantorovich şi T.i i i “JATEK” — 2005/3/11 — 10:29 — page 12 — #12 i 12 1. ocupă funcţia de preşedinte o doamnă. Italia. planificarea financiară. Marton M. În anul 1952. pentru prima dată în istoria societăţii. iar TIMS. Introducere conducătorii de companii. Reviste asemănătoare sunt editate şi în Anglia. la planificarea timpului de lucru. În 1977. a fost fondată Societatea Ameri-cană de Cercetări Operaţionale (ORSA) (în anul 1987. în 1975. H. Nash şi Reinhard Selten obţin premiul pentru rezultatele obţinute în analiza echilibrului în teoria jocurilor "necooperative". în 1972. Astfel la 1 ianuarie 1959. Judith S. cele mai noi rezultate din domeniu. L.C. Wassily Leontief obţine premiul pentru dezvoltarea şi aplicarea modelelor input-output în problemele importante ale economiei. s-a creat Federaţia Internaţională de Cer-cetare Operaţională (IFORS). În 1995. ORSA scoate revista "Operations Research". revista "Management Science". Koopmans obţin acest premiu pentru contribuţia adusă la dezvoltarea teoriei alocării optime a resurselor. pe plan mondial.M. Sharpe obţin premiul pentru munca de pionieriat în teoria economiei financiare. în 1994. prin unificarea celor două societăţi ORSA şi TIMS. Majoritatea companiilor au folosit în aplicarea metodelor şi tehnica de calcul. în 1990. Liebman). Fabozzi şi Valente [Fab] publică rezultatul unui sondaj referitor la anul 1974 în care s-au analizat domeniile de aplicare a programării liniare şi a programării dinamice. Hicks şi Kenneth J.

Definiţia 1. se poate spune că cercetarea operaţională este o ramură a matematicii aplicate care se ocupă cu modelarea problemelor complexe de inginerie. se poate observa că există o serie de definiţii ale cercetării operaţionale. Observaţia 1. din orice domeniu al activităţii umane). [Bre] Prin operaţie se înţelege un ansamblu de acţiuni îndreptate spre realizarea unui anumit scop. geometrie diferenţială. Fiind o ramură a matematicii aplicate. Definiţia 4. management. Definiţia 3. analizează aceste modele cu scopul obţinerii soluţiilor posibile şi aplică metodele analitice ale matematicii în scopul determinării deciziilor (soluţiilor. În continuare. de exemplu. Ronald L. Sippl şi Charles P. Charles J. Morse şi Kimball [Mor]. Rardin. Prin folosirea lor (de regulă cheltuielile lor) partea operativă îşi realizează scopul. adică de factorii controlabili şi de factori care nu pot fi influenţaţi de partea operativă şi care formează condiţiile efectuării operaţiei. politicilor. pentru studiul modelelor sunt necesare cunoştinţe de matematici superioare. educaţie. Modul de utilizare a mijloacelor active se numeşte strategia (sau politica) părţii operative. ecuaţii diferenţiale. strategiilor) optime. Orice operaţie are un singur scop care poate fi compus din mai multe obiective. cum ar fi algebra liniară. În concluzie. teoria probabilităţilor. 1978. prezentăm câteva noţiuni de bază. 1998.1. se deosebesc patru etape fundamentale: i i i i . 1996. [Rar] etc. În continuare. [Bre] Se numeşte parte operativă mulţimea acelor persoane sau factori care acţionează într-o operaţie pentru îndeplinirea scopului propus. sănătate (teoretic. [Bre] Prin mijloace active înţelegem anumite resurse care stau la dispoziţia părţii operative. marketing. prezentăm surse bi-bliografice ce oferă asemenea definiţii: 1943. Acele strategii care conduc la realizarea scopului se numesc strategii optime .i i i “JATEK” — 2005/3/11 — 10:29 — page 13 — #13 i 1. În studiul oricărei operaţii (indiferent de domeniul căruia îi aparţine). analiza funcţională. Hillier & Lieberman [Hil]. condiţiile meteorologice reprezintă factorii necontrolabili. Caracteristici esenţiale ale cercetării operaţionale Obiectul cercetării operaţionale 13 Citind şi analizând literatura de specialitate. Rezultatele unei operaţii depind de strategia aleasă. analiza matematică. Definiţia 2. Sippl [Sip]. În agricultură.

c) estimarea şi compararea eficacităţii diverselor strategii pe baza modelului construit. continuându-se exemplele. Lagrange rezolvă o problemă de optimizare cu restricţii simple formată din egalităţi.2 Introducere în optimizare Există foarte puţine noţiuni ştiinţifice uzuale atât în ştiinţă. trebuie să fie cât mai simplu. planificarea optimă a invesiţiilor. pe de altă parte. [Wil]. modelul trebuie să reflecte cât mai exact procesul real. Pe de o parte.criteriile de optim pot fi formulate cu funcţii reale sau funcţii vector de n variabile reale liniare sau neliniare.căutarea şi descrierea mijloacelor de acţiune care ar putea duce la atingerea scopului operaţiei. În mod independent. există tendinţa "optimizării" activităţilor. obţinem un obiect optim subiectiv. matematician german. Putem auzi de planificarea optimă a producţiei. Introducere a) analiza operaţiei . b) construirea unui model matematic al operaţiei care să ofere o descriere matematică a scopului. A avea o "activitate optimă" înseamnă de fapt a o alege.i i i “JATEK” — 2005/3/11 — 10:29 — page 14 — #14 i 14 1. Reţinem că obiectul optimului nu este întotdeauna bine definit. Pentru studiul modelării se recomandă [Morr]. În 1762. în toate domeniile vieţii. în lucrările matematicianului francez Jean Baptiste Joseph Fourier (1768-1830). Hermann Minkowski (1864-1909). i i i i . fiindcă baremul de evaluare stabilit pentru test poate influenţa ierarhia candidaţilor. 1. organizarea optimă a timpului. precum noţiunea de "optim" şi derivatele acestuia. în condiţii bine stabilite. de exemplu. Considerând problema alegerii candidaţilor în urma unui test. caz în care avem un optim multicriterial. matematician maghiar. din mulţimea activităţilor posibile. cât şi în viaţa de toate zilele. Rădăcinile optimizării se regăsesc. Optimul poate fi ales şi după mai multe criterii. d) studierea strategiilor optime şi a metodelor matematice cu ajutorul cărora pot fi obţinute. În 1918. repartizarea optimă a sarcinilor de producţie. organizarea optimă a transportului. Farkas Gyula (18471930). alocarea optimă a resurselor. organizarea optimă a circulaţiei. Dintre problemele de optim în cadrul acestei cărţi vom studia doar problemele pentru care: . Farkas şi Minkowski au studiat inegalităţile liniare. Haar Alfred a generalizat rezultatul obţinut de Minkowski-Farkas pentru cazul neomogen. Se poate observa că. pe cea care este cea mai bună dintr-un anumit punct de vedere.

restricţii care pot exprima diferite condiţii economice. . în numere întregi. n i i i i . . xn ) = c1 x1 + · · · + cn xn (1. . . . de exemplu: modele de optimizare liniară. forţă de muncă etc. Pn . Vom studia acele probleme de programare matematică care pot fi rezolvate cu algoritmul simplex. m}.întrebările decizionale sunt întrebări cantitative (cât este valoarea variabilei xj . n} cu xj cantitatea (în unităţi) din produsul Pj ce urmează a fi produsă. După natura matematică a funcţiei (funcţiilor) de scop şi a restricţiilor putem distinge diferite clase de probleme de optimizare cu restricţii. . . . Modele tip de optimizare 15 . Notăm pentru fiecare j ∈ {1. cum ar fi. multicriterială etc. n} aduce întreprinderii beneficiul cj şi necesită aij unităţi din resursa Ri . . astfel încât beneficiul total al întreprinderii să fie maxim. . Ştiind că producerea unei unităţi din produsul Pj . i = 1.3. bm . . folosind m resurse R1 . m (1. . . . . maşini-unelte. . Beneficiul total al întreprinderii este: f (x1 . i ∈ {1. . parametrică. Teoria problemelor de optimizare cu restricţii este o ramură a cercetării operaţionale care studiază optimizarea uneia sau a mai multor funcţii pe un domeniu definit de o mulţime de restricţii date asupra variabilelor independente. . . xn trebuie să verifice următorul sistem de inecuaţii:  n   aij xj ≤ bi .3 Modele tip de optimizare În acest paragraf vom prezenta câteva exemple reprezentative de programare liniară. j ∈ {1. . stohastică. . adică să se stabilească în ce cantităţi să se producă fiecare dintre cele n produse. j = 1. (a) Un model de planificare a producţiei O întreprindere produce n produse P1 . .) de care dispune în cantităţile b1 . . . Rm (materii prime. . . Aceste probleme se numesc probleme de programare matematică sau optimizare matematică cu restricţii.i i i “JATEK” — 2005/3/11 — 10:29 — page 15 — #15 i 1.variabilele decizionale sunt soluţiile unui sistem liniar de inecuaţii. . se cere să se planifice producţia. . . 1. . j ∈ {1. . modele care pot fi reduse la modele de optimizare liniară cu restricţii. neliniară.1) iar cantităţile x1 . n} ?). . . . . . .2)  j=1  xj ≥ 0.

. . i = k + 1. . Putem scrie:  n  f (x) =  cj xj → min     j=1   n     aij xj ≥ bi . atunci se cere realizarea amestecului cu cost minim. . j = 1. n) . . .Dacă se cere ca volumul total al producţiei să nu coboare sub o anumită limită x0 . j = 1.Dacă se cere producerea unor cantităţi minime x0 . atunci din punct de vedere matematic avem condiţia: x0 ≤ x1 + · · · + xn .3). Introducere Avem modelul care constă în maximizarea funcţiei (1. i = 1. . . .2). . i = k + 1. . Vn . j = 1. yn ). n. k  j=1  n     aij xj ≤ Bi . n j (c) Problema rucsacului Un turist vrea să-şi ia în rucsac câteva din obiectele X1 . . k şi cel mult Bi unităţi din substanţa si . El cunoaşte greutatea fiecărui obiect P1 . Turistul nu poate duce o greutate totală mai i i i i . atunci adaugăm restricţiile: x0 ≤ xj . Dacă într-o problemă de amestec aij reprezintă cantitatea de substanţă si . Modelul poate fi reformulat după scopul urmărit. Xn . Dacă dj este venitul de valută după produsul Pj . atunci avem: (c1 + d1 )u1 + · · · + (cn + dn )un (b) Un model de amestec Un astfel de model este problema dietei (vezi paragraful 4. m    j=1    x ≥ 0. n (sau xj ≤ yj . j = 1. Pn şi volumul corespunzător (locul ocupat de un obiect) V1 . . . x0 (respectiv n 1 0 0 maxime y1 . X2 . i = 1.1) pe mulţimea soluţiilor sistemului (1.Scopul nu este neapărat maximizarea beneficiului. . . i = 1. Notăm cu xj numărul de unităţi din componentele Pj . n a amestecului şi amestecul trebuie să conţină cel puţin bi unităţi din substanţa si . j 0 j = 1. m conţinută într-o unitate din componenta Pj . .i i i “JATEK” — 2005/3/11 — 10:29 — page 16 — #16 i 16 1. . ştiind că costurile unitare din componentele Pj sunt cj . m. . Scopul poate să fie obţinerea unui venit maxim în valută sau realizarea unui venit maxim de valută şi realizarea unui beneficiu maxim. . .

A2 . . . . j = 1. R2 . dacă resursa Ri este repartizată pe activitatea Aj şi xij = 0. Rn pe n activităţi A1 . . notate cu R1 . Fiecare obiect are o valoare subiectivă k1 . Aj ) format din resursa Ri . . . . astfel încât costul total să fie minim (maxim). cuplului (Ri . . n Modelul obţinut este un model discret. egal cu suma costurilor repartizărilor diferitelor cupluri ce formează repartizarea dată. astfel încât: .fiecărei activităţi să i se repartizeze câte o singură resursă. .fiecare resursă să fie repartizată la câte o singură activitate. . i. 1}. Modele tip de optimizare 17 mare decât P . n} definite astfel: xij = 1. n îi corespunde valoarea Cij numită costul repartizării resursei Ri pe activitatea Aj . 2. Se introduc variabilele xij . un model de programare în numere întregi. . . . . În acest scop se introduc anumite costuri ce corespund diferitelor grupe formate din câte o resursă şi câte o activitate. Se cere repartizarea resurselor pe activităţi. . în condiţiile precizate mai sus. Ce obiecte trebuie alese pentru a obţine o utilitate totală maximă? Notăm cu xi valorile asociate obiectelor Xi . n şi din activitatea Aj . . . kn . va corespunde în acest mod un cost total. . . Astfel. . În caz contrar. j ∈ {1. în funcţie de natura problemei propuse spre rezolvare. i i i i . Vom avea xi = 1 dacă obiectul Xi este pus în rucsac. i ∈ 1. .i i i “JATEK” — 2005/3/11 — 10:29 — page 17 — #17 i 1. (d) Model de alocare a resurselor Să se repartizeze n resurse. respectiv xi = 0 în caz contrar. .3. . An . iar volumul maxim al rucsacului este V. i = 1. . . Pentru fiecare repartizare a celor n resurse pe cele n activităţi. Modelul matematic ataşat problemei este:  n   f (x) = xi ki → max     i=1  n      Pi xi ≤ P               i=1 n Vi xi ≤ V i=1 xi ∈ {0. 2. 2. Se introduce un criteriu de alegere a "posibilităţii optime".

i = 1. n şi j = 1. putem descrie problema cu următorul model:  m n   f (x) = cij xij → min     i=1 j=1   n      xij ≤ ai . modelul matematic al problemei este:  n n  f (x) =  cij xij → min     i=1 j=1  n      xij = 1. . astfel încât cheltuielile de transport să fie minime! Dacă notăm cu xij cantitatea de produs care va fi transportată de la furnizorul i la consumatorul j. Introducere păstrând aceste notaţii. . matematic. n   n      xij = 1. pentru i = 1. n    j=1      xij ∈ {0. iar costurile unitare de transport de la centrul Ai la beneficiarul Bj sunt egale cu cij . . j = 1. i = 1. Dacă un produs omogen este depozitat în cantităţile ai . n     cij ≥ 0. i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 18 — #18 i 18 1. . j = 1. n   i=1     xij ≥ 0. 1}. . pentru j = 1. pentru i = 1. n (e) Problema de transport Fie m centre de aprovizionare (depozitare) notate cu A1 . scopul constă în minimizarea acestora. n   m  n     ai ≥ bj . . m. . j = 1. i = 1. Am şi n centre de consum (beneficiari) notate cu B1 .   i=1 j=1 i=1 (1. m. m în centrele Ai şi este cerut de către beneficiari în cantitatea bj . atunci. Bn . prin urmare. n. j = 1. m    j=1   m  xij ≥ bj . atunci se cere să se organizeze transportul. i = 1. .3) Funcţia obiectiv reprezintă evident cheltuielile totale.

. ti . tm camioane cu aceleaşi capacităţi de transport. . dar nu sunt neapărat proporţionale cu timpul λij . . cu un cost total minim. rn . . . pentru j = 1. . . rj . pentru i = 1. . Modele tip de optimizare (f ) O problemă de atribuire 19 Fie m tipuri de maşini. planificate într-un număr de r1 . un număr de r1 . Dacă se notează cu cij costurile de fabricaţie. adică depinde de modul de grupare a indicilor (i. . fs camioane de către beneficiari pentru transportarea unui produs omogen care poate fi încărcat de la n depozite. Dacă se notează cu xijk numărul camioanelor dirijate de la garajul i la depozitul j şi la beneficiarul k. fk . se cere construirea planului de dirijare în condiţiile menţionate. . Costurile de transport se modifică în funcţie de drumul parcurs de camioane. . . . . . n Se poate observa că modelul prezentat este o generalizare a modelului pro-blemei de transport. k). . astfel încât costul total de transport să fie minim. . La un depozit se pot încărca.i i i “JATEK” — 2005/3/11 — 10:29 — page 19 — #19 i 1. rn camioane. . m m      xij = rj . Într-o anumită zi se solicită f1 . j). Timpul λij . . . . în care maşina de tip i produce un produs de tip j. m şi j = 1. atunci modelul acestei probleme este: i i i i . variază în funcţie de alegerea tipului de maşină pe care este fabricat produsul. Costurile de fabricaţie pot varia şi în funcţie de perechile (i. ti . . . . . . al căror timp de funcţionare este respectiv egal cu t1 . rj . j. . n    i=1     xij ≥ 0. j=1 (g) Generalizarea problemei de transport Într-o staţie cu m garaje sunt t1 . . . . pentru i = 1. . . în acelaşi timp. .3. atunci se pune problema determinării unui plan de producţie pentru realizarea produselor în cantităţile menţionate. Dacă notăm cu xij numărul unităţilor din produsul j fabricate pe maşina de tip i. tm unităţi de timp. atunci modelul acestei probleme va fi: m n   cij xij → min     i=1 j=1   n      λij xij ≤ ti . . . Notând cu cijk aceste costuri. . . Cu aceste maşini se pot produce n tipuri de produse. . . .

n şi k = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 20 — #20 i 20 m n s    cijk xijk → min    i=1 j=1 k=1     n s      xijk = ti .m. Introducere  xijk = rj . n j i i i i . pentru i = 1. n}.. sumă care poate fi folosită în diverse activităţi notate cu {1. m    j=1 k=1   m s 1. j = 1. atunci modelul matematic al problemei este:  f (x) = n bj xj → max  j=1  n   xj ≤ S. 2. k = 1. . j = 1. n suma investită în activitatea j. s    i=1 j=1      xijk ≥ 0. i = 1. s Fie o societate care dispune de o sumă de S unităţi monetare. . n  j=1    x ≥ 0. j = 1. m. Dacă se notează cu xj . n     i=1 k=1  m n      xijk = fk . atunci se cere determinarea unui plan de investiţii cu beneficiu total maxim. (h) Planificarea investiţiilor j = 1. Dacă investiţia la activitatea j aduce un beneficiu bj u. . j = 1.

O teoremă explicită de dualitate a fost publicată şi demonstrată de către 21 i i i i . de asemenea. 1947.C. Kantorovici ([Kan]) şi a fost prezentată împreună cu o metodă de rezolvare. New Jersey. Neumann recunoaşte importanţa conceptului de dualitate. O analiză riguroasă a problemei a fost efectuată de T. Pentru descoperirea şi dezvoltarea programării liniare. în 1945. Institute for Advanced Study. În 1941. instrumentul matematic care uneşte teoria jocurilor cu teoria problemelor de optimizare liniară cu restricţii. în 1976. în 1949. Princetown. formulează un model matematic pentru stabilirea hranei raţionale pentru animale. Frank Hitchcock ([Hit]) a formulat modelul de transport (care. noiembrie. este un model special de programare liniară). Dantzig a primit premiul naţional al Statelor Unite ale Americii.V.i i i “JATEK” — 2005/3/11 — 10:29 — page 21 — #21 i Capitolul 2 Teoria problemelor de optimizare liniară cu restricţii Problema generală de programare liniară a fost formulată pentru prima dată în anul 1939 de către L. Kantorovici recunoaşte că o serie de probleme economice pot fi descrise cu acelaşi model matematic şi pentru aceste modele pot fi elaborate metode numerice de rezolvare. Toate aceste modele împreună cu alte modele speciale din timpul celui de al doilea Război Mondial arată necesitatea elaborării unor metode eficiente de rezolvare numerică ale acestora. Noţiunea de dualitate a fost introdusă de către John von Neumann în 1947 şi a fost publicată la scurt timp în lucrarea cu titlul "On maximization problem". numită metoda "multiplicatorilor rezolvanţi". George Stigler ([Sti]). O importanţă deosebită pentru programarea liniară a constituit-o metoda simplex elaborată în 1947 de către George Dantzig [Dant]. Koopmans ([Koop]).

folosindu-se de un şir de elipsoide care conduc spre soluţia optimă a modelului. Pe de altă parte. un model liniar. investiţii. Kuhn şi Tucker în 1951. funcţia de scop este liniară atrage după sine două proprietăţi importante. dar practic nu înlocuieşte algoritmul simplex. pot fi reduse prin transformări convenabile la acest tip de model. care nu sunt liniare.i i i “JATEK” — 2005/3/11 — 10:29 — page 22 — #22 i 22 1.1. care nu sunt probleme de programare liniară. trebuie să verifice proprietatea de divizibilitate şi certitudine. Pe lângă proprietăţile prezentate. Din punct de vedere teoretic. matematicianul rus Leonid Khachiyan [Kha] publică un algoritm de complexitate polinomială pentru rezolvarea modelelor liniare. Modelul matematic de programare liniară utilizat în reprezentarea unui sistem economic este construit dintr-un ansamblu de relaţii liniare. O serie de probleme. Această proprietate este cunoscută ca proprietatea de aditivitate. În 1984. Această metodă nu are o variantă de complexitate polinomială. Modelele în care variabilele pot lua doar valori întregi vor fi prezentate în paragraful 6. amestec. Faptul că. Prin proprietatea de divizibilitate se înţelege că variabilele pot lua şi valori raţionale. iar celelalte cuprind restricţiile economice sau tehnologice. Narendra Karmarkar [Karm] publică un alt algoritm care foloseşte sfere şi geometrie proiectivă pentru construirea unui şir care converge către soluţia optimă a problemei de optimizare liniară cu restricţii. Pe de o parte. Unde putem aplica modelul de programare liniară? Acest model acoperă o clasă de probleme de mare importanţă practică. capitolul 19 din [Dant]. rezultatul este semnificativ. pot fi rezolvate prin intermediul unui şir de modele liniare. dintre care una reflectă obiectivul urmărit.m. ale căror soluţii determină un şir care admite un subşir convergent către soluţia optimă a modelului considerat. În 1979. O altă clasă de probleme. organizare. atunci costurile de producţie ale produsului pi nu sunt influenţate de costurile de producţie ale produsului pj ). transporturi. Algoritmul diferă de metoda simplex. într-un model de programare liniară. Introducere Gale. valorile variabilelor independente din funcţia de scop sunt proporţionale cu valoarea variabilei respective (dacă costurile unitare de producţie reprezintă x u. reparaţii şi altele.adică are loc proprietatea de proporţionalitate. cum sunt cele de planificare. atunci pentru n produse vor fi de n ori mai mare) . care descrie un fenomen economic. Metoda simplex nu acoperă în întregime problema legată de rezolvarea numerică a problemelor de optimizare liniară cu restricţii. pentru un produs p fixat. i i i i . o problemă practică. valorile componentelor funcţiei de scop sunt independente între ele (dacă se produc n produse.

x2 . dacă este format dintr-un anumit număr de restricţii date asupra variabilelor independente (care sunt liniare şi pot fi inegalităţi sau egalităţi) şi o funcţie de scop care este de asemenea liniară. elementele matricei restricţiilor. . cn ) c = (c1 c2 c3 ) ∈ Rn . . . .i i i “JATEK” — 2005/3/11 — 10:29 — page 23 — #23 i 2. . n j k unde:  A11 A12 A13 A =  A21 A22 A23  ∈ Mm. Definiţia 2. r x3 . cl ). . .1. l x2 ≤ 0. A31 A32 A33 f : Rn → R x = (x1 . . j = l + 1. . c2 = (cl+1 . . b3 = (bp+1 . . i = 1. xr . . . . termenii liberi din membrul drept al restricţiilor) sunt cunoscute apriori. . .1 Forme ale modelului de optimizare liniară cu res-tricţii La modelarea unui fenomen în general este folosit un număr mare de variabile şi modelul este bine definit doar în cazul în care aceste variabile pot fi pozitive. . bp ). . . . .1. bk ). not de semn oarecare  i i i i . . x3 = (xr+1 . 2. . . . . . .1. x2 = (xl+1 . . Forma generală a problemei de optimizare liniară cu restricţii prin definiţie este:  1 1 2 2 3 3  f (x) = c x + c x + c x → min / max   A x1 + A x2 + A x3 ≤ b1   11 12 13 A21 x1 + A22 x2 + A23 x3 = b2   A31 x1 + A32 x2 + A33 x3 ≥ b3    1 xi ≥ 0. k = r + 1. . xr ). .n (R). . . . . . . . . . Pentru rezolvarea numerică a problemelor de optimizare liniară cu restricţii sunt necesare cunoştinţe de algebră liniară (v. xr+1 . Forme ale modelului de optimizare liniară cu restricţii 23 Proprietatea de certitudine înseamnă că toate datele de intrare (coeficienţii funcţiei de scop. xn ) = (x1 x2 x3 ) ∈ Rn x1 = (x1 . Problema care se pune este determinarea valorii optime a funcţiei de scop pe domeniul determinat de aceste restricţii. . . b2 = (bk+1 . cr ). c3 = (cr+1 . . bm ) b = (b1 b2 b3 ) ∈ Rm c1 = (c1 . xl+1 . xl . . . xn ) b1 = (b1 . . Modelul matematic al unui fenomen este un model matematic al unei probleme de optimizare liniară cu restricţii. . xl ). Anexa2). negative sau chiar de semn variabil. .

1.2. c ∈ Rn . b ∈ Rm . c ∈ Rn .2 Soluţii ale problemei de optimizare liniară cu res-tricţii În acest paragraf vom preciza condiţiile necesare pentru rezolvarea numerică a problemei de optimizare liniară cu restricţii şi vom defini câteva tipuri de soluţii care pot fi asociate problemei propuse spre rezolvare. b ∈ Rm . m xj ≥ 0.n (R). b ∈ Rm . i i i i . Forma canonică a unui model de minimizare prin definiţie este:   f (x) = (c.1. x) → min Ax ≥ b  x≥0 unde A ∈ Mm. i = 1. ·) : Rn × Rn → R este produsul scalar euclidean al vectorilor din spaţiul vectorial Rn .n (R).i i i “JATEK” — 2005/3/11 — 10:29 — page 24 — #24 i 24 2. n sau în forma matriceală:   f (x) = (c. Se numeşte forma standard a problemei de optimizare liniară cu restricţii următorul model:    f (x) =       n         j=1 n cj xj → min /max j=1 aij xj = bi . c ∈ Rn . j = 1. Forma canonică a problemei de maximizare este:   f (x) = (c. x) → max Ax ≤ b  x≥0 unde A ∈ Mm. A ∈ Mm. unde (·. 2.n (R).3. x) → min/max Ax = b  x ≥ 0. Definiţia 2. Teoria problemelor de optimizare liniară cu restricţii Definiţia 2.

2.2. Dacă determinăm mulţimea soluţiilor bazice. orice punct extrem al mulţimii S este soluţie bazică.3.2. sistemul liniar de ecuaţii Ax = b este un sistem nedeterminat. dacă are exact m componente nenule.4. atunci prin înlocuirea acestora în funcţia de scop putem alege soluţia optimă a problemei considerate. a problemei (2. În consecinţă. soluţie optimă. Definiţia 2. dacă coloanele matricei A. Orice soluţie de bază a unei probleme de programare liniară este un punct extrem al mulţimii S şi.1. În aceste condiţii. dacă verifică condiţia de optim. În caz contrar. atunci. x). O soluţie de bază se numeşte nedegenerată . Vom presupune că sistemul de restricţii Ax = b are cel puţin o soluţie. reciproc. sistemul liniar admite o infinitate de soluţii. Câte soluţii de bază are un model cu n variabile şi m restricţii? i i i i . în caz de compatibilitate. Definiţia 2. adică (c.n (R). unde x ∈ S oarecare (dacă avem model de minimizare) şi (c. x∗ . Dacă rang A < m. formează o bază în Rm . O soluţie posibilă x ∈ S cu cel mult m componente strict po-zitive se numeşte soluţie de bază . problema de optimizare considerată nu are sens. Teorema 2. S = {x ∈ Rn | Ax = b.1) unde A ∈ Mm. x∗ ) ≥ (c. adică modelul construit în scopul studierii unui fenomen economic este un model încărcat.2. O soluţie a sistemului de ecuaţii Ax = b care verifică în plus condiţia de nenegativitate (x ≥ 0) se numeşte soluţie posibilă (soluţie admisibilă sau program) al problemei (2. ar însemna că unele restricţii sunt consecinţe ale celorlalte. x) → min/max Ax = b  x≥0 25 (2.4) se numeşte program optim. x∗ ) ≤ (c. Cazul formei standard Fie modelul:   f (x) = (c. Soluţii ale problemei de optimizare liniară cu restricţii A. unde x ∈ S oarecare (dacă avem o problemă de maximizare). c ∈ Rn .1. şi degenerată . b ∈ Rm . x).2.i i i “JATEK” — 2005/3/11 — 10:29 — page 25 — #25 i 2.2. Definiţia 2. x ≥ 0} se numeşte mulţimea soluţiilor posibile. Se va presupune de asemenea că are loc inegalitatea m < n. în caz contrar. Pe tot parcursul expunerii vom presupune că rang A = m. (dacă m = n atunci sistemul de restricţii formează un sistem Cramer). f : Rn → R. O soluţie posibilă.2.4). Definiţia 2. care corespund acestor componente.

atunci când valoarea lui bi creşte cu o unitate (bi este înlocuit cu bi + 1. Toţi determinanţii det(Cij ) sunt diferiţi de zero. C12 = 2 1 1 2 2 −1 1 3 1 −1 2 3 −1 −1 −1 3 .2. 5 Matricea restricţiilor este: A= 2 1 1 −1 −1 1 2 −1 −1 3 rang A = 2 Notăm Cij . C13 = 2 1 1 −1 1 1 2 −1 1 −1 −1 −1 C14 = 2 −1 1 −1 1 −1 2 −1 1 −1 −1 3 C15 = C23 = C24 = C25 = C34 = C35 = C45 = 5! 2 Avem 10 astfel de matrici C5 = 2!3! = 10 . Preţul umbră asociat restricţiei de ordinul i este valoarea cu care se îmbunătăţeşte valoarea funcţiei de scop. j = 1. Teoria problemelor de optimizare liniară cu restricţii Pe baza definiţiei 2.i i i “JATEK” — 2005/3/11 — 10:29 — page 26 — #26 i 26 2. i < j 1 ≤ i. Definiţia 2.2. ceea ce înseamnă că vom avea cel mult 10 soluţii bazice obţinute în urma rezolvării celor 10 sisteme liniare de două ecuaţii şi două necunoscute. aceste soluţii bazice pot fi obţinute în urma rezolvării tuturor sistemelor Cramer de m ecuaţii şi n necunoscute. j ≤ 5 toate matricile pătratice de ordin doi ce pot fi formate cu coloanele lui A.3.) Problemă rezolvată Să se determine soluţiile bazice ale problemei:   f (x) = 2x1 + x2 + 2x3 + x4 + 3x5 → max   2x1 + x2 + x3 − x4 − x5 = 2  x1 + 2x2 − x3 − x4 + 3x5 = 4   xj ≥ 0. i i i i .5. pe care le putem forma din sistemul de restricţii Ax = b. m Astfel se poate afirma că numărul soluţiilor bazice este cel mult Cn .

Dacă considerăm un model cu n = 17 variabile şi m = 8 restricţii. iar x3 = x4 = x5 = 0. Avem: f (10/7 0 0 0 6/7) = 38/7 f (0 2 0 0 0) = 2 adică soluţia optimă este x0 = (10/7 0 0 0 6/7) şi fmax = 38/7. ceea ce înseamnă că s-a atins optimul acesteia. În mod analog. Principiul metodei lui Dantzig constă în alegerea unei soluţii bazice oarecare. (0 0 -1 -3 0). În 1947. variabilele principale sunt x1 . Pentru matricea C12 . dat într-o formă oarecare de prezentare poate fi redus. în formularea unui criteriu de optim cu care se verifică optimalitatea soluţiei bazice propuse şi stabilirea unei metode cu care se poate pune în evidenţă o nouă soluţie bazică pentru care valoarea funcţiei de scop creşte. Deci problema de optimizare liniară cu restricţii considerată admite o soluţie bazică nedegenerată şi 4 soluţii bazice degenerate. prin înlocuirea soluţiilor bazice în funcţia de scop. la un model în i i i i . (0 0 0 -5/2 1/2). (0 0 -1 0 3). Cazul formei generale Modelul de optimizare liniară cu restricţii. folosind transformări echivalente. (0 2 0 0 0). sunt soluţii de bază doar cele pentru care toate componentele sunt pozitive. variabilele xi şi xj sunt considerate variabile principale. (0 2 0 0 0). B. Variabilele secundare sunt considerate nule. chiar şi în cazul unei probleme de dimensiune redusă. atunci am avea de rezolvat 24 310 sisteme Cramer cu 8 ecuaţii şi 8 variabile pentru a determina soluţiile bazice. (-2 0 0 -6 0). Dintre cele 10 soluţii obţinute. putem alege soluţia optimă. (0 2 0 0 0). x1 + 2x2 = 4 Soluţia obţinută este (0 2 0 0 0).2. Dantzig formulează un algoritm eficient pentru rezolvarea mo-delelor liniare. x2 . de exemplu. ceea ce înseamnă că metoda nu este eficientă pentru determinarea optimului. rezolvând sistemele liniare de ecuaţii. G. Soluţii ale problemei de optimizare liniară cu restricţii 27 În cazul unui sistem liniar de ecuaţii asociat matricei Cij .i i i “JATEK” — 2005/3/11 — 10:29 — page 27 — #27 i 2. În acest caz avem de rezolvat sistemul: 2x1 + x2 = 2 . determinarea soluţiilor bazice necesită foarte mult timp. (10/7 0 0 0 6/7). Prin calcul direct. Deci. se vor obţine soluţiile: (2 0 -2 0 0). Se repetă operaţia până când mărirea/ micşorarea funcţiei de scop nu mai este posibilă. dacă se caută un maxim (sau descreşte dacă se caută un minim).

. . .3. . p (x. Fie date punctele a1 . Farkas în 1902 [Fark] publică următorul criteriu de incompatibilitate: Teorema 2. .2. Gy. inegalităţi liniare şi programare liniară În acest paragraf vom prezenta noţiunile de mulţime convexă. cr din Rn . a0 ) < 0 (x. c1 . ai ) < 0. ap . Sistemul definit în Rn prin:   (x. artificiale şi prin folosirea unor substituţii adecvate. Mulţimea poliedrală reprezintă latura geometrică şi inegalităţile liniare latura algebrică a problemei de optimizare liniară cu restricţii. 2. bq . Deoarece restricţiile unui model liniar de optimizare formează un sistem liniar de inecuaţii. b1 . Teorema 2. bi ) ≤ 0. . . . b1 . bp ∈ Rn puncte date. . Teoria problemelor de optimizare liniară cu restricţii forma standard prin introducerea unor variabile auxiliare. i = 1. q  (x. . bi ) ≤ 0. Variabilele auxiliare introduse au doar semnificaţii economice. i = 1. p este incompatibil. ci ) = 0. teoremele de caracterizare a incompatibilităţii unui sistem de inecuaţii liniare sunt extrem de importante. Fie a0 . Sistemul de inecuaţii definit în Rn prin produsul scalar: (x. r i i i i .1. Motzkin demonstrează următorul rezultat.3. Farkas (1894) şi Minkowski (1896). Teorema fundamentală a inegalităţilor liniare se datorează lui Gy. . dacă şi numai dacă există un punct v ∈ Rp . T. iar valorile optime coincid. Metoda de trecere dintr-o formă de reprezentare în alta va fi prezentată în paragraful 2.4. În anul 1936. . Rezultatul a fost extins de Caratheodory (1911) şi Weyl (1935).3 Teoria poliedrelor. i = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 28 — #28 i 28 2. Se poate arăta că soluţiile modelului astfel obţinut sunt soluţii ale problemei iniţiale. i = 1. astfel încât: p a + i=1 0 vi bi = 0. . mulţime poliedrală şi politop.

Teoria poliedrelor. ne ocupăm cu interpretarea geometrică a restricţiilor liniare. . x2 ] determinat de aceste două puncte aparţine în întregime mulţimii date. x2 ∈ M. x) = b. Rezultatul obţinut în 1873 de P. ap din spaţiul Rn . segmentul [x1 . deci cele două teoreme sunt echivalente. x2 . Mulţimea vidă şi mulţimea formată dintr-un singur element sunt considerate mulţimi convexe. O mulţime M de vectori din Rn se numeşte hiperplan dacă există a ∈ Rn \ {0} astfel încât: M = {x ∈ Rn | (a. .i i i “JATEK” — 2005/3/11 — 10:29 — page 29 — #29 i 2.3. Teorema 2.3. Sistemul de inecuaţii definit în Rn prin: (x. În continuare. Remarcăm faptul că mulţimea M ⊂ Rn este convexă. Dar. O mulţime M de vectori din Rn se numeşte semispaţiu dacă există a ∈ Rn \ {0} astfel încât: M = {x ∈ Rn | (a. 1]} se numeşte combinaţia convexă a punctelor date şi coincide cu segmentul cu capetele x1 . astfel încât să avem: p q r ui a + i=1 i=1 i vi bi + i=1 wi ci = 0.3. ai ) < 0. . x) ≥ 0}. inegalităţi liniare şi programare liniară 29 este incompatibil. λ ∈ [0. Cordan este o consecinţă a teoremei lui Motzkin. dacă şi numai dacă există (u. Fie punctele a1 .3. i = 1. Definiţia 2. Definiţia 2. Mulţimea {λx1 + (1 − λ)x2 . i i i i . w) ∈ Rp × Rq × Rr cu + + + u = 0. b ∈ R}. dacă şi numai dacă există u ∈ Rp cu u = 0. x2 ∈ M şi λ ∈ [0.3.2.3. Mulţimile convexe pot fi mărginite şi nemărginite. p este incompatibil. Demonstraţia teoremei se face cu ajutorul teoremei lui Farkas.1. dacă pentru oricare două puncte ale sale x1 .3. teorema lui Farkas este evident un caz particular al teoremei lui Motzkin. În acest scop se dau următoarele definiţii: Definiţia 2. v. 1] avem λx1 + (1 − λ)x2 ∈ M. astfel încât + p i i=1 ui a = 0. pe de altă parte. dacă pentru orice x1 . Mulţimea M ⊂ Rn este convexă .

3. Teorema 2.5.i i i “JATEK” — 2005/3/11 — 10:29 — page 30 — #30 i 30 2.4. y ∈ M şi orice λ. Hiperplanul. Între noţiunea de mulţimi poliedrale şi noţiunea de politop (poliedru) există o legătură. O mulţime de vectori din spaţiul Rn este politop dacă este învelitoarea convexă a unui număr finit de vectori.3. combinaţia convexă ale acestora este de asemenea în hiperplan (semispaţiu. i=1 Teorema 2. [Sch] pg. după cum arată şi teorema de descompunere a poliedrului formulat de Motzkin (1936). Se poate verifica uşor că pentru oricare două puncte din hiperplan (semispaţiu.5.6. Definiţia 2. (Farkas. 88-89. Folosim definiţia convexităţii. µ ∈ R+ are loc: λx + µy ∈ M ). O mulţime poliedrală este mulţime închisă. unde Q este un politop iar C este un con poliedral oarecare. 87.3. Demonstraţie.3. mulţime poliedrală). Trivial. mulţime poliedrală). Demonstraţie. x) ≥ bi }. M se numeşte con cu vârf dacă este con şi 0 ∈ M. Definiţia 2.m ∈ R astfel încât: m M= {x ∈ Rn | (ai . [Sch] pg. O mulţime M de vectori din Rn se numeşte mulţime poliedrală (tronson) dacă există (ai )i=1. M se numeşte con poliedral dacă există punctele (ai )i=1. Demonstraţie. M se numeşte con convex dacă este con şi este convex (adică pentru orice x. semispaţiul şi mulţime poliedrală sunt mulţimi convexe.3. (bi )i=1. O mulţime M de vectori din Rn se numeşte con dacă pentru orice x ∈ M şi orice α ∈ R+ avem: αx ∈ M. (O mulţime este închisă dacă şi numai dacă îşi conţine toate punctele de acumulare).m ∈ Rn \ {0}.4. x) ≥ 0}. Teoria problemelor de optimizare liniară cu restricţii Definiţia 2. un con poliedral este o mulţime poliedrală.m ∈ Rn \ {0} astfel încât: m M= {x ∈ Rn | (ai . i i i i .3.6. O mulţime P ⊆ Rn este o mulţime poliedrală dacă şi numai dacă P = Q + C. i=1 Teorema 2. Minkowski-Weyl) Un con convex este poliedral dacă şi numai dacă este finit generat.

Punctul x este un punct extrem pentru mulţimea M. Definiţia 2.3. dacă nu este interior nici unui segment inclus în întregime în mulţimea M . Teorema 2. Poate fi consultată în [Pre]. definit pe un poliedru convex. inegalităţi liniare şi programare liniară 31 Teorema bazelor finite pentru politopi este o consecinţă a teoremei de descompunere. Extremele mulţimii S sunt chiar soluţiile bazice. un politop cu n + 1 vârfuri se numeşte n-simplex. pp. Demonstraţie.3. Restricţiile problemei de programare liniară formează o mulţime poliedrală. Adică. Steinitz (1916) şi Weyl (1935). Teorema 2. Acest rezultat este atribuit lui Minkowski (1896). Teorema 2. Modelul liniar admite soluţie (optim finit) doar în cazul în care această mulţime este mărginită. Demonstraţia poate fi consultată în [Pre]. Demonstraţie. Teorema 2. 54-55. Dacă se notează cu k dimensiunea spaţiului cu proprietatea "este spaţiu de dimensiune minimă care include mulţimea poliedrală P ".8. atunci fie că nu este mărginit superior pe această mulţime.8.3.7. Dacă f este o funcţie liniară.[Thi]. Teorema 2. Demonstraţia poate fi consultată în [Pre]. atunci k se numeşte dimensiunea lui P . Demonstraţie. un triunghi este 2-simplex. un tetraedru este un 3-simplex.10.9. Fie M o mulţime convexă din spaţiul Rn . i i i i .3. O mulţime P ⊆ Rn este politop dacă şi numai dacă P este o mulţime poliedrală mărginită. Un politop a cărui dimensiune este mai mare cu 1 decât numărul vârfurilor sale se numeşte simplex . Demonstraţia poate fi consultată în [Pre].3.i i i “JATEK” — 2005/3/11 — 10:29 — page 31 — #31 i 2. Demonstraţie.3. Un segment este 1-simplex. 67-68. B2 care diferă doar printr-un vector. [Gas]. 89. 55-59. mulţimea soluţiilor posibile este un politop.3. Orice politop coincide cu invelitoarea convexă a extremelor sale.11.3. Demonstraţie.7. fie îşi atinge maximul în cel puţin un punct extrem al poliedrului (evident dacă poliedrul are cel puţin un extrem). La extremele lui S pot fi găsite două baze B1 . [Sch] pg. Definiţia 2. pp. în cazul optimului finit. Teoria poliedrelor. pp.

teorema este foarte importantă. Teoria problemelor de optimizare liniară cu restricţii Proprietăţile poliedrului convex prezentate mai sus se datorează lui H. adică soluţiile bazice. atunci demonstraţia este banală. v] ∈ S. funcţia f este liniară. (2. se poate afirma că o problemă de programare liniară admite fie o soluţie optimă unică. Minkowski (1864-1909). v] ⇒ x ∈ S. Teorema 2. v ∈ S ⇒ [u. adică ∀ x ∈ [u. Mulţimea soluţiilor posibile ale problemei de optimizare liniară cu restricţii este o mulţime convexă. Mulţimea soluţiilor optime ale problemei de optimizare liniară cu restricţii este o mulţime convexă. Demonstraţie. care admite o infinitate de elemente. u≥0 v≥0 Astfel putem scrie: Ax = A[(1 − t)u + tv] = Au(1 − t) + Atv = (1 − t)b + tb = b Pe de altă parte avem: u≥0 v≥0 ⇒ (1 − t)u + tv = x ≥ 0 t ∈ [0. Notăm: S = {x ∈ Rn | Ax = b. putem scrie: f (x) = f ((1 − t)u + tv) = (1 − t)f (u) + tf (v) = (1 − t)k + tk = k şi teorema este demonstrată.3) (2. a) Dacă S = {x0 }. fie o infinitate de soluţii optime.3. Evident orice punct x ∈ [u. Fie u. Au = b Av = b Dar u. v ∈ S ⇒ şi . 1]. Deci. Meritul lui Dantzig este de a fi recunoscut utilitatea acestor rezultate existente. Avem de arătat că f (x) = (c.12. f (u) = f (v) = k (unde k este valoarea minimă a funcţiei de scop). v] poate fi scris ca : x = (1−t)u+tv. 1] şi teorema este demonstrată.13. În consecinţă. t ∈ [0. Deoarece orice punct x ∈ [u. Teorema 2. x ≥ 0}. v ∈ S două soluţii optime. x) = k.i i i “JATEK” — 2005/3/11 — 10:29 — page 32 — #32 i 32 2. Avem de arătat că pentru orice u. Din punct de vedere practic. b) În continuare presupunem: card S > 1.3. ne interesează doar acele puncte care reprezintă vârfurile poliedrului. v] poate fi scris ca: x = (1 − t)u + tv. dacă x este combinaţia convexă a soluţiilor optime considerate. Noţiunea de soluţie bazică exista cu mult înainte de apariţia programării liniare.2) i i i i . Demonstraţie. 1]. din mulţimea S. Observaţie. t ∈ [0.

inegalităţile de sens contrar celor dorite vor fi înmulţite cu (-1). unde y ≥ 0. vor fi parcurse următoarele etape: 1.4 Trecerea unei probleme de programare liniară cu restricţii de la o formă matematică de prezentare la alta În general. 2.3.14.4.n (R). Dacă în modelul:   f (x) = (c.4) unde A ∈ Mm. iar pentru celălalt se aplică (1)). atunci soluţia sa optimă poate fi obţinută cu principiul vârfurilor vecine (principiul lui Dantzig). x) → min/max Ax b  x≥0 (2. Schimbarea formei de reprezentare 33 Se poate formula următoarea întrebare: Ce proprietăţi trebuie să verifice acele modele de programare matematică care pot fi rezolvate pe baza principiului de mai sus? Doar pentru problemele de optimizare liniară cu restricţii sunt valabile proprietăţile de mai sus? Are loc următorul rezultat. funcţia de scop f : D Rn → R este strict cvasimonotonă şi îşi atinge minimul/maximul. (a) Trecerea de la forma generală la forma canonică În forma canonică. 3. Teorema 2. Demonstraţia poate fi consultată în [Dany].i i i “JATEK” — 2005/3/11 — 10:29 — page 33 — #33 i 2. pentru variabila x negativă se va folosi substituţia x = −y. fiecare egalitate va fi înlocuită cu două inegalităţi (una cu sensul dorit. toate variabilele verifică condiţia de nenegativitate şi res-tricţiile sunt inegalităţi de acelaşi sens. i i i i . b ∈ Rm . dar este necesară datorită faptului că diversitatea situaţiilor economico-sociale ce pot fi analizate prin intermediul programării liniare ne conduce la apariţia oricăreia dintre formele de prezentare menţionate. trecerea de la o formă de prezentare la alta nu este dificilă. Pentru a obţine forma canonică a unui model. 2. c ∈ Rn . Demonstraţie.

Folosind substituţiile: x1 x2 x3 x4 = y1 = y2 − y3 = −y4 = y5 unde yj ≥ 0. j = 1. x4 ≥ 0. j = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 34 — #34 i 34 2. i i i i . (Orice număr real poate fi exprimat ca diferenţa a două numere reale pozitive. i = 1. pentru variabila x de semn oarecare se va folosi substituţia x = y − z. 5 ≤ ≤ ≥ ≥ 10 12 12/(−1) 6/(−1) Restricţiile de sens opus celor dorite vor fi înmulţite cu (-1) şi se va obţine forma canonică a modelului:   f (y) = 3y1 + y2 − y3 + y4 + 2y5 → max    2y1 + y2 − y3 + 3y4 + 2y5    y1 − 2y2 + 2y3 − 2y4 + 5y5 −y1 + 2y2 − 2y3 + 2y4 − 5y5      y1 − 3y2 + 3y3 + y4 + 2y5   yj ≥ 0. 5 şi. toate variabilele vor fi notate cu y. x3 ≤ 0. Pentru uniformitatea scrierii. înlocuind egalitatea cu două inegalităţi. 5 ≤ ≤ ≤ ≤ 10 12 −12 −6. Teoria problemelor de optimizare liniară cu restricţii 4. unde y ≥ 0.) Problemă rezolvată Să se reducă la forma canonică modelul:            f (x) = 3x1 + x2 − x3 + 2x4 → max 2x1 + x2 − 3x3 + 2x4 ≤ 10 x1 − 2x2 + 2x3 + 5x4 = 12 −x1 + 3x2 + x3 − 2x4 ≥ 6 x1 ≥ 0. x2 de semn oarecare. se obţine modelul:   f (y) = 3y1 + y2 − y3 + y4 + 2y5 → max    2y1 + y2 − y3 + 3y4 + 2y5    y1 − 2y2 + 2y3 − 2y4 + 5y5 y1 − 2y2 + 2y3 − 2y4 + 5y5      −y1 + 3y2 − 3y3 − y4 − 2y5   yj ≥ 0. z ≥ 0.

8 (c) Trecerea de la forma canonică la forma standard Condiţia de pozitivitate a variabilelor este verificată. vor fi introduse variabile auxiliare. i i i i . care evident verifică condiţia de pozi-tivitate. x4 ≤ 0. = −y5 . = −y2 . Pentru transformarea inegalităţilor în egalităţi. = y6 . putem scrie:   f (y) = 2y1 − 3y2 − 4y3 + 4y4 − 2y5 + y6 → min    y1 + 2y2 + y3 − y4 + y5 + 2y6 + y7 = 10  2y1 − y2 − y3 + y4 − 3y5 − y6 = 8   y1 − 2y2 + 2y3 − 2y4 − 5y5 − y6 − y8 = 14    yj ≥ 0. x2 ≤ 0. variabilele trebuie să verifice condiţia de pozitivitate (vezi cazul (a)). Pentru transformarea inegalităţilor în egalităţi. se introduc variabile auxi-liare. deoarece se va porni cu forma canonică. y4 ≥ 0 y5 ≥ 0 y6 ≥ 0 şi introducând variabilele auxiliare y7 . x3 oarecare . Aceste variabile nu afectează funcţia obiectiv şi nici soluţia problemei (au unele semnificaţii doar în interpretarea soluţiei problemei). y1 ≥ 0 y2 ≥ 0 y3 . = y3 − y4 . y8 . Schimbarea formei de reprezentare (b) Trecerea de la forma generală la forma standard 35 În forma standard.4. fapt pentru care le introducem în funcţia de scop cu coeficienţi nuli. x5 ≥ 0 Folosind substituţiile: x1 x2 x3 x4 x5 = y1 . numite şi variabile ecart. Problemă rezolvată Să se reducă la forma standard modelul:   f (y) = 2x1 + 3x2 − 4x3 + 2x4 + x5 → min    x1 − 2x2 + x3 − x4 + 2x5 ≤ 10  2x1 + x2 − x3 + 3x4 − x5 = 8   x1 + 2x2 + 2x3 + 5x4 − x5 ≥ 14    x1 ≥ 0. iar restricţiile trebuie să fie egalităţi.i i i “JATEK” — 2005/3/11 — 10:29 — page 35 — #35 i 2. j = 1.

restricţiile respective vor fi înmulţite cu -1). Problemă rezolvată Să se reducă modelul dat în forma standard de lucru!   f (x) = 4x1 − 5x2 + 3x3 → min   x + 2x + 3x ≥ 6  1  2 3   2x1 − 3x2 + x3 = 2  x1 − 3x2 + 5x3 ≤ 4    2x1 − x2 + 4x3 ≥ 5    x1 ≥ 0. 2. atunci vor fi introduse variabile nenegative numite variabile artificiale prin adunarea acestora la membrul stâng al restricţiilor.4. se introduc numai atâtea variabile artificiale câţi vectori unitari lipsesc. variabilele artificiale perturbă vechiul echilibru al restricţiilor. se reduce modelul considerat la forma standard. se va scrie matricea coeficienţilor A. pentru a înlătura încărcarea modelului. în cazul modelelor de maximizare). dacă este în forma standard. respectiv prin scădere. x3 ≥ 0 i i i i . de aceea vor fi introduse şi în funcţia de scop. 2. 3.i i i “JATEK” — 2005/3/11 — 10:29 — page 36 — #36 i 36 2. Vor fi parcurse următoarele etape: 1.n (R) este inclusă o matrice unitate de ordinul m şi componentele vectorului b sunt pozitive. Teoria problemelor de optimizare liniară cu restricţii (d) Trecerea de la forma generală la forma standard de lucru Definiţia 2. în cazul modelelor de minimizare. 3. Dacă nu este inclusă o matrice unitate de ordinul m în matricea A. O problemă de programare liniară este în forma standard de lucru . Observăm că: 1. Observaţie. x2 oarecare. se verifică dacă toate componentele vectorului b sunt pozitive (unde este cazul. astfel încât în fiecare restricţie să apară câte o astfel de variabilă o singură dată. variabilele artificiale sunt introduse în funcţia obiectiv cu un coeficient pozitiv relativ mare în comparaţie cu ceilalţi coeficienţi din model (prin adunare la funcţia de scop. Această formă de prezentare are un rol extrem de important în rezolvarea problemelor. în matricea A ∈ Mm.1.

4. x2 = y2 − y3 . 7 Privind rezolvarea numerică a modelelor. j = 1. j = 1.2 (prin rezolvarea sistemelor Cramer) nu este eficientă. y7 :   f (y) = 4y1 − 5y2 + 5y3 + 3y4 → min    y1 + 2y2 − 2y3 + 3y4 − y5 = 6    2y1 − 3y2 + 3y3 + y4 = 2  y1 − 3y2 + 3y3 + 5y4 + y6 = 4    2y1 − y2 + y3 + 4y4 − y7 = 5    yj ≥ 0. în prima. u3 . Astfel se poate scrie:   f (y) = 4y1 − 5y2 + 5y3 + 3y4 + M u1 + M u2 + M u3 → min   y + 2y − 2y + 3y − y + u = 6  1  2 3 4 5 1   2y1 − 3x2 + 3y3 + y4 + u2 = 2  y1 − 3x2 + 3y3 + 5y4 + y6 = 4    2y1 − y2 + y3 + 4y4 − y7 + u3 = 5    yj ≥ 0 uk ≥ 0 k = 1. y6 . u1 . Determinarea unei soluţii bazice cu metoda prezentată în paragraful 2. 3. deoarece coloana a şasea a matricei este vector unitar. u2 .i i i “JATEK” — 2005/3/11 — 10:29 — page 37 — #37 i 2. 4 Introducem variabile auxiliare y5 . Schimbarea formei de reprezentare Folosind substituţiile: x1 = y1 . Vor fi introduse variabile artificiale. deoarece nu orice soluţie obţinută verifică şi condiţia de pozitivitate. i i i i .5) se observă că modelul obţinut nu este în forma standard de lucru. care evident verifică condiţia de pozitivitate. 7 Scriind matricea restricţiilor:  1 2 −2 3 −1 0 0  2 −3 3 1 0 0 0 A=  1 −3 3 5 0 1 0 2 −1 1 4 0 0 −1     37 (2. Algoritmul lui Dantzig poate fi aplicat doar în cazul în care avem la dispoziţie o soluţie bazică oarecare. a doua şi în ultima restricţie. forma standard de lucru reprezintă o importanţă majoră. j = 1. x3 = y4 putem scrie:   f (y) = 4y1 − 5y2 + 5y3 + 3y4 → min   y + 2y − 2y + 3y ≥ 6  1  2 3 4   2y1 − 3y2 + 3y3 + y4 = 2   y1 − 3y2 + 3y3 + 5y4 ≤ 4   2y1 − y2 + y3 + 4y4 ≥ 5    yj ≥ 0.

atunci rezolvând sistemul ales astfel încât matricea coeficienţilor să fie matrice unitate. 1 2 1 3 1 10 0 −3 −1 −5 1 −16 1 2 1 3 1 10 1 5 1 16 0 1 − 3 3 3 3  1 1 5 2 1 0 − −  3 3 3 3  5 1 16 1 − 0 1 3 3 3 3  − 2   3  Deoarece b =   . Observaţie. x2 = . obţinem o soluţie bazică cu componentele nenegative formate chiar cu componentele vectorului b. se poate transforma matricea A în mod echivalent. Fiind egală cu 3 3 (−2/3 16/3 0 0 0). astfel încât să conţină o matrice unitate. Problemă rezolvată Fie modelul:   f (x) = 3x1 + 2x2 + x3 + 5x4 + 2x5 → max   x1 + 2x2 + x3 + 3x4 + x5 = 10 2x1 + x2 + x3 + x4 + 3x5 = 4    x≥0 Dacă scriem matricea extinsă şi aplicăm metoda lui Gauss. soluţia sistemului nu este (soluţie) bazică. Folosind metoda lui Gauss. Dezavantajul acestei metode constă în faptul că nu garantează pozitivitatea termenilor liberi.i i i “JATEK” — 2005/3/11 — 10:29 — page 38 — #38 i 38 2. i i i i . rezultă că soluţia sistemului Cramer format 16 3 2 16 cu matricea unitate C12 va fi x1 = − . atunci vom oţine pe rând: 1 2 1 3 1 10 2 1 1 1 3 4 /(−2) / : (−3) /(−2)   . Teoria problemelor de optimizare liniară cu restricţii Dacă considerăm un model care este în forma standard de lucru.

f : Rn → R. x) → min / max Ax = b  x≥0 unde A ∈ Mm.i i i “JATEK” — 2005/3/11 — 10:29 — page 39 — #39 i 2.5 Rezolvarea grafică a modelelor cu m restricţii şi două variabile   f (x) = (c. Rezolvarea numerică a problemei înseamnă determinarea în ordine a mulţimilor: S (mulţimea soluţiilor posibile).5. fără a recurge la determinarea tuturor elementelor mulţimii SB . Să se determine soluţia optimă a problemei:   f (x) = 3x1 + 5x2 → max   2x1 + 3x2 ≥ 6  x1 + x2 ≤ 1   x1 ≥ 0.2 (R). după care se va formula un procedeu pentru determinarea mulţimii So . c ∈ Rn . b ∈ Rm . x) → min / max Ax = b  x≥0 Fie modelul: unde A ∈ Mm. x2 ≥ 0 Reprezentăm dreptele în acelaşi sistem de coordonate: (d1 ) (d2 ) 2x1 + 3x2 − 6 = 0 x1 + x2 − 1 = 0 (2. Problemă rezolvată 1. f : R2 → R. În continuare vom prezenta câteva exemple numerice.n (R). Se va considera modelul liniar în cazul particular. Aceste modele pot fi rezolvate pe cale grafică. Reprezentând grafic restricţiile problemei. Mulţimea SB se obţine în urma rezolvării unor sisteme de două ecuaţii şi două necunoscute (calculând punctele de intersecţie a dreptelor). se va obţine un poligon convex care este chiar mulţimea S. adică prin înlocuirea soluţiilor bazice în funcţia de scop.7) (2. când n = 2 :   f (x) = (c. b ∈ Rm . Muţimea So în cazul unei probleme reduse se poate obţine prin calcul direct. Rezolvarea modelelor pe cale grafică 39 2. c ∈ R2 .6) i i i i . SB (mulţimea soluţiilor bazice) şi So (mulţimea soluţiilor optime).

adică problema dată nu admite soluţie.1: iar mulţimea S va fi intersecţia semiplanelor respective (fig. Se poate observa că S = ∅ ⇒ SB = ∅ şi So = ∅.1).8)  0 ≤ x1 ≤   3      0≤x ≤ 2  2 3 Mulţimea S este intersecţia dreptelor: (d1 ) (d2 ) (d3 ) (d4 ) 2x1 + x2 − 2 = 0. 3 care. x1 + 2x2 − 2 = 0. 3 2 x2 − = 0. 2. ceea ce este şi soluţia optimă a problemei (fig. 2. 2. în acest caz. Teoria problemelor de optimizare liniară cu restricţii x2 2 1 1 3 (d2) (d1) x1 Figura 2. Fie modelul:   f (x) = 3x1 + 2x2 → max     2x1 + x2 ≥ 2    x + 2x ≥ 2  1 2 2 (2. i i i i . 2 x1 − = 0.2).i i i “JATEK” — 2005/3/11 — 10:29 — page 40 — #40 i 40 2. se reduce la un singur punct.

fmax = 10 3 .2: S= 2 2 3. 2/3) 1 2/3 2 x1 (d2) (d3) (d1) Figura 2.i i i “JATEK” — 2005/3/11 — 10:29 — page 41 — #41 i 2. după cum se vede din reprezentarea grafică (fig. x2 ≥ 0 (2.3). Fie problema de optimizare liniară cu restricţii:   f (x) = 2x1 + 5x2 → max    3x1 + 4x2 ≤ 12    x1 + x2 ≥ 1  4x1 + x2 ≥ 2    2x1 − 3x2 ≤ 3    x1 ≥ 0. 3 = SB = So . care este un hexagon convex.9) În mod analog. pe cale grafică. Vârfurile hexagonului le putem obţine în urma rezolvării unor sisteme liniare de ecuaţii cu două ecuaţii şi două necunoscute. Rezolvarea modelelor pe cale grafică 41 x2 2 (d4) 1 2/3 A (2/3. deoarece vârfurile sunt punctele de intersecţie a dreptelor: {A} = (d1 ) ∩ (Oy) x1 = 0 3x1 + 4x2 − 12 = 0 i i i i . se va determina mulţimea S. 2.5. 3.

B(0.3: Rezolvând sistemul. 2). în acest caz. Funcţia de scop f (x) = ax1 + bx2 formează o familie de drepte paralele: ax1 + bx2 = λ. D(1. 3). Înlocuind aceste soluţii bazice în funcţia de scop.i i i “JATEK” — 2005/3/11 — 10:29 — page 42 — #42 i 42 2. 3 3 2 În mod analog se vor obţine punctele: A(0. 3). obţinem: C Observaţie. va fi A = (0. Rezolvând sistemul. a2 + b2 i i i i . pentru λ = 0. . Teoria problemelor de optimizare liniară cu restricţii x2 (d3) 3 2 B 1 C 1 ½ D E F A (d4) (d2) 4 -1 (d1) x1 Figura 2. 3 ). iar valoarea optimă a funcţiei de scop va fi: fmax = 15. 15/17). 0)F (48/17. se va obţine soluţia optimă a problemei care. x2 ) un punct oarecare. 3). 0). ¯ ¯ Distanţa punctului de la această dreaptă este: d= |ax1 + bx2 − z| ¯ ¯ √ . 3 E(3/2. λ ∈ R. Fie dreapta z = ax1 + bx2 şi (x1 . avem: A(0. {C} = (d2 ) ∩ (d3 ) x1 + x2 − 1 = 4x1 + x2 − 2 x1 + x2 − 1 = 0 1 2 . Considerăm dreapta ax1 + bx2 = 0. C 1 .

Acest model admite optim multiplu. Să se rezolve problema:   f (x) = 3x1 + 4x2 → max    3x1 + 4x2 ≤ 12    x1 + x2 ≥ 1 x1 − x2 ≤ 2      −x1 + x2 ≤ 2   x1 .4). Astfel.i i i “JATEK” — 2005/3/11 — 10:29 — page 43 — #43 i 2. Calculând vârfurile poligonului în care funcţia de scop admite valoare optimă. x2 ≥ 0 Folosind acelaşi raţionament. putem scrie: {A} = (d1 ) ∩ (d4 ) 3x1 + 4x2 − 12 = −x1 + x2 − 2 ⇔ −x1 + x2 − 2 = 0 Coordonatele punctului sunt: A {B} = (d1 ) ∩ (d3 ) 4 18 . 7 7 . cu atât este mai mare (mai mică) valoarea lui z pe care funcţia f (x) = ax1 + bx2 o atinge în acel punct. 0) de la dreapta considerată este: |z| . 2x1 + 5x2 = 10 x1 − x2 = 2/ · 5 i i i i . 2. după obţinerea lui S. Astfel se pot deduce imediat următoarele: cu cât un vârf al lui S este mai depărtat (mai apropiat) de dreapta ax1 + bx2 = 0. deoarece dreapta (d1 ) este paralelă cu dreapta (d) : 3x1 + 4x2 = 0 (fig. avem de calculat doar coordonatele unui singur vârf.5. se va reprezenta mulţimea soluţiilor posibile. 7 7 . √ Constanta de proporţionalitate este a2 + b2 . Rezolvarea modelelor pe cale grafică Astfel distanţa originii O(0. 4. 4x1 + 3x2 = 10 −x1 + x2 = 2/ · 4 3x1 + 4x2 − 12 = x1 − x2 − 2 ⇔ x1 − x2 = 2 de unde obţinem: B 20 6 . d= √ a2 + b2 43 Deci valoarea funcţiei f (x) = ax1 + bx2 într-un punct este proporţională cu distanţa de la origine la dreapta ce trece prin acel punct şi este paralelă cu dreapta ax1 + bx2 = 0. pe cale grafică.

Pentru a fabrica două produse P1 şi P2 este necesar să se execute operaţii de prelucrare la trei maşini M1 . 1] 7 7 7 7 Scopul principal pe care-l urmăreşte programarea matematică constă în obţinerea soluţiei optime a unei probleme economice pe baza unui model matematic. λ ∈ [0. că timpul unitar de execuţie a piesei P1 la maşina M1 este de 12 minute. =f . în mod succesiv. λ + . M3 . = 7 7 7 7 20 16 12 6 − λ.4: 20 6 4 18 . Teoria problemelor de optimizare liniară cu restricţii x1 (d1) (d4) (d) 3 2 F 1 E -2 A (d3) B D 1 2 C 4 x2 -2 (d2) Figura 2. Timpii unitari de execuţie sunt daţi în tabelul de mai jos. Problemă aplicativă 1. + (1 − λ) . unde se vede. de exemplu. M2 . În continuare prezentăm câteva probleme aplicative. iar mulţimea soluţiilor op7 7 7 7 time este combinaţia convexă a soluţiilor optime. Putem scrie: Deci fmax = f x0 = λ = 20 6 4 18 . = 12. Se presupune că maşinile nu au timp morţi provocaţi de aşteptarea unui produs i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 44 — #44 i 44 2.

5). Construind dreapta (d) : 900x1 + 1000x2 = 0 se observă imediat că punctul {A} = (d1 )∩(d2 ) este cel mai îndepărtat de origine. pentru maşina M2 160 ore = 9600 min. P1 P2 M1 12 min 9 min M2 8 min 12 min M3 6 min 16 min Orele disponibile ale fiecărei maşini în decurs de o lună sunt: 165 ore = 9900 min. reprezentând în acelaşi sistem de coordonate dreptele: (d1 ) 12x1 + 9x2 − 9900 = 0. se obţine: x1 = 600.i i i “JATEK” — 2005/3/11 — 10:29 — page 45 — #45 i 2. pentru maşina M1 140 ore = 8400 min. beneficiul se poate formula matematic cu funcţia liniară f (x1 . respectiv x2 numărul de produse ce urmează să fie realizat din produsele P1 şi P2 . Mulţimea S este chiar poligonul haşurat din cadranul I.5. Problema se va rezolva pe cale grafică.m. prin urmare coordonatele acestui punct reprezintă soluţia optimă. x2 ) = 900x1 + 1000x2 . (d3 ) 6x1 + 16x2 − 9600 = 0 (v. x2 = 300.m) la produsul P1 şi de 1000 (u. În continuare avem de determinat valoarea maximă a funcţiei economice respectând condiţiile x1 ≥ 0. Rezolvarea modelelor pe cale grafică 45 aflat în curs de prelucrare la o altă maşină. figura 2. Astfel: fmax = 900 · 600 + 1000 · 300 = 840000 u. Coordonatele punctului A se obţin în urma rezolvării sistemului liniar de ecuaţii: 12x1 + 9x2 − 9900 = 8x1 + 12x2 − 8400 8x1 + 12x2 = 8400 Rezolvând sistemul. pentru a obţine în condiţiile date un beneficiu total maxim? Notând cu x1 . (d2 ) 8x1 + 12x2 − 8400 = 0. datorită faptului că nu există preferinţe în ordinea operaţiilor. i i i i . pentru maşina M3 Beneficiul pe unitate de produs este de 900 de unităţi monetare (u. x2 ≥ 0 şi restricţiile: 12x1 + 9x2 ≤ 9900 8x1 + 12x2 ≤ 8400 6x1 + 16x2 ≤ 9600 pentru maşina 1 pentru maşina 2 pentru maşina 3 Funcţia obiectiv şi restricţiile sunt funcţii liniare.m) la produsul P2 . Să se determine câte produse P1 şi P2 trebuie fabricate lunar.

5: Soluţia sistemului pentru care funcţia de scop are valoare maximă corespunde încărcării complete a maşinilor M1 . iar M3 rămâne disponibilă pentru un timp egal: 9600 − (6 · 600 + 16 · 300) = 1200 min.i i i “JATEK” — 2005/3/11 — 10:29 — page 46 — #46 i 46 2. M2 . atunci cele trei maşini ar fi toate complet încărcate. i i i i . Teoria problemelor de optimizare liniară cu restricţii x2 (d1) 1100 700 600 A 100 100 825 1050 1600 (d2) (d3) x1 (d) Figura 2. Dacă cele trei drepte care reprezintă restricţiile s-ar intersecta într-un singur punct.

m (3. 47 i i i i . An a11 a21 . . . bi sunt numere reale date.1. Matricea restricţiilor este:    A =   A1 . j = 1.1. aij . .  a1n a2n     . A2 . .1) xj ≥ 0. n.. amn Fie A1 . An . Definiţia 3. An puncte din Rm care reprezintă coloanele matricei A. . ..1) orice submulţime a spaţiului Rm format din m vectori liniar independenţi alese dintre puntele A1 .i i i “JATEK” — 2005/3/11 — 10:29 — page 47 — #47 i Capitolul 3 Metoda simplex 3. . x ≥ 0} mulţimea soluţiilor posibile ale problemei considerate. . j=1 i = 1. . m şi j = 1. . Se numeşte bază a problemei (3.1 Noţiuni introductive    f (x) =      n Fie următorul model de minimizare sub forma standard: n cj xj → min j=1        aij xj = bi .. .. n unde cj . . . am1 . . pentru orice i = 1. . Notăm cu: S = {x ∈ Rn : Ax = b.

Avem de arătat că xB este o soluţie posibilă. dacă pentru orice j ∈ B avem α0j ≥ 0. . .1. n} şi B ∩ B = ∅. (3. Dacă B este o bază primal admisibilă a problemei (3. . Metoda simplex Dacă B este o bază a problemei (3. atunci xB ∈ S. . . n} : Ai ∈ B} mulţimea indicilor nebazice. dacă j ∈ B ¯ dacă j ∈ B Teorema 3. Considerăm o bază B a problemei (3. . adică verifică sistemul de restricţii şi condiţia de pozitivitate. i i i i . .5) di = Definiţia 3. α0j ∈ R. . ¯ pentru orice i ∈ B αij ∈ R.2) unde α0j reprezintă coordonatele vectorului b în baza B.2. . unde n 1 coordonatele punctului sunt date de relaţia: xB = j α0j 0 .1).4) ¯ pentru orice i ∈ B. j∈B (3. . Demonstraţie. (3. . (3.1) şi vom introduce următoarele notaţii: b= j∈B α0j Aj . n} ∩ N : Aj ∈ B} mulţimea indicilor bazice şi: ¯ B = {i ∈ {1. .1.i i i “JATEK” — 2005/3/11 — 10:29 — page 48 — #48 i 48 3. Ai = j∈B αij Aj . . d0 = j∈B α0j cj αij cj − ci . xB ) ∈ Rn . . Evident următoarele egalităţi sunt adevărate: ¯ ¯ B ∪ B = {1. . .3) unde αij sunt coordonatele vectorului Ai ∈ B în baza B.1. O soluţie asociată bazei B vom nota cu xB = (xB . Spunem că baza B este bază primal admisibilă . . atunci putem defini următoarele mulţimi de indici: B = {j ∈ {1.1).

.i i i “JATEK” — 2005/3/11 — 10:29 — page 49 — #49 i 3. să se determine o bază primal admisibilă B. avem xB ≥ 0 ⇒ xB ∈ S şi teorema este demonstrată. (3.3). Astfel punctul x0 = (x0 . pe baza definiţiei 3. Se pot ivi două situaţii: ¯ a) Dacă există i ∈ B+ astfel încât pentru orice j ∈ B.2. xn Evident.1. i ∈ B Se pot ivi două situaţii: ¯ a) Dacă pentru orice i ∈ B. ¯ 4. atunci funcţia de scop a problemei este nemărginită inferior pe mulţimea soluţiilor posibile şi problema nu admite soluţie (se obţine optim infinit). . j ∈ B. Pentru fiecare i ∈ B+ să se verifice semnul numerelor αij . αij folosind relaţiile (3.1. αij ≤ 0. . .  (A · x = (A1 . 3. (3.  = x1 A1 + · · · + xn An ) . ¯ 5. j∈B d0 este valoarea minimă a funcţiei de scop. di folosind formulele (3. Noţiuni de bază Putem scrie: n 49 A·x = j=1 B Aj xB = j  j∈B α0j Aj = b  x1  . să se calculeze numerele reale α0j . Schema algoritmică a algoritmului simplex primal: 1.2). atunci formează mulţimea: ¯ ¯ B+ = {i ∈ B : di > 0}. di ≤ 0 atunci baza B ales în pasul (1) este o bază optimă. 2.5). . Altfel: ¯ b) Dacă există i ∈ B astfel încât di > 0.4). să se verifice semnul numerelor di . i i i i . j ∈ B este soluţie optimă iar ¯ . să se calculeze numerele d0 . An ) ·  . . x0 ) ∈ Rn cu coordonatele: n 1 x0 = j α0j 0 .

în sectorul 5 se va trece numărul d0 . pentru pro-blema de optimizare liniară considerată. Metoda simplex ¯ b) dacă pentru orice i ∈ B+ există cel puţin un j ∈ B astfel încât αij > 0 atunci se va trece la pasul următor ¯ 6.în sectorul 2 se vor trece componentele bazei B (m coloane) Aj . αhj > 0 . j ∈ B.în sectorul 3 se vor trece punctele Ai . Pentru aplicarea algoritmului se întocmesc tabele. numite tabele simplex primal.i i i “JATEK” — 2005/3/11 — 10:29 — page 50 — #50 i 50 Altfel: 3. . Întocmirea tabelelor simplex primal Se va presupune că s-a determinat o bază primal admisibilă B. j ∈ B. să se determine un indice h ∈ B+ .în sectorul 1 se va trece numărul de ordine al tabelului simplex. Bazele se modifică până când se va ajunge la unul din criteriile de oprire date în algoritm. Să se înlocuiască în baza B vectorul Ak cu Ah şi cu noua bază astfel obţinută se va trece la pasul (2) din algoritm. 7. ¯ . αhj 8. j ∈ B. i i i i . să se determine un indice k ∈ B astfel încât: α0k = min αhk α0j . Se va construi tabelul de mai jos: 2 2 6 3 1 3 ∗ 7 ∗ 8 ∗ ∗ 4 10 5 ∗ 9 ∗ Sectoarele indicate în tabel se vor completa după următoarea regulă: . . valoarea funcţiei de scop pentru soluţia posibilă xB . j ∈ B. .în sectorul 6 vor fi scrise numerele αij . .în sectorul 4 vor fi scrise numerele α0j . i ∈ B.

numerele di . (Dacă αhj < 0. Urmează completarea sectorului 10 din tabel. ∀ i ∈ B : pi = 1 − j∈B αij − di . în baza B. în urma alegerii în acest mod a liniei de pivot. j∈B .în sectorul 9 va fi scris numărul p0 = 1 − α0j − d0 .1. Alegerea coloanei pivot se numeşte criteriu de ieşire din bază.în sectorul 8 vor fi scrise numerele notate cu pi . Pentru reducerea numărului de iteraţii se recomandă să fie aleasă o linie pentru care: ¯ dh = max{di : i ∈ B+ } (S-a constatat că.i i i “JATEK” — 2005/3/11 — 10:29 — page 51 — #51 i 3. αhk (elementul care se află la intersecţia liniei pivot cu coloana pivot) se numeşte element pivot. Pasul (6) se numeşte criteriu de intrare în bază. Cu alegerea lui h se alege de fapt vectorul care va intra în bază. Noţiuni de bază ¯ . adică se va efectua testarea optimalităţii soluţiei posibile xB . locul respectiv din tabel se barează. va fi înlocuit vectorul Ak cu Ah şi cu baza astfel obţinută se va trece la întocmirea noului tabel simplex. După completarea celor 9 sectoare se va aplica pasul 4 din algoritm. însă care pot fi folosite pentru verificarea corectitudinii calculelor: ¯ . pentru fiecare i ∈ B. numită linie pivot. Dacă soluţia bazică nu este optimă şi problema dată nu are optim infinit (se verifică în pasul 5).în sectorul 7 se trec. În continuare. pot fi trecute nişte valori care nu erau menţionate în algoritm. se reduce numărul iteraţiilor simplex). 51 Folosirea sectoarelor 8 şi 9 este opţională. Trecerea dintr-un tabel simplex în altul La o iteraţie de ordinul r avem tabelul simplex primal: i i i i . 0j În sectorul 10 vor fi trecute câturile αhj menţionate în pasul (7) din algoritm.) α Coloana corespunzătoare indicelui k (ales în pasul 7 din algoritm) se numeşte coloană pivot. atunci raportul nu se calculează. adică o linie din tabel. Aici se termină prima iteraţie simplex primal. atunci se va alege h.

δ unde δ este chiar elementul pivot αhk . ... .. În sectorul (2’)....în sectorul 3 vectorul Ah se înlocuieşte cu Ak ... ... 3. adică valoarea 1/αhk .. ∗ ∗ ... Aceste valori sunt folosite doar la completarea primului tabel la calculul diferenţelor di ¸i d0 . β.... . ...pe linia pivot. 9 se calculează folosind regula drept-unghiului. pi ph p0 ∗ Completarea tabelului: .. .. . ... . . . 6. . Metoda simplex ∗ ..în locul elementului pivot se va scrie inversul acestuia. elementele vor fi înmulţite cu −1/αhk .numerele din sectoarele 4.. 7. αik αhk xB k B /α xk hk ... ..i i i “JATEK” — 2005/3/11 — 10:29 — page 52 — #52 i 52 r ...în sectorul 2 vectorul Ak se înlocuieşte cu Ah . ... αij αhj xB j B /α xj hj . 8... Ah . Ai . .. elementele vor fi înmulţite cu 1/αhk ..numărul din sectorul 1 se măreşte cu o unitate.. .... . γ.. din tabelul simplex aşezate astfel încât să formeze vârfurile unui dreptunghi: α s d   d     d   d   © d β γ δ prin regula dreptunghiului valoarea lui α se va înlocui cu numărul: α→ α·δ−γ·β . ...... . respectiv indicilor nebazici i ∈ B. respectiv (3’) vor fi trecute componentele vectorului c ∈ Rn corespunzătoare indicilor bazici j ∈ B...pe coloana pivot.. di dh d0 ∗ ∗ ... 5. . Aj . δ. ş Regula dreptunghiului Considerând patru numere α. . Ak .. . Astfel la iteraţia de ordinul r + 1 se va obţine următorul tabel: i i i i ..

atunci baza primal admisibilă pe care o alegem este baza canonică din Rm . Ah . fiecare vector îşi păstrează coordonatele iniţiale.. ..i i i “JATEK” — 2005/3/11 — 10:29 — page 53 — #53 i 3.. . iar componentele vectorului b sunt pozitive. 1 −1 0 0 0 1 Problema dată este în forma standard de lucru. . prezentăm exemple numerice... Să se determine soluţia optimă a problemei:   f (x) = x1 − x2 − 3x3 + 5x4 → min    −x1 + x2 + x3 + x4 = 1  x1 − 2x2 + 3x3 + x5 = 2   x1 − x2 + x6 = 3    xj ≥ 0... . . .. ik d di − ααhkh dh − αhk k d0 − αhkh ∗ ∗ .. în baza canonică.. 6 Matricea restricţiilor este: A1 A2 A3 A4 A5 A6   −1 1 1 1 0 0 A =  1 −2 3 0 1 0  ... .... ik p pi − ααhkh ph − αhk k p0 − αhkh ∗ α xB − j αhj xB k αhk xB d xB p În continuare..... ... Ak . Putem scrie: i i i i . .. ..... Putem aplica direct algoritmul simplex primal.. A6 ). Această alegere este foarte avantajoasă. . Dacă modelul este în forma standard de lucru... ∗ ∗ .. j = 1... Observaţie. Problemă rezolvată 1.... Aj .. Alegem baza B = (A4 . Deci nu trebuie calculate valorile α0j şi αij ... deoarece.. . Ai . Noţiuni de bază r+1 .. α α αij − hjhkik α hj − αhk 53 . . deoarece în matricea A este inclusă o matrice unitate de ordinul 3..1. ...... ∗ .. . A5 . .... αik αhk 1 αhk xB k αhk . Astfel putem înlocui în tabel coordonatele iniţiale ale vectorului b şi ale vectorilor Ai .. după cum este cunoscut..

Metoda simplex Din sectorul 4 se citeşte soluţia bazică: xB = (0 0 0 1 2 3) iar din sectorul 5 valoarea funcţiei de scop pentru această soluţie: f (xB ) = d0 = 5. 3 A1 A4 A5 ∗ ∗ A2 -4/5 3/5 -1/5 1/5 A3 -1/5 2/5 1/5 4/5 A6 1/5 3/5 -1/5 16/5 16 ∗ 2/5 -34/5 -2/5 -13/5 ∗ ∗ 7/5 31/5 8/5 -3/5 ∗ xB = (0 1/5 4/5 0 0 16/5) f (xB ) = −13/5 4 A6 A4 A5 ∗ ∗ A2 4 3 -1 13 A3 1 1 0 4 A1 5 3 -1 16 ∗ -2 -8 0 -9 ∗ ∗ -7 2 3 -23 ∗ i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 54 — #54 i 54 1 A1 A2 A3 ∗ ∗ A4 -1 1 1 1 1 A5 1 -2 3 2 2/3 A6 1 -1 0 3 ∗ -6 6 8 5 ∗ ∗ 6 -3 -11 -10 ∗ 3. Trecem la următoarea iteraţie simplex: 2 A1 A2 A5 ∗ ∗ A4 -4/3 5/3 -1/3 1/3 1/5 A3 1/3 -2/3 1/3 2/3 A6 1 -1 0 3 ∗ -26/3 34/3 -8/3 -1/3 ∗ ∗ 29/3 -31/3 11/3 -8/3 ∗ xB = (0 0 2/3 1/3 0 3) f (xB ) = −1/3. d3 > 0. Soluţia nu este optimă d2 > 0.

1. Noţiuni de bază 55 Soluţia optimă a problemei este: x0 = (16 13 4 0 0 0). iar valoarea optimă a funcţiei de scop este fmin = d0 = −9.i i i “JATEK” — 2005/3/11 — 10:29 — page 55 — #55 i 3. se vor obţine pe rând următoarele tabele: 1 A3 A4 A5 ∗ ∗ A1 2 1 3 15 15/2 A2 1 2 1 12 12 ∗ 2 -1 -2 42 ∗ ∗ -4 -1 -1 -68 ∗ f (x)B = 42 ∗ 2 1 5 -38 ∗ xB = (15 12 0 0 0). bază primal admisibilă. 2 A1 A4 A5 ∗ ∗ A3 1/2 1/2 3/2 15/2 A2 -1/2 3/2 -1/2 9/2 ∗ -1 -2 -5 27 ∗ i i i i . 2. A2 ). Să se determine soluţia optimă a problemei:   f = 2x1 + x2 + 3x3 + 5x4 + 9x5 → min   x1 + 2x3 + x4 + 3x5 = 15 x2 + x3 + 2x4 + x5 = 12    x≥0  1  A A2 A3 A4 A5 0 2 1 3  A= 1 0 1 1 2 1 Se va alege baza B = (A1 . Aplicând algoritmul simplex primal.

în cazul problemelor de maximizare. Cercetăm alegerea vectorului Ak ce trebuie înlocuit în baza B.2. h}. Atunci soluţia asociată acestei baze o putem scrie în forma: xB = (y1 . . . yk+1 . . . I. 0). fără restrângerea generalităţii (variabilele pot fi renumerotate). 0. . . atunci se poate determina o altă soluţie de bază xB care să dea o valoare mai bună decât xB pentru funcţia de scop. . (Criteriul de îmbunătăţire a soluţiei) Fie xB o soluţie bazică nedegenerată. m.1. . . yk−1 . . astfel încât soluţia xB să fie posibilă. . Demonstraţie. k + 1.2 Bazele teoretice ale algoritmului simplex primal Teorema 3. . Metoda simplex şi fmin = 27. . . Adică. . . dacă există cel puţin un i ∈ B astfel încât di > 0. . . 2. i i i i . că: xB = (x1 . . k − 1. . . de asemenea. A2 . algoritmul sim¯ plex va fi continuat. Am ). yh . x) → max Ax = b  x≥0 Dacă calculăm diferenţele di cu formula di = ci − j∈B αij cj pentru orice ¯ i ∈ B. Acum construim B astfel încât în baza B înlocuim vectorul Ak cu Ah (modul de alegere a vectorilor va fi precizat mai târziu). . . . Adică să avem yi ≥ 0. 0) adică: B = (A1 . i ∈ {1. xm . Presupunem că B este o bază pentru modelul considerat. . . . 0. . Dacă există cel puţin un indice j = 1. atunci criteriul de îmbunătăţire pentru modele de maximizare va fi identic cu cel folosit la modelele de minimizare. . 3. . . iar baza corespunzătoare soluţiei xB să difere de baza corespunzătoare soluţiei xB printr-un singur vector. Putem presupune. . . (se va verifica această condiţie mai târziu). 0.i i i “JATEK” — 2005/3/11 — 10:29 — page 56 — #56 i 56 Soluţia optimă a problemei este: x0 = (0 9/2 15/2 0 0) 3. ym . 0. n pentru care avem dj < 0 în cazul unei probleme de maxim (sau dj > 0 în cazul unei probleme de minim). . . pentru modelul:   f (x) = (c. 0. .

.8) Pentru a ilustra modul de utilizare a formulelor (3. Bazele teoretice ale algoritmului simplex primal Folosind faptul că xB şi xB satisfac sistemul de restricţii. . rezultă că trebuie să aibă loc relaţiile: xj = yj + yh αhj xk = yh αhk pentru j ∈ {1.i i i “JATEK” — 2005/3/11 — 10:29 — page 57 — #57 i 3. . k − 1. scriem:  m m   xj Aj = yj Aj + yh Ah = b     j=1 57 Ah = j=1 j=k m j j=1 αhj A În urma acestor egalităţi avem: m m m xj Aj = j=1 j=1 j=k yj Aj + yh j=1 αhj Aj Putem scrie: m m m xj Aj = j=1 yj Aj + yh j=1 j=k m j=1 j=k αhj Aj + yh αhk Ak ⇔ m xj Aj = j=1 j=1 j=k [yj + yh αhj ]Aj + yh αhk Ak (3.2.7) vor fi scrise în următoarea formă: yh = xk αhk yj = xj − yh αhj = xj − xk · αhj αhk j ∈ {1. prezentăm tabelul simplex: i i i i . k + 1. . . . . Deoarece descompunerea unui vector într-o bază este unică. Dar scopul urmărit este acela de a exprima componentele soluţiei xB în funcţie de componentele soluţiei xB . . Astfel relaţiile (3. pentru (3.7) Aceste relaţii dau posibilitatea calculării componentelor soluţiei xB în funcţie de componentele soluţiei xB . . . . m}. k + 1.6) Deci în baza B. k − 1.8). m} (3. . am obţinut două descompuneri pentru vectorul b.

.. ..... α0h = αhk Celelalte componente bazice ale soluţiei xB se calculează prin regula drept-unghiului dat. care se găseşte la intersecţia coloanei vectorului Ak ... Ştim că xj şi xk sunt pozitive (xB soluţie bazică posibilă).. . k + 1. ..8).i i i “JATEK” — 2005/3/11 — 10:29 — page 58 — #58 i 58 r . Va trebui să avem: xk xj − · αhj ≥ 0.... În formula (3.9) că elementul pivot αhk trebuie să fie strict pozitiv.. Ah .. Ak . Fixarea acestui vector se va face cu condiţia ca soluţia xB să fie posibilă. Acum considerăm inegalitatea (3.. k + 1. ... pentru care αhj > 0. . . . αhk Dacă αhj ≤ 0 atunci inegalitatea este evidentă. . . αij αhj xB j B /α xj hj ..10) Din ipoteză (xB soluţie bazică posibilă) avem xk > 0 rezultă pe baza inegalităţii (3... cu linia vectorului Ah .. . ... . care va ieşi din bază... . .8) apare elementul αhk . .... ca vector care intră în bază... αhk se numeşte element pivot.. .(3.. k − 1.. . va trebui să avem: xk ≥0 αhk xk xj − · αhj ≥ 0. astfel: yk = xk αhk şi yj = xj αhk − xk αhj αhk Dar vectorul Ak nu a fost încă precizat. . 3. Metoda simplex x .. . . di dh d0 x x . Aj .. . Astfel reluăm condiţiile yj ≥ 0. astfel putem alege Ah .. . ..9) pentru j ∈ {1.. . i ∈ {1.. Componenta yh (cu notaţiile folosite α0h ) ce urmează să ia locul componentei xk (adică α0k ) se obţine prin împărţirea acesteia cu elementul pivot α0k ... Notăm mulţimea indicilor j.. . m}. . αik αhk xB k B /α xk hk .. k − 1. . .. x x . cu: J = {j | αhj > 0} (B+ = {j | αhj > 0}) i i i i . pi ph p0 x Avem dh > 0. Ai . care va intra în bază. . αhk (3.. Pe baza relaţiilor (3.10). ... .. h}... m...

Bazele teoretice ale algoritmului simplex primal Putem scrie atunci: xj xk ≤ . Avem de demonstrat că soluţia xB construită în etapa (I) a demonstraţiei este într-adevăr mai bună decât soluţia xB .11) Pentru utilizarea relaţiei (3. În acest caz vom obţine o soluţie degenerată (în următorul tabel simplex. atunci poate fi ales oricare dintre ele.2.8). Dacă avem mai multe rapoarte minime egale. printre numerele α0j vom avea zerouri). pe baza relaţiei (3. j ∈ J. adică are loc relaţia f (xB ) > f (xB ). αhk αhj 59 ceea ce înseamnă că indicele k corespunzător vectorului Ak . care va fi eliminat din baza B. aceasta se poate scrie sub forma: m cj xj − j=1 j=k xk αhj αhk m = j=1 m cj xj − xk αhj αhk − −ck xk xk − αhk αhk = j=1 cj xj − xk αhj αhk −0 i i i i . obţinându-se vectorul Ak . ce urmează a fi eliminat din baza B.11). Folosind relaţiile (3.i i i “JATEK” — 2005/3/11 — 10:29 — page 59 — #59 i 3. calculăm diferenţa:    f (xB ) − f (xB ) =   m m j=1 j=k  cj yj + ch yh  −  m cj xj = j=1 m = j=1 j=k cj xk xj − · αhj αhk xk + ch · − αhk cj xj j=1 (3.12) Adunând şi scăzând termenul obţinut pentru j = k în prima sumă de mai sus. Dintre rapoartele pozitive din sectorul 10.11) se ataşează tabelului o linie suplimentară (sectorul 10) în care se trec rapoartele dintre componentele soluţiei xB şi componentele corespunzătoare vectorului Ah ce intră în bază (rapoarte ce se calculează numai pentru componentele strict pozitive de pe linia h). Dacă αhj ≤ 0 atunci se barează locul respectiv din tabel. II. va fi ales cel cu valoarea minimă. Această regulă poartă numele de criteriu de ieşire din bază. se poate determina cu ajutorul relaţiei: xk = min j∈J αhk xj αhj = min α0j | αhj > 0 αhj (3.

. Am ) şi xB = (x0 . x0 . . putem scrie: m 3.13) Vectorii din A care nu aparţin lui B pot fi scrişi ca o combinaţie liniară a bazei. .2. Deoarece xB . Avem: n m xj Aj = j=1 k=1 x0 Ak = b k (3. . Demonstraţie. 0). . .i i i “JATEK” — 2005/3/11 — 10:29 — page 60 — #60 i 60 Înlocuind în relaţia (3.12). Teorema 3. . n pentru o problemă de maximizare). . Fie xB o soluţie de bază. i = 1. . . x sunt soluţii posibile. Fără restrângerea generalităţii putem scrie B = (A1 . x0 ≥ 0. atunci soluţia este optimă (problema are optim finit). Atunci f (xB ) − f (xB ) > 0 ⇔ f (xB ) ≥ f (xB ). Metoda simplex f (xB ) − f (xB ) = j=1 m cj xj − cj xj − j=1 xk αhj αhk cj + ch xk − αhk m cj xj = j=1 m = = ch xk αhk xk xk αhj + ch − cj xj = αhk αhk j=1 j=1   m m xk xk xk  ch − cj αhj  = − cj αhj = dh αhk αhk αhk j=1 j=1 m Evident că trebuie să avem dh > 0. rezultă că verifică sistemul de restricţii. xn ). x = (x1 . . Având problema de maximizare considerată mai sus. . .2. m 1 i Considerăm o soluţie posibilă x ∈ S oarecare. 0.14) Înlocuim în relaţia (3. adică: m A = k=1 j αjk Ak (3. (Testul de optimalitate) Dacă pentru o soluţie bazică avem di ≤ 0 (i = 1. O astfel de alegere se numeşte criteriu de intrare în bază. .13) şi obţinem: n m m xj j=1 m k=1 αjk Ak k=1 n j=1 = k=1 m x0 Ak k x0 Ak k k=1    xj αjk  Ak = i i i i . încât inegalitatea cerută să aibă loc (aşadar alegem vectorul Ah ). . n) în cazul unei probleme de minimizare (sau di ≥ 0. vom demonstra că: f (x) − f (x0 ) ≤ 0. .

Fie αhj = 0 pentru orice j ∈ B. rezultă yj = xj − yh αhj că din (3. j ∈ B. k j=1 k = 1. atunci noile soluţii nu mai sunt admisibile.2. II. iar fmax = −d0 = −fmin . Bazele teoretice ale algoritmului simplex primal 61 Astfel s-a obţinut descompunerea vectorului b în baza B.i i i “JATEK” — 2005/3/11 — 10:29 — page 61 — #61 i 3. fiind unică. se poate scrie: n xj αjk = x0 . (recunoaşterea optimului infinit) ¯ Dacă există un indice h ∈ B cu dh > 0.7)soluţia şi evident funcţia obiectiv devine infinită. Avem αhj ≤ 0 pentru orice j ∈ B. Demonstraţie. În acest caz se va determina valoarea minimă a funcţiei de scop pe acelaşi domeniu determinat de restricţiile problemei de maximizare. Observaţie. deoarece dh > 0. astfel încât toate numerele αhj ≤ 0. Funcţia obiectiv poate lua orice valoare (nu avem element pivot). Este suficient să se cunoască algoritmul simplex pentru rezolvarea problemelor de minimizare. αhj ≤ 0 . n rezultă că f (x) − f (x0 ) ≤ 0 şi teorema este demonstrată. atunci se va înmulţi formal funcţia de scop cu −1 şi se va rezolva modelul cu funcţia de scop −f. Teorema 3.2. Dacă se doreşte rezolvarea unui model de maximizare. Dacă αhj < 0 pentru orice j ∈ B. atunci problema are optim infinit. Soluţia optimă a acestui model este optimă şi pentru modelul iniţial. Putem alege h ca linie pivot. I. m (3.3. care. i i i i . xk yh = αhk Dar având pentru orice j ∈ B.15) Acum revenim la ceea ce avem de demonstrat şi scriem: n m f (x) − f (x0 ) = j=1 n cj xj − k=1 m ck x0 = k  ck  k=1 n j=1 m n  xj αjk  = = j=1 n cj xj − = j=1 n cj xj − j=1 xj k=1 m ck αjk n = = j=1 xj cj − k=1 ck αjk = − j=1 xj dj Deoarece dj ≤ 0 pentru orice j = 1.

1 A1 A2 A3 ∗ ∗ A4 1 1 -2 7 7 A5 -3 1 2 3 3 ∗ 0 2 1 0 ∗ ∗ 3 -3 0 -9 ∗ 2 A1 A5 A3 ∗ ∗ A4 4 -1 -4 4 1 A2 -3 1 2 3 - ∗ 6 -2 -3 -6 ∗ ∗ -6 3 6 0 ∗ 3 A4 A5 A3 ∗ ∗ A1 1/4 -1/4 -1 1 A2 3/4 1/4 -1 6 ∗ -6/4 -2/4 3 -12 ∗ ∗ 6/4 6/4 0 6 ∗ i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 62 — #62 i 62 Problemă rezolvată Să se determine soluţia optimă a problemei:   f (x) = 2x2 + x3 → max   x1 + x2 − 2x3 ≤ 7  −3x1 + x2 + 2x3 ≤ 3   x ∈ R3 + Matricea restricţiilor este: A1 A2 A3 A4 A5 1 −3 1 1 −2 2 1 0 0 1 3. Rezolvăm cu algoritmul simplex primal. Metoda simplex   −f (x) = −2x2 − x3 → min   x1 + x2 − 2x3 + x4 = 7  −3x1 + x2 + 2x3 + x5 = 3   x ∈ R5 + Modelul considerat este în forma standard de lucru.

α32 = −1 < 0. B = (A1 . adică modelul are optim infinit. Observaţie. nu toate diferenţele di sunt strict negative. Observaţie. Dacă în pasul (7) din algoritm avem mai multe rapoarte minime egale (în tabel. În această situaţie se va alege h ca linie pivot şi se va efectua încă o iteraţie simplex. sectorul 10). atunci problema admite optim multiplu. adică există un dh = 0 pentru care nu toate numerele αhj . Bazele teoretice ale algoritmului simplex primal 63 Există în acest tabel d3 = 3 > 0 pentru care toate numerele α31 = −1 < 0. ceea ce înseamnă că funcţia de scop este nemărginită inferior pe S. Dacă în urma aplicării algoritmului simplex primal. j ∈ B sunt negative.2.i i i “JATEK” — 2005/3/11 — 10:29 — page 63 — #63 i 3. la ultima iteraţie. A2 ) ∗ 1 -2 2 -32 ∗ ∗ -2 0 -4 11 ∗ i i i i . Mulţimea soluţiilor optime este combinaţia convexă a soluţii-lor obţinute. Problemă rezolvată Să se determine mulţimea soluţiilor optime ale problemei:   f (x) = 2x1 + x2 + 4x3 + 3x4 + 6x5 → max   x1 + x3 + 2x4 + x5 = 10 x2 + x3 + x4 + 2x5 = 12    x≥0   −f (x) = −2x1 − x2 − 4x3 − 3x4 − 6x5 → min   x1 + x3 + 2x4 + x5 = 10 x2 + x3 + x4 + 2x5 = 12    x≥0 A1 A2 A3 A4 A5 A= 1 0 0 1 1 A3 A4 A5 ∗ ∗ 1 1 A1 1 2 1 10 10 2 1 A2 1 1 2 12 6 1 2 . atunci în urma alegerii arbitrare a unuia dintre vectorii consideraţi pentru eliminarea din bază vom fi conduşi la degenerarea soluţiei bazice. În aplicaţii practice este foarte importantă recunoaşterea optimu-lui multiplu.

0. 5). Mulţimea soluţiilor optime este combinaţia convexă a soluţiilor obţinute: x0 = λx01 + (1 − λ)x02 . Deci am obţinut două soluţii optime. 0. Pentru λ ∈ (0. i i i i . 3. iar fmax = 44. 0. 0. deoarece d3 = 0 şi α31 > 0. iniţial. 0. iar valoarea optimă a funcţiei de scop este fmax = 44. Deci în cazul optimului multiplu S ⊂ SB . Metoda simplex Soluţia optimă obţinută este x01 = (4.3 Rezolvarea modelelor care. 1]. Avem astfel: 3 A1 A4 A2 ∗ ∗ A3 2 3 -1 8 A5 -1 -1 1 2 ∗ 0 -3 -1 -44 ∗ ∗ 0 2 2 35 ∗ Soluţia optimă obţinută este x02 = (0. Efectuăm încă o iteraţie simplex. 1] 8 − 8λ x = λ       0   0    0 6 2 6λ + 2 − 2λ Observaţie. λ ∈ [0. pentru λ = 0. Numai în cazul soluţiei optime unice avem S ⊆ SB . pentru orice λ ∈ [0. 2). Avem:       4 0 4λ  0   0    0       0  0  + (1 − λ)  8  =   . nu admit soluţii de bază Algoritmul simplex primal poate fi utilizat cu succes numai în cazul în care modelul de optimizare liniară cu restricţii este în forma standard de lucru. 1) obţinem şi soluţii optime nebazice (de exemplu.i i i “JATEK” — 2005/3/11 — 10:29 — page 64 — #64 i 64 2 A3 A4 A2 ∗ ∗ A1 1/2 3/2 -1/2 4 8 A5 1/2 1/2 1/2 6 12 ∗ 0 -3 -1 -44 ∗ ∗ 0 2 2 35 ∗ 3. ceea ce înseamnă că problema are optim multiplu. 8. 6). Pentru λ = 0 sau λ = 1 avem soluţiile bazice calculate mai sus. α35 > 0.

fără restrângerea generalităţii. Dacă modelul dat spre rezolvare nu este în forma standard de lucru. trecem în faza a doua de lucru unde vom întâlni una din următoarele situaţii: 1. I. adică o soluţie bazică iniţială. în faza a doua de lucru.3. în scopul aplicării metodei celor două faze. Rezolvarea modelelor care nu admit iniţial soluţii de bază 65 În aceste cazuri soluţia asociată bazei canonice este soluţie de bază iniţială. se va rezolva modelul considerat cu algoritmul simplex primal. m cu scopul obţinerii unei matrici unitate de ordinul m în matricea restricţiilor.i i i “JATEK” — 2005/3/11 — 10:29 — page 65 — #65 i 3. se va determina o soluţie bazică iniţială după care. u ≥ 0 i=1 (b) după rezolvarea problemei de la punctul (a) cu algoritmul simplex primal. i = 1. Fie următorul model de programare liniară cu restricţii:   f (x) = (c. adică nu admite soluţie de bază iniţială. După introducerea variabilelor artificiale se efectuează: (a) rezolvarea unei probleme de minimizare obţinute în urma înlocuirii funcţiei de scop a problemei date cu o funcţie formată din suma tuturor variabilelor artificiale:  m   g(u) =  ui → min      Ax + Im U = b x ≥ 0. În continuare. x) → max / min Ax = b  x≥0 Presupunem că problema dată nu este în forma standard de lucru. atunci prima dată trebuie formulat un procedeu cu care se poate genera o bază primal admisibilă. m. i i i i . Dacă gmin = 0. În acest scop poate fi aplicată metoda celor două faze sau metoda coeficienţilor de penalizare. în prima fază de lucru. vom prezenta aceste metode. ui = 0 pentru orice i = 1. atunci se va începe rezolvarea problemei iniţiale. Introducem variabile artificiale ui . deoarece după cum s-a arătat baza este primal admisibilă. Metoda celor două faze Cu metoda celor două faze. şi nici un vector artificial nu este în baza optimă. vom presupune că toate componentele lui b sunt pozitive şi în matricea A nu este inclusă o matrice unitate de ordinul m. În continuare.

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 66 — #66

i

66

3. Metoda simplex Soluţia obţinută, în prima fază de lucru, este soluţie bazică iniţială pentru problema considerată, iar baza optimă este bază primal admisibilă. 2. Dacă gmin = 0, ui = 0, i = 1, m, dar cel puţin un vector artificial se află în baza optimă, atunci soluţia problemei rezolvate este soluţie optimă şi pentru problema iniţială. Valoarea funcţiei de scop se va obţine prin calcul direct (înlocuind soluţia optimă în funcţia de scop). Evident în acest caz, problema iniţială are soluţie optimă degenerată. 3. Dacă gmin = 0, (înseamnă că există cel puţin o variabilă artificială strict pozitivă în soluţie), atunci problema considerată nu admite soluţie optimă.

Probleme rezolvate Prezentăm un exemplu pentru fiecare caz în parte. (a) Să se determine soluţia optimă a problemei:   f (x) = 3x1 + 2x2 + x3 + 2x4 → max   2x1 + x2 + x3 + 2x4 = 12 x1 + 2x2 + x3 + 3x4 = 14    x≥0

(a)

Problema nu este în forma standard de lucru, deci nu se poate aplica în mod direct algoritmul simplex primal. Cu metoda celor două faze se va determina o soluţie bazică iniţială, o bază primal admisibilă. În prima fază de lucru se va rezolva modelul:     g(u) = u1 + u2 → min 2x1 + x2 + x3 + 2x4 + u1 = 12  x1 + 2x2 + x3 + 3x4 + u2 = 14   x ≥ 0, u ≥ 0 Matricea restricţiilor este: A1 A2 A3 A4 u1 u2 A= 2 1 1 2 1 1 2 3 1 0 0 1

Avem, pe rând, tabelele simplex:

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 67 — #67

i

3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 1 A1 A2 A3 A4 ∗ ∗ u1 2 1 1 2 12 6 u2 1 2 1 3 14 14/3 ∗ 3 3 2 5 26 ∗ ∗ -5 -5 -3 -9 -51 ∗

67

2 A1 A2 A3 u2 ∗ ∗

u1 4/3 -1/3 1/3 -2/3 8/3 2

A4 1/3 2/3 1/3 1/3 14/3 14

∗ 4/3 -1/3 1/3 -5/3 8/3 ∗

∗ -2 1 0 3 -9 ∗

În următorul tabel simpex, putem reduce numărul liniilor, deoarece linia vectorului artificial u2 întotdeauna o vom putea elimina. Dacă reuşim să scoatem un vector artificial din bază, nu vom avea interesul să-l introducem încă o dată la o altă iteraţie simplex. Putem scrie: 3 u1 A2 A3 ∗ ∗ A1 3/4 -1/4 1/4 2 A4 -1/4 3/4 1/4 4 ∗ -1 0 0 0 ∗ ∗ 3/2 1/2 +1/2 -5 ∗

Dacă toate diferenţele di sunt negative, înseamnă că am ajuns la ultima iteraţie simplex, deoarece gmin = 0, u1 = u2 = 0, B0 = (A1 A4 ) rezultă că soluţia obţinută xB = (2 0 0 4) este soluţie de bază iniţială petru problema dată. De fapt, în prima fază de lucru, se urmăreşte schimbarea formei de reprezentare. Din tabelul 3, dacă scriem matricea restricţiilor: A= 1 −1/4 1/4 0 0 3/4 1/4 1

şi vectorul b = (2 4) atunci modelul iniţial se transformă astfel:

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 68 — #68

i

68

3. Metoda simplex

  f (x) = 3x1 + 2x2 + x3 + 2x4 → max   1 1   x1 − x2 + x3 = 2   4 4 3 1   x2 + x3 + x4 = 4   4 4    x≥0 Acest model este în forma standard de lucru. Se va rezolva cu algoritmul simplex primal. Se vor obţine pe rând: 1 A2 A3 ∗ ∗ A1 -1/4 1/4 2 A4 3/4 1/4 4 16/3 ∗ 5/4 -1/4 -14 ∗ ∗ -3/4 3/4 9 ∗

2 A4 A3 ∗ ∗ x0 =

A1 1/3 1/3 10/3

A2 4/3 1/3 16/3

∗ -5/3 -2/3 -62/3 ∗

∗ 1 1 39/3 ∗

10 16 62 , , 0, 0 fmax = = −d0 . 3 3 3 Se poate observa că nu este necesar să se scrie după prima fază de lucru modelul transformat, ci din ultimul tabel simplex, obţinut în prima fază de lucru, în urma eliminării liniei vectorului artificial u1 şi a eliminării elementelor din sectoarele 5,7,8 şi 9 cu ajutorul funcţiei de scop a problemei iniţiale putem întocmi primul tabel din faza a doua de lucru. (b) Să se rezolve problema:   f (x) = 2x1 + x2 + x3 → min   2x1 + 3x2 + 3x3 = 12 x1 + x2 + 2x3 = 8    x≥0 Matricea restricţiilor fiind:

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 69 — #69

i

3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază

69

A1 A2 A3 A= 2 1 3 1 3 2

modelul nu este în forma standard de lucru. I. Scriem:    g(u) = u1 + u2 → min  2x1 + 3x2 + 3x3 + u1 = 12  x1 + x2 + 2x3 + u2 = 8   x ∈ R∗ , u ∈ R2 + +

A1 A2 A3 u1 u2 A= 2 1 3 1 3 2 1 0 0 1 , B = (u1 , u2 )

1 A1 A2 A3 ∗ ∗

u1 2 3 3 12 4

u2 1 1 2 8 4

∗ 3 4 5 20 ∗

∗ -5 -7 -9 -39 ∗

2 A1 A2 u1 ∗ ∗

A3 2/3 1 1/3 4

u2 -1/3 -1 -2/3 0

∗ -1/3 -1 -5/3 0 ∗

∗ 1 2 3 -3 ∗

În prima fază de lucru s-a obţinut gmin = 0 x0 = (0, 0, 4) B = (x3 , u2 ) cu u2 = 0, deci soluţia obţinută este soluţie optimă şi pentru problema iniţială, iar valoarea funcţiei de scop se va obţine prin calcul direct şi va fi fmin = 4.

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 70 — #70

i

70

3. Metoda simplex

(c). Să se arate că problema nu admite soluţie optimă: Fie modelul:   f (x) = 2x1 + x2 + x3 + 2x4 → min    2x1 + x2 + 2x3 + 2x4 = 16  x1 + x2 + 2x3 + 2x4 = 10   2x1 + x2 + x3 + 2x4 = 20    x≥0  2 1 2 2 A =  1 1 2 2 . 2 1 1 2 I. În prima fază de lucru scriem:   g(u) = u1 + u2 + u3 → min     2x1 + x2 + 2x3 + 2x4 + u1 = 16 x1 + x2 + 2x3 + 2x4 + u2 = 10   2x1 + x2 + x3 + 2x4 + u3 = 20    x ∈ R4 , u ∈ R3 + + A1 A2 A3 A4 u1 u2 u3  2 1 2 2 1 0 0 A =  1 1 2 2 0 1 0 , 2 1 1 2 0 0 1  1 A1 A2 A3 A4 ∗ ∗ 2 A1 A2 A3 u2 ∗ ∗ u1 2 1 2 2 16 8 u1 1 0 0 -1 6 6 u2 1 1 2 2 10 5 A4 1/2 1/2 1 1/2 5 10 u3 2 1 1 2 20 10 u3 1 0 -1 -1 10 10 ∗ 5 3 5 6 46 ∗ ∗ 2 0 -1 -3 16 ∗ ∗ -9 -5 -9 -11 -91 ∗ ∗ -7/2 1/2 2 11/2 -36 ∗ 

cu:

B = (u1 , u2 , u3 )

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 71 — #71

i

3.3. Rezolvarea modelelor care nu admit iniţial soluţii de bază 3 u1 A2 A3 ∗ ∗ A1 1 0 0 6 A4 -1/2 1/2 1 2 u3 -1 0 -1 4 ∗ -2 0 -1 4 ∗ ∗ 7/2 1/2 2 -15 ∗

71

gmin = d0 = 4 = 0 u1 = u2 = 0, u3 = 4 Deoarece gmin = 4 = 0 ⇒ problema iniţială nu admite soluţie. II. Metoda coeficienţilor de penalizare Fie modelul:   f (x) = (c, x) → min / max Ax = b , A ∈ Mm,n (R)  x≥0 b ∈ Rm , c ∈ Rn

(3.16)

Presupunem că problema (3.16) nu este în forma standard de lucru, adică în matricea A nu avem o matrice unitate de ordinul m. Fără restrângerea generalităţii, putem presupune că toate componentele vectorului b sunt pozitive. Introducem variabile artificiale (maximum m astfel de variabile) cu scopul obţinerii unei matrici unitate de ordinul m. Aceste variabile strică vechiul echilibru al restricţiilor şi soluţiile modelului (model lărgit) astfel obţinut, în general, nu corespund cu soluţiile modelului propus spre rezolvare. Evident, pentru ca o soluţie a modelului lărgit să fie soluţie şi pentru modelul iniţial, trebuie ca în ea toate variabilele artificiale să fie nule. De aceea forţăm anularea variabilelor artificiale prin introducerea acestora în funcţia de scop cu un coeficient M (prin adunare în cazul problemelor de minimizare şi prin scădere în cazul problemelor de maximizare). Coeficientul de penalizare M este considerat ca un număr arbitrar po-zitiv, relativ mare faţă de ceilalţi coeficienţi din model. Rolul acestor coeficienţi de penalizare este acela de a nu lăsa funcţia de scop să-şi atingă valoarea optimă până când nu se anulează toate variabilele artificiale. Observaţie. 1. Dacă prin aplicarea algoritmului s-a ajuns la o soluţie optimă a modelului lărgit, fără ca toate variabilele artificiale să aibă valori nule în această soluţie, atunci modelul iniţial nu admite soluţie optimă.

i i i

i

Fie modelul de optimizare liniară:   f (x) = 5x1 + 5x2 + 4x3 → max    x1 + x2 + x3 ≤ 60  2x1 + x2 + 3x3 ≥ 90   x2 + 2x3 ≥ 40    xj ≥ 0. 6  1 1 1 1 0 0 0  A =  2 1 3 0 −1 0 1 2 0 0 −1   f (x) = −5x1 − 5x2 − 4x3 + M u1 + M u2 → min    x1 + x2 + x3 + x4 = 60  2x1 + x2 + 3x3 − x5 + u1 = 90   x2 + 2x3 − x6 + u2 = 40    xj ≥ 0. j = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 72 — #72 i 72 3. Metoda simplex 2. vom obţine următoarele tabele: i i i i . u2 ) Aplicând algoritmul. Pe parcursul algoritmului simplex îl privim ca pe un număr relativ mare în raport cu celelalte valori numerice din model. Deoarece valorile variabilelor artificiale trebuie să fie nule. u1 . u2 ≥ 0 A1 A2 A3 A4 A5 A6 u1 u2 1 1 1 1 3 2 1 0 0 0 -1 0 0 0 -1 0 1 0 0 0 1  1  2 A= 0   . iar la următoarea iteraţie linia respectivă se va elimina din tabel. 3   f (x) = −5x1 − 5x2 − 4x3 → min    x1 + x2 + x3 + x4 = 60  2x1 + x2 + 3x3 − x5 = 90   x2 + 2x3 − x6 = 40    xj ≥ 0. orice vector artificial ieşit din bază nu va mai fi cercetat pentru o eventuală introducere în bază (deci nu se calculează diferenţa di ). 3. B = (A4 . Problemă rezolvată 1. u1 ≥ 0. j = 1. În calculele manuale nu este necesară particularizarea valorii lui M.

3 3 3 şi fmax = −d0 = Observaţie. 3 Soluţia optimă este: x0 = 70 100 10 . În urma aplicării metodei se poate întâmpla ca: i i i i . . Rezolvarea modelelor care nu admit iniţial soluţii de bază 1 A1 A2 A3 A5 A6 ∗ A4 1 1 1 0 0 60 60 u1 2 1 3 -1 0 90 30 u2 0 1 2 0 -1 40 20 ∗ 5 + 2M 5 + 2M 4 + 5M −M −M 130M ∗ ∗ −2M − 7 −2M − 7 −5M − 9 2+M 2+M −130M − 189 ∗ 73 2 A1 A2 u2 A5 A6 * * A4 1 1/2 -1/2 0 1/2 40 40 u1 2 -1/2 -3/2 -1 3/2 30 15 A3 0 1/2 1/2 0 -1/2 20 - ∗ 5 + 2M 3 − M/2 2 + 5M/2 −M (3M + 4)/2 −80 + 30M ∗ ∗ −2M − 7 M/2 − 5/2 (−5M + 1)/2 M +2 -5/2-3M/2 −30M − 9 ∗ 3 u1 A2 A5 A6 ∗ ∗ A4 -1/2 3/4 1/2 -1/4 25 100/3 A1 1/2 -1/4 -1/2 3/4 15 - A3 0 1/2 0 -1/2 20 40 ∗ (5 + 2M )/2 17/4 5/2 -7/4 -155 ∗ ∗ M + 7/2 -17/4 -3/2 11/4 96 ∗ 4 A4 A5 A6 ∗ ∗ A2 4/3 2/3 1/3 100/3 A1 1/3 -1/3 2/3 70/3 A3 -2/3 -1/3 -1/3 10/3 ∗ -17/3 -1/3 -1/3 -890/3 ∗ ∗ 17/3 4/3 4/3 713/3 ∗ 890 .3.i i i “JATEK” — 2005/3/11 — 10:29 — page 73 — #73 i 3.

ceea ce înseamnă că problema iniţială admite soluţie (nu depinde de variabilele artificiale). u3 ) primal admisibilă. 2. j = 1. Să se rezolve problema:   f (x) = x1 + 2x2 + 2x3 + x4 → min    x1 + 2x2 + 2x3 + x4 = 10  2x1 + x2 + 2x3 + 2x4 = 12   x1 + 2x2 + 2x3 + 2x4 = 16    xj ≥ 0. 2. Efectuând calculele. 3. variabilele artificiale rămân în soluţia finală. caz în care problema iniţială nu admite soluţie (sistemul de restricţii Ax = b poate fi compatibil. deoarece problema considerată nu este în forma standard de lucru:   f (x) = x1 + 2x2 + 2x3 + x4 + M u1 + M u2 + M u3 → min    x1 + 2x2 + 2x3 + x4 + u1 = 10  2x1 + x2 + 2x3 + 2x4 + u2 = 12   x1 + 2x2 + 2x3 + 2x4 + u3 = 16    xj ≥ 0. pornind cu baza B (u1 . dar nu admite soluţie de bază). j = 1. i = 1. variabila artificială să fie eliminată din tabelul simplex. 4. ui ≥ 0. se obţin tabelele: 1 A1 A2 A3 A4 ∗ ∗ u1 1 2 2 1 10 5 u2 2 1 2 2 12 6 u3 1 2 2 2 16 8 ∗ 4M − 1 5M − 2 6M − 2 5M − 1 38M ∗ ∗ −4M − 2 −5M − 2 −6M − 3 −5M − 3 −38M − 37 ∗ = i i i i . dar cu valoarea zero. 4   1 2 2 1 A= 2 1 2 2  1 2 2 2 Introducem variabile artificiale. u2 .i i i “JATEK” — 2005/3/11 — 10:29 — page 74 — #74 i 74 3. obţinând astfel o soluţie de pornire pentru problema iniţială şi se va continua algoritmul simplex primal. şi cel puţin una este nenulă. Metoda simplex 1. 3 Aplicăm metoda coeficienţilor de penalizare. variabilele artificiale rămân în soluţia finală.

i i i i . cum ar fi de exemplu: 1.4 Degenerare şi ciclare în aplicarea algoritmului simplex În urma aplicării algoritmului simplex primal nu întotdeauna obţinem soluţia optimă.4. deoarece în unele cazuri apare fenomenul de ciclare. 2. 3 Deoarece din ultimul tabel simplex primal avem x2 = 3. Degenerare şi ciclare în aplicarea algoritmului simplex 2 A1 A2 u1 A4 ∗ ∗ A3 1/2 1 1/2 1/2 5 10 u2 1 -1 -1 1 2 2 u3 0 0 -1 1 6 6 ∗ M −M −3M + 1 2M 8M + 10 ∗ ∗ −M − 1/2 M +1 3M + 3/2 −2M − 3/2 −8M − 22 ∗ 75 3 A1 A2 u2 ∗ ∗ A3 0 3/2 -1/2 4 8/3 A4 1 -1 1 2 u3 -1 1 -1 4 4 ∗ −M M −2M 4M + 10 ∗ ∗ M +1 −M − 1/2 2M + 3/2 −4M − 19 ∗ 4 A1 A3 ∗ ∗ A2 0 2/3 8/3 A4 1 2/3 14/3 u3 -1 -2/3 4/3 ∗ −M −2M/3 4M/3 + 10 ∗ ∗ M +1 1/3 + 2M/3 −(4M + 53)/3 ∗ u3 = 8 14 x4 = 3 3 4 rezultă că problema considerată nu admite soluţie optimă. dacă soluţia bazică este degenerată.i i i “JATEK” — 2005/3/11 — 10:29 — page 75 — #75 i 3. adică numărul componentelor strict pozitive este mai mic decât dimensiunea bazei (avem α0j = 0 pentru j ∈ B). deşi modelul admite optim finit. dacă în sectorul 10 avem mai multe rapoarte minime egale. Acest fenomen poate să apară din mai multe motive.

j = 1. peste câteva iteraţii. Kotiah şi D. la un moment dat (după un număr de iteraţii). Bland [Blan] formulează un criteriu extrem de simplu pentru înlăturarea acestui fenomen.I. a unei baze. Fenomenul de ciclare apare foarte rar. a unei soluţii corespunzătoare acestei bazei şi unei valori a funcţiei de scop. Construirea unui model practic în care apare fenomenul de ciclare nu este uşor. în urma cărora algoritmul nu se opreşte. fiindcă pot apărea diferite situaţii complicate.C. evident. Prin fenomenul de ciclare se înţelege obţinerea. Criteriul Bland Dacă la criteriul de intrare în bază este ales vectorul al cărui indice are valoarea minimă şi la criteriul de ieşire din bază de asemenea este ales i i i i .T. iar în urma aplicării. Steinberg au semnalat apariţia fenomenului la o problemă practică. a algoritmului simplex. atunci evitarea ciclării presupune. Pentru prima dată în 1978 T. În acest scop au fost date mai multe metode. 7 Rezolvând problema cu algoritmul simplex primal după şase iteraţii. m pentru care bi = 0). Beale [Bea]:   f (x) = − 3 x1 + 150x2 − 1 x3 + 6x4 → min    4 50    1 1   x − 60x − x + 9x + x = 0  2 3 4 5  4 1  25  1 x1 − 90x2 − 1 x3 + 3x4 + x6 = 0   2 50     x +x =1  3  7    xj ≥ 0. tabelul. 2) α0j = 0 (şi vectorul Aj este eliminat din bază) Dacă degenerarea ne conduce la apariţia fenomenului de ciclare.L. va fi identic cu primul tabel simplex. în continuare. Deşi nu este un fenomen des întâlnit.M. la iteraţia a şaptea. Primul exemplu a fost construit în 1955 de către E. evitarea degenerării. m Deoarece numărul soluţiilor bazice este cel mult Cn (m < n) înseamnă că algoritmul simplex ar trebui să se termine într-un număr finit de paşi.i i i “JATEK” — 2005/3/11 — 10:29 — page 76 — #76 i 76 3. se ajunge iarăşi la iteraţia iniţială. dacă pornim algoritmul cu o soluţie bazică degenerată (adică există i = 1. Acest fenomen poate să apară şi în cazul în care avem: 1) di = 0 (ceea ce se întâmplă în cazul optimului multiplu). În 1977 R. Această afirmaţie însă în practică nu are suport. Metoda simplex 3. au fost formulate diferite metode de eliminare.

se va aplica algoritmul simplex primal. Problemă rezolvată Fie modelul:   f (x) = 3 x − 20x + 1 x − 6x → max   4 5 6 7  4 2     1    x1 + x4 − 8x5 − x6 + 9x7 = 0  4             1 1 x2 + x4 − 12x5 − x6 + 3x7 = 0 2 2 x3 + x6 = 1 x≥0 Matricea restricţiilor este:       A1 A2 A3 A4 A5 A6 1 −8 −1 1 0 0 4 1 1 0 1 0 −12 − 2 2 0 0 1 0 0 1 A7  9    3   0 Pornind cu baza primal admisibilă B = (A1 . Teorema 3. iar la sfârşitul algoritmului renunţăm la ε şi citim soluţia optimă a problemei. atunci după un număr finit de iteraţii se va obţine soluţia optimă. se va ajunge înapoi la primul tabel simplex.i i i “JATEK” — 2005/3/11 — 10:29 — page 77 — #77 i 3. adăugând câte un ε la fiecare dintre componentele termenului liber. putem evita fenomenul de ciclare. metode de prevenire a fenomenului de ciclare. Charnes [Chr] demonstrează că. care implică modificarea membrului drept au fost formulate şi demonstrate de Philip Wolfe [Wol]. După 6 iteraţii simplex. A2 . Dantzig [Dan1]. atunci există ε0 > 0 astfel încât soluţia bazică xB (ε) = B −1 b(ε) i i i i .4.4. Degenerare şi ciclare în aplicarea algoritmului simplex 77 vectorul care are cel mai mic index dintre cei posibili. Lucrăm cu termenul liber modificat. Metoda perturbării Proceduri constructive.1. A3 ). Dacă B este o bază primal admisibilă pentru modelul conside-rat.

1. Metoda simplex a problemei obţinute după introducerea lui ε. 0.i i i “JATEK” — 2005/3/11 — 10:29 — page 78 — #78 i 78 3. 0. i i i i . ε. este 6 [Yud]. ε0 ). avem de rezolvat problema:   f (x) = 3 x − 20x + 1 x − 6x → max   4 5 6 7  4 2     1    x1 + x4 − 8x5 − x6 + 9x7 = ε  4             1 1 x2 + x4 − 12x5 − x6 + 3x7 = ε 2 2 x3 + x6 = 1 x≥0 ˜ = (ε. [Gas] Pe baza teoremei. 8) şi valoarea optimă a funcţiei de scop fmax = 20. 12. după 2 iteraţii se va obţine soluţia optimă x0 = (0. Aplicând algoritmul simplex se va obţine soluţia optimă: b x0 = 3 . 0. corespunzător lui B să fie nedegenerat pentru orice ε ∈ (0. 1. prezentăm două exemple construite de Marshall şi Suurballe pentru fenomenul de ciclare. Fie de exemplu următorul model:   f (x) = 2x1 − x2 + x3 + 10x4 − x5 → max    x1 + 2x4 − x5 = 0  x2 + x4 − 2x5 = 0   x3 + x4 + x5 = 12    x≥0 Aplicând algoritmul simplex primal (se poate observa uşor că problema este în forma standard de lucru). 1). Marshall şi Suurballe [Mars] arată că fenomenul de ciclare poate să apară în cazul în care modelul admite cel puţin două restricţii. 0. cel puţin şase variabile şi cel puţin trei variabile nebazice. În continuare. [Chr]. Se poate demonstra că numărul minim de iteraţii. Degenerarea nu cauzează întotdeauna fenomenul de ciclare. Demonstraţie. Observaţie. 0 4 iar valoarea funcţiei de scop va fi fmax = 5/4. 4. în urma căruia apare fenomenul de ciclare.

W. după şase iteraţii. la următorul exemplu dat de H.   f (x) = −2x4 − 3x5 + x6 + 12x7 → min    −2x4 − 9x5 + x6 + 9x7 = 0     1 1 x2 + x4 + x5 − x6 − 2x7 = 0  3 3     x3 + 2x4 + 3x5 − x6 − 12x7 = 2    x≥0 i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 79 — #79 i 3. apare fenomenul de ciclare.Kuhn şi publicat în [Bal].4. Degenerare şi ciclare în aplicarea algoritmului simplex     79 f (x) = 2x2 + 4x4 + 4x6 → min x1 − 3x2 − x3 − x4 − x5 + 6x6 = 0  2x2 + x3 − 3x4 − x5 + 2x6 = 0   x≥0   f (x) = − 2 x − 2 x + 9 x → min  5 6 7   5 5 5     32 24 3   x1 + x5 − x6 + x7 = 0    5 5 5    1 9 3 x2 + x5 − x6 + x7 = 0 5 5 5     2 8 1   x3 + x5 − x6 + x7 = 0   5 5 5      x4 + x6 = 1    x≥0 Să se arate că.

Metoda simplex i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 80 — #80 i 80 3.

atunci rezultă că şi (P) admite soluţie optimă. dacă una din probleme are optim infinit. 5. Teoria dualităţii constă în construirea pentru problema dată: (P ) {f (x) : x ∈ S} → min a unei probleme duale: (D) {f ∗ (y) : y ∈ S ∗ } → max şi în indicarea unor condiţii în care problemele (P) şi (D) au următoarele proprietăţi: 1. atunci rezultă că şi (D) admite soluţie optimă. 3.1 Introducere în dualitate Dualitatea ocupă un loc important în programarea liniară. 2. iar valorile optime sunt egale. 81 i i i i . dacă (P) admite soluţie optimă. atunci f (x0 ) = f ∗ (y 0 ). iar valorile optime sunt egale. cât şi din punct de vedere practic. dacă (D) admite soluţie optimă.i i i “JATEK” — 2005/3/11 — 10:29 — page 81 — #81 i Capitolul 4 Teoria dualităţii 4. pentru fiecare x ∈ S şi fiecare y ∈ S ∗ avem f ∗ (y) ≤ f (x). dacă x0 ∈ S este soluţie optimă a problemei (P) şi y 0 ∈ S ∗ este soluţie optimă pentru problema (D). atunci cealaltă nu admite soluţie posibilă (adică optimă) şi reciproc. 4. atât din punct de vedere teoretic.

2. x2 ≤ 0.2 Formularea problemei duale Fie următoarea problemă de programare liniară în forma generală:            f (x) = c1 x1 + c2 x2 + c3 x3 → min A11 x1 + A12 x2 + A13 x3 ≤ b1 A21 x1 + A22 x2 + A23 x3 = b2 A31 x1 + A32 x2 + A33 x3 ≥ b3 1 ≥ 0.i i i “JATEK” — 2005/3/11 — 10:29 — page 82 — #82 i 82 4. Fiind dată problema (4. se numeşte duală a sa problema:            g(y) = b1 y 1 + b2 y 2 + b3 y 3 → max AT y 1 + AT y 2 + AT y 3 ≤ c1 11 21 31 AT y 1 + AT y 2 + AT y 3 ≥ c2 12 22 32 AT y 1 + AT y 2 + AT y 3 = c3 13 23 33 y 1 ≤ 0. iar modelul (4.1). Deci pentru fiecare caz în parte avem următoarele modele:       (P )      f (x) = c1 x1 + c2 x2 + c3 x3 → max A11 x1 + A12 x2 + A13 x3 ≤ b1 A21 x1 + A22 x2 + A23 x3 = b2 A31 x1 + A32 x2 + A33 x3 ≥ b3 1 ≥ 0. (4. y 2 de semn oarecare    y3 ≤ 0 i i i i . Teoria dualităţii 4. x3 de semn oarecare (4. y 2 de semn oarecare y 3 ≥ 0.1.1) Definiţia 4.1) se numeşte problemă primală şi se va nota cu (P ).2) Modelul (4. x3 de semn oarecare x  1 1 2 2 3 3  g(y) = b y + b y + b y → min   AT y 1 + AT y 2 + AT y 3 ≥ c1   11 21 31   AT y 1 + AT y 2 + AT y 3 ≤ c2 21 22 23 (D)  AT y 1 + AT y 2 + AT y 3 = c3 31 32 33    y ≥ 0. x x2 ≤ 0.2) se numeşte problemă duală şi se va nota cu (D).

(4. x2 ≤ 0.2. atunci AT va fi matricea coeficienţilor problemei. Se observă că duala problemei duale este chiar problema primală.2. atunci în duala (D) se cere minimizare / maximizare. (D) • dacă (P) are restricţii concordante. dacă (P) are restricţii neconcordante inegalităţi. putem formula următoarele legături dintre elementele cuplului: a) forma funcţiei obiectiv din (P) implică forma funcţiei obiectiv din duală (şi reciproc). Din acest motiv vom spune că problemele (4. c) semnele variabilelor problemei primale implică forma restricţiilor problemei duale (şi reciproc). Explicit se pot formula următoarele: • dacă în problema (P) se cere maximizare/ minimizare. • dacă A este matricea coeficienţilor problemei (P).2) (respectiv (P)-(D)) formează un cuplu de probleme duale. atunci (D) are variabile pozitive.i i i “JATEK” — 2005/3/11 — 10:29 — page 83 — #83 i 4.1) .1. y 3 ≥ 0 83 Observaţia 4. y 2 de semn oarecare. x3 de semn oarecare x g(y) = y 1 b1 + y 2 b2 + y 3 b3 → max AT y 1 + AT y 2 + AT y 3 ≤ c1 11 21 31 AT y 1 + AT y 2 + AT y 3 ≥ c2 21 22 23 AT y 1 + AT y 2 + AT y 3 = c3 31 32 33 y 1 ≤ 0. • numărul de restricţii ale primalei dă numărul de variabile ale problemei duale. i i i i . Analizând cuplurile de probleme duale date. Formularea problemei duale       (P )            (D)      f (x) = c1 x1 + c2 x2 + c3 x3 → min A11 x1 + A12 x2 + A13 x3 ≤ b1 A21 x1 + A22 x2 + A23 x3 = b2 A31 x1 + A32 x2 + A33 x3 ≥ b3 1 ≥ 0. • numărul variabilelor problemei primale determină numărul de restricţii ale problemei duale. • coeficienţii funcţiei de scop din (P) devin termenii liberi în (D). • termenii liberi din (P) devin coeficienţii funcţiei de scop în (D). b) forma restricţiilor problemei primale implică semnele variabilelor dualei (şi reciproc). atunci (D) are variabile negative.

y) → max AT y ≥ c (D)  y≥0 atunci: Teorema 4. Teoria dualităţii dacă (P) are restricţii neconcordante egalităţi. atunci (D) are variabile de semn oarecare.2.3. Definiţia 4.i i i “JATEK” — 2005/3/11 — 10:29 — page 84 — #84 i 84 4. atunci (D) va avea restricţii concordante. remarcabil prin simetria sa (ambele probleme sunt în formă canonică).2. atunci (D) va avea restricţii neconcordante egalităţi. x) → max Ax ≤ b (P )  x≥0   g(y) = (b. • dacă (P) are variabile pozitive. respectiv ≥ în cazul unei probleme de maximizare / minimizare se numeşte restricţie concordantă. u ≥ 0} → max i i i i . atunci (D) va avea restricţii neconcordante inegalităţi. x) → min Ax ≤ b (P )  x≥0   g(y) = (b. O restricţie de forma ≥. se numeşte cuplu dual simetric: (P ) (D) {x ∈ Rn | Ax ≥ b. O restricţie de forma ≤.2.2. Dacă:   f (x) = (c. x ≥ 0} → min {u ∈ Rm | AT u ≤ c. Se poate observa că restricţia concordantă este identică cu tipul restricţiilor din forma canonică a problemei primale. y) → min AT y ≥ c (D)  y≥0   f (x) = (c. respectiv ≤ în cazul unei probleme de maximizare / minimizare se numeşte restricţie neconcordantă de tip inegalitate. dacă (P) are variabile de semn oarecare. dacă (P) are variabile negative.2. Dacă: atunci: Cuplul de probleme duale. Se pot demonstra următoarele teoreme: Teorema 4.

7 Folosind algoritmul simplex se obţine soluţia optimă x1 = 4. 4  0. 2x1 + 0. B. El ştie că vânzările lui sunt egale cu cantităţile prescrise pe zi şi pe cap de animal şi doreşte să afle cu ce preţ unitar trebuie să vândă elementele pentru ca beneficiul lui să fie maxim. să studiem problema care se pune unui concurent al vânzătorului nutreţurilor M şi N. x2 ./kg. Nutreţul M costă 10 u. Interpretarea economică a dualităţii 85 Un motiv al definirii problemelor duale este şi acela al posibilităţii de soluţionare mai rapidă a unuia din elementele cuplului primal . iar nutreţul N costă 4 u.3. x2 = 9. Ce cantităţi de nutreţuri M şi N trebuie folosite pe zi şi pe cap de animal pentru a obţine hrana cea mai ieftină? Dacă notăm cantităţile prescrise cu x1 . Un animal trebuie să consume pe zi cel puţin 0. Acest concurent vinde şi elementele A.i i i “JATEK” — 2005/3/11 — 10:29 — page 85 — #85 i 4.7 kg din D. În continuare. Se poate vedea că dualitatea se poate defini în mod echivalent utilizând oricare dintre cuplurile de probleme duale. 1x2 ≥ 1.m.dual. Se urmăreşte stabilirea hranei raţionale pentru animale. A. 1 kg din nutreţul N conţine 100 grame din elementul B. Aceasta înseamnă că putem studia proprietăţile de dualitate pe oricare dintre cuplurile de probleme duale. 2 kg din C şi 1. C. 1x1 + 0. 200 grame din elementul C şi 100 grame din D. 4. 1x2 ≥ 0./kg.6 kg din B. D.3)   0.3 Interpretarea economică a dualităţii În continuare prezentăm o problemă aplicativă. i i i i . B. Interesul se concentrează asupra modului în care găsim soluţia celuilalt element al cuplului. Un kilogram din nutreţul M conţine 100 grame din elementul A. atunci putem formula matematic scopul şi restricţiile problemei propuse spre rezolvare. 1x1 ≥ 0. Se produc două nutreţuri M şi N care conţin aceste elemente. Avem:   f (x) = 10x1 + 4x2 → min    0. Valoarea optimă a funcţiei de scop este fmin = 76 u. 6 (4. C şi D. hrană care să conţină în mod obligatoriu patru elemente nutritive. fără a restrânge prin aceasta generalitatea. 2x2 ≥ 2    0.m. 0.m. 100 grame din C şi 200 grame din D.4 kg din A.

Astfel putem scrie: 0. i = 1. este generală. m    j=1    xj ≥ 0 j = 1.beneficiul poate fi descris matematic cu funcţia: g(y) = 0.3) îi corespunde problema (4. Problemei (4. 1y4 ≤ 4 y1 . ci şi o puternică interdependenţă a soluţiilor acestora. y2 . 1y3 + 0. n  m   g(v) =  bi vi → max     i=1 m (D) (4. De această inversare este legată o proprietate foarte importantă.i i i “JATEK” — 2005/3/11 — 10:29 — page 86 — #86 i 86 4. luăm în considerare faptul că vânzătorul nu vinde cu preţuri mai ridicate decât cele ale concurentului său. nu există doar o legătură formală. 2y4 ≤ 10 0. y4 ≥ 0 (4. 2y3 + 0. şi anume: max g(y) = min f (x) = 76. j = 1.6)  aji vi ≤ cj . între elementele cuplului dual. Fie problema de optimizare liniară cu restricţii şi duala sa:  n   f (x) =  cj xj → min     j=1 n (P ) (4. 7y4 → max .4) Cu metodele prezentate în paragrafele anterioare soluţia problemei este: y1 = 20. y3 . 4y1 + 0. Proprietatea. y2 = 0. n    i=1    vi ≥ 0 i = 1. y3 = 0. y4 = 40 fmax = 76 Observaţie.4) în care datele au fost inversate. 6y2 + 2y3 + 1.5)  aij xj ≥ bi .4 Teoreme de dualitate Teoreme ale dualităţii sunt acelea care arată că. Teoria dualităţii Cu aceste considerente. 4. 1y1 + 0. 1y2 + 0. după cum se va arăta în continuare.pentru formularea restricţiilor. m i i i i . putem formula următoarea problemă de optimizare: .

Dacă x0 ∈ S. Ax) = (AT v. Dualitatea este o noţiune importantă atât din punctul de vedere al conceptelor economice. Demonstraţie. Pentru studiul dualităţii problemelor de optimizare liniară cu restricţii şi formularea teoremelor de dualitate considerăm cuplul de probleme (P) .2.4. (ii) v 0 este soluţie optimă pentru (D). x) = j=1 i=1 bij vi xj ≤ cj xj = (x.1. b) → max AT v ≤ c  v≥0 87 (P ) (D) Vom arăta că problemele sunt legate prin proprietatea max g = min f. Teorema 4.4. v 0 ∈ S ∗ astfel încât (x0 . c) → min Ax ≥ b  x≥0   g(v) = (v. Teoreme de dualitate Scriind matriceal avem:   f (x) = (x. dualul are o semnificaţie economică artificială). x ≥ 0 v ∈ S ∗ ⇒ AT v ≤ c n m (v. x ∈ S ⇒ Ax = b. b) = (v. deoarece xj ≥ 0.(D) de mai sus. b) ≤ (x.i i i “JATEK” — 2005/3/11 — 10:29 — page 87 — #87 i 4. c). Teorema 4.4. Astfel căutarea optimului unei probleme poate fi înlocuită cu căutarea optimului problemei duale. i i i i . Notăm cu: S = {x ∈ Rn : Ax = b. x ≥ 0} mulţimea soluţiilor admisibile problemei (P) şi S ∗ = {v ∈ Rm : AT v ≤ c} mulţimea soluţiilor admisibile problemei (D). c) (adică valoarea funcţiei de scop a dualei nu depăşeşte valoarea funcţiei de scop a primalei). b) atunci sunt adevărate afirmaţiile: (i) x0 este soluţie optimă pentru (P). c) = (v 0 . cât şi din cel al metodelor de calcul (de obicei. j ∈ B. Pentru orice x ∈ S şi orice v ∈ S ∗ are loc: (v.

Kuhn. c) → min  f (v) = (v.3. Tucker (1951) şi este o consecinţă a teoremei fundamentale a inegalităţilor liniare (Farkas). Teorema de dualitate se datorează lui Neumann (1947) şi Gale.4.4. b) Pentru prima dată conceptul de dualitate a problemelor de optimizare cu restricţii a fost pus în evidenţă pentru probleme de optimizare liniară cu res-tricţii. mulţimea S ∗ = ∅.5. (iii) funcţia f ∗ este mărginită superior pe S ∗ . formulează un criteriu pentru ca două soluţii posibile x0 ∈ S şi v 0 ∈ S ∗ să fie soluţii optime ale problemelor duale (P) şi (D).4.4.4. Următoarea teoremă. cunoscută ca teorema ecarturilor complementare. Teorema 4. Dacă S = ∅. (Teorema de dualitate) Dacă una dintre problemele (P) sau (D) are soluţie. Teoria dualităţii Demonstraţie. c) ≥ (v 0 . atunci şi cealaltă are o soluţie şi valorile optime ale funcţiilor de scop sunt egale. b) ≤ (x0 . 2. ip (i) pentru orice x ∈ S din teorema 4. b) = (x0 . 3. Fie cuplul dual:   ∗  f (x) = (x.1 ⇒ (v.1 ⇒ (x. Dacă S ∗ = ∅. iar demonstraţia acestora într-un cadru general poate fi consultată în [Bre]. atunci următoarele afirmaţii sunt echivalente: (i) problema (D) are o soluţie. (ii) pentru orice v ∈ S ∗ din teorema 4. Teorema 4. c). b) → max Ax ≥ b AT v ≤ c (P ) şi (D)   x≥0 v de semn oarecare S şi S ∗ este mulţimea soluţiilor posibile ale modelelor considerate. funcţia f este mărginită inferior pe S. prezentăm particularizarea acestor rezultate pentru modele liniare cu restricţii. Wolfe extinde teoria dualităţii problemelor de optimizare liniară la o clasă mai generală de probleme de optimizare (pentru probleme de optimizare cu restricţii cu funcţii de scop diferenţiabile şi cu restricţii diferenţiabile.) În continuare. (ii) mulţimea S = ∅. P. c) = (v 0 . Teorema 4. problema (P) are o soluţie. atunci următoarele afirmaţii sunt echivalente: 1. În 1961.i i i “JATEK” — 2005/3/11 — 10:29 — page 88 — #88 i 88 4. ip i i i i .4.

x0 ) = (v 0 . b) = (x0 . Fie cuplul dual:   f (x) = (c. x) → min Ax = b (P )  x≥0   g(v) = (b. v 0 este soluţia optimă al problemei (D). "Necesitatea" Presupunem că x0 este soluţia problemei (P)şi v 0 este soluţia problemei (D). Ax0 − b) = 0 şi (c − AT v 0 .6. Astfel am obţinut: (x0 . b) Deci: (c. Ax0 ) = (x0 . Ax0 − b) ≥ 0 (c − AT v 0 . Ax0 − b) deoarece (x0 . c − AT v 0 ) + (v 0 . x0 ) = (v 0 . x0 ) − (AT v 0 .i i i “JATEK” — 2005/3/11 — 10:29 — page 89 — #89 i 4. atunci rezultă că f (x0 ) = f ∗ (v 0 ) ⇔ f (x0 ) − f ∗ (v 0 ) = 0. b) + (v 0 . c) − (AT v 0 . x0 ) = (c. Ax0 ) − −(v 0 . b) dar x0 ∈ S şi v 0 ∈ S ∗ rezultă că x0 este soluţia problemei (P). x0 ) ≥ 0 (4.4. v) → max AT v ≤ c (D)  v de semn oarecare i i i i . b) + (c. Ax0 − b) = 0 "Suficienţa" Presupunem că au loc relaţiile: (v 0 . x0 ). Ax0 ) − −(v 0 .8) rezultă că: (x0 .8) Din relaţiile (4. Ax0 − b) = 0 Dar: x0 ∈ S v0 ∈ S ∗ (v 0 . Ax0 ) − (v 0 . Ax0 − b) + (c − AT v 0 . x0 ) = 0 Putem scrie: 0 = (v 0 . c − AT v 0 ) + (v 0 . Fie x0 ∈ S şi v 0 ∈ S ∗ .4. c) − (v 0 . Avem: 0 = (x0 . Teoreme de dualitate 89 Teorema 4. x0 ) = 0 Demonstraţie.7) ⇒ (4. c − AT v 0 ) = 0 şi (v 0 . Pentru ca x0 să fie o soluţie a problemei (P) şi v 0 a problemei duale (D) este necesar şi suficient ca: (v 0 . c) − (v 0 . x0 ) − (v 0 . x0 ) + (v 0 . AT v 0 ) = (AT v 0 .7) şi (4. b) = = (x0 . Ax0 − b) = 0 şi (c − AT v 0 .

Teorema 4. (b) v B este soluţia optimă a problemei (D).1.4. v) − ci = (4. putem scrie: AT · v = ((A1 .8. j ∈ B este o soluţie posibilă a problemei duale. . Am }). . v)) ≤ c Observaţie. i i i i . dacă di ≤ 0 pentru oricare i ∈ B. (A2 . Teoria dualităţii Definiţia 4.9) = ( j∈B αij A . ¯ Demonstraţie. În general soluţia bazică xB asociată unei baze dual admisibile B a problemei (P) nu este o soluţie posibilă a problemei (P) (deoarece coordonatele pot fi strict negative). O bază B a problemei (P) se numeşte bază dual admis¯ ibilă. b). B este o bază primal admisibilă pentru problema (P) ⇒ xB ∈ S. putem scrie: B este dual admisibilă (B = {A 0 ≥ di = j∈B j∈B αij Aj şi baza αij cj − ci = j∈B j αij (Aj . v). v) − ci = (Ai . Ştiind că pentru orice i ∈ B avem Ai = 1 . Deci o bază dual admisibilă nu este întotdeauna şi o bază primal admisibilă. v). (c) (xB . Fie B o bază a problemei (P) care este primal şi dual admisi-bilă. atunci soluţia v B a sistemului de ecuaţii definit în Rm prin: (Aj .i i i “JATEK” — 2005/3/11 — 10:29 — page 90 — #90 i 90 4.7. Teorema 4. Dacă B este o bază dual admisibilă a problemei (P).4. . A rămas de arătat că: AT · v ≤ c. v) = cj . Demonstraţie. (An . ¯ Deci pentru orice i ∈ B avem (Ai . . c) = d0 = (v B . Denumirea de bază dual admisibilă provine de la proprietatea exprimată prin următoarea teoremă. . v) − ci . Următoarele afirmaţii sunt adevărate: (a) xB este soluţia optimă a problemei (P). Din relaţia obţinută şi folosind proprietatea că v satisface sistemul de ecuaţii. v) − ci ≤ 0. B este o bază dual admisibilă pentru problema (D) ⇒ v B ∈ S ∗ . .4.

5. Algoritmul simplex dual 91 Trebuie demonstrat că (v B . v B ) = cj . Definiţia 4. j ∈ B.2.2 rezultă că xB este soluţie optimă pentru (P). j ∈ B. c) = d0 = (v B . b) = (xB .2 xB va fi soluţie optimă pentru (P).4. f : Rn → R. b ∈ Rm .10). v B soluţie optimă pentru (D). c) şi atunci pe baza teoremei 4. 4.4. În continuare. x) → min Ax = b  x≥0 (4. să se determine o bază B dual admisibilă a problemei (4. c ∈ Rn .3).4) şi (3. să se calculeze numerele α0j şi numerele αij folosind relaţiile (3.2) ¸i ş (3.n (R). prezentăm etapele algoritmului. atunci se numeşte bază optimă. 1.5 Algoritmul simplex dual Fie următorul model de minimizare cu restricţii:   f (x) = (c. b) Pe baza teoremei de dualitate 4.4. numit algoritmul simplex dual. 4. ¯ 3.10) A ∈ Mm. Folosind proprietatea de dualitate. b) = (v B . Dacă B este o bază primal şi dual admisibilă. c) = j∈B α0j cj = d0 not v B ∈ S ∗ rezultă că este soluţia sistemului de ecuaţii (Aj . Avem astfel: (v B .5). se poate formula un algoritm pentru rezolvarea modelelor liniare cu restricţii. Aj ) = j∈B α0j cj = d0 . 2. Se pot ivi două situaţii: i i i i . Deci am obţinut: (xB . să se calculeze numărul d0 şi pentru orice i ∈ B să se determine diferenţele di folosind relaţiile (3. j∈B α0j Aj ) = j∈B α0j (v B .i i i “JATEK” — 2005/3/11 — 10:29 — page 91 — #91 i 4. să se studieze semnul numerelor α0j . iar v B soluţie optimă pentru (D): xB ∈ S ⇒ (xB .

i i i “JATEK” — 2005/3/11 — 10:29 — page 92 — #92 i 92 4. atunci să se specifice că punctul α0j . altfel b) dacă există cel puţin un j ∈ B. α0j < 0. i ∈ B. . α0j ≥ 0. ¯ 5. x0 = n 1 j ¯ este o soluţie 0 . să se înlocuiască vectorul Ak din baza B cu vectorul Ah şi cu baza B astfel obţinută să se revină la pasul 2. atunci să se specifice că problema (4. . atunci să se formeze mulţimea B− = {j ∈ B : α0j < 0}. . deci nici soluţie optimă. pentru orice j ∈ B− să se studieze semnul numerelor αij . să se determine un indice h din B astfel încât αhk < 0 şi dh = min αhk di . j∈B optimă a problemei (4. . d0 este valoarea minimă a funcţiei de scop. 8. Completarea tabelului simplex dual 1 3 2 6 ∗ 7 ∗ 8 ∗ 10 ∗ 4 5 9 ∗ i i i i . Se pot ivi două situaţii: ¯ a) dacă există cel puţin un j ∈ B− astfel încât pentru orice i ∈ B αij ≥ 0. să se determine un indice k din B− (α0k = min{α0j : j ∈ B− }) ¯ 7.10) nu admite soluţii admisibile.10). αik ¯ i = B. αik < 0 . j ∈ B xB = x0 = (x0 . x0 ) ∈ Rn . numite tabele simplex dual. se folosec tabele asemănătoare celor de la algoritmul simplex primal. Teoria dualităţii (a) dacă pentru orice j ∈ B. altfel ¯ b) dacă pentru orice j ∈ B− există cel puţin un indice i ∈ B cu αij < 0 atunci continuă algoritmul: 6. Pentru aplicarea algoritmului.

. αik αhk xB k .... Alegerea lui Ak (k din pasul 6) se efectuează prin alegerea coloanei pivot.. . pi ph p0 ∗ di /αik dh /αhk ∗ Schimbarea bazei se realizează prin schimbarea unui vector din bază.. Ah .. . Algoritmul simplex dual 93 Sectoarele 1 .... Observaţie. ..... αij αhj xB j .. Sectorul 10 este altfel aşezat. La algoritmul simplex primal pornim cu o bază B primal admisi-bilă şi aplicăm algoritmul până când baza devine dual admisibilă (evident în cazul în care problema admite optim finit).. . Valoarea funcţiei de scop creşte la fiecare iteraţie (deşi avem model de minimizare).. .. Ai ... .. .. .... ∗ . di dh d0 ∗ . .......9 au acelaşi rol ca şi în tabelele simplex primal şi se completează în mod analog... ∗ . prima dată este ales vectorul care iese din bază şi după aceea vectorul care intră în locul acestuia în bază.. αhk se numeşte element pivot. . di ¯ În sectorul 10 vor fi scrise câturile αik pentru i ∈ B pentru care αik < 0.. Ak ...... . Folosind aceste rapoarte se va alege indicele h din etapa 7 a algoritmului...i i i “JATEK” — 2005/3/11 — 10:29 — page 93 — #93 i 4. . pornim cu o bază B dual admisibilă şi continuăm algoritmul până când baza devine primal admisibilă... La o iteraţie de ordinul r putem scrie tabelul: r .. Problemă rezolvată Să se rezolve problema următoare cu algoritmul simplex dual: i i i i .. deoarece pe parcurs se lucrează cu soluţii asociate bazei dual admisibile care nu sunt soluţii posibile..5. Aj . . În algoritmul simplex dual. La algoritmul simplex dual.. Valoarea funcţiei de scop descreşte după fiecare iteraţie. Trecerea dintr-un tabel simplex dual în altul se realizează cu regula prezentată la aplicarea algoritmului simplex primal. are o altă semnificaţie. Alegerea vectorului Ah (h din pasul 7) se realizează prin alegerea liniei pivot. .

Teoria dualităţii  7 b =  10  15  Dacă în modelul considerat matricea restricţiilor se include o matrice unitate de ordinul m. dacă există optim finit. iar din primul tabel se deduce dacă este dual admisibilă pentru acest model. Având vectorul c = (1. deoarece nu se încarcă modelul cu variabile artificiale. atunci se va obţine în urma rezolvării unei singure probleme (cu metoda celor două faze. atunci în general baza canonică este bază dual admisibilă.i i i “JATEK” — 2005/3/11 — 10:29 — page 94 — #94 i 94   f (x) = x1 + 2x2 + 3x3 → min    x1 − x2 + x3 = 7  3x1 + x3 − x4 = 10   x1 + 2x3 − x5 = 15    xj ≥ 0. Pe de altă parte. 0. se obţine tabelul: 1 A1 A3 ∗ A2 -1 -1 -7 A4 -3 -1 -10 A5 -1 -2 -15 ∗ -3 -5 -14 ∗ 9 10 47 ∗ 3 5/2 ∗ În sectorul 7 toate diferenţele di . 3} sunt negative. prin urmare baza este dual admisibilă şi se poate aplica algoritmul simplex dual: 2 A1 A5 ∗ 3 A4 A5 ∗ A2 -1/2 -1/2 1/2 A2 -1/5 -2/5 1 A4 -5/2 -1/2 -5/2 A1 -2/5 1/5 1 A3 1/2 -1/2 15/2 A3 1/5 -3/5 7 ∗ -1/2 -5/2 47/2 ∗ -1/5 -12/5 24 ∗ 4 5 -28 ∗ 8/5 21/5 -32 ∗ 1/5 5 ∗ ∗ ∗ i i i i . A5 ) este o bază canonică. j = 1. dar nu toate componentele vectorului b sunt pozitive. În acest caz este mult mai eficient algoritmul simplex dual. 0) . 2. i ∈ {1. se vor rezolva două probleme). A4 . Înmulţind restricţiile cu −1 se observă imediat că sistemul de vectori (A2 . 3. 5 Matricea restricţiilor este: A1 A2 A3 A4 A5  1 −1 1 0 0 0 1 −1 0  A= 3 1 0 2 0 −1  4.

Am }. .6. dacă şi numai dacă în locul său a intrat un vector Ah corespunzător căruia avem: dh = min αhk di . Bazele teoretice ale algoritmului simplex dual Soluţia optimă a problemei este: x0 = (1 1 7 0 0) d0 = 24 = fmin . . αik ¯ i∈B αik < 0. I. (criteriul de intrare în bază) Fie un model de programare liniară şi o bază B căreia îi corespunde o soluţie dual admisibilă xB . În continuare. x) → max Ax = b  x≥0 Fără restrângerea generalităţii. A2 . Considerăm modelul de maximizare:   f (x) = (c. i i i i . 95 4. Se presupune că soluţia obţinută prin schimbarea bazei notată cu xB este o soluţie dual admisibilă adică di ≤ 0 pentru orice i = 1. se vor calcula aceste diferenţe.6.6 Bazele teoretice ale algoritmului simplex dual Teorema 4. . se consideră: B = {A1 . n. Fiind fixat vectorul Ak ce a ieşit din baza B. Prima dată se ia cazul când i = k. Demonstraţie.i i i “JATEK” — 2005/3/11 — 10:29 — page 95 — #95 i 4.1. soluţia xB este dual admisibilă. Fie de asemenea o bază B care diferă de baza B printr-un singur vector şi soluţia corespunzătoare acestei baze este xB . .

cazul i = k şi se calculează diferenţele di .) iar din ipoteză avem dk ≤ 0. în continuare. În demonstraţie s-au folosit formulele de schimbare a variabilelor (vezi algoritmul simplex primal)pe baza cărora avem: αkh = α kj j=h 1 αhk αhj =− αhk II. Observaţie. Teoria dualităţii dk = ck − j=1 j=h αkj cj − αkh ch = m = ck − j=1 j=h(h→k) m αhj j=1 j=h − αhj αhk cj − 1 ch = αhk = ck + αhk  cj − 1 ch = αhk  = ck + 1   αhk  m j=1 j=h m j=1  αhj cj − ch  =   αhj cj − ch − αhk ck  = ck − ck − dh αhk  1  = ck + αhk dh Avem deci: dk = − αhk . Să considerăm.i i i “JATEK” — 2005/3/11 — 10:29 — page 96 — #96 i 96 Putem scrie: m 4. rezultă că trebuie să avem αhk < 0. i i i i . Dar ştiind că dh ≤ 0 (deoarece B este bază dual admisibilă.

Bazele teoretice ale algoritmului simplex dual 97 m di = ci − j=1 j=h αij cj − αih ch = m = ci − j=1 j=k(h→k) m αij − m j=1 j=k αhj αik αhk cj − αik ch = αhk = ci − j=1 j=k m αij · cj + αhj αik αik cj − ch = αhk αhk  αik   αhk  m j=1 j=k   αhj cj − ch  =   = ci − j=1 αij · cj + αik ck +  m j=1 = di + αik ck + αik  αhk αhj cj − ch − αhk ck  = αik = di + αik ck − dh − αik ck αhk Deci avem: di = di − αik di αhk − αik dh dh = αhk αhk di αhk − αik dh ≤0 αhk Pentru ca baza xB să fie dual admisibilă este necesar ca: di = pentru orice i = k. putem scrie: di αhk − αik dh ≥ 0 di αhk ≥ αik dh / : αhk < 0 dh di ≤ αik / : αik < 0 αhk di dh ≥ αik αhk Relaţia obţinută având loc pentru orice i rezultă că: dh = min αhk numit criteriul de intrare în bază. di . αik αik < 0 i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 97 — #97 i 4. folosind faptul că αhk < 0.6. De aici.

Dacă există cel puţin o componentă xB < 0 a acestei soluţii astfel încât j αij ≥ 0 pentru orice j = 1. Pentru a asigura o variaţie cât mai mare valorii funcţiei de eficienţă se recomandă. Astfel condiţia este verificată numai în cazul în care xk < 0 şi astfel teorema este demonstrată. atunci modelul nu are soluţii posibile. (criteriul de ieşire din bază) Fie un model de programare liniară şi două baze B şi B care diferă printr-un singur vector.6. Observaţie.6. Observaţie.3. Se consideră acelaşi model de maximizare.i i i “JATEK” — 2005/3/11 — 10:29 — page 98 — #98 i 98 4. putem scrie: xk f (xB ) − f (xB ) = dh ≤ 0 αhk dh ≤ 0 deoarece B este bază dual admisibilă şi αhk < 0 (vezi demonstraţia teoremei anterioare). respectiv xB soluţiile corespunzătoare acestor baze dual admisibile. Folosind relaţia (8. Cea mai importantă aplicaţie a algoritmului simplex dual este cea legată de rezolvarea modelelor când apar modificări ale datelor de intrare. Demonstraţie. Fie un model de programare liniară şi considerând o soluţie de bază dual admisibilă xB corespunzătoate unei baze B. Fie xB . m m f (x ) = j=1 j=h m B cj yj + ch yh = j=1 j=k cj xj − xk αhj αhk + ch xk = αhk xk = αhk = j=1 m cj xj − xk αhj αhk m − ck xk − xk αhk αhk + ch xk xk = cj xj − αhj cj + ch = αhk αhk j=1 j=1   m xk  xk = f (xB ) + ch − αhj cj  = f (xB ) + dh αhk αhk j=1 (4.2.11) Soluţia dual admisibilă xB este mai bună decât soluţia xB . Teorema 4. i i i i .4). Se calculează valoarea funcţiei de scop pentru soluţia xB . dacă şi numai dacă f (xB ) ≤ f (xB ). alegerea pentru care îi corespunde o componentă xk = α0k negativă cea mai mare în valoare absolută. Teoria dualităţii Teorema 4. n. Soluţia xB este mai bună decât soluţia xB dacă şi numai dacă baza B a fost obţinută din baza B prin înlocuirea unui vector Ak căruia îi corespunde (în soluţia xB ) o componentă α0k strict negativă. pentru eliminarea din bază a vectorului Ak .

. Putem scrie: (xB .   . AT =  . v B )xB = j j∈B (xB Aj . . Dacă B este baza optimă a problemei (P). . m Se presupune că problema primală admite optim finit. a1n a11 . .7 Determinarea soluţiilor problemei duale cu ajutorul ultimului tabel simplex al problemei primale Fie modelul de optimizare liniară în forma standard:   f (x) = (x. am1 .i i i “JATEK” — 2005/3/11 — 10:29 — page 99 — #99 i 4. . rezultă că v B este soluţia optimă a problemei duale.  A= . am1  . Citirea soluţiilor problemei duale 99 4. atunci soluţia v B a sistemului de ecuaţii definit în Rm prin: (Aj . Baza B fiind optimă. v B ) = cj este soluţia optimă a problemei duale. i i i i . c) = j∈B  j∈B (4.12) Scriem matricea restricţiilor. dacă construim sistemul liniar de ecuaţii precizat în teorema de mai sus.   . atunci putem calcula soluţiile problemei duale. Teorema 4. b) → max  m   aji vi ≤ cj j = 1. . (4.1. rezultă că xB este soluţia optimă a problemei primale şi v B ∈ S ∗ (teorema 4. . amn   g(v) = (v.7.7). v B ) j Deoarece optimele funcţiilor de scop sunt egale.4. Deci.7. v B ) = (b. amn a1n . n (D)  i=1    vi de semn oarecare i = 1. transpusa acestei matrici şi formulăm duala pro-blemei considerate:    a11 . c) → min Ax = b (P )  x ≥ 0.13) cj xB = j j∈B (Aj . . . Demonstraţie. după rezolvarea problemei primale.

.. . Ajm } baza optimă obţinută în urma rezolvării problemei primale. în acest caz. B i i i i . . a1jm    . . v B ) = cj .   B B B a1jm v1 + a2jm v2 + · · · + amjm vm = cjm În forma matriceală se poate scrie: B B (v1 . Teoria dualităţii În continuare. ..1 putem scrie: (Aj .. ... v B ) = cjm Scriind explicit produsul scalar euclidean.. Fie Bc = (Ak1 . . . .. . i = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 100 — #100 i 100 4.. j ∈ Bo ⇔   (Aj1 . vom presupune că matricea A conţine o matrice unitate de ordin m şi vom arăta că soluţiile problemei duale.. . . . cjm )A−1 B În continuare. .. . Notăm cu: Aki = ei . amjm Deoarece matricea AB este inversabilă.. vm ) = (cj1 . vm )AB = (cj1 . AB =  ..... ..   (Ajm .. . .7. m (ei ∈ Rm componentele bazei canonice (e1 . . Astfel pe baza teoremei 4. amj1  . . em )) din Rm . . . .. . . Notăm cu Bo = {Aj1 . soluţia problemei duale va fi: B B (v1 . pot fi citite direct din ultimul tabel simplex al problemei primale. cjm ) unde s-a folosit notaţia: a1j1  . Akm ) baza canonică cu care începem aplicarea algoritmului simplex. obţinem următorul sistem liniar de ecuaţii:  B B B  a1j1 v1 + a2j1 v2 + · · · + amj1 vm = cj1   B B B a1j2 v1 + a2j2 v2 + · · · + amj2 vm = cj2  . . . v B ) = cj1   (Aj2 . . . v B ) = cj2  . se determină matricea inversă A−1 .

Citirea soluţiilor problemei duale 101 Ştiind că orice vector (coloană din matricea A) care nu intră în formarea ¯ bazei.i i i “JATEK” — 2005/3/11 — 10:29 — page 101 — #101 i 4. αkm jm Deci soluţiile problemei duale se obţin din relaţia: B vi = j∈B αki j cj .. m (i ∈ B) Dacă vectorul Aki din baza canonică cu care s-a început aplicarea algoritmului simplex nu este în baza optimă... notată cu Ai . . 0 0 . m. αkm j1 . poate fi scris în mod unic ca o combinaţie liniară a bazei B. j1 jm  . în cazul în care acest vector nu este în baza optimă. ...   m e = αkm j1 Aj1 + αkm j2 Aj2 + · · · + αkm jm Ajm Matriceal scriind avem:    1 0 .. . 1 αk1 jm de unde evident: A−1 B αk1 j1  . dacă j = ki αki j = 1. i ∈ B. .  ..    . atunci... . m} avem ki ∈ B. αk1 jm  ... . dacă ki ∈ B.. i i i i .. . = .. . În concluzie: dacă pentru un indice i ∈ {1. A )  . αkm jm . se poate scrie: Ai = j∈B αij Aj . se pot determina coordonatele acestuia în această bază.7. ¯ i = 1. putem scrie: αki j Aj i = 1. . m ⇔ ei = j∈B  1  e = αk1 j1 Aj1 + αk1 j2 Aj2 + · · · + αk1 jm Ajm  2  e = αk2 j1 Aj1 + αk2 j2 Aj2 + · · · + αk2 jm Ajm  .. Deoarece Aki = ei . i = 1.  = (A . αkm j1   .. evident. dacă j = ki altfel B atunci vi = cki . . . ceea ce înseamnă 0.  . 0 αk1 j1  . .

se prezintă un exemplu numeric. A6 ) care este bază primal admisibilă şi se aplică metoda simplex primal: i i i i . v2 . Problemă rezolvată Să se formuleze duala problemei considerate şi să se determine soluţiile pro-blemei duale!   f (x) = x1 − x2 − 3x3 + 5x4 → min    −x1 + x2 + x3 + x4 = 1  x1 − 2x2 + 3x3 + x5 = 2 (P )   x1 − x2 + x6 = 3    xj ≥ 0. În consecinţă. v3 . Teoria dualităţii B atunci vi = cki + dki . v3 de semn oarecare Cum problema primală este în forma standard de lucru. v2 . În continuare.i i i “JATEK” — 2005/3/11 — 10:29 — page 102 — #102 i 102 4. ki ∈ B . j = 1. pe care le vom nota cu v1 . A5 . duala va avea trei variabile. Cu ajutorul matricei AT putem scrie problema duală. coordonatele vectorului v B sunt date cu valorile: B vi = cki cki + dki . 6 Se scrie matricea restricţiilor problemei primale: A1 A2 A3 A4 A5 A6 1 3 0 1 0 0 0 1 0 −1 1  1 −2 A= 1 −1   0 0  1 Deoarece primala are trei restricţii. se alege baza canonică Bc = (A4 .   g(v) = v1 + 2v2 + 3v3 → max   −v + v + v ≤ 1  1 2 3    v − 2v − v ≤ −1   1 2 3   v1 + 3v2 ≤ −3 (D)  v1 ≤ 5    v2 ≤ 0     v ≤0  3   v1 . ki ∈ B care pot fi citite din ultimul tabel simplex.

Citirea soluţiilor problemei duale 1 A1 A2 A3 ∗ ∗ A4 -1 1 1 1 1 A5 1 -2 3 2 2/3 A6 1 -1 0 3 ∗ -6 6 8 5 ∗ ∗ 6 -3 -11 -10 ∗ 103 2 A1 A2 A5 ∗ ∗ A4 -4/3 5/3 -1/3 1/3 1/5 A3 1/3 -2/3 1/3 2/3 - A6 1 -1 0 3 - ∗ -26/3 34/3 -8/3 -1/3 ∗ ∗ 29/3 -31/3 11/3 -8/3 ∗ 3 A1 A4 A5 ∗ ∗ A2 -4/5 3/5 -1/5 1/5 - A3 -1/5 2/5 1/5 4/5 - A6 1/5 3/5 -1/5 16/5 16 ∗ 2/5 -34/5 -2/5 -13/5 ∗ ∗ 7/5 31/5 8/5 -3/5 ∗ 4 A6 A4 A5 ∗ ∗ A2 4 3 -1 13 - A3 1 1 0 4 - A1 5 3 -1 16 - ∗ -2 -8 0 -9 ∗ ∗ -7 2 3 -23 ∗ Soluţia optimă a problemei primale este x0 = (16 13 4 0 0 0) : Bc = (A4 A5 A6 ) B0 = (A2 A3 A1 ) În continuare. folosind relaţia: cki .7.i i i “JATEK” — 2005/3/11 — 10:29 — page 103 — #103 i 4. ki ∈ B i i i i . ki ∈ B 0 vi = cki + dki . se determină soluţiile optime ale problemei duale.

Teoria dualităţii Deci v 0 = (−3 0 − 2) şi gmax = −3 + 2 · 0 + 3 · (−2) = −9 = d0 = fmin . există şi un alt aspect al problemei despre care teorema nu prezintă suficiente informaţii. şi anume: "Cum deducem din informaţiile pe care ni le dă tabelul simplex al dualei că primala. Să se determine soluţiile cuplului dual de mai jos: i i i i . Dacă duala unei probleme de programare liniară are optim finit şi numărul componentelor nule ale soluţiei optime (variabile propriuzise plus variabile auxiliare) este egal cu numărul variabilelor propriu-zise ale dualei. atunci primala are optim unic. Privind citirea soluţiilor problemei duale.i i i “JATEK” — 2005/3/11 — 10:29 — page 104 — #104 i 104 Conform relaţiei date. dacă un element al cuplului dual are optim finit.1.7.3). 4. Dacă duala unei probleme de programare liniară are optim finit şi numărul componentelor nule ale soluţiei optime (variabile propriu-zise plus variabile auxiliare) este mai mare decât numărul variabilelor propriu-zise ale dualei.2. După cum s-a văzut în paragraful anterior 4. admite optim multiplu şi cum le putem determina?" Teorema 4. Teorema 4. atunci şi celălalt model admite soluţie optimă.4. atunci primala are optim multiplu. iar valorile optime ale funcţiilor de scop coincid. Problemă rezolvată: 1.8. putem scrie: 0 v1 → e1 = A4 ∈ Bo 0 v2 → e2 = A5 ∈ Bo 0 v3 → e3 = A6 ∈ Bo 0 v1 = c4 + d4 = 5 − 8 = −3 0 v2 = c5 + d5 = 0 + 0 = 0 0 v3 = c6 + d6 = 0 − 2 = −2 4. respectiv duala.8 Legătura dintre soluţiile unui cuplu dual Conform teoremei fundamentale a dualităţii (Teorema 4. soluţiile problemei duale pot fi citite din ultimul tabel de iteraţie al problemei primale.8.

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 105 — #105

i

4.8. Legătura dintre soluţiile unui cuplu dual

105

  f (x) = 3x1 + 2x2 → min    3x1 + 2x2 ≥ 6    −x1 − x2 ≥ −5 (P ) x1 − x2 ≥ −4      −x1 + x2 ≥ −3   x1 ≥ 0, x2 ≥ 0

  g(v) = 6v1 − 5v2 − 4v3 − 3v4 → max   3v1 − v2 + v3 − v4 ≤ 3 (D) 2v1 − v2 − v3 + v4 ≤ 2    v1 ≥ 0, v2 ≥ 0, v3 ≥ 0, v4 ≥ 0

Se rezolvă problema (D). Introducând variabile auxiliare, problema fiind în forma standard de lucru, se va aplica metoda simplex primal. Matricea restricţiilor este: v1 v2 v3 v4 y1 y2 3 −1 1 −1 1 0 2 −1 −1 1 0 1 B = (y 1 , y 2 )

Se notează variabilele auxiliare cu y1 , y2 pentru a le deosebi de variabilele propriu-zise: 1 v1 v2 v3 v4 ∗ ∗ y1 3 -1 1 -1 3 1 y2 2 -1 -1 1 2 1 y2 -2/3 -1/3 -5/3 5/3 0 ∗ 6 -5 -4 -3 0 ∗ ∗ -10 8 5 4 -4 ∗

2 y1 v2 v3 v4 ∗ ∗

v1 1/3 -1/3 1/3 -1/3 1

∗ -2 -3 -6 -1 -6 ∗

∗ 10/3 14/3 25/3 2/3 6 ∗

Soluţia optimă este v 0 = (1 0 0 0 0 0). În soluţia optimă obţinută există cinci valori nule, dar în problema (D) sunt patru variabile propriu-zise, rezultă că problema (P ) are optim multiplu. Cum determinăm mulţimea soluţiilor optime ale problemei (P )? Putem scrie:

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 106 — #106

i

106

4. Teoria dualităţii

  f (x) = 3x1 + 2x2 → min    3x1 + 2x2 ≥ 6    −x1 − x2 ≥ −5 (P )  x1 − x2 ≥ −4    −x1 + x2 ≥ −3    x1 ≥ 0, x2 ≥ 0

  g(v) = 6v1 − 5v2 − 4v3 − 3v4 → max   3v1 − v2 + v3 − v4 ≤ 3 (D)  2v1 − v2 − v3 + v4 ≤ 2   vj ≥ 0, j = 1, 4

Cu substituţia t1 = −x1 şi t2 = −x2 se obţine (P ) din modelul (P )!   f (t) = 3t1 + 2t2 → max   3t + 2t ≤ −6  1  2   −t1 − t2 ≤ 5 (P )   t1 − t2 ≤ 4   −t1 + t2 ≤ 3    t1 ≤ 0, t2 ≤ 0

  g (z) = −6z1 + 5z2 + 4z3 + 3z4 → min   3z1 − z2 + z3 − z4 ≤ 3 (D ) 2z1 − z2 − z3 + z4 ≤ 2    zj ≥ 0, j = 1, 4

Dacă se studiază cu atenţie aceste cupluri de probleme, se observă imediat că problema (D) s-a rezolvat mai sus. Din ultimul tabel al problemei rezolvate obţinem o soluţie optimă a problemei (P ) . Folosind metoda de citire a soluţiilor dualei din ultimul tabel simplex al problemei rezolvate, putem scrie: t0 → e1 = Ak1 = y 1 ∈ Bo ⇒ t0 = dk1 + ck1 = −2 1 1 t0 → e2 = Ak2 = y 2 ∈ Bo ⇒ t0 = 0 2 2 Deci soluţia optimă a problemei (P ) este t01 = (−2, 0), iar soluţia problemei (P ) va fi x01 = (2, 0). Acum se revine în primul tabel simplex unde, în sectorul 10, sunt două rapoarte minime egale. Dacă se va rezolva problema (D) astfel încât vectorul y 2 este ales ca vector care iese din bază, atunci se va obţine: 2’ y2 v2 v3 v4 ∗ ∗ y1 -3/2 1/2 5/2 -5/2 0 v1 1/2 -1/2 -1/2 1/2 1 ∗ -3 -2 -1 -6 -6 ∗ ∗ 5 3 0 9 6 ∗

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 107 — #107

i

4.8. Legătura dintre soluţiile unui cuplu dual

107

Din acest tabel, se obţine o altă soluţie optimă pentru problema (P ) : t0 → e1 = Ak1 = y 1 ∈ Bo ⇒ t0 = 0 1 1 t0 → e2 = Ak2 = y 2 ∈ Bo ⇒ t0 = ck2 + dk2 = −3 2 2 Deci soluţia optimă a problemei (P ) în acest caz este t02 = (0, −3). Astfel soluţia problemei (P ) va fi x02 = (0, 3). Acum se poate scrie mulţimea soluţiilor optime ale problemei (P ). Deoarece am obţinut două soluţii optime, rezultă că problema (P ) admite o infinitate de soluţii optime. Mulţimea soluţiilor optime este combinaţia convexă a soluţiilor obţinute, adică: x0 = λx01 + (1 − λ)x02 , λ ∈ [0, 1] x0 = λ(2 0) + (1 − λ)(0 3) = (2λ 3(1 − λ)), λ ∈ [0, 1].

2. Fie următorul cuplu dual:   f (x) = 12x1 + 8x2 → min    2x1 + x2 ≥ 1    x1 + 2x2 ≥ 2 (P ) 3x1 + 2x2 ≥ 4      x1 + x2 ≥ 3   x1 , x2 ≥ 0

  g(y) = y1 + 2y2 + 4y3 + 3y4 → max   2y1 + y2 + 3y3 + y4 ≤ 12 (D) y1 + 2y2 + 2y3 + y4 ≤ 8    yj ≥ 0, j = 1, 4

Rezolvând problema (D), se poate observa că numărul componentelor nule ale dualei coincide cu numărul variabilelor din problema duală, adică este 4. De aici rezultă că (P) va avea optim unic. 3. Putem avea cupluri de probleme duale pentru care: 1. un element al cuplului admite optim multiplu, iar celălalt are optim unic; 2. ambele modele admit optim multiplu. De exemplu, modelele:   f (x) = 2x1 + 2x2 → min   x1 + x2 ≥ 2 x1 − x2 ≤ 2    x 1 , x2 ≥ 0   g(y) = 2y1 − 2y2 → max   y1 − y2 ≤ 2 y1 + y2 ≤ 2    y1 , y 2 ≥ 0

admit optim multiplu. Practic, ne interesează dacă primala are optim finit, unic sau multiplu.

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 108 — #108

i

108

4. Teoria dualităţii

Observaţie. Cu aplicarea algoritmului simplex dual, dacă este posibil, obţinem în mai puţine iteraţii soluţia optimă. Dacă considerăm modelul:   x1 + 2x2 + 3x3 + x4 − 3x5 + x6 + 2x7 → min    x1 − x4 + x5 − 2x6 − x7 = −6  x2 − 2x4 − 2x5 + 2x6 + x7 = 8   x3 + x4 − x5 − x6 − 2x7 = −2    xj ≥ 0, j = 1, 7 atunci se poate verifica prin calcul direct că, după o iteraţie cu algoritmul simplex dual, se obţine soluţia optimă a problemei, iar cu algoritmul simplex primal sunt necesare 3 iteraţii.

i i i

i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 109 — #109

i

Capitolul 5

Reoptimizare
Practica pune în faţa matematicii situaţia instabilităţii variantei optime obţinute pentru un anumit model liniar la un moment dat ca urmare a unui întreg ansamblu de factori economici, politici, sociali etc., care pot influenţa elementele modelului, conducând în speţă la modificări ale acestora şi implicit la modificarea modelului. Aceste influenţe se pot materializa prin: - modificări ale termenului liber; - modificări ale coeficientului funcţiei obiectiv; - modificări ale coloanelor matricei coeficienţilor; - modificări ale liniilor matricei coeficienţilor; - modificări ale numărului de restriţii ale problemei; - modificări ale numărului de variabile ale problemei. Aceste modificări atrag după sine, în mod evident, rezolvarea unei probleme noi de programare liniară. Se pune întrebarea: Nu se poate rezolva problema modificată prin folosirea rezultatelor obţinute în urma rezolvării problemei iniţiale? Răspunsul este afirmativ şi, pentru fiecare caz în parte, au fost formulate diferite metode de rezolvare.

109
i i i i

i i

i

“JATEK” — 2005/3/11 — 10:29 — page 110 — #110

i

110

5. Reoptimizare

5.1

Reoptimizarea în urma modificării termenului liber

Considerăm următoarele modele liniare:  f (x) = (c, x) → min / max  Ax = b   x≥0 şi:  f (x) = (c, x) → min / max  Ax = b   x≥0

(5.1)

(5.2)

unde f : Rn → R, A ∈ Mm,n (R), b ∈ Rm , c ∈ Rn astfel încât: b = b + ∆b, adică modelul (5.2) se obţine din modelul (5.1) în urma modificării vectorului b. Se presupune, în continuare, că modelul (5.1) admite soluţie optimă şi se determină soluţia optimă a problemei (5.2) pornind de la ultimul tabel simplex al problemei rezolvate (5.1). În urma rezolvării problemei (5.1) cu una din metodele numerice cunoscute, ultimul tabel simplex va fi: ult. Ai ∗ ∗ Aj1 αij1 α0j1 ... ... ... Ajm αijm α0jm ∗ d0 di ∗ p0 pi ∗

unde sistemul de vectori din sectorul 2, B0 = (Aj1 . . . Ajm ) este baza optimă. Teorema 5.1.1. Sistemul de vectori B = (Aj1 . . . Ajm ) este bază dual admisibilă pentru problema (5.2). Demonstraţie. B este bază, deoarece este chiar B0 şi evident avem B ≡ B0 , respectiv B ≡ B0 . Primul tabel simplex al problemei va arăta astfel: 1. Ai ∗ Aj1 αij1 α0j1 ... ... ... Ajm αijm α0jm ∗ di d0 ∗ pi p0 ∗ ∗

i i i

i

se determină coordonatele vectorului b în baza B. AB =  . . notate în tabel cu (α0j1 . . . m} pentru care α0jk < 0. . bm ) · A−1 . . . .  . pentru orice k = 1. . ceea ce înseamnă că sistemul de vectori B este bază dual admisibilă.2). α0jm ) · AB (α0j1 . . (b) Dacă există cel puţin un k ∈ {1. .1. amjm . . Reoptimizarea în urma modificării termenului liber 111 Deoarece orice vector poate fi scris în mod unic ca o combinaţie liniară a bazei.2). (b1 . amj1 De unde obţinem: (b1 . .. bm ) = α0j1 Aj1 + · · · + α0jm Ajm Cu notaţia: a1j1  . . avem: αij = αij pentru orice i ∈ B şi j ∈ B. . ⇔ . α0jm ) = (b1 ..  . bm ) = (α0j1 .2). ..1) este optimă şi pentru pro-blema (5. i i i i . pot apărea următoarele situaţii: (a) baza B dual admisibilă este şi primal admisibilă pentru problema (5. m. . α0jm )  . atunci aplicăm simplex dual pentru problema (5. deci avem α0jk ≥ 0. soluţia optimă a problemei (5. În urma reoptimizării. . . . bm ) = (α0j1 . . amjm . În continuare.  a1jm . . . . În acest caz. pi = pi pentru orice i ∈ B. amj1 putem scrie:   Aj1  a1jm . Ajm a1j1  .. B Matricea A−1 este în sectorul 6 al ultimului tabel simplex al problemei reB zolvate. . . . . . α0jm ). . .i i i “JATEK” — 2005/3/11 — 10:29 — page 111 — #111 i 5. Folosind relaţia cunoscută: b= j∈B α0j Aj putem scrie: b = m α0jk Ajk ⇔ k=1 (b1 . . De asemenea di = di ≤ 0.  .

ne interesează soluţia optimă (evident dacă există) a problemei:  f (x) = x1 + x2 → min    −6x − x + x = 2 1 2 3 2x1 − 7x2 + x4 = 1    x ∈ R4 + şi valoarea optimă a funcţiei de scop. Problema se rezolvă cu algoritmul simplex dual. 2 Scriind matricea restricţiilor: A1 A= A2 A3 A4 1 0 0 1 −6 −1 2 −7 i i i i . Forma standard a problemei considerate este:  f (x) = x1 + x2 → min    −6x − x + x = −1 1 2 3 (5.4) în urma modificării termenului liber: b = 2 1 b = b + ∆b.i i i “JATEK” — 2005/3/11 — 10:29 — page 112 — #112 i 112 Problemă rezolvată Fie problema de optimizare liniară:  f (x) = x1 + x2 → min    6x + x ≥ 1 1 2 2x1 − 7x2 ≤ −1    x ∈ R2 + 5.4) 2x1 − 7x2 + x4 = −1    x ∈ R4 + Ultimul tabel simplex dual va fi: 3. În continuare. Acest model se obţine din (5. Reoptimizare (5. A3 A4 ∗ A1 -7/44 1/44 6/44 A2 -2/44 -6/44 8/44 ∗ -9/44 -5/44 14/44 ∗ 62/44 54/44 16/44 ∗ ∗ x0 = (6/44 8/44) şi fmin = 14/44. 8/44). ∆b = 3 .3) a cărei soluţie optimă este x0 = (6/44. iar valoarea optimă a funcţiei de scop este fmin = 14/44.

Dacă problema (5. este în forma standard de lucru.1. Observaţie. iar fmin = 0 este valoarea optimă a funcţiei de scop.1. în urma modificării termenului liber. Putem scrie: 1 A3 A4 ∗ A1 -7/44 1/44 α01 A2 -2/44 -6/44 α02 −7/44 1/44 ∗ -9/44 -5/44 d0 −2/44 −6/44 −7/44 1/44 −2/44 −6/44 ∗ ∗ ∗ A−1 = B (α01 (α01 α02 ) = (2 1) α02 ) = −13/44 −10/44 d0 = −23/44. se va rezolva cu algoritmul simplex primal. Problema (5. i i i i . Vom obţine pe rând următoarele tabele simplex dual: 1 A3 A4 ∗ A1 -7/44 1/44 -13/44 2 A3 A2 ∗ A1 -1/6 1/6 -2/6 3 A1 A2 ∗ A3 -6 -1 2 A2 -2/44 -6/44 -10/44 A4 1/3 -44/6 10/6 A4 2 -7 1 ∗ -9/44 -5/44 -23/44 ∗ -1/6 -5/6 -2/6 ∗ -1 -1 0 ∗ 6 10 -2 ∗ 62/44 54/44 90/44 ∗ 1 54/6 0 ∗ ∗ 1 ∗ ∗ 9/2 5/6 ∗ ∗ Soluţia optimă este x0 = (0 0 2 1). fără aplicarea reoptimizării.1 se poate afirma că B = (A1 A2 ) este bază dual admisibilă. chiar ultimul tabel obţinut în urma reoptimizării. atunci vom avea ca primul tabel simplex primal.2). Reoptimizarea în urma modificării termenului liber 113 pe baza teoremei 5.i i i “JATEK” — 2005/3/11 — 10:29 — page 113 — #113 i 5.2). Adică baza (A3 A4 ) primal admisi-bilă este şi dual admisibilă şi se obţine soluţia optimă.

5) admite soluţie optimă şi se determină soluţia optimă a problemei (5. notat cu B0 = (Aj1 . Reoptimizarea soluţiilor unei probleme de programare liniară 5. . Ajm ) este bază primal admisibilă pentru problema (5. respectiv nebazici este aceeaşi în ultimul tabel al problemei (5.5) este: Aj1 Ai ∗ ∗ αij1 α0j1 . Demonstraţie. prin urmare este un sistem de vectori liniar independenţi.2 Reoptimizarea în urma cienţilor funcţiei de scop modificării coefi- În continuare.n (R).5) şi în primul tabel al problemei (5.6).. Sistemul de vectori B = (Aj1 . Primul tabel simplex primal al problemei (5.5) (5.5). . adică mulţimea indicilor bazici. atunci se poate demonstra următorul rezultat.6) va fi: i i i i . . .2. A ∈ Mm. Deci vectorul c este o modificare discretă a vectorului c din problema (5. Dacă ultimul tabel simplex (primal sau dual) al problemei (5. x) → min / max  Ax = b   x≥0 şi:  f (x) = (c .i i i “JATEK” — 2005/3/11 — 10:29 — page 114 — #114 i 114 5. .6) folosind ultimul tabel simplex al problemei (5..6).1..6) unde f : Rn → R.. Evident B ≡ B0 şi B ≡ B0 . Se presupune că modelul (5. Sistemul de vectori B este bază optimă şi pentru problema (5. x) → min / max  Ax = b   x≥0 (5.5).5).. . b ∈ Rm . Ajm αijm α0jm ∗ di d0 ∗ pi p0 ∗ unde sistemul de vectori din sectorul 2.. se consideră modelele liniare:  f (x) = (c. Ajm ) este bază optimă. c ∈ Rn astfel încât c = c + ∆c ∈ Rn . Teorema 5.

Soluţia optimă a problemei (5. adică (D2 .6). adică baza este şi dual admisibilă. Diferenţele din sectoarele 7 şi 8 ale tabelului se calculează cu: di = j∈B αij cj − ci α0j cj j∈B pentru ∀i∈B d0 = (vezi(3. .i i i “JATEK” — 2005/3/11 — 10:29 — page 115 — #115 i 5. adică optimă. b) → max / min  AT y ≤ c   y de semn oarecare (D1 ) (D2 ) unde vectorul c = c + ∆c. Observaţie. b) → max / min  AT y ≤ c   y de semn oarecare  g(y) = (y. (3.2...5) este optimă şi pentru modelul (5.6). Astfel se poate aplica în scopul determinării soluţiei optime problemei (D2 ) reoptimizarea în urma modificării termenilor liberi prezentată în paragraful anterior. Astfel. în urma aplicării algoritmului simplex primal. putem scrie:  g(y) = (v. (b) Dacă există cel puţin un i ∈ B pentru care di > 0.. j = 1. pot apărea următoarele situaţii: (a) Pentru orice i ∈ B avem di ≤ 0. . atunci cu algoritmul simplex primal se va determina soluţia optimă al problemei (5. i i i i .) se obţine din (D1 ) în urma modificării termenilor liberi.. n ceea ce înseamnă că di = di ..5)) Deoarece c = c + ∆c în general vom avea cj = cj . Ajm αijm α0jm ∗ di d0 ∗ ∗ pi p0 ∗ 115 unde αijk = αijk şi α0jk = α0jk pentru k = 1. i ∈ B şi d0 = d0 . Formulând duala problemelor considerate.4).. m. Reoptimizarea în urma modificării funcţiei de scop 1 Ai ∗ ∗ Aj1 αij1 α0j1 .

A4 A3 ∗ ∗ A3 1 2 8 4 A2 1/2 1/2 4 8 A2 -1 /4 3/4 3 A4 3 2 12 6 A4 2 -1 4 2 A1 1/2 -1/2 2 ∗ 2 3 0 ∗ ∗ 1/2 -3/2 -12 ∗ ∗ -1/4 -5/4 -13 ∗ ∗ -5 -6 -19 ∗ ∗ -2 3 5 ∗ ∗ 1 2 9 ∗ i i i i . A1 A2 ∗ ∗ 2. Reoptimizarea soluţiilor unei probleme de programare liniară Problemă rezolvată Fie următorul model de programare liniară:  f (x) = 2x1 + 3x2 → max    x + 2x ≤ 8 1 2 3x1 + 2x2 ≤ 12    x ∈ R2 + Forma standard a problemei este:  −f (x) = −2x1 − 3x2 → min    x + 2x + x = 8 1 2 3 3x1 + 2x2 + x4 = 12     x ∈ R4 + de unde scriem matricea restricţiilor: A1 A2 A3 A4 A= 1 3 2 2 1 0 0 1 . obţinând pe rând următoarele tabele simplex: 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 116 — #116 i 116 5. Problema se rezolvă cu algoritmul simplex primal. A1 A3 ∗ ∗ 3.

2.i i i “JATEK” — 2005/3/11 — 10:29 — page 117 — #117 i 5. fmax = 12. Forma standard a problemei considerate este:  −f (x) = −3x1 − x2 → min    x + 2x + x = 8 1 2 3  3x1 + 2x2 + x4 = 12   x ∈ R4 + Pe baza teoremei 5.1. formulat astfel:  f (x) = 3x1 + x2 → max    x + 2x ≤ 8 1 2 3x1 + 2x2 ≤ 12    x ∈ R2 + Avem: c = (2 3) ∈ R2 . Variabilele ecart sunt: x3 = x4 = 0. iar variabilele auxiliare sunt x3 = 4. În continuare. Putem scrie: 1 A4 A3 ∗ ∗ A2 -1/4 3/4 3 4 A1 1/2 -1/2 2 ∗ -5/4 3/4 -9 ∗ ∗ 2 0 5 ∗ Baza nu este dual admisibilă. x4 = 0. care este bază primal admisibilă pentru acest model. c = (3 1) ∈ R2 . se consideră un model liniar obţinut din modelul rezolvat prin modificarea discretă a vectorului c. Valoarea optimă a funcţiei de scop este fmax = −(−13) = 13. i i i i . putem considera sistemul de vectori B = (A2 A1 ).2. Reoptimizarea în urma modificării funcţiei de scop 117 x0 = (2 3) este soluţia optimă a problemei. deci continuăm algoritmul: 2 A4 A2 ∗ ∗ A3 -1/3 4/3 4 A1 1/3 2/3 4 ∗ -1 -1 -12 ∗ ∗ 2 0 5 ∗ Soluţia optimă a problemei este x0 = (4 0).

. am1 . A1 . a1n 0    . An ∈ Rm . . . . .. m j=1 (2) xj ≥ 0. . . j = 1. Problema (2)se obţine din problema (1) prin adăugarea unei restricţii şi a unei variabile. ... . . n unde cj . m  j=1  n     am+1j xj + xn+1 = bm+1    j=1    xj ≥ 0. ne vom opri asupra cazului în care modificarea se produce în urma adăugării unei restricţii la sistemul de restricţii al problemei iniţial rezolvate şi al unei variabile. j = 1. . . An+1 ∈ Rm+1 . .  . . Acest tip de reoptimizare este utilizat la rezolvarea modelelor discrete.. a1n  . . n + 1    f (x) =      (1) n n xj cj → min j=1        aij xj = bi . aij . 1 1 i i i i . Rezolvarea unei probleme de optimizare liniară cu restricţii sub forma standard obţinută prin adăugarea unei restricţii şi a unei variabile pozitive Fie modelele liniare:  n   f (x) = xj cj → min     j=1   n     aij xj = bi i = 1. Reoptimizarea soluţiilor unei probleme de programare liniară 5. precum şi la rezolvarea unor modele neliniare. i = 1. . . . An+1 vectorii coloană ale matricilor A 1 1 şi A1 iar A1 . . . .1 An+1 1  . Matricile restricţiilor sunt: A1 . A1 . .i i i “JATEK” — 2005/3/11 — 10:29 — page 118 — #118 i 118 5. An a11 .3 Reoptimizarea în urma modificării matricei restricţiilor Privind acest tip de reoptimizare. am1 am+1. am+1. bi ∈ R. . amn 0  .n 1 An 1 unde s-a notat cu A1 . . . amn      A1 =   A1 1 a11 .  A =  . An . . Astfel avem o problemă de programare liniară în Rn (problema (1)) şi o problemă de programare liniară în Rn+1 (problema (2)).

1. .. În acest sens trebuie demonstrat că determinantul format din componentele vectorilor este diferit de zero (adică formează un sistem liniar independent de vectori).. Determinantul de ordinul m astfel obţinut: a1j1 . An+1 ) este o bază 1 1 1 dual admisibilă pentru problema (2). notată în continuare cu x0 ∈ Rn . . 1 Presupunem că problema (1) admite soluţie optimă. . n}. amj1 am+1. amj1 . vom lucra în ipoteza că sistemul de vecori B1 este bază dual admisibilă. . . Demonstraţie. a1jm .. .. . În ultimul tabel simplex. dacă vom nota cu {j1 .. în care doar ultimul element este diferit de zero.j ) ∈ Rm × R 1 pentru orice j = 1. . . . n şi An+1 = (θm . .i i i “JATEK” — 2005/3/11 — 10:29 — page 119 — #119 i 5. ceea ce înseamnă că sistemul de vectori formează o bază. Ajm ) va reprezenta baza optimă a problemei (1). . . i i i i . Ajm 1 a1jm . vom reveni după stabilirea modului de completare a tabelului simplex dual în vederea rezolvării problemei (2). 2. Se demonstrează prima dată că acest sistem de vectori este bază pentru problema (2). La demonstraţie. . . . . .. . 1) ∈ Rm × R. .jm după ultima coloană. . Ultimul tabel al problemei rezolvate (1) arată astfel. An+1 1 0 0 1 . am+1. . . Ajm . amjm . prin urmare acest determinant va fi diferit de zero. . . .. . . .3.j1 . jm } o submulţime a mulţimii {1. atunci (Aj1 . Teorema 5. În continuare. amjm D = este format din componentele vectorilor care formează baza optimă. am+1. Reoptimizarea în urma modificării matricei restricţiilor 119 Din analiza matricilor se observă uşor că între vectorii coloană are loc relaţia: Aj = (Aj . Dezvoltăm determinantul: Aj1 1 D = a1j1 . .. Sistemul de vectori B1 = (Aj1 .3. . . .

jm )+αi.n+1 An+1 i ∈ B1 1 1 1 1 Putem scrie această relaţie folosind legătura dintre coloanele matricilor A şi A1 astfel: ¯ (Ai . care sunt corespunzătoare exact indicilor i. 1) i ∈ B1 Această egalitate din Rm+1 este echivalentă cu sistemul: ¯ Ai = αij1 Aj1 + · · · + αijm Ajm i ∈ B am+1. . ....n+1 α0.jm + αi. Ajm ) este baza optimă. m sunt scrise în sectorul 6 în tabel. Vectorii care nu au intrat în formarea bazei sunt: Ai = (αij1 .i i i “JATEK” — 2005/3/11 — 10:29 — page 120 — #120 i 120 5. Reoptimizarea soluţiilor unei probleme de programare liniară ult..n+1 ⇒ αij1 = αij1 . B0 = (Aj1 .. i ∈ B. am+1.. . .. αijm ) 1 unde coordonatele αijk .n+1 ∗ di d0 ∗ pi p0 ∗ ∗ Vectorii care nu au intrat în bază se scriu ca o combinaţie liniară a bazei i i i i .j1 )+· · ·+αijm (Ajm . k = 1. Dacă analizăm acest ultim tabel şi sistemul de vectori B1 .. . ¯ Ai = αij1 · Aj1 + · · · + αijm Ajm + αi. . Primul tabel simplex al problemei (2) este: 1.i = αij1 · am+1.j1 + · · · + αijm am+1. . am+1..n+1 (θm .. .. am+1. . .. se observă că acele coloane din matricea A1 . . Aj1 1 αij1 α0j1 . Ai 1 ∗ B1 .i ) = αij1 (Aj1 . Ajm αijm α0jm ∗ d0 di ∗ p0 pi ∗ unde sistemul de vectori din sectorul 2. αijm = αijm deoarece scrierea unui vector într-o bază se poate realiza în mod unic. vor reprezenta vectorii care nu intră în formarea bazei B1 . Ajm 1 αijm α0jm An+1 1 αi. . . Ai ∗ ∗ Aj1 αij1 α0j1 . .

3.i i i “JATEK” — 2005/3/11 — 10:29 — page 121 — #121 i 5.jk Numerele de control pot fi obţinute din: pi = pi − αin+1 .n+1 = x0 n+1 = bm+1 − k=1 α0jk am+1. Tabelele simplex primal sunt: i i i i . i ∈ B. . di = di ∀ i ∈ B. p0 = p0 − α0n+1 . Problemă rezolvată Se consideră următoarele probleme:   f (x) = x1 − x2 + 2x3 + x4 → min   x1 + x2 + x3 = 3 2x1 + x2 + x4 = 4    x1 ≥ 0. .i − k=1 αijk am+1. . Astfel teorema este complet demonstrată. deoarece variabila xn+1 are coeficientul zero în funcţia de scop. ceea ce arată că baza B1 este bază dual admisibilă. Diferenţele di şi d0 sunt egale cu cele din ultimul tabel al problemei rezolvate. x4 ≥ 0 Matricile restricţiilor sunt: A1 A2 A3 A4 A= 1 2 1 1 1 0 0 1  A1 A2 A3 A4 A5 1 1 1 1 1 1 1 -2 1 0 0 0 1 6 0 0 1     f (x) = x1 − x2 + 2x3 + x4 → min    x1 + x2 + x3 = 3  2x1 + x2 + x4 = 4   3x1 − 2x2 + 6x4 + x5 = −1    x1 . Reoptimizarea în urma modificării matricei restricţiilor Astfel obţinem din a doua egalitate: m 121 αi. . . . .n+1 = am+1. α0jm = α0jm m iar α0. putem deduce: α0j1 = α0j1 . . Astfel au loc relaţiile: ¯ d0 = d0 .jk În mod analog. x5 ≥ 0 1 A1 =  2 3 Prima problemă este în forma standard de lucru.

Reoptimizarea soluţiilor unei probleme de programare liniară 1 A1 A2 ∗ ∗ A3 1 1 3 3 A4 2 1 4 4 ∗ 3 4 10 ∗ ∗ -5 -5 -16 ∗ 2 A1 A3 ∗ ∗ A2 1 1 3 A4 1 -1 1 ∗ -1 -4 -2 ∗ ∗ 0 5 -1 ∗ După două iteraţii. soluţia optimă a primei probleme este: x0 = (0 3 0 1). putem scrie: A3 = 1 · A2 − 1A4 + α35 · A5 1 1 1 1 (1 0 0) = 1 · (1 1 α35 = 8 b1 = 3 · A2 + 1 · A4 + α05 · A5 1 1 1 (3 4 − 1) = 3(1 1 a05 = −1 După alegerea elementului pivot.1. putem calcula coordonatele necunoscute astfel: A1 = 1 · A2 + 1 · A4 + αA5 1 1 1 1 A1 = 1 · (1 1 1 α = −1. Acum trecem la rezolvarea celei de-a doua probleme. ca o combinaţie liniară a bazei. trecem la completarea următorului tabel simplex dual: − 2) + 1 · (0 1 6) + α05 (0 0 1) − 2) − 1(0 1 6) + α35 (0 0 1) − 2) + 1 · (0 1 6) + α(0 0 1) (1 2 3) = (1 2 4 + α) i i i i . În mod analog. scriem baza dual admisibilă pentru modelul doi: B1 = (A2 A4 A5 ) 1 1 1 Se completează primul tabel simplex dual: 1 A1 1 A3 1 ∗ A2 1 1 1 3 A4 1 1 -1 1 A5 1 -1 8 -1 ∗ -1 -4 -2 ∗ 1 -3 0 ∗ 1 ∗ Completarea tabelului simplex dual s-a realizat cu ajutorul relaţiilor date.i i i “JATEK” — 2005/3/11 — 10:29 — page 122 — #122 i 122 5. Putem scrie: α15 = a31 − (1 · a32 + 1 · a34 ) = 3 − (1 · (−2) + 1 · 6) sau scriind vectorul. care nu intră în formarea bazei.3. fmin = −2. Folosind teorema 5.

Problema poate fi rezolvată cu metoda celor două faze sau cu metoda coeficienţilor de penalizare. .3. Reoptimizarea în urma modificării matricei restricţiilor 2 A5 1 A3 1 ∗ A2 1 1 9 2 A4 1 1 7 0 A1 1 -1 -8 1 ∗ -1 -12 -1 ∗ 1 5 -1 ∗ 123 ∗ Soluţia optimă a celei de-a doua probleme este: x0 = (1 2 0 0 0) fmin = −1. Astfel. atunci rezolvarea celei de-a doua probleme este mai complicată. după care. deoarece nu apare decât în ultima restricţie. vom obţine soluţia optimă a problemei iniţiale. Se poate elimina ultima restricţie şi variabila x7 . i i i i . . x7 ≥ 0 Matricea restricţiilor este: 1 3 −1 0 0 0  0 −2 4 1 0 0 A=  0 −4 3 0 8 1 1 2 1 1 0 1   0 0   0  1 c = (0 1 −6 0 2 0 0). Problemă rezolvată:                f (x) = x2 − 6x3 + 2x5 → min x1 + 3x2 − x3 = 7 −2x2 + 4x3 + x4 = 12 −4x2 + 3x3 + 8x5 + x6 = 10 x1 + 2x2 + x3 + x4 + x6 + x7 = 20 x1 . . eliminând din restricţii şi variabile (dacă este cazul. Reoptimizarea poate fi aplicată şi într-un alt context. b = (7 12 10 20). adică variabilele eliminate nu apar în alte restricţii şi în funcţia de scop). cu reoptimizare.i i i “JATEK” — 2005/3/11 — 10:29 — page 123 — #123 i 5. Având o problemă dată spre rezolvare. putem rezolva problema redusă. . necesită mai multe iteraţii şi tabele simplex cu dimensiuni mai mari. Dacă nu folosim reoptimizarea. Analizând matricea A1 . Algoritmul simplex dual nu se poate aplica în mod direct. se poate observa că problema nu este în forma standard de lucru. Observaţie.

. . După reoptimizare. x6 ≥ 0 după care se aplică reoptimizarea:  A1 A2 A3 A4 A5 A6 3 -2 -4 -1 4 3 0 1 0 0 0 8  0 0  1 1 A= 0 0 Problema este în forma standard de lucru şi se va rezolva cu algoritmul simplex primal. d0 = fmin = −26. se va rezolva problema:   f (x) = x2 − 6x3 + 2x5 → min    x1 + 3x2 − x3 = 7  −2x2 + 4x3 + x4 = 12   −4x2 + 3x3 + 8x5 + x6 = 10    x1 . obţinem soluţia optimă a problemei iniţiale care va fi x0 = (0 4 5 0 0 11). i i i i . Reoptimizarea soluţiilor unei probleme de programare liniară mai întâi.i i i “JATEK” — 2005/3/11 — 10:29 — page 124 — #124 i 124 5.

xi întreg (d ∈ N fixat). Modele care formal seamănă cu modelele programării liniare.1 6. 6. sunt folosite denumirile de programare în numere întregi şi programare combinatorială. pot fi: A1: xi = 0 sau 1 (unde notăm cu xi variabilele problemei).1. În literatura de specialitate internaţională.1. A3: xi ≥ 0. xi întregi.1 Programare discretă Bazele programării discrete Obiectul programării discrete este rezolvarea unor anumite probleme de optimizare. nu există o terminologie unică. prezentăm modele de probleme de optimizare care pot fi rezolvate cu algoritmul simplex. Definiţia 6.1. A2: xi ∈ [0. dar sunt şi alte condiţii puse asupra variabilelor pe lângă condiţia de nenegativitate. care determină tipurile de probleme discrete. Programarea discretă studiază probleme de forma: f (x) → min / max x ∈ S. Aceste tipuri de modele pot fi împărţite în două mari grupe: A. 125 i i i i . d].i i i “JATEK” — 2005/3/11 — 10:29 — page 125 — #125 i Capitolul 6 Tipuri speciale de probleme de optimizare În acest capitol. Aceste condiţii. în cadrul programării discrete. În acest sens. unde S este o mulţime numărabilă.

În concluzie. Tipuri speciale de probleme de optimizare Se poate observa că A3 ⇒ A2 ⇒ A1 . atunci rezultă că aceste metode pot fi folosite şi pentru rezolvarea problemelor A2 şi A1 . prezentăm câteva modele discrete care vor scoate în evidenţă probleme esenţiale legate de rezolvabilitatea modelelor discrete. Fie modelul: √   f (x) = 2x1 − x2 → max  √  2x1 − x2 ≤ 0  −x2 ≤ −1   x1 . Un exemplu cunoscut în acest domeniu este problema rucsacului (vezi paragraful 1. care pot fi rezolvate pe cale grafică. Cea de-a doua grupă constă în probleme mixte în care avem restricţii de tipul A1 .i i i “JATEK” — 2005/3/11 — 10:29 — page 126 — #126 i 126 6. x1 . A2 . i i i i . iar pentru celelalte doar condiţia de nenegativitate. în cazul modelelor liniare putem greşi. implicaţia reciprocă neavând loc. În continuare. reprezentăm dreptele: (d1 ) √ 2x1 − x2 = 0 (d2 ) − x2 + 1 = 0 x2 (d1) (d2) 2 x1 Observaţie. dacă avem o metodă de rezolvare pentru probleme cele mai generale A3 . Dacă pentru o problemă de programare discretă ne rezumăm la raţionamentul folosit.3). A3 doar pentru unele variabile. Vom prezenta modele discrete în R2 . B. x2 ∈ N În acelaşi sistem de coordonate. x2 ≥ 0.

i i i i . . x1 .1. √   f (x) = 5x1 − x2 → max  √  5x1 − x2 ≤ 0  −x1 ≤ −1   x1 . . Şi totuşi nu există soluţie optimă. x2 ∈ N 127 În mod analog lucrând. Dacă A şi B sunt formate din numere raţionale. y) = cx + dy → min(max) Ax + By = b  x ∈ Np y ∈ Rq + + A ∈ Mm×p B ∈ Mm×q Notăm cu C = conv (S).i i i “JATEK” — 2005/3/11 — 10:29 — page 127 — #127 i 6. Fie modelul:   f (x. vom obţine: x2 (d1) 1 x1 (d2) Învelitoarea convexă a punctelor conv {a1 . an } (punctele de intersecţie a dreptelor) nu este neapărat un poliedru.1. dar nu atinge. x2 ≥ 0. la modelul De considerat. . învelitoarea convexă tinde spre dreapta 5x1 = x2 . Programare discretă Exemplu. .1. Deci trebuie luat în considerare cazul în care există soluţie admisibilă. √ exemplu. funcţia de scop este mărginită. atunci C este un poliedru. Are loc următorul rezultat: Teorema 6.

Astfel este firesc ca rezolvarea problemelor de programare discretă să fie redusă la rezolvarea numerică a acestor probleme. În acest sens. Metodele de rezolvare care urmăresc acest raţionament se bazează pe principiul relaxării. principiul relaxării este un instrument extrem de util. Ax = b  x ∈ Nn se renunţă la condiţia de integritate a variabilelor. Dacă problema admite soluţie optimă notată cu x∈T y şi y ∈ S. În continuare. Metodele de tip tăietură şi metoda mărginirii şi separării sunt construite pe acest principiu. Deşi trivial. Sunt două principii funadamentale (principiul relaxării. Principiul relaxării Dintre toate tipurile de programare matematică. x) → opt. principiul lui Bellmann)care stau la baza metodelor numerice elaborate pentru rezolvarea mode-lelor discrete. atunci reiese că avem soluţie optimă şi pentru problema discretă. dacă există soluţie admisibilă şi funcţia de scop este mărginită. atunci y va fi de asemenea soluţie optimă pentru problema f (x) → max x∈S Prima problemă prin definiţie se numeşte problemă relaxată. În orice caz practic.i i i “JATEK” — 2005/3/11 — 10:29 — page 128 — #128 i 128 6. Practic este util atunci când rezolvarea problemei relaxate este mult mai simplă. prima dată a fost formulată şi studiată programarea liniară. Tipuri speciale de probleme de optimizare Observaţie. T două mulţimi oarecare astfel încât S ⊂ T. teorema asigură existenţa soluţiei optime. Fie f : T → R o funcţie f (x) → max oarecare. deoarece calculatorul lucrează numai cu numere raţionale. atunci se obţine o problemă de programare liniară. dacă în modelul:   f (x) = (c. Fie S. i i i i . Rezolvând această problemă şi dacă soluţia x0 verifică condiţiile x ∈ Nn . enunţăm principiul relaxării .

(4. (2. 2)} Obţinem soluţia optimă într-un poliedru convex. Programare discretă În continuare. 6. 1). (0. (1. 1). Soluţia optimă a problemei discrete va fi x = (4 2). x2 ∈ N 129 Vom rezolva pe cale grafică. Metoda lui Gomory Algoritmul lui Gomory este o metodă de tip tăietură şi a fost formulat în 1959 [Gom]. (0. 0). iar soluţia problemei relaxate este x0 = (4 7/3). 3) (4. (3.1.1. 6) (1. Învelitoarea convexă a punctelor (soluţiilor posibile) este un poliedru mai mic. 0). 2). 0). 2). i i i i . 1). 1). 3). (2. se consideră problema:   f (x) = 7x1 + 5x2 → max    6x1 + 9x2 ≤ 54  7x1 + 6x2 ≤ 42   x1 ≤ 4    x1 . (1. 5). 2). (1. punctul de intersecţie a dreptelor (d3 ) ∩ (d2 ). (2. (3. 4). (0. 1). 4).2 Metode de tip tăietură. În acelaşi sistem de coordonate. (2. (1. (0. (1. 0). 4) (3. (4. 3).i i i “JATEK” — 2005/3/11 — 10:29 — page 129 — #129 i 6. (3. (0. 3). 5) (2. (0. 2). vom reprezenta dreptele şi vom determina mulţimea soluţiilor posibile: x2 (d3) (d1) 6 9 (d2) x1 Evident mulţimea soluţiilor posibile este: S = {(0. 0).

se va continua algoritmul. Fie j ∈ B pentru care α0j ∈ N. Asociem acestui model problema relaxată:   f (x) = (x. c) → min Ax = b  x≥0 (6. c) → min Ax = b  x ∈ Nn . Notăm cu Bo baza optimă a problemei relaxate. Aplicăm principiul relaxării. c) → min     Ax = b  {αij }xi ≥ {α0j }/ · (−1)   ¯  i∈B   x≥0 (6. Se pot ivi două situaţii: (a) dacă x1 ∈ S ⇒ x1 este soluţia optimă a problemei discrete. Evident are loc relaţia S ⊆ S1 . rezultă că există cel puţin un număr α0j care nu este natural. Se va rezolva problema relaxată cu una din metodele prezentate şi se va nota cu x1 ∈ S1 soluţia optimă obţinută. 3.2) care este o problemă de programare liniară obişnuită. 2. Notăm cu S = {x ∈ Nn : Ax = b} mulţimea soluţiilor problemei discrete şi cu S1 = {x ∈ Rn : Ax = b. Tipuri speciale de probleme de optimizare Fie modelul liniar cu restricţii în numere întregi:   f (x) = (x. atunci există cel puţin o componentă a vectorului care nu este număr natural. (b) dacă x1 ∈ S.3) i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 130 — #130 i 130 6.1) (6. În continuare. prezentăm algoritmul lui Gomory. Se va construi o nouă problemă astfel:  f (x) = (x. În cazul (b). adică: ∃ j ∈ B : α0j ∈ N. Deoarece x1 ∈ S. x ≥ 0} mulţimea soluţiilor admisibile ale problemei relaxate. 4. 1.

sunt formate din numere întregi. care sunt mulţimile soluţiilor posibile ale modelelor liniare construite în pasul 4 din algoritm. în cazul în care datele de intrare ale problemei. Cu soluţia x2 astfel obţinută se va trece la pasul 2 din algoritm. la fiecare iteraţie. b. ¯ i∈B 131 {αij }xi ≥ {α0j }.i i i “JATEK” — 2005/3/11 — 10:29 — page 131 — #131 i 6. În cazul algoritmului simplex.3) se va nota cu: S2 = {x ∈ Rn : Ax = b.4) x ≥ 0. numărul maxim de iteraţii este m Cn+m . i i i i . Observaţie. unde {x} reprezintă partea fracţionară a numărului real x. Se poate demonstra că. dar în cazul algoritmului Gomory nu se poate da un astfel de număr. Inegalitatea: {αij }xi ≥ {α0j } ¯ i∈B se numeşte tăietura lui Gomory. Au loc relaţiile: S2 ⊆ S1 (chiar se poate arăta că S2 ⊂ S1 ).1. Se vor lua primele n componente pe care le vom nota cu x2 ∈ S2 . În scopul rezolvării. Mulţimea soluţiilor posibile S este aproximată cu un şir de mulţimi tot mai restrictive. Programare discretă Mulţimea soluţiilor posibile ale problemei (6. problema se va transforma astfel:              − f (x) = (x. S ⊆ S2 . c) → min Ax = b {αij }xi + xn+1 = −{α0j } ¯ i∈B (6. 5. o margine superioară în funcţie de dimensiunea problemei [Jer]. Dezavantajul metodei este că. A. xn+1 ≥ 0 Acest model se va rezolva cu reoptimizare. creşte dimensiunea problemei. Algoritmul prezentat nu oferă soluţie într-un număr finit de paşi în cazul tuturor problemelor. Soluţia acestei probleme va avea (n + 1) coordonate. iar mulţimea S este mărginită atunci după un număr finit de paşi. însă poate fi construită o variantă cu număr finit de iteraţii. x ≥ 0}. c. se va obţine soluţia optimă a problemei de minimizare total întreagă.

găsim f (x0 ) < w. 356-358.1. demonstrăm că o variabilă poate lua numai valori negative. unde [x] este partea întreagă a numărului. Tipuri speciale de probleme de optimizare Pentru orice x ∈ R poate fi scris: x = {x} + [x]. 5 Matricea problemei relaxate este: A1 A2 A3 A4 A5 -3 3 6 1 0 0 0 1 0 2  1 A= 3   0 0  1 Problema este în forma standard de lucru şi se va rezolva cu algoritmul simplex primal. [Sch] pg. . . Teorema 6. 3. x5 ∈ N Problema relaxată este:   f (x) = x1 − 6x2 + x3 → min    2x1 − 3x2 + x3 = 2  x1 + 3x2 + x4 = 3   3x1 + 6x2 + x5 = 3    xj ≥ 0.2. obţinem soluţia optimă pentru problema de programare total întreagă. 2. Problemă rezolvată: Să se determine soluţia optimă a problemei discrete:   f (x) = x1 − 6x2 + x3 → min    2x1 − 3x2 + x3 = 2  x1 + 3x2 + x4 = 3   3x1 + 6x2 + x5 = 3    x1 . i i i i . Presupunem că problema relaxată admite soluţie optimă şi funcţia de scop este mărginită inferior (pentru f (x0 ) ∃ w : w ≤ f (x0 )). După un număr finit de iteraţii.i i i “JATEK” — 2005/3/11 — 10:29 — page 132 — #132 i 132 6. . Demonstraţie. j = 1. . vom întâlni una din următoarele situaţii: 1.

2 } = 6 6 Folosind tăietura lui Gomory. . Programare discretă 1 A1 A2 ∗ ∗ 2 A1 A5 ∗ ∗ Soluţia optimă este: A3 2 -3 2 A4 1 3 3 1 A4 -1/2 -1/2 3/2 A5 3 6 3 1/2 A2 1/2 1/6 1/2 ∗ 1 3 2 ∗ ∗ -1/2 -1/2 1/2 ∗ ∗ -6 -8 -9 ∗ ∗ -2 4/3 -5 ∗ 133 A3 7/2 1/2 7/2 173 0 222 1 d0 = fmin = 2 j ∈ {2. . 4}. . x5 ≥ 0 1 1 ⇒ {α02 } = 2 2   f (x) = x1 − 6x2 + x3 → min    2x1 − 3x2 + x3 = 2    x1 + 3x2 + x4 = 3 3x1 + 6x2 + x5 = 3    1 1   − 2 x1 − 6 x5 + x6 = − 1  2  x1 . 4} 1 α02 = ∈ N 2 Pentru j = 2 ales din mulţimea indicilor bazici {2. x6 ≥ 0 i i i i . . 5} 1 1 α12 = ⇒ {α12 } = 2 2 1 1 α5. scriem modelul liniar:   f (x) = x1 − 6x2 + x3 → min    2x1 − 3x2 + x3 = 2    x1 + 3x2 + x4 = 3 3x1 + 6x2 + x5 = 3    1 1 1    2 x1 + 6 x5 ≥ 2  x1 .2 = ⇒ {α5. x1 = 0 {αij }xi ≥ {α0j } ¯ i∈B j = 2 α02 = ¯ i ∈ B = {1. scriem tăietura lui Gomory.i i i “JATEK” — 2005/3/11 — 10:29 — page 133 — #133 i 6. 3.1. 3.

Matricea restricţiilor este:    A1 =    A1 A2 A3 A4 A5 A6 1 1 1 1 1 1  2 −3 1 0 0 0 1 3 0 1 0 0   3 6 0 0 1 0    1 1 − 0 0 0 − 1 2 6   2  3    b1 =  3    1 − 2 1 −6 1 0 0 0 c = Vom rezolva cu algoritmul simplex dual. 1. 3. 1. 0) + 1 2 2 2 2 2 1 7 3 1 3 + (−3. 3. A6 } este bază dual ad1 1 1 1 misibilă. A4 . 3. 1. 0. 1) = − . 0. se obţine următorul tabel: A1 = 1 i i i i . Ştiind că sistemul de vectori B1 = {A3 . 6. α) 2. 0. completăm primul tabel simplex dual: 1 A1 1 A5 1 ∗ A3 1 7/2 1/2 7/2 A4 1 -1/2 -1/2 3/2 A2 1 1/2 1/6 1/2 A6 1 -1/2 -1/6 -1/2 ∗ -1/2 -1/2 1/2 ∗ -3/2 3/2 -9/2 ∗ 1 3 ∗ Ultima coordonată a vectorilor care nu intră în formarea bazei se obţine efectuând calculele: 7 3 1 4 1 2 7 1 A1 − A1 + A1 + αA6 = (1. − + . 0. 0.i i i “JATEK” — 2005/3/11 — 10:29 — page 134 — #134 i 134 6. α = (2. 0) − (0. α) 2 2 2 2 2 1 = (2. 3. Tipuri speciale de probleme de optimizare Problema va fi rezolvată prin reoptimizare. A2 . 0) + α(0. − 2 1 α = − 2 7 3 3 4 1 2 1 b1 = A1 + A1 + A1 + βA6 ⇒ β = − 1 2 2 2 2 După o iteraţie simplex dual. 3. 1.

n sunt funcţii deterministice.i i i “JATEK” — 2005/3/11 — 10:29 — page 135 — #135 i 6. j = 1. 2. 6. Studiul variaţiei soluţiei optime în funcţie de variaţia datelor de intrare reprezintă o problemă extrem de importantă. 0) ∈ S. 0. Pe baza principiului relaxării. i = 1. j = 1. ζi pentru i = 1. Acest model reprezintă extinderea situaţiilor şi consideraţiilor prezentate în capitolele anterioare. j = 1. Acest model este de fapt negarea determinabilităţii unui model obişnuit de programare liniară.2 Programare liniară parametrică Problemele indicate de practica economică conduc la formarea modelelor matematice cu coeficienţi variabili. n sunt variabile aleatoare. Modelul (6.1.3 Programare dinamică discretă Metodele numerice de rezolvare a modelelor discrete bazate pe principiul lui Bellman sunt diferite de metoda simplex şi nu reprezintă obiectul acestei lu-crări. i i i i . o vom prezenta în Anexa 1. m.5) aparţine domeniului programării neliniare. atunci modelul (6.5) reprezintă obiectul programării stohastice. Soluţia optimă este: x2 = (1. Datele de intrare sunt resurse. Programare discretă 2 A6 1 A5 1 ∗ A3 1 7 -2/3 0 A4 1 -1 -1/3 2 A2 1 1 0 0 A1 1 -2 1/3 1 ∗ -1 -1/3 1 ∗ -3 2 -3 ∗ 135 ∗ Baza dual admisibilă este şi primal admisibilă. beneficii şi alte mărimi economice. m    j=1      xj ≥ 0. ηij . Deoarece programarea dinamică discretă este relevantă prin aplicaţiile importante în economie.5)  ηij xj ≤ ζi . ηij . 0. n unde ξj . costuri.1. Dacă ξj . m. Fie modelul:  n   ξj xj → max(min)     j=1    n (6. această soluţie este soluţie şi pentru problema iniţială: d0 = 1 = fmin 6. ζi pentru i = 1.

γ sunt variabile care iau valori dintr-un interval bine determinat. (6. vom considera cazul în care aceste funcţii sunt funcţii liniare de o variabilă.5). ceea ce este o problemă de programare liniară obişnuită. ηij = aij + aij β. i i i i . i = 1.determinarea variantei optime a modelului liniar pentru o valoare fixată a parametrului (sau valori fixate ale parametrilor). ζi = bi + bi γ. 0 ≤ α ≤ α0 . care admite soluţie în cazul în care sistemul de restricţii este consistent. n iar α. m j = 1. x) → max(min)  (6.7). componentele funcţiei de scop şi resursele sunt funcţii care depind liniar de un parametru.9) x ≥ 0    λ ≤ λ ≤ λ 0 1 în care.    Ax ≤ b + b λ (6.6) este un model de programare cu n+3 variabile.6) (A + A β)x ≤ b + b γ   0 ≤ β ≤ β0 . Modelele (6.1. x) → opt. Modelul (6. i = 1. astfel:  (c + c α.8) x ≥ 0    λ ≤ λ ≤ λ 0 1  f (x) = (c.9) se numesc modele de programare parametrică.    Ax ≤ b (6. n ξj = cj + cj α.    (A + A λ)x ≤ b (6. Modele rezolvabile cu algoritmul simplex În scopul aplicării metodei simplex problemei (6. Putem formula două probleme: .8) şi (6. cantităţile din membrul drept. pe rând. Definiţia 6. dar determinarea soluţiei optime este în afara posibilităţilor metodei simplex. x) → opt.2. 0 ≤ γ ≤ γ0 unde: j = 1.7) x ≥ 0    λ ≤ λ ≤ λ 0 1  f (x) = (c + c λ. x) → opt. În continuare vom considera următoarele cazuri:  f (x) = (c.i i i “JATEK” — 2005/3/11 — 10:29 — page 136 — #136 i 136 6. β. m.

Pentru λ = 0 (cea mai utilă fixare a parametrului). Cu algoritmul simplex. 1.9) reprezintă o infinitate de modele liniare pe care le obţinem pe rând pentru fiecare valoare fixată a parametrului λ ∈ [λ0 . În continuare. Pe de altă parte.2. Problema parametrizării modelului înseamnă analiza dependenţei parame-trice a elementelor sale. Valorile lui λ ∈ R pentru care x(λ) ≥ 0 (este soluţie posibilă) formează intervalul caracteristic asociat lui λ = 0. Programare liniară parametrică 137 .i i i “JATEK” — 2005/3/11 — 10:29 — page 137 — #137 i 6.7). La prima vedere. La fiecare bază caracteristică Bcar i se poate asocia un interval [λc1 . în caz contrar. este: −1 xλ0 = B0 · b. a vectorului beneficiar (c). 2.2. prezentăm algoritmul de rezolvare a problemei de tip (6.6) se numesc baze caracteristice. adică a vectorului resursă (b).2. Definiţia 6. nu are sens parametrizarea. modelele (6. Dificultăţile sunt mari şi ele cresc o dată cu natura dependenţei parametrice şi cu simultaneitatea dependenţei elementelor modelului. 3. Se presupune că există soluţie optimă. notat cu [λ01 . practic.7) şi scriem: −1 x(λ) = B0 · b(λ).8) şi (6. nu pentru fiecare λ fixat am obţine o bază optimă. rezolvăm modelul de programare liniară obţinut cu una din metodele numerice cunoscute. (6.7). soluţia optimă de la etapa 1. c c i i i i . notată cu xλ0 . Bazele optime ale problemei (6. Aceste probleme nu pot fi considerate ca o simplă prelungire a reoptimizării. a matricei tehnologice (A). λ1 ] numit interval caracteristic.reoptimizarea soluţiei determinate pentru valori fixate ale parametrilor în condiţiile când parametrii variază pe mulţimea în care iau valori sau pe părţi ale acesteia. λ1 ].2. λ02 ].1 Parametrizarea membrului drept În acest paragraf. considerăm termenul liber b(λ) = b + b λ al problemei (6. 6. λc2 ] ⊂ [λ0 . Rezolvarea unui astfel de model înseamnă determinarea bazelor caracteristice şi a intervalelor caracteristice corespunzătoare.

2. λ02 ]. atunci problema nu admite soluţie optimă: altfel 5. Continuăm procedura de la pasul 5. c c Se pot ivi două situaţii: Dacă intervalul caracteristic nu se poate prelungi pentru că în sectorul 4 există o valoare α0j < 0. Problemă rezolvată Să se determine bazele şi intervalele caracteristice problemei:  f (x) = −9x1 − 16x2 → min    x + 4x ≤ 8 − 2λ 1 2 2x1 + 3x2 ≤ 9 + 3λ    x ∈ R2 . λ ∈ R + Considerăm λ = 0 şi rezolvăm modelul:  f (x) = −9x1 − 16x2 → min    x + 4x + x = 8 1 2 3 2x1 + 3x2 + x4 = 9    x ∈ R4 . Studiem cazurile pentru care λ ∈ [λ01 . A1 A2 ∗ ∗ 1 2 A3 1 4 8 2 4 3 A4 2 3 9 3 1 0 ∗ 9 16 0 ∗ 0 1 ∗ -11 -22 -16 ∗ i i i i . 6. j ∈ B pentru care αij ≥ 0 pentru orice i ∈ B. + Matricea restricţiilor este: A1 A2 A3 A4 A= 1. până când se va ajunge la criteriul de oprire din 4.i i i “JATEK” — 2005/3/11 — 10:29 — page 138 — #138 i 138 6. Parametrizarea membrului drept 4. se aplică algoritmul simplex dual şi se obţine o prelungire a intervalului caracteristic.1.

Astfel obţinem din:   7 − 7λ ≥ 0  λ ≤ 1 5 5 x(λ) ≥ 0 ⇔ ⇔ 2 . i i i i . Valoarea optimă a funcţiei de scop este fmin (λ) = −44 − 10λ.i i i “JATEK” — 2005/3/11 — 10:29 — page 139 — #139 i 6.2. A4 A3 ∗ ∗ Soluţia optimă este: x0 = b (12/5. A1 A3 ∗ ∗ 3.  12 18λ λ ≥ −   + ≥0 3 5 5 2 Dacă λ ∈ − . x(λ) = 2/5 −1/5 −3/5 4/5  7 7 − λ  5 5   =  12 18λ  + 5 5 Dacă x(λ) ≥ 0. A1 ) este bază optimă. Programare liniară parametrică 2. 7/5) şi fmin = −44. A2 1/4 1/4 2 8 A2 -1/5 2/5 7/5 A4 5/4 -3/4 3 12/5 A1 4/5 -3/5 12/5 ∗ 5 -4 -32 ∗ ∗ -4 -1 -44 ∗ ∗ -22/4 22/4 28 ∗ ∗ 22/5 11/5 206/5 ∗ 139 Revenim la modelul de programare parametrică şi scriem: b(λ) = 8 − 2λ 9 + 3λ B −1 = 2/5 −1/5 −3/5 4/5  8 − 2λ 9 + 3λ x(λ) = B −1 · b(λ). atunci B = (A2 . A1 ) este bază 3  7 7 − λ  5 5 x2 (λ) =  12 18λ x1 (λ) + 5 5 optimă şi:     este soluţie optimă. 1 atunci B = (A2 .

prin urmare. dacă λ > 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 140 — #140 i 140 6. A4 A3 ∗ A2 -1/5 2/5 7 7α 3 + 5 A1 4/5 -3/5 − 18α 5 ∗ -4 -1 ∗ 22/5 11/5 ∗ ∗ 5/3 ∗ i i i i . Astfel. pentru λ > 1 modelul considerat nu admite soluţie optimă. Putem scrie:   7 7 7 − µ − (1 + µ)    5 5 5 = x(µ) =   12 18   6 18 + (1 + µ) − − µ 5 5 5 5    .1. intervalul nu poate fi prelungit la dreapta. În concluzie.2. 1 atunci cel puţin o componentă a lui x(λ) va deveni 3 negativă. 2 2 Dacă λ < − atunci putem introduce notaţia λ = − − α.  Revenim la ultimul tabel al problemei rezolvate pentru λ = 0 şi vom avea: 1. 18  − α 5 Revenim la ultimul tabel al problemei rezolvate pentru λ = 0 şi scriem: 1. α > 0 şi 3 3 putem scrie:    x(α) =   12 18 + 5 5 7 7 − 5 5 2 − −α 3 2 − −α 3    7 7α    3+ 5  = . A4 A1 ∗ A1 4/5 -3/5 − 6 − 18 µ 5 5 A3 -4/3 -5/3 2 + 6µ ∗ -4 -1 54+274µ 5 ∗ 22/5 11/5 ∗ ∗ 11/3 ∗ 5/3 A2 1/3 2/3 − 4+19µ 5 ∗ -16/3 -5/3 ∗ 1 2 4 + 19µ < 0 valorile α42 = > 0 şi α12 = > Deoarece pentru α02 = − 5 3 3 0 rezultă că problema nu admite optim finit. Parametrizarea membrului drept Dacă λ ∈ − 2 . atunci notăm λ = 1 + µ. A4 A3 ∗ A2 -1/5 2/5 -7/5µ 2. µ > 0. în cazul în care există soluţie. va trebui să se aplice algoritmul simplex dual.

. x) → min / max  Ax = b   x ≥ 0.i i i “JATEK” — 2005/3/11 — 10:29 — page 141 — #141 i 6. − şi B = (A2 . . λ0 ] . Considerând. αi = 0.2 Parametrizarea funcţiei de scop  f (x) = (c + c λ. vor fi diferenţele di .2. λ0 ]. adică intervalul poate fi prelungit la stânga. fără restrângerea generalităţii. 3 3 3 7 2 Dacă α ∈ 0. A3 ) este bază optimă: 3 3 Dacă fmin (α) = − Dacă 112 + 16α. deoarece: 3 1 2 α42 = > 0 şi α12 = > 0. Problemă rezolvată Să se determine bazele şi intervalele caracteristice pentru următorul model: i i i i . În sectorul 7. atunci λ ∈ −3. că b ∈ Rm . ∞) şi ţinând cont de semnul funcţiilor 1 1 2 0 di pe aceste intervale se vor determina bazele caracteristice.2. i ∈ B. Putem scrie di (λ) = αi λ + βi . 3 7 − α < 0 atunci modelul nu admite optim finit. λ ∈ R Fie modelul: Putem presupune. la re+ zolvarea numerică a problemei se aplică algoritmul simplex primal. care sunt funcţii de λ. pe rând. Astfel pentru 3 3 0 2 7 7 α ≤ avem λ = − − = −3. 1]. 3 3 Deci modelul de programare parametrică admite soluţie optimă doar în cazul în care λ ∈ [−3. Programare liniară parametrică 2. [λ0 . 6. A4 A1 ∗ A2 1/3 2/3 7/3-α A3 -4/3 -5/3 6α ∗ -16/3 -5/3 ∗ 11/3 ∗ ∗ 141 7 7 −α −α ≥ 0 atunci x(α) = este soluţie optimă. Astfel. i ∈ B şi notăm soluţiile ordonate ale βi ecuaţiilor di (λ) = 0 cu λ0 = − . intervalele i αi caracteristice (−∞. [λm .

4 III. A1 va fi 4 vectorul care va intra în bază. 4 3 II.2. ∞) atunci d1 (λ) < 0. citim baza caracteristică care este B = (A3 . λ ∈ R + Matricea restricţiilor este: A1 A2 A3 A4 A= 1 2 1. 3 . atunci d1 (λ) > 0. λ0 = 1. d4 (λ) < 0. 1 atunci d1 (λ) ≥ 0. Dacă λ ∈ (1. d1 : R → R d4 (λ) = −4λ + 3. 1 . Dacă λ ∈ . Dacă λ ∈ −∞. A1 A4 ∗ ∗ 0 1 A3 1 2 2 2 1 0 A2 2 3 5 5/2 2 3 . d4 : R → R. considerăm tabelul: λ d1 (λ) d4 (λ) −∞ + + + + + + + + 3/4 + 0 + – 1 0 – – – – – ∞ – – Pe baza tabelului. i ∈ B = {1. 4} sunt λ0 = .i i i “JATEK” — 2005/3/11 — 10:29 — page 142 — #142 i 142 6. A2 ) şi x0 = (0 5 2 0) este soluţie optimă: fmin (λ) = −2λ + 5. B = (A3 . 1 4 2 Pentru studiul semnului. putem scrie: 3 I. În cazul III. atunci considerăm algoritmul simplex primal. 3 Soluţiile ecuaţiilor di (λ) = 0. avem funcţiile reale de o variabilă reală: d1 (λ) = −λ + 1. dacă λ ∈ (1.2. Parametrizarea funcţiei de scop  f (x) = x1 + x2 − λx3 + 2λx4 → min    x + x + 2x = 2 1 3 4 2x1 + x2 + 3x4 = 4    x ∈ R4 . ∞) din tabelul simplex. Putem scrie: Dacă λ ∈ i i i i . d4 (λ) ≥ 0. d4 (λ) < 0. A2 ) ∗ −λ + 1 −4λ + 3 −2λ + 5 ∗ În sectorul 7.

Programare liniară parametrică 2. Rezolvând sistemul de inecuaţii: λ−1≤0 −2λ + 1 ≤ 0 Deci pentru λ ∈ ⇔λ∈ 1 .2. A2 ) este bază caracteristică.i i i “JATEK” — 2005/3/11 — 10:29 — page 143 — #143 i 6. pentru λ ∈ . A3 A4 ∗ ∗ A1 1 2 2 1 A2 -2 -1 1 ∗ λ−1 −2λ + 1 3 ∗ 143 B = (A1 . A2 ) este bază 2 4 caracteristică. deoarece d4 (λ) > 0 în cazul conside-rat. dacă d3 (λ) ≤ 0 şi d4 (λ) ≤ 0. Vectorul care va intra în bază va fi A4 . 1 3 Se deduce imediat că. 3 .1 . Vom obţine: 3. studiem cazul pentru care λ ∈ −∞. Filiala i i i i . Probleme aplicative 1. ca vector care intră în bază. baza B = (A1 . A3 A1 ∗ ∗ A4 1/2 1/2 1 A2 -3/2 1/2 2 ∗ 4λ−3 2 2λ−1 2 2λ + 2 ∗ Se poate verifica uşor că d3 (λ) < 0 şi d1 (λ) < 0. 4 mul simplex primal. Cu ocazia programului de modernizare-reorganizare a unei fabrici de mobilă au fost cumpărate maşini noi şi au fost înfiinţate noi secţii. vom obţine tabelul 2. . A2 ) şi 4 x0 = (2 1 0 0) este soluţie optimă: fmin (λ) = 3. şi continuăm 2 algoritmul simplex în tabelul 2. revenim la primul tabel simplex şi aplicăm algoritDacă λ ∈ −∞. fmin (λ) = 2λ + 2. A2 ) este bază caracteristică şi x0 = (0 2 0 1) este soluţie optimă. adică B = (A4 . 1 baza caracteristică este B = (A1 . 1 În continuare. Luând vectorul A1 . 2 3 .

lucrează 40 de angajaţi. B. Timpul total de prelucrare a celor patru piese şi cel de asamblare a mobilelor. pe baza datelor din anii precedenţi. în patru zile. Piesele fabricate în atelierul T1 sunt direcţionate spre atelierul de asamblare T2 din depozitul d1 . poate să furnizeze spre atelierul de asamblare T2 . Se cere organizarea producţiei în filiala X pe o jumătate de an. se planifică să se angajeze încă 20 de muncitori. în a doua jumătate a anului. D. realizează şapte tipuri diferite de mobilă notate cu A. iar cu 60 de muncitori 3 608 280 minute. calculate în minute sunt: Tip de mobil i componente Timpul de lucru A 612 B 550 C 570 D 510 E 740 F 680 G 500 E1 152 E2 130 E3 100 E4 80 Capacitatea de producţie este influenţată de capacitatea de lucru a maşinilor. Deci.2. Capacitatea atelierului T2 depinde în primul rând de numărul de muncitori. E. este 60138 minute. cel mult 28 000 piese fabricate în atelierul T1 . pentru a doua jumătate. motiv pentru care s-a propus necesitatea determinării planului de producţie cu ajutorul metodelor matematice. pe o jumătate de an. F. M3 . În atelierul T1 sunt trei maşini: M1 . G. Deci se poate afirma că. M2 .i i i “JATEK” — 2005/3/11 — 10:29 — page 144 — #144 i 144 6. În prima jumătate a anului.2. pe cele trei maşini. Mobila se obţine în urma asamblării a patru piese. numărul muncitorilor va fi cel puţin 40 şi cel mult 60. C. pentru 40 de muncitori. Timpul de lucru al unui muncitor din T2 . capacitatea atelierului T2 pe o jumătate de an este 2 405 520 minute. Norma de lucru este de 8 ore pe zi. Filiala X. Timpul de lucru. Pentru fabricarea mobilei sunt folosite două ateliere: T1 şi T2 . prin combinarea celor patru piese. necesar pentru fabricarea unui produs este dat în următorul tabel: Produse A 18 11 19 B 15 9 16 C 17 10 16 D 13 14 14 E 21 18 18 F 19 15 17 G 11 16 12 E1 4 3 3 E2 3 2 3 E3 3 3 4 E4 4 4 3 Capacitatea de ma ini 73920 73920 73920 Ma ini I II III Depozitul d1 . care se pot cumpăra şi cu bucata. Parametrizarea funcţiei de scop X a întreprinderii a început producţia acum doi ani şi nu a adus venituri scontate. i i i i . în atelierul T2 . Timpul total de lucru pe o maşină nu poate să depăşească capacitatea de lucru a maşinii. La organizarea producţiei.

în total. 100 buc. din A. 300 buc. 7 numărul de mobilier fabricat din cele şapte tipuri i i i i . F şi G. un număr de piese de mobilier: cel puţin 60 buc. dacă în următoarele şase luni numărul muncitorilor din atelierul T2 va creşte? Notând cu xi . în total. C şi D. de tip E4 . totale 6415 5832 6064 4020 5790 3423 5421 1412 1321 1261 1366 Cheltuieli T2 Salarii Salarii ore supl.i i i “JATEK” — 2005/3/11 — 10:29 — page 145 — #145 i 6. Iar din piesele E1 şi E2 (deoarece sunt mai căutate de către cumpărători).2. cel puţin 40 buc. Datele necesare planificării sunt prezentate în tabelul următor: Pre contractat 10221 9144 9631 6464 8722 5465 8207 2400 2118 2020 2100 Ch. Întreprinderea Y a mai comandat. să transporte la beneficiar atât cât transportă din E3 şi E4 . 8909 7953 8400 5464 7698 4492 7284 1936 1807 1770 1840 Beneficiu 1312 1191 1231 1000 1024 973 923 464 311 250 260 Produse A B C D E F G E1 E2 E3 E4 Ch. întreprinderea Y a impus fabricii ca. mobilier. din D. din B. Se cere planificarea producţiei. cel puţin 40 buc. din E. Programare liniară parametrică 145 trebuie luat în considerare ca necesarul pieselor să nu depăşească 980 000 bucăţi (140 ∗ 28000/4) (140 zile de lucru). 100 buc. piese de tip E1 . 143 22 121 19 137 21 97 15 131 19 84 12 139 21 38 6 36 12 33 6 36 12 Cost de fabr. astfel încât preţul total brut să fie maxim. i = 1. de asemenea. în total. să asigure mobilier de tipul E. în urma unei negocieri ulterioare. cel puţin atât cât transportă din tipurile A. materii 2090 1770 1953 1182 1552 863 1552 420 382 420 382 Întreinere 41 35 39 28 40 24 40 8 8 8 8 Ch. Numărul pieselor fabricate şi numărul pieselor necesare pentru asamblarea mobilierelor sunt prezentate în tabelul următor: Tip de mobil i componente Num r de piese A 98 B 85 C 87 D 60 E 65 F 50 G 72 E1 20 E2 16 E3 16 E4 12 Întreprinderea Y . 200 buc. T1 Chelt. din G şi. 500 buc. totale 198 176 186 122 166 86 111 52 48 42 36 Să se determine structura produselor fabricate care asigură un beneficiu maxim! Cum se modifică structura programului. în total. după cum urmează: 200 buc. din F . Ţinând cont de cererea de pe piaţă. de tip E2 . care se ocupă cu vânzarea mobilierului. de tip E3 . pe durata celor şase luni. cel puţin 50 buc. din C. B. 300 buc. solicită din toate cele şapte tipuri de mobilier câte 1000 de bucăţi.

Preţul de fabricaţie şi de vânzare este dat în tabelul de mai jos: Pentru asamblarea unor tipuri sunt necesare următoarele piese "crossbar": i i i i . Se cere planificarea producţiei. i = 1. astfel încât întreprinderea X să obţină un beneficiu maxim. 300 ≤ x ≤ 1000. 40 ≤ y4 ≤ 1000. fie din piese importate. Parametrizarea funcţiei de scop şi cu yi . 50 ≤ y ≤ 1000. Asamblarea centralelor se face fie din piesele fabricate în aceste ateliere.i i i “JATEK” — 2005/3/11 — 10:29 — page 146 — #146 i 146 6. 100 ≤ x ≤ 1000. 60 ≤ y ≤ 1000.2. se poate formula următorul model:  f (x) = 1312x1 + 1191x2 + 1231x3 + 1000x4 + 1024x5 + 973x6 + 923x7 +    +464y1 + 311y2 + 250y3 + 260y4 → max     612x1 + 550x2 + 570x3 + 510x4 + 740x5 + 680x6 + 500x7 +     +152y1 + 130y2 + 100y3 + 80y4 ≤ 3608280 − λ    18x + 15x + 17x + 13x + 21x + 19x + 11x +   1 2 3 4 5 6 7   +4y + 3y + 3y + 4y ≤ 73920   1 2 3 4   11x + 9x + 10x + 14x + 18x + 15x + 16x +   1 2 3 4 5 6 7   +3y + 2y + 3y + 4y ≤ 73920 1 2 3 4 19x1 + 16x2 + 16x3 + 14x4 + 18x5 + 17x6 + 12x7 +    3y + 3y + 4y + 3y ≤ 73920  1 2 3 4    x + x + x + x − x − x − x ≤ 0  1 2 3 4 5 6 7    −y − y + y + y = 0  1 2 3 4    200 ≤ x ≤ 1000. 0 ≤ λ ≤ 1202760. B. Asamblarea pieselor componente şi a centralei se realizează în ateliere din oraşele A.  1 2 3    200 ≤ x ≤ 1000. Planul optim este determinat în funcţie de numărul angajaţilor din atelierul de asamblare [?]. precum şi în unele ateliere ale intreprinderii X. Este un model de programare parametrică.  7 1 2    40 ≤ y3 ≤ 1000. 500 ≤ x ≤ 1000.2.  4 5 6    300 ≤ x ≤ 1000. 100 ≤ x ≤ 1000. 2 numărul de piese care vor fi vândute la bucată. Problemă aplicativă pentru parametrizarea funcţiei de scop Fie o întreprindere X care se ocupă cu fabricarea centralelor telefonice electronice.

5.i i i “JATEK” — 2005/3/11 — 10:29 — page 147 — #147 i 6. respectiv 10 buc. Să se analizeze cum influnţează această modificare de preţ structura programului optim de producţie! Dacă notăm cu xi cantăţile fabricate din fiecare tip de centrală telefonică. Ţinând cont de producţia atelierelor în care se fabrică comutatoarele.2. atunci modelul matematic este: i i i i . iar variaţia beneficiului cu parametrul λ. 0. respectiv numărul pieselor importate. fapt ce influenţează atât cheltuielile. 5. cantităţile disponibile sunt următoarele: Tip Cantitate K1 28 K2 20 K3 8 K4 30 K5 47 K6 27 K7 15 Piesa notată cu K5 se importă de la o firmă suedeză şi preţul se va modifica în timpul perioadei analizate. Programare liniară parametrică 147 Tip Pre vânzare (un_mon/buc) Cost total (un_mon/buc) Venit (un_mon/buc) CA 102 450 370 80 CA 41 120 90 30 CA 1001 500 400 100 CA 42/B 390 320 70 CA 20 100 70 30 Tip K1 K2 K3 K4 K5 K6 K7 CA 102 1 1 1 1 – – – CA 41 1 1 – – – – – CA 1001 – – – 1 2 2 1 CA 42/B – – – 1 1 2 1 CA 20 – – – – 1 – – Comenzile pentru tipurile fabricate sunt 3. cât şi beneficiul.

structura producţiei optimale poate fi scrisă în următorul tabel: Varia ia venit (unitate monetar ) 1. este optimă. −3]. x4 ≥ 0. – 70 i mai pu in 2. În acest caz. în urma modificării de preţ. [– 70. iar în intervalul [−3. atunci această structură aduce beneficiul maxim. x3 ≥ 5. – 30 4. O scădere a beneficiului cu 30 unităţi monetare atrage după sine înjumătăţirea beneficiului total.2. combinaţia liniară convexă a structurilor de producţie. Parametrizarea funcţiei de scop  f (x) = 8x1 + 3x2 + (10 + 2λ)x3 + (7 + λ)x4 + (3 + λ)x5 → max    x1 + x2 ≤ 28     x1 + x2 ≤ 20     x1 ≤ 8   x + x3 + x4 ≤ 30  1  2x3 + x4 + x5 ≤ 47     2x3 + x4 ≤ 27     x3 + x4 ≤ 15     x1 ≥ 3. Vom putea realiza un plan real de producţie.2. rezultă o scădere a beneficiului de 70 unităţi monetare sau mai mare. – 30 i peste (1) 5. 301 + 47λ (unitate monetară). Rezolvând problema cu metoda simplex. 160.i i i “JATEK” — 2005/3/11 — 10:29 — page 148 — #148 i 148 6. aflate în rândurile 4 şi 5 ale tabelului. – 30 i peste (2) CA 102 8 8 8 8 8 CA 41 12 12 12 12 12 CA 1001 5 5 12 12 5 CA 42/B 0 10 3 3 10 CA 20 10 10 10 20 27 Beneficiile pe tipuri sunt: 180 + 20λ. dacă nu are loc o modificare de preţ. Se poate observa că. x5 ≥ 10. i i i i . 250 + 30λ. dacă variaţia preţului de importare a piesei K5 va produce o scădere mai mică de 30 unităţi monetare a beneficiului pe centrale. Conform acestora. Dacă. x2 ≥ 5. [−3. +∞). [−7. +∞) vom avea două soluţii optime. – 30] 3. atunci beneficiul total este de 301 unităţi monetare. intervalele caracteristice vor fi: (−∞. Dacă variaţia preţului este convenabilă. atunci fabricarea produselor care conţin piese de import nu sunt rentabile. −7]. Pentru λ = −3 vom avea patru soluţii bazice optime alternative.

λ ∈ R +  f (x) = x1 + x2 + 2x3 + x4 → min    x − 2x − x = 2 − λ 1 3 4 2. λ ∈ R +  f (x) = (3 − λ)x1 − (2 + λ)x2 → min    2x1 + 5x2 ≤ 10   3. 6x1 + x2 ≤ 12   x1 − x2 ≤ 1     x ∈ R2 . x2 − x3 + x4 = −1 + λ     x ∈ R4 . λ ∈ R +  f (x) = x1 + 2x2 + 3x3 + 4x4 + 5x5 → max    2x + x + x + 3x + x = 18 − 3λ 1 2 3 4 5 5. 2x1 − 3x2 ≤ 3     x ∈ R2 . x) + c0 → max   (d.3.i i i “JATEK” — 2005/3/11 — 10:29 — page 149 — #149 i 6. (6. λ ∈ R j 6. x1 + 2x2 + x3 + x4 + 3x5 = 12 + 4λ    x ≥ 0. x) + d0 Ax ≤ b    x ≥ 0.3 Programare hiperbolică Fie problema de optimizare:   f (x) = (c. λ ∈ R +  f (x) = (2 − λ)x1 + (4 + 2λ)x2 → max    x + x ≤ 6 1 2 4. 2x1 − x2 ≤ 4     x ∈ R2 . 1 ≤ j ≤ 5. Programare hiperbolică Probleme propuse 149 Să se determine bazele şi intervalele caracteristice pentru problemele de mai jos!  f (x) = x1 + λx2 → max    x + 3x ≤ 3 1 2 1.10) i i i i .

1. x ≥ 0. x) + d0 < 0 pentru orice soluţie posibilă x. (d. x1 ) − (c. x2 )] + (c. Teorema 6.11). x1 ) + c0 (C. x2 ) + c0 = = (d. s-au folosit proprietăţile produsului scalar.11) şi vom arăta că pentru orice x ∈ [x1 .i i i “JATEK” — 2005/3/11 — 10:29 — page 150 — #150 i 150 6. x2 ) + c0 λ(C1 − C2 ) + C2 = = λ[(d. x) + d0 > 0. S− = {x ∈ D | Ax ≤ b. Vom considera funcţia: −f (x) = −(c. dacă (d. Folosind un raţionament analog. f : D ⊆ Rn → R. Deoarece f este continuă.n (R). x1 ) + d0 (d. ∀ λ ∈ [0. x) + d0 < 0}. x2 ) + c0 not C2 = < = D1 (d. Demonstraţie. (d. x2 ) + d0 λ(D1 − D2 ) + D2 λC1 + (1 − λ)C2 C2 < = f (x2 ) λD1 + (1 − λ)D2 D2 Inegalitatea are loc. x2 )] + (d. x2 ) + d0 D2 ⇔ C1 D2 < C2 D1 (6. Putem scrie: f (x) = = = (c. x2 ) + d0 λ[(c. x) + d0 > 0 sau (d. vom presupune că are loc una din cele două inegalităţi . x1 ) + (1 − λ)(d. x) − c0 . λx1 + (1 − λ)x2 ) + d0 λ(d. f S+ este cvasiconvexă şi f S− este cvasiconcavă. λx1 + (1 − λ)x2 ) + c0 λ(c. x1 ) − (d. adică funcţia este cvasiconvexă. x) + d0 > 0}. ·) : Rn × Rn → R este produs scalar euclidean. deoarece D2 ≥ 0 şi λD1 + (1 − λ)D2 > 0 şi astfel putem scrie: λC1 D2 + (1 − λ)C2 D2 < λD1 C2 + (1 − λ)D2 C2 ⇔ λ(C1 D2 − D1 C2 ) < 0 ceea ce este relaţia (6. ( · . x) + d0 unde (d. (d. se poate arăta că funcţia (−f ) este cvasiconvexă. x ≥ 0. i i i i . 1] are loc relaţia: f (x) < f (x2 ).3. Vom presupune că pentru x1 . În continuare. x1 ) + (1 − λ)(c. În demonstraţie. avem de arătat că funcţia obiectiv f este strict cvasiconcavă. Fie: S+ = {x ∈ D | Ax ≤ b. Modele rezolvabile cu algoritmul simplex unde A ∈ Mm. adică are loc: C1 not (c. x2 ]. x2 ∈ S avem f (x1 ) < f (x2 ). b ∈ Rm . unde x = λx1 +(1−λ)x2 .

xr ) + d0 > 0 prin ipoteză. funcţia obiectiv este funcţie cvasimonotonă şi se poate determina soluţia optimă a problemei cu algoritmul simplex. Matematicianul Martos Bela [Mar] a fost primul care a adaptat algoritmul simplex pentru rezolvarea numerică a modelelor hiperbolice.12) b −x0 −d0 c0 . condiţia de optim pentru probleme hiperbolice este t∗ ≤ 0. xr ) + c0 ) ≤ 0 deoarece d0 > 0 şi (d. Deci soluţia este îmbunătăţită dacă xr (c0 d − d0 c) ≤ 0. + + unde se consideră (d. c) ∈ Rn . Forma standard a problemei de optimizare hiperbolică (6. El a introdus această noţiune. x) + d0 Ax + Im x = b   X ∈ Rn . xr ) + d0 Inegalitatea este adevărată dacă: c0 ((d. d0 O soluţie xr la iteraţia de ordinul r este o soluţie mai bună pentru modelul considerat dacă are loc relaţia: Soluţia bazică iniţială este x1 = θn ∈ Rn pentru care f (x1 ) = f (x1 ) − f (xr ) ≤ 0 ⇔ c0 (c.11) este:   f (x) = (d. x) + d0 > 0. d0 (d. xr ) + c0 − ≤ 0. x ∈ Rm .i i i “JATEK” — 2005/3/11 — 10:29 — page 151 — #151 i 6. d) − (d0 . Tabelul simplex propus de Martos are forma: B0 x x∗ A c∗ d∗ (6. Notând cu t∗ = (c0 . xr ) + d0 ) − d0 ((c. Tabelul simplex primal adaptat este alcătuit din 10 sectoare: i i i i .3. x) + c0 → max   (d. Programare hiperbolică 151 În consecinţă.

∀ i ∈ B i • în cazul. i atunci dacă pentru orice j ∈ B αij ≤ 0 atunci nu admite soluţie optimă problema considerată. (b) Dacă ∃ i ∈ B astfel încât t∗ > 0. 2. • în sectorul 9 vor fi scrise componentele vectorului c. 6 se completează ca şi în cazul tabelelor simplex primal.i i i “JATEK” — 2005/3/11 — 10:29 — page 152 — #152 i 152 1 3 2 6 6. altfel se va determina elementul pivot folosind procedura simplex primal cunoscută. • în sectorul 8’ se va scrie valoarea d0 . se va completa sectorul 10 folosind procedura de la algoritmul simplex primal. • în sectorul 7 vor fi scrise componentele vectorului t∗ pe care le calculăm astfel: t∗ = −c0 di − (−d0 ) · ci . • în secorul 8 se pun componentele vectorului d. adică valoarea c0 /d0 . i i i i . 3. • în sectorul 5 vom scrie valoarea funcţiei de scop pentru soluţia actuală. 4. în care soluţia nu este optimă. În urma aplicării algoritmului simplex adaptat. ceea ce înseamnă că soluţia bazică este i optimă. Modele rezolvabile cu algoritmul simplex ∗ 7 d 8 c 9 ∗ ∗ 4 10 5 8’ ∗ 9’ ∗ Completarea tabelului simplex primal adaptat: • sectoarele 1. ne vom întâlni cu una din următoarele situaţii: (a) t∗ ≤ 0 pentru orice i ∈ B. • în sectorul 9’ se va scrie valoarea c0 . Observaţie.

j = 1. m    j=1       xj ≥ 0. j = 1. n Dacă ne interesează un plan de producţie pentru care câştigul unitar raportat la cheltuielile de producţie să fie maxim.  f (x) = 30x1 + 19x2 → max    10x1 + 9x2 + 4      40x + 20x ≤ 280 1 2 20x1 + 50x2 ≤ 300    2x ≤ 12  1    x ∈ R2 + i i i i . iar cj cheltuielile directe de producţie. Programare hiperbolică Problemă aplicativă 153 În cazul planificării planului de producţie.3. Funcţia obiectiv va fi: n dj xj g(x) = j=1 n cj xj + c0 j=1 unde dj reprezintă preţul de vânzare unitară a produsului xj . se construieşte modelul liniar:   f (x) =         n n cj xj → max j=1  aij xj ≤ bi . atunci se obţine un model de programare hiperbolică. c0 reprezintă valoarea cheltuielilor planificate care nu pot fi distribuite. i = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 153 — #153 i 6. n. în scopul obţinerii unui profit maxim. Probleme rezolvate 1.

Modele rezolvabile cu algoritmul simplex Forma standard este:  f (x) = 30x1 + 19x2 → max    10x1 + 9x2 + 4      40x + 20x + x = 280 1 2 4 20x1 + 50x2 + x3 = 300    2x + x = 12  1 5     x ∈ R5 + A1 A2 A3 A4 1 0 0 ∗ 120 76 0 ∗ ∗ -60 -404 180/64 0 1 0 d 10 9 -4 ∗ d -5 9 -64 A5 40 20  20 50 A= 2 0 1. A1 A2 ∗ ∗ 2 A5 A2 ∗ ∗ A3 -20 20 40 A3 40 20 280 7 A4 20 50 300 15 A5 2 0 12 6   0 0  1 c 30 19 0 ∗ c -15 19 -180 A4 -10 50 180 A1 1/2 0 6 Valorile lui t∗ sunt negative.i i i “JATEK” — 2005/3/11 — 10:29 — page 154 — #154 i 154 6. deci soluţia este optimă: t∗ = (−60. −404) ≤ 0 x0 = (6 0) 180 fmax = 64 2.  f (x) = 2x1 + 2x2 + 4x3 + x4 + 1 → max    x1 + x2 + 2x3 + 5      x + x − x + x ≤ 6 1 2 3 4 x1 + x3 ≤ 10    x + x ≤ 8  3 4    x ∈ R4 + i i i i .

A1 A2 A3 A4 ∗ ∗ A5 1 1 -1 1 6 – A5 1 1 1 2 14 14 A2 1 1 1 2 14    2.i i i “JATEK” — 2005/3/11 — 10:29 — page 155 — #155 i 6. A1 A5 A7 A4 ∗ ∗ A6 1 0 -1 -1 2 A3 0 0 1 1 8 ∗ 0 -9 -27 -1 61/35 ∗ d 0 -1 -3 -4 -35 ∗ c 0 -2 -6 -7 -61 ∗ i i i i . A1 A2 A7 A4 ∗ ∗ ∗ 9 9 -18 3 33/21 ∗ d 1 1 -2 -2 -21 ∗ c 2 2 -4 -3 -33 ∗ 3.3. Programare hiperbolică Forma standard a problemei este:  f (x) = 2x1 + 2x2 + 4x3 + x4 + 1 → max    x1 + x2 + 2x3 + 5      x + x − x + x + x = 6 1 2 3 4 5 x1 + x3 + x6 = 10    x + x + x = 8  3 4 7    x ∈ R7 + A1 A2 A3 A4 A5 A6 A7 1 0 0 A6 1 0 1 0 10 10 A6 1 0 -1 -1 2 -1 1 1 A7 0 0 1 1 8 8 A3 0 0 1 1 8 1 0 1 ∗ 9 9 18 5 1/5 ∗ 1 0 0 d 1 1 2 0 -5 ∗ 0 1 0 c 2 2 4 1 -1 ∗ 0 0 1 155 1 A= 1 0 1.

t este soluţie optimă pentru problema de optimizare ¯ ¯ (6.10). se formulează problema:  f (x) = (c. În acest scop notăm: t= de unde avem: t(d. deci x0 = (0 14 8 0) este soluţie (1) În general. Teoremă. (3) Dacă trebuie determinată valoarea minimă a funcţiei de scop.10) prin utilizarea unor substituţii convenabile poate fi redus la un model de optimizare liniară. atunci x = x este soluţie optimă pentru modelul de optimizare t hiperbolică (6. x) + td0 = 1. 6.13) ceea ce este un model de optimizare liniară cu (m+1) restricţii şi (n+1) variabile. x) + c0 → min    (d. Dacă evaluăm greşit semnul numitorului. fmax = 61/35. Observaţie. Dacă notăm cu x = tx atunci modelul (6. x) + d0 > 0 pentru x ∈ S. Modele rezolvabile cu algoritmul simplex − 1) ≤ 0. (2) Modelul (6. x) + c0 t → max ¯  x   A¯ − bt ≤ 0 x d¯ + td0 = 1  x   x ≥ 0.13). t ≥ 0 ¯ 1 (d. Dacă x. x) + d0 (6. În această situaţie elementele din sectorul 9 şi 9’ trebuie înmulţite cu (-1) şi poate fi aplicat în continuare algoritmul simplex adaptat.i i i “JATEK” — 2005/3/11 — 10:29 — page 156 — #156 i 156 Avem t∗ = (0 − 9 − 27 optimă. x) + d0 < 0 sau (d. x) + d0  Ax ≤ b     x≥0 i i i i . atunci în tabelul simplex valoarea lui d0 va fi pozitivă (valoarea lui d0 trebuie să fie negativă). este dificilă verificarea condiţiei (d. iar valorile optime sunt egale.10) devine: ¯  f (¯) = (c.

i i i i . În aplicaţii practice. creşterea prestigiului. factorul de decizie urmăreşte minimizarea resurselor. vom aduna restricţiile.4. x) + d0  Ax ≤ b     x≥0 3. 6. menţinerea unui profit stabil. Astfel putem scrie: 2x1 + x2 + 3x3 − 15 ≥ x2 + 3x3 − 15 ≥ 95 deci numitorul verifică condiţia de pozitivitate.4 Programare multicriterială Modelele prezentate în capitolele anterioare au urmărit un singur scop (obţinerea unui beneficiu maxim sau minimizarea cheltuielilor totale etc. pe lângă obţinerea unui profit maxim. pot fi întâlnite deseori situaţii în care trebuie urmărite mai multe obiective în acelaşi timp. reducerea costurilor de depozitare. Avem astfel: x2 + 3x3 ≥ 110. asigurarea preţurilor stabile. în pro-blema planificării producţiei. pe lângă obţinerea unui profit maxim. Pentru verificarea condiţiei de pozitivitate.). Problemă rezolvată  f (x) = 4x1 + x2 + 2x3 + 10 → max    2x1 + x2 + 3x3 − 15      x + x = 30 1 3  x3 ≥ 20   −x + x + x ≥ 60  2 3  1    x ∈ R3 + Verificarea condiţiei de pozitivitate pe mulţimea soluţiilor posibile ale numitorului este o problemă dificilă. Programare multicriterială 157 atunci numărătorul se va înmulţi cu (-1) şi se va rezolva problema:  g(x) = −f (x) = −(c. Problema poate fi rezolvată cu metodele prezentate. atunci se obţine un model cu mai multe funcţii de scop. x) − c0 → max    (d. trebuie ţinut cont ca efectul asupra mediului să fie minim sau.i i i “JATEK” — 2005/3/11 — 10:29 — page 157 — #157 i 6. Dacă.

n . diferită de noţiunea de soluţie optimă studiată până acum. Cooper [Char] au deschis calea spre cercetarea programării de scop (goal programming). unde: S = {x ∈ Rn | Ax = b. Determinarea mulţimii S.  f (x) = Cx → ” max / min ”  Ax = b   x≥0 unde C ∈ Mq.W. Un studiu intensiv al programării multicriteriale începe în cea de a doua parte a anilor ’70. date asupra variabilelor independente se numeşte model de optimizare multicriterială cu restricţii.W.n (R). mai ales în cazul în care este mulţime mărginită nu este dificilă. liniară. Determinarea mulţimii Sp reprezintă o problemă mai complexă. o primă problemă a reprezentat-o formularea noţiunii de optim. Vom nota mulţimea soluţiilor posibile cu: Sp = {xp | Cxp ≥ Cx.2. A ∈ Mm. Kuhn şi A. Definiţia 6. deoarece nu neapărat există un punct xp pentru care Cxp > Cx pentru orice x ∈ S. un astfel de model a fost formulat la începutul anilor ’50 de către H. A. b ∈ Rm se numeşte model de optimizare multicriterială. Această noţiune a fost introdusă în economie şi se bazează pe următorul principiu: factorul de decizie ia o decizie dând prioritate acelor decizii pentru care este adevărat x ∈ S} i i i i . maxim) nu poate fi definită ca şi în cazul spaţiului real unidimensional. x ≥ 0}. Modele rezolvabile cu algoritmul simple Pentru prima dată. Definiţia 6.W. f : D ⊆ Rn → Rq . Mulţimea Rn nu este o mulţime total ordonată. Problema de optimizare cu restricţii: f (x) → ” max / min ” x∈S unde f : D ⊆ Rn → Rq iar S este o mulţime determinată de un număr finit de restricţii. astfel noţiunea de optim (minim.4.i i i “JATEK” — 2005/3/11 — 10:29 — page 158 — #158 i 158 6. Noţiunea des folosită şi extrem de utilă este cea introdusă de Pareto pe care o vom prezenta în continuare. Charnes şi W. Pentru studiul rezolvabilităţii problemelor multicriteriale este necesară introducerea noţiunii de soluţie Pareto-optimă sau soluţie eficientă.4.1. În studiul modelelor multicriteriale. Tucker [Kuh]. Peste zece ani.

adică x0 ∈ S. Fie fk = (ck .3. Demonstraţie. .1. Se numeşte soluţie eficientă sau soluţie Pareto-optimă orice punct xp ∈ Sp pentru care nu există un alt punct x ∈ Sp . demonstraţia este imediată.4.4.4. i i i i . astfel încât să avem f (x ) ≥ f (xp ) şi f (x ) = f (xp ). deoarece gmax (x) = g(xe ) ⇔ Cx0 = Cxe . atunci este soluţie posibilă. Cx ≥ Cxe .3. x) ≥ (ck . Dacă x0 este soluţie optimă pentru modelul considerat.4. . o componentă a funcţiei de scop din modelul (6. Dar.i i i “JATEK” — 2005/3/11 — 10:29 — page 159 — #159 i 6.4. Dacă x0 ∈ S este o soluţie optimă unică a problemei:  fk (x) → max  Ax = b   x≥0 atunci x0 este soluţie eficientă a problemei (6. Se poate formula o condiţie suficientă de existenţă a punctului eficient. q dar pentru cel puţin un j ∈ {1.2) Demonstraţie. q} fixat. Programare multicriterială 159 că nu există alta mai bună. q Teorema 6. rezultă că nu există în S soluţie mai bună decât xe . atunci acea decizie nu poate fi considerată optimă. atunci xe este punct eficient. xe )    x ≥ 0 k=1 fk (x). J. adică nu există x ∈ Sp astfel încât fj (x ) ≥ fj (xp ) pentru orice j = 1.4. . x ≥ 0} şi Cx0 ≥ Cxe .4. Fie modelul (6. Philip în 1972 [Phi] formulează următorul rezultat: Teorema 6.2. admite soluţie optimă şi gmax (x) = g(xe ). x = xp . în sensul că varianta nouă este la fel de bună.2). x). unde: S = {x ∈ Rn | Ax = b. Pe baza definiţiei 6. .4. Dacă se poate realiza o "îmbunătăţire de tip Pareto". şi totuşi din cel puţin un aspect este indiscutabil mai bună. . q} are loc fj (x ) > fj (xp ). Definiţia 6. . k ∈ {1. . .2) şi funcţia g(x) = Dacă modelul:  g(x) → max    Ax = b (ck .

1. 0) 8 x1 Figura 6.2.i i i “JATEK” — 2005/3/11 — 10:29 — page 160 — #160 i 160 Problemă rezolvată 6. 0 este soluţie optimă în cazul în care considerăm problema cu f2 (x) = x1 + x2 → max . Analizând figura 6. Dintre cele două soluţii. 7/5) B(9/2. pe oricare am alege-o ca soluţie pentru modelul multicriterial. Modele rezolvabile cu algoritmul simple   f (x) = Cx =      x + 4x2 ≤ 8  1  2x1 + 3x2 ≤ 9     x1 ≥ 0. valoarea funcţiei de scop a problemei considerate va avea cel mult valorile lui f (x1 ). 7 este soluţie optimă unică pentru f1 (x) = 9x1 + 16x2 şi punc5 5 9 tul x2 = B 2 . Pentru orice altă soluţie posibilă. x2 ≥ 0 9x1 + 16x2 x1 + x2 → max Vom determina mulţimea punctelor eficiente pe cale grafică. ar fi în defavoarea celeilalte funcţii obiectiv. Prin urmare punctele x1 respectiv x2 sunt soluţii eficiente. f (x2 ) sau valori mai mici. putem observa: x2 (d2) 3 (d1) 2 1 0 A(12/5. să se verifice dacă x1 este punct eficient! i i i i .4. Folosind teorema 6.1: x1 = A 12 .

6 j 161 Rezolvăm cu metoda celor două faze. se rezolvă cu algoritmul simplex primal modelul:  h(x) = u1 + u2 → min    x + 4x + x = 8  1  2 3   2x + 3x + x = 9 1 2 4  9x1 + 16x2 − x5 + u1 = 44   x + x − x + u = 19/5  2 6 2  1   x ≥ 0. în prima fază de lucru.4. j i i = 1. j = 1. u ≥ 0. 2 1  2 A=  9 1  A1 A2 A3 A4 4 3 16 1 1 0 0 0 0 1 0 0 A5 A6 u1 u2 0 0 -1 0 0 0 0 -1 0 0 1 0  0 0   0  1 Efectuând calculele. 6.i i i “JATEK” — 2005/3/11 — 10:29 — page 161 — #161 i 6. se obţin următoarele tabele simplex: i i i i . x ≥ 0 1 2 Forma standard a problemei este:  −g(x) = −10x1 − 17x2 → min    x + 4x + x = 8  1  2 3   2x + 3x + x = 9 1 2 4 9x1 + 16x2 − x5 = 44    x + x − x = 19/5  1 2 6    x ≥ 0. Programare multicriterială Construim modelul:  g(x) = f1 (x) + f2 (x) = 10x1 + 17x2 → max    x + 4x ≤ 8  1  2   2x + 3x ≤ 9 1 2 9x1 + 16x2 ≥ f1 (x1 ) = 44    x + x ≥ f (x1 ) = 19/5  1 2 2    x . Astfel. j = 1.

i i i “JATEK” — 2005/3/11 — 10:29 — page 162 — #162 i 162 1. A1 A2 A5 A6 ∗ ∗ 2. u1 A3 A5 A6 ∗ ∗ 4. A1 A3 A5 A6 ∗ ∗ 3. A2 A5 -1/7 A6 9/7 ∗ 7/5 ∗2. A4 A6 ∗ ∗ A2 1 2 7/5 A4 1/7 5/7 0 0 A5 7 5 0 A1 1/7 -16/7 12/5 84/5 A1 -1 -3 12/5 A3 3/7 -20/7 0 0 A3 -3 -5 0 ∗ ∗ -7 -4 -239/5 ∗ ∗ i i i i . u2 A3 A6 ∗ ∗ A3 1 4 0 0 8 2 A2 1/4 1/4 0 0 2 8 A2 -1/20 9/20 1/20 0 7/5 28/9 A2 -9/7 -1/7 9/7 7/5 A4 2 3 0 0 9 3 A4 5/4 -3/4 0 0 3 12/5 A4 -1/4 1/4 1/4 0 0 0 6. Modele rezolvabile cu algoritmul simple u1 9 16 -1 0 44 44/16 u1 5 -4 -1 0 12 12/5 A1 1/5 -4/5 -1/5 0 12/5 A1 16/7 1/7 -16/7 12/5 u2 1 1 0 -1 19/5 19/5 u2 3/4 -1/4 0 -1 9/5 12/5 u2 -3/20 7/20 3/20 -1 0 0 A3 20/7 3/7 -20/7 0 ∗ 10 17 -1 -1 239/5 ∗ ∗ 23/4 -17/4 -1 -1 69/5 ∗ ∗ -23/20 7/20 3/20 -1 0 ∗ ∗ -1 0 0 0 ∗ ∗ 1 1 -239/5 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ A4 -5/7 1/7 5/7 0 ∗ ∗ Faza a doua de lucru: 1.

Metodele numerice pentru determinarea soluţiilor eficiente sunt: (a) metoda ponderilor. Aceste metode asociază problemei multicriteriale o problemă de programare liniară obişnuită. Programare multicriterială x0 = x1 = (12/5. (d) principiul programării a compromisului. Problema care apare în general este legată de faptul că funcţiile fk . Pentru înlăturarea acestei deficienţe. k = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 163 — #163 i 6. nu dă soluţie pentru problema decizională (v. în general. (b) metoda lexicografică. q sunt de diferite mărimi şi dimensiuni şi sunt definite pe diferite domenii. se recomandă folosirea funcţiei de scop: q (ci . Stahl [Sta] (1991)). −239 5 = g(x1 ) = g(x0 ) = 239 5 163 Mulţimea soluţiilor Pareto-optimale este infinită şi generarea acestei mulţimi. q în general este subiectivă. problema multicriterială se transformă într-o problemă de optimizare liniară cu parametri (parametrizarea funcţiei de scop). (a) Metoda ponderilor Cu această metodă se asociază ponderi de importanţă componentelor funcţiei vector f. 7/5) gmax = − deci x1 este punct eficient.4. Astfel se urmăreşte optimizarea funcţiei: q g(x) = i=1 pi fi (x) → max pe mulţimea soluţiilor posibile. x) − mi g(x) = pi Mi − mi i=1 unde mi = minx fi (x). Cu metoda ponderilor. Determinarea ponderilor pi . i i i i . (c) metoda marginilor. Mi = maxx fi (x). i = 1.

5. i = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 164 — #164 i 164  g(x) =  Ax = b   x≥0 6. Soluţia problemei (6.2). x0 este punct eficient pentru problema (6. q Sunt adevărate următoarele afirmaţii: i i i i . cum ar fi [Char]. . avem: q q pi (ck . x) ≥ (ck .4. x0 ) pentru orice k = 1.4.14) notată cu x0 nu este soluţie eficientă.14) cu parametri pi > 0. în care se studiază problema dacă o soluţie posibilă x0 a modelului (6. x) − dk = (ck .2).2) este sau nu soluţie eficientă şi formulează criterii de existenţă a soluţiilor eficiente. adică există o soluţie posibilă x. Fie x0 ∈ Rn un punct care verifică inegalităţile Ax = b. k = 1.14) prin urmare am ajuns în contradicţie cu ipoteza. .4.4. Sunt lucrări. [Ecke]. q şi există cel puţin un k ∈ {1. [Gal]. Demonstraţie.4. Fie x0 o soluţie posibilă a problemei (6. [Cha]. dk ≥ 0.2). Teorema 6. [Ise]. k = 1. x) > i=1 i=1 pi (ck . Pentru studiul procedurilor computaţionale se recomandă lucrările: [Phi]. dacă şi numai dacă există p0 = (p0 . Modele rezolvabile cu algoritmul simple q i=1 pi fi (x) → min / max (6. Considerăm problema:  q  d =  0 dk → max     k=1 (ck . x0 ) adică x0 nu este soluţie optimă pentru modelul (6.3. . Teorema 6. corespunzători şi adunându-le. . p0 ) > 0 astfel încât x0 pentru p = p0 să fie soluţie optimă q 1 pentru problema (6. .4.14). x ≥ 0. q fixaţi este soluţie eficientă pentru problema multicriterială (6. [Eck]. x0 ). . .4. Presupunem că soluţia problemei (6. x) > (ck .14) Teorema 6. q} astfel încât: (ck . x0 ). Înmulţind cu parametri pk . astfel încât să avem: (ck . .4. q   Ax = b     x ≥ 0.

2) nu admite soluţii eficiente.i i i “JATEK” — 2005/3/11 — 10:29 — page 165 — #165 i 6. j = 1. i i i i . Continuăm acest procedeu până când obţinem soluţia optimă. 2 → max (b) Metoda lexicografică În cazul acestei metode. j = 1. Să se determine extremele şi soluţiile eficiente problemei:     3x1 + x2 + 2x3 + x4    f (x) = Cx =  x − x + 2x + 4x  → max    1 2 3 4     −x1 + 5x2 + x3 + 2x4 2x1 + x2 + 4x3 + 3x4 ≤ 60    3x + 4x + x + 2x ≤ 60  1 2 3 4    x ≥ 0.4. Probleme propuse 1. 165 (b) dacă x0 este soluţie optimă nebanală. atunci vom alege decizia optimă după următoarea componentă. atunci mo-delul (6. Programare multicriterială (a) x0 este soluţie eficientă. dacă şi numai dacă d0 = 0. Să se determine mulţimea punctelor eficiente pentru:   x1 + 2x2 f (x) = Cx =     3x1 − x2    3x1 + x2 ≤ 9   x + 3x2 ≤ 19  1  x1 + x2 ≤ 9      x1 − x2 ≤ 3    xj ≥ 0. Dacă avem o singură decizie optimă după componenta cea mai importantă. 4 j (Admite 9 extreme dintre care 6 sunt soluţii eficiente) 2. componentele funcţiei de scop sunt scrise în ordinea priorităţilor. Dacă avem optim multiplu. atunci x0 este soluţie eficientă. atunci aceasta va fi soluţie optimă pentru modelul multicriterial. (c) dacă modelul nu are un număr finit de soluţii optime.4.

Problemă rezolvată 1. i ∈ B sunt negative în cele q coloane ale sectorului 7. atunci putem distinge 4 situaţii: (A) V este mulţime ordonată. d ∈ R   x ≥ 0. Să se determine optimul absolut al problemei:   2x1 + 3x2 f (x) = Cx =     x1 + 2x2 + x3  x + x2 + x3 ≤ 4  1  x1 + 2x2 − x3 ≤ 6     x ∈ R3 + → max i i i i . sectorul 7 va fi format din q coloane (este dat de numărul componentelor lui f ). Se aplică algoritmul simplex. iar pentru celelalte se vor stabili margini inferioare "acceptabile". adică modelul admite optim absolut. Modele rezolvabile cu algoritmul simple Se va alege o componentă a funcţiei de scop.n În general se aplică această metodă în cazul în care pentru factorul de decizie doar un simplu scop este prioritar. (d) Metoda numerică care se bazează pe principiul programării compromisurilor urmăreşte determinarea unei soluţii optime "absolute". x) → max    Ax = b q−1 ˆ ˆ Cx ≥ d. dacă se notează mulţimea valorilor funcţiei f pe mulţimea soluţiilor posibile cu: V = {f (x) | x ∈ S}. În tabelul simplex.n (R). În concluzie. soluţie optimă pentru toate componentele lui f. Dacă diferenţele di . C = C \ {c } ˆ qj j=1. atunci soluţia bazică este optim absolut. Astfel se va rezolva modelul liniar:  fk (x) = (ck . iar pentru celelalte este de ajuns atingerea unui nivel minim.i i i “JATEK” — 2005/3/11 — 10:29 — page 166 — #166 i 166 (c) Metoda marginilor 6. C ∈ Mq−1. Practic se va determina soluţia cea mai apropiată de cea "ideală".

Programare multicriterială Forma standard a problemei este:  −f1 (x) = −2x1 − 3x2 → min    −f2 (x) = −x1 − 2x2 − x3 → min   x + x2 + x3 + x4 = 4  1  x1 + 2x2 − x3 + x5 = 6     x ∈ R5 + A1 A2 A3 A4 A= 1 1 1 2 1 -1 1 0 A5 0 1 167 Baza B = {A4 . i i i i . În ultimele două coloane sunt calculate diferenţele di corespunzătoare funcţiilor de scop. Aplicăm algoritmul simplex primal. deci: x0 = (0. vom obţine tabelele: 1. 2/3) este optim absolut fmax = (10. pe rând. A4 1/2 -1/2 3/2 1 2/3 A3 1/3 -1/3 2/3 2/3 ∗ 1/2 -3/2 3/2 -9 ∗ ∗ 0 -1 -1 -10 ∗ Diferenţele în ultimele două coloane sunt negative.i i i “JATEK” — 2005/3/11 — 10:29 — page 167 — #167 i 6.4. A1 A2 A3 ∗ ∗ 2. A1 A5 A4 ∗ ∗ A4 1 1 1 4 4 A5 1 2 -1 6 3 A2 1/2 1/2 -1/2 3 A2 2/3 1/3 1/3 10/ 3 ∗ 2 3 0 0 ∗ ∗ 1 2 1 0 ∗ ∗ 0 -1 2 -6 ∗ ∗ -2/3 -1/3 -4/3 -22/3 ∗ 22/3). A1 A5 A3 ∗ ∗ 3. Efectuând calculele. A5 } este bază primal admisibilă. 10/3.

d2 sunt negative.2) admite optim condiţionat. Printre diferenţele di cores-punzătoare funcţiei de scop f3 există o valoare pozitivă.i i i “JATEK” — 2005/3/11 — 10:29 — page 168 — #168 i 168 6. A1 A5 A4 ∗ ∗ A4 1/2 -1/2 3/2 1 2/3 A3 1/3 -1/3 2/3 2/3 1 1 A4 1 1 1 4 4 1 2 A5 1 2 -1 6 3 1 -1 ∗ 2 3 0 0 ∗ ∗ 1/2 -3/2 3/2 -9 ∗ ∗ 0 -1 -1 -10 ∗ 1 0 ∗ 1 2 1 0 ∗ ∗ 0 -1 2 -6 ∗ ∗ -2/3 -1/3 -4/3 -22/3 ∗ ∗ 0 1 2 0 ∗ ∗ -1/2 -1/2 5/2 -3 ∗ ∗ -4/3 1/3 -5/3 -14/3 ∗ A5 0 1 A2 1/2 1/2 -1/2 3 A2 2/3 1/3 1/3 10/ 3 x0 = (0 10/3 2/3) este optim condiţionat. Să se arate că următorul model are optim condiţionat şi să se determine acest optim!   f1 (x) = 2x1 + 3x2 → max −f1 (x) = −2x1 − 3x2 → min       f (x) = x + 2x + x → max −f (x) = −x − 2x − x → min  2  2   1 2 3 1 2 3     f (x) = x − 2x → max −f (x) = −x − 2x → min 3 2 3 3 2 3   x1 + x2 + x3 ≤ 4 x1 + x2 + x3 + x4 = 4     x + 2x − x ≤ 6 x + 2x − x + x = 6   2 3 2 3 5  1  1     x ∈ R3 x ∈ R5 + + Formulând forma standard a problemei propuse spre rezolvare. i i i i . Modele rezolvabile cu algoritmul simple (B) Există V ⊂ V o submulţime ordonată.4. deoarece diferenţele di cores-punzătoare funcţiilor de scop d1 . putem scrie matricea restricţiilor: A1 A2 A3 A4 A= 1. A1 A5 A3 ∗ ∗ 3. A1 A2 A3 ∗ ∗ 2. În acest caz problema (6. 2.

7 i i i i . j = 1.4.i i i “JATEK” — 2005/3/11 — 10:29 — page 169 — #169 i 6. Să se arate că problema admite optim condiţionat!  f1 (x) = 2x1 + 3x2 + 2x3 + 2x4 → max    f2 (x) = 4x1 + 6x2 + 5x3 + 4x4 → max     −f3 (x) = −x1 − 5x2 − x3 − 3x4 → max   x + x2 + x4 + x5 = 100  1  x2 + x3 + x4 + x6 = 80     x1 + x2 + x3 + x7 = 50     xj ≥ 0. 3 j 2. j = 1. Programare multicriterială 169 fmax = (10 22/3 14/3) (C) Mulţimea V este parţial ordonată. dacă toate punctele lui S sunt puncte eficiente. Probleme propuse spre rezolvare 1. dacă sunt puncte eficiente pe mulţimea părţilor lui S. (D) V nu este mulţime ordonată. Să se verifice dacă problema admite optim absolut! Punctul x = (0 3 0) este punct eficient pentru acest model?  f1 (x) = 3x1 + 2x2 → max    f (x) = 2x + x + x → max  2  1 2 3   f (x) = x − 2x → max 3 1 3 x1 + x2 + x3 ≤ 4    x + 2x − x ≤ 6  1 2 3    x ≥ 0.

i i i “JATEK” — 2005/3/11 — 10:29 — page 170 — #170 i 170 6. Modele rezolvabile cu algoritmul simple i i i i .

Definiţia 7.i i i “JATEK” — 2005/3/11 — 10:29 — page 171 — #171 i Capitolul 7 Problema de transport În acest capitol vom studia o problemă particulară de programare liniară. Nodul A se numeşte nod de intrare în reţea. se poate formula următoarea problemă: Fie m centre de aprovizionare (depozitare) notate cu A1 . Funcţia obiectiv va reprezenta cheltuielile totale. Bn . Frank Hitchcock [Hit] a formulat o astfel de problemă pentru organizarea transportului maritim. atunci matematic a problemei este un model de optimizare liniară cu restricţii (vezi paragraful 1. . Dacă un produs omogen este depozitat în cantităţile ai . . atunci se cere să se organizeze transportul astfel încât cheltuielile de transport să fie minime. m în centrele Ai .1 Formularea problemei. . iar costurile unitare de transport de la centrul Ai la beneficiarul Bj sunt egale cu cij . Pentru prima dată.1. în 1941. Proprietăţi generale Din punct de vedere economic. .3. numit reţea de transport. . prin urmare scopul este minimizarea acestora. Am şi n centre de consum (beneficiari) notate cu B1 . . n. . iar nodul B. j = 1. nod de ieşire din reţea.). . Problemei propuse îi putem un graf orientat. Se numeşte problemă de transport neechilibrat următorul 171 i i i i . Dacă notăm cu xij cantitatea de produs care va fi transportată de la furnizorul i la consumatorul j. şi este cerut de către beneficiari în cantitatea bj .1. 7. i = 1.

j = 1. j = 1. iar următoarele n restricţii i=1 xij ≥ bj . m i = 1.   i=1 n j=1 (7. n   m  n     ai ≥ bj . m arată că totalul cerut de consumatori de la furnizorul i nu poate depăşi disponibilul acestuia. n   i=1     xij ≥ 0. j = 1. m. i = 1. n se referă la faptul că totalul distribuit de către furnizori trebuie să fie cel puţin egal cu necesarul consumatorilor.1) Primele m restricţii j=1 xij ≤ ai . n     cij ≥ 0. j = 1. i = 1.i i i “JATEK” — 2005/3/11 — 10:29 — page 172 — #172 i 172 7. i = 1. i i i i . m    j=1   m  xij ≥ bj .Problema de transport a1 A1 B1 b1 ai A am Ai Bj bj B bm Am Bn modelul:  m n   f (x) = cij xij → min     i=1 j=1   n      xij ≤ ai . Restricţiile: m n ai ≥ i=1 j=1 bj . m. cij ≥ 0 arată că disponibilul total este cel puţin egal cu necesarul total.

prin urmare nu se transportă. j = 1. Dacă m ai = n bj .2. bj ≥ 0. Definiţia 7. Formularea problemei. i=1 j=1 atunci este problemă de transport echilibrată. o problemă neechilibrată poate fi redusă întotdeauna la o problemă echilibrată prin introducerea unor centre fictive. Observaţie. i = 1. Observaţie.2) b) Efectuând transformări echivalente. n (7. i i i i . j = 1. Proprietăţi generale 173 Se poate observa uşor că acest model numit model liniar de transport este o problemă de programare liniară cu m + n restricţii şi m · n variabile. i = 1. m n Dacă i=1 ai > j=1 bj . Justificarea faptului că se poate considera costul de transport egal cu zero este evidentă: neavând consumator.i i i “JATEK” — 2005/3/11 — 10:29 — page 173 — #173 i 7. m. iar costurile de transpot pot fi consid- erate egale cu zero. i = 1. Modelul de transport fiind un model de programare liniară rezultă că proprietăţile prezentate în acest sens rămân valabile.1. deci nu există cheltuieli în acest sens. a) Modelul de transport echilibrat este:  m n   f (x) = cij xij → min     i=1 j=1   n      xij = ai . m. Dacă m ai > n bj sau m ai < n bj . m    j=1   m  xij = bj . j = 1. atunci i=1 j=1 i=1 j=1 problema de transport se numeşte neechilibrată. n   i=1     xij ≥ 0. Dacă m n ai < i=1 j=1 bj . cu costurile unitare de transport nule. nu se consumă produsul sau produsul nu există în disponibilul fictiv. atunci se va introduce un furnizor fictiv al cărui n m disponibil este egal cu j=1 bj − i=1 ai . atunci se va introduce un consumator fictiv (Bn+1 ) m n al cărui necesar este egal cu i=1 ai − j=1 bj .1. ai ≥ 0. n  ¯  m  n     ai = bj    i=1  j=1   cij ≥ 0.

Teorema 7.1. i = 1. Dacă ai < ∞ şi bj < ∞. j=1 i = 1. Scriind explicit primele m : n xij = ai . m ai j=1 i=1 Forma matriceală a problemei (7.1. Orice problemă de tip (7. vom studia proprietăţile acestei matrici.Problema de transport Forma specială a problemei a condus însă şi la unele rezultate particulare în ceea ce priveşte soluţionarea problemei. Demonstraţie. m ⇔ x11 + x12 + · · · + x1n = a1 i i i i .i i i “JATEK” — 2005/3/11 — 10:29 — page 174 — #174 i 174 7.2) admite întotdeauna o soluţie. n este soluţie pentru modelul (7. În continuare. Se arată uşor că: xij = ai bj . j = 1.) Putem verifica că aceste rapoarte definesc o soluţie mărginită: m m m ai bj xij = i=1 m bj = i=1 m ai = bj . m. n.i m i=1 ai = 1.2. Matricea restricţiilor are o structură specială. i = 1. n ai i=1 i=1 n n ai i=1 ai xij = j=1 m bj = ai . j = 1. (7. m. atunci soluţia de bază este mărginită.3) unde A este matricea coeficienţilor din cele (m + n) restricţii.2) este:  T  c · x → min Ax = b f (x) =  x ≥ 0. j = 1.

. . bn )T . n pot fi scrise: aij = ei ej unde ei ∈ Rm ej ∈ Rn .1. x21 . . . . . . xmn ). . i = 1. x2n . a2n . . b = (a1 . am1 . m.i i i “JATEK” — 2005/3/11 — 10:29 — page 175 — #175 i 7. . Formularea problemei. .. x1n . a21 . n ⇔ x11 + x21 + · · · + xn1 = b1 x12 + x22 + · · · + xn2 = b2 . . x = (x11 . . i=1 j = 1. . . b1 . .. amn ) componentele aij ∈ Rn+m . . . xm1 + xm2 + · · · + xmn = am respectiv următoarele n restricţii: m xij = bj . xm1 . . i i i i . Proprietăţi generale 175 x21 + x22 + · · · + x2n = a2 . . . a1n . j = 1... am . . xm1 + xm2 + · · · + xmn = bn putem completa următorul tabel: x11 1 0 0 1 0 0 c11 x12 1 0 0 0 0 x1j 1 0 0 0 1 0 c1j x1n 1 0 0 0 0 1 c1n xi1 0 1 0 1 0 0 ci1 xij 0 1 0 0 1 0 cij xin 0 1 0 0 0 1 cin xm1 0 0 1 1 0 0 cm1 xmj 0 0 1 0 1 0 cmj xmn 0 0 1 0 0 1 cmn u1 ui um v1 vj vn a1 ai am b1 bj bn c12 Adică în matricea restricţiilor: A = (a11 . . .

.. am Valoarea actuală xij a variabilei xij dintr-o anumită iteraţie se va introduce astfel: i i i i . Astfel B ∈ Mm+n−1 este triunghiulară de unde rezultă că detB = 1 = 0 nesingulară. . .3..2. Dar pentru m ≥ 2.. care conţine datele numerice ale problemei. mn). atunci există cel puţin o soluţie optimă a problemei de transport (7...... . Teorema 7.. Observaţie.. n. Alegem coloanele: 1. . Din m ai = n bj rezultă că suma primelor m linii ale matricei A i=1 j=1 este egală cu suma celorlalte n linii. j = 1. .i i i “JATEK” — 2005/3/11 — 10:29 — page 176 — #176 i 176 7.1 Proprietăţi ale matricei coeficienţilor rang A = m + n − 1. prin definiţie . ..1.. cmj bj .2) este nedegenerată. deci rezultă că rang A = m + n − 1.. Teorema 7.. Dacă ai . . 3. Orice minor al matricei A are valoarea −1.2) care are toate componentele întregi. .. i = 1. . n ≥ 2 avem m + n ≤ mn rezultă că rang A ≤ m + n.1.. Modele speciale de programare liniară.2) i se poate asocia un tabel numit tabel de transport.... n sunt întregi..3.. dacă numărul componentelor sale nenule este egal cu (m + n − 1) şi este degenerată. .. de unde rezultă că rang A ≤ m + n − 1.. c1j .. Corolar. În fiecare celulă (i. cm1 b1 . O soluţie de bază a problemei (7. m şi bj . (2n + 1).. 2. cij . c11 . Acum formăm o matrice nesingulară B.. .2 Proprietăţi grafice ale problemei de transport Problemei de transport (7. Demonstraţie. (n + 1). . . ai . .1. Semnificaţia teoremei constă în aceea că o soluţie de bază a unei probleme liniare de tip transport nu poate avea mai mult de m + n − 1 componente nenule. j) scriem costul unitar de transport cij .. are loc rang A ≤ min(m + n.... Definiţia 7. Problema de transport 7. 7.. cmn bn a1 . Deoarece A ∈ Mm+n... . de ordin m + n − 1. ci1 .1.. (m − 1)n + 1... în caz contrar. 0 sau 1 (A este total unimodulară)...mn (R). .. .. cin . c1n .1. Tabelul are m + 1 linii şi n + 1 coloane.

m i. j m. m 2.i i i “JATEK” — 2005/3/11 — 10:29 — page 177 — #177 i 7. Se numeşte Π − graf un subgraf parţial al grafului neorientat Γ.1. j) cu xij = 0 se numeşte celulă bazică. i i i i . 1 m. m m. în caz contrar o vom numi celulă liberă.4.5. 2 m. j 2. 2 i. 1 2.1. Celula (i.1. 2 2. j i.1 1. 2 1. Proprietăţi grafice ale problemei de transport 177 cij xij Definiţia 7. Tabelului de transport îi putem asocia un graf neorientat Γ: 1. j 1. 1 i. n Definiţia 7.

j m. n Definiţia 7. Problemei de transport îi putem asocia graful G: A1 B1 Ai Bj Am Bn Observaţie.i i i “JATEK” — 2005/3/11 — 10:29 — page 178 — #178 i 178 7. m m. Modele speciale de programare liniară. 1 i. 2 2. 2 m. j 2. Problema de transport De exemplu: 1. 1 2. i i i i . 1 m.1.6.1 1. m i. Între graful G construit astfel şi graful Γ se poate stabili o cores-pondenţă bijectivă. m 2. Un Π − graf care este un lanţ (ciclu) elementar având cel mult o muchie în fiecare linie sau coloană (a tabelului de transport) se numeşte µ-ciclu. j 1. 2 1. 2 i. j i.

2) . Folosind algoritmul DSBI. j) situată în prima linie şi prima coloană (din colţul nord-vest al tabelului) netăiată. 7. Observaţie Metoda [A] este uşor de aplicat. i i i i . se va putea obţine o soluţie bazică. j).i i i “JATEK” — 2005/3/11 — 10:29 — page 179 — #179 i 7.se fixează o celulă (i. adică: xij = min(ai .se va continua algoritmul (se va trece la pasul (1)) până când se vor reduce toate liniile şi coloanele din tabelul de transport.4. se alege celula (i. 3) .1. j) netăiată corespunzătoare costului (cij ) minim din tabel. În continuare. O condiţie suficientă ca un sistem de vectori coloană ai matricei A să formeze un sistem liniar dependent este ca mulţimea celulelor tabelului de transport corespunzătoare acestor coloane să formeze un µ-ciclu. Coeficienţii combinaţiei nule ai acestui sistem de vectori sunt alternativ +1 şi −1. Algoritmul DSBI: 1) . dacă se adoptă un sens oarecare de parcurgere a µ-ciclului.3 Determinarea unei soluţii de bază Pentru rezolvarea problemei de transport cu algoritmul simplex este necesar obţinerea unei soluţii de bază iniţială. dacă xij = ai = bj atunci la alegere se va lua una din cazurile de mai sus. bj ) dacă xij = ai atunci se va elimina linia i şi se va atribui lui bj valoarea bj = bj − xij . Metodele cele mai cunoscute şi utilizate sunt: [A] Metoda colţului de nord-vest (N-V): se selectează celula (i. j) oarecare. [B] Metoda costului minim: la fiecare pas. dacă xij = bj atunci se va elimina coloana j şi se va atribui lui ai valoarea ai = ai − xij . Metoda poate fi particularizată prin diverse moduri de selectare a celulei (i.se atribuie variabilei xij valoarea maximă pe care o poate lua. prezentăm o metodă generală de construcţie a soluţiilor bazi-ce: algoritmul DSBI.1. însă metoda [B] este mult mai utilă privind numărul de iteraţii în algoritmul de transport.1. Determinarea unei soluţii de bază 179 Teorema 7.

combinaţia liniară a vectorilor corespunzători celulelor din µ − ciclu este egală cu zero (fiind un sistem liniar dependent). Evident. iar coeficienţii combinaţiei liniare sunt pe rând egale cu −1 şi 1 (vezi teorema 7. adică un poligon cu vârfurile situate în celula liberă şi într-o submulţime a lui B având cel mult o latură în fiecare linie. ne propunem să alegem din această mulţime un sistem liniar dependent format dintr-un număr minim de vectori (elemente).i i i “JATEK” — 2005/3/11 — 10:29 — page 180 — #180 i 180 7.1. j1 ). i i i i . În continuare.4). 2. 2 . respectiv procedeul de îmbunătăţire a soluţiei (adică criteriul de intrare şi de ieşire din bază) din algoritmul simplex.. . atunci µ − ciclul construit se poate vedea mai jos. j) ∈ I × J|aij ∈ A} unde I = {1. În acest sens. − eit ej1 = 0.4 Adaptarea algoritmului simplex Deoarece modelul liniar de transport are o formă specială. Deci mulţimea formată din elementul h ∈ R şi elementele lui B formează un sistem liniar dependent. adică se asociează în mod unic unei celule libere şi este format dintr-un număr minim de elemente. m} şi J = {1. Se poate demonstra că µ − ciclul asociat unei celule libere verifică această proprietate. Vom nota cu R mulţimea celulelor libere (coloanale corespunzătoare acestor celule nu intră în formarea bazei). în această mulţime. sunt m + n − 1 elemente. Fireşte.4.4).1. dacă vectorului h îi corespunde celula liberă (i1 . . Astfel. respectiv coloană a tabelului de transport. în cazul cel mai nefavorabil. Această mulţime o obţinem deodată cu determinarea soluţiei bazice iniţiale. . luăm toate elementele din mulţime. n} sunt mulţimi de indici. În continuare. . Problema de transport 7. . Modele speciale de programare liniară. . vom adapta algoritmul simplex. iar pătratele celulele bazice. algoritmul DSBI din 7. unde cercul reprezintă celula liberă. În construcţia µ−ciclului avem în vedere că trebuie să obţinem un poligon cu nodurile în celulele bazice având cel mult o latură în fiecare linie şi coloană.. prima dată sunt necesare câteva precizări. Avem la dispoziţie o soluţie bazică iniţială necesară în aplicarea algoritmului simplex(v. . Evident putem alege un astfel de sistem. algoritmul simplex. Pe baza teoremei 7. Va trebui să adaptăm apoi condiţia de optim.1. Fie mulţimea celulelor bazice: B = {(i.1. Putem scrie: ei1 ej1 − ei1 ej2 + ei2 ej2 − ei2 ej 3 + . poate fi modificat. putem afirma că la fiecare celulă liberă din R corespunde în mod unic un µ − ciclu. aplicat în general la rezolvarea modelelor liniare cu restricţii.

Dacă din µ-ciclu scoatem o celulă. . j2 i2. deoarece fiecare nod este într-o linie (coloană). Luăm chiar valorile actuale ale variabilelor independente drept coeficienţi ai combinaţiei liniare.   . j3 i t. j1 i1. . i i i i . . . t} respectiv ejl pentru l ∈ {1. r} apar într-un număr par. . atunci vom avea un sistem liniar independent de vectori. deoarece vectorii eik . Astfel se obţine un vector a1 b1 = xij2 ¯ ei1 ej2 + xi2 j2 ¯ ei2 ej2 + xi2 j3 ¯ ei2 ej3 + . .   .1. încât putem scrie: Q ei1 ej1 −Q ei1 ej2 +Q ei2 ej2 −Q ei 2 ej 3 + Q. pentru k ∈ {1.. . . Prin urmare avem două din fiecare. j2 i2.  .. . În continuare. bazici este egală cu  m  =  b1  b    .i i i “JATEK” — 2005/3/11 — 10:29 — page 181 — #181 i 7. + xit j1 ¯ eit ej1 Se poate verifica  această combinaţie liniară a tuturor vectorilor uşor că a1  . Adaptarea algoritmului simplex 181 i1. bn Revenim la combinaţia liniară nulă pe care o vom înmulţi cu o cantitate pozitivă notată cu Q. j 1 Explicaţia este evidentă. dar în fiecare astfel de linie (coloană) avem o latură care este determinată de două vârfuri. .   . vom scrie combinaţia liniară a vectorilor din µ-ciclu fără celula liberă. − Q eit ej 1 = 0.  a  not a .

(7. j = 1. ej1 + (¯i2 j3 + Q) x + . j = 1. i = 1. Observaţie.2) este:  m n   g(u.. jl ) ∈ B} Modul de alegere a lui Q se numeşte criteriu de intrare în bază. Problema de transport a1 b1 după care o adunăm la vectorul Astfel se obţine: Q ei1 ej1 + (¯i. Cu alegerea convenabilă a lui Q vom putea introduce celula (vectorul) liberă în bază şi în acelaşi timp vom putea scoate una din bază. Dacă luăm o celulă (i. Astfel se va obţine o nouă bază şi combinaţia liniară a vectorilor de a1 tip 7. atunci are loc egalitatea cij − ui − vj = 0. (7.4) De aici se deduce procedeul schimbării vectorilor. j = 1. v) =  ai ui + bj vj → max    i=1 j=1  ui + vj ≤ cij .j2 − Q) x + (¯it j1 −Q) x . ei2 ej3 ei1 ei2 + (¯i2 j2 + Q) j2 x ej2 e it e .6) i i i i . j = 1. m. n. i = 1. Fie xij . m. m. i = 1. este foarte importantă alegerea celulei libere.4 va fi egală de asemenea cu .5) Teorema 7. m. Celula liberă este aleasă prin intermediul problemei duale. j) ∈ B. Valoare lui Q se va alege astfel b1 încât Q = min{Q|xir jl − Q = 0. i = 1. vj ).1. n o soluţie a problemei duale.5 Utilizarea problemei duale Duala problemei de transport (7. dacă şi numai dacă are loc relaţia: xij (cij − ui − vj ) = 0.1. m. iar (ui .i i i “JATEK” — 2005/3/11 — 10:29 — page 182 — #182 i 182 7. n      ui . sunt egale cu zero. (i. Având în vedere că următoarea soluţie trebuie să fie mai bună. Altfel are loc relaţia de mai sus. Soluţiile sunt optime. j = 1. procedeul de îmbunătăţire a bazei.. Modele speciale de programare liniară. Deci soluţia problemei duale trebuie să verifice sistemul liniar de ecuaţii: cij = ui + vj . (ir . j) ∈ B. n o soluţie de bază pentru problema de transport. i = 1. 7.5. descrisă în continuare. deoarece valorile varia-bilelor independente ale problemei pr