Documente Academic
Documente Profesional
Documente Cultură
Tematica laboratoarelor
( urmează îndeaproape şi concordant problematica chestiunilor abordate la curs ) :
Componenta Solver
2
3
4
5
6
7
8
9
10
11
Produsul informatic QM
Pachetul QM conţine 15 module, din care modulul A este dedicat problemelor de programare liniară,
iar modulul E problemei de transport. El permite utilizatorului o rezolvare corectă şi rapidă a problemelor
respective. Însă avantajul cel mai mare al utilizării QM este analiza economică pe care o poate realiza
utilizatorul pe baza rezultatelor furnizate de pachet.
Vom explica modul de utilizare al pachetului QM pe două exemple concrete.
Activăm directorul în care se află pachetul QM şi lansăm la execuţie programul qm.com. Pe ecran
apare Meniul principal, din care selectăm modulul A pentru a rezolva o problemă de programate liniară (A.
Linear Programming) sau modulul E pentru a rezolva o problemă de transport (E. Transportation).
După selectarea modulului necesar, este afişat ecranul de lucru, format di trei ferestre. Fereastra de
jos conţine o listă de comenzi care pot fi lansate tastând tasta respectivă.
Terminarea normală a secţiunii de lucru cu QM se face tastând <ESC> de mai multe ori pentru a
ajunge în sistemul de operare.
Fie problema
f = − x1 + x2 + 3 x3 − > max,
2 x1 − x2 + x3 <= 1, ⎫
4 x1 − 2 x2 + x3 >= −2,⎪⎪
⎬
3x1 + x3 <= 5, ⎪
x1 , x2 , x3 >= 0. ⎪⎭
Startăm QM şi selectăm modulul A. acest modul rezolvă probleme de programare liniară cu cel
mult 50 restricţii şi cel mult 50 variabile, utilizând algoritmul simplex primal. Pe ecran este afişat ecranul de
lucru.
Pentru introducerea datelor problemei lansăm comanda New, tastând litera N. Este afişat un alt
ecran cu trei ferestre. Vom completa câmpurile de date din primele două ferestre cu datele problemei în
felul următor.
În fereastra de sus, în câmpul “Problem Title:” introducem titlul problemei; în “Type of Problem
(Max=1/Min=2)” introducem cifra 1, deoarece avem o problemă de maximizare; în
“Tableau(All=1/Final=2/No=3)” introducem 1 pentru afişarea tablourilor simplex de la toate iteraţiile; în
“Number of Constraints” introducem 3, deoarece avem trei restricţii în problemă; în “Number of Variables”
introducem 2 – numărul de variabile. Trecerea de la un câmp la altul se face prin <ENTER>.
După completarea primei ferestre se trece la cea mijlocie unde sunt afişate alte câmpuri de date
pentru a fi completate. Aici introducem coeficienţii din funcţia scop, coeficienţii din restricţii, tipul restricţiilor
şi părţile drepte ale restricţiilor.
“Obj.”: coeficienţii pentru funcţia obiectiv: -1 1 3;
12
“C1”: coeficienţii din restricţia 1: 2 –1 1; tipul restricţiei 1: < (pentru <=); partea dreaptă a restricţiei
1: 1;
“C2”: datele din restricţia 2: 4 -2 1 > -2;
“C3”: datele din restricţia 3: 3 0 1 < 5.
După tastarea ultimei date apăsăm comanda Run.
QM ne va afişa următoarele rezultate:
13
Simplex Tableau 0
Cj -1.000 1.000 3.000 0.000
Cb Basis Bi x 1 x 2 x 3 s 1
0.000 s 1 1.000 2.000 -1.000 1.000 1.000
0.000 s 2 2.000 -4.000 2.000 -1.000 0.000
0.000 s 3 5.000 3.000 0.000 1.000 0.000
Zj 0.000 0.000 0.000 0.000 0.000
Cj-Zj -1.000 1.000 3.000 0.000
Cj 0.000 0.000
Cb Basis Bi s 2 s 3
0.000 s 1 1.000 0.000 0.000
0.000 s 2 2.000 1.000 0.000
0.000 s 3 5.000 0.000 1.000
Zj 0.000 0.000 0.000
Cj-Zj 0.000 0.000
Simplex Tableau 1
14
Cj 0.000 0.000
Cb Basis Bi s 2 s 3
3.000 x 3 1.000 0.000 0.000
0.000 s 2 3.000 1.000 0.000
0.000 s 3 4.000 0.000 1.000
Zj 3.000 0.000 0.000
Cj-Zj 0.000 0.000
Simplex Tableau 2
Cj -1.000 1.000 3.000 0.000
Cb Basis Bi x 1 x 2 x 3 s 1
3.000 x 3 4.000 0.000 0.000 1.000 2.000
1.000 x 2 3.000 -2.000 1.000 0.000 1.000
0.000 s 3 1.000 3.000 0.000 0.000 -2.000
Zj 15.000 -2.000 1.000 3.000 7.000
Cj-Zj 1.000 0.000 0.000 -7.000
Cj 0.000 0.000
Cb Basis Bi s 2 s 3
3.000 x 3 4.000 1.000 0.000
1.000 x 2 3.000 1.000 0.000
0.000 s 3 1.000 -1.000 1.000
Zj 15.000 4.000 0.000
Cj-Zj -4.000 0.000
15
Simplex Tableau 3
Cj -1.000 1.000 3.000 0.000
Cb Basis Bi x 1 x 2 x 3 s 1
3.000 x 3 4.000 0.000 0.000 1.000 2.000
1.000 x 2 3.667 0.000 1.000 0.000 -0.333
-1.000 x 1 0.333 1.000 0.000 0.000 -0.667
Zj 15.333 -1.000 1.000 3.000 6.333
Cj-Zj 0.000 0.000 0.000 -6.333
Cj 0.000 0.000
Cb Basis Bi s 2 s 3
3.000 x 3 4.000 1.000 0.000
1.000 x 2 3.667 0.333 0.667
-1.000 x 1 0.333 -0.333 0.333
Zj 15.333 3.667 0.333
Cj-Zj -3.667 -0.333
16
Objective Coefficient Ranges
Variables Lower Current Upper Allowable Allowable
Limit Values Limit Increase Decrease
x1 -2.000 -1.000 8.500 9.500 1.000
x2 0.000 1.000 20.000 19.000 0.500
x3 -0.000 3.000 No limit No limit 3.167
În prima parte este prezentată problema de rezolvat. În continuare sunt afişate tablourile simplex
cerute. Aici s1,s2,s3 sunt variabile ecart cu coeficienţii 0 în funcţia scop. Eventual pot fi şi variabile
artificiale notate prin A1,A2,… cu coeficienţii (-M) (sau M) în funcţia scop.
Prima linie a tabloului simplex conţine coeficienţii din funcţia scop.
Linia a doua conţine denumirile coloanelor tabelului:
Cb: coeficienţii funcţiei scop pentru baza curentă;
Basis : baza curentă;
Bi: soluţia la iteraţia curentă;
x1,x2,…,s1,s,…,A1,A2,…: coeficienţii variabilei respective din restricţii;
Zj: produsul scalar dintre coloana Cb şi coloana sub care e afişat Zj; prima valoare este valoarea
funcţiei scop pentru soluţia curentă; sub coloanele s1,s2,…,A1,A2,… se află valorile variabilelor duale;
C j - Z j : diferenţele dintre Cj şi Zj, care reprezintă criterii pentru verificarea optimalităţii soluţiei.
La maximizare soluţia este optimă, dacă C j - Z j <= 0 pentru orice j.
( C j - Z j arată cum se va schimba funcţia obiectiv, dacă variabila xj, sj sau Aj nebazică ar intra în
bază; de asemenea ( C j - Z j ) arată valoarea restricţiei duale:( c j − ∑ aij ui )).
Tabelul următor “Final Optimal Solution” conţine valorile optimale pentru funcţia scop şi variabile.
∑
Coloana “Reduced Cost” arată valorile restricţiilor ( aij ui − c j ) pentru problema duală egale cu
Z j − C j din problema primală.
În tabelul următor sunt indicate valorile variabilelor ecart, adică abaterea valorii părţii stângi a
restricţiei faţă de partea dreaptă (Slack/Surplus), şi preţurile umbră (Shadow Price), adică soluţia optimă a
problemei duale.
Tabelul “Objective Coefficient Ranges” arată sensibilitatea soluţiei la variaţia coeficienţilor funcţiei
scop. El are coloanele: Variables = Variabila ( x j ); Lower Limit = limita inferioară; Curent Value = valoarea
17
curentă ( c j ); Upper Limit = limita superioară; Allowable Increase = creşterea permisă; Allowable Decrease
= descreşterea permisă.
Pentru x1, de exemplu, informaţia din acest tabel se interpretează astfel: dacă toate celelalte
condiţii ale problemei rămân neschimbate, iar coeficientul c1 − 1 de pe lângă x1 din funcţia scop variază
în intervalul [-2;8.5] ( [Lower Limit; Upper limit] ), adică soluţia optimă a problemei primale rămâne
neschimbată, iar valoarea funcţiei scop se modifică cu valoarea ± x1Δc1 .
Tabelul “ Right Hand Side Ranges” arată sensibilitatea soluţiei la variaţia părţilor drepte ale
restricţiilor. El conţine coloanele: Constraints = restricţia; Lower Limit, Curent Value ( bi ), Upper Limi,
Allowabl Increase şi Allowable Decrease cu acelaşi sens ca şi în tabelul precedent.
Informaţia din tabel se interpretează astfel. De exemplu, pentru restricţia C3: dacă toate celelalte
condiţii ale problemei rămân neschimbate, iar partea dreaptă a restricţiei C3 b3 = 5 variază în intervalul
[4;+∞) ( [Lower Limit; Upper Limit]), adică se micşorează cu Δb3 ∈ [0;1] ( [0;Allowable Decrease] ) sau
creşte cu Δb3 ∈ [0;+∞] ( [0;Allowable Increase] ), atunci soluţia optimă a problemei duale rămâne
neschimbată, iar valoarea optimă a funcţiei scop a problemei duale se va schimba сu ± u3 Δb3 . Din
teorema dualităţii deducem imediat că şi valoarea optimă a funcţiei scop a problemei primale se va schimba
respectiv cu aceeaşi valoare.
18
d1 d2 d3 d4 a
s1 2 1 3 2 90
s2 2 3 3 1 70
s3 3 3 2 1 50
b 80 60 40 30
Startăm QM şi selectăm modulul E, care rezolvă probleme de transport cu cel mult 40 destinaţii
(consumatori). Lansăm comanda New pentru a introduce datele problemei. Este afişat ecranul de
lucru cu trei ferestre. În fereastra de sus, în câmpul “Problem Title:” introducem titlul problemei; în
câmpul “Type of Problem (Max=1/Min=2)” introducem 2, deoarece avem o problemă de minimizare;
în “Initial (MW=1/MC=2/VAM=3)” indicăm metoda de determinare a soluţiei iniţiale:
1. metoda colţului Nord-Vest (NW);
2. metoda costului minim din tabel (MC);
3. metoda Vogel = metoda diferenţelor maxime (VAM).
În câmpul “Number of Sourses” introducem 3- numărul de furnizori; în câmpul “Number of
Destinations” introducem 4 – numărul de consumatori.
În fereastra a doua sursele sunt notate prin liniile S1,S2,…, iar destinaţiile prin coloanele D1,D2,… .
La intersecţia acestor linii şi coloane introducem costurile unitare de transport din matricea de transport. În
coloana “Sourses” introducem cantitatea de marfă pentru fiecare sursă; în linia “Des.” Introducem
cantitatea de marfă necesară fiecărui consumator.
Terminăm introducerea datelor cu “ESC” şi lansăm comanda Run pentru a rezolva problema. QM
ne va afişa următoarele rezultate:
Program: Transportation
Problem Title : Pr. De transport
***** Input Data *****
Minimization Problem :
1 2 3 4 Supply
1 2.0 1.0 3.0 2.0 90.0
2 2.0 3.0 3.0 1.0 70.0
3 3.0 3.0 2.0 1.0 50.0
19
1 30.0 60.0 0.0 0.0 90.0
2 50.0 0.0 0.0 20.0 70.0
3 0.0 0.0 40.0 10.0 50.0
20
Probleme pentru lucrarea nr.1.
21
Probleme pentru lucrarea nr.2.
I. Un plan de nutriţie cere consumarea a cel puţin 200 unităţi de proteine şi 180
unităţi de grăsimi...
Analizele chimice arată că o unitate din alimentul A conţine 6 unităţi de proteine şi 3 unităţi de
grasimi, iar o unitate din alimentul B conţine 3 unităţi de proteine şi 5 unităţi de grăsimi.
Consumul din cele două tipuri de alimente se face numai în unităţi întregi. Preţul de cumpărare
este de 2,5$ pentru o unitate din produsul A şi 2$ pentru o unitate din produsul B.
Câte unităţi din fiecare aliment trebuiesc consumate astfel încât să fie satisfăcute cerinţele
e proteine şi grăsimi iar costul să fie minim ? Creaţi şi redactaţi modelul problemei.
III. O firmă de turism are o cerere de transport pentru 500 de persoane. Această firmă
dispune de trei tipuri de mijloace de transport cu următoarele caracteristici: ...
22
Problema pentru lucrarea nr.3
23