Grafuri și programare liniară - Introducere elementară

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Ioan Tomescu

· GRAFURI SI PROGRAMARE LINIARA

1

,,

Introducere elementară Editura

didactică şi pedagogică

-

Bucureşti,

1975 ·

,.;

··:\\~;:: .... ,;,.-,..-...

~

•\:·...tt ~--__,. _ . .

,.

Referent:

.

proJ;·.ar~ _Constantin

. ,p. Popovici

.Redactor: prof. Eugenia Pantelimon Tehnoredactor: Ghimiş Victoria

I. Noiiuni de teoria grafurilor 1.1. Grafuri neorientate

şi

grafuri orientate

Pentru a explica ce este un graf vom da trei exemple în ca,re apare această noţiune.

\

\

\

bucure~i .,.. Fefesfi . GJur!JiU

·

Fig. J.1.1

1. în figura I.1.1 este reprezentată, o parte a schemei căilor ferate din ţara noast1·ă. Aceasţă,-: schemă ne indică legăturile directe dintre unele localităţi ale ţării pe calea ferată,. =; ·. · Un asemenea desen este util atunci cînd vrem să ne deplasăm dintr-un oraş în altul urmînd calea cea mai scurtă, dacă cunoaştem.-.:: -;~ 3

distanţa în kilometri dintre fiecare două. oraşe unite printr-o linie. O excursie în circuit, care trece prin anumite oraşe ale ţării, întorcindu-ne în localitatea de unde am plecat, trebuie concepută urmă­ rindu-se pe o astfel de schemă diferitele trasee posibile. Se spune că, desenul din figura I.1.1 reprezintă un graf. Nodurile sau vîrfurile grafului sînt notate cu nume de localităţi, iar muchiile sau liniile grafului sînt liniile care reprezintă legăturile directe pe calea feraţă dintre două localită ţi.

2. Să considerăm acum un exemplu din fizică, şi anume calculul intensităţilor curenţilor care trec prin ramurile unei reţele electrice (fig. I.1.2). 5

t.e.m.t

~

I?,

I

3

I

7

·R1

8

=

~ ) t.e.m.3

2

II

flz

II

f.

t.e.m.Z

Fig. 1.1.2

Pentm a rezolva această problemă, cunoscînd schema reţelei, tensiunile electromotoare şi valorile rezistenţelor, vom scrie legile lui Kirchhoff relative la noduri şi la ochiuri de reţea. Făcînd abstracţie de elementele de circuit care se găsesc pe ramurile schemei putem desena schema în felul următor (fig. I.1.3): Pentm aplicarea celor două legi trebuie să ne fixăm un sens de parcurgere a ochiurilor de reţea din figura I.1.2. Obţinem astfel desenul din figura I.1.4. 5

f

3

.

5

f

.

3

l I I L l- !

7

8

2

Fig. 1.1.3

4

~

7

8



2

Fig. J.1.4 ·

't-

Atît desenul din figura I.1.3 cit şi desenul din figura I.1.4 este un graf. Primul graf se numeşte graf neotientat, iar -al doilea, se numeşte graf orientat, legăturile dintre noduri avînd o anumită, orientare. reprezintă, o moleculă de tricvicare este un izomer a,l ciclopolienei C10H 10 • Acest desen este un graf de un tip deosebit, care admite existenţa unor muchii multiple între vîrfurile sale, corespunzătoare valenţei trei a grupării CH. Un graf cu muchii multiple se numeşte multigraf. Un graf G este definit printr-o mulţime X de vîrfwri sau noduri şi printr-o mulţime Ude perechi de vîrfuri din X. Mulţimea U ne araiţ_ă.. ce legături există între vîrfurile grafului. Graful G cu X mulţimea, vîrfurilor şi U mulţimea legă,turilor dintre vîrfuri se notează G = (X, U). De exemplu, un graf G are ca mulţime de vîrfuri X = {xi, x2, x3 , a:4, x5 }, iar mulţimea U este formată din perechile [xi, x2 ], [xu x3 ], [x2, x3 ], [a:17 x4 ], [x4, x5 ].

3. Desenul din figura I.1.5

nacenă,

CH

x3

Fig. 1.1.5

Fig. 1.1.6

Acest graf G poate fi desenat în plan reprezentînd vîrfurile prin puncte, iar perechile din U prin linii (drepte sau curbe) care unesc vîrfurile care apar în perechile respective (fig. I.1.6). Înt,r-o astfel de reprezentare nu contează poziţia relativă a, vîrfurilor grafului şi nici modul cum sînt desenate legăturile definite de mulţimea U de perechi de vîrfuri. Astfel, toate- desenele din figura I.1. 7 reprezintă, unul şi acelaşi graf cu 14 vîrfuri, notate cu numerele de la 1 la 14. Mulţimea U pentru acest graf este formată din perechile [1, 2], [1, 3], [1, 4], [1, 14], [2, 5], [2, 6], [2, 7], [2, 8], [3, 9], [3, 10], [3, 11 ], [4, 12], [4, 13 ]. 5

I

,

12

I♦

/3

9

12 8

. /3

7

f

?.

Fig. 1.1. 7

~.--- t(a,2 ) + l((1)2 , (1)5 ) = 1 +1=2 alegem ca nou vîrf pe (1)5 şi definim t((1)5 ) = 2. Deci X 3 = {(1)1 , (1) 2, x5 }. Acum cele mai apropiate vîrfuri din afara mulţimii X 3 vor fi : Luăm

Y1

= 38

=

X3,

Y2

=

(1)3 ,

y5 nu

Deci avem obligatoriu X 4 = {(1)17 min (t(x2 ) + Z(a12, (1)3 ), t((1)1 ) + l((l)i, (1)3 )

există. a12 ,

)

(1)3 , (1) 5 }

= min

(2,3)

şi

=

2.

t(a~3 )

=

.Acum gasm1 y1 = a.:4 ; y 2 , y 3 , y5 nu există, deoarece arce de la m2, a.:3 şi ·m5 către a.:4• Deci X 5 = {a:u a.:2, a:3, m4, m5} şi t(a:4 ) = t(a:1) + 4 obţinut astfel distanţele minime: t(a:1) =

o;

t(a:2) = 1;

t(a:3)

= 2;

t(a.:4) = 4;

Dacă notăm a,1 = l(a:,, a:1) pentru i, j directe dintre vîrfm·ile grafului G, matricea:

A -- (a IJ )i,/.,.1,

im

există

=

4 . .Am

t(a:s)

= 1, ... ,n

= 2.

-distanţele

... , n

se numeşte matricea distanţelor directe a grafului G. 1n această matrice, au= co prin definiţie, dacă nu există arcul (i, j) în graful G, ceea ce se mai poate scrie (i, j) ~ U. Vom nota cu a~ lungimea minimă a drummilo1· de la vîrful a:i la vîrful a:1 al grafului, cînd există măcar un drum de Ia ai, Ia a:1 în graf. Dacă nu există nici un drum de la ai, la a:i, vom pune prin definiţie a,~ = co. Matricea 4. * -- (a*) ij l,J ... 1, ..• , 11

...

se numeşte 'matricea distanţelor mini-me ale grafului G. Prin definiţie avem a11 =a~= O pentru i = 1, 2, .. . ,n. Algoritmul Dl al lui Dantzig determină deci toate distanţele minime de forma a~ pentru i = 1, ... ,"1,, deci o singură linie a matricei .A.*. Pentru găsirea întregii matrice .A.*, adică pentru determinarea distanţelor minime dintre oricare două vîrfuri ale grafului G, se poate aplica de 11, 01·i algoritmul Dl. Un alt algoritm pentru găsirea tutm·or distanţelor minime este algoritmul D2 al lui Dantzig, care are o rază mai mare de acţiune, putînd detecta şi eventualele circuite negative ale grafului, presupunînd că funcţia distanţă l: U ~ R poate lua şi valori negative. Este clar că dacă un graf admite un circuit de lungime totală negativă, atunci distanţa dintre oricare două vîrfmi ale circuitului poate fi făcută negativă şi oricît de mică parcurgînd de un număr suficient de mare de ori circuitul, deci nu există o cea mai mică distanţă între vîrfurile circuitului. Se fac mai întii următoarele notaţii: Se notează Xm = {a:i, a.:2,. •• ,a:m} şi cu dfJ- 1 distanţa mrmma intre a:/ şi a,1 ( i, j ~ m - l) în subgraful cu mulţimea de vîrfuri Xm_ 1 , iar cu df; distanţa minimă înt1·e a:1 şi .a,1 (i, j ~ m) în subgraful cu mulţimea de vîrfuri Xm. 1

at

39

Pasul 1. Se defineşte di2 = a12 ; di 1 = a 2u unde aiJ sînt distanţele direc.te dintre vîdmile a:i şi (1}1 ale grafului dat .. Dacă a 12 + a 21 < O, stop. S-a detectat un circuit negativ. Pasul 2. Dacă s-au determinat distanţele minime d,1- 1 , minime di; se determină astfel : 1. dTm

= min

j=-1. ••• ,

2. d~~,

m-1

= min

; ... 1 •••• , r11-l

3. Se ~

(dr1- 1 (am 1

+ a1m),

+ a;,-

verifică dacă există şi

m -1

1

),

1

i. Pentru un j ales, vom determina cea mai lungă muchie de pe drumul care îl uneşte pe y, cu y" adiacentă cu un vîrf de grad mai mare ca doi, apoi vom determina creşterea lungimii corespunzătoare eliminării acestei muchii cu operaţia ol. Pentru fiecare vîrf terminal vom calcula apoi creşterea minimă a lungimilor, corespunzătoare legării sale cu celelalte vîrfuri terminale, de indice mai mare. 2) Pentru toate v.îrfurile terminale y. legate de vîrfuri de grad mai Diare ca doi, vom determina minimul· creşterii lungimilor prin operaţia de intercalare, descrisă de o2. 3)' Pentru toate vîrfurile neterminale v, legate ·de vîrfuri m de grad mai mare ca doi, vom determina minimul creşterii lungimilor prin legarea lor cu vîrfuri terminale y (care nu aparţin aceleiaşi componente cu v prin suprimarea vîrfului m), prin operaţia o3. 4) Dintre minimele astfel calculate la 1), 2) şi 3), vom alege cea mai mică valoare. Dacă există mai multe vîrfuri care realizează, aceeaşi valoare minimă, • vom alege acea transformare care scade gradul cu cite o unitate la două vîrfuri de grad mai mare ca doi (n~ărul maxim). · Aplic~ transformarea care realizează minimul creşterii costului arborelui, de tipul ol, sau o2, sau o3. Dacă arborele obţinut are ~umai vîrfuri de gradul unu sau doi, adică este un drum hamiltonian, ne oprim. Dacă nu, se reia algoritmul de la punctul 1).

55

Să aplicăm acest algoritm euristic pentru graful complet G cu 6 vîrfuri xu x2, x3, x4 , m5, x6 , avînd următoarea matrice a lungimilor muchiilor: X3

Ii ! J.'3

I

i

I

14

14

i

o

27

18_ !'_ _

o

!

27

18

o

15

I I II I

.20

3

6

15

17

15 o 15 3 I_ _2_0 _ _ _ _ _6_ _ _1_7_ _ _ _ 1 __ I

I ;

I I

I I

15

2

18

4

~ is

1

4

1_ _ _ 0_ _ 1_ _4_ _

,

4

i

O

Aplicînd algoritmul lui Kruskal, găsim arborele minim din figura I.3.13, pentru care vîrfurile terminale sînt m1 , m3 , x5 , x6 • x.,, Kf. >.sene din figura I.4.1 reprezintă şi acelaşi graf. Aceeaşi p1·oblemi pentm figura I.4.2. Două astfel de grafuri se numesc grafuri izomo1je.

1.

unul

Fig. J. .J.l

Fig. I,4.2 R: Se vor numerota convenabil vîrfurile.

2. Să se amte că pentru un graf G numărul vîrfurilor sale de grad impar este par (lnd: Se va utiliza teorema 1.1.1.).

3. Să se arate neelementare.



într-un graf fără circuite nu pot exista drummi

4. Să se dete11nine drumurile elementare dintre vîrfurile 1 7 ale grafului din figura I.4.3.

7

5

3

şi

Fig. 1.4.3

n:

13 drumuri elementare, 7 care încep cu muchia (t, 2] 6 care încep cu muchia [1, 3].

şi

5. Să se găsească un drum graful din figura I.4.3.

şi

un circuit hamiltonian pentru

6. Să se arate că numărul circuitelor hamiltoniene ale gra.fului neorientat şi complet cu 11, ~ 3 vîrfuri este egal cu (n -l) ! . (Ind: .

Se va folosi

58

inducţia completă după

n).

2

7. Pentm graful din figura I.4.4 să se găsească drumul hamiltonian de timp minim şi drumul hamiltonian de timp maxim.

©

Fig. 1.4.4 R : Prin enumerare directă se găseşte că din cele 24 permutări ale vlrfurilor 1, 2, 3, 4 numai 14 corespund unor drumuri hamiltoniene iu graful dat. Drumurile hamilloniene minime stnt (3, 2, 4, 1) şi (4, 1, 3, 2) de timp 4, iar drumul hamiltonian de timp maxim, egal cu 10, este (2, 1, 4, 3).

in

8. Un delegat al unei 2, 3, 4, 5, apoi

oraşele

instituţii din oraşul 1 trebuie să meargă, să se întoarcă în oraşul 1.

z 3 f

5 Fig. J.4.5

Cunoscînd costurile deplasării dintr-un oraş în altul, care sînt numerele asociate muchiilor grafului din figura I.4.5, să se determine succesiunea de oraşe pentru care costul total al deplasării să fie minim şi ştiind că sosirea în oraşul 4 este mai urgentă decît sosirea în oraşul 2. R : Dintre cele 8 circuite hamlltonicne ale grafului dat există 2 cu cost minim (egal cu 12 unităţi) şi anume: (1, 5, 2, 3, 4,1] şi [1, 4, 3, 2, 5, 1}. Răspunde cerinţelor problemei circuitul [1, 4, 3, 2, 5, 1].

9. Să se găsească drumul critic (de timp maxim) dintre şi G ale grafului din figura .I.4.6, precum şi intervalele tnaţ.ie ale evenimentelor şi marginile totale ale operaţiilor.

A

vîrfurile de fluc59

10.

Aceeaşi problemă şi G.

pentru graful din figura 1.4. 7

şi

1>erechea

de noduri A

11. Folosind algoritmul lui Dantzig, Dl, să se gă,sească distantele minime (în km) pe calea ferată de la Bucureşti la celela.Ite oraşe ale ţării, care apar ca vîrfuri ale grafului din figura I.4.8. C

B

(V

f

A

D

@')

E

D Fig. J.-t.7

Fig. 1.4.6 Distanţele directe respectivă.

în km, asociate

fiecărei

muchii, sînt scrise

lingă

muchia

12. Pentru graful orientat din figura I.4.9, să se calculeze distanminime de la vîrful .A la celelalte vîrfuri, folosind algoritmul DI al lui Dantzig, precum şi drumurile minime ca.re pleacă din A. ţele

13. Să se arate că orice graf-turneu cu n ~ 4 vîrfuri conţine un subgraf cu 3 vîrfuri de forma următoare indicată în figura I.4.10 (lnd: Este suficient să se demonstreze pentru n = 4, analizînd toate situaţiile posibile).

14. Pentru un graf-turneu cu n vîrfuri a::\, a:2 , ••• ,a:n se notează eu r; număntl arcelor care intră în x 1 şi cu s, numărul arcelor care ies clin x,. Să se arate că : 1)

1·;

+ s, =

ic:l 11

3) ~ i=l

60

1

n

li

2) ~

1l, -

·ri

= t=l ~ s, = o,~ n

r; = ;._1 ~ 8î •

Sucsava

Tlmi~oara

Caransebe:ş

Tulcea

Giurgiu Fig. l.·',8

Ind: Relaţiile 1) şi 2) se deduc pornind de la definiţia unui grafturneu, ţinînd seama că numărul muchiilor grafului complet cu n, vîrfuri este egal cu C;, iar 3) se deduce din 1) prin înmulţire cur,, respectiv s, şi prin însumare, ţinînd seama de 2). B

Fig. 1.4.9

15. verifică



Dacă numărul

Fig. IA.10

m al muchiilor tmui graf G cu n virfuri

inegalitatea:

se arate că graful G nu are vîrfuri izolate. lnd: Se va arăta că dacă G are un vîrf izolat, atunci m ~ 0;_ 1 •

16. Pentru un graf conex cu m muchii şi n vîrfuri, să se arate că numărul minim de muchii care trebuie înlăturate astfel încît graful obţinut să nu conţină circuite este egal cu m - ?l l (acest număr se numeşte numărul ciclomatic al grafului).

+

lnd: Se va

ţine

seama de teorema I.3.1.

17. Să se arate că un arbore cu n ~ 2 vîrfmi are cel puţin vîrfuri de gradul 1. lnd: Se va ţine seama de teorema 1.3.1. şi de teorema I.1.1.

două

18.



se demonstreze prin

inducţie

teorema I.3.1.

19. Să se găsească arborele de cost minim pentru graful conex din figura I.4.11 şi pentru graful conex din figura I.4.12.

20. Un oraş este aşezat pe malurile unui rîu, peste care, există -0inci poduri, aşezate ca în figura alăturată (fig. I.4.13). Este posibil, ca plecînd dintr-un anumit loc, să trecem o singur-Ji dată peste cele cinci poduri, întorcîndu-ne de unde am plecat 'l 62

n:

Consideriud multigraful din figura 1.4.H, unde vlrfurile reprerespectiv malul drept al rtului, malul stlng al rlului şi insula, iar muchiile reprezintă legăturile ace·stora prin poduri, Euler a arătat că o problemă de acest fel nu arc soluţie, deoarece orice trecere printr-tn vtrf zintă

Fig. IA.12

Fig. J..t.11

MO

.I

MS Fig. I.4.13

Fig. J.4.14

consumă două muchii, pe care nu le mai putem utiliza, iar multigraful are vinurile 1\1D şi MS de grad impar, egal cu trei. Deci nu ne putem deplasa astfel incit să parcurgem toate muchiile multigrafului din figura 1.4.14 o singură dată.

21. Să se coloreze regiunile din figura I.4.15 cu 4 culori, astfel încît fiecare două regiuni care au o frontieră comună să fie colorate cu culori diferite. K

J

H

A

I E

L F

G

Fig. 1.4.15'

63

Este· posibil să real~ăm o astfel de colorare cu numai trei culori t R: Nu este posibil,. deoarece A, B, C, D au frontiere comune cite

două

două.

(S-a demonstrat că pentru o hartă de acest tel cu cel mult 40 rrgiuni slnt suficiente pentru colorare cel mult 4 culori. Problema colorării hărţilor _cu cel mult 4 culori rezistă de aproape un secol eforturilor rnatematicic. nilor de a o rezolva în cazul general.)

22. Să se deseneze graful relaţiei · de di'Ci~ibil.it8,ţe vîrfuri -numerele· 2, 3, 4, 5, 12, 15, 18, 20. ·

a,vînd

ca

23. Să se arate că număml · · · circuiteloi·

(2)

astfel încît o1 a: + o2y + c3z să aibă cea, mai mică valoare pentru a:, '!J, z verificînd (2), ceea, ce vom scrie:

posibilă

Interpretarea variabilelor a:, y, z este următoarea: dieta asociată soluţiei (a:, y, z) conţine a: kg din Au y kg din A. 2 şi z kg din A. 3 • Funcţia, liniară o1 a: o2y o3z reprezintă tocmai costul acestei diete, iar restricţiile problemei ne asigură satisfacerea nevoilor organismului în albumine, grăsimi şi glucide. Este clar căi a:, y, z au o semnificaţie pentru problema dietei numai daci sînt nenegative. Condiţiile a: ~ 'Y z~ împreună cu inegalităţile (2) formează restricţiile acestei probleme de programare liniară, iar funcţia, de minimizat eia: o2y c3 z se numeşte

+

+

o, > o,

+

+

o,

şi a problemei dietei presupunem că produsul de transportat, respectiv alimentele Au ..4. 2 , ..4. 3 pot fi divizate orioît de mult,· deoarece căutăm soluţii exprimate în numere reale nenegative. Această ipoteză este realistă în multe cazuri, de exemplu cînd transportăm ciment în vrac, grîu, produse petrolifere etc. În alte cazuri însă produsele transportate pot fi piese, maşini, panouri şi în acest caz cerem ca soluţia să aibă componente întregi şi pozitive. Astfel de probleme de programare se numesc probleme de programare în numere întregi. 3. Un alt exemplu de problemă de programare liniară este următorul : într-o fabrică funcţionează trei procese de producţie notate P 17 P 2 , P 3 care consumă materiile prime M1 şi M 2 şi anume în unitatea de timp P 1 consumă tii.1 unităţi din M 1 şi a12 unităţi

Junct,ia obiectiv. 1n cazul problemei transporturilor

72

din M 2 , P 2 consumă a 21 unităţi din M 1 şi a 22 unităţi din M 2 , P 8 consumă a 31 unităţi din M1 şi a 32 unităţi din lJ/2 • în depozit există Iun stoc format din b1 unităţi din M 1 şi b2 unităţi din M 2 • Mai presupunem că procesul de producţie P 1 produce înt1·-o oră o valoare egală cu c1 lei, procesul P 2 produce într-o oră o valoare egală cu c2 lei, iar procesul P 8 produce pe oră o valoare egală cu c3 lei. Prin aceasta se presupune că procesul P, (i = 1, 2, 3) funcţionînd t ore produce o valoare egală cu te, lei (ipoteza de liniaritate a modelului de producţie). · Se cere să se determine un plan de producţie optim, adică un vector 'V = (a:, y, z) e B 3 cu a:, 'JJ, z ~ O astfel incit a:, y, z să repre. zinte respectiv timpul de funcţionare în ore a proceselor P 17 P 2 , P 8, care satisface inegalităţile : tii,1m

+ an'JJ + a

81z

~

bi, (3)

+ °'2i!J + as~ ~ b2, astfel incit max (c a: + C2'JJ + c z), adică valoarea nou creată în protii.2m

1

3

cesul de producţie (care constă din cele trei- subprocese Pu P 2 , P 8) sA fie maximă, cu condiţia ca materia primă consumată să nu depă­ şească rezervele întreprinderii la un moment dat. B()'IJ,rt istoric. Programarea liniară datează din anii 1939-1941 oind au apărut primele lucrări ale lui L. Kantorovici (1939) şi F. Hitckcock (1941). Din punct de vedere istoric primele probleme rezolvate au fost cele de transporturi, aplicabile la organizarea optimă a transporturilor maritime, la necesităţile de aprovizionare a frontului sau la planificarea misiunilor aviaţiei de bombardament. Metoda simplex a fost creată în 1947 de G. Dootzig şi J. von Neumann. mterior programarea liniară a cunoscut un mare avînt prin lucrările unor matematicieni şi economişti ca T. Koopmam, L. Ford, D. Fulkerson, .A. Oharnes, W. Oooper, B. Gomm·y, H. Kukn etc., găsindu-şi un cîmp foarte larg de aplicaţii în economie. Necesităţile reale au condus la apariţia şi dezvoltarea altor tipuri de programări, cum ar fi programarea pătratică, programarea convexă, programarea în numere întregi, programarea stohastică, programarea dinamică etc., toate aceste domenii fUnd înglobate în termenul generic de programare matematică. în domeniul programării matematice o serie de contribuţii importante au fost aduse de matematicieni şi economişti români. Deci o problemă de programare liniară constă în găsirea unor numere reale care verifică anumite inegalităţi, cum sînt (1), (2) sau (3), numite restricţiile problemei şi care în plus fac maximă (sau

73

minimă, sumă de

funcţie de problemă,) o anumită funcţie liniară, adică o variabile înmulţite cu coeficienţi numere reale~ Un vector v ale cărui componente satisfac restricţiile unei astfel de probleme de programare liniară se numeşte soluţie posibilă sau soluţie admisă. Dacă în plus o soluţie admisă maximizează (sau minimizează, în funcţie de problemă) funcţia liniară asociată acelei probleme, ea se numeşte soluţie sau soluţie optimă a problemei de programare liniară. Am văzut din aceste exemple că mulţimea soluţiilor posibile pentru o problemă de programare liniară este caracterizată printr-un sistem de inegalităţi liniare. Vom studia aceste mulţimi de puncte M(w, y) din plan care satisfac restricţii de forma inegalităţilor liniare şi vom arăta că aceste mulţimi sînt mulţimi convewe.

în

11.2. Multimi convexe detet minate de i~egalităţi liniare şi

în planul wOy orice punct M are ordonata y. O ecuaţie de forma:

două

coordonate, abscisa

aw+by=c

(1)

reprezintă

o dreaptă, ale cărei intersecţii cu axa absciselor ordonatelor au respectiv coordonatele

(: , O) şi ( o, : ) Dacă dacă

pentru a, b

f1J

şi

axa

~ O.

a= O atunci dreapta  de ecuaţie (1) este paralelă cu Ow, iar = O atunci /l este paralelă cu Oy. Dreapta  împarte planul în două semiplane 8 1 şi 8 2 , situate de o parte şi de alta a dreptei Â. Dacă pentru un punct M e 8 1 coordonatele sale verifică inegalitatea b

aw+byc.

74

Deci soluţiile unei

inecuaţii

de forma

ax+ by

~

c

(4)

vor reprezenta coordonatele unor puncte din planul xOy situate într-unur din semiplanele determinate de dreapta a de ecuaţie (1) sau pe dreapta a. Semiplanul pentru care există inegalitatea am+ by


O, 6,.,.;fo• . {-4 , -3 } = -4 · param Qlgmd mm

°'••

3 ·1

11 vom alege ca pivot pe 3, introducînd pe a2 în lui u 2 •

Obţinem

3

bază,

în locul

"2

b

tabelul : a,

al

as

U1

fsisl

o

a2

1/3

1

o

1/3 -1/3

-5/3

o

1

-1/3

aa

-1

U1

1

-1/3

5/3

o o

1/3

4/3

4/3

-5/3

tn ultima linie a tabelului există acum 2 coeficienţi negativi. Cel mai mic este - 5/3, iar din coloana sa îl alegem ca piyot pe 5/3, cu regula cunoscută. Obţinem tabelul final al fazei întii : b

a, 1

o o 124

o 1

o

-3/5 1/5

o

1/5 -2/5

o

3/5 -1/5 1

-1/5 2/5 1

1 1

o

Deoarece în ultima linie toate numerele sînt nenegative, faza întîi s-a încheiat, obţinînd soluţia nenegativă de bază a, problemei iniţiale : (1, 1, o, O). Plecînd de la această soluţie, trecem la, faza a, doua, aplicînd algoritmul simplex pentru tabelul :

,,

1

o

-3/5

o

1

fîtsl

O

O

-3/5

1

1/5 -2/5

1

11/5

-7

observă că elementele -3/5 şi 11/5 ale ultimei linii au trebuit să fie recalculate, restul coeficienţilor fiind identici cu cei din tabelul obţinut la sfîrşitul fazei întii. Alegînd ca pivot pe 1/5 încadrat într-un dreptunghi, obţinem

Se

tabelul:

,, 1

o o

3 5

o

-1

1

-2

5

3

o

1

-4

4

Deoaa-ece toate numerele din ultima linie (exceptînd coloana lui b) sînt nenegative, rezultă că şi faza, a, doua este încheiată, obţinînd soluţţa, opt_imă,: (I)= 4, '!I= O, z = 5, t = O. · · Problema, iniţială era echivalentă cu problema,: 2a, + 'JI ~ 3, (1)

+ 3y ~

(1)

~

o,

min ($

Pentrn aceasta, figura II.5.4.

'!I

4, ~

o,

+ 6y).

mulţimea soluţiilor

posibile este

reprezentată,

în

y

125

Se

observă că

minimul

·funcţiei

obiectiv se atinge în punctul

0(4, O), iar aplicarea algoritmului simplex a constat din deplasarea din B(l, 1) în 0(4, O), unde funcţia obiectiv îşi atinge valoarea minimă liniară.

în

mulţimea s9luţiilor

posibile ale problemei de programare

11. 6. Probleme

l. Să se transcrie matematic următoarea problemă de pl'Ogramare liniară : · . lntr-o fabrică funcţionează două procese de producţie, notate P 17 P 2 , care produc substanţele Su 8 27 8 3 , ast.fel încît în unitatea de timp (ora) P 1 produce tti 1 unităţi din Su a12 unităţi din 8 2 , tti 3 unităţi din 8 3 , iar P 2 produce a 21 unităţi din Su a 22 unităţi din 8 2 , a 23 unităţi din 8 3 • Prin plan fabrica trebuie să producă cel puţin b1 unităţ.i din 8 17 b2 unităţi din 8 2 , b3 unităţi din 8 3 • Se ştie că procesul P 1 consumă în unitatea de timp c1 lei (materii prime şi manoperă), iar P 2 consumă în unitatea de timp c 2 lei. Procesele de producţie fiind liniare (adică procesul Pi (i = 1, 2) funcţionînd t ore consumă te; lei), să se determine un plan de producţie optim, care să a-sigure îndeplinirea planului cu cheltuieli de producţie minime. 2. Să se rezolve următoarea problemă ·de programare liniară : X ~

2x

0, y

+y

X+

~

0,

5,

4y ~ 6,

min (x reprezentînd grafic

~

+ 6y),

mulţimea convexă

a

soluţiilor

posibile în planul

xOy.

R: (6, O). 3. Să se rezolve următoarele probleme de programare liniară, folosind reprezentareJt grafică a mulţimii soluţiilor posibile : a) 4,5 X - 3,2 y ~ 4,2, 3x

+ 7,25

x, y

~

o,

max ( -3x

126

y

~

2,5,

+ 2,6

y).

b)

+ 8y:::::; 5, 3x + 4y ~ 10,

-2x

c)

x+2y~7,

x, y

y:::;; 1,

X -

x, y

o;

~

max (2x

+ 3y ~ 4,

2x

~

o,

max (5x - y).

+ 4y).

ll:(7,0)

nf;, :: ) d)

y

X -

x, y

~

~

·2,

e)

+ 7y). R: Nu

există

+y

:::::; 3,

X+ y:::;; 1, X+ 3y ~ 1,x, y ~ o,

o,

max (2x

4x

maximum.

max (4x - 3y). R:

(..!_, 11

....!,__) 11

~- Se stie că fiecal'e animal dintr-o fermă are nevoie de o cantitate minin{ă de principii nutritive în unitatea de timp (pe zi), care depinde de specie, vîrstă, scopul urmărit în alimentaţie etc. Principiile nutritive se află în diferite proporţii în produsele ce compun raţia furajeră. Folosind datele din tabelul de mai .jos, să se determine cantitatea x din ·alimentul' .A1 şi cantitatea y din alimentul A 2 , exprimate în kg, ce trebuie să intre în compoziţia raţiei furajere a unui animal astfel incit costul ei să fie minim, folosind metoda grafică-.

i Denumirea princi-

Contlnutul ln prlnciI1II nutritive al alimentelor

A1

P1 P2 Pa

P,

Costul (lei/kg)

A~

0,1

o

0,1 0,2 2,4

0,1 0,2 0,1 0,8

o

Cantltătlle

minime prescrise (kil')

(kg)

Plilor nutritive

0,4 0,6 2 1,7

]27

R: Modelul matematic al probleiici este urmltorul :

y ~ o, 0,4, ~ 0,6, 0,2y ~ 2, O,ly ~ 1, 7, min (2,4 (I} 0,8 y). (I}

o,

~

0,1(1} O,ly 0,1(1} 0,2(1}

Folosind metoda

grafică

se

~

+ +

+

găseşte

(I}

= 4,

y

= 9.

5. Să se rezolve următoal'ea problemă de transport: Din A trebuie transportate 2500 t produse şi din B trebuie transportate 1400 t I a depozitele D1 şi D 2 • D1 poate primi 2800 t, D 2 poate primi 1500 t, ia.r matricea costurilor transportului este următoarea : Di

80 lei/t 50 lei/t Să

40 lei/t 35 lei/t

se determine planul de transport optim. R : Problema se transcrie matematic sub forma : (I} (I}

z

~

o, y

~

o,

+ y = 2500, + t = 1400,

(I}+

z

~

z

~

o,

t

~

o,

2800,

+ t ~ 1500, min (80(1} + 40y + 50z + 35t). y

Mulţimea soluţiilor posibile din planul (l}Oz este desenată în figura

II.6.1. Se

găseşte soluţia optimă:

(I}=

1000 t, y

= 1500 t,

z

= 1400 t, t =

z



(1000, 1800)

o Fig. II. 6.1

128

O tone.

6. Să se. rezolve următoarele probleme de programare .liniară, cu algoritmul simplex (dacă este. cazul, problemele de minimizare se vor transforma în probleme de maximizare, transformînd de asemenea toate inegalităţile în ~ ) :

a)

3) _:_

2y

y ~ 1,

b)

ro_-y

+ z ~ 4,

2y - z

~

4,

o,

3J, y, z

~

O,

3J, 'Y, z ~

max (ro - y

+ 3z).

min ( - 2ro

ro+ 2y - z ~ 4, -2ro

d)

~

o,

~

max (ro

+ 2y + 3z).

ro+y-z~l,

ro, y, z

~

max (3J

+ y + z).

X+ y y

~

' 2

f)

l,

+ z ~ 1,

X+ Z ~

~

max (3J

+ y + z).

R:

2ro

+y

~

3,

2y

+z~

3,

O,

x, y, z

~

max (ro

+ y + z).

(_!_2 • _!_2 • _!_) 2 g)

2

2z +ro~ 3,

1,

x, y, z

O,

n:(o ~' _!_)

R: (2, O, 2)

e)

z).

23J

4,

x, 'Y, z

+y -

+ y + 3z ~ 3, ro - y + z ~ 4,

+ y + 3z ~ 2,

X+ 3y + Z

-1,

R: Nu existl minimum

R: (1, O, 4)

c)

+z ~

O,

R: (1, 1, 1)

+ y - z + t ~ 2, + y + z + 2t ~ 4, ro -y + z + t ~ 3, 3a; + y + 2z + 5t ~ 1, ro

-3)

a:, y, z, t

max (3J

~

O,

+ 2y + 3z + t). R: (O, 1, O, O)

9 - o. 1161

129

7. Scriind variabila x = z - t cu z, t ~ O să se r.ezol ve urmă­ toarea problemă de programare liniară cu algoritmul simplex, apoi să se verifice rezultatul folosind reprezentarea grafică : 11 ~ O,

2x

+y

~

4,

~

-X+ y

max (-,-2x

4,

+ y). Il: (- 4, O) anterioară,

8. Folosind metoda de la problema :



se rezolve

următoarea. problemă

x, y

~

O:

+ y + 2z ~ 1, -X+ y + Z ~ ~' max ( x + 2y - z). x



9.

R : Nu

X ~

2, y

X+ y 2x

~

+ 3y

Z ~

3,

+Z~

max (x făcînd

există

maximum

se rezolve problema : 0,

6,

- z ~ 14,

+ 2y + 3z)

o schimbare de variabile (x' = x - 2, y' = y - 3). R: (2, 3, 1)

10.



J~e rezolve problema : X ~

6, y

~

- 3,

X+ y + 2z ~

5,

+ 3y - z ~ max (2x + z).

2,

2x

1,

6,

+Z~

-X+ y

Z ~

R: ( ~ -3 5 ' '

130

.2..) 5

1 t.

Să Re

rezolve problema :

+ 3y + Gz = 2, 3x + 2y - 2z = 2, x, y, z ~ o, x

+y -

max (x

z). li: (

! . +• o)

12. Introtlucînd variabile-ecart şi utilizînd metoda · celor faze, să se rezolve următoarea p1·oblemă de programare liniară, :

două

-y

~

1,

X+ y

~

l,

X

X -

2y

a;, y ~

~

o,

min (2x şi să

se arate

că 8oluţia

ei

1,

optimă

+ 3y) este

degenerată.

ll: (1, O)

'\

\

13. Să se arate că intersecţia a două mulţimi convexe este o mulţime convexă. Să so dea un exemplu din care să rezulte că această proprietate nu mai este adevărată pentru reuniunea a două mulţimi convexe.

Tabia de materii

(

I. No!iuni de• teoria grafurilor Ll. Grafuri neorientate şi gi-afw·i orientate I.2. Drumuri şi circuite în grafuri J.3. Grafuri conexe I.4-. Probleme

14 45 58

11. N'o!iuni de programare liniară 1 Ll. Formularea problemelor de programare liniară II.2. 1\fulţimi convexe determinate de inegalităţi lini:u-c • . . . . . . . . . . . . . . .

II.3. Interpretarea geometrici"t a problemelor de programare liniară . . . . . . . . . . . . II.4. Tm,nsfurmar·ea, unei matrice prin metoda substituţiei . . . . • . . . . . . . . . . . . • IJ.5. l\Ietoda simplex pentru rezolvarea problemelor de prog1·amare liniară . . . . . . . . . . . . . 11.6. Problmne



l\'r. plan t.diturd 6091. Coli de tipar 8,:!S. Tiraj U./80 e:r. broşate. 81111 de tipar, JJ.OS.75. Apdrul J97,'i c. 2161 - I.P. INFOHMAŢIA str. Brezoianu nr. 23-25 Bucureşti

67 '74

80 86 103 126