这是我以前在 Excel 中解决过的问题,但想转到 MatLab 以获得更高质量的解决方案。
在我工作的地方,每半年会进行一次对新举措进行排名的过程。根据一系列标准对新举措进行评分,并为其分配一个范围在 [0,1] 内的标准分数。每个标准都分配有一个权重,这些权重经过归一化,总和为 1。给定举措的总分就是每个标准分数与其权重的乘积之和。
执行此过程将为所考虑的每项举措生成分数,因此可以根据这些举措的分数对其进行 1-n 排序。到目前为止一切顺利...
但随后,这份名单将提供给管理决策机构,该机构将“运用判断”,并根据自己的审议结果对排名进行调整。
我想做的是调查是否存在一组标准权重,可以产生更接近最终审议结果的 1-n 列表。过去我在 Excel 中做过这件事,我可以使用 rank() 函数作为计算的一部分。我设置了类似这样的内容
在这种情况下,我告诉 Excel 求解器更改红色的值,但要遵守 [0,1] 和总和为 1 的约束,以最小化绿色的总和。
这个想法是为了突出这样的问题:“你说标准 X 是最重要的,但你的判断应用似乎表明标准 Y 实际上才是决定因素。”
我真的不知道如何为 fmincon(或任何其他非 excel 求解器)制定此方案,并希望得到任何指导。我使用 Excel 的经验是:a) 随着计划数量的增加,运行时间变得相当长;b) 我可以运行相同的优化 10 次并得到 10 个非常不同的解决方案...