Documente Academic
Documente Profesional
Documente Cultură
Stoian Liviu-Ionut
Grupa 1037
Cuprins
Enunțarea problemei.............................................................................................. 3
Aprovizionarea ...................................................................................................... 4
Pregătirea simulării..........................................................................................…... 5
Cod ...............................................................................................................….......8
Bibliografie ..........................................................................……………………………….12
Enunțarea problemei
Firma Nivea dorește să stabilească care este varianta optimă de stocare a unui nou
produs din gama geluri de dus astfel încât să asigure o aprovizionare eficientă și care să
satisfacă nevoia clienților (cererea) și să aibă un cost cât mai scăzut.
Deoarece pe piață există foarte multe firme concurente care ofera același tip de
gel de dus, mai exact gel de dus pentru par ce contine provitamina B5, folosită adesea
pentru echilibrarea nivelului de hidratare al parului si ingrosarea acetuia. Managerul
companiei a decis să facă un studiu de piață din care să reiasă cam câte persoane folosesc
gel de dus marca Nivea și implicit pe cel cu provitamina B5 pentru a-și da seama care
este cantitatea optima de stocare și la câte zile trebuie sa fie stocată marfa pentru a
necesita costuri cât mai mici.
În urma studiului de piață s-a stabilit faptuul că cererea este o variabilă aleatoare
cu distribuție cunoscută. De asemenea, se cunoaște și faptul că durata de la lansarea
comenzii pâmă la sosirea produselor este o variabila aleatoare, deoarece în funcție de
numărul de produse cerute, timpul de distibuție diferă.
Orizontul simulării pentru care s-a stabilit urmărirea cererii este de 30 de zile .
3
Aprovizionarea
Costul de stocare=3lei/produs/zi
Costul de penalizare=5lei/produs/zi
Produse comandate: 70
4
Pregătirea simulării
Pentru a putea realiza simularea avem nevoie să generăm un șir de numere
pseudoaleatoare.
Vom calcula intervalele atât de la cerere cat și de la durata de lansare a comenzii
pentru a încadra numerele pseudoaleatoare și a stabili care sunt valorile optime pentru
fiecare.
Fiecare variabilă aleatoare are propriul șir de numere peseudoaleatoare.
5
Simularea propriu-zisă
Strategia prezentată mai sus a fost implementată în limbajul de programare C++, în
vederea obținerii unor rezultate representative.
Pentru că în limbajul de programare variabilele nu pot fi descrise pe larg, este necesară o
codificare a acestora, astfel variabilele folosite în implementarea programului sunt
următoarele :
pd[100], pt[100] = vectorii probabilităților asociate valorilor discrete ale celor două
variabile.
6
Rezultate din consola Visual
studio 2017
7
Rezultate daca aprovizionarea se face la 3 zile:
Dupa 1000 de simulări, observăm că a 3-a variantă este cea mai benefică, deoarece are cel ma
mic cost mediu si totodata cel mai mic cost minim.
Consider ca, managerul trebuie să adopte o politică prin care aprovizionearea sa se faca o
dată la 7 zile pentru a reduce costurile si a maximiza profitul.
Cod
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
double aleator()
{ 8
return (rand()%100);
}
int main()
{
long m;
int nr_lans, cant_s,stoc_i;
int t[100],d[100],total_c,aprov,n;
float pd[100], pt[100],ca, cs, cp,cl;
int i,j,s,r,demand,time,save_time,q;
float v_ca,v_cs,v_cl, v_cp,ct,ctm,minim;
double r1,r2;
/* nr_lans=timp de lansare
t=vector timpi de lansare
cant_s=cantitate ceruta/zi
d=cererea
pd,pt= probabilitati,
aprov per aproviz,
ca,cs,cp,cs= costurile de productie,
m=nr simulari,
n=timp
ct=cost total pe zi,
ctm=mediu */
printf("Nr simulari: ");
scanf("%d",&m);
printf("Nr de cereri: ");
scanf("%d",&cant_s);
printf("Nr de timpi de lansare: ");
scanf("%d",&nr_lans);
printf("Cost de achizitie: ");
scanf("%f",&ca);
printf("Cost de stocare: ");
scanf("%f",&cs);
printf("Cost de penalizare: ");
scanf("%f",&cp);
printf("Cost de lansare comanda: ");
scanf("%f",&cl);
printf("Stoc initial: ");
scanf("%d",&stoc_i);
printf("Nr de produse comandate: ");
scanf("%d",&total_c);
printf("Perioada de simulare(nr zile!): ");
scanf("%d",&n);
printf("Perioada de timp la care se face aprovizionarea: ");
scanf("%d",&aprov);
for(i=0;i<cant_s;i++)
{
printf("\n");
printf("Cererea %d: ",i+1);
scanf("%d",&d[i]);
printf("Probabilitatea cererii %d: ",i+1);
scanf("%f",&pd[i]);
printf("\n");
}
for(i=0;i<nr_lans;i++)
{
printf("\n");
printf("Timpul de la lansare pana la sosire %d: ",i+1);
scanf("%d",&t[i]);
printf("Probabilitatea duratei comandenzii %d: ",i+1);
scanf("%f",&pt[i]);
printf("\n");
}
for(i=1;i<cant_s-1;i++)
pd[i]=pd[i]+pd[i-1];
pd[cant_s-1]=100;
for(i=1;i<nr_lans-1;i++)
pt[i]=pt[i]+pt[i-1];
pt[nr_lans-1]=100;
printf("Cantitatea ceruta este: \n");
for(i=0;i<cant_s;i++)
printf("%d %f\n",d[i],pd[i]);
printf("\n");
printf("Probabilitatea cererii: \n");
for(i=0;i<nr_lans;i++)
printf("%d %f\n",t[i],pt[i]);
ctm=0;
for(i=0;i<m;i++)
{ s=stoc_i; ct=0;
for(r=1;r<n;r++)
{
r1=aleator();
for(j=0;j<cant_s;j++)
if(r1< pd[0]) demand=d[0];
else
if(r1>=pd[j]&&r1<pd[j+1])
demand=d[j+1];
if(s>demand)
{
v_cs=cs;
ct=ct+v_cs*s;
v_cp=0;
s=s-demand;
}
else{
v_cp=cp;
v_cs=cs;
ct=ct+s*v_cs+(demand-s)*v_cp;
s=0;
}
r2=aleator();
for(j=0;j<nr_lans;j++)
if(r2<pt[0]) time=t[0];
else if(r2>=pt[j]&&r2<pt[j+1])
time=t[j+1];
if(r%aprov==0)
{
v_ca=ca;
v_cl=cl;
ct=ct+total_c*v_ca+v_cl;
save_time=r;
}
else
{ v_cl=0;
v_ca=0;
}
if(r==save_time+time)
s=s+total_c;
printf("\n");
if(i==0)
{
printf("Ziua: %d", r);
printf("Stoc: %3f", s);
printf("Numarul aleator stoc: %3f", r1);
printf("Cererea: %3f", demand);
printf("Numarul aleator cerere: %3f", r2);
printf("Numarul de zile: %3f", time);
printf("Cost total: %3f", ct);
printf("\n");
}
}
if(i==0)
minim=ct;
else
if(ct<minim)
minim=ct;
ctm=ctm+ct;
}
printf("Rezultate dupa %d simulari: \n",m);
printf("Cost total mediu (RON): %3f\n", ctm/m);
printf("Costul minimim : %3f\n", minim);
}
Bibliografie
1) Algoritmi si tehnici de programare. Aplicatii -Cristian Razvan Uscatu, Catalina-Lucia
Cocianu, Marinela Mircea, Lorena Pocatilu -2015
2) http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=83&idb
3) https://www.nivea.com.au/advice/ingredients/provitamin-b5
12