barabas camelia simulare
Post on 16-Jul-2015
134 Views
Preview:
TRANSCRIPT
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 1/55
ACADEMIA DE STUDII ECONOMICE DIN BUCUREŞTI
FACULTATEA CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ
SIMULAREA ACTIVITĂŢII DE STOCARE ÎN FIRMA MOB-
INSTALL
STUDENT: BARABAŞ CAMELIA, GR.1035
BUCUREŞTI
2011
1
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 2/55
CUPRINS
I. IntroducereCaracteristici generale:
Societatea Mob-Install S.R.L a fost înfiinţatǎ în anul 2006, ca urmare a unei cereri crescute
în domeniul lucrărilor de instalaţii de încălzire, de aer condiţionat, mobilă şi alte lucrări de
instalaţii pentru construcţii. Primii clienţi ai firmei Mob Install S.R.L au semnat şi au beneficiat de
serviciile acesteia încă din toamna anului 2006. Printre aceştia se numără atât persoane fizice cât şi
societăţi comerciale, spitale, şcoli. În perioada 2008-2010 aceştia şi-au extins numărul de
parteneri , iar echipa s-a mărit şi s-au mutat în centrul oraşului Alexandria. Mob Install S.R.L. a participat la conferinţe, târguri, expoziţii şi licitaţii din toată ţara în fiecare an de la înfiinţare.
Furnizorii întreprinderii:
Printre aceştia se numără: Bendek & CO Târgu Mureş, Clima Zone Satu Mare, Kontex
Alexandria, Petrom Alexandria, Regency Company Bucureşti, Arabesque Bucureşti, QFG Proiect
Braşov etc.
2
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 3/55
Beneficiarii întreprinderii:
Utilizatorii produselor firmei sunt: persoane fizice şi juridice, şcoli, spitale, grădiniţe,
restaurante , primǎrii etc.
Domeniul principal în care societatea îşi desfăşoară activitatea este de lucrări de instalaţii
electrice şi tehnico-sanitare şi alte lucrări de instalaţii pentru construcţii-CAEN 432. Activitatea
principală a acesteia este de 4322-lucrǎri de instalaţii sanitare, de încălzire şi de aer condiţionat.
Societatea are în dotare toate echipamentele şi utilajele necesare desfăşurării activităţii, printre care
şi diverse depozite de mărfuri. Unul dintre depozite, pe care îl vom lua în considerare în continuare
este depozitul de instalaţii pentru încălzire cum ar fi centrale termice, cazane pe lemne etc.
II. Formularea problemei
II.1 IpotezeAvând în vedere faptul că scopul menţinerii unui stoc este acela de a satisface orice cerere
în totalitate, în acest caz, compania Mob-Install trebuie să satisfacă comenzile către clienţi pentru
instalaţiile de încălzire. Aşadar, problema care apare este legată de formarea şi refacerea stocului
de instalaţii termice, dar şi minimizarea costurilor legate de finanţarea şi menţinerea acestui stoc
(costuri de lansare a comenzii, costuri de stocare, costuri de penalizare etc.).
Principalele concepte care se utilizează într-o problemă de gestiune a stocurilor sunt
următoarele: cantitatea intrată în stoc, Qi; frecvenţa sau momentul achiziţiei; cererea, r; cantitatealivrată q, intervalul de gestiune, θ; termenul de livrare τ; perioada de gestiune, costul de lansare a
comenzii, Cl; costul de stocare, Cs, costul de penalizare Cp etc.
În vederea obţinerii informaţiilor necesare cum ar fi costurile, cererea, cantitatea intrată în
stoc, durata de reaprovizionare etc. am studiat câteva rapoarte de contabilitate şi marketing ale
firmei, din care am dedus urmatoarele:
3
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 4/55
Figura 1: Stocurile în perioada 2006-2010
Sursa: prelucrări proprii in Excel pe baza raportului de contabilitate al firmei
În Figura 1 de mai sus, este prezentată structura şi valoarea stocurilor din cadrul firmei
Mob-Install, de la înfiinţare şi până în anul 2010 (pe o perioadă de 5 ani). Pe lângă valoarea în lei a
celor trei componente (mărfuri, materii prime şi materiale), am calculat şi procentul fiecărei
categorii din total. Observăm că profilul principal al firmei este achiziţionarea de bunuri (în acest
caz, instalaţii termice) în scopul revânzării, deoarece procentul valorii mărfurilor în total este de
70%-80% pe toată perioada analizată. În schimb, materiile prime şi materialele deţin un procent de
doar 12%-22% din total.
În ceea ce priveşte evoluţia stocurilor în perioada 2006-2010, aceasta este prezentată în
Figura 2 de mai jos. Observăm că valoarea acestora a crescut de la un an la altul, (cu excepţia
anului 2009), atingând maximul în anul 2010 (244780 lei). Faptul că valoarea stocurilor în anul2009 a scăzut, este probabil din cauză că efectele crizei au fost simţite la nivelul firmei prin
intermediul evoluţiei stocurilor.
Figura 2: Evoluţia stocurilor în perioada 2006-2010
Sursa: Prelucrări proprii in Excel pe baza datelor din Figura 1
Figura 3: Repartiţia cererii
Sursa: Prelucrări proprii în Excel pe baza observaţiilor
4
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 5/55
În urma acestor observaţii, împreună cu analiza datelor culese în timp privind activitatea
firmei, am constatat că cererea zilnică de instalaţii de încălzire este o variabilă aleatoare normală N
de medie m=5 instalaţii şi dispersie =2σ buc., notată r N(5,2)∿ .
Durata de reaprovizionare τ, reprezintă timpul între momentul lansării unei comenzi şi
primirea ei. Am constatat că aceasta este o variabilă aleatoare, având următoarea distribuţie:
:40.2 80.15 120.15 160.3 200.2τ
În ceea ce priveşte sistemul de costuri, acesta este alcătuit din următoarele:
Costul de lansare a comenzii, care este fix indiferent de cantitatea comandată:
Cl=50 lei/comandă.
Având în vedere faptul că cererea clienţilor privind acest produs variază, sunt posibile
următoarele două situaţii:
a) cererea este satisfacută, şi anume, cantitatea din stoc este mai mare decât cererea
pentru acea zi, caz în care putem vorbi despre costul de stocare Cs=10 lei/buc./zi.
b) cererea este nesatisfacuta, caz în care cantitatea din stoc este mai mică decât cantitatea
solicitată de client, apare deci un cost de penalizare Cp=15 lei/buc./zi.
În continuare vor fi testate două variante de gestiune a stocului pentru a vedea care dintre
ele este mai bună, adică cea care minimizează cheltuielile. Cele două politici de aproviyionare sunturmătoarele:
I. Aprovizionarea se face cu o cantitate constantă Q0=15 buc. Stocul iniţial este
S0=20 de instalaţii de încălzire; durata de reaprovizionare este variabila aleatoare prezentată
anterior.
II. Aprovizionarea se face cu o cantitate constanta Q0=40 buc., iar stocul iniţial este
S0=30 de instalaţii de încălzire; durata de reaprovizionare este aceeaşi.
În continuare, trebuie precizate următoarele elemente:
• noua comandă se lansează atunci când nivelul stocului devine mai mic decât nivelul
stocului de siguranţă Si<C, iar cantitatea comandată va intra în stoc la sfârşitul perioadei de
aprovizionare care a fost generată.
5
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 6/55
• orizontul de simulare este de 30 de zile. Politica de aprovizionare descrisă mai sus
înseamnă că se lansează o nouă comandă de aprovizionare de volum Q atunci când nivelul stocului
pentru produs este mai mic sau egal decât nivelul critic al stocului C.
• cererea de instalaţii de încălzire se satisface la începutul fiecărei zile;
• cheltuielile zilnice de stocare se calculează pentru stocul rămas în ziua respectivă după
satisfacerea cererii;
Scopul acestei simulări este stabilirea unui stoc eficient de mărfuri şi determinarea
următoarelor elemente:
• perioada medie între două reaprovizionări sucessive;
• cererea medie zilnică calculată;
•
costul mediu de lansare calculat;• costul mediu de penalizare calculat;
• costul mediu de stocare calculat;
• media abaterii medii pătratică a cererii faţă de medie;
• media lotului optim de reaprovizionare calculat;
• nivelul critic mediu al stocului;
III. O altă politică de aprovizionare este luarea în considerare a unei comenzi speciale,
deşi în acest moment firma nu are în vedere această posibilitate. În continuare voi studia această
sugestie pentru a o putea compara cu politica curentă de aprovizionare a firmei şi a decide care din
ele este mai satisfăcătoare din punct de vedere al minimizării costurilor. Lansarea unei comenzi
speciale se face în cazul în care stocul nu acoperă cererea zilnică iar, ca urmare, apar unele costuri
suplimentare Csup=60 lei/buc.
Probabilitatea ca în ziua respectivă să se facă o comandă specială este p=0.2. Trebuie
însă, luat în considerare şi faptul că dacă nu există posibilitatea efectuării unei comenzi speciale,apar costurile de penalizare legate de nesatisfacerea cererii.
II.2 Pregătirea exerciţiului de simulare
6
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 7/55
Primul pas în pregătirea simulării îl reprezintă generarea numerelor aleatoare. Deoarece s-a
constatat faptul că cererea saptamanală Qi şi durata τ pot lua diferite valori, voi apela la tehnica de
simulare prin generarea de numere aleatoare.
Deoarece cererea urmează o repartiţie N∿(5,2), am generat cu ajutorul unui cod în Pascal
1000 de numere aleatoare.
uses crt;
var x,y:real;
n:integer;
i:longint;
f:text;
function generareq(a,b:real):integer;
var suma,unif:real;k:integer;
ok:boolean;
begin
repeat
ok:=true;
suma:=0;
for k:=1 to 12 do beginunif:=random(1000)/1000;
suma:=suma+unif;
end;
suma:=suma-6;
suma:=sqrt(b)*suma+a;
if (suma>(a+b)) or (suma<(a-b)) then ok:=false;
until ok;
generareq:=round(suma);
end;
begin
write('Valoarea medie:');readln(x);
write('Dispersia:');readln(y);
7
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 8/55
write('Numarul de valori generate:');readln(n);
assign(f,'valori_generate.txt');
rewrite(f);
for i:=1 to n do begin
write(generareq(x,y),' ');
write(f,generareq(x,y),' ');
end;
close(f);
end.
În urma rulării acestuia, am introdus conform figurii de mai jos valoarea medie 5, dispersia
2 şi numărul de valori generate 1000.
Rezultatele sunt următoarele:
8
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 9/55
Figura 5: Numerele generate aleator
Sursa: Prelucrări proprii în Turbo Pascal
Observăm că programul a generat 1000 de numere aleatoare pentru cererea de instalaţii
termice de repartiţie normală N(5,2).
În ceea ce priveşte durata de reaprovizionare, în funcţie de intervalul de probabilitate în
care acestea se încadrează, se va considera durata de reaprovizionare respectivă. Se asociază
intervale de numere aleatoare fiecărei valori a variabilei probabiliste. Este necesară generarea unuişir de numere aleatoare uniform distribuite în intervalul [0,1] pentru simularea duratei de
reaprovizionare.
:40.2 80.15 120.15 160.3 200.2τ
Tabelul 1
Durata (zile)
τ
Probabilitate
Probabilităţi
cumulate:
Intervalul
9
Obj100
Obj101
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 10/55
4 0.2 0.2 [0-0.2)
8 0.15 0.35 [0.2- 0.35)
12 0.15 0.50 [0.35-0.5)
16 0.3 0.8 [0.5-0.8)20 0.2 1 [0.8-1]
Sursa: Prelucrări proprii
Cu ajutorul unui generator de numere aleatoare, am obţinut 20 de numere din intervalul
[0;1], în funcţie de care voi considera valoarea înregistrată pentru durata de reaprovizionare τ. Cu
ajutorul TP, şi cu următorul cod, am generat numere aleatoare în intervalul [0;1].
Figura 6: Codul Pascal pentru generarea de numere
Sursa: prelucrări proprii în TP.
Rezultatele sunt următoarele:
În următorul tabel Excel, se observă în linia Function expresia funcţiei IF care a fost
utilizată pentru a se stabili durata de reaprovizonare, în funcţie de numărul aleator generat, pe baza
intervalelor prezentate mai sus (Tabelul 1).
10
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 11/55
Tabelul 2
Sursa: Prelucrări proprii în Excel
În ceea ce priveşte ce de-a treia politică de aprovizionare propusă de mine şi anume, luarea
în considerare a unei comenzi speciale, este nevoie de generarea unui şir de numere aleatoare în
intervalul [0,1] pentru a simula efectuarea sau neefectuarea comenzii speciale. Probabilitatea
estimată în functie de care se decide acest lucru este p=0.2.Aşadar, tot cu ajutorul TP, am generat 100 de numere in intervalul [0,1].
11
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 12/55
Figura 7: Numere generate aleator pentru comanda specială
III. Lista variabilelor:
Simularea se face pe un orizont de simulare de 30 de zile, iar lista variabilelor este
următoarea:
Ø nc-numărul de cicluri de simulare;
Ø cl -costul unitar de lansare;
Ø cs-costul unitar de stocare;
Ø cp-costul unitar de penalizare;
Ø şi -stocul iniţial;
Ø c-stocul de siguranţă (nivelul critic iniţial al stocului);
Ø –lotul de aprovizionare iniţial;
Ø k -indicele ciclurilor de simulare;
Ø mt -perioada medie între două reaprovizionări successive;
Ø mq-cererea medie zilnică;
Ø sqp-abaterea medie pătratică a cererii faţă de medie;
Ø pr -probabilitatea ruperii de stoc;
Ø mcl -costul mediu de lansare;
12
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 13/55
Ø mcs-costul mediu de stocare;
Ø mcp-costul mediu de penalizare;
Ø qom-lotul optim de reaprovizionare;
Ø ac-nivelul critic al stocului;
Ø tt -timpul cumulat al perioadelor de reaprovizionare într-un ciclu de simulare;
Ø t -incrementul de timp pentru o perioadă de reaprovizionare;
Ø t2-perioada dintre două reaprovizionări sucessive;
Ø teta-orizontul de simulare (30 de zile);
Ø l -indicele numărului de reaprovizionări pe perioada teta într-un ciclu de simulare;
Ø p-indicele numărului de ruperi de stoc dintrun ciclu de simulare;Ø q-nivelul cererii;
Ø ts-suma stocurilor pe unitatea de timp;
Ø smq-suma mediilor cererilor din fiecare perioada de reaprovizionare ;
Ø sq-suma cererilor pe perioada ;
Ø tna-suma necesarelor suplimentare de reaprovizionare;
Ø na-necesarul suplimentar de reaprovizionare pe perioada ;
Ø tcs-totalul cheltuielilor de stocare;
Ø tcp-totalul cheltuielilor de penalizare;
Ø tcl -totalul cheltuielilor de lansare;
Ø msq-cererea medie pe perioada ;
Ø ft -perioada medie optimă între două reaprovizionări successive;
Ø fq-cererea medie zilnică calculată;
Ø fcl -costul mediu de lansare calculat;
13
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 14/55
Ø fcp-costul mediu de penalizare calculat;
Ø fcs-costul mediu de stocare calculat;
Ø sqf -media abaterii medii pătratice calculată a cererii;
Ø qof-media lotului optim de reaprovizionare calculată;
Ø fac-nivelul critic mediu al stocului;
Ø fpr -probabilitatea medie a ruperii stocului;
Ø rest -perioada rămasă din teta;
Ø rând, vb1, vb, ch, s1, s2, ok, z, x -alte variabile ajutătoare;
IV. Modelul de simulareÎn continuare, este prezentată schema logică a problemei de simulare a gestiunii stocurilor
pentru firma Mob-Install.
14
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 15/55
15
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 16/55
16
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 17/55
V. Codul sursă al programului
uses graph,crt,dos;
const teta=50;
type
vector=array[1..1000] of real;
var
z,x,q,rand,i,k,nc,tt,t,t2,rest,l,p:integer;
s1,s2,ft,cl,cs,cp,si,c,ts,smq,sq,tna,na,fq,fcl,fcp,fcs,sqf,q0,qof,fac,fpr,sp:real;
vbl,vb:boolean;
tcl,tcs,tcp,pr,qom,msq,mt,mq,sqp,mcl,mcp,mcs,ac:vector;
ch:char;
f:text;
grDriver:integer;
grMode:integer;
ErrCode:integer;
17
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 18/55
{Procedura de citire numar_cicluri_simulare si date_initiale}
procedure citeste;
begin
clrscr;
gotoxy(18,5);
writeln(' SIMULAREA GESTIUNII UNUI STOC');
writeln(f,' SIMULAREA GESTIUNII UNUI STOC');
gotoxy(18,6);
writeln('--------------------------------------');
writeln(f,'--------------------------------------');
write('Numarul de cicluri de simulare(<=1000):');readln(nc);gotoxy(18,11);
writeln('DATE INITIALE');
gotoxy(18,12);
write('Costul unitar de lansare comanda:');readln(cl);
gotoxy(18,13);
write('Costul unitar de stocare:');readln(cs);
gotoxy(18,14);write('Costul unitar de penalizare:');readln(cp);
gotoxy(18,15);
write('Stocul initial:');readln(si);
gotoxy(18,16);
write('Stocul de siguranta:');readln(c);
gotoxy(18,17);
write('Lotul de aprovizionare:');readln(q0);
gotoxy(18,18);
write('Cererea medie:');readln(z);
gotoxy(18,19);
write('Dispersia cererii:');readln(x);
ch:=readkey;
18
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 19/55
end;
{Procedura de generare nivele_cerere}
function generareq(a,b:real):integer;
var suma,unif:real;k:integer;
ok:boolean;
begin
repeat
ok:=true;
suma:=0;
for k:=1 to 12 do begin
unif:=random(1000)/1000;
suma:=suma+unif;end;
suma:=suma-6;
suma:=sqrt(b)*suma+a;
generareq:=round(suma);
q:=round(suma);
if (suma>a+b) or (suma<a-b) then ok:=false;
until ok;end;
{procedura de generare perioade de timp intre 2 aprovizionari succesive}
procedure generare_t2(var t2:integer);
var al:real;
begin
al:=random(1000)/1000;
if (al>=0) and (al<0.2) then t2:=4;
if (al>=0.2) and (al<0.6) then t2:=8;
if (al>=0.6) and (al<0.75) then t2:=12;
if (al>=0.75) and (al<0.9) then t2:=16;
if (al>=0.9) and (al<=1) then t2:=20;
end;
19
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 20/55
{Procedura scriere cap tabel}
procedure cap_tabel;
begin
gotoxy(6,4);
write(' REZULTATELE PT. FIECARE CICLU DE SIMULARE');
gotoxy(6,5);
write(' ------------------------------------------');
gotoxy(1,7);
writeln('NOTATII:');
writeln('Ciclu de simulare K');
writeln('Perioada medie intre 2 reaprovizionari MT(K)');writeln('Cererea medie zilnica MQ(K)');
writeln('Abaterea medie patratica a cererii SQP(K)');
writeln('Probabilitatea ruperii de stoc PR(K)');
writeln('Costul mediu de lansare comanda MCL(K)');
writeln('Costul mediu de penalizare MCP(K)');
writeln('Costul mediu de stocare MCS(K)');
writeln('Lotul optim de aprovizionare QOM(K)');writeln('Nivel critic al stocului AC(K)');
gotoxy(1,20);
write('=======================================================
====');
writeln('=================================');
gotoxy(1,19);
write(' K MT(K) MQ(K) SQP(K) PR(K) MCL(K) ');
writeln('MCP(K) MCS(K) QOM(K) AC(K)');
gotoxy(6,4);
write(f,' REZULTATELE PT. FIECARE CICLU DE SIMULARE');
20
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 21/55
gotoxy(6,5);
write(f,' ------------------------------------------');
gotoxy(1,7);
writeln(f,'NOTATII:');
writeln(f,'Ciclu de simulare K');
writeln(f,'Perioada medie intre 2 reaprovizionari MT(K)');
writeln(f,'Cererea medie zilnica MQ(K)');
writeln(f,'Abaterea medie patratica a cererii SQP(K)');
writeln(f,'Probabilitatea ruperii de stoc PR(K)');
writeln(f,'Costul mediu de lansare comanda MCL(K)');
writeln(f,'Costul mediu de penalizare MCP(K)');
writeln(f,'Costul mediu de stocare MCS(K)');writeln(f,'Lotul optim de aprovizionare QOM(K)');
writeln(f,'Nivel critic al stocului AC(K)');
gotoxy(1,20);
write(f,'======================================================
=====');
writeln(f,'=================================');
gotoxy(1,19);write(f,' K MT(K) MQ(K) SQP(K) PR(K) MCL(K) ');
writeln(f,'MCP(K) MCS(K) QOM(K) AC(K)');
rand:=19;
gotoxy(1,21);
end;
{Procedura scriere cap tabel si afisare rezultate fiecare ciclu - continuare}
procedure cap_tabel_cont;
begin
gotoxy(6,4);
21
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 22/55
write(' REZULTATELE PT. FIECARE CICLU DE SIMULARE');
gotoxy(6,5);
write(' ------------------------------------------');
gotoxy(1,7);
writeln('NOTATII:');
writeln('Ciclu de simulare K');
writeln('Perioada medie intre 2 reaprovizionari MT(K)');
writeln('Cererea medie zilnica MQ(K)');
writeln('Abaterea medie patratica a cererii SQP(K)');
writeln('Probabilitatea ruperii de stoc PR(K)');
writeln('Costul mediu de lansare comanda MCL(K)');
writeln('Costul mediu de penalizare MCP(K)');writeln('Costul mediu de stocare MCS(K)');
writeln('Lotul optim de aprovizionare QOM(K)');
writeln('Nivel critic al stocului AC(K)');
gotoxy(1,20);
write('=======================================================
====');
writeln('=================================');gotoxy(1,19);
write(' K MT(K) MQ(K) SQP(K) PR(K) MCL(K) ');
writeln('MCP(K) MCS(K) QOM(K) AC(K)');
gotoxy(1,20);
write('=======================================================
====');
writeln('=================================');
gotoxy(1,19);
write(' K MT(K) MQ(K) SQP(K) PR(K) MCL(K) ');
writeln('MCP(K) MCS(K) QOM(K) AC(K)');
rand:=19;
gotoxy(1,21);
22
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 23/55
end;
{Procedura de afisare a rezultatelor finale}
procedure rez_finale;
begin
gotoxy(10,5);
writeln('**************************************************************
****');
gotoxy(10,7);
writeln(' R E Z U L T A T E F I N A L E');
gotoxy(10,8);
writeln(' pentru ',nc:2,'cicluri de simulare');gotoxy(10,10);
writeln('**************************************************************
***');
gotoxy(10,11);
writeln(' Perioada optima intre 2 reaprovizionari : ',ft:9:4);
gotoxy(10,12);
writeln(' Cererea medie zilnica calculata : ',fq:9:4);gotoxy(10,13);
writeln(' Costul mediu de lansare calculat : ',fcl:9:4);
gotoxy(10,14);
writeln(' Costul mediu de penalizare calculat : ',fcp:9:4);
gotoxy(10,15);
writeln(' Costul mediu de stocare calculat : ',fcs:9:4);
gotoxy(10,16);
writeln(' Media abaterii medie patratice : ',sqf:9:4);
gotoxy(10,17);
writeln(' Media lotului optim de aprovizionare : ',qof:9:4);
gotoxy(10,18);
writeln(' Nivel critic mediu al stocului : ',fac:9:4);
23
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 24/55
gotoxy(10,19);
writeln(' Probabilitatea medie a ruperii de stoc : ',fpr:9:4);
gotoxy(10,20);
writeln('**************************************************************
***');
for i:=6 to 20 do begin
gotoxy(10,i);
writeln('*');
gotoxy(75,i);
writeln('*');
end;
gotoxy(10,8);writeln(f,'************************************************************
***');
gotoxy(10,10);
writeln(f,' R E Z U L T A T E F I N A L E');
gotoxy(10,11);
writeln(f,' pentru ',nc:2,'cicluri de simulare');
gotoxy(10,13);writeln(f,'************************************************************
***');
gotoxy(10,14);
writeln(f,' Perioada optima intre 2 reaprovizionari : ',ft:9:4);
gotoxy(10,15);
writeln(f,' Cererea medie zilnica calculata : ',fq:9:4);
gotoxy(10,16);
writeln(f,' Costul mediu de lansare calculat : ',fcl:9:4);
gotoxy(10,17);
writeln(f,' Costul mediu de penalizare calculat : ',fcp:9:4);
gotoxy(10,18);
writeln(f,' Costul mediu de stocare calculat : ',fcs:9:4);
24
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 25/55
gotoxy(10,19);
writeln(f,' Media abaterii medie patratice : ',sqf:9:4);
gotoxy(10,20);
writeln(f,' Media lotului optim de aprovizionare : ',qof:9:4);
gotoxy(10,21);
writeln(f,' Nivel critic mediu al stocului : ',fac:9:4);
gotoxy(10,22);
writeln(f,' Probabilitatea medie a ruperii de stoc : ',fpr:9:4);
gotoxy(10,23);
writeln(f,'************************************************************
***');
end;
{Procedura 3}
procedure proced3;
begin
rest:=teta-tt;
if rest=0 then vb:=falseelse
begin
generare_t2(t2);
if t2>rest then t2:=rest;
l:=l+1;
tt:=tt+t2;
sq:=0;na:=0;
for t:=1 to t2 do begin
generareq(z,x);
sq:=sq+q;
si:=si-q;
if si>c then begin
25
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 26/55
tcs[k]:=tcs[k]+cs*si;
ts:=ts+si;
end
else begin
tcp[k]:=tcp[k]+cp*(c-si);
na:=na+(c-si);
p:=p+1;
if si>0 then tcs[k]:=tcs[k]+ts*si;
end;
end;
tcl[k]:=tcl[k]+cl*(na+q0);
si:=si+na+q0;tna:=tna+na;
msq[l]:=sq/t2;
smq:=smq+msq[l];
end;
end;
{procedura 2}
procedure proced2;
begin
tcl[k]:=0;tcs[k]:=0; tcp[k]:=0;pr[k]:=0;tt:=0;ts:=0;smq:=0;
l:=0;sp:=0;p:=0;tna:=0;
vb:=true;
while vb do proced3;
mq[k]:=0;
mt[k]:=tt/l;
s1:=0;
for i:=1 to l do begin
26
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 27/55
mq[k]:=mq[k]+msq[i]/l;
s1:=s1+msq[i]/l;
end;
s2:=0;
for i:=1 to l do s2:=s2+sqr(msq[i]-mq[k]);
sqp[k]:=sqrt(s2/l);
pr[k]:=p/teta;
if tna+q0*l<>0 then mcl[k]:=tcl[k]/(tna+q0*l)
else mcl[k]:=0;
if tna<>0 then mcp[k]:=tcp[k]/tna
else mcp[k]:=0;
if ts<>0 then mcs[k]:=tcs[k]/tselse mcs[k]:=0;
if (mcs[k]*mcp[k]<>0) then begin
s1:=2*mq[k]*mt[k]*mcl[k]*(mcs[k]+mcp[k])/(mcs[k]*mcp[k]);
if s1<0 then qom[k]:=sqrt(-s1)
else qom[k]:=sqrt(s1);
end
else qom[k]:=0;ac[k]:=mt[k]*mq[k]+pr[k]*sqp[k]*sqrt(mt[k]);
write(k:2,' ',mt[k]:5:2,' ',mq[k]:7:2,' ',sqp[k]:7:2);
write(' ',pr[k]:3:2,' ',mcl[k]:7:2,' ',mcp[k]:7:2);
writeln(' ',mcs[k]:7:2,' ',qom[k]:8:2,' ',ac[k]:7:2);
write(f,k:2,' ',mt[k]:5:2,' ',mq[k]:7:2,' ',sqp[k]:7:2);
write(f,' ',pr[k]:3:2,' ',mcl[k]:7:2,' ',mcp[k]:7:2);
writeln(f,' ',mcs[k]:7:2,' ',qom[k]:8:2,' ',ac[k]:7:2);
rand:=rand+1;
if (rand=24) then begin
ch:=readkey;
27
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 28/55
clrscr;
cap_tabel_cont;
end;
end;
{procedura 1}
procedure proced1;
begin
citeste;
randomize;
ft:=0;fq:=0;fcp:=0;fcs:=0;sqf:=0;qof:=0;fac:=0;fpr:=0;
rand:=0;clrscr;
cap_tabel;
for k:=1 to nc do proced2;
ch:=readkey;
for k:=1 to nc do begin
ft:=ft+mt[k]/nc;
fq:=fq+mq[k]/nc;fcl:=fcl+mcl[k]/nc;
fcp:=fcp+mcp[k]/nc;
fcs:=fcs+mcs[k]/nc;
sqf:=sqf+sqp[k]/nc;
qof:=qof+qom[k]/nc;
fac:=fac+ac[k]/nc;
fpr:=fpr+pr[k]/nc;
end;
clrscr;
rez_finale;
end;
28
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 29/55
{PROGRAMUL PRINCIPAL}
begin
grDriver:=Detect;
InitGraph(grDriver,grMode,' ');
ErrCode:=GraphResult;
if ErrCode=grOK then begin
setbkcolor(blue);
setcolor(yellow);
outtextxy(130,150,'SIMULARE-GESTIUNEA STOCULUI');
outtextxy(130,170,'--------------------');
outtextxy(230,190,'aplicat unui depozit');
outtextxy(230,210,'------------');readln;
restorecrtmode;
ch:=' ';
assign(f,'stoc.txt');
rewrite(f);
repeat proced1;
gotoxy(12,24);write('Doriti o noua simulare (D/N)?:');
readln(ch);
until (ch='n') or (ch='N');
setgraphmode(getgraphmode);
closegraph
end
else
WriteLn('Eroare la initializarea grafica:',GraphErrorMsg(ErrCode));
end.
În urma rulării în TP a codului de mai sus, apare următoarea fereastră în care introducem
datele iniţiale după cum urmează:
29
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 30/55
Figura 8: Introducerea datelor iniţiale
VI. Rezultate
VI.1 Simulare cu ajutorul Turbo Pascal Simularea primei politici de aprovizionare
În urma rulării programului pentru 1000 cicluri de simulare, rezultatele sunt puse în fisierul
stoc1.txt şi afişate în figura de mai jos:
30
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 31/55
Figura 9: Rezultatele pentru primele 30 de cicluri de simulare
Iteraţia 1:
Observăm în tabelul de mai sus că după primul ciclu de simulare, perioada medie între 2
reaprovizionări (MT(K)) rezultată este de 8.33 zile; cererea medie zilnică calculată (MQ(K)) după
prima iteraţie este 5.15 instalaţii termice; probabilitatea ruperii de stoc (PR(K)) este 0.3, costul
mediu de lansare a comenzii (MCL(K)) este 50, deoarece este tot timpul fix indiferent de cantitatea
comandată, costul mediu de penalizare (MCP(K)) este 15 lei; costul mediu de stocare (MCS(K))
pe parcursul celor 30 de zile este 13.67 lei; lotul optim de aprovizionare (QOM(K)) este 25 buc.
Iteraţia 2:
Pentru cea de-a doua iteraţie, a rezultat o perioadă medie de reaprovizionare de 10 zile;
cererea medie zilnică calculată rezultată este de 4.83 instalaţii; probabilitatea ruperii de stoc este
31
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 32/55
0.16; costul mediu de penalizare este tot 15 lei, costul mediu de stocare a crescut la 18 lei, iar lotul
optim de aprovizionare 24.29 buc.
Iteraţia 3:
După încă 30 de zile se simulare, au reieşit următoarele rezultate: perioada medie între 2
reaprovizionări de 10 zile, cererea medie zilnică calculată 5 zile, probabilitatea ruperii de stoc
0.12, costul mediu de penalizare este tot 15 lei, costul mediu de stocare este 14.76 lei, lotul optim
de aprovizionare 25 de buc.
În urma rulării programului pentru 1000 de cicluri de simulare, am obţinut rezultatele din
figura de mai jos:
Figura 10: Rezultatele medii finale dupa 1000 cicluri de simulare
Sursa: prelucrari proprii in TP
Pe baza acestor rezultate, putem spune că situaţia gestiunii stocului la depozitul de instalaţii
termice este favorabilă, activitatea depozitului putând fi îmbunătăţită prin reaprovizionarea la
intervale de 9-10 zile cu o cantitate de 16-17 instalaţii de încălzire, dată de media lotului optim de
reaprovizionare. În acest caz, costul mediu de penalizare calculat este de 58.6 lei, iar costul de
stocare de 13.29 lei. O soluţie ar fi încheierea unor contracte corespunzătoare cu furnizorii săi. Simularea celei de-a doua politici de aprovizionare
În cazul în care aprovizionarea se face cu o cantitate constantă Q0=40 buc., iar stocul
iniţial este S0=30 de instalaţii de incălzire, dacă rulăm programul pentru 1000 de cicluri de
simulare, obţinem următoarele rezultate:
32
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 33/55
Figura 11: Datele iniţiale ale problemei
Dacă managerul firmei ar decide mărirea cantităţii cu care se face aprovizionarea la 40 de
buc. (lotul de aprovizionare) şi mărirea stocului iniţial la 30 de instalaţii termice, rezultatele ar fi
următoarele (fişierul stoc2.txt ):
Figura 12: Rezultatele pentru 12 cicluri de simulare
33
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 34/55
Figura 13: Rezultatele medii finale după cele 1000 cicluri de simulare
Analizând aceşti indicatori, observăm că perioada opimă între 2 reaprovizionări este
aceeaşi ca şi cea rezultată în urma simulării primei politici de aprovizionare; în schimb, costulmediu de penalizare calculat a scăzut de la 58.6 lei la aproape jumătate 28 lei, ceea ce constituie un
avantaj al celei de-a doua politici în sensul diminuării riscului de a avea cerere neacoperită şi, prin
urmare, de a înregistra penalizări.
Observăm că cheltuielile medii de stocare au scăzut şi ele la 11.22 lei; deşi ne-am fi
aşteptat ca acestea să crească din cauza faptului că a crescut cantitatea intrată în stoc, acest lucru nu
s-a întâmplat, deoarece cererea de instalaţii termice este mare, iar produsele nu au rămas mult timp
în stoc. Ca o consecinţă, observăm că probabilitatea medie a ruperii de stoc a scăzut semnificativ.
În concluzie, putem spune că cea de-a doua politica de aprovizionare este mai eficientă
decât prima, deoarece reduce cheltuielile de stocare şi în special pe cele de penalizare.
VI.2 Simulare cu ajutorul produsului software QMÎn continuare, folosind produsul software QM, am simulat activitatea de gestiune a stocului
de instalaţii de încălzire pentru firma Mob-Install, luând în considerare politica actuală de
aprovizionare a firmei, şi anume, prima politică decrisa mai sus. Din meniul principal, am selectat
Simulation, iar în cadrul acesteia am ales simularea unui stoc (Inventory Simulation).
34
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 35/55
Figura 14: Meniul principal în QM
Figura 15: Alegerea tipului de simulare
Alegând opţiunea de a crea o nouă problemă, am introdus titlul acesteia: Simulare,
35
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 36/55
Fig. 16: Introducerea datelor iniţiale
numărul de iteraţii dorite şi anume 1000, numărul de cereri 7 bucăţi şi numărul de zile de la
lansarea comenzii până la primirea materialelor (durata de aşteptare a comenzii): 5 zile.
Am specificat apoi că costul de lansare a comenzii (ordering cost, exprimat în lei/comandă)
este de 50 lei/comanda, iar costul de stocare (holding cost ) este de 10 lei/buc. Shortage cost
reprezintă costul de penalizare care este de 15 lei/instalaţie de încălzire. Business days reprezintă
perioada de gestiune (1 an), iar min şi max order quantity reprezintă cantitatea minimă şi cea
maximă de instalaţii de încălzire comandată şi anume, o cantitate constantă de 15 instalaţii de
încălzire. Min şi max reorder point reprezintă cantitatea minimă şi cea maximă existentă în stoc în
momentul lansării comenzii, în cazul nostru, minimul este 0, iar maximul este 7 buc. Stocul iniţial
(iniţial inventory) este de 20 de instalaţii.
Am introdus apoi cererea de instalaţii de încălzire şi probabilităţile acesteia, dar şi durata
de reaprovizionare, cu probabilităţile de apariţie aferente acesteia.
După ce am introdus datele că în figura de mai sus, am rulat programul, iar rezultatele
obţinute sunt cele de mai jos:
36
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 37/55
Figura 17: Rezultatele simulării în QM
Observăm că datele de intrare sunt afişate din nou aşa cum le-am introdus iniţial; mai jos
sunt afişate probabilităţile pentru cerere şi durata de reaprovizionare, dar sunt calculate şi
probabilităţile cumulative pentru aceste două variabile:
Figura 18
Mai departe, sunt afişate rezultatele programului (program output):
37
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 38/55
Figura 19
Observăm că la o aprovizionare cu o cantitate constantă de 15 instalaţii, la un nivel al
stocului de 3 instalaţii, costul total este de 29294 lei anual, dar din rezultate constatăm că aceasta
nu este cea mai bună soluţie. Cel mai bine este că firma să se aprovizioneze cu 15 instalaţii de
încălzire la un nivel al stocului de 2 instalaţii, iar în acest, observăm că este vorba despre un cost
total de 28213 lei, care este minimul ce poate fi obţinut.
38
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 39/55
Figura 20
În figura de mai jos, observăm că rezultatele finale după cele 1000 de iteraţii sunt, aşa cum
le-am descris şi mai sus, următoarele:
Cost mimin total de (anual): 28213.255 lei;
Cantitatea minimă comandată (în acest caz este constantă): 15 instalaţii;
Nivelul critic al stocului: 2 instalaţii.
Figura 21: Rezultatele finale în QM
Concluzii:
În concluzie, putem spune că decizia finală privind un anumit nivel de lansare a comenzii o
reprezintă alegerea uneia dintre cele mai bune soluţii obţinute prin simulare. Aşadar, observăm că
cel mai mic cost total de 28213 lei se obţine dacă aprovizionarea se va face cu 15 instalaţii, la un
nivel critic al stocului de 2 buc.
VI.3 Simulare cu ajutorul produsului software Excel
În tabelul de mai jos sunt prezentate calculele necesare pentru simularea procesului de
stocare în conditiile date:
Pentru construirea capului de tabel am folosit următoarele notaţii:
39
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 40/55
Zi-ziua curentă din orizontul de simulare;
Si-nivelul stocului din ziua curentă înainte de satisfacerea cererii;
Q-cantitatea intrată în stoc;
ri-cererea din ziua curentă;
ri*-cererea zilnică nesatisfacută;
Cs-cheltuieli de stocare în ziua curentă;
D-durata de reaprovizionare;
Cp- cheltuieli de penalizare în ziua curentă;
Cl-cheltuieli de lansare în ziua curentă;
Ct-cheltuieli totale (stocare, penalizare, lansare);
Iteratia 1:
Tabelul 3
40
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 41/55
Am calculat pentru prima iteraţie (30 de zile) cererea totală, costul total de stocare, costul
total de penalizare, costul total de stocare, costul total de lansare a comenzii şi costul total la
sfârşitul celor 30 de zile. Rezultatele sunt subliniate cu roşu în tabelul de mai sus. Observăm că am
obţinut un cost de stocare de 550 de lei, un cost de penalizare destul de mare (1620 lei), iar costul
total este de 2270 lei.
În continuare, voi prezenta structura cheltuielilor.
Cheltuieli Valoare (lei) Structura cheltuielilor
(%)
Cheltuieli de stocare 550 24%
Cheltuieli de penalizare 1620 71%Cheltuieli de lansare 100 5%
Cheltuieli totale 2270 100%
Figura 22: Structura cheltuielilor pentru prima iteraţie
Dacă analizăm acest tabel, observăm că ponderea cheltuielilor de penalizare este foarte
mare în cheltuielile totale (71 %) faţă de numai 24% cât reprezintă cheltuielile de stocare. Acest
lucru se datorează faptului că durata de reaprovizionare este foarte mare, iar firma nu poate decide
lansarea unei noi comenzi până în momentul în care nu soseşte comandă în curs. Faptul că timpul
dintre lansarea unei comenzi şi momentul primirii acesteia este mare este din cauză că furnizorii de
instalaţii de încălzire sunt situaţi la mare distanţă de sediul firmei, iar costul de lansare a comenzii
este ridicat.
Iteraţia 2:
În Anexă, figura 1 conţine ce de-a doua iteraţie a simulării. Observăm că de această dată,
cheltuielile totale sunt mai mici (2105 lei), iar ponderea cheltuielilor de penalizare este şi deaceastă dată cea mai mare.
Iteraţia 3:
În urma simulării pe un orizont de alte 30 de zile (iteraţia 3, figura 2 din Anexă), a rezultat
o valoare a cheltuielilor totale de 2295 lei şi din nou cheltuielile de penalizare au cea mai mare
pondere.
41
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 42/55
Rezultate medii
În figurile 3, 4, 5,6,7 şi 8 din Anexă se regăsesc restul paşilor simulaţi în Excel. Aşa cum
se observă, am folosit funcţia IF pentru a nu introduce manual datele şi pentru a parcurge cât mai
mulţi paşi.
În urma celor 350 de paşi realizaţi în cadrul procesului de simulare cu ajutorul Excel, am
calculat valorile medii ale următoarelor elemente: perioada optimă între două reaprovizionări
successive, cererea medie zilnică, costul mediu de stocare, costul mediu de penalizare şi costul
total mediu.
Observăm în figura de mai jos că perioada optimă între două reaprovizionări succesive
rezultată este de aproximativ 10 zile, ceea ce înseamnă că durata de reaprovizionare optimă trebuie
să fie de 10 zile. Cererea medie zilnică de instalaţii de încălzire este de 5.09 buc., lucru pe care îl
ştiam din ipoteză. Costul mediu zilnic de stocare este destul de mic (12.29 lei); în schimb costulmediu zilnic de penalizare este de 58.8 lei; costul mediu zilnic total calculat este de 75.13 lei.
În urma obţinerii acestor rezultate, putem spune că pentru a obţine o situaţie favorabilă a
gestiunii stocului la depozitul de instalaţii, managerul poate îmbunătăţi activitatea firmei prin
reaprovizionarea depozitului la intervale fixe de 9-10 zile cu o cantitate de 15-16 instalaţii. Acest
lucru poate fi realizat prin încheierea unor contracte corespunzătoare cu furnizorii firmei.
Figura 23:Rezultatele medii finale după 350 de paşi
VI.4 Simularea celei de-a treia politici de aprovizionare cu ajutorul TPPentru a vedea daca posibilitatea lansării unei comenzi speciale imbunatăţeste activitatea
de gestiune a stocurilor la firma Mob-Install, am rulat în TP următorul cod:
uses crt;
type vector=array[1..2000] of real;
42
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 43/55
var r,s,rS,sf,ctv,csv,cqSv,cdv,cpv,qSv,qv:vector;
qi,cqi,t,i,n,q,cq,csup,cs7,s0,aa,bb,tau,cp7,cd7:integer;
tcd,tcs,tcp,tct,tcqS,cd,tcdm,tcsm,tcqSm,cua,tcpm,tctm,cqS,qS,x,z,cs,cp,ct:real;
o:string;
f:text;
function generarer(a,b:real):integer;var suma,unif:real;k:integer;
ok:boolean;
begin
repeat
ok:=true;
suma:=0;
for k:=1 to 12 do beginunif:=random(1000)/1000;
suma:=suma+unif;
end;
suma:=suma-6;
suma:=sqrt(b)*suma+a;
generarer:=round(suma);
if (suma>a+b) or (suma<a-b) then ok:=false;
until ok;
end;
procedure generaretau;
var z:real;
tau:integer;
43
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 44/55
begin
if (z>=0) and (z<0.2) then tau:=4;
if (z>=0.2) and (z<0.6) then tau:=8;
if (z>=0.6) and (z<0.75) then tau:=12;
if (z>=0.75) and (z<0.9) then tau:=16;
if (z>=0.9) and (z<=1) then tau:=20;
end;
procedure init;
begin
write('Stocul initial(S0):');readln(s[1]);
write('Costul de lansare(CQ):');readln(cqi);
write('Cantitatea comandata(Q):');readln(qi);write('Numar de zile simulate(N):');readln(n);
write('Costul unitar de stocare(cs):');readln(cs7);
write('Cost unitar suplimentar(Csup):');readln(csup);
write('Cererea medie(rm):');readln(aa);
write('Dispersia cererii(sigma):');readln(bb);
cq:=cqi;
q:=qi;tcqS:=0;
tct:=0;
tcs:=0;
tcp:=0;
tcd:=0;
t:=0;
t:=0;
i:=1;
end;
44
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 45/55
procedure trei;
begin
tct:=tct+ct;
if i<n then
begin
i:=i+1;
o:='1';
end
else
begin
tcdm:=tcd/n;tcsm:=tcs/n;
tcqSm:=tcqS/n;
tcpm:=tcp/n;
tctm:=tct/n;
o:='d';
end;
end; procedure doi;
begin
generaretau;
t:=i+tau;
x:=(random(1000))/1000;
if x<=0.6 then begin
cqS:=qS*(csup+cua);
cqSv[i]:=cqS;
tcqS:=tcqS+cqS;
ct:=cqS+cq;
ctv[i]:=ct;
qSv[i]:=qS;
45
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 46/55
qv[i]:=0;
end
else begin
cp:=rS[i]*cp7;
cpv[i]:=cp;
tcp:=tcp+cp;
ct:=cp+cq;
ctv[i]:=ct;
qSv[i]:=0;
qv[i]:=0;
end;
s[i+1]:=0;o:='3';
trei;
end;
procedure procA;
begin
tcs:=tcs+cs;
ct:=cd+cs;ctv[i]:=ct;
s[i+1]:=sf[i]; {!!!!!!!!!}
trei;
end;
procedure unu;
begin
if i=t then s[i]:=s[i]+q;
r[i]:=generarer(aa,bb);
if s[i]>=r[i] then
begin
sf[i]:=s[i]-r[i];
cd:=s[i]*cd7;
46
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 47/55
cdv[i]:=cd;
tcd:=tcd+cd;
cs:=sf[i]*cs7;
csv[i]:=cs;
o:='A';
q:=qi;
end
else begin
rS[i]:=r[i]-s[i];
qS:=rS[i];
if i>=t then beginq:=qi;
qv[i]:=q;
cq:=cqi;
z:=random(1000)/1000;
end
else begin
cq:=0;end;
o:='2';
end;
if o='A' then procA;
if o='2' then doi;
end;
begin
init;
repeat
unu;
until o='d';
47
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 48/55
assign(f,'simulare2.txt');
rewrite(f);
writeln(' k S r Sf r* Q* Q CQ* CP CS CT');
writeln('-----------------------------------------------------------');
writeln(f,' k S r Sf r* Q* Q CQ* CP CS CT');
writeln(f,'-----------------------------------------------------------');
for i:=1 to n do writeln(f,i:3,' ',s[i]:4:0,' ',r[i]:2:0,' ',sf[i]:4:0,' ',rS[i]:2:0,'
',qSv[i]:4:0,' ',qv[i]:4:0,' ',cqSv[i]:6:0,' ',cpv[i]:6:0,' ',csv[i]:6:0,' ',ctv[i]:6:0,' ');
writeln(f,'TCDM=',tcdm:6:0,' ','TCSM=',tcsm:6:0,' ','TCQ*M=',tcqSm:6:0,'
','TCPM=',tcpm:6:0,' ','TCTM=',tctm:6:0);
writeln('TCDM=',tcdm:6:0,' ','TCSM=',tcsm:6:0,' ','TCQ*M=',tcqSm:6:0,'
','TCPM=',tcpm:6:0,' ','TCTM=',tctm:6:0);close(f);
end.
Am introdus apoi datele iniţiale ale problemei de stocare după cum urmează:
Figura 24: Datele iniţiale ale celei de-a treia politici de aprovizionare
În urma rulării programului pentru 30 de zile de simulare, am obţinut următoarele rezultate
(fişierul simulare2.txt ):
48
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 49/55
Figura 25: Rezultatele simulării pentru 30 de zile
Observăm în figura de mai sus, că a rezultat un cost total mediu de 202 lei.
VII. ConcluziiÎn urma studierii activităţii de stocare existentă la momentul actual în cadrul firmei Mob-
Install, am constatat că aceasta nu adoptă o politică de aprovizionare potrivită. Argumentul este că,
în urma celor 1000 de cicluri de simulare, am constatat că în cadrul procesului de aprovizionare cu
produsul instalaţii termice de încălzire, firma trebuie să suporte un cost de penalizare foarte mare
din pricina faptului că cererea este foarte mare, iar cantitatea comandată de la furnizori este
insuficientă.
O soluie în acest sens este modificarea contractelor cu furnizorii şi mărirea cantităţiicomandate de la aceştia pentru ca numărul de instalatii termice vândute să crească, iar costurile de
penalizare să scadă. Aşadar, am simulat o altă politică de aprovizionare în care cantitatea
comandata era mai mare, iar rezultatele au fost pe măsura aşteptarilor.
49
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 50/55
Mai departe, am testat o altă politica de aprovizionare prin care firma poate lua în
considerare posibilitatea unei comenzi speciale. Rezultatele în urma celor 1000 de cicluri de
simulare au sugerat însă, că lansarea unei asemenea comenzi creşte costul total mediu de stocare.
În concluzie, pe baza celor 1000 de iteraţii, am constatat că cea mai bună politică de
aprovizionare este cea de-a doua, şi anume în care cantitatea comandată de la furnizori este de 40
de instalaţii termice, iar ca o sugestie, comandă specială ar trebui şi ea luată în calcul din când în
când, pentru că deşi costurile totale cresc, profitul firmei ar putea creşte şi el.
VIII. Anexa
Iteraţia 2
Figura 1: Iteraţia 2
50
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 51/55
Iteraţia 3
Figura 2: Iteraţia 3
51
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 52/55
Figura 3: Simulare în Excel Figura4: Simulare în Exc
52
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 53/55
Figura 5: Simulare în Excel Figura 6: Simulare în Excel
53
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 54/55
Figura 7: Simulare în Excel Figura 8: Simulare în Excel
IX. Bibliografie
Dobre, I., Musta , F., & P un, M. (2000).ţă ă Simularea numeric a proceselor economice.ă
Bucureşti: Editura ASE.
Dobre, I., Musta F., & Stoica, M. (2006).ţă Simularea proceselor economice. Bucureşti:
Editura Inforec.
54
5/14/2018 Barabas Camelia Simulare - slidepdf.com
http://slidepdf.com/reader/full/barabas-camelia-simulare 55/55
Ra iu-Suciu, C. (2005).ţ Modelarea şi simularea proceselor economice:teorie şi
practic .ă Bucureşti: Editura economic .ă
***.,http://www.contabilizat.ro/file/cursuri_de_perfectionare/economie_generala/model
area_si_simularea_proceselor_economice_sinteza/cap8.pdf .
55
top related