Sunteți pe pagina 1din 184

Bazele cercetării operaţionale

|
||  
||
| |||| ||  || 
|

|||| |
|
Cercetarea operaţională este una din disciplinele care a apărut către sfârşitul primei jumătăţi
a secolului nostru şi s-a dezvoltat spectaculos în special în ultimii ani, în strânsă legătură cu o serie
de alte discipline ale organizării şi conducerii, cum ar fi cibernetica, informatica sau analiza
sistemelor.
Pentru a avea o imagine de ansamblu asupra obiectului cercetării operaţionale aplicate în
economie, considerăm, deci, util să examinăm succint cum au apărut şi au evoluat disciplinele
organizării şi conducerii precum şi legăturile pe care le prezintă între ele.
Concepţia "organizării ştiinţifice", conturată către sfârşitul secolului al 19-lea şi începuturile
celui actual, consideră unitatea productivă ca un mecanism, în care oamenii, ajutaţi de maşini,
lucrează într-un determinism aproape total, pe baza unor dispoziţii acţionând ierarhic, conform unor
competenţe riguros definite.
Principalii reprezentanţi ai începuturilor organizării ştiinţifice, care formează aşa-numita
Ǝşcoală clasică", stabilesc pentru prima oară o serie de principii ale conducerii ştiinţifice. Printre
acestea figurează binecunoscutul (şi încă actualul) principiu al excepţiei, principiul specializării
organizaţionale, principiul definirii riguroase a sarcinilor, principiul organizării ierarhice (Staff and
Line) ş.a.
Între conceptele utilizate de şcoala clasică nu figurează informaţia şi nici decizia:
conducerea "mecanismului" economico-social revine (în ultimă instanţă prin parcurgerea treptelor
piramidei ierarhice), întotdeauna, unui centru unic de decizie, pentru care informaţiile sunt
presupuse, aprioric, disponibile complet şi instantaneu, fără nici un fel de restricţie (de timp, de
spaţiu, de tehnică a transmiterii şi înmagazinării etc.).
Cu toată perspectiva sa limitată, şcoala clasică are marele merit al desţelenirii unui domeniu
virgin. Pionierii organizării ştiinţifice (Taylor, Gantt, Fayol) şi ceilalţi reprezentanţi ai şcolii clasice
pun pentru prima oară problema abordării raţionale a mecanismului funcţionării unei întreprinderi.
O mare parte din ideile şcolii clasice au fost criticate de reprezentanţii diferitelor şcoli care
s-au dezvoltat ulterior în ştiinţele organizării, dând naştere, după cum vom arăta în continuare, unor
teorii din ce în ce mai abstracte şi mai complexe. Merită să arătăm că în deceniul al şaselea, ca o
reacţie împotriva excesului de teoretizare, s-a dezvoltat o aşa-numită şcoală neoclasică, având drept
obiectiv reîntoarcerea la practică.
În deceniile care urmează după apariţia şi dezvoltarea şcolii clasice, problemele
informaţional-decizionale îşi afirmă prezenţa din ce în ce mai acut, pe măsura creşterii
dimensiunilor şi complexităţii organizaţiilor social-economice şi îşi caută rezolvări empirice de cele
mai multe ori nu la nivelul necesităţilor. Se stabilesc adesea circuite informaţionale paralele şi
supraabundente (redundante) iar în afara fluxurilor oficiale (formale) de date, se dezvoltă o
circulaţie neformală, uneori mai eficientă, dar cu caracter strict local. În procesele de decizie
continuă să prevaleze rutina, bunul simţ, talentul sau chiar improvizaţia.
În perioada următoare primului război mondial au putut fi constatate, ca urmare a acestor
rezolvări empirice, diferenţe considerabile, din punctul de vedere al competitivităţii, între unităţi
economice cu structuri organizatorice şi dotări tehnice identice sau similare. Analizele efectuate au
condus la o primă includere în perimetrul cercetării privind problemele organizării şi conducerii a
aspectelor informaţional-decizionale, până atunci ignorate şi totodată şi a aspectelor relaţiilor
umane. Se lărgeşte considerabil problematica organizării şi conducerii şi încep să circule cu din ce
în ce mai multă autoritate denumirile de management (ca activitate practică) şi management science
(ştiinţa conducerii).
Această perioadă este dominată de "şcoala comportamentului" care pune în centrul preocu-
părilor sale observaţia minuţioasă a comportamentului oamenilor în timpul procesului motivaţiilor
1
Bazele cercetării operaţionale

care determină coeziunea grupurilor.


Diferenţele substanţiale între şcoala comportamentului şi şcoala clasică se referă în special
la aspecte ca: descentralizarea deciziilor, promovarea încrederii între membrii unui grup (şi
neglijarea autorităţii) cu accentul pus pe responsabilitate (şi nu pe control)1.
Începând din deceniul al cincilea al secolului nostru2, se produce un fenomen care
promovează informaţia şi decizia printre elementele esenţiale ale epocii în care trăim.
La acest fenomen contribuie în primul rând creşterea extraordinară a complexităţii
structurale şi funcţionale, a organizaţiilor economice. Procesele de comasare-integrare, apariţia
structurilor organizaţionale cu activităţi productive pe arii geografice foarte mari (şi, de asemenea,
cu multiple probleme legate de desfacerea produselor), ridicarea nivelului de tehnicitate a
instalaţiilor şi corespunzător o specializare accentuată a profesiunilor - sunt numai câteva din
aspectele acestei complexităţi a unităţilor productive moderne.
Ca o consecinţă a acestei stări de fapt apare o extraordinară creştere a cantităţii de informaţii
deţinute şi manipulate în unităţile productive, accentuată şi de formularea unor condiţii mult mai
severe în ceea ce priveşte calitatea informaţiei (pertinenţa şi operativitatea acesteia). Alături de
producţia de bunuri apare o producţie de informaţii din ce în ce mai însemnată, informaţia devine
chiar un produs sau marfă ce se poate negocia, ajungând, alături de servicii, obiectiv al unor
organizaţii specializate.
În ceea ce priveşte procesele de decizie, pentru prima oară se pune în mod riguros şi pe scară
largă problema găsirii unor soluţii optime sau apropiate de cele optime, în marea diversitate de
probleme organizatorice şi de conducere.
Se poate considera că toate aceste schimbări au condus la o veritabilă revoluţie
informaţional-decizională în domeniul organizări şi conducerii şi, ca o consecinţă, la apariţia
managementului ştiinţific modern.
Principalele discipline privind conducerea, care au apărut în această etapă sunt: cercetarea
operaţională, cibernetica, informatica, psihosociologia organizării şi teoria generală a sistemelor.
: | , care poate fi definită succint ca disciplină a optimizării
deciziilor cu ajutorul modelării matematice, a apărut în perioada celui de-al doilea război mondial.
Considerată de unii ca reprezentând °   în disciplinele organizării şi
conducerii, cercetarea operaţională se caracterizează în primul rând prin procesul de elaborare a
modelelor, de regulă matematizate, care descriu procesele economice pentru care urmează a se lua
decizii cât mai avantajoase. Având în vedere importanţa modelării în cercetarea operaţională, îi vom
consacra în întregime paragraful următor.
: ! este ştiinţa care se ocupă cu conducerea şi reglarea sistemelor complexe.
Printre încercările cele mai caracteristice de perfecţionare a metodelor folosite în ultimele
decenii în ştiinţele organizării şi conducerii, alături de întrebuinţarea masivă a procedeelor
matematice şi a calculatoarelor electronice, se află şi utilizarea concepţiei sistemico-cibernetice.
Poate fi definită ca sistem orice secţiune a realităţii în care se identifică un ansamblu de
fenomene, obiecte, procese, concepte, fiinţe sau grupuri interconectate printr-o mulţime de relaţii
reciproce, precum şi cu mediul înconjurător şi care acţionează în comun în vederea realizării unor
obiective bine definite. Mulţimea elementelor şi a relaţiilor dintre acestea, precum şi a relaţiilor
între componente şi ansamblu formează structura sistemului. Mulţimea caracteristicilor unui sistem,
la un moment dat, determină starea sa.
Pentru analiza comportamentului sistemelor, în ansamblul lor, s-a propus conceptul de "cutie
neagră" care reprezintă sistemul privit ca un tot, făcând abstracţie de procesele sale interne. Cutia
neagră primeşte impulsuri din partea mediului înconjurător (Ǝintrările" în sistem) şi, prelucrând
aceste impulsuri, le transformă în acţiuni asupra mediului ("ieşirile") din sistem.
Sistemele se pot clasifica: după natura lor (sisteme naturale - cum sunt organismele vii şi

1
Printre reprezentanţii "şcolii comportamentului" pot fi citaţi Mayo, Abraham Zalesnick şi D. G. Peltz.
2
Desigur, referirea la un moment în timp nu poate fi decât pur orientativă; aici am avut în vedere apariţia
primei generaţii de calculatoare electronice, a primelor lucrări de cibernetică şi a primelor echipe de cercetare
operaţională.
2
Bazele cercetării operaţionale

sisteme elaborate - tehnice, economice, conceptuale), după modul de funcţionare (deschise - în care
ieşirile nu influenţează intrările, şi închise, în care are loc influenţa intrărilor de către ieşiri) şi după
comportament (deterministe sau probabilistice1).
Mecanismul transformării intrărilor în ieşiri poate fi descris cu ajutorul funcţiilor de transfer,
care au diverse forme, particulare, după natura sistemului.
Sistemul devine cibernetic2 atunci când apare reglarea (conexiunea inversă, feedback-ul),
adică o intervenţie asupra intrărilor în scopul menţinerii ieşirilor la nivelul unor parametri-obiectiv
doriţi.
Se înţelege că expresia analitică a funcţiilor de transfer şi a mecanismului reglării conduce la
forme matematice foarte diverse şi de cele mai multe ori foarte complexe.
Ansamblul economiei poate fi privit ca un sistem ale cărui elemente componente
(organizaţiile social-economice de diferite mărimi) sunt intercorelate prin fluxuri materiale şi
informaţionale şi au un comportament orientat spre atingerea unor obiective precise. La rândul lor,
organizaţiile, care sunt elemente componente ale sistemului-ansamblu, pot fi considerate sisteme,
diviziunea putându-se continua până la identificarea unor componente elementare indivizibile.
Scopul cercetării cibernetico-sistemice aplicată la realitatea social-economică îl constituie
surprinderea comportamentului sistemelor, una din căile de descriere a acestui comportament fiind
găsirea expresiei funcţiilor de transfer şi a mecanismului reglării.
Adoptarea perspectivei cibernetico-economice în ştiinţele social-economice reprezintă un
câştig teoretic remarcabil şi este foarte probabil ca, în următorii ani, să asistăm la închegarea unei
teorii cibernetico-sistemice complete şi unitare aplicată la realitatea social-economică pe scară
largă.
: "# poate fi definită ca disciplina prelucrării datelor cu ajutorul echipamentelor
automate de prelucrare.
Principalele probleme care pot fi considerate ca aparţinând informaticii sunt: culegerea
datelor, pregătirea datelor, codificarea acestora, transmiterea lor, prelucrarea datelor pe
echipamente, stocarea şi conservarea lor.
Problema dezvoltării explozive a informaticii şi a rolului ei în economie, administraţie,
cercetare spaţială, strategie militară, ştiinţă, învăţământ etc, este bine cunoscută şi de nespecialişti.
Vom arăta numai că, de la câteva calculatoare electronice şi puţini specialişti în informatică, în
1945, s-a ajuns azi, pe plan mondial, la milioane de calculatoare şi specialişti.
: $%|%& a apărut ca o nouă orientare în disciplinele conducerii în jurul
anului 1950.
St. March, F. Simon şi alţi reprezentanţi ai aşa-numitei "şcoli psihosociologice" abordează,
în principal, problema influenţei factorilor psihologici şi sociologici în compartimentul decizional.
Luarea deciziilor, în concepţia acestei şcoli, nu este funcţie numai de criterii raţionale ci şi de modul
de percepere a stimulilor, depinzând de poziţia decidentului şi de relaţiile cu ceilalţi membri ai
grupului.
Cu alte cuvinte, oricât s-ar face apel, în organizarea şi conducerea organismelor economice,
la metode şi echipamente de mare fineţe şi tehnicitate, în ultimă instanţă oamenii sunt cei de care
depinde funcţionarea eficientă a sistemului, de aceea, trebuie studiate reacţiile individuale şi relaţiile
dintre indivizii din sistem.
: | %| | # (TGS), strâns legată de cibernetică, propune o perspectivă
care să sintetizeze ideile viabile ale diferitelor orientări în ştiinţele organizării şi conducerii.
Iată câteva din ideile de bază ale teoriei generale a sistemelor, după "Industrial Dynamics" a
lui J. Forrester:

a) orice sistem este alcătuit din elemente (părţi) interdependente, acţionând în comun în

1
Sistemele deterministe au o comportare previzibilă, în timp ce sistemele probabilistice au o comportare aleatoare.
2
Apariţia şi dezvoltarea ciberneticii (începând din deceniul al 5-lea al secolului nostru) este legată de numele unor
savanţi celebri ca Norbert Wiener, Claude Shannon, Ross Ashby etc.
3
Bazele cercetării operaţionale

virtutea unui scop;


b) ansamblul legăturilor între elementele sistemului, precum şi al legăturilor cu întregul,
formează structura sistemului S;
c) complexitatea sistemelor depinde mai mult de structura sistemului decât de natura părţilor
sale;
d) două sisteme cu structuri parţial identice se numesc homomorfe (sistemul mai simplu va
constitui un model al sistemului homomorf mai complex);
e) două sisteme homomorfe vor avea un comportament asemănător, de unde rezultă
posibilitatea de studiu a proprietăţilor sistemelor reale prin simulare;
f) structura (statică) unui sistem preexistă comportamentului său (dinamicii sistemului);
g) mişcările într-un sistem se realizează prin fluxuri presupuse concrete şi continue;
h) într-un organism economic toate categoriile de mişcări pot fi grupate în următoarele tipuri
de fluxuri interconectate; 1) fluxuri materiale; 2) fluxuri de comenzi; 3) fluxuri băneşti; 4)
fluxuri umane; 5) fluxuri de echipamente şi 6) fluxuri informaţionale;
i) fluxul informaţional are un rol central în funcţionarea sistemelor;
j) procesele decizionale sunt considerate şi ele ca având un rol central în mecanismul
sistemelor; ele sunt presupuse a fi discontinue;
k) reglarea este un element caracteristic al funcţionării sistemelor;
l) procesele care au loc în sistemele economice sunt, de regulă, neliniare.

Pe baza acestor premise, Forrester construieşte un procedeu de descriere a


comportamentului unei întreprinderi, care utilizează metode cibernetice, informatice,
psihosociologice, precum şi procedee de modelare matematică. De asemenea, sunt folosite analogii
fizice şi tehnice (de exemplu, fluxurile sunt examinate în sens hidraulic) iar simularea este utilizată
ca un procedeu de bază în descrierea comportamentului sistemelor.
În linii mari în "Industrial Dynamics" se urmăreşte înţelegerea stării unui sistem cu ajutorul
unor ecuaţii care descriu în timp intrările, transformările şi ieşirile din sistem, pentru cele şase tipuri
de fluxuri amintite mai sus. (E vorba deci de găsirea funcţiilor de reacţie ale sistemului.) Pe baza
acestei descrieri matematice se pot face simulări pe calculator, cu ajutorul cărora se prevede
evoluţia sistemului.
Ideile şi procedeele TGS, impresionante prin complexitatea lor, sunt în curs de sedimentare
metodologică şi experimentare practică.
Marea majoritate a propoziţiilor enumerate mai sus şi care stau la baza teoriei lui Forrester
se regăsesc explicit sau implicit şi la baza metodologiilor practice de &|#. Conceptele
de flux informaţional şi proces decizional sunt dominante şi în analiza sistemică la fel ca în TGS, iar
urmărirea mecanismului transformării intrărilor în ieşiri constituie obiectul principal al analizei de
sistem la fel ca şi al TGS. Procedeul folosit de analiza sistemică nu mai este însă matematic, ci
bazat pe descrierea explicită, calitativă, a proceselor informaţional-decizionale. În plus, în practica
analizei de sistem, odată cu proiectarea proceselor informaţionale şi în special a celor decizionale,
se urmăreşte îmbunătăţirea lor, deci se au în vedere criterii de optim. În acţiunea aceasta de
proiectare eficientă a procesului informaţional-decizional, analiza sistemică face din plin apel la
procedeele cercetării operaţionale şi la tehnicile informaticii. În ceea ce priveşte folosirea metodelor
psihosociologice, în analiza de sistem există încercări recente în acest sens.

 |#||||
|
Conceptul de "model", atât de mult folosit în ştiinţa modernă, este relativ nou, dar metoda
modelării este tot atât de veche pe cât sunt preocupările oamenilor pentru cunoaşterea ştiinţifică3.
Putem considera că modelul este o reprezentare izomorfă a realităţii, care, oferind o imagine
intuitivă şi totuşi riguroasă, în sensul structurii logice, a fenomenului studiat, facilitează
3
Oamenii de ştiinţă din toate timpurile au folosit "modele" în cele mai diverse domenii ale cunoaşterii
ştiinţifice. Până de curând însă ei utilizau modelarea fără a folosi termenul respectiv.
4
Bazele cercetării operaţionale

descoperirea unor legături şi legităţi imposibil sau foarte greu de găsit pe alte căi.
În elaborarea modelelor economico-matematice, teoria economică are un rol deosebit de
important întrucât ea formulează categoriile, conceptele şi legile obiective ale realităţii economice.
Numai sprijinindu-se pe teoria economică modelele matematice pot reprezenta fidel fenomenele
economice.
Modelul, ca instrument al cunoaşterii ştiinţifice, este folosit în foarte numeroase discipline
teoretice şi practice. Fără pretenţia de a face o Y Y riguroasă a tipurilor de modele, vom arata
că ele pot fi: modele verbal-descriptive - folosite în toate disciplinele nematematizate, modele
matematice, modele fizice analogice (de tipul machetelor statice sau dinamice), modele grafice etc.
În ştiinţele economice, în special în disciplinele organizării şi conducerii, modelele sunt
utilizate în toată diversitatea de tipuri care există. În ultimele decenii însă, se conturează din ce în ce
mai mult tendinţa utilizării cu precădere, în aceste discipline, a modelelor de tip matematic, datorită
în special capacităţii acestora de a condensa riguros esenţialul, cât şi posibilităţii lor de a fi
programate cu ajutorul calculatoarelor electronice, alcătuind împreună un instrument de investigaţie
ştiinţifică de o putere necunoscută până în prezent, o prodigioasă "prelungire" a inteligenţei umane.
O sistematizare metodologică a modelelor matematice întrebuinţate în disciplinele
organizării şi conducerii social-economice ar fi riscantă, având în vedere mutaţiile continue şi
spectaculoase care au loc în aceste discipline şi, în plus, ar avea un caracter pur scolastic, fără
utilitate teoretică sau practică reală. De aceea, ne vom limita, în continuare, să enumerăm
principalele tipuri de modele matematice cunoscute în acest domeniu.
După întinderea domeniului studiat, modelele care descriu realitatea economică pot fi:

    - cele care se referă la economia naţională, la ramură (subramură) sau la economia
unui teritoriu mare (un judeţ, o anumită zonă industrială, agricolă etc.) şi 
    - la nivel
de întreprindere, uzină, trust, combinat etc.
Modelele  
      urmăresc să studieze relaţia dintre intrări şi ieşiri într-un
organism economic, cu evidenţierea fenomenelor de reglare care determină buna funcţionare a
sistemului. Majoritatea modelelor cibernetico-economice sunt macroeconomice.
Modelele   
  descriu comportamentul organismelor economice cu ajutorul unor
sisteme de ecuaţii în care elementele numerice sunt determinate statistic. Şi aceste modele sunt, de
obicei, macroeconomice.
Modelele de 
 încearcă să stabilească modul de funcţionare al unor organisme macro
sau microeconomice prin acordarea unor combinaţii de valori întâmplătoare variabilelor
independente care descriu procesele. Prin "citirea" valorilor pe care le capătă în felul acesta
variabilele dependente, se obţin mărimi semnificative în procesul studiat.
Modelele   au drept obiectiv surprinderea ansamblului aspectelor dintr-un organism
economic (de exemplu, în modelele Forrester se consideră că prin identificarea celor şase fluxuri
caracteristice se poate cunoaşte comportarea sistemului ca un tot).
Modelele 

 
  se caracterizează prin căutarea unei soluţii optime sau
apropiată de optim, pentru fenomenul studiat. Modelele cercetării operaţionale se bazează pe o mare
diversitate de procedee matematice şi au aplicaţii la nivel macro, dar în special la nivel
microeconomic. Ele reprezintă principalul instrument pentru optimizarea deciziilor în analiza de
sistem.
Tipologia de mai sus este foarte relativă, între grupele menţionate existând frecvente
asemănări şi întrepătrunderi. Astfel, modelele econometrice sunt adesea de tip cibernetic, simularea
se utilizează în mai toate tipurile de modele matematice, modelele cercetării operaţionale pot fi
folosite în descrierea sistemică a unui organism etc.
Vom examinăm, în continuare, procedeele practice de elaborare şi utilizare a modelelor
matematice în disciplinele organizării şi conducerii.
În primul rând trebuie subliniat faptul că activitatea de modelare, pentru a fi eficientă,
trebuie desfăşurată întotdeauna în cadrul analizei de sistem, şi anume ca un moment al etapei de
proiectare a noului sistem. O serie de operaţii care se desfăşoară în cadrul analizei de sistem
înaintea acestui moment au un caracter pregătitor pentru efectuarea modelării, iar altele, ulterioare

5
Bazele cercetării operaţionale

ei, sunt necesare pentru aplicarea în practică a modelelor elaborate.


Vom arăta în continuare care sunt principalele faze ale elaborării unui model matematic
într-o problemă de organizare-conducere social-economică, având grijă să evidenţiem cum se
împletesc aceste faze cu alte operaţii ale analizei de sistem.
:  
a modelării, care are un caracter pregătitor, este Y  realităţii în
organismul studiat, în scopul îmbunătăţirii mecanismului informaţional-decizional. Descrierea
logicii proceselor decizionale, alături de considerarea obiectivelor viitorului sistem, sunt
principalele elemente ale cunoaşterii realităţii necesare modelării.
: —   
a modelării o reprezintă Y   propriu-zisă a modelului. Această
operaţie, în marea majoritate a cazurilor din practică, constă în aplicarea unui instrument clasic de
modelare ales din gama extrem de variată pe care ne-o pune la dispoziţie teoria cercetării
operaţionale. În astfel de situaţii, abilitatea analistului constă în stabilirea corespondenţei dintre
realitate şi instrumentul de modelare cunoscut din literatura de specialitate. Există şi cazuri când nu
se poate stabili o astfel de corespondenţă, analistul fiind obligat să elaboreze modele noi. Acestea
pot fi de două feluri: a) combinaţii de modele clasice, din domeniul teoriei şi b) modele noi
propriu-zise. În primul caz, totul se reduce la buna cunoaştere a realităţii şi a teoriei, la care trebuie
adăugată o doză de abilitate în combinarea metodelor. În cazul al doilea, este vorba despre creaţie
originală. Elaborarea unui model matematic realmente original reclamă, pe lângă profunda
cunoaştere a realităţii care urmează a fi modelată, o foarte solidă cultură matematică, imaginaţie şi
talent. După cum va rezulta din parcurgerea în prezentul curs a modelelor clasice ale cercetării
operaţionale, există o mare diversitate în structura, matematica şi logica modelelor, de la modele
foarte simple, neaxiomatizate, cum sunt cele din programarea liniară, la modele combinatorice, în
probleme de teoria grafelor, analiza drumului critic şi programarea operativă a producţiei şi până la
modele de mare fineţe, prezentate axiomatizat, cum sunt cele ale utilităţii sau deciziilor de grup.
Evident, elaborarea în forma axiomatizată a unui model reprezintă un stadiu superior în procesul
modelării care, însă, nu poate fi totdeauna atins în practică.
Un model axiomatizat (sistem axiomatic) cuprinde:

- '#| #  , reprezentând propoziţii exprimate în formă matematică, de regulă


foarte puţine, care conţin unele adevăruri de mare generalitate privind fenomenul care se
modelează, atât de generale, încât toate constatările concrete şi particulare vor putea fi
deduse din cele generale;
- % | | ", reprezentând prescripţii riguroase, singurele admise în sistem, prin
care se trece de la axiome la teoreme, sau de la teoreme deja demonstrate, la altele noi;
- #, adică propoziţii mai mult sau mai puţin particulare, exprimate matematic, deduse
prin reguli de inferenţă din aproape în aproape din axiome şi care exprimă proprietăţi ale
fenomenului modelat.

Când în procesul de modelare axiomatică se explicitează limitativ conceptele care urmează a


fi utilizate, adică se dă de la început o listă a noţiunilor şi operaţiilor matematice admise în sistem,
se obţine o formă superioară de sistem axiomatic numit sistem formal.
Sistemele formale sunt încă foarte puţin utilizate în ştiinţă şi cu atât mai puţin în disciplinele
organizării şi conducerii economice.
Axiomatizarea şi, în ultima analiză, formalizarea, reprezintă viitorul în modelarea
matematică, datorită rigorii excepţionale pe care o introduc, diminuării considerabile a elementelor
de intuiţie şi arbitrar, care, deşi mult mai puţine decât în modelele nematematizate, sunt încă
prezente în modelarea matematică axiomatizată.
: —  
a modelării este confruntarea modelului cu realitatea şi eventual
experimentarea sa. Această fază se realizează în cadrul implementării sistemului, care poate fi
considerată  şi ultima fază a modelării.
În încheierea acestui paragraf, să examinăm câteva caracteristici ale instrumentelor de
modelare matematică pe care ni le pune la dispoziţie cercetarea operaţională.
6
Bazele cercetării operaţionale

Una din principalele caracteristici ale tuturor metodelor cercetării operaţionale este faptul că
unele probleme ale cercetării operaţionale pot fi privite, din perspectivă pur teoretică, ca probleme
de matematică pură. Evident, nu aceasta va fi perspectiva pe care o vom adopta în cele ce urmează,
întrucât vom privi metodele cercetării operaţionale strâns legate de problemele practice.
Din punct de vedere istoric, unele dintre problemele cercetării operaţionale s-au ivit, ce e
drept, în special sub aspect pur matematic, cu mult înainte de a fi apărut activitatea organizată şi
denumirea de cercetare operaţională. Astfel, unele noţiuni de teoria grafelor se cunosc de mai bine
de un secol, teoria aşteptării îşi are originea în unele lucrări ale lui Erlang din deceniul al 2-lea al
secolului nostru, iar teoria stocurilor apare către anul 1930. Ca disciplină de sine stătătoare,
cercetarea operaţională a apărut însă în timpul celui de-al doilea război mondial, prin înfiinţarea
unor echipe complexe (matematicieni, ingineri, economişti, biologi, psihologi ş.a.) însărcinate cu
optimizarea deciziilor privind unele acţiuni pregătitoare operaţiilor militare. După război, echipele
astfel formate s-au reprofilat rapid pentru activităţi paşnice. Dezvoltându-se spectaculos în ultimele
trei decenii, preocupările teoretice şi în special practice, în domeniul cercetării operaţionale, au
ajuns să antreneze astăzi pe plan mondial sute de mii de specialişti.
În prezent nu se mai poate concepe conducerea unei activităţi tehnico-economice importante
fără a face apel la metodele cercetării operaţionale, bineînţeles împreună cu celelalte tehnici
moderne cum ar fi informatica, analiza de sistem ş.a..

7
Bazele cercetării operaţionale

( || 


|
&|%|

Mulţimea sistemelor economice concrete şi multitudinea problemelor conducerii acestora au


creat o diversitate de reprezentări economico-matematice, denumite modele.
Varietatea acestora este determinată, în principal, de structura "obiectului" analizat, de
scopul cercetării precum şi de informaţia disponibilă.
Modelele de programare matematică şi mai ales subclasa acestora ± modelele de programare
liniară ± ocupă un loc deosebit de important, atât în teoria cât şi în practica economică. Teoria
economică a beneficiat de aportul abordării interdisciplinare care a permis aprofundarea analizei
eficienţei maximale a sistemelor complexe, a permis descoperirea unor concepte noi ale optimului
economic, a perfecţionat metodele de cercetare şi cunoaştere iar practica economică s-a îmbogăţit
cu un instrument deosebit de util analizei economice şi fundamentării deciziilor.
Structura modelului general de programare liniară se constituie în primul rând prin mulţimea
de activităţi {A1, A2, ... An} care compun sistemul economic analizat, mulţimea de resurse utilizate
{R1, R2, ... R m} precum şi prin relaţiile tehnico-economice dintre acestea. Legătura dintre activităţi
şi resurse este determinată de tehnologia de fabricaţie corespunzătoare fiecărei activităţi A4
(4=1,...,n) şi poate fi caracterizată numeric prin vectorul coloană a(4) de componente (a14, a24, ... a4).
Elementele {a4,  = 1,...,; 4 = 1,..., } se numesc coeficienţi tehnici sau coeficienţi de consum
specific şi arată ce cantitate din resursa R se consumă pentru producerea unei unităţi din produsul
(serviciul) P4 (ca rezultat al activităţii A4). Toate "tehnologiile" de fabricaţie definite de vectorii
coloană a(4) se pot organiza într-o matrice A cu  linii şi coloane; fiecare linie se referă la o
resursă R ( = 1,...,) şi fiecare coloană se referă la o activitate A4 (4 = 1,..., ).
Notând cu x4 (4 = 1,..., ) rezultatul activităţii A4 într-o perioadă dată şi cu b ( = 1,...,)
cantităţile disponibile din resursele R ( = 1,...,), se pot scrie matematic următoarele restricţii
tehnico-economice:
a 11 x 1 a 12 x 2 ... a 1n x n Ê b 1
(1) a 21 x 1 a 22 x 2 ... a 2n x n Ê b 2 sau Aöx b
V V V V V V V V V V V V
a m1 x 1 a m2 x 2 ... a mn x n Ê b m

 a 11 a 12 V a 1n   x1   b1 
 a 2n  ; x = x  b 
unde A =  a 21 a 22 V
  2  şi b =  2
      
 a m1 a m2 V a mn  xn  bn 

Fiecare inecuaţie/restricţie încorporează două afirmaţii:

a.| cantitatea consumată dintr-o resursă nu poate depăşi volumul disponibil (propoziţie de
logică economică)
b.| consumul total R4 din resursa R pentru efectuarea activităţii A4 este proporţional cu
intensitatea acesteia, adică cu x4, deci R4(Å) = a4 ö x4 (ipoteză simplificatoare)

(Å )
De aici rezultă posibilitatea să calculăm coeficienţii a ij pe baza informaţiilor disponibile privind cantităţile consumate
R ij
Rij şi nivelul xj: aij = ; i = 1,...,m; j = 1,...,n
xj

8
Bazele cercetării operaţionale

Sistemul de restricţii (1) realizează legătura dintre resurse şi activităţi prin intermediul celor
 restricţii liniare.
Modelul problemei de programare liniară conţine restricţii de tipul (1) precum şi un criteriu
de "performanţă" care să permită evaluarea eficienţei fiecărei activităţi. În funcţie de scopul urmărit,
putem alege drept criteriu de eficienţă un indicator care măsoară efortul, unul care măsoară
rezultatul sau un indicator exprimat ca raport între rezultat şi efort (sau efort pe rezultat).
Este evident că eficienţa maximă înseamnă minimizarea efortului şi maximizarea
rezultatului, iar conceptul de optim se defineşte, în acest caz, ca un program Ü
care minimizează
sau maximizează o funcţie obiectiv şi, în acelaşi timp, satisface toate restricţiile tehnico-economice.
Presupunând că fiecare componentă a vectorului linie c = (c1, c2, ..., c ) măsoară eficienţa
unei unităţi din rezultatul activităţii A4, atunci se poate introduce funcţia liniară:
(x) = c1öx1 + c2öx2 + ... + c öx
care evaluează performanţa oricărui program .
Sintetizând, obţinem următorul program de programare liniară:

optim
x  (1)

n
 a i ö x  Ê b i i  I1

1
n
unde I1 ] I2 = {1,2,...,m} (2)
a k ö x   b k


 k I2
1

 x  0  1, n (3)



Relaţiile (1), (2) şi (3) constituie împreună modelul general al unei probleme de programare
liniară, având fiecare un rol specific:
n
1.| relaţia (1), unde (x) = « c j ö  j este denumită funcţia obiectiv de eficienţă a problemei,
j 1
evaluează eficienţa/performanţa fiecărei variante de program ;
n
2.| relaţiile (2) de tipul « a ij ö x j b i reprezintă restricţii de tip resurse; iar restricţiile de
j 1
n
tipul « a kj ö x j  b k se referă la restricţii tehnico-economice de tip calitativ (şi ca urmare
j 1
indicatorul b* este limita inferioară impusă "reţetei optime";
3.| relaţia (3) x4  0 4 = 1,..., , numită condiţia de nenegativitate a variabilelor, asigură
obţinerea unei soluţii realizabile din punctul de vedere al logicii economice.
După cum s-a arătat la început, structura concretă a unei aplicaţii în economie este
determinată în primul rând de obiectivul urmărit.
Astfel, în cazul    
  Y          Y, se
cunosc cantităţile disponibile (cantităţile de care se poate face rost pe perioada analizată) din fiecare
materie primă {b,  =1,...,}, coeficienţii tehnologici {a4,  = 1,...,, 4 = 1,..., } (a4 reprezintă
cantitatea din materia primă  necesară fabricării unei unităţi din produsul de tipul 4), cantităţile
maxime {  4 , 4 = 1,..., } şi minime {  4 , 4 = 1,..., } ce pot fi produse din fiecare sortiment în
perioada analizată şi profiturile unitare {p4, 4 = 1,..., } ale fiecărui tip de produs. Se cere găsirea
acelor cantităţi x4 care trebuie fabricate din fiecare tip de produs astfel încât să se obţină profitul
maxim, în condiţiile nedepăşirii disponibilurilor din fiecare resursă.

9
Bazele cercetării operaţionale

Pentru simplificarea modelului, se presupune că preţul unui bun nu depinde de cantitatea


produsă din acesta sau din celelalte, consumul din fiecare materie primă este direct proporţional cu
cantitatea produsă şi, pentru fiecare bun, consumurile dintr-o resursă sau alta nu se condiţionează
reciproc.
Problema matematică echivalentă este:

max
p x p x ... p n x n

x j 1, n 1 1 2 2
j

a i1x1 a i2 x 2 ... a in x n b i
 i 1,..., m
x j x j x j j 1,..., n
xj  0 j 1,..., n

În unele probleme, în loc de profiturile p4 se cunosc veniturile unitare v4 sau costurile unitare
c4 sau alt criteriu de eficienţă, scopul fiind maximizarea venitului, minimizarea costurilor respectiv
optimul indicatorului de eficienţă respectiv, sau toate la un loc. De asemenea pot lipsi condiţiile de
limitare a producţiei sau pot exista şi alte condiţii.
La o|   
    
    Y restricţiile se referă la o serie de
maşini (utilaje) cu care se execută produsele dorite, b fiind disponibilul de timp al utilajului  pe
perioada analizată iar a4 timpul necesar prelucrării unui produs de tipul 4 pe utilajul , scopul fiind
maximizarea producţiei.
Ca urmare, modelul are forma:

max
x 1 x 2 ... x n

x ( j 1,..., n)
j


 a i1 x 1 a i2 x 2 ... a in x n bi i 1,..., m

x j  0 i 1,..., n

|
Dacă se doreşte obţinerea unui meniu (reţete furajere), care să asigure necesarurile {b,  =
1,...,} dintr-un număr de  substanţe esenţiale organismului, având la dispoziţie un număr de
alimente, cunoscându-se cantităţile {a4,  = 1,...,, 4 = 1,..., } din fiecare substanţă pe care le
conţine o unitate de măsură din fiecare aliment şi costurile {c4, 4 = 1,..., } unei unităţi de măsură din
fiecare aliment, putem scrie modelul:


min
c 1 x 1 c 2 x 2 ... c n x n


x j ( j 1,..., n)

 a i1 x 1 a i2 x 2 ... a in x n  b i i 1,..., m

x j  0 j 1,..., n

Variabilele x4 reprezintă, în acest caz, cantitatea din fiecare aliment ce va intra în meniu iar
n
(x) = «cj öj este costul total al reţetei definită de vectorul x.
j 1

10
Bazele cercetării operaţionale

Vom încheia exemplificarea cu| prezentarea    Y      


 . Presupunem că o rafinărie dispune de tipuri de benzine, prin amestecarea acestora
urmând să obţină o benzină cu  caracteristici impuse şi la un preţ minim posibil. O serie de
caracteristici trebuie să fie îndeplinite cu o limită inferioară (de exemplu cifra octanică), altele cu o
limită superioară (de exemplu densitatea sau temperatura de fierbere) şi altele cu egalitate (de
exemplu cantitatea necesară), aceste limite fiind b 1i , i = 1,...,m1 , b 2i , i = 1,...,m2 respectiv b 3i , i =
1,...,m3 cu m1 + m2 + m3 = m. De asemenea, trebuie ţinut cont de cantităţile disponibile din fiecare
benzină Di, i = 1,...,n. Se cunosc caracteristicile fiecărei benzine disponibile, date într-o matrice A Ü
Mm n, unde aij este valoarea caracteristicii i pentru benzina j şi preţurile unitare ale fiecărei benzine,
notate pj, j = 1,...,n. Dacă notăm cu xj, j = 1,...,n, cantităţile din fiecare benzină care vor forma
amestecul optim, atunci avem de rezolvat problema:

 n 
min   p j ö  j 
xj
 j1 
n
 a ij ö x j  b1i i  1,..., m1
jn1
 a ö x Ê b 2 i  m1 1,..., m1 m 2
j1 ij j i

n
 a ij ö x j  b 3i i  m1 m 2 1,..., m
j1
x j Ê D j j  1,..., n
x  0 j  1,..., n
j

%#|##

Se observă că toate aceste probleme, cu toate că reprezintă situaţii economice total diferite,
sunt aplicaţii în sfera activităţii economice ale următoarei probleme de optimizare:


max sau
min
x 1 , x 2 ,..., x n 1.1

 
x1 , x 2 ,..., x n Ê b i i  1,..., n 1 .2
 1.3
x 1 , x 2 ,..., x n 

în care funcţiile ,  :
›
pot avea orice formă şi proprietăţi (liniare, convexe, continui,
diferenţiabile etc) iar A poate fi orice submulţime a lui
(continuă sau discretă, mărginită sau
nemărginită, convexă sau neconvexă, finită sau infinită etc) şi în care dorim să găsim minimul sau
maximul funcţiei în variabilele xi care îndeplinesc restricţiile 1.2 şi 1.3. O astfel de problemă se
numeşte !#||%#|##.
Funcţia (1.1) se numeşte funcţia obiectiv a problemei de optimizare. În aplicaţiile
economice, ea reprezintă criteriul de performanţă urmărit: maximizarea beneficiului, maximizarea
producţiei marfă, minimizarea costului producţiei, maximizarea gradului de încărcare al utilajelor
sau minimizarea timpului de staţionare al acestora, maximizarea veniturilor etc.
Inegalităţile (1.2), în care  sunt funcţii de variabile iar b sunt constante, se numesc
restricţii ale problemei de optimizare. Ele traduc în limbaj matematic condiţiile de natură economică
sau tehnologică în care se desfăşoară procesul economic modelat, cum ar fi: nedepăşirea stocurilor
disponibile de resurse (materii prime, capacităţi de producţie, forţă de muncă, fonduri băneşti, timp
etc), îndeplinirea sau depăşirea unor indicatori economici (producţia fizică, netă) etc.

11
Bazele cercetării operaţionale

Condiţiile (1.3), impuse "direct" variabilelor, depind de natura problemei studiate. De cele
mai multe ori, A este mulţimea vectorilor x = (xl,...,xn) Ü
cu toate componentele nenegative şi
acest fapt se justifică prin aceea că, în general, xi reprezintă "nivelele" unor activităţi de producţie,
nivele care nu pot fi negative. În unele probleme de optimizare, cum ar fi cele de croire sau
ordonanţare, variabilele desemnează mărimi indivizibile şi deci nu pot lua decât valori întregi.
Mulţimea A va fi formată în acest caz din vectori x cu toate componentele întregi şi nenegative. În
alte probleme, ca de pildă cele de afectare, portofoliu etc, variabilele nu pot lua decât valorile 0 sau
1 (variabile bivalente) şi ca atare A va fi formată din vectorii x = (x1, «,xn) cu toate componentele
0 sau 1. Caracteristic acestor tipuri de probleme este faptul că A devine o submulţime discretă din

, de unde şi numele generic de probleme de optimizare discretă dat acestora.


O soluţie a unei astfel de probleme are deci trei proprietăţi:

P1.|verifică restricţiile 1.2


P2.|verifică restricţiile "directe" 1.3
P3.|optimizează funcţia obiectiv pe mulţimea vectorilor care îndeplinesc condiţiile P1. şi P2.

În teoria programării matematice se folosesc, pentru claritatea şi simplitatea expunerii,


următoarele noţiuni:

 |a problemei de optimizare = un vector x Ü


care verifică restricţiile 1.2
 |#!|a problemei de optimizare = un vector x Ü
care verifică restricţiile 1.2 şi 1.3
M o soluţie care verifică restricţiile 1.3
 |#|a problemei de optimizare = un vector x Ü
care verifică restricţiile 1.2 şi
1.3 şi optimizează funcţia obiectiv pe mulţimea
tuturor vectorilor cu această proprietate
M o soluţie care verifică restricţiile 1.3 şi
optimizează funcţia obiectiv pe mulţimea
tuturor soluţiilor cu această proprietate
M o soluţie admisibilă care optimizează
funcţia obiectiv pe mulţimea soluţiilor
admisibile

Izvorâtă din studiul problemelor extremale ale analizei matematice clasice, programarea
matematică a cunoscut în ultimele decenii o dezvoltare spectaculoasă, explicabilă numai în parte
prin progresele înregistrate în matematică. Într-adevăr, această dezvoltare a fost puternic stimulată
de creşterea vertiginoasă a complexităţii activităţilor economice, care a furnizat probleme cu
structuri din ce în ce mai complicate, ca şi de rapida perfecţionare a mijloacelor automate de calcul,
singurele capabile să testeze eficienţa practică a metodelor teoretice elaborate. La rândul ei,
programarea matematică, prin rezultatele ei, a adus un considerabil aport la perfecţionarea
metodelor de conducere în economie şi a impulsionat cercetările - în plan teoretic - privind
modelarea sistemelor economice complexe, studiul şi interpretarea legilor şi proceselor economice.
În ceea ce priveşte rezolvarea acestor probleme, este evident că varietatea extremă a acestora
face imposibilă găsirea unui algoritm practic care să le poată rezolva pe toate, dar putem găsi (sau
ne putem aştepta să găsim), pentru fiecare caz particular, un algoritm de rezolvare care să-şi tragă
eficacitatea tocmai din folosirea tuturor particularităţilor cazului respectiv. În prezent există sute de
algoritmi de rezolvare, cercetarea problemei evoluând din ce în ce mai mult spre testarea şi
îmbunătăţirea acestora decât spre găsirea unora noi.

12
Bazele cercetării operaţionale

|
!#||%#||
|
á  1. Dacă într-o problemă de programare matematică funcţia obiectiv şi funcţiile
 , din restricţiile 1.2, sunt funcţii liniare atunci problema se numeşte problemă de programare
liniară. O problemă de programare liniară este, deci, un caz particular al problemelor de programare
matematică şi, ţinând cont de forma oricărei funcţii liniare, rezultă că forma generală a oricărei
probleme de programare liniară este:

max
min c 1 ö x 1 c 2 ö x 2 ... c n ö x n



a i1 ö x 1 a i2 ö x 2 ... a in ö x n b i i 1,..., n

0
x 1 , x 2 ,..., x n  0
oarecare

unde cj (coeficienţii funcţiei obiectiv), aij (coeficienţii restricţiilor) şi bi (termenii liberi) sunt
constate reale.

|
)#|||"#||| |!#||%#||
|
Cu toate că problema de programare liniară este cea mai simplă dintre problemele de
programare matematică, ea este încă destul de complicată, prin faptul că orice restricţie poate avea
trei forme diferite iar obiectivul poate fi minimizarea sau maximizarea funcţiei . Este puţin probabil
că există un algoritm şi simplu şi aplicabil la toate cazurile.
Din acest motiv este mult mai simplu să găsim o anumită formă (cât mai simplă) cu
proprietatea că pentru orice problemă P, există o alta problemă P' de această formă, echivalentă cu
problema iniţială P (spunem că două probleme sunt echivalente dacă există un izomorfism între
mulţimile soluţiilor celor două probleme şi un homeomorfism între funcţiile lor obiectiv) şi să
dispunem de un algoritm care să rezolve problemele de această formă şi de o regulă prin care să
găsim soluţia problemei iniţiale P din soluţia problemei P', găsită cu acest algoritm.
În acest sens (dar şi din cauza frecvenţei apariţiei lor în practică) s-au evidenţiat două forme
ale problemelor de programare liniară, "#| şi "#|.

á   2. Spunem că o problemă este la "#|  dacă are una din următoarele
două forme:

Forma canonică de minim Forma canonică de maxim



min c1 ö x1 c2 ö x2 ... cn ö xn 
max c1 ö x1 c2 ö x2 ... cn ö xn


 i1 ö x1 ai2 ö x2 ... ain ö xn  bi i
a 1,...,n 
ai1 ö x1 ai2 ö x2 ... ain ö xn bi i 1,...,n
x1, x2,...,xn  0 
x1, x2,...,xn  0

Această formă este cel mai des întâlnită în practică (vezi problema determinării structurii
sortimentale optime a producţiei sau problema dietei) şi, în plus, restricţiile economice sunt în
general inegalităţi şi foarte rar egalităţi. De asemenea, această formă este invariantă la anumite
transformări (vezi problema duală) şi asigură existenţa soluţiei (orice problemă la această formă,
care are termenii liberi şi coeficienţii restricţiilor pozitivi, are soluţie).

13
Bazele cercetării operaţionale

á  3. Spunem că o problemă este la "#| dacă are forma:



min sau
max c1 ö x1 c2 ö x2 ... cn ö xn

 i1 ö x1 ai2 ö x2 ... ain ö xn bi i 1,...,n
a
x1, x2,...,xn  0

Această formă, deşi nenaturală din punct de vedere economic, este cea care se pretează cel
mai bine la rezolvarea cu metodele algebrei clasice.


. Pentru orice problemă de programare liniară P există o problemă la forma
canonică PFC şi o problemă la forma standard PFS echivalente cu P.

á 
. Într-adevăr:

a)| orice problemă de maxim poate fi transformată în una de minim şi reciproc folosind relaţia:

max (x) = ± min (±x)

b)| orice restricţie de tipul " " poate fi transformată într-o restricţie de forma "" şi reciproc
folosind relaţia:

M ±  ±

c)| orice restricţie inegalitate poate fi transformată în egalitate, prin introducerea unei variabile
suplimentare nenegative şi folosind relaţiile:

 x 
 x


M   x0 şi  
M   x0
 
Toate variabilele introduse pentru transformarea inegalităţilor în egalităţi se numesc _!||
! sau _!||#.

d)| orice restricţie egalitate poate fi transformată în restricţii inegalitate, folosind relaţia:

=
M 
 

e)| orice variabilă cu restricţie de semn negativă (x 0) poate fi înlocuită cu o variabilă cu restricţie
de semn pozitivă (y  0), folosind relaţia:

x -y
x 0M 
y  0


f)| orice variabilă fără restricţie de semn poate fi înlocuită cu două variabile cu restricţie de semn
pozitivă, folosind relaţia:

x  y-z

x oarecare M  y  0

z  0

14
Bazele cercetării operaţionale

Se demonstrează fără un efort matematic deosebit că dacă P' se obţine din P folosind doar
transformările de mai sus (numite şi transformări elementare) atunci P şi P' sunt două probleme
echivalente şi între soluţiile lor optime există o bijecţie.
Din cele de mai sus rezultă  # poate fi adusă orice problemă de programare liniară la
forma standard (sau canonică) şi  # se obţine soluţia problemei iniţiale din soluţia problemei la
forma standard (sau canonică).

R: Problemei P de mai jos îi corespunde problema la forma standard PFS alăturată:

P PFS

(min) = 3x1 ±2x2 + 4x3 (max) = +3a1 + 2y2 ± 2z2 ± 4x3


9x 1 13x 2 15x 3 16  9a 1 13y 2 13z 2 15x 3 x 4 16
l19x 1 36x 2 6 x 3  9 l 19a 1 36y 2 36z 2 6 x 3 x 5 9
l l
 7 x 1 7 x 2 14x 3 21  7a 1 7 y 2 7z 2 14x 3 x 6 21
l 3x 1 30x 2 5x 3 31 l 3a 1 30y 2 30z 2 5x 3 x 7 31
lx 1 0, x 2 oarecare, x 3  0 l a1 , y 2 , z 2 , x 3 , x 4 , x 5 , x 6 , x 7  0

Problema PFS are o singură soluţie optimă:


4 77 154
a1 = 3, y2 = , z2 = 0, x3 = 0, x4 = , x5 = 0, x6 = , x7 = 0
3 3 3
35
care dă un maxim al funcţiei egal cu .
3
Acestei soluţii îi corespunde singura soluţie optimă pentru P:
4
x1 = -3, x2 = , x3 = 0
3
35
care dă un minim al funcţiei , egal cu .
3

&_|!#||%#|*

&|!#|
|
Fie o problemă P despre care presupunem (fără a restrânge generalitatea) că a fost adusă la
forma standard. De asemenea presupunem (tot fără a restrânge generalitatea) că variabilele
problemei au fost numerotate şi denumite xj cu 4 = 1,..., ( = numărul de necunoscute), coeficienţii
variabilelor din funcţia obiectiv cu c4 (c4 = coeficientul variabilei xj), că în ecuaţii variabilele apar
în ordinea indicilor, ecuaţiile fiind numerotate de la 1 la m (m = numărul de ecuaţii) şi că am notat
cu bi termenul liber al ecuaţiei i şi cu aij coeficientul variabilei j din ecuaţia i. În acest caz putem
aşeza variabilele problemei într-un vector cu n componente, coeficienţii funcţiei obiectiv într-un
vector cu n componente, termenii liberi într-un vector cu m componente, coeficienţii variabilelor
din ecuaţii într-o matrice cu m linii şi n coloane şi vom avea:

 x1   c1   b1   a 11 a 12 V a 1n 
  c  b  a a 2n 
x = x2  , c =  2 , b=  2 , A=  21
a 22

V

       
xn  cn  bn   a m1 a m2 V a mn 

(vom nota cu xT, cT şi bT transpuşii acestor vectori şi cu AT transpusa matricei A).

15
Bazele cercetării operaţionale

Alegerea aşezării ca vectori coloană a fost făcută din raţiuni de uşurinţă a calculelor şi a
memorării acestora. După aceste notaţii, problema poate fi scrisă mult mai simplu:


min cT ö x
max cT ö x
Aöx b
 x0
sau A ö x b
 x0

Se ştie că un sistem de forma Aö x = b are soluţie doar dacă rang(A) = rang( A ), unde A este
matricea extinsă obţinută adăugând matricei A vectorul b, în acest caz sistemul devenind echivalent
cu sistemul obţinut prin eliminarea restricţiilor care nu corespund minorului principal (dacă sistemul
nu are soluţie atunci evident nici problema nu are soluţii, caz care este total neinteresant).
Presupunem că au fost eliminate aceste restricţii. Dacă rang A = n atunci sistemul are o
singură soluţie care, dacă este admisibilă, este şi soluţia optimă căutată, altfel problema nu are
soluţie. Este evident că şi acest caz este la fel de neinteresant ca primul.
Presupunem deci în continuare că:

%+,|-|#|.||

Rezolvarea sistemului Aö x = b se poate face într-un mod simplu (cel puţin teoretic) folosind
algebra matricială astfel:
| împărţim coloanele matricei A în două submatrici: minorul principal (notat cu B, care
este o matrice pătratică de dimensiune m şi va fi numit !&| | #  ) şi restul
coloanelor (notat cu S, care este o matrice cu  linii şi ±  coloane);
| împărţim variabilele problemei în doi vectori: vectorul variabilelor principale
(corespunzătoare coloanelor bazei) şi vectorul variabilelor secundare (notat cu xS).
Făcând eventual o renumerotare, pentru uşurinţa expunerii şi fiind evident că nu se
restrânge generalitatea problemei, presupunem că variabilele principale sunt chiar
primele m (această presupunere va fi făcută de câte ori va fi posibil, fără a mai specifica
acest lucru).
| aducem succesiv sistemul la forma de mai jos:

Aö x = b M (BS)ö  B  = b M Bö xB + SöxS = b M Bö xB = b ± SöxS M xB = B-1öb ± B-1öSöxS


x
 xS 
| soluţia sistemului va fi submulţimea lui
:

DB = {x = {xB,xS} / xS Ü
n-m oarecare, xB = B-1ö b ± B-1öSöxS}

Orice alegere a lui xS dă o soluţie. Dintre toate alegerile posibile este remarcabilă (prin
simplitatea ei) soluţia xS = 0, care duce la soluţia particulară:
B 1b
 0 
 =  0  n ± m zerouri
B
 
 0 
 
numită  | | !&| | !&| /. Deci xB este B = B-1öb la care se adaugă n-m
zerouri. Cu toate acestea, vor fi ambele numite soluţie de bază, rezultând din context de care
este vorba.

 
: Este evident că fiecărui minor principal al sistemului (= minor de
dimensiune m = bază) îi corespunde o unică soluţie de bază. O soluţie de bază care are toate

16
Bazele cercetării operaţionale

componentele nenule strict pozitive se va numi  | | !&| #! iar o soluţie
optimă care este de bază se va numi  |#||!&. Se observă că o soluţie de bază
are cel mult m componente diferite de 0. Din cauza importanţei lor în rezolvarea problemei,
vom evidenţia soluţiile de bază care au mai puţin decât m componente nenule, numite  |
% şi pe cele care au fix m elemente nenule, numite  |%.
DB este izomorfă cu
, adică are tot atâtea elemente câte puncte sunt într-un spaţiu cu
n_ ±_ m dimensiuni. "Alegându-le" din acestea doar pe cele cu toate elementele pozitive,
găsim mulţimea în care vom "căuta" vectorul (vectorii) care dă (dau) extremul lui .

Rezolvarea problemei poate duce la următoarele rezultate:


R1.|Sistemul Aö x = b nu are soluţii sau nu are soluţii admisibile. În acest caz problema nu
are soluţie.
R2.|Imaginea funcţiei obiectiv pe mulţimea soluţiilor admisibile este nemărginită (la +ã
într-o problemă de maxim sau la -ã într-o problemă de minim). În acest caz spunem
că problema are optim infinit.
R3.|Imaginea funcţiei obiectiv pe mulţimea soluţiilor admisibile este mărginită. În acest
caz problema are cel puţin o soluţie şi spunem că problema are optim finit.
Greutatea găsirii soluţiei problemei constă în imensitatea numărului de soluţiilor posibile ale
sistemului şi în respectarea condiţiei de nenegativitate a celor printre care căutăm extremul dorit al
funcţiei . Este natural ca primele încercări în rezolvare să caute în primul rând o limitare cât mai
puternică a locului în care căutăm. Pe baza unor reprezentări geometrice ale problemei au fost
descoperite următoarele proprietăţi ale problemei, care poartă denumirea de #|" #
ale programării liniare:

!
1. Dacă problema de programare liniară are soluţii admisibile atunci are şi  |
|!&|#!.

!
 2. Dacă problema de programare liniară are soluţii optime atunci are şi  |
#||!&.

!
 3. Mulţimea soluţiilor admisibile (optime) este închisă şi convexă. Dacă este şi
mărginită atunci punctele extremale ale acesteia sunt chiar soluţiile admisibile
(optime) de bază ale problemei.

Cele două teoreme realizează efectiv trecerea către o problemă rezolvabilă pe calculator.
Într-adevăr, deoarece o bază este un minor de ordinul m al matricii A şi unei baze îi corespunde o
unică soluţie de bază rezultă că sunt cel mult C m n soluţii de bază, adică un număr finit. În acest
moment s-ar părea că nu avem decât să lăsăm calculatorul să calculeze toate soluţiile de bază şi
valorile funcţiei obiectiv în cele admisibile găsind-o prin comparare pe cea care dă minimul sau
maximul funcţiei printre acestea. Totuşi, această variantă se dovedeşte nepractică la o analiză mai
atentă, ţinând cont de următoarele observaţii:
1.| faptul că numărul soluţiilor de bază este finit ne asigură doar că problema se va termina
cândva, ceea ce, din punct de vedere economic, este evident nemulţumitor. Noi dorim ca
problema să fie rezolvată în timp util, adică repede. Rezolvând problema ca mai sus vom
avea, pentru o problemă cu 50 variabile şi 20 restricţii, de calculat, listat şi comparat
20 20
50 soluţii de bază, adică în jur de 10 . Presupunând că suntem dotaţi cu un
supercalculator care ar termina un miliard de baze pe secundă, rezolvarea ar dura 3000
ani. De altfel, o problemă ca cea de sus este foarte mică în comparaţie cu problemele
"serioase" ce au peste 1000 de variabile şi 100 de restricţii. În plus, un calculator ca cel
de sus nu există încă, deci în nici un caz nu e disponibil întreprinderilor obişnuite.
2.| u algoritmul de mai sus vom găsi cea mai bună soluţie dintre soluţiile admisibile de

17
Bazele cercetării operaţionale

bază, fără însă să ştim dacă problema admite, de fapt, optim (ar putea să aibă optim
infinit).
3.| Nu vom şti dacă un minor de m m este bază decât după ce-i vom calcula determinantul
şi nu vom şti dacă soluţia de bază corespunzătoare este admisibilă decât după ce o vom
calcula.
4.| Soluţia optimă, odată găsită, nu va fi recunoscută ca atare decât după ce vom calcula
toate celelalte soluţii de bază, chiar dacă ea a apărut chiar la începutul calculelor.

În concluzie, pentru a fi eficient, un algoritm ar trebui să aibă următoarele proprietăţi:

a)| să dispună de un criteriu de recunoaştere a faptului că problema nu are soluţii admisibile;


b)| să dispună de un criteriu de recunoaştere a faptului că problema are optim infinit;
c)| să dispună de un criteriu de recunoaştere dacă o soluţie este optimă sau nu;
d)| să treacă de la o soluţie de bază admisibilă la una cel puţin la fel de bună (o soluţie x este
mai bună decât o soluţie y dacă (x) > f(y) într-o problemă de maxim şi (x) < f(y) într-o
problemă de minim;
e)| să treacă de la o soluţie la cea mai bună dintre soluţiile cel puţin la fel de bune posibile
ca succesoare;
f)| să nu revină la o soluţie deja analizată;
g)| să efectueze un număr de iteraţii comparabil polinomial cu dimensiunea problemei.
h)| să nu introducă erori de rotunjire (sau nu prea mari);
i)| să fie cât mai simplu de implementat;

Condiţiile de mai sus reprezintă de fapt un algoritm ideal. La începuturile cercetării


operaţionale era suficient, de fapt, şi un algoritm care să îndeplinească măcar condiţiile b), c), d), e)
şi h). Acest algoritm a fost dat de G.B. Dantzig, în 1947, care la numit %# | #'. El
rămâne şi în zilele noastre cel mai eficient algoritm în ceea ce priveşte viteza de lucru, simplitatea şi
implementarea pe calculator, pentru problemele care apar efectiv în practica economică.
Totuşi, el nu îndeplinea condiţiile a), f) şi g).
Condiţia a) este relativ uşor de îndeplinit şi ea este acoperită prin introducerea unei faze
iniţiale suplimentare la algoritmul simplex, rezultând %# |#'|| |"&.
Condiţia f) a fost pusă în momentul în care s-a observat că, în condiţiile existenţei soluţiilor
degenerate, se poate ajunge în situaţia când, de la o soluţie dată, nu se poate ajunge decât la una la
fel de bună şi tot aşa, astfel încât, dacă nu se iau măsuri de evitare, se poate ajunge la o soluţie care
a mai fost, fenomen numit . Astfel de exemple a fost efectiv găsite, unul fiind '# | |
/ prezentat mai jos:

3 1

max  x 4 20 x 5 x 6 6x 7
4 2
 1
x 1 x4 8x 5 x6 9x 7 0
4

 1 1
 x2 x4 12x 5 x6 3x 7 0
 2 2
 x3 x6 1

 x i  0, i  1,...,7

Se observă imediat baza admisibilă B0 = (a1,a2,a3), de la care, aplicând algoritmul sub forma
clasică, se vor obţine succesiv bazele admisibile B1 = (a4,a2,a3), B2 = (a4,a5,a3), B3 = (a6,a5,a3), B4 =
(a6,a7,a3), B5 = (a6,a2,a3), B6 = (a4,a2,a3) ... . Cititorul poate verifica uşor că toate aceste baze au ca
soluţie de bază soluţia (0,0,1,0,0,0,0) şi valoarea funcţiei 0, dar nu îndeplinesc condiţia de optim. Pe

18
Bazele cercetării operaţionale

de altă parte se vede că B6 = B1 şi deci algoritmul va repeta la infinit această succesiune de baze,
7 3
neatingând niciodată valoarea maximă , corespunzătoare soluţiei ( ,0,0,1,0,1,0).
4 4
Această situaţie este îngrijorătoare nu atât din considerente practice imediate (încă nu a fost
găsită o problemă din practică la care să apară acest fenomen, toate exemplele existente fiind
artificial construite, ca şi cel de mai sus) cât din faptul că un algoritm implementat pe calculator s-ar
putea să fie pus în faţa unei astfel de probleme, situaţie în care n-am putea rezolva problema nici pe
calculator, nici manual, ea fiind prea mare. Situaţia a fost depăşită prin diferite tehnici suplimentare
adăugate celei de trecere la o soluţie cel puţin la fel de bună (insuficientă, cum s-a văzut), cea mai
cunoscută fiind cea care foloseşte | '%" a soluţiilor, care va fi prezentată şi în
această carte.
În fine, referitor la condiţia g), a durat mult timp până s-a demonstrat că algoritmul, sub
această formă,  |||#|#, un exemplu fiind clasa de probleme de mai jos, găsită
de Klee şi Minty în 1972, în care algoritmul trebuie să analizeze 2 baze ( = numărul de
necunoscute) până la găsirea celei optime.

n 

max   10 n-
x

1
 i -1  

 2 ö 10 i- x   x i Ê 100 i-1 i  1,..., n
  1 
 

 x  0  1,..., n

Pentru o astfel de problemă, la 100 de variabile, algoritmul va avea 2100  1030 iteraţii, şi
chiar la o viteză de un miliard iteraţii pe secundă (mult peste puterea unui calculator actual) va
termina în 1013 ani.
Nu se ştie încă dacă există sau nu o altă modalitate de trecere de la o bază la alta, folosind
tabelele simplex, prin care algoritmul să devină în timp polinomial. Au fost însă găsiţi algoritmi
care nu folosesc tabelele simplex, primul fiind algoritmul de punct interior al lui Karmakar, despre
care s-a demonstrat că lucrează în timp polinomial.
În ceea ce priveşte erorile de rotunjire, inevitabile când se fac calculele pe un calculator,
algoritmul se comportă într-adevăr foarte rău, orice eroare propagându-se imediat la tot tabelul cu
efecte foarte mari. Acest lucru poate fi însă depăşit aplicând o variantă a algoritmului, numită

 
 a algoritmului simplex.
Toate punctele slabe ale algoritmului, amintite mai sus, nu au înmormântat însă algoritmul
simplex, deoarece folosirea acestuia aduce informaţii mult mai ample decât găsirea soluţiei propriu-
zise, este mult mai maleabil în cazul modificărilor ulterioare ale datelor problemei (vezi analiza
senzitivităţii soluţiei la datele problemei), se pretează mult mai bine la interpretări economice, este
uşor de scris un program de calculator asociat, este implementat pe foarte multe calculatoare şi în
plus, aşa cum aminteam mai sus, încă 
    
YY
în faţa căruia să clacheze.
Noii algoritmi rămân doar ca alternative teoretice sau pentru cazurile în care algoritmul simplex este
lent, dar ei nu-l pot înlocui complet.

) #|##||%#  ||#'|
|
|
Algoritmul simplex pleacă de la presupunerea că  #|0 de o soluţie admisibilă de
bază xB, corespunzătoare unei baze B. De asemenea, presupunem că am rezolvat sistemul Aö x = b
folosind această bază, rezultând astfel variabilele principale în funcţie de cele secundare:

19
Bazele cercetării operaţionale

xB = B-1öb ± B-1öSöxS

Înlocuind variabilele, cu formula găsită, în funcţia obiectiv, obţinem:

(x) = c T ö(B-1ö b ± B-1ö SöxS) + c ST öxS = c TB öB-1öb ± ( c TB ö B-1öS ± c ST )öxS =


= (B) ± ( c TB öB-1öS ± c ST )öxS = (B) ± (z± c T )öxS = (B) ± ÖöxS

unde:
| (B) = c TB öB-1öb este valoarea funcţiei obiectiv în soluţia de bază
| c TB ö B-1öS = z este un vector n-m componente z = (zm+1 , zm+2 ,...,zn).
| Ö = z ± c T este un vector n-m componente Ö = (Öm+1 , Öm+2 ,..., Ön)

Obţinem următoarea formă a problemei:


! n

max sau
min 
 Ö öx
m 1
 n
x i

a
m 1
i ö x  i i  1,..., m
 x  0,  1,..., n


Din motive de organizare şi concentrare a datelor problemei, Danzig le-a trecut pe acestea
într-un tabel ca cel de mai jos, numit !|#'.

c1 c2 ... c m cm+1 ... cn


cB xB B x1 x2 ... x m xm+1 ... xn
c1 x1
c2 x2
B-1ö b Im B-1öS
cm xm
(B) 0 z m+1 ... zn
0 Öm+1 ... Ön

Fiecărei soluţii de bază îi corespunde un tabel simplex şi reciproc, deci, de fiecare dată când
vom vorbi de un tabel simplex, vom spune şi care este baza asociată.
Din forma funcţiei obiectiv se vede că:

| ð 

  :
# n
B
 este soluţie optimă M

"
" ö x"
 B
oricare ar fi xS  0 M
m 1
n
$ ö x $  0 oricare ar fi xS  0 $  0,
$ 
M M = 1,...,n (|Ö0| |&_)
m 1
| ð 

   :
& n
B este soluţie optimă M

% 
% ö x% 
 B
oricare ar fi xS  0 M
m 1

20
Bazele cercetării operaţionale
n
M «Ö
j m 1
j öxj 0 oricare ar fi xS  0 M Öj 0, j = 1,...,n (|Ö0|%_)

Pentru a evita complicarea expunerii vom presupune în continuare că 


   
, pentru cazul de minim raţionamentul fiind analog.
Rezultatul obţinut reprezintă criteriul de recunoaştere a optimalităţii soluţiei sau, mai
simplu,  ||#.
Dacă soluţia nu este optimă atunci există evident o altă soluţie de bază admisibilă mai bună.
Se poate demonstra că dacă x şi y sunt două soluţii admisibile de bază cu (x) (y) şi numărul de
variabile principale prin care diferă cele două este k, cu 1 k m, atunci există un şir de soluţii
admisibile de bază: {x1 = x, x2, ..., x k = y} astfel încât:

1.| (xi) (xi+1 ) oricare ar fi 1 i < k


2.| xi diferă de xi+1 printr-o singură variabilă, oricare ar fi 1 i<k

Din cele de mai sus rezultă că e suficient să căutăm o soluţie de bază admisibilă mai bună
doar printre cele care diferă de cea actuală printr-o singură variabilă.
Trebuie deci să găsim acea variabilă principală care iese din bază şi acea variabilă secundară
care intră în bază. Rezultatul schimbării trebuie să fie:

1.| o soluţie de bază (deci coloanele corespunzătoare noii variabile să formeze un minor
principal);
2.| o soluţie admisibilă (adică să aibă toate componentele pozitive);
3.| o soluţie mai bună;
4.| cea mai bună posibilă dintre soluţiile mai bune.

Presupunem că înlocuim variabila principală xi (1 i m) cu variabila secundară xj (m+1 j


m). Aceasta este echivalent cu a scoate din ecuaţia i (singura în care apare xi) variabila xj, în
funcţie de variabila xi şi de celelalte variabile secundare. Este evident că acest lucru (care este
echivalent cu faptul că noua soluţie trebuie să fie de bază) este posibil doar dacă coeficientul lui xj
din această ecuaţie este diferit de 0 (0|ƒ|1). În acest caz avem succesiv:

n n
a ik
' 
1 1
xi + a ik ö x k + 0ö xj = i M xj + öxk + öxi = öi M
k m 1 k m 1 a ij a ij a ij
k k j
n
a ik

1 1
M xj = öi ± öxk ± ö xi
a ij k  m( 1 a i
( a i(
k
Înlocuind variabila x4 în celelalte ecuaţii obţinem:

n n
a ik

1 1
xs + «
k m 1
a sk ö x k + asj ö(
a ij
ö i ±
k  m) 1 a i
) ö xk ±
a i)
öxi ) = s M
kƒ j k
n
 a ik  a a*
M xs + «  a
k m 1
sk a sj ö
a ij
 ö x k ± sj öxi = s ± s öi pentru s = 1,...,m şi s ƒ i

 a ij a i*
kƒ j

Conform formulelor de mai sus rezultă că noua soluţie de bază este admisibilă dacă:

21
Bazele cercetării operaţionale

a s+  
s ± öi  0 oricare ar fi s =1,...,m diferit de i M ||  |||"||-23***3#3||ƒ|
a i+  0  0
şi în urma schimbării noua soluţie de bază va fi:
1 a s,
j= öi şi   = s ± öi pentru s ƒ i
a ij a i,
În concluzie, dacă ne hotărâm să introducem în bază variabila j, % |_!|| |
|  | + | |  |  | | "| #!| | !&, nu poate fi decât aceea care
corespunde acelui aij |&_ din coloana j din matricea B-1öS, pentru care se obţine valoarea
minimă a rapoartelor dintre componentele soluţiei de bază actuale şi componentele coloanei j.
Pentru evidenţierea acestora, ele se notează cu s şi avem:
  
|-| # ë  |
2  #  0 
 1  0

|
Condiţia de mai sus este numită  ||||!&.
Mai înainte am văzut ce efect are schimbarea unei variabile din bază asupra sistemului. Este
important însă să vedem efectul ei şi asupra funcţiei obiectiv. Valoarea funcţiei obiectiv în noua
soluţie de bază va fi:
.

(  B) =  B Ö j ö x j =  - ö
1

a i-
ö i

Pentru ca această soluţie să fie cel puţin la fel de bună trebuie ca:

/ 1 i  0
(  )  (B) M
 0 ö
1
a i0
ö  i  (B) M 2 ö ö  i Ê 0
1
a i2
 Öj 0
a i3  0

În concluzie, dacă vrem să obţinem o soluţie strict mai bună vom alege o variabilă xj
corespunzătoare unui Öj < 0. Noua soluţie va exista efectiv doar dacă pe coloana j din matricea B-1öS
există o componentă aij strict pozitivă şi va fi efectiv strict mai bună doar dacă componenta
1
corespunzătoare i din soluţia de bază este diferită de 0, îmbunătăţirea fiind egală cu Ö j ö ö i .
a ij
Situaţia în care toate componentele coloanei j din matricea B-1öS sunt mai mici sau egale cu
0 este lămurit de următoarea teoremă:

!
 : Dacă pe coloana j din matricea B-1öS, corespunzătoare unei variabile xj cu Ö0|.|1,
|#| |#|#| |%| |& atunci problema are #|".

á 
: Fie o soluţie particulară a sistemului, în care variabila secundară xj =  > 0, 
oarecare iar celelalte sunt 0. În acest caz, variabilele principale vor fi: :i =i ± aijö şi vor fi toate
pozitive, ţinând cont de faptul că toţi aij 0 şi, deci, soluţia va fi admisibilă. Pentru o astfel de
soluţie, valoarea funcţiei obiectiv este:

(:) = (B) ± Öjö. şi avem: lim


:   

deci imaginea funcţiei f este nemărginită şi afirmaţia este demonstrată.
Presupunem în continuare că există o componentă aij strict pozitivă. Deoarece dorim să
trecem la cea mai bună dintre bazele posibile, vom alege dintre toate variabilele cu Öj < 0, pe cea
pentru care se obţine:

22
Bazele cercetării operaţionale

 
 4 ö min  i 
max 4
m 1Ê Ê n  1Ê i Ê m a 4 
5 0  a i5  0 i 
 
Această condiţie este  ||||!&.
Deoarece calculul necesar găsirii acestuia este laborios, Danzig a preferat înlocuirea acestei
alegeri cu alegerea acelui j care corespunde celui mai negativ Öj (= ± max
Ö j ), variantă care
m 1 j n
Ö j 0

este uşor de aplicat, îmbunătăţeşte soluţia şi prin care se obţine, în marea majoritate a cazurilor,
acelaşi j.
În acest moment ştim cum să găsim o soluţie mai bună, dacă ea există şi am putea calcula
din nou elementele necesare analizării noii soluţii, din tabelul simplex, folosind formulele fiecăruia:

B = B-1ö b
z = c 6T ö -1ö A
Ö=z±c

Acest mod de lucru este efectiv folosit în anumite variante ale algoritmului simplex (vezi
forma revizuită) dar el presupune calcularea inversei matricei , ceea ce necesită foarte mult timp.
Acest motiv era suficient de convingător pentru ca Danzig să-şi fi pus problema dacă nu cumva
noul tabel simplex poate fi calculat pe baza fostului tabel simplex, făcând mult mai puţine calcule şi
utilizând formule uşor de memorat şi aplicat. Această întrebare era natural de pus, dacă ţinem cont
că noua soluţie diferă de fosta soluţie printr-o singură variabilă. Aceste formule au fost efectiv
găsite, ele putând fi obţinute urmărind efectul înlocuirii lui xi cu xj asupra sistemului:

| noua soluţie de bază  7 se obţine din fosta soluţie cu formulele deja găsite mai sus:

1
 j= ö i şi
a ij
a s8
  = s ± öi pentru s ƒ i
a i8

| noii coeficienţii ai variabilelor în cele m ecuaţii vor fi:

1.| variabilă principală xs va avea coeficientul 1 în ecuaţia k şi 0 în celelalte ecuaţii;


a
2.| o variabilă secundară xk, diferită de xi, va avea coeficienţii a sk a sj ö ik în
a ij
a ik
ecuaţiile s ƒ i şi coeficientul în ecuaţia i.
a ij
a s9
3.| noua variabilă secundară xi va avea coeficienţii ± în ecuaţiile s ƒ i şi coeficien-
a i9
1
tul în ecuaţia i.
a ij
:
4.| noua valoare a funcţiei obiectiv va fi: (  ) =
 B
Öj ö
1
a ij
ö i

5.| noii Öj îi obţinem înlocuind în funcţia obiectiv variabila xj în funcţie de xi:

23
Bazele cercetării operaţionale
n n
a ik 1 1
(x) = (  ) ± B
«Ö
k m 1
k ö x k ± Öjö(± «
k m 1 a ij
öxk ±
a ij
ö xi +
a ij
öi) =
kƒ j kƒ j

< n
   Ö 
=
 ; ö
1
a i;
ö i ± «  Ö k Öj
a ik
a ij
 ö xk ± j
  a ij
 öxi =

k m 1   
kƒ j

= n
   > 
>
a ik
= ( )± > 
k m 1
k
a i>
öxk ±


 a>
 i
 öxi


k

a ik >
de unde rezultă că k  k > pentru k i şi i 
a i> a i>

Deşi par să fie foarte multe formule complicate, frumuseţea algoritmului şi meritul lui
Danzig constă tocmai în faptul că toate respectă o regulă vizuală uşor de memorat, numită % |
 %$  , aşa cum se va vedea în algoritmul simplex.

( ||4 5|


|
Reamintim că presupunem că problema este la forma standard |#'# şi că dispunem de
o soluţie de bază admisibilă.

 |2*| Se construieşte tabelul simplex corespunzător bazei de care dispunem în ordinea
următoare:
1.| pe linia a doua se trec toate variabilele într-o ordine oarecare;
2.| pe prima linie se trec coeficienţii funcţiei obiectiv, fiecare deasupra variabilei
corespunzătoare;
3.| se construieşte matricea A, fiecare coloană fiind formată din coeficienţii unei
variabile din toate ecuaţiile (ordinea în care se parcurg ecuaţiile trebuie să fie aceeaşi
pentru toate variabilele), având grijă ca, coloanele să fie trecute în ordinea în care au
fost trecute variabilele pe linia 2;
4.| se construieşte baza B, ordinea coloanelor fiind cea în care apar ele în matricea A;
5.| se calculează B-1;
6.| se calculează B-1ö A şi se trece în partea centrală a tabelului;
7.| se trec variabilele principale în a doua coloană, în aşa fel încât, la intersecţia liniei şi
coloanei corespunzătoare acestei variabile, să se afle valoarea 1.
8.| se trec în prima coloană coeficienţii corespunzători variabilelor principale din funcţia
obiectiv, fiecare în dreptul variabilei corespunzătoare;
9.| se calculează soluţia de bază cu formula B-1ö b, având grijă ca ordinea în care au fost
trecuţi termenii liberi în vectorul b să fie aceeaşi cu ordinea în care au fost parcurse
ecuaţiile la formarea matricii A;
10.|se trec în a treia coloană valorile variabilelor principale din soluţia de bază, fiecare în
dreptul variabilei corespunzătoare;
11.|se calculează (B) înmulţind două câte două componentele coloanei 1 cu cele din
coloana 3 aflate pe aceeaşi linie şi adunând toate produsele între ele (adică facem
produsul scalar dintre cB şi B);
12.|se calculează pe rând fiecare zj j = 1,...,n un zj obţinându-se înmulţind scalar cB cu
coloana j din B-1ö A aflată în centrul tabelului (această linie se calculează şi se trece
doar în primul tabel, scopul ei fiind calcularea lui Ö);
13.|se calculează pe rând fiecare Öj j = 1,...,n scăzând din linia lui z linia lui c (Öj = zj - cj)
24
Bazele cercetării operaţionale

 |6*| Se analizează valorile Öj corespunzătoare variabilelor secundare (e uşor de văzut că


întotdeauna, cei corespunzători variabilelor principale sunt toţi 0, deci neinteresanţi).
| dacă toţi sunt mai mari sau egali cu 0 atunci soluţia actuală este cea optimă. Dacă
există Öj = 0 în afara bazei, atunci pot apărea două cazuri:
1)| toate elementele din coloana aj din B-1ö A sunt mai mici sau egale cu 0.
Atunci toate soluţiile de forma B - ajö sunt soluţii optime, unde  > 0
oarecare;
2)| există o componentă aij a coloanei aj strict pozitivă. Atunci introducând
variabila xj în bază în locul variabilei principală xi obţinem altă soluţie de
bază optimă.
Dacă apar numai cazuri de tipul 2), obţinem toate soluţiile de bază optime, mulţimea
tuturor soluţiilor optime fiind formată din toate combinaţiile convexe ale acestora.
Dacă apare şi cazul 1) atunci  
   
  fiind
formată din combinaţiile convexe ale soluţiilor de forma B - ajö unde B sunt toate
soluţiile optime de bază.
| dacă există Öj < 0 atunci îl alegem pe cel mai negativ: Ök = min Ö j . Variabila xj
m 1 j n
Ö j 0

va fi cea care intră în noua bază. Dacă minimul este multiplu atunci alegem, la
întâmplare, unul dintre aceştia (cei minimi).
 |7*| Se analizează elementele coloanei aj din B-1ö A, corespunzătoare variabilei alese la pasul 2.

| Dacă toate sunt mai mici sau egale cu 0 atunci problema are optim infinit şi
algoritmul ia sfârşit;
| Dacă există componente strict pozitive, pentru acestea se calculează rapoartele s|

-| s *| Variabila xi corespunzătoare raportului minim este cea care va ieşi din
a sj
bază. Dacă acest minim este multiplu sunt posibile două cazuri:
1)| minimul este strict pozitiv. În acest caz se alege unul dintre aceştia la
întâmplare;
2)| minimul este 0. Atunci i corespunzători sunt 0, deci soluţia este
degenerată şi noua soluţie este la fel de bună. Această situaţie poate duce
la ciclarea algoritmului şi alegerea la întâmplare nu mai este suficientă,
fiind nevoie de o regulă de alegere suplimentară care să evite ciclarea. O
metodă de alegere se bazează pe faptul că, aşa cum vom vedea,
întotdeauna prima bază este matricea unitate şi în dreptul ei, în toate
tabelele simplex, se va afla inversa bazei corespunzător fiecăruia. În acest
caz, pentru poziţiile în care s-a obţinut minimul ##|#||
|  | /82| | | 0 şi alegem minimul dintre aceste rapoarte. Dacă
minimul dintre aceştia este tot multiplu continuăm procedeul, pentru
poziţiile ce dau noul minim, cu coloana a doua din B-1 şi aşa mai departe,
până minimul rămâne unic. Nu este posibil să se epuizeze toate coloanele
lui B-1 şi minimul să rămână multiplu, deoarece, în acest caz, am avea:
b i1 jk b i 2 jk
, pentru toţi indicii jk ai coloanelor lui B-1, i1 şi i2 fiind doi
a i1 j a i2 j
din indicii care dau acelaşi minim până la sfârşit sau altfel scris
b i1 jk a i1 j
pentru orice jk  liniile i1 şi i2 din B-1 sunt proporţionale,
b i 2 jk a i 2 j
fapt ce contrazice faptul că B-1 este inversabilă.
25
Bazele cercetării operaţionale

 |9*| Se calculează componentele tabelului simplex corespunzător noii baze pe baza tabelului
actual şi folosind următoarele reguli:
1.| se încadrează elementul aij, aflat la intersecţia coloanei variabilei care intră în bază
cu linia variabilei care iese din bază, care a fost numit de Danzig _, într-un
dreptunghi
2.| coloana pivotului va avea 1 în dreptul pivotului şi 0 în rest (inclusiv Öj);
3.| linia pivotului este linia actuală împărţită la pivot (inclusiv în soluţia de bază);
4.| restul elementelor se calculează cu regula dreptunghiului (inclusiv soluţia de bază,
Ö şi (B)). Regula dreptunghiului se bazează pe observaţia că în toate formulele
prin care se calculează acestea nu apare decât valoarea lor actuală, pivotul şi cele
două elemente care ar completa dreptunghiul ce are poziţia de calculat şi pivotul
pe diagonală. Regula dreptunghiului se enunţă literar astfel: "noua valoare =
produsul dintre elementele de pe diagonala pivotului minus produsul dintre cele
aflate pe cealaltă diagonală totul împărţit la pivot". (pentru scurtarea timpului de
lucru se poate observa că elementele unei linii care are 0 pe coloana pivotului
rămân aceleaşi şi de asemenea elementele unei coloane care are 0 pe linia
pivotului)
Operaţia de calculare a noului tabel prin regulile de mai sus poartă denumirea de
_.
 |:*| Se reia algoritmul de la pasul 2.

R: Fie problema de programare liniară:


max 3x 1 2 x 2 x 3 4 x 4 3x 5 5x 6
? x 1 2x 2 x 3 x 4 3x 5 x 6 8
l2x 1 2 x 2 3x 3 x 4 3x 5 2 x 6 15
 3x x 2x 2x x 2 x 11
l 1 2 3 4 5 6
x i  0, i 1,...,6

pentru care ştim că baza formată din coloanele a1, a2, a3 este admisibilă. Pentru rezolvare vom aduce
problema la forma standard de maxim introducând variabilele de abatere x7, x8, x9 obţinând:


max 3x 1 2 x 2 x 3 4 x 4 3x 5 5x 6
@ x 1 2x 2 x 3 x 4 3x 5 x 6 x 7 8
l2x 1 2 x 2 3x 3 x 4 3x 5 2 x 6 x 8 15
 3x x 2 x 2 x x 2 x x 11
l 1 2 3 4 5 6 9
x i  0, i 1,...,9

Vom aşeza în tabelul simplex variabilele în ordinea indicilor şi vom avea:


 3
 2
1
 4  1 2 1 1 3 1 1 0 0 1 2 1  3
c =  3  , A =  2 2 3 1 3 2 0 1 0  , B =  2 2 3  , cB =  2
 5  3 1 2 2 1 2 0 0 1  3 1 2 1
     
 0
 0 
 0

26
Bazele cercetării operaţionale

 1 3 4 
 
 7 7 7 
1
vom calcula matricea B-1 =  5 1 1  şi pe baza acesteia soluţia de bază B = B-1öb =  2  şi
 7 7 7  3
 4  
5 2
 
 7 7 7
 6 2 3 1 3 4 
1 0 0 
 7 7 7 7 7 7 
2 11 1 5 1 1
matricea B ö A =  0 1 0
-1
 care se trec în tabelul simplex:
 7 7 7 7 7 7
 3 1 2 4 5 2
0 0 1 
 7 7 7 7 7 7

3 2 1 4 3 5 0 0 0
cB xB B x1 x2 x3
x4 x5 x6 x7 x8 x9
6 2 3 1 3 4
3 x1 1 1 0 0
7 7 7 7 7 7
2 11 1 5 1 1
2 x2 2 0 1 0
7 7 7 7 7 7
3 1 2 4 5 2
1 x3 3 0 0 1
7 7 7 7 7 7

şi în final se vor calcula valoarea funcţiei obiectiv în această soluţie, zj şi Öj:

3 2 1 4 3 5 0 0 0
cB xB B x1 x2 x3 x4 x5 x6 x7 x8 x9
6 2 3 1 3 4
3 x1 1 1 0 0
7 7 7 7 7 7
2 11 1 5 1 1
2 x2 2 0 1 0
7 7 7 7 7 7
3 1 2 4 5 2
1 x3 3 0 0 1
7 7 7 7 7 7
19 17 13 9 6 8
10 3 2 1
7 7 7 7 7 7
9 4 22 9 6 8
0 0 0
7 7 7 7 7 7

Din tabel se observă că există Öj < 0, aceştia fiind Ö4, Ö5, Ö6, Ö8 iar minimul lor este Ö6.
 
 Dacă vom căuta acel Öj care dă cea mai bună îmbunătăţire vom avea de găsit
  
acel Öj dintre cei negativi pentru care se obţine max  Ö j ö min i  şi deci de calculat:
4 Ê jÊ 9
 1Ê i Ê 3 a 
Ö j 0  a ij  0 ij 

 
 9  1 2  3
4 ö min i = ö min , =
1Ê i Ê 3 a
a i4  0 i4
7  6 2  2
 
 7 7 

27
Bazele cercetării operaţionale

 
i 4  2 3  8
5 ö min = ö min , =
1Ê i Ê 3 a
i5 7  11 1  11
a i5  0  
 7 7 

 
i 22  1 2 3  22
6 ö min = ö min , , =
1Ê i Ê 3 a
i6 7  3 1 2  3
a i6  0  
 7 7 7 

 
i 6  3  18
Ö 8 ö min = ö min  =
1 i 3a
a i8  0 i8
7  5  5
 
 7 
3 8 22 18 22
şi în final max ( , , , )= şi corespunde tot lui Ö6.
2 11 3 5 3
În concluzie, soluţia actuală nu este optimă şi soluţia cea mai bună dintre cele posibile ca
succesoare va avea variabila x6 printre cele principale.
Analizând coloana a6 observăm că există componente strict pozitive (de fapt, în acest caz
sunt chiar toate) şi calculăm pentru acestea rapoartele i obţinând:

1 7 2 3 21
1 = = , 2 = = 14, 3 = =
3 3 1 2 2
7 7 7
deci minimul corespunde variabilei x1 şi aceasta este cea care va ieşi din bază. În cest moment
cunoaştem noua bază şi vom construi tabelul simplex pe baza regulilor de calcul de la pasul 4:

3
1.| pivotul este a16 =
7
4.| de exemplu, pentru elementul de pe poziţia a34 avem dreptunghiul:

6 3
7 7

3 2

7 7

3  3 6 2
ö  ö
7  7 7 7
şi noua valoare de pe această poziţie va fi: = ±1
3
7
În final, tabelul corespunzător noii baze va fi:

3 2 1 4 3 5 0 0 0
cB xB B x1 x2 x3 x4 x5 x6 x7 x8 x9

28
Bazele cercetării operaţionale

7 7 2 1 4
5 x6 0 0 2 1 1
3 3 3 3 3
5 1 5 2 1
2 x2 1 0 0 0 0
3 3 3 3 3
7 2 1 2 2
1 x3 0 1 1 0 1
3 3 3 3 3
52 22 8 7 16
0 0 5 0 4
3 3 3 3 3

Continuând algoritmul vom găsi tabelele:

3 2 1 4 3 5 0 0 0
cB xB B x1 x2 x3 x4 x5 x6 x7 x8 x9
14 5 1 1 2
5 x6 0 1 1 1 0
3 3 3 3 3
5 1 5 2 1
2 x2 1 0 0 0 0
3 3 3 3 3
7 2 1 2 2
0 x8 0 1 1 0 1
3 3 3 3 3
80 14 4 1 8
0 4 1 0 0
3 3 3 3 3

3 2 1 4 3 5 0 0 0
cB xB B x1 x2 x3 x4 x5 x6 x7 x8 x9
8 1 1 3
5 x6 5 1 1 0 1 0
5 5 5 5
1 3 2 1
3 x5 1 0 0 1 0 0
5 5 5 5
3 1 4 3
0 x8 2 1 1 0 0 1
5 5 5 5
22 4 1 2
28 4 1 0 0 0
5 5 5 5

Ultimul tabel conţine soluţia optimă, deoarece toţi Öj  0. Deoarece nu mai există nici un Öj
= 0 în afara celor din bază rezultă că soluţia optimă este unică.

|
#| | ||!&|#!|||

Presupunem încă odată că problema este la forma standard.


Algoritmul simplex necesită, pentru pornire, o soluţie admisibilă de bază. Găsirea acesteia
pur şi simplu prin încercări nu este deloc o sarcină uşoară, gândindu-ne că aceasta presupune
găsirea unui minor principal, inversarea acestuia şi calcularea soluţiei, abia în acest moment putând
vedea dacă aceasta are toate componentele pozitive, această căutare putând dura foarte mult.
Rezolvarea problemei pleacă de la observaţia că singura bază pentru care calculul de mai sus
se poate face imediat este matricea unitate, caz în care soluţia de bază corespunzătoare este chiar

29
Bazele cercetării operaţionale

vectorul termenilor liberi. Aceasta presupune ca problema să aibă toţi termenii liberi mai mari sau
egali cu 0 şi în matricea A să existe toate coloanele matricii unitate.
Dacă toţi termenii liberi pot fi făcuţi mai mari sau egali cu 0 foarte simplu, prin înmulţirea
eventual cu ±1 a restricţiei respective, existenţa tuturor coloanelor matricii unitate este evident că
este foarte puţin probabilă şi mai greu de obţinut.
În acest sens plecăm de la observaţia că existenţa unui vector din coloana unitate printre
coloanele matricii A este echivalentă cu existenţa unei variabile care apare doar în ecuaţia
corespunzătoare lui 1 din acel vector, cu coeficientul 1. Acest lucru poate fi obţinut în două
moduri:

a)| Începând de la prima ecuaţie, căutăm o variabilă care are coeficientul de acelaşi semn cu
termenul liber, o scoatem din această ecuaţie în funcţie de celelalte variabile, o înlocuim
în celelalte şi repetăm procedeul pornind de la a doua ecuaţie. Pot apărea trei cazuri:
1)| la un moment dat obţinem o ecuaţie în care toţi coeficienţii variabilelor au semn
contrar termenului liber, măcar unul dintre toţi fiind diferit de 0. În acest caz
ecuaţia nu are evident soluţie admisibilă(pozitivă) şi deci problema nu are soluţie;
2)| toţi coeficienţii variabilelor şi termenul liber sunt 0. În acest caz rezultă că această
ecuaţie rezultă din cele anterioare şi ea va fi eliminată, trecându-se la următoarea;
3)| se epuizează toate ecuaţiile. În acest moment, variabilele care au fost scoase din
fiecare ecuaţie formează baza dorită.
Procedeul de mai sus poate părea atractiv, dar presupune introducerea unui algoritm
diferit de simplex, cu efect asupra omogenităţii calculelor şi a vitezei de lucru. De
asemenea, prin efectuarea calculelor de mai sus, datele problemei nu mai au semnificaţia
economică iniţială, ne mai putându-se face interpretări economice.
b)| Pentru toţi vectorii coloană introducem în ecuaţiile corespunzătoare câte o variabilă cu
coeficientul 1. Vom obţine evident un nou sistem de restricţii şi rămâne de văzut ce
legătură este între soluţiile acestuia şi cel iniţial. Cele două sisteme au forma:
Aö x = b şi Aöx + y = b
Este evident că o soluţie a primului sistem este soluţie şi a celui de-al doilea (luăm y = 0)
iar o soluţie a celui de-al doilea este soluţie şi pentru primul doar dacă y = 0. Scopul
nostru va fi deci, ca pornind de la soluţia iniţială a celei de-a doua probleme să ajungem
la o soluţie a acesteia în care y = 0. Ţinând cont că în soluţiile de bază, variabilele
secundare sunt toate egale cu 0, vom încerca să scoatem din bază variabilele y. Scopul
algoritmului simplex este însă maximizarea funcţiei obiectiv, nu scoaterea a uneia sau
alteia din variabile din bază. Pentru a echivala cele două scopuri putem proceda în două
feluri:
1)| Alegem o nouă funcţie obiectiv care să-şi atingă extremul printre soluţiile pozitive
chiar pentru y = 0 şi în momentul când am obţinut soluţia respectivă pornim cu
aceasta ca soluţie iniţială algoritmul simplex pentru fosta problemă.
2)| Adăugăm la fosta funcţie obiectiv noile variabile cu nişte coeficienţi de asemenea
natură aleşi încât aportul variabilelor y la valoarea funcţiei să fie contrar scopului
dorit (foarte mari pozitivi într-o problemă de minim şi foarte mari negativi într-o
problemă de maxim).

Vom detalia în continuare cele două metode:

%# |#'|| |"&|


|
Dată problema de programare liniară la forma standard de maxim:

30
Bazele cercetării operaţionale


max  c T ö x

 öx  b
 x0


în care am aranjat deja ca toţi termenii liberi să fie pozitivi (b  0).

)&|2 Construim problema:





min  y
 öx y  b

 x, y  0

pe care o rezolvăm cu algoritmul simplex pornind rezolvarea de la baza matrice unitate, putând
ajunge la două situaţii:

1)| ## |" ||||&_. Aceasta este echivalent cu faptul că egalitatea Ax


+ y = b se poate obţine doar pentru y > 0 sau altfel spus Ax > b pentru orice x  0, deci
sistemul Ax = b nu are soluţii admisibile şi în concluzie !#| |  | |
 .
2)| ## |" | ||1. În acest caz, soluţia optimă obţinută are y = 0, deci verifică
Ax = b fiind în concluzie o soluţie admisibilă de bază a primei probleme.
|
)&|6 Începând de la soluţia găsită la faza 1 se rezolvă problema iniţială cu algoritmul simplex.

Dezavantajul metodei constă în faptul că tabelul simplex final de la faza 1 trebuie modificat
pentru a obţine tabelul simplex iniţial de la faza 2 (vectorii x, c, cB, z, Ö, (B), se elimină coloanele
corespunzătoare lui y) şi în plus nu vom mai avea în tabelele simplex ale problemei iniţiale inversa
bazei (care se găsea în dreptul coloanelor matricii unitate din prima fază) necesară în anumite
variante ale algoritmului simplex.

|!&|"|+#|&,|
|
Dată problema de programare liniară la forma standard de maxim:


max  c T ö x

 öx  b
 x 0


în care am aranjat deja ca toţi termenii liberi să fie pozitivi (b  0).

Construim problema:

max  c T x y

 öx y  b

 x, y  0

în care M este o constantă presupusă foarte mare (mai mare decât orice constantă care ar putea
apare în rezolvarea problemei). Rezolvăm problema cu algoritmul simplex pornind rezolvarea de la
baza matrice unitate, putând ajunge la trei situaţii:

31
Bazele cercetării operaţionale

1)| problema are optim infinit. În acest caz, problema iniţială are optim infinit.
2)| problema are optim finit şi în soluţia de bază avem cel puţin o variabilă din vectorul y. În
acest caz problema iniţială nu are soluţii admisibile.
3)| problema are optim finit şi în soluţia de bază nu avem nici o variabilă din vectorul y. În
acest caz problema iniţială are optim finit, soluţia optimă şi maximul funcţiei fiind
aceleaşi cu cele ale problemei modificate.

În final vom remarca faptul că variabilele y nu corespund unor mărimi economice ca


celelalte, ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul simplex.
Din acest motiv ele se numesc _!|".

32
Bazele cercetării operaţionale

R Fie problema de programare liniară:


max  2 x 1 3x 2
3x 1 x 2 Ê 10

 x 1 4x 2  2

 x1, x 2  0
Forma standard a problemei va fi:

max 2 x 1 3x 2
A3x x 2 x 3 10
l 1
 x 1 4x 2 x 4 2
lx 1 , x 2 , x 3 , x 4  0

Avem deja termenii liberi şi o coloană a matricii unitate  10  corespunzătoare variabilei x3.
 
Pentru a obţine şi a doua coloană  1  vom introduce variabila x5 cu coeficientul 1 în a doua ecuaţie
0
 
şi în final vom avea de rezolvat problema:

%# |#'|| |"& Metoda bazei artificiale


min  x5
max  2 x 1 3x 2 x 5
 3x 1 x 2 x 3  10  3x 1 x 2 x 3  10
 
x 1 4x 2 x 4 x 5  2 x 1 4 x 2 x 4 x 5  2

x 1 , x 2 , x 3 , x 4 , x 5  0 
x 1 , x 2 , x 3 , x 4 , x 5  0

Aplicând algoritmul simplex în două faze vom obţine în prima fază succesiunea de tabele:

0 0 0 0 1
cB xB B x1 x2 x3 x4 x5
0 x3 10 3 1 1 0 0
1 x5 2 1 4 0 -1 1
2 1 4 0 -1 1
1 4 0 -1 0

0 0 0 0 1
cB xB B x1 x2 x3 x4 x5
19 11 1 1
0 x3 0 1
2 4 4 4
1 1 1 1
0 x2 1 0
2 4 4 4
0 0 0 0 0 -1

Am obţinut optimul egal cu 0 în soluţia de bază (x3,x2) care va fi soluţia iniţială pentru
algoritmul simplex aplicat problemei iniţiale în a doua fază. Eliminăm din tabel coloana lui x5,
înlocuim valorile coeficienţilor funcţiei obiectiv şi deci şi valoarea acesteia, valorile Ö şi obţinem
tabelul:

33
Bazele cercetării operaţionale

2 3 0 0
cB xB B x1 x2 x3 x4
19 11 1
0 x3 0 1
2 4 4
1 1 1
3 x2 1 0
2 4 4
3 5 3
0 0
2 4 4

2 3 0 0
cB xB B x1 x2 x3 x4
0 x3 4 0 -11 1 3
2 x1 2 1 4 0 -1
4 0 5 0 -2

2 3 0 0
cB xB B x1 x2 x3 x4
4 11 1
0 x4 0 1
3 3 3
10 1 1
2 x1 1 0
3 3 3
20 7 2
0 0
3 3 3

2 3 0 0
cB xB B x1 x2 x3 x4
0 x4 38 11 0 4 1
3 x2 10 3 1 1 0
30 7 0 3 0

Soluţia optimă a primei probleme este deci x1 = 0 şi x2 = 10 care dă un maxim al funcţiei


egal cu 30. Dacă aplicăm | |# vom obţine succesiv tabele:

2 3 0 0 -M
cB xB B x1 x2 x3 x4 x5
0 x3 10 3 1 1 0 0
-M x5 2 1 4 0 -1 1
-2M -M -4M 0 M -M
-M-2 -4M-3 0 M 0

2 3 0 0 -M
cB xB B x1 x2 x3 x4 x5
19 11 1 1
0 x3 0 1
2 4 4 4
1 1 1 1
3 x2 1 0
2 4 4 4
3 5 3 3
0 0 M+
2 4 4 4

34
Bazele cercetării operaţionale

2 3 0 0 -M
cB xB B x1 x2 x3 x4 x5
0 x3 4 0 -11 1 3 -3
2 x1 2 1 4 0 -1 1
4 0 5 0 -2 2+M

2 3 0 0 -M
cB xB B x1 x2 x3 x4 x5
4 11 1
0 x4 0 1 -1
3 3 3
10 1 1
2 x1 1 0 0
3 3 3
20 7 2
0 0 M
3 3 3

2 3 0 0 -M
cB xB B x1 x2 x3 x4 x5
0 x4 38 11 0 4 1 -1
3 x2 10 3 1 1 0 0
30 7 0 3 0 M

Rezultatul final este evident acelaşi.

o ||||(  ||4 5|


|
2*| %# |#'| |
|
Pentru expunerea acestui algoritm trebuie introduse noţiunile de bază dual admisibilă şi
soluţie dual admisibilă de bază. Prin definiţie numim:

 ||!&| |#!| = soluţie de bază pentru care toţi Öj  0


!&| |#! = bază corespunzătoare unei soluţii de
bază dual admisibile
Ca şi în cazul algoritmului simplex, pentru a putea rezolva problema cu algoritmul simplex
dual trebuie să dispunem deja de o bază iniţială dual admisibilă. Această soluţie poate exista ca
urmare a unor calcule anterioare (vezi capitolul cu reoptimizarea) sau, ca şi în cazul algoritmului
simplex, poate fi aplicată o procedură prin care să găsim această bază. Prezentarea acesteia este mai
complicată decât cea de la algoritmul simplex astfel încât:

| dacă dispunem de o bază dual admisibilă vom rezolva problema cu algoritmul simplex
dual
| dacă nu dispunem de o bază dual admisibilă vom rezolva problema cu algoritmul
simplex.

Pentru a evita orice confuzie, vom numi în continuare algoritmul simplex obişnuit %#|
#'|# şi o bază admisibilă !&|#|#!.
Se observă că o soluţie dual admisibilă nu este în general primal admisibilă şi reciproc, iar o
soluţie care este simultan primal şi dual admisibilă este o soluţie optimă şi reciproc.

35
Bazele cercetării operaţionale

Presupunem că am adus problema la forma standard de maxim şi dispunem de o bază dual


admisibilă şi dispunem deja de de o bază dual admisibilă. Algoritmul simplex dual constă în
următorii paşi:

 |2*| Se construieşte tabelul simplex asociat acestei baze, la fel ca şi la algoritmul simplex
primal;
 |6*| Se analizează componentele soluţiei:
|Dacă |#| |#|#| |%| |1 atunci soluţia este şi primal
admisibilă, deci optimă.
|Dacă '| #| | %_, variabila corespunzătoare celei mai
negative (xi = min x k ) este cea care iese din bază. Dacă minimul este multiplu se
1Ê k Ê m
ia una la întâmplare.
 |7*| Se analizează linia li corespunzătoare variabilei xi aleasă la pasul 2:
|Dacă |# aij j = 1,...,n sunt #|#| |%| |1, atunci am avea
o ecuaţie cu toţi coeficienţii necunoscutelor pozitivi şi termenul liber strict negativ,
deci problema nu are soluţii primal admisibile.
|Dacă '|#||%_, atunci pentru acestea se găseşte acel indice
Öj
pentru care se obţine min (prin  am notat modulul numărului ). Dacă
a ij  0 a
ij

minimul este multiplu alegem unul dintre aceştia la întâmplare. Variabila


corespunzătoare acestuia este cea care intră în bază.
 |9*| Se construieşte tabelul corespunzător noii baze aplicând aceleaşi reguli ca la algoritmul
simplex primal;
 |:*| Se reia algoritmul de la pasul 2

6*| )#| |


|
Este evident că modul de organizare al datelor în tabelul simplex nu este unicul mod de a
organiza datele într-un tabel. Forma secundară este tocmai o astfel de alternativă. Presupunem şi în
acest caz că problema este la forma standard de maxim, că problema este la forma standard şi că
dispunem de o soluţie iniţială de bază care este primal sau dual admisibilă.

 |2*| Datele problemei vor fi organizate într-un tabel de forma:

cS
c x  xS
(B) ÖS
cB xB B = B-1öb B-1öS
cS xS 0 ±In-m

Se observă că singura diferenţa este că la coloana variabilelor bazei din stânga se adaugă
şi cele secundare, pe orizontală se lasă doar variabilele secundare iar în loc de matricea
unitate în dreptul variabilelor principale vom avea matricea unitate în dreptul celor
secundare (dar cu minus), Ö fiind calculat la fel, neglijându-se cei din dreptul variabilelor
principale, care oricum erau 0.

 |6*| ;| | |  | 7*| | Se găsesc variabila care iese din bază şi cea care intră în bază cu aceleaşi
reguli ca la algoritmul simplex primal sau, după caz, ca la cel dual.

36
Bazele cercetării operaţionale

 |9*| Se construieşte tabelul asociat noii baze aplicând regulile:

1)| Pivotul este acelaşi ca la tabelul simplex;


2)| Linia pivotului are ±1 în dreptul pivotului şi 0 în rest;
3)| Coloana pivotului se împarte la pivotul cu semn schimbat
4)| Celelalte elemente se calculează cu regula dreptunghiului

 |:*| Se reia algoritmul de la pasul 2.

R Fie problema de programare liniară rezolvată mai sus:


max 2 x 1 3x 2
 1 x 2 Ê 10
3 x

 x 1 4x 2  2

 x1 , x 2  0

max  2 x 1 3x 2
3x x 2 x 3  10
Forma standard a problemei va fi: 
 1
 x 1 4x 2 x 4  2

x 1 , x 2 , x 3 , x 4  0

max
 2 x 1 3x 2 x 5
3x x 2 x 3  10
iar după introducerea variabilelor artificiale obţinem: 
 1
x 1 4x 2 x 4 x 5  2

x 1 , x 2 , x 3 , x 4 , x 5  0
Tabelul corespunzător va fi:

2 3 0
cB xB B x1 x2 x4
-2M -M-2 -4M-3 M
2 x1 0 -1 0 0
3 x2 0 0 -1 0
0 x3 10 3 1 0
0 x4 0 0 0 -1
-M x5 2 1 4 -1

Aplicăm simplex primal şi obţinem cel mai negativ Öj corespunzător lui x2 şi i minim
corespunzător lui x5. În acest moment avem o soluţie de bază a problemei iniţiale şi putem elimina
variabila x5. Obţinem:

2 -M 0 2 0
cB xB B x1 x5 x4 cB xB B x1 x4
3
2
5
4 M+¾ -¾ 3
2
5
4 -¾
2 x1 0 -1 0 0 2 x1 0 -1 0
3 x2 ½ ¼ ¼ -¼ M 3 x2 ½ ¼ -¼
0 x3 19
2
11
4 -¼ ¼ 0 x3 19
2
11
4 ¼
0 x4 0 0 0 -1 0 x4 0 0 -1
-M x5 0 0 -1 0

şi în continuare:

37
Bazele cercetării operaţionale

3 0 3 0
cB xB B x2 x4 cB xB B x2 x3
4 5 -2 20
3
7
3
2
3
2 x1 2 4 -1 2 x1 10
3
1
3
1
3
3 x2 0 -1 0 › 3 x2 0 -1 0
0 x3 4 -11 3 0 x3 0 0 -1
0 x4 0 0 -1 0 x4 4
3
11
3
1
3

2 0
cB xB B x1 x3
30 7 3
› 2 x1 0 -1 0
3 x2 10 3 1
0 x3 0 0 -1
0 x4 38 11 4

Din rezolvarea de mai sus se observă că această metodă este mai eficientă doar dacă
numărul variabilelor secundare este mai mic decât numărul variabilelor principale. Totuşi, motivul
principal pentru care a fost introdusă această variantă, este existenţa unor probleme în care, pe
parcursul rezolvării, se adaugă foarte multe restricţii (de exemplu rezolvarea problemelor în numere
întregi), pentru o restricţie în plus tabelul simplex mărindu-se cu o linie şi o coloană (cum se va
vedea la capitolul de reoptimizare) iar tabelul corespunzător formei secundare doar cu o linie.

7*| )#|_& ||%#  |#'|


|
O problemă mare (de exemplu cu 1000 variabile şi 100 restricţii) necesită în algoritmul
simplex introducerea, memorarea şi lucrul cu un tabel cu 100.000 componente, adică un număr
imens de date. Din acest motiv, şi remarcând faptul că în algoritmul simplex doar o parte din
acestea contribuie efectiv la luarea deciziilor, s-a construit un algoritm care să ţină cont de
observaţiile de mai sus, numit "forma revizuită a algoritmului simplex", în care se lucrează cu
minimul necesar din datele tabelului simplex. Astfel, pentru testarea soluţiei actuale şi trecerea
eventuală la o nouă bază avem nevoie doar de următoarele elemente:
(1)|inversa bazei curente B-1
(2)|componentele vectorului Ö pentru a face testul de optim şi a găsi variabila care intră în
bază (dacă soluţia nu e optimă)
(3)|coloana ak din B-1 A corespunzătoare celui mai negativ Öj (dacă există strict negativi)
pentru a face testul de optim infinit
(4)|soluţia curentă pentru a găsi variabila care iese din bază (dacă mai e cazul)

Aceste elemente se aşează într-un tabel de forma:

cB xB B = B-1 b B-1

(B) ʌ = c TB ö B-1

numit tabelul simplex redus.

38
Bazele cercetării operaţionale

Operaţiile ce se efectuează în cadrul algoritmului simplex revizuit sunt (presupunem că


problema este la forma standard de maxim şi deţinem o soluţie admisibilă de bază şi inversa bazei
corespunzătoare):

 |2*| Se calculează Öj corespunzători variabilelor secundare cu formula cunoscută:

Öj = c TB öB-1ö Pj - cj = ʌöPj - cj

unde P j este coloana corespunzătoare variabilei xj din matricea iniţială.

 |6*| Se analizează Öj calculaţi:

| dacă toţi sunt mai mari sau egali cu 0 soluţia curentă este optimă. STOP
| dacă există Öj strict negativi se alege minimul dintre aceştia Ök, variabila xk va intra în
bază şi se trece la pasul 3.

 |7*| Se calculează ak = B-1Pk care se ataşează ca nouă coloană la tabel:

cB xB B = B-1 b B-1 ak = B-1Pk

(B) ʌ = c TB ö B-1 Ök

 |9*| Se analizează componentele coloanei ak :

| dacă toate sunt mai mici sau egale cu 0 problema are optim infinit. STOP
| dacă există aik strict pozitivi se alege cel pentru care se obţine:

i
ark = min
1 i ma
a  0 ik
ik

şi variabila xr va ieşi din bază apoi se trece la pasul 5.

 |:*| Se pivotează întregul tabel simplex şi se elimină ultima coloană.


 |<*| Se reia algoritmul de la pasul 2.

R Fie problema de programare liniară rezolvată mai sus:


max  2 x 1 3x 2
3x 1 x 2 Ê 10

 x 1 4x 2  2

 x1 , x 2  0

max  2 x 1 3x 2
3x x 2 x 3  10
Forma standard a problemei va fi: 
 1
 x 1 4x 2 x 4  2

x 1 , x 2 , x 3 , x 4  0

39
Bazele cercetării operaţionale


max  2 x 1 3x 2 x 5
3x x 2 x 3  10
iar după introducerea variabilelor artificiale obţinem: 
 1
x 1 4 x 2 x 4 x 5  2

x 1 , x 2 , x 3 , x 4 , x 5  0

||2* Prima bază este B = I2 = B-1 corespunzătoare variabilelor x3 şi x5 de unde rezultă B =


10  şi ʌ = (0,-M)öI2 = (0,-M). Primul tabel redus va fi:
2

0 x3 10 1 0
-M x5 2 0 1
-2M 0 -M

Se calculează ÖS = ʌöS ± cS = (0,-M)ö  13 14 01 ±


2 3 0 =
M 2 4 M 3 M
 
de unde rezultă că cel mai negativ este Ö2 şi vom calcula coloana a2 = I2ö  14  =  14  care se adaugă
   
la tabelul anterior rezultând:

0 x3 10 1 0 1
-M x5 2 0 1 4
-2M 0 -M -4M-3

i minim este cel corespunzător lui x5 şi deci variabila x2 va intra în locul variabilei x5.
După pivotare şi eliminarea ultimei coloane obţinem:

0 x3 19
2 1 -¼
3 x2 ½ 0 ¼
3
2 0 ¾

Deoarece variabila artificială x5 a ieşit din bază ea va fi eliminată din problemă.


|6*|| ÖS = ʌö S ± cS = (0,¾)ö  13 01 ±
2 0 = ( 5 4 3 4 )
 
1 1 4   3   11 4 
cel mai negativ este Ö1 şi vom calcula coloana a1 =  1 
ö  1  =  1  care se
0 4     4
adaugă la tabelul anterior rezultând:
0 x3 19 2 1 -¼ 11
4
3 x2 ½ 0 ¼ ¼
3
2 0 ¾ 54

i minim este cel corespunzător lui x2 şi deci variabila x1 va intra în locul variabilei x2.
După pivotare şi eliminarea ultimei coloane obţinem:

0 x3 4 1 -3
2 x1 2 0 1
4 0 2

40
Bazele cercetării operaţionale

|7*|| ÖS = ʌö S ± cS = (0,2)ö  14 01 ±


3 0 = ( 8 2 )
 
cel mai negativ este Ö4 şi vom calcula coloana a4 =  10 13  ö  01 =  31 care se
     
adaugă la tabelul anterior rezultând:

0 x3 4 1 -3 3
2 x1 2 0 1 -1
4 0 2 -2

i minim este cel corespunzător lui x3 şi deci variabila x4 va intra în locul variabilei x3.
După pivotare şi eliminarea ultimei coloane obţinem:

4 1
0 x4 3 3 -1
2 x1 10
3
1
3
0
20 2
3 3 0

|9*|| ÖS = ʌö S ± cS = ( 2 3 ,0)ö  14 10  ±
3 0 = ( 7 3 0 )
 
1  1   11 3 
cel mai negativ este Ö2 şi vom calcula coloana a2 =  1 3
1
 ö   =  1  care se
 3 0   4  3 
adaugă la tabelul anterior rezultând:

0 x4 4
3
1
3
-1 11 3
2 x1 10 1 0 1
3 3 3
20
3
2
3
0 73

i minim este cel corespunzător lui x1 şi deci variabila x2 va intra în locul variabilei x1.
După pivotare şi eliminarea ultimei coloane obţinem:

0 x4 38 4 -1
3 x2 10 1 0
30 3 0

|:*|ÖS = ʌöS ± cS = (3,0)ö  13 10  ±


2 0 = ( 7 3 ) >0 deci soluţia este optimă (şi unică)
 
STOP

Chiar dacă la prima vedere calculele par mai împrăştiate şi deci mai lente, pentru probleme
mari, pe calculator se economiseşte foarte multă memorie şi se măreşte foarte mult viteza de calcul.
Totuşi, marele avantaj al acestei metode este acela că, la fiecare iteraţie, se folosesc datele
problemei iniţiale, ceea ce face ca erorile inerente de rotunjire să nu se propage, rămânând în limite
acceptabile.

41
Bazele cercetării operaţionale

!#| |


      
    


  
. Existenţa ei presupune existenţa
unei alte probleme de programare liniară numită problema primală, împreună cu care formează
cuplul primală ± duală. Pentru a vedea cum arată problema duală trebuie să cunoaştem cum arată
problema primală şi care este legătura dintre ele.
A cunoaşte cum arată problema primală înseamnă a şti:

1.| Dacă problema este de maxim sau de minim;

2.| Care sunt necunoscutele problemei, adică vectorul variabilelor:

xT = (x1,x2, « ,xn)

3.| Care sunt coeficienţii funcţiei obiectiv, adică elementele vectorului:

cT = (c1,c2, « ,cn)

4.| Care sunt termenii liberi ai restricţiilor, adică elementele vectorului:

bT = (b1,b2, « ,b m)

5.| Care sunt coeficienţii combinaţiei liniare din fiecare restricţie, adică elementele matricei:

  11  12 V V  1 
 
  22 V V  2 
A =  21 

 
  1  2 V V   

6.| Care este natura fiecărei restricţii, adică dacă:

ai1x1 + ai2 x2 + « + ainxn  bi  ai1 x1 + ai2x2 + « + ainxn bi  ai1 x1 + ai2x2 + « + ainxn = bi

7.| Care este restricţia de semn a fiecărei variabile, adică dacă:

xj  0  xj 0  xj ± oarecare

Problema duală se construieşte folosind elementele problemei primale şi o serie de reguli,


câte una pentru fiecare din cele şase componente ale unei probleme de programare liniară, listate
mai sus.
În acest scop vom nota elementele problemei duale cu:

| uT = vectorul variabilelor problemei duale;


| c TD = vectorul coeficienţilor funcţiei obiectiv ai problemei duale;
| b BT = vectorul termenilor liberi ai restricţiilor din problema duală;
| AD = matricea coeficienţilor combinaţiilor liniare din restricţiile problemei duale;

şi vom introduce noţiunile de restricţie concordantă şi restricţie neconcordantă:

42
Bazele cercetării operaţionale

| O restricţie se numeşte  
  dacă:

| Este de tipul: a i1x1 + ai2 x2 + « + a inxn  bi într-o problemă de ## sau


| Este de tipul: a i1x1 + ai2 x2 + « + a inxn bi într-o problemă de #'#.

| O restricţie se numeşte   
  dacă:

| Este de tipul: a i1x1 + ai2 x2 + « + a inxn  bi într-o problemă de #'# sau


| Este de tipul: a i1x1 + ai2 x2 + « + a inxn bi într-o problemă de ##.

| O restricţie de tipul: ai1x1 + ai2x2 + « + ainxn - bi  este nici concordantă nici


neconcordantă.

În aceste condiţii, problema duală va avea componentele:

| Duala va fi o problemă de minim dacă primala este de maxim şi reciproc;


| | -| + 23| 63| =| #,, deci duala va avea m variabile, număr egal cu numărul de
restricţii al primalei, fiecare variabilă ui fiind asociată unei restricţii  a primalei;
|  -|!!, deci coeficienţii funcţiei obiectiv a dualei sunt termenii liberi ai restricţiilor
!

primalei;

| !  - , deci termenii liberi din restricţiile dualei sunt coeficienţii funcţiei obiectiv a
primalei.
| |-|, deci restricţiile dualei se obţin înmulţind fiecare coloană a matricei primalei
cu vectorul variabilelor dualei. În acest mod şi variabilelor primalei li se asociază câte
o restricţie a dualei;
| restricţia 4 a dualei va fi:
Å| concordantă dacă xj  0
Å| neconcordantă dacă xj 0
Å| egalitate dacă xj oarecare
| variabila ui va fi:
Å| ui  0 dacă restricţia corespunzătoare din primală este concordantă
Å| ui 0 dacă restricţia corespunzătoare din primală este neconcordantă
Å| ui oarecare dacă restricţia corespunzătoare din primală este egalitate

Din cele de mai sus se observă că, pentru a scrie restricţia 4 a dualei, avem nevoie de:

| coloana coeficienţilor corespunzători variabilei 4 din matricea problemei primale pentru a


scrie termenul stâng al restricţiei:

a1ju1 + a2ju2 + « + amjum

| restricţia de semn a variabilei xj pentru a stabili natura restricţiei;


| coeficientul lui xj din funcţia obiectiv a primalei, care va fi termenul liber al restricţiei;

Pentru o cât mai bună ilustrare a modului în care se găseşte duala unei probleme vom da
câteva exemple.

43
Bazele cercetării operaţionale

R Ne propunem să construim duala problemei următoare:

(max) = 2x1 ± 5x2 + 4x3


C1 2 4 3  7
l 5 3 6
l2 1 3

l 1 2 3 3
l 3 2 1 52  8
x1 0, x2 oarecare, x3  0

Conform regulilor de mai sus vom avea:

| duala este de minim deoarece primala este de maxim;


| variabilele dualei vor fi:

u1 corespunzătoare restricţiei: x1 ± x2 + 4x3  7


u2 corespunzătoare restricţiei: x2 ± 5x1 + 3x3 = 6
u3 corespunzătoare restricţiei: x1 + 2x3 3
u4 corespunzătoare restricţiei: ±x3 + 2x1 - 5x2  8

| funcţia obiectiv a dualei va fi produsul dintre termenii liberi ai restricţiilor primalei cu


variabilele corespunzătoare din duală: = 7u1 + 6u2 + 3u3 + 8u4
| duala va avea 3 restricţii, câte variabile are primala, ele obţinându-se astfel:




  (asociată variabilei x1)
Å| termenul stâng al restricţiei se obţine înmulţind coeficienţii variabilei x1 din cele 4
restricţii ale primalei cu variabilele corespunzătoare acestora din duală:

u1 ±5u2 + u3 + 2u4

Å| termenul liber al restricţiei va fi coeficientul lui x1 din funcţia obiectiv a primalei,


adică b1 = c1 = 2
Å| deoarece variabila corespunzătoare acestei restricţii, x1, este negativă, restricţia va fi
neconcordantă şi deoarece duala este problemă de minim rezultă că va fi cu .

   prima restricţie va fi: u1 ±5u2 + u3 + 2u4 2



 (asociată variabilei x2 )
Å| termenul stâng al restricţiei se obţine înmulţind coeficienţii variabilei x2 din cele 4
restricţii ale primalei cu variabilele corespunzătoare acestora din duală:

-u1 + u2 - 5u4

Å| termenul liber al restricţiei va fi coeficientul lui x2 din funcţia obiectiv a primalei,


adică b2 = c2 = -5
Å| deoarece variabila corespunzătoare acestei restricţii, x2, este oarecare, restricţia va fi
o egalitate.

   a doua restricţie va fi: -u1 + u2 - 5u4 = -5

44
Bazele cercetării operaţionale




 (asociată variabilei x3)
Å| termenul stâng al restricţiei se obţine înmulţind coeficienţii variabilei x3 din cele 4
restricţii ale primalei cu variabilele corespunzătoare acestora din duală:

4u1 +3u2 + 2u3 - u4

Å| termenul liber al restricţiei va fi coeficientul lui x3 din fiuncţia obiectiv a primalei,


adică b3 = c3 = 4
Å| deoarece variabila corespunzătoare acestei restricţii, x3, este pozitivă, restricţia va fi
concordantă şi deoarece duala este problemă de minim rezultă că va fi cu  .

   a treia restricţie va fi: 4u1 + 3u2 + 2u3 - u4  4

| restricţiile de semn ale variabilelor dualei vor fi:

Å| u1 0, deoarece restricţia corespunzătoare este neconcordantă;


Å| u2 
 
, deoarece restricţia corespunzătoare este egalitate;
Å| u3  0, deoarece restricţia corespunzătoare este concordantă;
Å| u4 0, deoarece restricţia corespunzătoare este neconcordantă.

În final, problema duală este:

(min) = 7u1 + 6u2 + 3u3 + 8u4


Du 1 - 5u 2 u 3 2u 4 2
l
 - u1 u 2 - 5u 4 - 5
l4u1 3u 2 2u 3 - u 4  4
u1 0, u2 oarecare, u3  0, u4  0

R  Considerăm o unitate economică care fabrică produsele P1, P2 şi P3. Pentru
obţinerea lor se utilizează trei resurse: forţa de muncă, mijloacele de muncă şi materii prime. În
tabelul de mai jos se dau consumurile specifice şi cantităţile disponibile din cele trei resurse,
precum şi preţurile de vânzare ale celor trei produse.

Produse Disponibil
P1 P2 P3
Resurse (unităţi fizice)
Forţa de muncă 1 3 4 15
Mijloace de muncă 2 5 1 10
Materii prime 4 1 2 25
Preţ de vânzare _
3 2 6
(unităţi monetare)

Dorim să producem acele cantităţi xi din fiecare produs pentru care:

1.| se utilizează în întregime forţa de muncă;


2.| se produce cel puţin o unitate din produsul de tipul P 2;
3.| se obţine valoarea maximă a vânzărilor.

Modelul matematic pe baza căruia se stabileşte programul optim de producţie are forma:

45
Bazele cercetării operaţionale

(max) = 3x1 + 2x2 + 6x3



1 3  2 4  3  15

 2 1 5  2  3 Ê 10
4 1  2 2  3 Ê 25

 2  1
xj  0 (j = 1,2,3)

Duala sa va fi:

(min) = 15u1 + 10u2 + 25u3 + u4


 1 2 2 4 3  3

31 5 2  3  4  2
 4  2  6
 1 2 3

u1 oarecare, u2  0, u3  0, u4 0

Se remarcă faptul că, într-o problemă economică, nenegativitatea variabilelor primalei (xj0)
impune ca în duală toate restricţiile să fie concordante.

R

Primala Duala

(min) = 4x1 + 3x2 (max) = 56u1 + 43u 2 + 31u3 + 20u4 + 30u5 + 41u 6 + 65u7
E1 4  2  56 1  2  3  4 2 5 3 6 5 7 Ê 4
l 3   43 
l1 2 41 3 2 2 3  4  5  6  7 Ê 3
l1 2  2  31 uI  0 (i = 1,7)
l
 1  2  20
l2    30
l 1 2

l3 1  2  41
l
5 1  2  65
x1, x2  0

Corespondenţa care există între problema primală şi problema duală, atât sub aspect
matematic, cât şi economic, va fi lămurită de observaţiile şi teoremele de mai jos:

i Duala problemei duale este problema primală.

46
Bazele cercetării operaţionale

Demonstraţia acestei leme este uşoară, făcându-se pe baza simetriilor care se observă în
construcţia dualei şi va fi lăsată în seama cititorului, semnificaţia ei fiind că operaţia de trecere la
duală este o operaţie involutivă (adică e o transformare cu proprietatea: (    )() = ) şi, deci,
perechea primală-duală formează un cuplu în care fiecare este duala celeilalte. Din această cauză
vom vorbi de cuplul primală-duală fără a mai specifica expres care este primala şi care duala.

 
 Dacă o problemă este la forma canonică atunci şi duala sa este o problemă la
forma canonică.

 
 . Dacă o problemă este la forma standard atunci duala sa  este la forma
standard.
i . Dacă P1 şi P2 sunt două probleme de programare liniară echivalente atunci şi
dualele lor sunt de asemenea echivalente. Vom înţelege, în această afirmaţie, prin probleme
echivalente, două probleme care se pot obţine una din cealaltă prin transformări elementare. Aceste
transformări realizează un izomorfism între mulţimile soluţiilor celor două probleme şi un
homeomorfism între funcţiile lor obiectiv.

!
     

Rezolvarea celor două probleme din cuplul primală-duală poate duce doar la unul din
următoarele trei rezultate:

| Dacă una din cele două probleme are soluţie optimă finită atunci şi cealaltă are soluţie
optimă finită şi valorile funcţiilor obiectiv corespunzătoare celor două soluţii sunt egale;
| Dacă una din cele două probleme are optim infinit atunci cealaltă nu are soluţii
admisibile.
| Dacă una din cele două probleme nu are soluţii admisibile atunci cealaltă are optim
infinit sau nu are soluţii admisibile.



 Presupunem că cele două probleme au fost aduse la forma canonică:

Primala Duala

(max) cTx (min) bTu


Ax b ATu  c
x0 u0

Această presupunere nu va afecta rezultatul, deoarece, dacă nu erau deja aşa, noile probleme
sunt echivalente cu cele iniţiale. În continuare, pentru rezolvarea acestei teoreme demonstrăm
următoarea lemă:

i Dacă există soluţii admisibile pentru fiecare problemă atunci pentru orice x soluţie
admisibilă a primalei şi orice u soluţie admisibilă a dualei avem:

cTx bTu

á 
 Avem:
ATu  c M (ATu)T  cT M uTA  cT
u T A  cT
 F u T Ax  c T x
1
 x0
De asemenea:
47
Bazele cercetării operaţionale

G Ax b
 T
 uT Ax u T b bT u
2
u  0 Mu  0
Obţinem:

1
H
  bT u  u T Ax  cT x M bT u  cT x q.e.d.

2
Pentru a demonstra teorema, presupunem că am rezolvat una din cele două probleme,
aceasta fiind considerată ca fiind primala. Avem trei variante:

1.| Problema are optim finit. Fie în acest caz fie xB o soluţie de bază a primalei   

 
, care dă optimul problemei, adică cTxB = max c T x . Toţi Öj corespunzători acestei
x admisibila

baze vor fi pozitivi şi ţinând cont de expresia lui Öj, rezultă:

!
B-1 A  cT M AT( !
B-1 )T  c

relaţie care spune că vectorul cu m componente u* = ( ! B-1 )T este o soluţie de bază admisibilă a
problemei duale (primala fiind la forma standard, variabilele dualei pot avea orice semn).
Avem, conform lemei 3: cTxB uTb pentru orice soluţie admisibilă a problemei duale. Pe de
altă parte cTxB = cTB-1 b = (u*)Tb de unde rezultă că pentru orice soluţie admisibilă a problemei duale
se verifică:
(u*)Tb uTb

care este echivalent cu faptul că u* este soluţia de optim a dualei şi că (xB) = (u*).

2.| Problema are optim infinit. În acest caz, dacă duala ar avea soluţii admisibile u, (u) ar fi
un majorant pentru mulţimea { (x)/ x admisibilă}, în contradicţie cu ipoteza de optim infinit.

3.| Problema nu are soluţii. În acest caz, dacă duala ar avea optim finit ar rezulta, conform
celor arătate în varianta 1, că primala are optim finit, în contradicţie cu ipoteza.

În concluzie, deoarece cele trei variante acoperă toate situaţiile posibile, toate ducând la unul
din rezultatele afirmate ca posibile în teoremă şi ţinând cont de faptul că nu a avut importanţă care
problemă a fost aleasă spre rezolvare, teorema este demonstrată.

! Y  Y   |

Fie x* =
1* ,  2* ,...,  * şi u* =
1* ,  2* ,...,  * două soluţii admisibile ale primalei, respectiv
dualei, scrise sub forma canonică. Atunci ele sunt soluţii optime ale celor două probleme dacă şi
numai dacă verifică sistemul:

I*  
l    « 4  4 
 *

l 


0  1,  J(u * ) T (b Ax* ) 0
 
4 1
sau, matricial 
l  [(u ) A c]ö x
* T *
0
 « 4 * 4   *4 0 4 1,
l1 

á 

48
Bazele cercetării operaţionale


³ í Presupunem că x* şi u* sunt soluţiile optime ale celor două probleme. Atunci:

 * 
  (u*)T(b ± Ax*)  0
*  0 
!  *   * T *
*   (( u ) A - c)(x )  0 
 0 
cum (u*)Tb = cx* (conform teoremei fundamentale) 
 (u*)T(b ± Ax*) + (( u *)TA - c)(x*) = (u*)Tb ± (u*)T Ax* + ( u*)TA x* - cx* = 0

 (u*)T(b ± Ax*) = (( u*)TA - c)(x*) = 0

³ í
Dacă (u*)T(b ± Ax*) = (( u *)TA - c)(x*) = 0  (u*)T(b ± Ax*) + (( u*)TA - c)(x*) = 0  (u*)Tb
= cx*  ( conform teoremei fundamentale) x* şi u* sunt soluţiile optime ale celor două probleme.

Teorema ecarturilor complementare dă o caracterizare pentru optimalitatea soluţiilor


primalei şi dualei, dacă ele există. Sistemul din teoremă se obţine aplicând metoda multiplicatorilor
lui Lagrange pentru extreme cu legături, în cazul particular al unei probleme de programare liniară.
Această teoremă nu reprezintă o modalitate practică de a rezolva cele două probleme decât
în anumite cazuri simple, rezolvarea sistemului fiind mai grea, în cazul problemelor liniare, decât
rezolvarea cu algoritmul simplex al fiecărei probleme, dar, pe baza ei, se poate găsi soluţia uneia
din probleme dacă se cunoaşte soluţia celeilalte sau se poate verifica dacă o soluţie a unei probleme
este optimă, introducând-o în sistem, găsind celelalte necunoscute şi verificând că ele formează o
soluţie admisibilă a dualei.

 
Demonstrarea teoremei fundamentale s-a făcut găsind efectiv soluţia optimă a
dualei, considerându-se că primala a fost rezolvată cu algoritmul simplex. Ea este ! B-1 şi, pentru
găsirea practică a acesteia, trebuie cunoscută B-1. Matricea B-1 nu apare explicit în rezolvarea
problemei cu algoritmul simplex, dar se poate demonstra că este formată din coloanele din tabelul
simplex al soluţiei optime corespunzătoare poziţiilor care formau baza soluţiei iniţiale. ! B-1
reprezintă chiar zj corespunzătoare acestor coloane din ultimul tabel, deci putem formula rezultatul:

³ 
  
4  
  

 

     

Introducerea dualităţii este motivată din mai multe puncte de vedere:

1. !
 . Una din problemele centrale ale programării matematice este caracterizarea
situaţiilor în care există optimul unei probleme şi găsirea unor metode prin care să recunoaştem
optimalitatea unei soluţii. Teorema fundamentală a dualităţii şi teorema ecarturilor complementare
reprezintă rezultate chiar în acest sens, în care se foloseşte dualitatea.

2. 
  . Rezultatele obţinute mai sus conturează faptul că putem rezolva o problemă
rezolvând problema duală a acesteia sau cunoscând soluţia dualei. În unele cazuri, rezolvarea dualei
este mult mai uşoară decât rezolvarea primalei, de exemplu când numărul de restricţii al primalei
este mai mare decât numărul de variabile al acesteia sau când primala necesită mai multe variabile
suplimentare decât duala. Astfel, pentru exemplul 3 de mai sus, rezolvarea primalei duce la opt
iteraţii cu tabele cu 7 linii şi 16 coloane, iar rezolvarea dualei la 5 tabele cu 2 linii şi 9 coloane. În
49
Bazele cercetării operaţionale

alte cazuri, soluţiile dualei sunt deja cunoscute, găsirea soluţiilor primalei revenind la a rezolva
sistemul din teorema ecarturilor complementare, după ce au fost înlocuite soluţiile celei duale.

3. R   . În cele mai multe probleme economice, a căror rezolvare se face printr-un
model de programare liniară, soluţia dualei aduce o serie de informaţii suplimentare despre
problema studiată. s Y Y Y
a soluţiei dualei depinde de specificul problemei şi
trebuie găsită de la caz la caz. Expunem în continuare   Y Y
a variabilelor şi
soluţiilor dualei în cazul unei probleme de producţie.

În paragrafele precedente s-a demonstrat că, prin rezolvarea unei probleme de programare
liniară, se obţine atât soluţia optimă a problemei iniţiale cât şi a problemei duale. Corespondenţa
dintre problema iniţială şi duală se reflectă în conţinutul economic al parametrilor incluşi în soluţia
problemei duale. Semnificaţia economică a indicatorilor ui este determinată de natura problemei
economice şi de tipul restricţiilor problemei primale.
Într-o problemă sub formă canonică, în care se cere maximizarea funcţiei obiectiv,
restricţiile pot fi interpretate ca inecuaţii ce se referă la resurse şi, de aceea, interpretarea
variabilelor ui este mai simplă.
Vom analiza modelul de programare liniară al problemelor de mai jos:

R: O unitate economică fabrică produsele P1, P2 şi P3 utilizând trei resurse: forţa
de muncă, mijloace de muncă şi materii prime. Consumurile specifice, cantităţile disponibile din
fiecare resursă şi preţurile de vânzare ale produselor sunt date în tabelul de mai jos:

Produse Disponibil
P1 P2 P3
Resurse (unităţi fizice)
Forţa de muncă 1 3 4 15
Mijloace de muncă 2 5 1 10
Materii prime 4 1 2 25
Preţ de vânzare
3 2 6 -
(unităţi monetare)

Modelul matematic pe baza căruia se stabileşte programul optim de producţie, având drept
criteriu de eficienţă valoarea maximă a producţiei, are forma:

(max) = 3ö x1 + 2ö x2 + 6öx3
Kx 3x 2 4x 3
l1
15
2x 1 5x 2 x 3 10
l4x 1 x 2 2x 3 25
x1, x2, x3  0

Utilizând regulile de trecere la duală, rezultă următoarea problemă duală:

(min) = 15öu1 + 10ö u2 + 25ö u3


Lu 2u 2 4u 3  3
l1
3u 1 5u 2 u 3  2
l4u 1 u 2 2u 3  6
u1, u2, u3  0

După rezolvarea cu algoritmul simplex se obţine soluţia optimă a celor două probleme în
ultimul tabel simplex, dat în continuare:

50
Bazele cercetării operaţionale

3 2 6 0 0 0
cB xB B x1 x2 x3 s1 s2 s3
20 1 2 1
6 x3 0 1 0
7 7 7 7
25 17 1 4
3 x1 1 0 0
7 7 7 7
35
0 x6 0 -9 0 0 -2 1
7
195 57 9 6
zj - 3 6 0
7 7 7 7
43 9 6
Öj - - 0 0 0
7 7 7

R : Activitatea unei întreprinderi industriale se concretizează în fabricarea


produselor omogene P1, P2, P3 şi P4, ale căror costuri unitare de producţie sunt: c1 = 4, c2 = 3, c3 = 7
respectiv c4 = 2 unităţi monetare. Pentru desfăşurarea procesului de producţie este necesar ca din
produsul P1 să se asigure un stoc de cel puţin 5 unităţi şi, în plus, câte cel puţin 2 unităţi pentru
fiecare piesă P3 (produsul P1 intră în componenţa produsului P 3). În anul de bază, volumul
producţiei realizate de întreprindere a fost de 20 unităţi. În urma analizei desfacerilor s-a ajuns la
concluzia că cererea este în creştere. De asemenea, întreprinderea îşi propune ca în perioada de plan
să obţină un beneficiu total cel puţin egal cu cel din perioada de bază, care a fost de 100 u.m..
Beneficiul unitar corespunzător celor 4 produse s-a estimat a fi de 2, 5, 8 respectiv 3 u.m..
Modelul matematic corespunzător problemei primale şi respectiv problemei duale are forma:

Primală Duală

(min) = 4öx1 + 3ö x2 + 7ö x3 + 2ö x4 (max) = 5x1 + 20x2 + 100x3

în condiţiile în condiţiile

Mx 2x 2  5
l1
Nu 1 u 2 2u 3 4
x 1 x 2 x 3 x 4  20 l u 2 5u 3 3
l2x 1 5x 2 8x 3 3x 4  100  - 2u u 8u 7
l 1 2 3
x1, x2, x3, x4  0 u 2 3u 3 2
u1 oarecare, u2,u3  0 şi u4 0


R: Considerăm problema dată în exemplul 1 căreia îi ataşăm două modificări:

1.| forţa de muncă trebuie folosită în întregime;


2.| volumul producţiei planificate al produsului P2 trebuie să fie cel puţin egal cu o unitate
fizică;

Cuplul de probleme primală-duală va avea forma:

51
Bazele cercetării operaţionale

Primală Duală

(max) = 3öx1 + 2ö x2 + 6öx3 (min) = 15öu1 + 10ö u2 + 25ö u3 + u4


x 1 3x 2 4 x 3  15 O 2u 2 4 u 3  3
u
l1
2x 1 5x 2 x 3 Ê 10 3u 1 5u 2 u 3 u 4  2
4x x 2x 3 Ê 25 l4u 1 u 2 2u 3  6
 1 2
 x2  1 u1 oarecare, u2, u3  0, u4 0
x1, x2, x3  0

Se constată ca, în funcţia obiectiv a problemei duale, apar cantităţile disponibile din cele trei
resurse, înmulţite cu mărimile u1, u2, şi respectiv u3. Întrucât resursele reprezintă valori de
întrebuinţare diferite, cantităţile bi nu se pot însuma decât dacă indicatorii ui evaluează resursele în
aceeaşi unitate de măsură. După cum se vede din aceste model, valoarea indicatorilor ui depinde de
cantitatea de resurse disponibile, de structura consumurilor directe din resursa respectivă şi de
structura matematică a modelului.
Conform teoremei ecarturilor complementare, resurselor utilizate în întregime le corespund
evaluări ui strict pozitive, iar resurselor excedentare le corespund indicatori ui = 0. Un produs Pj va
apărea în soluţia optimă, (j > 0) numai atunci când costul său unitar de producţie, obţinut prin
evaluarea resurselor consumate cu ajutorul indicatorilor ui, nu depăşeşte preţul unitar de producţie
cj, adică atunci când:

 u i a iP = cP
m
(R)
i 1

Ideea enunţată mai sus se confirmă şi în cazul exemplelor analizate. Astfel, în exemplul 1,
produsul P2 nu apare în soluţia optimă (x2 = 0) deoarece costul său de producţie depăşeşte preţul
unitar de realizare:

a12ö u1 + a22öu2 + a32öu3 > c2

9 6
adică: 3ö + 5ö + 1ö 0 = 8,1 > 2.
7 7

Celelalte două produse intră în programul optim, întrucât este satisfăcută relaţia (R). Deci,
fabricarea unui produs care nu figurează în programul optim este neeficientă din punctul de vedere
al folosirii resurselor.
Prin urmare, pentru o problemă de programare liniară scrisă sub forma canonica, în care se
urmăreşte maximizarea funcţiei (x), mărimea ui reprezintă valoarea ultimei unităţi folosite în
producţie din resursa Ri.
Având în vedere că max[ (x)] = min [ (u)], rezultă că, dacă, cantitatea disponibilă din
resursa Ri creşte cu o unitate, atunci valoarea funcţiei obiectiv creşte cu ui, deci ui măsoară creşterea
valorii funcţiei obiectiv determinată de creşterea cu o unitate a cantităţii disponibile bi.
Aceste evaluări obţinute dintr-un program optim au fost denumite în literatura de specialitate
"preţuri umbră" sau "evaluări obiectiv determinate".
Preţul umbră ui arată cu cât se modifică funcţia obiectiv a problemei duale4, atunci când
termenul liber al restricţiei Ri se "relaxează" cu o unitate. A "relaxa" are semnificaţia de a spori
cantitatea disponibilă bi a unei resurse deficitare sau, pentru restricţiile de tip calitativ cu limită

4
Dar şi a problemei primale, întrucât (x) şi (u) sunt legate prin teorema dualităţii
52
Bazele cercetării operaţionale
n
inferioară impusă ( « a ij x j  bi), de a reduce nivelul termenului liber bi. Este evident că, dacă o
j 1
n
resursă nu este utilizată în întregime pentru satisfacerea programului optimal B (  a iQ x Q < bi),
Q 1
5
atunci ui = 0 iar funcţia obiectiv nu este afectată de sporirea cantităţii disponibile bi. În cazul
restricţiilor de tip calitativ, acestea nu constituie un "loc îngust" pentru programul optimal B dacă şi
n
numai dacă « a ij x j > bi, ca urmare ui = 0 iar funcţia obiectiv nu este influenţată de reducerea2
i 1
nivelului pentru indicatorul bi.
Pentru o problemă scrisă sub formă canonică, în care se cere minimizarea funcţiei (x),
restricţiile se referă, aşa cum s-a arătat, la caracteristici economice cărora li se impun limite
inferioare sau la indicatori calitativi cu limită inferioară stabilită; în acest caz preţul umbră ui
măsoară creşterea costului total al producţiei, a cheltuielilor de muncă, a cheltuielilor cu fondurile
fixe etc., determinată de creşterea cu o unitate a componentei bi a vectorului termenilor liberi.
Astfel, daca la exemplul 2 planul de producţie prevede o creştere a volumului producţiei de la 20
unităţi la 21 unităţi, atunci costul total al producţiei va creşte cu u2 unităţi.
În cazul problemelor de programare liniară care conţin restricţii neconcordante şi egalităţi, la
interpretarea preturilor umbră trebuie să se ţină seama de natura economică a funcţiei obiectiv şi de
semnul variabilei ui. Pentru a elucida acest aspect, ne vom referi la modelul matematic ce rezultă
din exemplul 3.
Soluţiile optimale ale problemei primale şi duale sunt:

B = (x1, x2, x3, x4, x5, x6) = (8/7, 1, 19/7, 0, 14, 0)

B = (u1, u2, u3, u4) = (9/7, 6/7, 0, ± 43/7).

Se constată imediat că valoarea funcţiei obiectiv (B) = (B) = 152/7 este mai mică decât
cea obţinută prin rezolvarea modelului din exemplul 1, cu Ö (x) = 195/7 ± 152/7 = 43/7 unităţi
monetare6. Această diferenţă apare datorită introducerii restricţiei x2 > 1, al cărei preţ umbră este u4
= ± 43/7. Prin urmare variabila u4 arată cu cât scade valoarea funcţiei obiectiv (x) atunci când
nivelul minim impus variabilei x2 este mai mare cu o unitate.
În sfârşit variabila u1 = 9/7, care este ataşată unei restricţii sub formă de egalitate, arată că
sporirea cu o unitate a nivelului forţei de muncă disponibile conduce la creşterea valorii producţiei
cu 9/7 unităţi monetare.
Rezultă că preţurile umbră aduc informaţii suplimentare pentru analiza eficienţei economice
a resurselor şi a diferiţilor indicatori economici sau tehnici care apar în restricţiile unei probleme de
programare liniară. Pe baza lor se pot fundamenta deciziile privind alocarea judicioasă a resurselor,
se pot stabili măsuri de stimulare a consumului raţional al resurselor, se determină cât mai corect
nivelul minim şi maxim al diferiţilor indicatori tehnici şi economici de care depinde structura
planului optim.
Soluţia optimă obţinută prin utilizarea datelor iniţiale poate constitui un punct de plecare
pentru analiza economică privind alocarea eficientă a resurselor. Vom ilustra acest aspect folosind
modelul matematic elaborat în cadrul exemplului 1.
În tabelul de mai jos se dau soluţiile optime ale cuplului primală-duală, pentru diferite valori

5
Variaţia termenului liber b i trebuie interpretată ca o modificare Öbi, în condiţiile în care celelalte restricţii nu se
modifică. Vezi exemplul 1.
6
Reamintim că exemplul 3 s-a obţinut din exemplul 1 ca urmare a unor transformări. Precizăm că, în soluţiile optime
ale ambelor modele, prima restricţie se verifică cu egalitate. De aceea, diferenţa dintre cele două soluţii este determinată
numai de restricţia x2 > 1.

53
Bazele cercetării operaţionale

ale primei resurse (b2 = 10, b3 = 25).

Cantitatea disponibilă din prima resursă (b1)


Variabile 15 16 26 36 40 41
u4 3 3 3 3 3 3
x1 25/7 24/7 2 4/7 0 0
u5 57/7 57/7 57/7 57/7 57/7 30
x2 0 0 0 0 0 0
u6 6 6 6 6 6 6
x3 20/7 22/7 6 62/7 10 10
u1 9/7 9/7 9/7 9/7 9/7 0
x4 0 0 0 0 0 1
u2 6/7 6/7 6/7 6/7 6/7 6
x5 0 0 0 0 0 0
u3 0 0 0 0 0 0
x6 5 5 5 5 5 5
(x) 195/7 204/7 42 55 60 60

Se observă că între anumite limite de variaţie ale primei resurse, preţurile umbră au aceeaşi
valoare. Pentru valori mai mari decât 40 unităţi, preţurile umbră au o altă valoare, deoarece, în acest
caz, prima resursă şi a treia devin excedentare. Valoarea funcţiei de eficienţă va creşte cu u1öÖ b1,
unde Öb1 reprezintă sporul disponibilului din prima resursă. Pentru b1 > 40 preţul umbră al resursei
a doua este u2 = 6, deci valoarea funcţiei eficienţă va creşte cu 6 unităţi, atunci când b2 creşte cu o
unitate. Aste informaţii sunt utile pentru fundamentarea planului de producţie aprovizionare cu
diverse resurse.
La interpretarea influenţei pe care variaţia cantităţii disponibile bi o are asupra preţurilor
umbră, trebuie să se ţină seama că bi este o variabilă continuă. Din această cauză ui se defineşte
astfel:7
F
ui =
bi

Este clar că ui va avea o altă valoare când bi creşte (scade) peste o anumită limită (de
exemplu bi > 40).
După cum s-a arătat mai înainte, în cadrul algoritmului simplex se stabileşte activitatea cea
mai eficientă ak, prin folosirea criteriului de intrare:

ÖZk = min (zj ± cj) la problemele de maxim

ÖZk = max (zj ± cj) la. problemele de minim

Având în vedere relaţia formulele de calcul ale lui ÖZ şi uB, rezultă că:

m m
zj = « c i y ij = « u i a ij j Ü JS
i 1 i 1

7
F este o funcţie de tip Lagrange, obţinută din problema standard de programare liniară astfel:

m
F = (x) + « uiöRi (x)
i 1

unde Ri(x) reprezintă restricţiile problemei de programare liniară iar u i, 1 i m sunt multiplicatorii lui Lagrange.
54
Bazele cercetării operaţionale

unde yij reprezintă elementele coloanei j din tabelul simplex corespunzător unei soluţii de bază. În
cea de a doua sumă a relaţiei precedente se evaluează coeficienţii consumurilor directe,
corespunzători activităţii aj, prin preţurile umbră ataşate celor m restricţii şi, de aceea, mărimea
rezultată poate fi interpretată ca un preţ umbră al produsului sau activităţii j. Trebuie precizat că,
pentru fiecare bază, vom dispune de un vector u = (u1, u2, ... , u m) care se referă la fluxurile intrări -
ieşiri corespunzătoare soluţiei de bază. De aceea, evaluările privind eficienţa economică a
activităţilor aj (j Ü JS = indicii variabilelor secundare), făcute cu ajutorul indicatorilor ui, sunt
valabile numai pentru baza considerată.
Concluziile obţinute pe baza analizei corespondenţei biunivoce dintre problema primală şi
cea duală ne permit să înţelegem sensul economic al criteriului de intrare în bază.
Pentru problemele în care se cere maximizarea funcţiei (x), indicatorii zj reprezintă costul
unitar de fabricaţie al produsului j, rezultat din evaluarea coeficienţilor aij prin preţurile
umbră ataşate restricţii1or. Rezultă că, prin calcularea diferenţei Öj, se compară acest cost
unitar cu coeficientul cj (preţ unitar, beneficiu unitar etc.) din funcţia obiectiv. Dacă
există diferenţe negative (Öj < 0) înseamnă că, la activităţile respective, preţul umbră al
produsului j (costul unitar de fabricaţie exprimat în indicatori ui) este mai mic decât
venitul realizat şi de aceea activitatea aj este eficientă. Aşa se explică faptul că va intra în
bază vectorul ak ce corespunde diferenţei Ö zj minime. În momentul în care toate
diferenţele sunt pozitive (Özj  0) rezultă că nu mai există activităţi eficiente şi prin
urmare soluţia de bază analizată este optimă.
În cazul problemelor de minim, indicatorii zj se pot interpreta ca venituri, exprimate în
preţurile umbră ale restricţiilor, ce se obţin prin realizarea unei unităţi din produsul j. Prin
urmare, dacă există diferenţe pozitive (Ö zj > 0), activităţile a j corespunzătoare sunt
eficiente, deoarece se realizează un venit unitar mai mare decât costul unitar de fabricaţie
(zj > cj). De aceea, va intra în bază activitatea ak, corespunzătoare diferenţei maxime, iar
soluţia de bază se consideră optimă atunci când toate diferenţele Özj sunt nepozitive (Özj
0).

55
Bazele cercetării operaţionale

|
#&|
|
Presupunem că am rezolvat o problemă de programare liniară, cunoscând pentru aceasta
soluţia optimă de bază B =B-1öb, inversa bazei B-1 şi tabelul simplex corespunzător soluţiei optime.
Ne propunem să vedem, în condiţiile în care se modifică unele din datele problemei, ce anume din
rezolvarea fostei probleme mai poate fi folosit la rezolvarea noii probleme, în încercarea de a
rezolva noua problemă într-un timp mai scurt decât cel necesar rezolvării acesteia de la zero, cu
algoritmul simplex. Acest deziderat corespunde ideii de a folosi experienţa anterioară. De
asemenea, ne propunem să vedem ce influenţă au diferitele tipuri de modificări ale datelor
problemei asupra soluţiilor, atât din punct de vedere matematic cât şi economic.
Datele problemei sunt constituite din:

| coeficienţii funcţiei obiectiv = componentele vectorului c


| termenii liberi ai restricţiilor = componentele vectorului b
| coeficienţii variabilelor din restricţii = elementele matricii A

O modificare poate afecta toate cele trei grupe.


Vom analiza efectele modificărilor începând de la cazurile cele mai simple:

Cazul 1.|||#"||#|_  |c › c¶|

Deoarece matricea A şi vectorul b rămân aceleaşi, avem acelaşi sistem de restricţii şi deci
aceeaşi mulţime de soluţii admisibile. Soluţia optimă a fostei probleme, fiind în particular soluţie de
bază admisibilă a sistemului de restricţii, va fi soluţie admisibilă de bază şi în noua problemă.
Dispunem deci de o soluţie iniţială admisibilă de bază şi, deci, putem aplica algoritmul simplex
primal direct de la faza a doua. Se construieşte tabelul simplex corespunzător soluţiei, în problema
modificată:

ï
c
ï
s

ï xB B xB xS

B-1ö b Im B-1öS

ö B-1öb
ï 0 ï
4

care este de fapt fostul tabel, în care se recalculează ï


4 . Avem două cazuri:

a)| Dacă toţi 4   4  ö c 1 ö  4 /  0, soluţia este optimă;


/ / / /
c

b)| Dacă există un ï 4 < 0, se aplică în continuare algoritmul simplex primal, până la găsirea

soluţiei optime.
R: Pentru problema:
F.S.
(max) = 3x1 ±x2 + 2x3 (max) = 3x1 ± x2 +2x3 ± Ma1
1 2 Ê 4  1 2 1  4
 
 2 3  3 M  2 3 2 1  3
 2 3 Ê 5  2 3 3  5
 2  2
x1, x2, x3  0 x1, x2, x3, s1, s2, a1  0
56
Bazele cercetării operaţionale

obţinem în final următorul tabel simplex:

3 -1 2 0 0 0 -M
ï xB B x1 x2 x3 s1 s2 s3 a1
3 x1 3 1 0 0 1 1 2 -2
2 x3 2 0 0 1 0 1 1 -1
-1 x2 1 0 1 0 0 -1 -2 2
12 0 0 0 3 6 10 M - 10

1. Dacă noua funcţie obiectiv este  = x1 ± 2x2 + 5x3 atunci tabelul corespunzător va fi:

1 -2 5 0 0 0 -M
ï xB B x1 x2 x3 s1 s2 s3 a1
1 x1 3 1 0 0 1 1 2 -2
5 x3 2 0 0 1 0 1 1 -1
-2 x2 1 0 1 0 0 -1 -2 2
11 0 0 0 1 8 11 M - 11

toţi ï
4
 0, ne aflăm în cazul a) şi soluţia care dădea optimul fostei probleme este soluţia optimă şi
în noua problemă.
2. Dacă noua funcţie obiectiv este = x1 + 3x2 - 2x3 atunci tabelul corespunzător va fi:

1 3 -2 0 0 0 -M
ï xB B x1 x2 x3 s1 s2 s3 a1
1 x1 3 1 0 0 1 1 2 -2
-2 x3 2 0 0 1 0 1 1 -1
3 x2 1 0 1 0 0 -1 -2 2
2 0 0 0 1 -4 -6 M+6

există ï
4
< 0 (de exemplu 2 4 ), ne aflăm în cazul b) şi soluţia care dădea optimul fostei
probleme nu este optimă şi în noua problemă, pentru găsirea celei optime (dacă există!) trebuind să
aplicăm în continuare algoritmul simplex primal.

& |6 Dacă se modifică doar componentele vectorului ! › !>

Deoarece matricea A rămâne aceeaşi, fosta bază rămâne bază şi în noua problemă. Soluţia
c  c
corespunzătoare va fi:  ï 1
ö ïiar Öï
4
ö 1 ö4 4 Ö4 . În concluzie, noua soluţie ar putea sau
nu să aibă toate componentele pozitive (după cum este noul b¶), dar sigur toţi Öj rămân pozitivi
(fiind aceeaşi cu cei ai soluţiei fostei probleme, care era optimă), deci soluţia este cel puţin dual
admisibilă de bază. Vom avea două cazuri:
a)| Dacă  ï 0 atunci soluţia este şi primal admisibilă, deci este soluţia optimă a noii
probleme;
b)| Dacă  ïare cel puţin o componentă negativă atunci soluţia este doar dual admisibilă de
bază şi vom continua cu algoritmul simplex dual pentru găsirea celei optime (dacă ea
există!).

57
Bazele cercetării operaţionale

R Pentru problema:


F.S.
(max) = - 4x1 ± x2 + 2x3 (max) = - 4x1 ± x2 + 2x3 ±Ma1

 4 2  2  3 Ê 17 R 1
l
4 2   17
 1 2 3 1

 2 1 2 5  3  14 M  2 1  2 5  3  2 1 14

 1 5  2 3  3  15 l 1 5  2 3  3 3 15
x1, x 2, x3  0 x1,x2, x3, s1, s2, s3, a1  0

obţinem în final următorul tabel simplex:

-4 -1 2 0 0 0 -M
ï xB B x1 x2 x3 s1 s2 s3 a1
11 11 1
0 s1 22 0 1 0 0
3 3 3
11 22 5
0 s2 11 0 0 1 -1
3 3 3
1 5 1
2 x3 5 1 0 0 0
3 3 3
10 13 2
10 0 0 0 M
3 3 3

 1 
1 0 
 1 0 1  3
  5
din care obţinem inversa bazei B =  0 1 5  ca fiind B =  0
-1
1 
0 0 3   3
   1
0 0 
 3
1. Dacă noul vector al termenilor liberi, din problema la forma standard, ar fi b¶ = (2, 5, 6)T
atunci tabelul corespunzător ar fi:

-4 -1 2 0 0 0 -M
xB B x1 x2 x3 s1 s2 s3 a1
11 11 1
0 s1 4 0 1 0 0
3 3 3
11 22 5
0 s2 5 0 0 1 -1
3 3 3
1 5 1
2 x3 2 1 0 0 0
3 3 3
10 13 2
4 0 0 0 M
3 3 3

toate componentele soluţiei ar fi pozitive, ne-am afla în cazul a) şi soluţia găsită ar fi soluţia optimă
în noua problemă.
2. Dacă noul vector al termenilor liberi din problema la forma standard ar fi b¶ = (5, 6, 3)T
atunci tabelul corespunzător ar fi:

58
Bazele cercetării operaţionale

-4 -1 2 0 0 0 -M
c
xB B x1 x2 x3 s1 s2 s3 a1
11 11 1
0 s1 6 0 1 0 0
3 3 3
11 22 5
0 s2 -1 0 0 1 -1
3 3 3
1 5 1
2 x3 1 1 0 0 0
3 3 3
10 13 2
2 0 0 0 M
3 3 3

ar exista componente ale soluţiei strict negative (de exemplu x 3 = -1), ne-am afla în cazul b), soluţia
nu ar fi primal admisibilă şi, pentru găsirea celei optime, (dacă există!) vom aplica în continuare
algoritmul simplex dual.

& | 7* Dacă apar k variabile suplimentare, cu coeficienţii corespunzători, în funcţia


obiectiv şi în restricţii.
Această modificare are ca efect adăugarea a k coloane la matricea A şi a k elemente la
vectorul c, numărul de restricţii (şi deci de linii ale matricii A şi de elemente ale vectorului b)
rămânând acelaşi.
Deoarece, în momentul ajungerii la soluţia optimă, în sistem se află doar restricţii
independente între ele, rangul matricii este egal cu numărul de linii (care este mai mic decât
numărul de coloane) şi, din acest motiv, adăugarea oricâtor coloane nu îl va modifica. Baza fostei
matrici rămâne deci bază şi în noua matrice, soluţia B = B-1öb  0 rămâne soluţie de bază a noului
sistem de restricţii (B şi b fiind aceeaşi), deci este şi o soluţie de bază primal admisibilă a noii
probleme. Tabelul corespunzător acestei baze, în noua problemă, este cel anterior, la care se adaugă
k coloane astfel:

| pe linia variabilelor se adaugă noile variabile;


| pe linia coeficienţilor funcţiei obiectiv se adaugă coeficienţii corespunzători noilor
variabile;
| în interiorul tabelului, sub fiecare variabilă nou introdusă, se adaugă coloana B-1öak,
unde ak este vectorul coloană format din coeficienţii variabilei xk, nou introduse în
restricţiile problemei;
öB-1öak -
!
| Ök, corespunzători noilor variabile, se calculează cu formula cunoscută: Ök =
ck.

Vom avea două cazuri:

a)| Dacă toţi Ök sunt pozitivi, soluţia optimă a fostei probleme este soluţie optimă şi pentru
noua problemă;
b)| Dacă există un indice k, pentru care Ök < 0, atunci soluţia este doar primal admisibilă şi
vom aplica în continuare algoritmul simplex primal, pentru găsirea soluţiei optime (dacă
ea există!)






59
Bazele cercetării operaţionale

R Fie problema:


F.S.

(max) = 3x1 + 4x2 ± 2x3 (max) = 3x1 + 4x2 ± 2x3 ±Ma1

 10 1 7  2  3  36 S
10  1 7  2  3  1  1
l
36

 1 2 Ê 5 M  1  2 5  3  2 5

 1 2 3 Ê 3 l 1  2  3  3 3
x1, x 2, x3  0 x1,x2, x3, s1, s2, s3, a1  0

pentru care obţinem tabelul simplex final:

3 4 -2 0 0 0 -M
xB B x1 x2 x3 s1 s2 s3 a1
1 1 1
4 x2 4 0 1 0 3
3 3 3
1 1 1
3 x1 1 1 0 0 -2
3 3 3
-2 x3 2 0 0 1 0 1 -1 0
1 1
15 0 0 0 4 2 M
3 3

 1 1
 3 
 7 10 1  3 3
 
de unde găsim inversa bazei B =  1 1 0  ca fiind B-1 =  1 2 1 .
 1 1 1 3 3
   
 0 1 1
 
1. Dacă introducem, în plus, variabilele x4, x5 şi x6, obţinând problema la forma standard:

(max) = 3x1 + 4x2 ± 2x3 +2x4 ± 20x5 ±x6 ±Ma1




10 1 7 2 3 4 5 3  6 1  1  36
 1 2 53 2 4 35 2 6 2  5

 1 2 3 2 4 2 5 6 3  3
x1, x2, x3, x4, x5, x6, s1, s2, s3, a1  0

vom obţine tabelul corespunzător bazei B, în noua problemă, prin:

| adăugarea variabilelor x4, x5, x6 la linia variabilelor;


| adăugarea coeficienţilor 2, -20, -1 corespunzători acestor variabile la linia coeficienţilor
funcţiei obiectiv;
| adăugarea coloanelor:
 1 1
 3 
 3 3  1   5 
1 1    
a4 =  2  ö  2  =  3 ,
3 3  2  4 
     
 0 1 1
 
60
Bazele cercetării operaţionale

 1 1
 3   28 
 3 3   1  3 
1 1    
a5 =  2  ö  3  =  19  ,
3 3    3 
   2  
0 1 1  1 
   
 1 1
 3 
 3 3  1   5 
1 1    
a6 =  2  ö  2  =  3 .
3 3    
   2  4 
0 1 1
 
| adăugăm:
| Ö4 = c öB-1öa4 ± c4 = 1
!

11
öB-1öa5 ± c5 =
!
| Ö5 =
3
17
| Ö6 = c öB-1öa6 ± c6 =
!

şi, final, obţinem tabelul:

3 4 -2 2 -20 -1 0 0 0 -M
xB B x1 x2 x3 x4 x5 x6 s1 s2 s3 a1
28 14 1 1 1
4 x2 4 0 1 0 5 3
3 3 3 3 3
19 8 1 1 1
3 x1 1 1 0 0 -3 -2
3 3 3 3 3
-2 x3 2 0 0 1 4 -1 3 0 1 -1 0
11 17 1 1
15 0 0 0 1 4 2 M
3 3 3 3

Se observă că toţi Öj sunt pozitivi, deci soluţia este optimă.

2. Dacă, pentru aceeaşi modificare, alegem coeficientul lui x5 egal cu ±10, în loc de ±20, în
tabel se va modifica doar Ö5, care va avea valoarea 19 şi ne vom afla în cazul b) (deoarece Ö5 <
3
0); vom continua căutarea soluţiei optime cu algoritmul simplex primal.
|
& |9*||Dacă se adaugă o restricţie

Efectul este adăugarea unei linii la matricea A şi a unui element la vectorul b.


Se verifică dacă fosta soluţie de optim verifică noua restricţie. Dacă o verifică, ea este
soluţia de optim şi a noii probleme. Dacă nu o verifică, vom căuta în continuare noua soluţie de
optim (dacă ea există!).
Deoarece rangul matricii A era egal cu numărul de linii (care era mai mic decât numărul de
coloane), prin adăugarea unei linii rangul noii matrici va fi cu 1 mai mare (dacă nu s-ar întâmpla aşa
61
Bazele cercetării operaţionale

ar rezulta că noua restricţie este o combinaţie a celor anterioare şi, deci, nu are nici un efect asupra
mulţimii soluţiilor, putând fi eliminată din sistem, noua problemă fiind de fapt aceeaşi cu fosta
problemă, care e deja rezolvată).
În acest caz, fosta bază nu mai este bază în noua matrice, ci doar un minor cu determinantul
diferit de zero, de dimensiune cu 1 mai mică decât rangul matricii. Pentru a obţine baza noii
probleme vom borda fosta bază cu noua linie şi o coloană.
Din ultimul tabel simplex al fostei probleme, putem scrie fostul sistem la forma:

xB +B-1·S·xS = B-1·b = B

de unde scoatem variabilele principale în funcţie de cele secundare, le înlocuim în noua restricţie şi
apoi aranjăm ca termenul liber bm+1 obţinut să fie pozitiv (înmulţind eventual restricţia cu ±1).
Adăugăm noua restricţie, sub forma obţinută, la sistemul iniţial, scris sub forma corespunzătoare
ultimului tabel simplex. Avem trei cazuri:

a)| Dacă restricţia este de tipul ³ í, introducem variabila de abatere s, care va avea
coeficientul +1 şi baza va fi formată din coloanele corespunzătoare fostelor variabile
principale, plus coloana variabilei s, obţinând matricea unitate. Tabelul corespunzător în
noua problemă va fi fostul tabel, la care se adaugă:

| o linie în plus, pe care: cs = 0 în coloana coeficienţilor din funcţia obiectiv ai


variabilelor din baza, s în coloana variabilelor bazei, bm+1 în coloana soluţiei de
bază, coeficienţii noii restricţii (adusă la ultima formă) în interiorul tabelului şi 1 in
dreptul noii variabile s.
| o coloană în plus corespunzătoare lui s, care va fi vector unitar.

În acest caz, noii Öj vor fi foştii Öj (deoarece cs = 0), la care se adaugă cel corespunzător
lui s (egal cu 0, deoarece s este din bază). Soluţia are toate componentele pozitive şi toţi
Öj pozitivi, deci este soluţia optimă căutată.
b)| Dacă restricţia este de tipul ³í variabila de abatere va avea coeficientul ±1 şi soluţia
corespunzătoare este doar dual admisibilă (deoarece s = -bm+1 < 0); vom continua
căutarea soluţiei optime cu algoritmul simplex dual.
c)| Dacă restricţia este cu ³=í, se introduce variabila artificială a, cu ca = -M, se construieşte
tabelul asociat ca la cazul a) şi se obţine o soluţie admisibilă (deoarece a = bm+1  0), cu
Öj depinzând de M (deoarece ca = -M). Se continuă cu algoritmul simplex primal.

R Fie problema:

F.S.

(max) = x1 ±3x2 + 2x3 (max) = x1 ±3x2 + 2x3


 4 1 2  2  3 Ê 9  4  1 2  2  3 1  9
 
  1 5  2  3  18 M   1 5  2  3  2  1  18
 3  4  2  3 Ê 18  3 4  2  3  3  18
 1  1

x1, x2, x3  0 x1, x2, x3, s1, s2, s3, a1  0

pentru care obţinem tabelul final:

62
Bazele cercetării operaţionale

1 -3 2 0 0 0 -M
cB xB B x1 x2 x3 s1 s2 s3 a1
0 s2 54 0 11 0 2 1 3 -1
2 x3 99 0 22 1 3 0 4 0
1 x1 27 1 6 0 1 0 1 0
225 0 53 0 7 0 9 M

din care putem scrie sistemul de restricţii sub forma:

 2 11 2 2 1  3  54  2  54 11 2 2 1  3
 
  3 22  2 3 1 4  3  99    3  99 22  2 31 4  3
  6 1  3  27    27 6   
 1 2  1 2 1 3

1. Dacă noua restricţie ar fi 2x1 + x2 ± x3 7 atunci soluţia de optim (x1 = 27, x2 = 0, x3 =


99) ar verifica noua restricţie şi ar fi soluţie de optim şi pentru noua problemă.
2. Dacă noua restricţie ar fi 3x1 +2x2 + x3 8 ea nu ar fi verificată de fosta soluţie de optim.
Înlocuind în această restricţie s2, x1 şi x3, cu expresiile obţinute în sistemul de mai sus, rezultă:

3·(27 ± 6x2 ± s1 ± s3 ) + 2x2 + (99 ± 22x2 ± 3s1 ± 4s3) 8


M -38x2 ± 6s1 ± 7s3 -172 M 38x2 + 6s1 + 7s3  172
M| 38x2 + 6s1 + 7s3 ± s = 172

T 2 11 2 21 3 54
l
l 22  2 31 4  3 99
şi sistemul:  3 iar în final, tabelul:
l 1 6  2 1  3 27
l38  2 6 1 7  3  172

1 -3 2 0 0 0 0
cB xB B x1 x2 x3 s1 s2 s3 s
0 s2 54 0 11 0 2 1 3 0
2 x3 99 0 22 1 3 0 4 0
1 x1 27 1 6 0 1 0 1 0
0 s -172 0 38 0 6 0 7 1
225 0 53 0 7 0 9 0

în care soluţia de bază este dual admisibilă. Se continuă rezolvarea problemei cu algoritmul simplex
dual.

3. Dacă noua restricţie ar fi x1 + x2 + x3 = 100 ea nu ar fi verificată de fosta soluţie. Prin


înlocuirea lui x1 şi x3 obţinem:

(27 ± 6x2 ± s1 ± s3) + x2 + (99 ± 22x2 ± 3s1 ± 4s3) = 100


M -27x2 ± 4s1 ± 5s3 = -26 M 27x2 + 4s1 + 5s3 = 26
M| 27x2 + 4s1 + 5s3 + a = 26

63
Bazele cercetării operaţionale

U 2 11 2 2 1  3 54
l
l 22  2 31 4  3 99
rezultă sistemul:  3 iar în final, tabelul:
l 1 6  2 1  3 27
l27  2 4 1 5 3  26

1 -3 2 0 0 0 -M
cB xB B x1 x2 x3 s1 s2 s3 a
0 s2 54 0 11 0 2 1 3 0
2 x3 99 0 22 1 3 0 4 0
1 x1 27 1 6 0 1 0 1 0
-M a 26 0 27 0 4 0 5 1
-26M + 225 0 -27M + 53 0 -4M + 7 0 -5M + 9 0

în care soluţia de bază este primal admisibilă. Se continuă rezolvarea problemei cu algoritmul
simplex primal.

& |:* Dacă se modifică coeficienţii unei variabile xj

4 din A şi/sau a coeficientului cj ›


Efectul este modificarea coloanei aj ›  ï 4 din funcţia
ï
obiectiv. Avem două variante:

& |:*2|Coloana aj nu face parte din B. În acest caz fosta bază B rămâne bază şi în noua
problemă, soluţia corespunzătoare este aceeaşi: B = B-1·b şi tabelul corespunzător este fostul tabel,
în care se modifică doar coloana corespunzătoare variabile xj :

-1 -1
4 , B ·aj › B ·  4 , Öj › 4 
cj › ï ö c 1 ö  ï
4 4
ï ï c
ï

Avem două cazuri:

| Dacă Ö ï
4  0 fosta soluţie optimă rămâne optimă şi în noua problemă.

| Dacă ï
4 < 0 fosta soluţie optimă este doar primal admisibilă şi se va continua rezolvarea

problemei cu algoritmul simplex primal.

R Fie problema:


F.S.

(max) = 2x1 +3x2 + 4x3 (max) = 2x1 +3x2 + 4x3


6  1 5  2  3  15 6  1 5  2  3  1  1  15
 
 6  1 5  2 4  3 Ê 15 M  6  1 5  2 4  3  2  15
4  5  3  5  4 5 2 3 3  5
 1 2  1

x1, x2, x3  0 x1, x2, x3, s1, s2, s3, a1  0

După rezolvare, se obţine tabelul simplex final de mai jos, din care se găseşte inversa bazei
 1 1
 6 1 5  0 
  -1  2 2
B=  6 0 5  ca fiind B =  1 5 6 
 4 0 5   0 2 3
 
 5 5 
64
Bazele cercetării operaţionale

2 3 4 0 0 0 -M
cB xB B x1 x2 x3 s1 s2 s3 a1
3 1 1
2 x1 10 1 0 0 0
2 2 2
0 s1 90 0 0 15 1 5 6 -1
2 3
3 x2 9 0 1 1 0 0
5 5
11 14
47 0 0 2 0 M
5 5

1.| Dacă se modifică coeficienţii variabilei x3, problema devenind:


F.S.
(max) = 2x1 +3x2 + 2x3 (max) = 2x1 +3x2 + 2x3
V6  1 5  2 2  3  15 W6  1 5  2 2  3 1  1 15
l l
 6  1 5  2 3  3 15 M  6  1 5  2 3  3  2 15
l4  5  3   5 l 4 5 3  5
1 2 3 1 2 3 3

x1, x2, x3  0 x1, x2, x3, s1, s2, s3, a1  0

 1 1  
0   2  0 
/  2 2     / 19
noua coloană corespunzătoare lui x3 va fi a 3 =  1 5 6  ·  3  =  1  iar Ö 3 = < 0, deci
2 3   3 5
0  3  
 5 5   5

ne aflăm în cazul b) şi vom continua rezolvarea problemei cu algoritmul simplex primal, de la
tabelul:

2 3 2 0 0 0 -M
cB xB B x1 x2 x3 s1 s2 s3 a1
1 1
2 x1 10 1 0 0 0 0
2 2
0 s1 90 0 0 -1 1 5 6 -1
3 2 3
3 x2 9 0 1 0 0
5 5 5
19 11 14
47 0 0 0 M
5 5 5

2.| Dacă se modifică coeficienţii variabilei x3, problema devenind:

F.S.
(max) = 2x1 +3x2 - 3x3 (max) = 2x1 +3x2 ± 3x3
X6  1 5  2 3  3  15 Y6  1 5  2 3  3 1  1 15
l l
 6  1 5  2 5  3 15 M  6  1 5  2 5  3  2 15
l4  5  2   5 l 4 5 2  5
1 2 3 1 2 3 3

x1, x2, x3  0 x1, x2, x3, s1, s2, s3, a1  0

65
Bazele cercetării operaţionale

 1 1  3
0   3  
 2 2    2 42
noua coloană corespunzătoare lui x3 va fi a/3 =  1 5 6  ·  5  = 16 iar Ö/3 = < 0, deci ne
2 3    4  5
0   2
 5 5  5
  
aflăm în cazul a) cu fosta soluţie optimă şi pentru noua problemă, tabelul final fiind:

2 3 -3 0 0 0 -M
cB xB B x1 x2 x3 s1 s2 s3 a1
3 1 1
2 x1 10 1 0 0 0
2 2 2
0 s1 90 0 0 16 1 5 6 -1
4 2 3
3 x2 9 0 1 0 0
5 5 5
42 11 14
47 0 0 0 M
5 5 5

& | :*6 Coloana aj face parte din baza B. În acest caz fosta bază nu mai există în noua
4 în B, poate fi:
matrice A. Noul minor B¶, obţinut prin înlocuirea lui aj cu  ï
| neinversabil (det B¶ = 0) caz în care trebuie căutată altă bază;
| inversabil, soluţia corespunzătoare B¶ = (B¶)-1·b putându-se în următoarele situaţii:
| are toate componentele pozitive (B¶  0), deci este primal admisibilă şi putem aplica
în continuare algoritmul simplex primal;
| are componente strict negative, dar are toţi Öj pozitivi, deci este dual admisibilă şi
putem aplica în continuare algoritmul simplex dual;
| are componente strict negative şi există Öj strict negativi, deci nu este nici primal nici
dual admisibilă şi trebuie căutată altă bază.

Se observă că există variante când trebuie căutate alte baze şi, chiar în cazurile când putem
folosi noua bază, avem de făcut calcule laborioase (inversarea lui B¶, calculul produselor B-1·b şi B-
1
·A şi calculul noilor Öj). Din acest motiv vom aplica următorul procedeu (fără a mai verifica
posibilitatea existenţei unui caz favorabil de mai sus):

 . Se scriu în noua problemă (adusă la forma canonică) toţi termenii cu variabila xj ca
o sumă de doi termeni, unul având coeficient fostul coeficient al variabilei xj iar celălalt diferenţa
dintre aceştia:

4 · xj = cj · xj + ( 4 - cj ) · xj
ï ï
 4ï· xij = aij · xj + (  4ï- aij) · xj

 . Se înlocuieşte în toţi termenii de forma ( ï 4 - cj) · xj şi (  4 - aij) · xj, variabila xj cu o
ï
nouă variabilă y şi se adaugă la sistem restricţia xj = y, obţinându-se o problemă echivalentă.

  . Pentru noua problemă, se aplică procedeul de la & | 9 pentru varianta c),
obţinându-se o soluţie de bază admisibilă cu care se continuă cu algoritmul simplex primal.

R După rezolvarea problemei:


66
Bazele cercetării operaţionale

F.S.

(max) = 2x1 +3x2 + 5x3 (max) = 2x1 +3x2 + 5x3


3  1  2 2  3 Ê 10 3  1  2 2  3  1  10
 
 1 2  2 3  3 Ê 8 M  1 2  2 3  3  2  8
2  2 
 1 2 3 Ê 6  1 2 3 3  6
x1, x2, x3  0 x1, x2, x3, s1, s2, s3  0

se obţine soluţia optimă şi tabelul pentru baza corespunzătoare variabilelor (x1, x3, s3), în care (x1 =
2, x3 = 2, s3 = 0) şi tabelul:

2 3 5 0 0 0
cB xB B x1 x2 x3 s1 s2 s3
1 3 2
2 x1 2 1 0 0
7 7 7
5 1 3
5 x3 2 0 1 0
7 7 7
4 5 1
0 s3 0 0 0 1
7 7 7
2 1 11
14 0 0 0
7 7 7

B şi B-1 fiind date mai jos:


 3 2 
 0
 3 2 0  7 7 
   1 3
B =  1 3 0 -1
B = 0
 7 7 
 2 1 1  5 
  1
 1
 7 7 
Dacă presupunem că se modifică coeficienţii variabilei x3, noua problemă fiind:
F.S.

(max) = 2x1 +3x2 + 2x3 (max) = 2x1 +3x2 + 2x3


Z3  1  2  3 10 [3  1  2  3  1 10
l l
 1 2  2  3 8 M  1 2  2  3  2 8
l2    6 l2     6
1 2 3 1 2 3 3

x1, x2, x3  0 x1, x2, x3, s1, s2, s3  0

deoarece x3 face parte din bază, vom face transformarea:


F.S.
(max) = 2x1 +3x2 + 5x3 - 3y
(max) = 2x1 +3x2 + 2x3
3  1  2  3  1  10
\3  1  2 2  3 : 1 10
 l
l 1 2  2 3  3 2 :  2 8
 1 2  2  3  2  8 M 
2  l2  1  2  3  3 6
 1  2 3 3  6 l 3 :
x1, x2, x3, s1, s2, s3  0
x1, x2, x3, s1, s2, s3, y  0

67
Bazele cercetării operaţionale

Din primele trei ecuaţii scoatem variabilele fostei baze (x1, x3, s3) în funcţie de celelalte,
înmulţind sistemul cu B-1. Coeficienţii fostelor variabile se iau din ultimul tabel iar ai lui y se
calculează înmulţind coloana coeficienţilor lui cu B-1. Avem:

 3 2   1 
 0  
 1  7 7   1  7 
  1 3    5
B-1 ·  2  =  0 ·  2 =  
 
 0   7 7
  0   7
  5 1   3
 1  
 7 7   7 

 1 1 3 2
 1 7  2 7 : 7  1 7
2  2
5 5 1 3
  2  3 : 1 2  2
deci sistemul va avea forma:  7 7 7 7
4 3 5 1
 2 : 1 2 3  0
 7 7 7 7
 3  :

Din pr