資源簡介
利用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? ??for(j?=?0;?j? sumcal?[i]+=(mat[j][i])*(mat[j][i]);
}
??for(i?=?0;?i? sqsumcal[i]=sqrt(sumcal[i]);
}
?for(i?=?0;?i? ?for(j?=?0;?j? ??normalized[j][i]=mat[j][i]/sqsumcal[i];
cout?<“\n?“?<?“normalized?“?<<(j?)<<(i?)<????“\t?“?<
??}
???????????????????for(i?=?0;?i? ?for(j?=?0;?j? ??wmat[j][i]=normalized[j][i]*weight[i];
cout?<“\n?“?<?“weighted?“?<<(j?)<<(i?)<????“\t?“?<
}
//calculating?the?maximum?of?each?criteria?(positive?ideal)*
??for(i?=?0;?i? ??rmax[i]?=?wmat[0][i];
??for(j?=?1;?j? ??if(wmat[j][i]?>?rmax[i])
rmax[i]?=?wmat[j][i];
cout?<“\n?“??<?“criteria?“<(i?)?<?“\t?“?<
評論
共有 條評論