• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签: topsis  c++  

资源简介

利用c++ 编写群决策中典型的topsis排序算法。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#define popsize 6
#define noo 5

double mat[popsize][noo]=
{{0.3020.3000.5040.4500.378
}{0.2160.3750.6300.3380.189
}{0.3450.3000.2520.3380.378
}{0.4740.4500.1260.2250.567
}{0.5180.5250.1260.5630.567
}{0.5000.4500.5040.4500.189}};
double weight[noo]=
{0.1210.0610.4650.1080.245};

double ptopsis[]={0000000};
double rmax[noo];
double rmin[noo];
double max;
double sumcal[noo];
double sqsumcal[noo];
double ntopsis[popsize];
double topsis [popsize];
double pow(doubledouble);
double normalized[popsize][noo];
double wmat[popsize][noo] ;


int main()
{
 int i j;
 for(i = 0; i < noo; i ++){
  for(j = 0; j < popsize; j++)
sumcal [i]+=(mat[j][i])*(mat[j][i]);

}
  for(i = 0; i < noo; i ++){
sqsumcal[i]=sqrt(sumcal[i]);

}

 for(i = 0; i < noo; i++)
 for(j = 0; j < popsize; j++) {
  normalized[j][i]=mat[j][i]/sqsumcal[i];
cout << “\n “ <<  “normalized “ <<(j )<<(i )<<     “\t “ << normalized[j][i]  ;

  }
                   for(i = 0; i < noo; i++)
 for(j = 0; j < popsize; j++) {
  wmat[j][i]=normalized[j][i]*weight[i];
cout << “\n “ <<  “weighted “ <<(j )<<(i )<<     “\t “ << wmat[j][i]  ;

}
//calculating the maximum of each criteria (positive ideal)*
  for(i = 0; i < noo; i ++) {
  rmax[i] = wmat[0][i];
  for(j = 1; j < popsize; j++)
  if(wmat[j][i] > rmax[i])
rmax[i] = wmat[j][i];
cout << “\n “  <<  “criteria “<< (i ) <<  “\t “ << rma

评论

共有 条评论