Sunteți pe pagina 1din 12

Simularea poceselor economice

-gestiunea stocurilor de produse


finite prin metoda simulării-

Student: Dina Valentina

Grupa:1035

Profesor: Galupa Angela


Cuprins
Enunțarea problemei ............................................................................................................................... 2
Aprovizionarea ........................................................................................................................................ 2
Pregătirea simulării ................................................................................................................................ 3
Simularea propriu-zisă ............................................................................................................................ 4
Cod .......................................................................................................................................................... 6
Bibliografie............................................................................................................................................ 11

1
Enunțarea problemei

Firma Dove dorește să stabilească care este varianta optimă de stocare a unui nou produs din
gama cosmetice 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 cremă,
mai exact cremă ce contine coenzima Q10, folosită adesea pentru combaterea ridurilor.
Managerul companiei a decis să facă un studiu de piață din care să reiasă cam câte persoane
folosesc creme marca Dove și implicit pe cea cu Q10 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 .

Aprovizionarea

În urma analizei procesului de aprovizionare s-au stabilit urmatoarele detalii:

 Cost de achiziție=8lei/produs
 Costul de lansare=15 lei/comandă
 Costul de stocare=3lei/produs/zi
 Costul de penalizare=5lei/produs/zi
 Cererile ce nu pot fi satisfacute din stocul curent vor fi penalizate.
 Se urmărește realizarea unui cost cât mai mic.
 Orizontul de simulare este de 30 de zile.
 Comanda de reaprovizionare se face în momentul în care pe stoc mai ramane un
anumit număr de produse.
 Stocul inițial=50 produse
 Comanda se plasează chiar din prima zi.
 Produse comandate: 70

2
Identificăm variabilele aleatoare și valorile acestora:

Cerera zilnică (produse) Probabilitatea


30 0.05
45 0.25
65 0.15
90 0.10
100 0.30
150 0.15

Durata de lansare a comenzii Probabilitatea


(zile)
1 0.5

2 0.35

3 0.15

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 cît ș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.

Cererea zilnică Qi Probabilitatea Pi ∑Probabilități Intervalul [Pi-1, Pi)


(produse)
30 0.05 0.05 [0, 0.05)
45 0.25 0.30 [0.05, 0.30)
60 0.15 0.45 [0.30, 0.45)
90 0.10 0.55 [0.45, 0.55)
100 0.30 0.85 [0.55, 0.85)
150 0.15 1 [0.85, 1)

3
Durata Di (zile) Probabilitatea Pi ∑Probabilități Intervalul [Pi-1, Pi)
1 0.5 0.5 [0, 0.5)
2 0.35 0.85 [0.5, 0.85)
3 0.15 1 [0.85, 1)

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 :
 nr_lans = numărul de timpi de la lansarea comenzii pana la sosirea acesteia.
 t[100] = vectorul valorilor timpilor de la lansarea comenzii pana la sosirea acesteia
 cant_s = cantitatea de substanță cerută pe zi
 d[100] = vectorul valorilor cererii
 pd[100], pt[100] = vectorii probabilităților asociate valorilor discrete ale celor
două
 variabile.
 total_c = total produse ce sunt comandate când se lansează o comandă
 aprov = perioada de timp la care se face aprovizionarea
 ca, cs, cp, cl = costurile de achiziție, de stocare,de penalizare și de lansare comandă
 stoc_i = stocul inițial
 m = numărul de simulări care se dorește a fi efectuate
 n = orizontul de timp simulat, în cazul nostru 30 de zile
 tt = costul total pe o zi din orizontul de calcul
 ttm = costul total mediu.

4
Rezultatele obținute in urma programului visual:

Rezultatele aprovizionării dupa 3 zile:

Rezultatele aprovizionării dupa 5 zile

5
Rezultatele aprovizionarii dupa 7 zile:

În urma 2000 de simulări, observăm că a 3-a variantă este cea mai benefică, deoarece
are cel ma mic cost mediu.

În concluzie, managerul trebuie să adoptae o politică de aprovizionare prin care


aprovizionează o dată la 7 zile pentru a avea un cost cât mai mic.

Cod

#include<stdlib.h>
#include<stdio.h>
#include<math.h>

double aleator()
{
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,tt,ttm,minim;
double r1,r2;

6
/* 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
tt=cost total pe zi,
ttm=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: ");

7
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];

8
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]);
ttm=0;
for(i=0;i<m;i++)
{ s=stoc_i; tt=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;
tt=tt+v_cs*s;
v_cp=0;

9
s=s-demand;
}
else{
v_cp=cp;
v_cs=cs;
tt=tt+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;
tt=tt+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)
{

10
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", tt);
printf("\n");
}
}
if(i==0)
minim=tt;
else
if(tt<minim)
minim=tt;
ttm=ttm+tt;
}
printf("Rezultate dupa %d simulari: \n",m);
printf("Cost total mediu (RON): %3f\n", ttm/m);
printf("Costul minimim : %3f\n", minim);

Bibliografie
 https://www.google.ro/?gws_rd=ssl
 http://www.dove.ro/ro/
 http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=83&idb=
 https://importantinfoblog.wordpress.com/lista-substantelor-toxice-din-cosmetice/

11

S-ar putea să vă placă și