MINISTERUL EDUCATIEI AL REPUBLICII MOLDOVA
Universitatea Tehnică a Moldovei
Facultatea Calculatoare,Informatică și Microelectronică
RAPORT despre lucrarea de laborator nr. 1
Metode și modele de calcul
deciziilor în condiţii de incertitudine incertitudine şi risc. Arborele Arborele decizional. decizional. Tema: Luarea deciziilor
A îndeplinit: st.gr.TI-173
Roșca Florin
A controlat:
Ghetmancenco Ghetmancenc o Svetlana
Chisinău – 2018 2018
Scopul lucării : De Luat decizii
în condiţii de incertitudine şi risc. Noţiuni generale.
În activitatea economică zi de zi se iau decizii, scopul cărora este de a majora profitul, de a minimiza cheltuielile, de a preveni situații de pierderi majore și altele. În multe situații decidentul are la dispoziție informația necesară despre factorii, ce determină decizia luată. Astfel de situații se numesc de certitudine. De exemplu, la determinarea planului de producție a firmei se știe câte strunguri sunt și care este capacitatea lor de producere. Dar unele situaţii de activitate economică, decidentul decidentul activează in condiţii de incertitudine. Această incertitudine poate fi creată atât de activitatea conştientă a concurenţilor, cât şi de factorii necunoscuţi care influenţează asupra eficacității deciziei. Situaţia în care eficacitatea deciziei depinde de activitatea conştientă a concurenţilor poartă denumirea de “situaţie de conflict”. Aceste situații se analizează în teoria jocurilor (cap. 7) În cazul cazul când incertitudinea incertitudinea nu este determinată determinată de comportamentul comportamentul concurenților se spune că sunt “jocuri cu natura”. În problemele economice în calitate de “natură” poate fi considerată cererea pe piaţă. Natura este definită prin „stările naturii” numite şi evenimente posibile, care sunt rezultatul r ezultatul unei influențe, ”forţe” necunosc n ecunoscute, ute, necontrolabile. Stările naturii formează un sistem complet de evenimente. “Jocurile cu natura” sunt situaţiile care pot fi soluţionate cu ajutorul metodelor propuse. Se evidențiază următoarele două aspecte: se cunosc stările naturii – se – se spune că se iau decizii în condiţii de incertitudine; - se cunosc stările naturii și probabilităţile de apariţie a fiecărei stări – stări – deciziile deciziile se iau în condiţii de risc. Fie că sunt definite n stări ale naturii: S1, S2,…, Sn. decidentul are la dispoziţie m decizii admisibile: D1, D2,…, Dm. Câştigul decidentului este dat de matricea consecinţelor A= , unde aij este profitul (utilitatea) decidentului, dacă a fost aleasă decizia Di şi are loc starea naturii Sj
Mersul lucrarii
Luarea deciziilor în condiţii de incertitudine. Pentru luarea deciziilor în condiţii de incertitudine sunt utilizate următoarele criterii:
Problema:
Rezultatele : Anexa A
Concluzie: In timpul formarii acestui program si rezolvariiscopului acestui laborator am analizat mai mai multe metode metode de a lua deciziii favorabile pentru a obtine profit profit maxim, conforma mai mai multor metode cum ar fi Laplace Laplace sau metoda maximizarii maximizarii profitului asteptat am dedus mai multe decizii favorabile(1-5) care sunt reprezentate reprezentate in anexa A reprezentata mai sus.
Anexa X. //#include "pch.h" 30 #include > #include >
// 3 3.5 2 0.4 5 8
// 2 2.5 0 0.4 16 20 // 3 5 2 0.6 26
int nr_decizii , x, y; int nr_decizii // 'x' si 'y' - marimile matricei; float co; float co; float **matrix float **matrix = new float float *[x]; *[x]; float *arrmin float *arrmin = new float float[nr_decizii]; [nr_decizii]; float *arrmax float *arrmax = new float float[nr_decizii]; [nr_decizii]; using namespace namespace std; std; float C_optimist( float C_optimist(int int nr_decizii, nr_decizii, int int nr_stari) nr_stari) { int k = 0; int k float a_max; float a_max; float maximum float maximum = matrix[0 matrix[0][0 ][0]; float *arr float *arr = new float float[nr_decizii]; [nr_decizii]; for ( for (int int i i = 0; i < nr_decizii; i++) { for (int for ( int j j = 0; j < nr_stari; j++) { if (matrix[i][j] if (matrix[i][j] > maximum) { maximum = matrix[i][j]; arr[i] = maximum; } else { else { arr[i] = maximum; } } } cout << (" (" Tabloul de maxime din randurile deciziilor:") deciziilor:") << endl; for (k for (k = 0; k < nr_decizii; k++) cout << (" (" a") a") << k + 1 << (" (" = ") ") << arr[k] << (" (" "); maximum = arr[0 arr[0]; int decizie int decizie = 0; for (k = 0; k < nr_decizii; k++) for (k if (arr[k] if (arr[k] > maximum) { a_max = arr[k]; decizie = k + 1; }
else { else { a_max = maximum; decizie = 1; } cout << endl << " Decizia Decizia corecta va aduce profit de : " << " << a_max << " U.M.B, " << endl << " iar decizia corecta este :" << :" << decizie << endl; for ( for (int int k k = 0; k < nr_decizii; k++) arrmax[k] = arr[k]; return 0; } int C_pesimist( int C_pesimist(int int nr_decizii, nr_decizii, int int nr_stari) nr_stari) { int k = 0; int k float a_max; float a_max; float *arr float *arr = new float float[nr_decizii]; [nr_decizii]; float minimum float minimum = matrix[0 matrix[0][0 ][0]; for ( for (int int i i = 0; i < nr_decizii; i++) { minimum = matrix[i][0 matrix[i][0]; for ( for (int int j j = 0; j < nr_stari; j++) { if (matrix[i][j] if (matrix[i][j] < minimum) { minimum = matrix[i][j]; arr[i] = minimum; } else arr[i] else arr[i] = minimum;
} } cout << (" (" Tabloul de minime din randurile deciziilor:") deciziilor:") << endl; for (k for (k = 0; k < nr_decizii; k++) cout << (" (" a") a") << k + 1 << (" (" = ") ") << arr[k] << (" (" "); float maximum = arr[0 float maximum arr[0]; int decizie int decizie = 0; for (k = 0; k < nr_decizii; k++) for (k if (arr[k] if (arr[k] > maximum) { a_max = arr[k]; decizie = k + 1;
} else { else { a_max = maximum; decizie = 1; } cout << endl << " Decizia Decizia corecta va aduce profit de : " << " << a_max << " U.M.B, " << endl << " iar decizia corecta este :" << :" << decizie << endl; for (int for ( int k k = 0; k < nr_decizii; k++) arrmin[k] = arr[k]; return 0; } void C_Laplace(int void C_Laplace( int nr_decizii, nr_decizii, int int nr_stari){ nr_stari){ float *M float *M = new float float[nr_decizii]; [nr_decizii]; float m; float m; int i,j; int i,j; for ( for ( i = 0; i < nr_decizii; i++) { m = 0; for (j for (j = 0; j < nr_decizii; j++) { m = m + matrix[i][j]; } M[i] = m / nr_decizii; cout << (" (" ") << M[i]; } cout << endl; float max float max = 0; for( for (int int i i = 0; i < nr_decizii; ++i) { if(M[i] if (M[i] > max) { max = M[i]; } } cout <<" <<" MAX: "<< max << endl; } void M_Regret ( int void M_Regret int nr_decizii){ nr_decizii){ float *maxim float *maxim = new float float[nr_decizii]; [nr_decizii]; for( for (int int j= j=0 0;jmaxim[j]) if (matrix[i][j]>maxim[j]) maxim[j]=matrix[i][j]; cout<<" cout<<" Maximul coloanei "<<(j+ "<<(j+1 1)<<" )<<" = "<
for(int for( int j= j=0 0;j j) c = D - S;
else c = S - D; } D = D + 1; } } void C_MPA(int void C_MPA( int n){ n){ int **TS int **TS = new int int *[ *[2 2]; for ( for (int int i i = 0; i < n; i++) TS[i] = new int int[n+ [n+1 1]; cout << endl; cout << " Introducdeti tabelul statistic :"; :"; cout << endl; int m , i, j; int m m=2 m=2; int q; int q; //citirea elementelor matricei for(i= for (i=0 0;i>q; TS[i][j]=q; } } cout << endl; cout<<"Elementele cout<<"Elementele matricei sunt:"<
} /////////////////////////////////////////////////// int main(int int main( int argc, argc, char char* * argv[]) { float pc, float pc, pv, pe;//pc pe;//pc - pret cumparare, pv - pret vinzare ,co -coeficientul de optimism,pe-pretul mei eftin de vinzare; int a, int a, b, c = 0, dif; cout << " pret cumparare = "; cin >> pc; cout << endl; cout << " pret vinzare = "; "; cin >> pv; cout << endl;
cout << " pret extrem = "; "; cin >> pe; cout << endl; cout << " coeficientul de optimism = "; "; cin >> co; cout << endl; cout << " bucati vindute : de la = "; " ; cin >> a; cout << endl; cout << " bucati vindute : pina la = " "; ; cin >> b; cout << endl; dif = (b - a) + 1; x = dif; y = dif; cout << endl; nr_decizii = dif; int nr_stari int nr_stari = dif; cout << " Matricea Consecintelor : "<< "<< endl; C_matrix(a,pv,pe,pc); cout << endl; cout << endl; cout << " CRITERIUL MAXI-MAX" MAXI-MAX" << << endl; C_optimist(nr_decizii, C_optimist(nr_decizii, nr_stari); cout << endl; cout << " CRITERIUL OLD" << OLD" << endl; C_pesimist(nr_decizii, C_pesimist(nr_decizii, nr_stari); cout << endl; cout << " CRITERIUL HURWICS" << HURWICS" << endl; C_Hurwics(nr_decizii); cout << endl; cout << " CRITERIUL LAPLACE" LAPLACE" << << endl; C_Laplace(nr_decizii,nr_stari); cout << endl; cout << " METODA REGRETELOR" << REGRETELOR" << endl; M_Regret (nr_decizii); cout << endl; cout << " CRITERIUL MAXIMIZARII PROFITULUI ASTEPTAT " << " << endl; C_MPA(x); cout << endl; return 0; }