/*----------------------------------------------------------------------------*/
/* Data Creare
: 09 Martie 1995
*/
/* Data Modificare :
03 Noiembrie 1997
*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* Sursa : MATURANA
S. V., Survey and Analysis of LINGO,Mgt 298D Course Proj; */
/*
John E. Anderson Graduate School of Management,Univ of California, */
/*
Los Angeles, CA 90024
*/
/*
*/
/*
O companie produce scaune in citeva din centrele sale de productie *
/* din localitati distincte
si le vinde in citeva orase. Cheresteaua necesara */
/* productiei sale este
achizitionata de la mai multe depozite care o vinde cu*/
/* conditia unui minim
de achizitie. Fiecare centru de productie poate produce*/
/* un numar de scaune
situat intre anumite limite. Pentru livrare scaune sunt*/
/* solicitate cantitati
care sa nu depaseasca anumite limite. Se cere un plan */
/* de productie, de
aprovizionare si desfacere care sa produca un profit maxim*/
/* Modelul prezent raspunde
la intrebarile :
*/
/*
*/
/*
1. De unde si cit trebuie sa cumpere cherestea fiecare centru productie;*/
/*
2. Din care centre de productie si in ce cantitate trebuie sa se livreze*/
/*
scaunele pentru satisfacerea cererii la fiecare centru de livrare ;
*/
/*
3. Care este profitul rezultat al companiei.
*/
/*
*/
/*
Modelul prezent este in fapt un MIP model si ar fi trebuit tratat
*/
/* si rezolvat ca atare
cu un MIP solver. Totusi pe aceste date solutia este */
/* corecta chiar lucrind
cu variabile continue si nu cu un MIP solver. Solutia*/
/* are rezultate intregi
la toate variabilele ce se refara la numar de scaune */
/*----------------------------------------------------------------------------*/
FILE
ftw="tangwood.dat"
INTEGER
nrdep READ ftw IS nrdep >0; /* Numar depozite de cherestea */
nrfab READ ftw IS nrfab >0; /* Numar centre de fabricatie scaune */
nrdes READ ftw IS nrdes >0 /* Numar centre desfacere scaune */
RANGE
dep=[1,nrdep]; /* Domeniu coduri depozite cherestea */
fab=[1,nrfab]; /* Domeniu coduri centre de fabricatie */
des=[1,nrdes] /* Domeniu coduri centre desfacere scaune */
REAL
spret[des] READ ftw IS FOR[ k IN des] spret[k]>0.0;
/* Pret de vinzare scaune la fiecare centru de desfacere */
pscost[fab] READ ftw IS FOR[ k IN fab] pscost[k]>0.0;
/* Cost de productie scaun la fiecare centru de productie */
tscost[fab,des] READ ftw IS FOR [j IN fab, k IN des] tscost[j,k] >= 0.0;
/* Cost de transport
scaun de la fiecare centru de productie */
/* la fiecare
centru de vinzare */
tmcost[dep,fab] READ ftw IS FOR [j IN dep, k IN fab] tmcost[j,k] >= 0.0;
/* Cost transport cherestea de la fiecare depozit la fiecare centru */
mcost[dep] READ ftw IS FOR[k IN dep] mcost[k]>0.0;
/* Costul cherestea la fiecare depozit */
qamin[dep] READ ftw IS FOR[k IN dep] qamin[k]>0.0;
/* Cantitatea minima de achizitie cherestea la fiecare depozit */
qms READ ftw IS qms >0.0;
/* Cantitatea de cherestea necesara pentru un scaun */
fmin[fab] READ ftw IS FOR[k IN fab] fmin[k]>=0.0;
/* Numar minim scaune posibil de fabricat la fiecare centru */
fmax[fab] READ ftw IS FOR[k IN fab] fmax[k]>0.0;
/* Numar maxim scaune posibil de fabricat la fiecare centru */
smin[des] READ ftw IS FOR[ k IN des] smin[k]>0.0;
/* Numar minim scaune solicitat de fiecare centrul de vinzare */
smax[des] READ ftw IS FOR[ k IN des] smax[k]>0.0
/* Numar maxim scaune solicitat de fiecare centrul de vinzare */
VARIABLES
xdf [dep,fab];
/* Cantitatea cherestea cumparata de fiecare centru de fabricatie */
yfs [fab,des]
/* Numar scaune livrate de la fiecare centru de */
/* fabricatie pentru fiecare centru de achizitie */
OBJECTIVES
profit IS profit :=
SUM[j IN fab,k IN des]((spret[k]-pscost[j]-tscost[j,k]) * yfs[j,k]) -
SUM[j IN dep,k IN fab]((tmcost[j,k]+mcost[j]) * xdf[j,k])
/* Profitul estimat
este pretul obtinut de companie pe toate scaunele */
/* vindute din
care trebuie scazut costul lor de fabricatie, costul pe*/
/* cheresteaua
cumparata si utilizata , costul transport cherestea de */
/* la depozite
la centrele de fabricatie,costul transport scaune de la*/
/* aceste centre
la centrele de livrare convenite cu beneficiarii lor */
MAXIMIZE
profit
CONSTRAINTS
rad [dep] IS FOR[j IN dep] rad[j] := SUM[k IN fab](xdf[j,k])>=qamin[j];
/* Restrictia de
cantitate cherestea achizitionata din fiecare depozit */
rprod [fab] IS FOR[j IN fab]
rprod[j] := SUM[k IN des](yfs[j,k]) IN [fmin[j],fmax[j]];
/* Restrictii productie scaune pe fiecare centru de fabricatie */
rdem [des] IS FOR[j IN des]
rdem[j] := SUM[k IN fab](yfs[k,j]) IN [smin[j],smax[j]];
/* Restrictii scaune
achizitionate de fiecare centrul de livrare */
rbal [fab] IS FOR[j IN fab]
rbal[j] := SUM[k IN dep](xdf[k,j])= qms*SUM[k IN des](yfs[j,k])
/* Balanta materiala din fiecare centru productie */
END