Sunteți pe pagina 1din 15

CAPITOLUL I

PROGRAMARE N NUMERE NTREGI




Capitolele 1 i 2 ale cursului de Cercetri Operaionale din anul III au ca suport Notele de curs ale
Domnului Profesor Vasile Nica i lucrarea Capitole Speciale ale Cercetrilor Operaionale a aceluiai
autor, editat de Centrul de nvmnt Economic Deschis la Distan din Academia de Studii Economice
Bucureti.


1.1 Definirea unei probleme de programare liniar n numere ntregi

S se determine x
1
, x
2
, , x
n
care maximizeaz funcia:

f = c
1
x
1
+ c
2
x
2
+ + c
n
x
n
(1)

cu satisfacerea restriciilor:

= + + +
= + + +
= + + +
m n mn 2 m2 1 m1
2 n 2n 2 22 1 21
1 n 1n 2 12 1 11
b x a x a x a
.
.
.
b x a x a x a
b x a x a x a
(2)

a restriciilor de nenegativitate:

x
j
0 , oricare ar fi j = 1,, n (3)

i a condiiilor de integritate:

x
j
, ntregi j = 1, ..., n , (4)

n (1) i (2) coeficienii b
1
,, b
n
i a
11
, a
12
, , a
mn
se vor presupune n mod constant
ntregi. Cerina nu este deloc restrictiv pentru c, n mod obinuit, datele, oricare ar fi problema,
sunt numere raionale.
Problemele (1)(4) = (Integer Linear Programming) se prezint n forma standard.
Considerarea aproape n exclusivitate a acestei forme nu constituie o restrngere a generalitii
noastre pentru c oricare ar fi inecuaia (cu coeficieni ntregi!), ea poate fi transformat n egalitate
prin introducerea unei variabile de abatere n maniera binecunoscut din programarea liniar. Este
evident c i variabilele de abatere vor satisface restriciile de nenegativitate.
Ignornd condiia de integritate, primele trei condiii formeaz o problem standard de
programare liniar denumit n continuare (LP).


1

Pentru comoditatea scrierii adaptm notaiile matriciale uzuale:

(max)f = cx (max)f = cx
( ILP ) Ax = b ( LP ) Ax = b
x 0 x 0
x NTREG

S punem n eviden mulimea de Soluii Admisibile ale celor dou probleme:

A
ILP
= { x R

n
Ax = b , x 0 , x ntreg}
A
LP
= { x R

n
Ax = b , x 0 } A
ILP
A
LP


De aici rezult c (LP) este o RELAXARE a lui (ILP).
S presupunem pentru moment c ambele probleme au Soluii Optime finite. n mod
constant vom nota cu x
0
soluia optim a programului ILP (Soluie Optim ntreag), n timp ce
soluia optim a programului LP este x* (Soluie Optim Nentreag Fracionar).

avem f ( x
0
) f ( x*)

Este posibil ca x* s aib toate componentele ntregi x* = x
0
. Condiia de integritate (4)
complic enorm rezolvarea programului (ILP). Vom sublinia acest lucru printr-o paralel ntre
trsturile cele mai importante ale Mulimilor de Soluii Admisibile ale celor dou probleme: (LP) i
(ILP).

Exemplu numeric:


(max) f = 3x
1
x
2
(max) f = 3x
1
x
2
3x
1
2x
2
3 3x
1
2x
2
3
5x
1
+ 4x
2
10 5x
1
+ 4x
2
10
(ILP) 2x
1
+ x
2
5 (LP) 2x
1
+ x
2
5
x
1,2
relaxata x
1,2

x
1,2
Z



Figura 1 pune n eviden mulimea soluiilor admisibile A
LP
ca fiind poligonul convex
ABCD. Soluia optim x* se afl ntr-un punct extrem al acestui poligon. Reprezentnd grafic
curbele de nivel ale funciei obiectiv se deduce c: x* A adic , f (x*) = 30 / 7.
(

=
=
7 / 9
7 / 13
*
2
*
1
x
x






2



x
1

x
2

B
O
P



N

C

2
D
M x
0
= [1, 2]
A x*
1
f = 0
(3)
(2)
(1)
Figura 1






































Prin inspectarea direct se conclude c A
ILP
este format din punctele M(1,2), N(0,3), P(0,4),
D(0,5), O(1,3). Valoarea cea mai mare a funciei obiectiv se atinge n (1, 2) x
0
M avem x
0
1
=1,
x
0
2
= 2 cu funcia obiectiv f(x
0
) = 1.

Observaie:
Simpla rotunjire a componentelor optimului fracionar nu conduce n mod obligatoriu la
optimul ntreg. n cazul de fa prin rotunjire se obine punctul x(2,1) care nu este o soluie
admisibil.
3
Figura 1 pune n eviden i un alt aspect interensant. S considerm cea mai mic mulime
convex care conine soluii admisibile ntregi ale problemei ILP. Nu este greu de vzut c aceast
mulime este reprezentat de poligonul MNDO. Vrfurile acestui poligon sunt, prin construcie,
soluii admisibile ntregi i dac maximizm pe f pe aceast mulime regsim optimul ntreg x
0
!
Prin urmare putem rezolva o problem de programare liniar ntreag ca o problem de
programare liniar obinuit cu condiia s tim s descriem n limbaj ecuaional
NFURTOAREA CONVEX a mulimii soluiilor sale ntregi!
Rentorcndu-ne la cazul general dar inspirndu-ne tot timpul din acest exemplu notm
urmtoarele:
1) n timp ce A
LP
formeaz o mulime convex i nchis n R
n
(n = numrul variabilelor
problemei), mulimea A
ILP
este doar o muime discret putnd avea chiar un numr finit de
elemente. ILP poate s nu aib soluii admisibile (ntregi) chiar dac LP are!

Exemplu:







1


2
1 2

Figura 2
A
LP






2) Trebuie explicat de la bun nceput de ce acordm importan programrii n numere
ntregi. Este evident faptul c pentru foarte multe probleme variabilele sunt supuse
restriciilor de integritate. Un mod destul de realist de abordare a acestor probleme const n
a rezolva problema fr a ine seama de condiiile de integritate dup care rotunjesc
componentele fracionare ale soluiilor optime de aa manier nct restriciile s fie
respectate. Aceast modalitate este frecvent folosit n practic i este perfect justificat n
situaia n care valorile permisibile ale variabilelor sunt suficient de mari astfel c efectul
rotunjirii este neglijabil. Exist ns probleme de programare liniar n numere ntregi
deosebit de importante n care variabilele iau valori ntregi destul de mici adesea 0 sau 1.
Pentru asemenea probleme distana dintre optimul fracionar i cel ntreg s-ar putea s fie
att de mare nct rotunjirea s nu duc la o soluie acceptabil.

3) Teoretic, orice problem de programare liniar n numere ntregi este echivalent cu o
problem de programare liniar uzual adic n variabile continue dac mulimea soluiilor
ntregi se nlocuiete cu nfurtoarea sa convex. Dificultatea abordrii problemei din acest
unghi rezid n enorma greutate de a descrie ecuaional nfurtoarea convex.

4) Presupunem c ntr-o problem de programare liniar n numere ntregi apare restricia:

1/2x
1
+ 2/3x
2
+ 3/4x
3
17/5
Transformm ntr-o inegalitate cu coeficieni NTREGI prin nmulirea cu c.m.m.m.c. al
numitorilor care este 60 30x
1
+ 40x
2
+45x
3
204 forma STAS:
4
30x
1
+ 40x
2
+45x
3
+ y = 204
x
1,2,3
Z y Z (ca diferen de numere ntregi).


1.2 Exemple

1. Problema croirii

Un numr de repere uni sau bidimensionale trebuie executate n cantiti date. Aceste repere
se obin prin decupare din nite supori (bare sau foi). Acoperirea unui suport cu diferite repere se
poate face n mai multe moduri (bineneles c este exclus orice suprapunere total sau parial a
reperelor).
O modalitate de acoperire a unui suport poart numele de REET DE CROIRE. Dup
decuparea reperului din suport conform unei reete rmne un REST ce nu mai poate fi utilizat.
Problema const n a alege acele reete de croire prin care s se obin reperele n cantitile
dorite cu MINIMUL POSIBIL de rest.

FORMALIZAREA MATEMATIC

S ncepem prin a descrie modelul UNIDIMENSIONAL de croire. Reperele vor fi
identificate prin nite numere ntregi reprezentnd lungimea lor ntr-o unitate de masur adecvat.
Fie m = numrul de repere distincte care trebuie tiate i
l
1
, l
2
,, l
m
= lungimile lor;
L = lungimea suportului din care se taie reperele.
O reet de croire se identific printr-un vector m dimensional cu componente ntregi (a
1
, a
2
,
, a
m
), unde a
i
= numrul de repere i (deci cu lungimea l
i
) ce rezult prin tierea conform reetei.
Evident: a
1
l
1
+ a
2
l
2
+ + a
m
l
m
L , iar L (a
1
l
1
+ a
2
l
2
+ + a
m
l
m
) = restul reetei = r
i
.


1
,
2
, ,
n
= reetele posibile de croire a reperelor din suportul dat.
a
1j


j
= a
2j


a
mj


b
1
, b
2
, , b
m
= cantitile n care reperele trebuie executate.
r
1
, r
2
,, r
n
= resturile inutilizabile ce rezult din aplicarea O DAT a reetelor
1
,
2
,
,
n.

n activitatea de producere a cantitilor necesare de repere fiecare reet va fi aplicat de un
numr de ori, posibil zero.

x
j
= numrul de aplicri ale reetei
j
= MULTIPLICITATEA reetei
j
.

Restul total rezultat din aplicarea reetelor
1
,,
n
cu multiplicitile x
1
,, x
n
este dat de
expresia:
f = r
1
x
1
+ r
2
x
2
+ + r
n
x
n
(5)

Condiia de realizare a cantitilor cerute de repere se transcrie astfel:

5

(6)

= + + +
= + + +
= + + +
m n mn 2 m2 1 m1
2 n 2n 2 22 1 21
1 n 1n 2 12 1 11
b x a x a x a
.
.
.
b x a x a x a
b x a x a x a

avnd n vedere semnificaia lor, variabilele x
1
, ..., x
n
satisfac:

x
j
0 , j = 1, ..., n (7)
x
j
= NTREGI , j = 1, ..., n (8)

Problema croirii unidimensionale const n determinarea multiplicitilor x
j
care satisfac (6),
(7) i (8) i care minimizeaz obiectivul (5).
Adunnd (5) i (6) membru cu membru obinem:

( a
i1
+ r
1
)x
1
+ ( a
i2
+ r
2
)x
2
+ + ( a
in
+ r
n
) x
m
= b
i
+ f

L L L

sau (9)
L( x
1
+ x
2
+ + x
n
) = b
i
+ f

Fie funcia g = x
1
+ x
2
+ + x
n
(10)
care indic numrul total de supori tiai. Relaia (9) devine:
f = g @ L - b
i
g = 1/L(b
i
+ f ) (min)f = (min)g. (11)

Relaia (11) arat c dac n locul minimizrii restului total se urmrete minimizarea
numrului de supori tiai, se obine o problem echivalent n sensul c cele dou probleme au
aceeai soluie optim.
Problema croirii bidimensionale este formal identic cu cea unidimensional. Particularitatea
problemei croirii rezid n numrul extraordinar de mare al reetelor posibile de croire presupuse
cunoscute n formalizarea matematic. n realitate, chiar i n cazul unidimensional mai simplu,
reetele de croire asociate unui set dat de repere i unui anumit suport din care se croiesc acestea, nu
sunt cunoscute. Generarea acestor reete este o problem combinatorial delicat.


2. O problem de repartizare a investiiilor

O firm are n proiecte pe care ar dori s le realizeze ntr-un rstimp de m ani, dar din cauza
bugetului su limitat numai o parte pot fi alese. Proiectul j aduce firmei un ctig estimat la c
j
$ i
necesit investiii anuale n valoare de a
ij
$, cu i = 1,..., m.
Capitalul disponibil pentru anul i este b
i
. Se pune problema de a alege acele proiecte care s
aduc firmei un ctig total (maxim) cu condiia nedepirii capitalului disponibil anual.


6

FORMALIZAREA MATEMATIC


Introducem variabilele binare x
j
= 1 , dac proiectul j este admis;
0 , altfel.

Obinem o problem de programare binar:

(max)f = c
j
x
j

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

=
n
j 1
x
j
[0,1]


3. Problema ordonanrii reperelor pe maini

Ipoteze: n repere ce trebuie prelucrate pe m maini.

Fiecare reper necesit cel mult o operaie pe fiecare main. Fie p
ik
timpul necesar prelucrrii
reperului i pe maina k. Variabilele de decizie ale problemei vor fi:
x
ik
= momentul de ncepere a prelucrrii reperului i pe maina k. Se presupune c
programarea ncepe de la momentul 0.


Condiii:

1. Nu se pot programa dou repere pentru a fi prelucrate pe acelai utilaj; aceasta nseamn
c pentru oricare ar fi reperele i, j i utilajul k: x
ik
- x
jk
p
jk
sau x
jk
- x
ik
p
ik
, i, j =1,, n, i j, k =
1,, m. (12)

2. Pentru fiecare reper operaiile trebuie executate ntr-o anumit ordine:

fie r
ijk
= 1 dac a j-a prelucrare a reperului i se face pe utilajul k
0 n caz contrar.

Atunci momentul de ncepere al operaiei j la reperul i este: r
ijk
x
ik
.

Rezult restricia r
ijk
(x
ik
+ p
ik
) r
i,j+1,k
x
ik
, j =1,, m-1. (13)

Exist diverse funcii obiectiv. Cea obinuit const n (min) sumei momentelor de ncepere
a ultimei operaii la fiecare job adic:

(min)f = r
imk
x
ik
. (14)

Bineneles dihotomia (12) se nlocuiete cu restricii STAS prin folosirea de variabile bivalente.
7
Problema (12), (13), (14) este o problem de un tip nou: ea conine att variabile continue ct i
variabile bivalente. Spunem c este o problem de programare MIXT.

1.3 Generaliti privind metode de rezolvare a problemelor de programare
liniar ntreag

A) Metode de tip plan de seciune;
B) Metode bazate pe enumerarea implicit a soluiilor ntregi;
C) Metode specifice create pentru rezolvarea unor clase de programe specifice.

nainte de a expune bazele teoretice ale acestor metode s examinm urmtorul exemplu:

(max)f = 3x
1
- x
2

3x
1
- 2x
2
3
(ILP) 5x
1
+ 4x
2
10 (LP)
2x
1
+ x
2
5
x
1,2
0
x
1,2
ntregi

Ignorm condiia de integritate i rezolvm cu ajutorul simplex-ului problema relaxat (LP).
Adugm variabilele de abatere i artificiale necesare obinnd:

3x
1
- 2x
2
+ y
1
=3
5x
1
+ 4x
2
-y
2
+z =10
(FBLP) 2x
1
+ x
2
+y
3
=5
(max)f =3x
1
- x
2
- Mz, toate variabilele 0



B CB VVB x
1
x
2
y
1
y
2
y
3
z
y
1

z
y
3
0
-M
0
3
10
5
3 -2 1 0 0 0
5 4 0 -1 0 1
2 1 0 0

1

0
f -10M
-3-5M 1-4M * M * *
x
1

z
y
3
3
-M
0
1
5
3
1 -2/3 1/3 0 0 0
0 22/3 -5/3 -1

0 1
0 7/3 -2/3 0 1 0
f -5M+3
* -22/3M-1 5M/3+1 M * *
x
1
x
2
y
3
3
-1
0
16/11
15/22
31/22
1 0 2/11 -1/11 0
0 1 -5/22 -3/22 0
0 0 -3/22 7/22 1
F 81/22
* * 17/22 -3/22 *
x
1

x
2

y
2

3
-1
0
13/7
9/7
31/7
1 0 1/7 0 2/7
0 1 -2/7 0 3/7
0 0 -3/7 1 22/7
f 30/7
* * 5/7 * 3/7















x
1
+1/7y
1
+2/7y
3
= 13/7
x
2
-2/7y
1
+3/7y
3
= 9/7
-3/7y
1
+ y
2
+22/7y
3
=31/7

8

x
1
+ 1/7y
1
+ 2/7y
3
= 1 + 6/7 1/7y
1
+ 2/7y
3
- 6/7

= 1- x
1

1-x
1
(n orice x ntreg) 1/7y
1
+2/7y
3
-6/7



Dac 1-x
1
< 0 1- x
1
-1 1/7y
1
+ 2/7y
3
- 6/7 -1

1/7y
1
+2/7y
3
-1/7 care
contrazice ipoteza c y
1,3
0. Deci 1-x
1
0 adic 1/7y
1
+2/7y
3
-6/7 0.
Soluia optim fracionar curent nu verific aceast restricie; prin construcie oricare
soluie ntreag o verific.

A) Ideea metodei planului de seciune const n a aduga aceast restricie la problema
curent i de a reoptimiza. Prin adugare mulimea soluiilor problemei relaxate LP se micoreaz n
timp ce mulimea soluiilor ntregi rmne aceeai. Este posibil ca prin adugarea de asemenea
restricii care taie succesiv poriuni din poliedrul convex al soluiilor admisibile ale problemei
relaxate, A
LP
, dar nu altereaz mulimea soluiilor ntregi, optimul ntreg s devin vrf al
poliedrului pe care se face reoptimizarea curent. n aceast situaie acest optim ntreg va fi sigur
detectat de metoda Simplex ca fiind soluia optim a problemei de reoptimizare curente. Teoria ne
asigur c este ntotdeauna aa!
Deci, n principiu, metoda planului de seciune reduce rezolvarea unei (PLI) la o suit de
procese de reoptimizare liniar prin adugare succesiv de noi restricii, neverificate de optimul
fracionar curent, dar verificate de orice soluie admisibil ntreag.
Pentru a vedea efectul introducerii restriciei
1/7y
1
+2/7y
3
-6/7 0
asupra mulimii soluiilor admisibile ale problemei (LP), observm c ea este echivalent cu :
1-x
1
0 x
1
1 restricia (4)
Prin adugarea ei, poligonul ABCD se reduce la EFCD.

B
A





















9


S procedm la reoptimizare pentru determinarea soluiei optime:

y
4
= 1/7y
1
+ 2/7 y
3
6/7 -1/7y
1
2/7 y
3
+ y
4
= -6/7

Dup reoptimizare se obine optimul fracionar F

= [x
1
= 1, x
2
= 5/4], cu f = 7/4

n continuare din ecuaiile deduse din tabelul Simplex optim alegem pe cea al crei termen
liber are partea fracionar maxim.

3 -1 0 0 0 0
7/4= 1/4y
2
+y
3
-3/4y
4

1+3/4=1/4y
2
+y
3
-y
4
+1/4y
4

1/4y
2
+1/4y
4
-3/4 = 1-y
3
+y
4

1/4y
2
+1/4y
4
-3/4 0

1-y
3
+y
4
0
1+2x
1
+2x
2
= 5+1-x
1
0

x
1
+x
2
3

Reoptimizm:
y
5
= 1/4y
2
+1/4y
4
-3/4
-1/4y
2
-1/4y
4
+y
5
= -3/4

Adugm aceast restricie
la tabelul simplex optim i aplicm
simplexul dual

ntr-o singur iteraie s-a
obinut optimul ntreg, punctul
M = [x
1
= 1, x
2
= 2], cu f = 1.




B CB VVB x
1
x
2
y
1
y
2
y
3
y
4

x
1
x
2
y
2

y
4

3
-1
0
0
13/7
9/7
31/7
-6/7
1 0 1/7 0 2/7 0
0 1 -2/7 0 3/7 0
0 0 -3/7 1 22/7 0
0 0 -1/7 0 -2/7 1
f 30/7
* * 5/7 * 3/7 *
x
1
x
2
y
2
y
3
3
-1
0
0
1
0
-5
3
1 0 0 0 0 1
0 1 -1/2 0 0 3/2
0 0 -2 1 0 11
0 0 1/2 0 1 -7/2
f 3
* * 1/2 * * 3/2
x
1
x
2
y
1
y
2

3
-1
0
0
1
5/4
5/2
7/4
1 0 0 0 0 1
0 1 0 -1/4 0 -5/4
0 0 1 -1/2 0 -1/2
0 0 0 1/4 1 -3/4
f 7/4
* * * 1/4 * 17/4
y
5
-3/4 -1/4 -1/4
x
1

x
2
y
1

y
3

y
2

3
-1
0
0
0
1
2
4
1
3

f 1


1.4 Algoritm de tip plan de seciune pentru rezolvarea problemelor de
programare liniar n numere ntregi (GOMORY, 1958)

Considerm problema:
Ax = b Ax = b
(ILP) x 0 , x NTREG (LP) x 0
(max)f = cx (max)f = cx

10
coeficienii lui A i ai lui b sunt ntregi.
Fie A
ILP
A
LP
mulimile de soluii admisibile ale celor dou probleme. Vom presupune c
(LP) are optim finit x*. Dac x* are toate componentele ntregi atunci x* este i soluie optim a lui
(ILP). n caz contrar, x
0
- dac exist NU se numr printre vrfurile (punctele extreme) ale
poliedrului A
LP
i deci nu va putea fi detectat de algoritmul Simplex!

Ideea algoritmului este:

Presupunem c x* nu are toate componentele ntregi. Se construiete o restricie neverificat
de optimul fracionar x* dar verificat de orice soluie admisibil ntreag. Se adaug aceast
restricie problemei originale renotat LP
0
i se reoptimiozeaz.
Fie x** soluia optim a problemei augmentat notat LP
1
. Datorit modului n care a fost
definit restricia suplimentar avem

A
ILP
A
LP1
A
LP0
=

A
LP


Dac nici x** nu are toate componentele ntregi se repet procedeul: se construiete o nou
restricie neverificat de x** dar verificat de soluiile admisibile ntregi. Se adaug restricia la LP
1

obinnd o problem de programare liniar, LP
2
. Prin construcie:

A
ILP
A
LP2
A
LP1
A
LP0
=

A
LP


Prin reoptimizare se decide dac LP
2
are sau nu soluie optim. Teoria ne asigur c n
anumite condiii, ntr-un numr finit de pai se ajunge la o problem de programare liniar, LP
k-1
a
crei soluie optim x
k(
*
)
are toate componentele ntregi i deci reprezint soluia optim a lui (ILP).
Din punct de vedere geometric fiecare nou restricie ndeprteaz o poriune din mulimea
soluiilor admisibile ale problemei precedente de unde denumirea de TIETURI acordat acestor
restricii suplimentare.
S vedem acum modul n care se genereaz aceste tieturi:

Se aplic problemei de programare liniar (LP) = (LP
0
) algoritmul Simplex. Fie B baza
optimal n raport cu care avem:

I {1, 2, , n}= mulimea indicilor variabilelor bazice;
J = {1, 2, , n} I = mulimea indicilor variabilelor nebazice.

Prin nmulirea sistemului Ax = b la stnga cu B
-1
explicitm variabilele bazice (x
i
), i I n
funcie de cele secundare (x
j
), j J

x
i
+

J j
a
ij
x
j
= b
i
(15)

Termenii liberi ( b
i
), i I formeaz coloana VVB a tabelului Simplex optim iar coeficienii
( a
ij
), i I formeaz coloana A
j
a aceluiai tabel.
Valorile x
i
* = b
i
, iI, reunite cu x
j
* = 0, j J formeaz soluia optim x* a problemei
LP=LP
0
.
11
S presupunem c cel puin una din mrimile b
i
este fracionar (altminteri x* = x
0
= soluia
optim a programului (ILP)). Fie aceasta b
r
.
Se tie c orice numr real a poate fi pus n forma a = [a] + {a}, unde:
[a] = partea ntreag a lui a = cel mai mare numr ntreg a;
{a}= partea fracionar a lui a adic a - [a] 0 {a} < 1

Exemplu:

a = 2,781 [a] = 2 , {a}= 0,781
a = -2,3 [a]= -3, {a}= 0,7

n general, aZ dac {a}= 0.

Aplicm coeficienilor restriciei de rang r

b
r
= x
r
+

J j
a
rj
x
j
(16)

descompunerea de mai sus:

[ b
r
] + {b
r
}= x
r
+

J j
([ a
rj
] + { a
rj
})x
j
(17)

Ipoteza fcut asupra lui b
r
implic 0 < {b
r
}< 1 (18)

[ b
r
] - [

J j
a
rj
]x
j
- x
r
=

J j
{ a
rj
}x
j
- {b
r
} (19)

Fie x
)
o soluie admisibil ntreag a problemei ILP. Atunci membrul stng al relaiei (19)
calculat n x
)
este un numr ntreg

[ b
r
] - [

J j
a
rj
] x
)
j
- x
)
r
Z (20)

n consecin, i membrul drept al acestei egaliti calculat n aceeai soluie este un numr
ntreg:

{

J j
a
rj
} x
)
j
-{b
r
} Z (21)

Practic demonstrm c

{

J j
a
rj
} x
)
j
- {b
r
} 0 (22)

12
Demonstraie:

Presupunem prin absurd contrariul:

{

J j
a
rj
} x
)
j
-{b
r
} < 0 (23)
atunci din (19) rezult:

[ b
r
] - [

J j
a
rj
] x
)
j
- x
)
r
< 0
i din (20) deducem:

[ b
r
] - [

J j
a
rj
] x
)
j
- x
)
r
-1

Folosind din nou (19) deducem:

J j
{ a
rj
} x
)
j
-{b
r
} -1, adic

J j
{ a
rj
} x
)
j
{b
r
} - 1
Deoarece { a
rj
} 0, oricare ar fi j J membrul stng este 0 n timp ce membrul drept este
< 0 deoarece {b
i
}< 1.
Contradicia obinut demonstreaz inegalitatea (22).
Deoarece x a fost ales arbitrar urmeaz c restricia

{

J j
a
rj
}x
j
{b
r
} (24)
este verificat de orice soluie admisibil ntreag.
P.d.a.p. n soluia optim nentreag x* avem x*
j
= 0, jJ valori care introduse n (22) duc la
{b
r
} 0 n contradicie cu ipoteza (18) potrivit creia {b
r
} > 0!
n consecin, inegalitatea (24) nu este verificat de optimul fracionar x*.
Vom aduga restricia (24) la problema LP obinnd problema augmentat cu m+1 restricii
notat LP
1
. Pentru reoptimizare transformm (24) n egalitate introducnd o variabil de abatere
x
n+1
:
-{ a
rj
}x
j
+ x
n+1
= -{b
r
}
adugm aceast restricie la tabelul Simplex curent:

B CB VVB A
r
A
j
(jJ) A
n+1


x
r


x
n+1


C
r


0


b
r


-{b
r
}
. .
. .
1 a
rj


. .
0 -{ a
rj
}




f f *
j
*



13


x
i
= b
i
, iI
x
j
= 0, jJ
x
n+1
= {- b
r
} constituie o soluie de baz Dual admisibil pentru LP
1
.

Utiliznd Simplexul dual, dup una sau mai multe iteraii se ajunge la soluia optim x** a
acestei probleme dup care se reia procedeul descris anterior.

Restricia de rang r (16) din care am derivat tietura (24) se numete RESTRICIE
GENERATOARE. Ea se caracterizeaz prin faptul c termenul ei liber este fracionar. n caz c mai
multe restricii din (15) au termen liber fracionar, restricia generatoare va fi aleas astfel nct
partea fracionar {b
r
} s fie ct mai mare. Ceea ce este curios este c cu aceast regul care s-a
dovedit foarte util n practic, nu s-a putut dovedi convergena algoritmului. Pentru convergen
este necesar aducerea problemei LP la o anume form i aplicarea altei reguli privind restricia
generatoare. Aceste transformri destul de tehnice dar care nu micoreaz generalitatea
consideraiilor pot fi ignorate n exemplele ilustrative care sunt de regul mici ca dimensiune.

Comentariu

Ideea algoritmului i demonstraia convergenei sunt datorate lui Ralph E. Gomory (1958
1960). El a propus doi algoritmi pentru rezolvarea problemelor cu toate variabilele ntregi, unul
denumit DISCRET cellalt CICLIC. Anterior am expus algoritmul CICLIC. Tot Gomory a propus i
un algoritm pentru rezolvarea problemelor MIXTE n care numai o parte din variabile sunt supuse
restriciilor de integritate.
Experiena numeric acumulat pn n prezent degaj un sentiment de incoeren n ceea
ce privete eficacitatea algoritmilor pe o problem sau alta. ntr-o excelent monografie aprut n
1962 se semnala faptul c o problem cu 90 de variabile a fost rezolvat foarte rapid n timp ce alta
cu numai 12 variabile nu a putut fi rezolvat nici dup cteva sute de iteraii.
S-a conturat din ce n ce mai mult ideea c spre deosebire de problemele de programare
liniar n care metoda simplex s-a dovedit universal problemele interne au fiecare structura lor
intern pentru care trebuie creat un algoritm particular sau cel puin specializat unul general.
De asemenea, au fost dezvoltate puternic procedeele care, fr a conduce la soluia optim,
conduc la soluii suboptimale acceptabile.

Exemplu numeric:

2x
1
+x
2
-x
3
4
4x
1
-3x
2
2
(ILP) -3x
1
+2x
2
+x
3
3
x
1,2,3
0, NTREGI
(max)f= x
1
-3x
2
+3x
3


Rezolvare:

Aducem (ILP) la forma bun n vederea aplicrii simplex-ului:

14


2x
1
+x
2
-x
3
+x
4
= 4
4x
1
-3x
2
+x
5
= 2
(FSILP) = (FBILP): -3x
1
+2x
2
+x
3
+x
6
= 3
x
16
0, NTREGI
(max)f = x
1
-3x
2
+3x
3



15
















(min) [3/2 / 1/4 = 6, 5/2 / 1/4 = 10] = 6

B CB VVB x
1
x
2
x
3
x
4
x
5
x
6

x
4

x
5

x
6

0
0
0
4
2
3
2 1 -1 1 0 0
4 -3 0 0 1 0
-3 2 1 0 0 1
f 0 -1 3 -3 * * *
x
4

x
5

x
3

0
0
3
7
2
3
-1 3 0 1 0 1
4 -3 0 0 1 0
-3 2 1 0 0 1
f 9 -10 9 * * * 3 x
7

x
4

x
1

x
3

0
1
3
15/2
1/2
9/2
0 9/4 0 1 1/4 1
1 -3/4 0 0 1/4 0
0 -1/4 1 0 3/4 1
f 14 * 3/2 * * 5/2 3
x
7
0 -1/2 0 -1/4 0 0 -1/4 0 1
Restricia generatoare:
9/4 x
2
+ x
4
+ 1/4x
5
+ x
6
= 15/2
(2+1/4)x
2
+ x
4
+ 1/4x
5
= 7+1/2
1/4x
2
+ 1/4x
5
-1/2 = 7 - 2x
2
- x
4
- x
6

tietura 1/4x
2
+ 1/4x
5
-1/2 0 (aducem la forma STAS utiliznd x
7
)

Notm x
7
= 1/4x
2
+ 1/4x
5
-1/2 -1/4x
2
- 1/4x
5
+ x
7
= -1/2.
Reoptimiznd se obine:

B CB VVB
x
4

x
1

x
3
x
2

0
1
3
-3
3
2
5
2

f 11






Soluia curent are toate componentele ntregi: x
0
1
= 2, x
0
2
= 2, x
0
3
= 5, f
max
= 11.