Consideram un
atelier care utilizeaza urmatoarele materii prime de baza: fier, nichel,
cupru pentru a produce : piulite,suruburi, nituri, cuie, saibe. Procesul
se deruleaza in patru perioade de productie iar maximul de productie pe
o perioada este in valoare de 140.5. Unitatile de materii prime pe unitatea
de produs finit este dat de tabelul de mai jos:
piulite | suruburi |
|
|
|
|
fier |
|
|
|
|
|
nichel |
|
|
|
|
|
cupru |
|
|
|
|
|
Profitul estimat
(daca valoarea este pozitiva) sau costul (daca valoarea este negativa)
produsului final si pe fiecare perioada de timp este dat de tabelul de
mai jos :
Perioada 1 | Perioada 2 | Perioada 3 | Perioada 4 | |
piulite |
|
|
|
|
suruburi |
|
|
|
|
nituri |
|
|
|
|
cuie |
|
|
|
|
saibe |
|
|
|
|
Consumul maxim
permis pe intreg procesul de productie din cele patru perioade si pentru
fiecare tip de materie prima trebuie sa fie in stoc la inceputul primei
perioade. Acesta este dat de tabelul :
|
|
|
|
|
|
Pretul de stocare
pe perioada si pe unitate de material este conform cu tabelul :
|
|
|
|
|
|
Pierderile estimate
(daca valoarea este pozitiva) sau costurile impuse (daca valoarea este
negativa) pe materiile prime dupa ultima perioada sunt date de tabelul
:
|
|
|
|
|
|
Problema care se pune este determinarea unui plan de productie pentru fiecare perioada de timp si cantitatea de materiale din stoc la inceputul fiecarei perioade in asa fel ca valoarea obtinuta, la finalul celor patru perioade, din profitul estimat minus costurile de stocare plus valoarea materialelor ramase neutilizate sa fie maxima. Aprovizionarea cu materii prime este permisa numai la inceputul ciclului de productie format din cele patru perioade. De aceea problema stocurilor de materii prime si a penalizarilor este prezenta si deosebit de importanta in realizarea optimului.
Tinind cont de cele de mai sus putem sa notam si sa producem urmatoarea formulare algebrica:
NRFPROD numarul produselor finale;
NRRMAT numarul materiilor prime;
NRPERP numarul perioadelor de productie;
PRODMAX maximul valorii productiei pe fiecare perioada;
UMP = || UMPrf || 1 £ r £ NRRMAT si 1 £ f £ NRFPROD ; UMPrf este unitatea de materie prima r necesara pentru unitatea de produs finit f;
PROFDC = || PROFDCfp || 1 £ f £ NRFPROD si 1 £ p £ NRPERP PROFDCfp este profitul estimat sau costul impus al produsului final f in perioada p;
STINIMAX = || STINIMAXr || 1 £ r £ NRRMAT, STINIMAXr este cantitatea maxima admisa de aprovizionare(la inceputul celor patru perioade si din care se va consuma in toate aceste perioade fara , al al materiei prime k;
STORCOST = || STORCOSTr || 1 £ r £ NRRMAT, STCOSTr este costul de stocare pe unitate de materie prima r;
RVDCOST = || RVDCOSTr || 1 £ r £ NRRMAT, RVDCOSTr este valoarea reziduala sau costul impus al materiei prime r dupa ultima perioada;
Definim si urmatoarele variabile care vor fi implicate in constructia modelului de optimizare liniara care incearca sa rezolve problema prezentata.
XPROD = || UMATfp || 1 £ f £ NRFPROD si 1 £ p £ NRPERP ; XPRODfp este cantitatea (exprimata in unitati) de produs finit f ce ar trebui sa fie produsa in perioada de timp p;
XSMAT = || XSMATrp || 1 £ r £ NRRMAT si 1 £ p £ NRPERP + 1 ; XSMATrp este cantitatea (exprimata in unitati) de materie prima r ce ar trebui sa fie prezenta la inceputul procesul de productie din perioada p;
Se cere sa se maximizeze profitul realizat de atelier in cele patru perioade de productie. Profitul este dat de suma profitului realizat din valorificarea produselor finite din care se scade costul total de stocaj al materiilor prime si la care se adauga valoarea materiilor prime ramase neconsumate la sirsitul ultimei perioade de productie :
Conditii impuse pentru procesul de productie din toate perioadele :
1. Valoarea productiei din fiecare perioada nu trebuie sa depaseasca o anumita limita impusa din diferite motive din care putem presupune capacitatile de productie, forta de munca, impuneri de cerere si oferta, impuneri financiare care sunt posibil reflectate si de cantitatile initiale de materii prime stocate pentru toate perioadele,indirect capacitatea de stocare a materiilor prime :
pentru 1 £ f £ NRFPROD
2. Dupa fiecare perioada de productie trebuie sa existe un echilibru al materiilor prime care se regasesc in stoc si in produsele finite produse in aceasta perioada. Altfel spus stocul de materii prime existent la sfirsitul acestei perioade ( care este acelasi cu stocul de inceput al perioadei urmatoare) trebuie sa fie egal cu stocul de la inceputul acestei perioade din care se scade materia prima inglobata in produsele finite rezultate in aceasta perioada.
pentru 1 £ p £ NRPERP
3. Exista si o conditie initiala privind limitarea superioara a stocului de materii prime de la inceputul primei perioade stoc destinat consumului in procesul de productie pentru toate perioadele. Aceasta limitare poate avea la baza o ratiune legata de capacitatea de stocare sau o motivatie financiara.
pentru 1 £ r £ NRRMAT
MODEL Plan_Productie
/*--------------------------------------------------------------------*/
/* Data Creare : 17 Martie 1993
*/
/* Data Modificare : 19 Octombrie
1997
*/
/*--------------------------------------------------------------------*/
/*
*/
/* Sursa: Fourer,R., Gay,D.M.,Kernighan,B.W.,AMPL:
A Mathematical */ /* Programming Language. Technical
Report 87-03, Department of */
/* Industrial Engineering and Management Sciences, Northwestern
*/ /* University, Evanston, Illinois 60201,January 1987, pp.1-63.
*/
/*--------------------------------------------------------------------*/
/*
*/
/* O intreprindere poate produce
citeva produse diferite in citeva */ /* perioade de timp.
Pentru fiecare produs se estimeaza ca aduce un */ /* anumit
profit diferit de la o perioada la alta. Marimea
*/ /* intreprinderii impune o limita superioara a produselor posibile de
*/ /* realizat. In plus fiecare produs necesita anumite materii prime
*/ /* care vor fi utilizate in producerea sa. Cantitati limitate din
*/ /* acestea trebuie stocate pentru perioadele luate in calcul. Un cost
*/ /* de stocare este impus pentru fiecare materie . Orice material ramas*/
/* nefolosit dupa toate perioadele are o valoare estimata pozitiva
*/ /* sau negativa-penalizare.
*/
/* Ce produse ar trebui facute
si in ce perioade in asa fel ca
*/ /* profitul pe ce se produce minus costurile de stocare plus valoarea
*/ /* materialelor la sfirsit sa fie maxim.
*/
/* Acest prototip ALLO are doua
ipostaze de personalizare pe baza */ /* fisierului
de date : planprd5.dat si planprd3.dat. Ultimul este
*/ /* preluat din exemplul lui Bob Fourer's TOMS paper, June 1983
*/
/*--------------------------------------------------------------------*/
FILE fpp = "planprd5.dat"
INTEGER
nrfprod READ fpp IS nrfprod >0; /* Numar produse finite */
nrrmat READ fpp IS nrrmat >0; /* Numar materii prime */
nrperp READ fpp IS nrperp >0 /* Perioade pe ciclu pr. */
RANGE
fprod = [1,nrfprod]; /* Domeniu coduri produse finite */
rmat = [1,nrrmat ]; /* Domeniu coduri materii prime */
perp = [1,nrperp ]; /* Domeniul perioade productie */
perpext = [1,nrperp+1] /* Domeniu extins perioade prod. */
REAL
prodmax READ fpp IS prodmax > 0.0;
/* Productia maxima permisa pe orice perioada de productie */
ump [rmat,fprod] READ fpp IS
FOR [r IN rmat,f IN fprod]ump [r,f] >= 0.0;
/* ump[r,f] Unitati materie prima r pentru o unitate de produs f */
profdc [fprod,perp] READ fpp;
/* Profit estimat (daca >=0.0)/costul impus (daca <0.0) */
/* al produselor finale si pe fiecare perioada de timp */
stinimax [rmat] READ fpp IS FOR [r IN rmat] stinimax[r]>=0.0;
/* Stocul initial maxim permis pe fiecare materie prima */
storcost [rmat] READ fpp IS FOR [r IN rmat] storcost [r] >= 0.0;
/* Costuri stocare pe unitate materie prima, pe orice perioada */
rvdcost [rmat] READ fpp
/* Valorile residuale estimate (daca >=0.0)/costul impus (daca */
/* < 0.0) al materiilor prime dupa ultima perioada a ciclului */
VARIABLES
xprod [fprod,perp];
/* Unitati de produse finite pe fiecare perioada */
xsmat[rmat,perpext] ISFOR[r IN rmat] xsmat[r,1] <= stinimax[r]
/* Stocul materii prime necesar la startul fiecarei perioade */
/* La inceputul primei perioade trebuie respectata conditia */
OBJECTIVES
profit IS profit :=
SUM[f IN fprod,p IN perp](profdc[f,p]*xprod[f,p]) -
SUM[r IN rmat,p IN perp] (storcost[r]*xsmat[r,p]) +
SUM[r IN rmat] (rvdcost[r]*xsmat[r,nrperp+1])
/* Profitul
estimat pe intreg ciclul de productie este profitul pe */
/* produsele
finite minus costurile de stocare plus rectificarea cu */
/* valoarea
(pozitiva/negativa-penalizare) legata de stoc materiale */
MAXIMIZE profit
CONSTRAINTS
limprod [perp] IS /* Limita productiei totale pe fiecare perioada */
FOR [p IN perp] limprod[p]:= SUM[f IN fprod](xprod [f,p]) <= prodmax;
pmbal [rmat,perp] IS /* Balanta materiala a procesului pe perioade */
FOR [r IN rmat, p IN perp] pmbal[r,p]:= xsmat[r,p+1] =
xsmat[r,p] - SUM[f IN fprod](ump[r,f] * xprod[f,p])
END
Fisierul secundar cu date de personificare prototip PLANPRD
/*planprd5.dat-------------------------------------------------------*/
/* Data Creare
: 17 Martie 1995
*/
/* Data Modificare : 19 Octombrie
1997
*/
/*-------------------------------------------------------------------*/
/* set fprod = piulite, suruburi, nituri, cuie, saibe */
/* set rmat = fier, nichel, cupru */
/* nrfprod */ 5
/* nrrmat */ 3
/* nrperp */ 4
/* prodmax */ 140.5
/* ump [rmat,fprod] */
/* piulite suruburi nituri cuie saibe */
/* fier */ 0.79, 0.85, 0.89, 0.86, 0.58,
/* nichel */ 0.19, 0.10, 0.07, 0.14, 0.20,
/* cupru */ 0.02, 0.05, 0.04, 0.00, 0.22;
/* profdc [fprod,perp] */
/* 1 2 3 4 */
/* piulite */ 1.73, 1.80, 1.60, 2.30,
/* suruburi*/ 1.82, 1.93, 1.72, 2.51,
/* nituri */ 1.87, 1.96, 1.65, 1.94,
/* cuie */ 1.78, 1.84, 1.69, 1.98,
/* saibe */
1.05, 1.16, 0.98, 1.37;
/* fier nichel cupru */
/* stinimax [rmat] */ 46.8, 7.32, 5.16;
/* storcost [rmat] */ 0.03, 0.025, 0.023;
/* rvdcost [rmat] */ 0.02, -0.01, -0.02;
/* Eof ---------------------------------------------------------------*/
Name of the problem : Plan_productie
Maximize the function: profit
Synopsis of original matrix
=====================================
No. constraints ................
= 16
No. structural variables .......
= 35
No. non-zeros elements .........
= 100
Density of non-zeros in matrix
. = 17.86%
No. unity elements .............
= 44
Density of unity elements ......
= 7.86%
Row section
-----------
No. equations ..................
= 12
No. less than or equal .........
= 4
Column section
--------------
No. normal variables ...........
= 32
No. upper bounded variables
.... = 3
Feasible Solution found in 0 iterations
Optimal Solution found in 25 iterations
Objective function value = 131.7778
NoCol Name Pos Value InputCost LowerLimit UpperLimit ReducedCost
1 xprod1
lb . .1730D+01
. none -.52336D+00
2 xprod2
lb . .1800D+01
. none -.48227D+00
3 xprod3
lb . .1600D+01
. none -.71118D+00
4 xprod4
lb . .2300D+01
. none -.40094D-01
5 xprod5
lb . .1820D+01
. none -.60255D+00
6 xprod6
lb . .1930D+01
. none -.52170D+00
7 xprod7
lb . .1720D+01
. none -.76085D+00
8 xprod8
b.550588D+02 .2510D+01 .
none .
9 xprod9
lb . .1870D+01
. none -.66540D+00
10 xprod10
lb . .1960D+01
. none -.60477D+00
11 xprod11
lb . .1650D+01
. none -.94414D+00
12 xprod12
lb . .1940D+01
. none -.68351D+00
13 xprod13
lb . .1780D+01
. none -.67086D+00
14 xprod14
lb . .1840D+01
. none -.64016D+00
15 xprod15
lb . .1690D+01
. none -.81946D+00
16 xprod16
lb . .1980D+01
. none -.55876D+00
17 xprod17
lb . .1050D+01
. none -.61060D+00
18 xprod18
lb . .1160D+01
. none -.52806D+00
19 xprod19
lb . .9800D+00
. none -.73552D+00
20 xprod20
lb . .1370D+01
. none -.37298D+00
21 xsmat1
ub .468000D+02 -.3000D-01 . .4680D+02
.28158D+01
22 xsmat2
bs .468000D+02 -.3000D-01 . none
.
23 xsmat3
bs .468000D+02 -.3000D-01 . none
.
24 xsmat4
bs .468000D+02 -.3000D-01 . none
.
25 xsmat5
lb . .2000D-01
. none -.29158D+01
26 xsmat6
bs .550588D+01 -.2500D-01 . .7320D+01 .
27 xsmat7
bs .550588D+01 -.2500D-01 . none
.
28 xsmat8
bs .550588D+01 -.2500D-01 . none
.
29 xsmat9
bs .550588D+01 -.2500D-01 . none
.
30 xsmat10
lb . -.1000D-01
. none -.11000D+00
31 xsmat11
bs .275294D+01 -.2300D-01 . .5160D+01 .
32 xsmat12
bs .275294D+01 -.2300D-01 . none
.
33 xsmat13
bs .275294D+01 -.2300D-01 . none
.
34 xsmat14
bs .275294D+01 -.2300D-01 . none
.
35 xsmat15
lb . -.2000D-01
. none -.11200D+00
Pe baza solutiei putem sa tragem urmatoarele concluzii:
1. La inceputul
ciclului de productie al celor patru perioade trebuie sa plecam cu urmatoarele
stocuri de materii prime:
|
|
|
fier |
|
|
nichel |
|
|
cupru |
|
|
2. Nu producem nimic in primele trei perioade ale ciclului iar in a patra perioada producem numai suruburi in cantitatea( numar unitati ) de 55.05 pe care o gasim ca valoare pentru xprod8. Aceasta variabila este numele corespunzator lui xprod[2,4] prin liniarizarea indicelui (conform cu procedura linie dupa linie, mai general ultimul indice se schimba cel mai repede dupa care penultimul,etc).
Aceasta este o solutie corecta a modelului pus in discutie cu datele si pretentia expuse. In practica atelierul nu poate sta trei perioade pentru ca apoi sa produca un singur produs. Managerul gaseste solutii de renuntare la maxim de profit pentru a asigura continuitatea procesului de productie. Si astfel este obligat sa introduca noi conditii in model dintre care una poate fi legata de a cere minimum de productie in fiecare perioada. Alta conditii tin de asigurarea unui minim de tipuri de produse finale precum si de satisfacerea unor cereri prezente (chiar daca nu complet profitabile dupa cum s-a si vazut) cu scopul de a nu pierde clientela. Toate acestea tin de strategia de existenta si profitabilitate a atelierului pe un orizont mai mare decit a celor patru perioade cicluri de productie prezente in model. In final strategia si chiar tactica de moment poate fi modelata in anumite conditii care imbogatesc modelul expus si pot duce la citeva variante de functionare pe parcursul celor patru perioade de studiu. Pe baza acestora managerul poate sa decida ce cale are de urmat.