Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа - Критерии принятия решений

.doc
Скачиваний:
37
Добавлен:
02.05.2014
Размер:
81.92 Кб
Скачать

Уфимский Государственный Авиационный Технический Университет

Лабораторная работа по теории принятия решений №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();

}

Результаты программы (тестирование).

Результаты программы (тестирование).

Вывод. В данной лабораторной работе были изучены особенности применения критериев Ходжи-Лемана и Оптимистический. Составив программу на языке С++, были определены наиболее оптимальные варианты решений проблемной ситуации, описанной в виде матрицы состояний, а также было установлено, что критерии Ходжи-Лемана и Оптимистический дали одинакового результата.