Лабораторная работа - Критерии принятия решений
.docУфимский Государственный Авиационный Технический Университет
Лабораторная работа по теории принятия решений №1
КРИТЕРИИ ПРИНЯТИЯ РЕШЕНИЙ
Уфа – 2008
Лабораторная работа №1
КРИТЕРИИ ПРИНЯТИЯ РЕШЕНИЙ
Цель работы. Изучение особенностей применения критериев принятия решений.
Постановка задачи.
Вариант №6:
– Ходжи-Лемана ;
– Оптимистический ;
Листинг программы.
//---------------------------------------------------------------------------
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
//---------------------------------------------------------------------------
void main()
{
const int n=20, m=10;
double eG[n][m+1],c,eGmax,max[n],min[n],q,sa;
double eO[n][m+1],eOmax,maxO[n];
int i,j,k[n],kmax;
//---------------------------------------------------------
cout<<’’Критерий Ходжи-Лемана "<<endl;
c=0.3;
q=0.5;
randomize();
for (i=0;i<n;i++) //ўў®¤ ¤ ле
{ for (j=0;j<m;j++)
eG[i][j]=random(21)+0.0;
}
for (i=0;i<n;i++)
{
max[i]=eG[i][0];
min[i]=eG[i][0];
for (j=0;j<m;j++)
{
sa=0;
if(eG[i][j]>max[i]) max[i]=eG[i][j];
if(eG[i][j]<min[i]) min[i]=eG[i][j];
sa=sa+q*eG[i][j];
}
eG[i][m]=c*sa+(1-c)*min[i];
}
eGmax=eG[0][m];
for (i=0;i<n;i++)
if (eG[i][m]>eGmax) eGmax=eG[i][m];
j=0;
for (i=0;i<n;i++)
if (eG[i][m]==eGmax) {k[j]=i;j++;}
kmax=j;
for (i=0;i<n;i++)
{ for (j=0;j<m;j++)
cout<<setw(4)<<eG[i][j]<<" ";
cout<<setw(4)<<" | "<<setw(4)<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eGmax="<<eGmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®пЁҐ "<<k[j]+1<<endl;
getch();
clrscr();
//---------------------------------------------------------------------------
cout<<"Оптимистический метод"<<endl;
/*for (i=0;i<n;i++)
{ for (j=0;j<m;j++)
cout<< eO[i][j];
} */
for (i=0;i<n;i++)
{
maxO[i]=eO[i][0];
for (j=0;j<m;j++)
{
if(eG[i][j]>maxO[i]) maxO[i]=eG[i][j];
}
eO[i][m]=maxO[i];
}
eOmax=eG[0][m];
for (i=0;i<n;i++)
if (eG[i][m]>eOmax) eOmax=eG[i][m];
j=0;
for (i=0;i<n;i++)
if (eG[i][m]==eOmax) {k[j]=i;j++;}
kmax=j;
for (i=0;i<n;i++)
{ for (j=0;j<m;j++)
cout<<setw(4)<<eG[i][j]<<" ";
cout<<setw(4)<<" | "<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eOmax="<<eOmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®пЁҐ "<<k[j]+1<<endl;
cout<<"*__________________________________________________*"<<endl;
getch();
clrscr();
}
Результаты программы (тестирование).
Результаты программы (тестирование).
Вывод. В данной лабораторной работе были изучены особенности применения критериев Ходжи-Лемана и Оптимистический. Составив программу на языке С++, были определены наиболее оптимальные варианты решений проблемной ситуации, описанной в виде матрицы состояний, а также было установлено, что критерии Ходжи-Лемана и Оптимистический дали одинакового результата.