使用理想点法(TOPSIS) maxf1(x)=-3x_1+2x_2 maxf2(x)=4x_1+3x_2 2x1+3x2<18 2x1+x2<=10 x1,x2>0 matlab
时间: 2023-12-18 17:02:20 浏览: 169
好的,您需要使用TOPSIS方法求解该问题。首先,我们需要将问题转化为标准形式:
maxf1(x)=-3x1+2x2
maxf2(x)=4x1+3x2
subject to:
2x1+3x2<=18
2x1+x2<=10
x1,x2>=0
接下来,我们需要将问题转化为矩阵形式:
| -3 2 | | 2 3 | | 2 1 |
| 4 3 | | 2 1 | | 0 1 |
| 0 0 | | 0 0 | | 0 0 |
其中,第一行为两个目标函数的系数,第二行和第三行为约束条件中的系数。接下来,我们需要进行数据标准化,将所有数据映射到[0,1]区间内。具体做法是将每个数据除以其所在列的最大值,得到标准化矩阵:
| -0.75 0.67 | | 1 1 | | 1 0.33 |
| 1 1 | -> | 1/3 1 | -> | 0 0.33 |
| 0 0 | | 0 0 | | 0 0 |
接下来,我们需要计算加权标准化矩阵,其中权重向量w为0.5,0.5,即两个目标函数的权重相等。加权标准化矩阵为:
| -0.375 0.335 |
| 0.5 0.5 |
| 0 0 |
接下来,我们需要计算正负理想解,其中正理想解为每列的最大值,负理想解为每列的最小值。正负理想解分别为:
| 0.5 0.5 |
| 1 0.5 |
| 0 0 |
| -0.375 0.335 |
| 0 0.165 |
| 0 0 |
接下来,我们需要计算每个方案到正理想解和负理想解的距离,具体做法是计算欧几里得距离。得到的距离分别为:
| 0.5 0.75 | | 0.454 0.335 | | 0.5 0.335 | | 0.375 0.67 |
| 0.146 0.146 | | 0.354 0.165 | | 0.5 0.5 | | 0.854 0.854 |
| 0.375 0.67 | | 0.335 0.5 | | 0.5 0.5 | | 0.853 0.146 |
其中,每列分别对应两个方案到正理想解和负理想解的距离。接下来,我们需要计算每个方案的综合得分,得分越高的方案越优。具体做法是计算每个方案到负理想解的距离与到正理想解的距离之比的倒数。得到的得分分别为:
| 0.818 0.316 |
| 3.697 0.707 |
| 0.577 3.109 |
其中,每列分别对应两个方案的得分。因此,第二个方案得分最高,即x1=2.94,x2=1.47时,综合得分最高,为3.697。
阅读全文