Форум программистов, компьютерный форум CyberForum.ru

Поиск оптимального решения - C++

Восстановить пароль Регистрация
 
shikari
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 14
14.04.2014, 20:52     Поиск оптимального решения #1
Поиск оптимального решения: критерий Ходжа Лемана и оптимистический критерий. Помогите разобраться в коде (написать комментарии)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <time.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;
//---------------------------------------------------------
//Критерий Ходжи-Лемана
c=0.3;
q=0.5;
for (i=0;i<n;i++)           
{ for (j=0;j<m;j++)
    eG[i][j]=rand()+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<<eG[i][j]<<" ";
   cout<<" | "<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eGmax="<<eGmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®п*ЁҐ "<<k[j]+1<<endl;
 getch();
//---------------------------------------------------------------------------
//"Оптимистический метод"
 
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<<eG[i][j]<<" ";
   cout<<" | "<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eOmax="<<eOmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®п*ЁҐ "<<k[j]+1<<endl;
cout<<"*__________________________________________________*"<<endl;
 getch();
}
Миниатюры
Поиск оптимального решения  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 20:52     Поиск оптимального решения
Посмотрите здесь:

Нужно составить программу решения задачи оптимального выбора методом случайного тпоиска(монте-карло) C++
C++ Поиск оптимального пути в графе
C++ Выбор оптимального алгоритма сортировки.
C++ Алгоритмы. Поиск верного решения задачи.
Поиск циклов в графе. Поиск центра взвешенного графа C++
C++ Поиск оптимального пути в трехмерной карте
C++ Поиск символа не могу переделать под поиск сочетания символов
C++ Задача на поиск алгоритма оптимального разбития набора фильмов с учетом оценок этих фильмов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru