Sunteți pe pagina 1din 19

C A P I T O L U L I

PROGRAMARE N NUMERE NTREGI




1. Specificul programrii n numere ntregi

Este binecunoscut faptul c modelarea prin programare liniar reprezint un mijloc
puternic i eficace pentru studiul proceselor economice n vederea mbuntirii performanelor
acestora.
O proprietate foarte important a variabilelor de decizie, dintr-un program liniar era aceea
c, o dat cu dou valori permise, puteau lua orice alt valoare intermediar; aceast proprietate
de a putea varia continuu era esenial n fundamentarea metodelor de determinare a soluiilor
optime.
Nu puine sunt situaiile practice, modelate cu ajutorul programrii liniare n care unele
variabile de decizie nu au sens economic dect dac au numai valori ntregi.
De exemplu, dac outputul unei activiti este msurat n uniti indivizibile este clar c
valorile permise ale variabilei care indic nivelul activitii respective trebuie s fie numere ntregi.
La fel, repartizarea personalului muncitor, al utilajelor sau al mijloacelor de transport pe diverse
activiti trebuie exprimat tot prin cantiti ntregi.

Exemplul 1.1 [4] Un fermier are nevoie de 107 funi de ngrmnt pe care l poate procura
fie n saci de 35 funi la preul de 14 $ sacul, fie n saci de 24 funi a 12 $ fiecare. Obiectivul su
este de a cumpra cantitatea necesar de ngrmnt la cel mai mic cost.
Notnd cu x
1
, x
2
numrul sacilor de 35 funi, respectiv 24 funi cumprai de fermier,
modelul situaiei descrise arat astfel:






min f = 14 x
1
+ x
2
costul sacilor cumprai
35 x
1
+ 24 x
2
107 asigurarea achiziionrii cantitii de ngrmnt dorite
x
1
, x
2
0, ntregi
n modelul rezultat, condiia x
1
, x
2
ntregi nseamn pur i simplu c fermierul nu poate
cumpra o jumtate sau o treime de sac; ori cumpr un sac ntreg ori nu. Fr aceast condiie
avem de a face cu o problem uzual de programare liniar.

Poate mai importante sunt situaiile n care trebuie luate decizii de tip da sau nu ca de
exemplu:

se poate aproba realizarea unui anumit proiect de dezvoltare ?
se poate iniia o activitate implicnd un anumit cost fix de pregtire ?
se poate amplasa o facilitate (unitate productiv, depozit, magazin) ntr-un anumit loc ?

Existnd doar dou posibiliti, de a amplasa sau de a respinge, asemenea decizii pot fi
reprezentate prin variabile cu numai dou valori permise, 0 sau 1:
1

1, dac decizia este afirmativ;
0, dac decizia este negativ.

Exemplul 1.2 [7 ] n cadrul unui proiect mai general de extindere i dezvoltare, conducerea
unei firme studiaz oportunitatea construirii unei noi fabrici fie n oraul A, fie n oraul B, poate
chiar n amndou i a cel mult un depozit ntr-unul din cele dou orae, alegerea amplasamentului
fiind ns condiionat de construirea unei fabrici n localitatea respectiv. n tabelul 1.1. sunt
indicate: valoarea prezent net a diferitelor alternative, capitalul necesar acestor investiii i
capitalul disponibil pentru ntregul proiect de dezvoltare.
milioane $
Nr.
crt.
Alternativa decizional Variabila
de decizie
Valoarea
prezent net
Capitalul
necesar
1 Construirea unei fabrici n A x
1
9 6
2 Construirea unei fabrici n B x
2
5 3
3 Construirea unui depozit n A x
3
6 5
4 Construirea unui depozit n B x
4
4 2
Capital disponibil 10

Tabelul 1.1.

1 dac alternativa decizional j se aprob
j = 1, 2, 3, 4.
0 dac alternativa decizional j se respinge
unde x
j
=


Condiiile specificate n proiectul de dezvoltare se formalizeaz astfel:

cel mult un depozit poate fi construit: x
3
+ x
4
1
(deoarece x
3
, x
4
nu pot lua dect valorile 0 sau 1, se elimin posibilitatea construirii a dou depozite
n ambele orae deoarece x
3
= 1, x
4
= 1 nu satisfac inegalitatea !)
depozitul nu poate fi construit n lipsa unitii productive: x
3
x
1
, x
4
x
2

(este clar c x
1
= 0 implic cu necesitate x
3
= 0, etc.)
ncadrarea n capitalul disponibil: 6 x
1
+ 3 x
2
+ 5 x
3
+ 2 x
4
10
maximizarea valorii prezente nete totale a obiectivelor care se vor realiza:
9 x
1
+ 5 x
2
+ 6 x
3
+ 4 x
4
max
Rezult urmtorul model matematic:

max f = 9 x
1
+ 5 x
2
+ 6 x
3
+ 4 x
4

: 6 x
1
+ 3 x
2
+ 5 x
3
+ 2 x
4
10
x
3
+ x
4
1
- x
1
+ x
3
0
- x
2
+ x
4
0


x
j
1
ntregi x
J
{0, 1} j = 1, 2, 3, 4
x
j
0











Observaie: Dac s-ar fi pus condiia construirii unui singur depozit ntr-unul din cele dou
orae, atunci inegalitatea x
3
+ x
4
1 trebuie schimbat n x
3
+ x
4
= 1.

Pentru cele ce urmeaz este necesar s precizm civa termeni.
2
variabil continu variabil care, o dat cu dou valori permise poate lua orice alt
valoare intermediar;
variabil ntreag variabil care nu poate lua dect valori numere ntregi;
variabil bivalent (boolean)variabil ntreag care nu poate lua dect valorile 0 sau 1;
problem de programare n numere ntregi (pe scurt program ntreg) problem de
programare liniar care utilizeaz una sau mai multe variabile ntregi. Problema se zice total dac
toate variabilele sale sunt ntregi i mixt dac utilizeaz simultan i variabile continue i variabile
ntregi;
problem de programare bivalent (sau program bivalent) total sau mixt
problem care utilizeaz variabile bivalente.

Exemplul 1.2. arat c utilizarea variabilelor ntregi aduce un plus de flexibilitate n
modelarea unor situaii practice. Aceast flexibilitate cost ns destul de mult, deoarece
programele ntregi sunt mult mai greu de rezolvat dect programele liniare uzuale (adic n variabile
continue). Fr a intra deocamdat n amnunte este suficient s amintim c dac n prezent a
devenit o obinuin rezolvarea unor programe liniare cu mii de variabile continue (firete utiliznd
programe comerciale de calculator), un program cu mai puin de 100 variabile ntregi poate cauza
mari dificulti !

Pentru evitarea complicaiilor se poate aplica urmtoarea schem de rezolvare
aproximativ a programelor ntregi.
Se ignor condiia ca variabilele s ia numai valori ntregi i se rezolv programul relaxat
care este un program liniar uzual. Dou situaii sunt posibile:

soluia optim a problemei relaxate are toate componentele ntregi; aceasta va fi, evident i
soluia optim a programului ntreg original;
unele componente ale soluiei optime a programului relaxat sunt fracionare. n aceast
situaie componentele fracionare vor fi rotunjite inferior sau superior la valori ntregi, n ideea
c soluia optim ntreag este situat n apropierea soluiei optime fracionare.

Operaia de rotunjire trebuie astfel fcut nct rezultatul s fie o soluie a problemei, adic s
verifice restriciile. este firesc s acceptm soluia continu prin rotunjire, cel puin ca soluie
suboptimal; n multe contexte practice acest lucru este justificat prin faptul c valorile permise
variabilelor sunt suficient de mari astfel nct efectul rotunjirii s fie neglijabil.
Nu puine sunt situaiile n care strategia de rezolvare fie i aproximativ prin rotunjirea
soluiei optime fracionare nu este recomandabil. Uneori se ntmpl ca numrul alternativelor de
rotunjire s fie foarte mare implicnd un volum apreciabil de calcule suplimentare pentru
verificarea i sortarea acestora. Pe de alt parte, pentru unele programe ntregi n care variabilele iau
valori destul de mici, ca de exemplu 0 sau 1, este posibil ca distana dintre optimul ntreg i cel
fracionar s fie att de mare nct simpla rotunjire s nu duc la o soluie acceptabil.

Exemplul 1.3 Pentru programul ntreg din exemplul 1.1. soluia optim a programului
relaxat:





min f = 14 x
1
+ 12 x
2

35 x
1
+ 24 x
2
107
x
1
0, x
2
0
are componentele:

3
( )
5
2
42 x f ; 0 x ,
35
2
3 x
2 1
= = =



Sunt evidente urmtoarele rotunjiri care conduc la soluii admisibile:

( ) funti 140 35 4 ; 56 x f ; 0 x , 4 x
2 1
= = = =
( ) funti 129 24 1 35 3 ; 54 x f ; 1 x , 3 x
1 1
= + = = =

A doua soluie - mai bun este totui departe de soluia optim ntreag:

( ) funti 107 24 3 35 1 ; 50 x f ; 3 x , 1 x
0 0
2
0
1
= + = = =


2. Domenii de aplicare ale programrii n numere ntregi. Exemple

Situaiile practice a cror modelare necesit utilizarea variabilelor ntregi sunt extrem de
numeroase i exemplele urmtoare nu acoper nici pe departe aceast varietate. Dup cum vom
vedea n urmtorul capitol, situaiile combinatoriale pot fi modelate cel puin n principiu ca
probleme de programri n numere ntregi.

2.1. Problema monezilor Cum poate fi pltit o sum de bani astfel nct:

numrul tipurilor valorice de monezi utilizate la plat s nu depeasc o limit dat;
numrul total al monezilor necesare plii s fie minim.

Pentru formalizare avem nevoie de urmtoarele notaii:

S = suma de plat,
n = numrul total al tipurilor valorice de monezi disponibile pentru plat;
p = numrul maxim de tipuri valorice de monezi ce pot fi utilizate la plata sumei S;
a
j
valoarea monezii de tip j;
m
j
numrul monezilor de tip j disponibile n cas.

Introducem variabilele:
x
j
= numrul monezilor de tip j utilizate la plata sumei S;

Rezult urmtorul program ntreg

( ) =
=
n
1 j
j
x f min
=
=
n
1 j
j j
S x a
0 x
j
m
j
y
j
j=1, ...n

=
n
1 j
j
p y
x
j
0 ntregi; y
j
{0, 1} j = 1, ...n


4
2.2. Alegerea proiectelor de investiii O firm este interesat n mai multe proiecte de
investiii pe care ar putea s le realizeze n civa ani dar, din cauza bugetului limitat, va trebui s se
limiteze la o parte din ele. Proiectul j aduce firmei n caz de finalizare un profit estimat la c
j

dolari j = 1, ... n i necesit investiii anuale n valoare de a
ij
dolari i = 1, ... m. Capitalul disponibil
pentru anul i este b
i
. Se pune problema alegerii acelor proiecte care s aduc firmei un profit total
maxim cu condiia nedepirii capitalului disponibil anual.

Pentru formalizare introducem variabile bivalente




Obinem programul bivalent:
( ) =
=
n
1 j
j j
x c f max
=
=
n
1 j
i j ij
m ,... 1 i b x a
x
j
{0, 1} j = 1, ... n
x
j
=
1 dac proiectul j este acceptat
0 dac proiectul j este respins


Observaie Utilizarea variabilelor bivalente ne permite s modelm o serie de situaii
speciale. De exemplu:
cel mult unul din primele trei proiecte poate fi acceptat: x
1
+ x
2
+ x
3
1;
numai unul din primele trei proiecte poate fi acceptat: x
1
+ x
2
+ x
3
= 1;
nu poate fi acceptat proiectul 2 dac proiectele 1 i 4 sunt respinse: x
2
x
1
+ x
4

etc.

2.3. Elaborarea programelor de producie cu costuri de pregtire

S considerm programul liniar

=
=
n
1 j
i j ij
m ,... 1 i b x a
x
j
0 j = 1, ... n
( ) =
=
n
1 j
j j
x c f min

n care x
1
, x
2
, ... x
n
reprezint nivelul unor activiti productive iar c
1
, c
2
, ...c
n
sunt costurile unitare
aferente. Ipoteza uzual de liniaritate presupune proporionalitatea direct ntre costul unei
activiti i nivelul la care este operat activitatea respectiv. Exist ns situaii n care demararea
unei activiti necesit un cost de pregtire, independent de nivelul la care activitatea va fi operat.
Costul activitii j va avea forma:

0 dac x
j
= 0
q
j
+ c
j
x
j
dac x
j
> 0
c
j
(x
j
) =


Pentru a ncorpora n modelul matematic anterior aceste elemente introducem urmtoarele bivalente


5
y
j
=
1 dac activitatea j va fi operativ la un nivel x
j
> 0
0 n caz contrar


Rezult programul mixt:
= =
=
n
1 j
i j ij
m ,... 1 i b x a
x
j
m
j
y
j
j = 1, ... n
x
j
0, y
j
{0,1} j = 1, ... n
( ) + =
= =
n
1 j
n
1 j
j j j j
x c y q f min
unde m
j
reprezint o
limit superioar a
nivelului x
j
al activitii j

2.4 Stabilirea programului de zbor al avioanelor unei companii de transporturi aeriene

O companie de transporturi aeriene are n dotare mai multe avioane de diferite tipuri pe care
i impune s le utilizeze ct mai bine pe rutele de transport utilizate de aceast companie.

Datele problemei:

m = numrul tipurilor de avioane;
n = numrul rutelor servite de companie;
c
i
= capacitatea maxim de transport a unui avion de tipul i (nr. locurilor disponibile);
d
i
= numrul avioanelor de tipul i disponibile;
b
j
= numrul clienilor poteniali pe ruta j;
p
j
= profitul companiei pe cltor transportat pe ruta j;
a
ij
= numrul de zboruri pe care un avion de tipul i l poate face pe ruta j ntr-o perioad (zi,
decad, lun);
q
ij
= costul operrii unui zbor al unui avion de tipul i pe ruta j

Obiectiv:
repartizarea avioanelor pe rute i stabilirea numrului de zboruri ce trebuie efectuate la
nivelul unei perioade astfel nct cererile de transport s fie raional fcute la cel mai mic cost.

Variabile modelului:

x
ij
= numrul avioanelor de tipul i rezultate pe ruta j;
y
ij
= numrul de zboruri planificat a se realiza cu avioane de tipul i pe ruta j ntr-o perioad.

Funcia obiectiv. Avem dou cazuri:

1) Se au n vedere numai costurile de operare ale diferitelor zboruri:

(2.1.) ( ) =
= =
m
1 j
n
i j
ij ij 1
y q f min
2) La costurile de operare se adaug i costurile de penalizare pentru locurile libere. Pe
ruta j numrul locurilor libere este dat de diferena ; b y c
i
m
1 i
ij i

=
astfel c expresia cheltuielilor de
penalizare identificat cu profitul pierdut este:

6
=
|
|
.
|

\
|

= = = = =
m
1 i
n
1 j
n
1 j
j j ij j i
m
1 i
i ij i
n
1 j
j
b p y p c b y c p


)
Cheltuielile totale vor avea expresia:

( ) + = +
= = = = = = = =
m
1 i
n
1 j
n
1 j
j j ij j i ij
m
1 i
n
1 j
n
1 j
j j
m
1 i
n
1 j
ij j i ij ij
b p y p c q b p y p c y q
astfel c funcia obiectiv devine:

(2.2.) ( ) ( + =
= =
m
1 i
n
1 j
ij j i ij 2
y p c q f min

expresia fiind o constant ce nu afecteaz optimizarea.
=
n
1 j
j j
b p
Restricii:

ncadrarea aparatelor repartizate n numrul disponibil de avioane
i = 1, ... m (2.3.)
i
n
1 j
ij
d x
=
condiia de realizare a zborurilor planificate n funcie de numrul avioanelor repartizate

ij ij ij
x a y i = 1, ... m; j = 1, ...m (2.4.)

satisfacerea cererilor de transport:

j = 1, ... m (2.5.)
=
m
1 i
j ij i
b y c

Condiii impuse explicit variabilelor:

x
ij
0, y
ij
0 ntregi i = 1, ... m; j = 1, ... n (2.6.)

Atand condiiilor 2.3. 2.6. funciile obiectiv (2.1.) i (2.2.) se obin dou programe
ntregi totale.

3. Particularitile mulimii soluiilor admisibile ale unui program ntreg

S considerm urmtorul program ntreg total (P) mpreun cu programul relaxat (PL)
obinut din (P) prin eliminarea cerinei ca variabilele s ia numai valori ntregi:

Programul ntreg (P) Programul relaxat (PL)
max f = 3 x
1
x
2

3 x
1
2 x
2
3
5 x
1
+ 4 x
2
10
2 x
1
+ x
2
5
x
1
, x
2
0
x
1
, x
2
ntregi
(max) f = 3 x
1
x
2

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






7
Ne propunem:

s rezolvm grafic cele dou programe;
s punem n eviden principalele proprieti ale mulimilor de soluii admisibile ale celor
dou programe. Analiza comparativ a acestor proprieti ne va permite degajarea cel puin la
nivel de principiu a unor metode de rezolvare (exact) a programelor ntregi.

Terminologie, notaii:

soluie admisibil ansamblu de valori numerice (nu neaprat ntregi) care verific
restriciile i condiiile de nenegativitate;
soluie admisibil ntreag soluie admisibil cu toate componentele ntregi;
A
PL
mulimea sluiilor admisibile ale programului relaxat (PL);
A
P
mulimea soluiilor admisibile ntregi ale programului (P);
soluia optim fracionar soluia optim a programului relaxat (PL), notat constant cu x*;
optim fracionar valoarea f (x*) a funciei obiectiv n soluia optim fracionar x*;
soluia optim ntreag soluia optim a programului ntreg (P), notat constant cu x
0
;
optim ntreg valoarea f (x
0
) a funciei obiectiv n soluia optim ntreag x
0
.

Vizualizm mulimile A
P
i A
PL

Reamintim c pentru reprezentarea grafic a mulimii A
PL
se fac urmtoarele operaii:

se reprezint grafic dreptele: d
1
3 x
1
2 x
2
= 3
d
2
5 x
1
+ 4 x
2
= 10
d
3
2 x
1
+ x
2
= 5
i se identific semiplanele n care au loc cele trei restricii i cele dou condiii de nenegativitate.

A
PL
va fi intersecia celor cinci semiplane puse n eviden mai sus adic poligonul simplu
haurat DFGH


8
x
2


d
3

dreapta de nivel
3
2
x x 3 f
2 1
= = a funciei obiectiv
D
max f

soluia optim NTREAG x
0
=(1,2)
optimul NTREG f(x
0
)=1
C
E


d
2
B

A

soluia optim FRACIONAR |
.
|

\
|

7
9
,
7
13
x
H
F
optimul FRACIONAR ( )
7
30
x =

f
G
x
1





Fig. 3.1.


Pentru a gsi soluia optim fracionar se reprezint grafic o dreapt de nivel a funciei
obiectiv i se stabilete direcia de translatare a acesteia corespunztoare maximizrii. Rezult
|
.
|

\
|
=

7
9
,
7
13
x vrful F din desen optimul fracionar avnd valoarea ( )
7
30
x f =

.
Prin simpl inspecie se constat c mulimea soluiilor admisibile ntregi ale programului
(P) se compune din cinci puncte:

A
P
= {A(1,2), B(0,3), C(0,4), D(0,5), E(1,3)}

Funcia obiectiv f are valoarea maxim n A(1,2); prin urmare soluia optim ntreag este
x
0
=(1,2) iar optimul ntreg are valoarea f(x
0
) = 1.
Comparnd mulimile A
P
i A
PL
se pot formula urmtoarele concluzii i n cazul general:

1) A
PL
este o mulime n care fiecare punct este nconjurat de alte puncte din mulimi
orict de apropiate. Ca urmare, teoria clasic a optimizrii, bazat dup cum se tie pe posibilitatea
efecturii unor deplasri infinitesimale n jurul unui punct, este direct aplicabil.
Prin contrast, A
P
este o mulime rar, adic orice punct din ea posed o vecintate suficient
de mic n care nu se mai afl alte puncte din mulime. Aplicarea teoriei amintite este n acest caz
lipsit de sens.

2) A
PL
este o mulime convex i mai mult poliedral avnd un numr finit de vrfuri.
Aceste proprieti, plus liniaritatea funciei obiectiv, ne asigur c soluia optim fracionar se
gsete ntr-unul din vrfuri (conform teoremei centrale a programrii liniare). Cercetarea
sistematic a mulimii vrfurilor lui A
PL
cu ajutorul algoritmului simplex conduce la optimul
fracionar ntr-un numr finit de pai.
Cu rare excepii, soluia optim ntreag care este la urma urmei o soluie admisibil
problemei relaxate se gsete n interiorul mulimii A
PL
i ca urmare nu este nici mcar generat
de ctre algoritmul simplex.

3) S considerm anvelopa convex a mulimii A
P
, adic cea mai mic mulime convex
care conine A
P
. n fig. 3.1. aceast anvelop este reprezentat de poligonul dublu haurat ABDE.
Prin construcie vrfurile anvelopei sunt soluii admisibile ntregi ale programului (P).
Dac vom maximiza funcia obiectiv f pe anvelopa convex a soluiilor admisibile ntregi
vom regsi soluia optim ntreag x
0
.

n concluzie, putem rezolva o problem de programare n numere ntregi ca o problem de
programare liniar uzual cu condiia s tim s descriem n limbaj de inecuaii liniare anvelopa
convex a soluiilor admisibile ntregi.
n cazul studiat, aceast descriere este uor de fcut: anvelopa ABDE se compune din
soluiile sistemului de inecuaii




2 x
1
+ x
2
5
x
1
+ x
2
3
x
1
1
x
1
0, x
2
0

9
n cazul general descrierea este practic imposibil de fcut. Totui am putea recupera ceva
din aceast idee: adugnd la problema relaxat PL un numr de restricii suplimentare judicios
alese, numite tieturi, se pot ndeprta din A
PL
o serie de poriuni astfel nct soluia optim ntreag
s devin vrf n mulimea rmas vezi fig. 3.2.





max f
A
PL 2
Tietura 2
x
0
A
PL 2
max f
Tietura 1
x
0
A
PL 1
max f
max f
A
PL
2
0










Fig. 3.2


n acest fel soluia optim ntreag va putea fi detectat de ctre algoritmul simplex.

4) n cazul studiat A
P
era o mulime finit. Acest lucru se ntmpl i n situaii mai generale;
de exemplu o problem de programare cu n variabile bivalente nu poate avea mai mult de 2
n
soluii
admisibile ntregi. Fr a influena generalitatea concluziilor, se poate presupune c orice program
ntreg are un numr finit de soluii ntregi.

Aceste constatri ne vor permite s nelegem mai bune fundamentele, performanele i
limitele metodelor de rezolvare a programelor ntregi ce vor fi prezentate n urmtoarea seciune.

4. Metode de rezolvare ale programelor ntregi

Urmtoarele consideraii vizeaz programul ntreg n form standard cu m ecuaii i n
variabile:
m ,... 1 i b x a
n
1 j
i j ij
= =
=
x
j
0 j = 1,...n
(P)
x
j
ntregi
( ) =
=
n
1 j
l j
x c f max
A x = b
x 0
x ntreg ( cu componente ntregi)
(max) f = cx


n care toate constantele a
ij
, b
i
, c
j
sunt numere ntregi.

Forma general de mai sus acoper i cazul particular important al programelor bivalente prin
introducerea restriciilor x
j
1 , j = 1, ... n Ca i pn acum (PL) va desemna programul relaxat
dedus din (P) prin eliminarea condiiei de integritate impus variabilelor.
Vom presupune n mod constant c mulimea soluiilor admisibile ale problemei (PL) este
mrginit; n problemele practice aceast cerin poate fi ntotdeauna asigurat. Rezult imediat c
(P) are un numr finit de soluii admisibile ntregi.
10
Deoarece coeficienii funciei obiectiv sunt ntregi i optimul ntreg va fi un numr ntreg.
Mai mult:
optimul ntreg optimul fracionar

unde nseamn rotunjirea ntreag inferioar a numrului real .

Ne propunem n continuare s dm o clasificare a metodelor i algoritmilor de rezolvare a
programului ntreg general (P); observaiile i concluziile din seciunea prezentat vor juca un rol
esenial.

1) O mare parte din aceste metode reduc rezolvarea programului ntreg (P) la rezolvarea
unei secvene finite i programe liniare uzuale:

(PL
0
= PL), PL
1
, PL
2
, ... , PL
t

ultimul avnd drept soluie optim chiar soluia optim ntreag a programului original (P).
Pentru fiecare k = 1, 2, ... t programul (PL
k
) se obine din cel anterior prin adugarea unei
anumite restricii suplimentare a crei construcie difer de la metod la metod. Restriciile
suplimentare sunt astfel alese nct:

s fie verificate de orice soluie admisibil ntreag a programului original (P);

prin introducerea lor s ndeprteze poriuni din mulimea A
PL
a tuturor soluiilor
admisibile ale relaxatei PL PL
0
pn cnd soluia optim ntreag devine vrf n mulimea
rmas, putnd fi astfel cunoscut de algoritmul simplex - vezi fig. 3.2.
Din acest motiv aceste restricii suplimentare se mai numesc i tieturi sau plane de
seciune.
Din categoria algoritmilor bazai pe tieturi fac parte algoritmii discret i ciclic datorai lui
Gomory (1960) i algoritmul primal al lui Young i Glover (1972).

2) Faptul c un program ntreg are (sau poate fi fcut s aib) un numr finit de soluii
sugereaz un alt mod de rezolvare a programelor ntregi bazate pe enumerarea total sau parial
a acestor soluii. Enumerarea total este evocat doar ca posibilitate pentru c numrul soluiilor
admisibile ntregi, dei finit este de regul foarte mare.
Schemele de enumerare parial determin soluia optim ntreag genernd efectiv doar o
parte a mulimii soluiilor admisibile ntregi, soluiile negenerate fiind recunoscute implicit ca
neoptimale.
Domeniul predilect de aplicare a metodelor de enumerare l constituie programarea
bivalent. Un exemplu reprezentativ l constituie algoritmul aditiv al lui Bala (1965).

3) Punerea n eviden a soluiei optime ntregi x
0
situat de regul n interiorul mulimii
soluiilor admisibile ale problemei relaxate se poate face i n urmtorul mod (Dakin, Driebeck,
1964).
S presupunem c am rezolvat problema relaxat PL, cu ajutorul algoritmului simplex
obinnd soluia optim fracionar x*. Dac x* are toate componentele ntregi, am terminat:

x* x
0
soluia optim ntreag a programului original (P)

n caz contrar, una sau mai multe din componentele ale soluiei x* nu sunt ntregi; s
presupunem de exemplu c este fracionar. Este clar atunci c soluia optim ntreag cutat va
verifica una din urmtoarele inegaliti mutual exclusive:
,... x , x
2 1

1
x
11


1 x saux x x
1 1 1 1
+



(unde s-a notat cu a partea ntreag a numrului real a ).
Considerm programele liniare obinute prin extinderea relaxatei PL cu fiecare din cele dou
inegaliti:

PL PL
PL
1
PL
2


1 1
x x

1 x x
1 1
+



Vom spune c am ramificat problema (PL) dup variabila x
1
.





( )

=
2 1
x , x x







A
PL 1


A
PL 2
x
1


1 1
x x

1 x x
1 1
+



Fig. 4.1.


Este uor de artat c:

Mulimile de soluii admisibile A
PL 1
i A
PL 2
ale celor dou programe noi sunt submulimi
stricte n A
PL
.
A
1
A
2
= A
P
i A
1
A
2
=

unde A
1
, A
2
sunt mulimile de soluii admisibile ntregi ale programelor PL
1
i PL
2
. n particular
soluia optim ntreag a programului original (P) se gsete ntr-una (i numai n una) din
mulimile mai mici A
PL 1
sau A
PL 2
vezi figura 4.1.

Rezolvm n continuare PL
1
; putem face acest lucru prin reoptimizare. S presupunem c
PL
1
este compatibil; n soluia sa optim, notat x
* 1
prima component va fi cu siguran ntreag:


=
1
1
1
x x .
12
n ipoteza ca a doua component este fracionar vom deriva alte dou noi programe
liniare dup modelul de mai sus:
1
2
x






PL
1
PL
1
PL
11
PL
12



1
2
2
x x



1 x
1
2
+

x
2


Dac soluia optim ntreag cutat este soluie admisibil pentru programul PL
1
atunci cu
siguran ea se va gsi n una din mulimile de soluii admisibile ale celor dou programe rezultate
prin ramificare.
n principiu, reunificarea poate continua de la oricare din problemele PL
11
, PL
12
sau PL
2
,
condiiile de ramificare fiind acelea ca programul n cauz:

s fie compatibil (adic s aib soluii admisibile);
soluia sa optim s aib cel puin o component fracionar.

De regul, ramificarea se face dup prima variabil cu valoare fracionar sau dup
variabila cu cea mai mare parte fracionar.

Pentru nelegerea metodei vom vizualiza procesul de ramificare printr-un graf arbore T ale
crui moduri sunt diferitele probleme rezultate din ramificare. Nodurile terminale (adic nodurile
din care nu s-a mai efectuat ramificarea) sunt fie probleme incompatibile fie probleme cu soluii
optime ntregi. Cu excepia rdcinii (PL) fiecare nod din T are un unic predecesor. Orice nod care
nu este nod terminal are doi succesori.




1 1
x x

1 x x
1 1
+







1
2
2
x x



1 x x
1
2
2
+ >


PL
11
PL
11
PL
1
PL
12
PL
11
Introducem urmtoarele variabile:
x
CMB
(vector) care reine cea
mai bun soluie admisibil ntreag
la un moment sau altul al derulrii
procesului de ramificare
z
CMB
, care reine valoarea
funciei obiectiv n x
CMB.
La start: x
CMB
= z
CMB
= -







Figura 4.1

Fiecare nod PL

al arborelui T unde este o succesiune de 1 i 2 va avea ataat o


margine superioar:

z

rotunjirea ntreag inferioar a optimului problemei PL

n cazul n care aceasta este


13
compatibil.

Este clar c dac soluia optim ntreag x
0
se afl printre soluiile admisibile ale problemei
PL

atunci:
z
CMB
f (x
0
) optimul ntreg z



Prin urmare, dac pentru o problem PL

rezultat din ramificare, avem:

z

z
CMB

nu mai are nici un rost s ramificm PL

, deoarece printre eventualele sale soluii admisibil ntregi


nu exist nici una mai bun dect actuala x
CMB
!

Arborele T nu exist de la nceput. La start el se reduce la rdcina (PL) i n continuare
primete noi noduri i arce de legtur n funcie de problemele rezultate din ramificare i efectiv
rezolvate.
Metoda de rezolvare a unui program ntreg succint expus mai sus va fi explicat mai n
detaliu pe urmtorul exemplu:

+

+
+ =
intregi , 0 ,
7 2 2
2
2 2
3 5 (max)
) (
2 1
2 1
2 1
2 1
2 1
x x
x x
x x
x x
x x f
P
START
Se iniializeaz: z
CMB
= - i x
CMB
= (locaia vid)
Se rezolv cu algoritmul simplex relaxata problemei (P):

(max) f = 5 x
1
+ 3 x
2

- x
1
+ 2 x
2
2
(PL) x
1
x
2
2
2 x
1
+ 2 x
2
7
x
1
, x
2
0

Se gsete soluia optim fracionar: ( )
6
5
13 x f ;
6
5
1 x ,
3
2
1 x
2 1
= =



Se conchide c optimul ntreg nu poate depi marginea superioar:

13
6
5
13 z =
(

=

Variabila dup care se face ramificarea va fi ales dup criteriul prii fracionare mai
mari; n cazul de fa este vorba de variabila x
2
.

Iteraia 1 Se rezolv cu algoritmul simplex programul liniar (PL
1
) dedus din (PL) prin
adugarea restriciei x
2
1.

Se gsete soluia ntreag x
1
= 0, x
2
= 1; f = 3 pe care o reinem:
14

x
CMB
= (0, 1) z
CMB
= 3

tim acum c optimul ntreg este cel puin 3. Revenim la problema (PL).

Iteraia 2 Se rezolv cu algoritmul simplex programul liniar (PL
2
) dedus din (PL) prin
adugarea restriciei x
2
2.
Se gsete soluia fracionar
2
1
13 f ; 2 x
2
1
1
2 1
= = = x
Se conchide c soluiile admisibile ntregi ale problemei (PL
2
) care sunt i soluii ale
problemei iniiale (P) nu pot oferi funciei obiectiv o valoare mai mare dect marginea:
13
2
1
13 z
2
=
(

=
Ramificm dup variabila x
1
.

Iteraia 3 Se rezolv problema (PL
21
) obinut din PL
2
adugnd restricia x
2
1.
Rezult soluia fracionar
2
1
12 ;
2
1
2 , 1
2 1
= = = f x x
Dac soluia optim a programului (P) s-ar gsi printre soluiile ntregi ale problemei PL
21
,
optimul ntreg n-ar depi marginea 12
2
1
12 z
21
=
(

= .
Ramificm dup variabila x
2
.

Iteraia 4 adugm la (PL) restricia x
2
2, obinnd un nou program liniar PL
211
.
Rezolvarea lui conduce la soluia ntreag x
1
= 1, x
2
= 2, f = 11 evident mai bun dect soluia
ntreag depozitat n x
CMB
. n consecin actualizm:

x
CMB
= (1,2) z
CMB
= 11

Conchidem c optimul ntreg al problemei originale (P) este mai mare sau egal cu 11.Revenim la
problema PL
21
.

Iteraia 5 De aceast dat adugm la PL
21
restricia x
2
3. Programul PL
212
rezultat are
soluia fracionar
2
1
11 f ; 3 x ,
2
1
x
2 1
= = =
S observm c eventualele soluii ntregi ale acestei probleme nu pot oferi funciei obiectiv
o valoare superioar marginii ; 11
2
1
11 z
212
=
(

= cum valoarea funciei obiectiv n cea mai bun


soluie ntreag gsit pn acum este chiar 11, conchidem c ramificnd PL
212
nu vom gsi soluii
ntregi mai bune dect actuala x
CMB
. n consecin ne ntoarcem din nou la problema PL
21
.

Recapitulnd, studiul problemei PL
21
a produs o soluia ntreag care a fost reinut precum
i concluzia c PL
21
nu are soluii ntregi mai bune dect cea gsit. Ne ntoarcem la problema PL
2

din care am derivat PL
21
.

Iteraia 6 Adugm acum la PL
2
restricia x
1
2. Noul program PL
22
se dovedete a fi
incompatibil. Ne ntoarcem din nou la problema PL
2
cu concluzia c actuala x
CMB
este cea mai bun
soluie ntreag a sa. Mai departe, revenim la problema PL din care am derivat PL
2
.

n acest moment putem spune c am examinat direct sau indirect - toate soluiile ntregi ale
15
problemei (P), deoarece acestea erau, fie soluii ntregi ale problemei PL
1
deja studiate, fie ale
problemei PL
2
de asemeni examinate.
Soluia ntreag reinut n x
CMB
este din cea mai bun soluie ntreag adic este soluia
optim a problemei originale (P).

Comentariile de mai sus sunt sintetizate n arborele T din fig. 4.2.



START
z
212
= 11 = z
CMB
!!
Ne ntoarcem n
rdcina PL STOP
z
21
= 12
x
2
1 x
1
1
Ne ntoarcem
n nodul PL
x
2
3 x
2
1
z
2
= 13
PL
212

f = 11
x
1
= 1/2, x
2
= 3
PL
211

f = 11
x
1
= 1 x
2
= 2
PL
22

problem
incompatibil
PL
21

f = 12
x
1
= 1 x
2
= 5/2
PL
2

f = 13
x
1
= 3/2; x
2
= 2
PL
1

f = 3
x
1
= 0, x
2
= 1
z = 13
PL
f=13 5/6
x
1
= 5/3, x
2
= 11/6


x
CMB
=
z
CMB
= -



Actualizare
x
CMB
(0,1)
z
CMB
3















Actualizare
x
CMB
(1,2)
z
CMB
11



Ne ntoarcem
n nodul PL
21

Marginea superioar z = 11 arat c nu putem obine
soluii admisibile ntregi mai bune dect actuala x
CMB
!
Ne ntoarcem n nodul PL
2



Fig. 4.2.

Ordinea de rezolvare a problemelor:

PL PL
1
PL
2
PL
21
PL
211
PL
212
PL
22

Soluia optim ntreag: x
0
= x
CMB
= (1, 2); Optimul ntreg f (x
0
) = 11

Observaii 1) Utilitarul QM ramific o problem dup variabila cu cea mai mare parte
fracionar !
2) Utilitarul QM oprete ramificarea unui nod PL

numai dac z

< z
CMB
n
ideea gsirii tuturor soluiilor admisibile ntregi. n cazul de fa i nodul PL
212
a fost ramificat !
vezi fig.4.3

Un nod al arborelui T din care ramificarea poate continua se numete nod activ; altminteri el se va
16
numi nod mort. Din denumire rezult c algoritmul se oprete n momentul n care rdcina PL este
declarat nod mort.






PL
212
x
1
0 Abia acum
utilitarul QM
decide s nu
mai ramifice




PL
2121


problem incompatibil


PL
2121


f = 10
x
1
= 0 x
2
= 7/2



z
2121
= 10 < z
CMB




Fig 4.3

Principalele dezavantaje ale metodei descrise sunt:

creterea foarte rapid, chiar exploziv a numrului problemelor de rezolvat i de aici a
volumului de calcule o dat cu creterea dimensiunilor programului original i mai cu seam a
numrului de variabile ntregi;
comportare impredictibil pe probleme de dimensiuni apropiate: arborele problemelor
rezolvate poate fi extrem de stufos pentru o problem i foarte simplu pentru o alta.

n practic, metoda se conbin cu alte procedee (cum ar fi metoda planelor de seciune) care
pot oferi rapid soluii admisibile ntregi suficient de bune micorndu-se astfel drastic numrul
ramificrilor.

Algoritmul descris este o specializare a unei metode mai generale denumite branch &
bound.
n principiu aceast metod ramific adic partiioneaz mulimea n care se caut un
anumit element numit element optimal n pri mai mici pe care le mrginete, aceasta
nsemnnd optimizarea funciei obiectiv pe fiecare din prile rezultate. Unele din aceste pri sunt
ramificate i mrginite n continuare. Nu sunt ramificate acele pri care nu conin n mod sigur
soluia optim cutat.

Ideea metodei B & B este de a gsi elementul optimal fr a inspecta toate elementele ntre
care acesta se gsete; de aceea se spune c B & B este o schem de enumerare parial.


5. ntrebri i probleme

1. Enumerai sursele de apariie ale modelelor de programare n numere ntregi.

2. Explicai termenii: relaxata unui program ntreg, soluie optim fracionar, soluie optim
17
ntreag, optim fracionar, optim ntreg.

3. Explicai principiul metodelor de rezolvare a programelor ntregi bazate pe tieturi.

4. Explicai eventual pe baza unui exemplu - metoda Branch & Bound.

5. n rezolvarea unui program liniar n numere ntregi (P) n care funcia obiectiv se maximizeaz
s-a ajuns la urmtorul arbore al programelor liniare efectiv rezolvate:

PL
1
f = 41
x
1
= 1 ; x
2
= 4.5
PL
2
f = 38.8
x
1
= 2 ; x
2
= 3.6
PL
11
f = 37
x
1
= 1 ; x
2
= 4
PL
12
f = 40
x
1
= 1 ; x
2
= 5
PL
f = 41.43
x
1
= 1.43 ; x
2
= 4.24

















Figura 5.1

a) Precizai soluia optim fracionar x
*
i f(x
*
) i soluia optim ntreag x
0
i f(x
0
);
b) Indicai pe arcele arborelui restriciile dup care s-a fcut ramificarea;
c) n ce ordine au fost rezolvate cele cinci probleme?
d) De ce nu s-a continuat ramificarea din nodul (PL
2
) ?

5. Se consider programele ntregi:

+ =

+
+
2 1
2 1
2 1
2 1
2 5x (max)f
intregi 0 ,
11 3
9 2 2
)
x
x x
x x
x x
a b

+ =

+

+
2 1
2 1
2 1
2 1
2 1
5 3 (max)
intregi 0 ,
7 2 2
2
2 2
)
x x f
x x
x x
x x
x x
c
x x
x x
x x
f x x
)
,
+
+

= +

3 8 19
6 3 17
0
3 2
1 2
1 2
1 2
1 2
intregi
(max)

Pentru fiecare din ele:

a) reprezentai grafic mulimea soluiilor admisibile ale problemei relaxate;
b) punei n eviden soluiile admisibile ntregi i acoperirea convex a acestora;
determinai grafic soluiile optime fracionar i ntreag precum i optimele fracionar i ntreg.

6. Din produsul B sunt necesare cel puin b uniti. Produsul se poate obine pe dou instalaii I
1
i
I
2
dar numai n cicluri complete de fabricaie ( i aceasta datorit unei operaii de coacere prevzut
n tehnologia de fabricaie). Pe fiecare ciclu instalaia I
1
produce p
1
uniti din B iar I
2
produce p
2

18
uniti din B. Un ciclu de fabricaie dureaz a
1
ore pe I
1
i a
2
ore pe I
2
. Fondurile de timp disponibil
ale celor dou instalaii sunt de F
1
ore respectiv F
2
ore. Costurile de fabricaie se ridic la c
1
u.m.
(uniti monetare) pe I
1
i c
2
u.m. pe I
2
pe fiecare ciclu. Scriei un program ntreg pentru producerea
cantitii minimale B cu cheltuieli totale minime. Indicaie: se vor lua ca variabile de decizie
numrul ciclurilor de fabricaie planificate a se realiza pe cele dou instalaii.

7. Un produs complex P se compune din 4 uniti din componenta A i 3 uniti din componenta
B. Componentele A i B pot fi realizate prin trei procese de fabricaie diferite n cadrul crora se
utilizeaz resursele R i S disponibile n cantitile de 100 uniti respectiv 200 uniti. Realizarea
unui proces de fabricaie necesit anumite cantiti din resursele R i S i are ca rezultat producerea
anumitor cantiti din componentele A i B conform datelor din urmtorul tabel:

Intrri (uniti specifice) Ieiri (uniti specifice)
Proces
din R din S din A din B
1 8 6 7 5
2 5 9 6 9
3 3 8 8 4

Tabelul 5.1

S se scrie un program ntreg pentru determinarea numrului maxim de produse complexe P ce pot
fi realizate din resursele date. Indicaie: se va nota cu x
1
, x
2
, x
3
numrul de procese 1,2 respectiv 3
necesare i cu y numrul produselor complexe P rezultate.

8. Folosii utilitarul QM pentru rezolvarea programului ntreg:

+ +
+ +
+ +
+ +
intregi 0 , , ,
0 3 4 9 5
0 4 8 6 7
200 8 9 6
100 3 5 8
(max)
4 3 2 1
4 3 2 1
4 3 2 1
3 2 1
3 2 1
4
x x x x
x x x x
x x x x
x x x
x x x
x


(Este vorba de modelul matematic al problemei precedente n care variabila y a fost renotat x
4
)
Interpretai soluia obinut.

9. Rezolvai prin metoda Branch & Bound programele ntregi din ex.5. n rezolvarea programelor
liniare generate de metod se va folosi metoda grafic. Construii arborele T al programelor liniare
efectiv rezolvate.

10. Descriei urmtoarele probleme:

problema monezilor;
problema alegerii proiectelor de investiii;
problema stabilirii programului de producie cu costuri fixe de pregtire;
problema stabilirii orarului de zbor al avioanelor.
Particularizai aceste modele pe date concrete plauzibile.
19