我有一个包含多个结果的数据框,每个结果都有五个变量,我想在 R 中进行优化。我使用过rPref
,但这最多有 4 个变量需要优化。有谁知道如何用四个以上做到这一点?
问问题
112 次
1 回答
1
我是rPref包的作者。rPref 只能为四个变量计算帕累托最优的信息是完全错误的。优化目标的数量没有限制。
考虑以下小例子:让我们创建一个(a_1, ..., a_5)
包含a_i in {1, 2}
和(1, 1, 1, 1, 1)
排除的数据集:
library(listcompr)
df <- gen.data.frame(c(a_1, ..., a_5), a_ = 1:2, sum(a_1, ..., a_5) > 5)
该数据集df
有以下 31 个条目:
> df
a_1 a_2 a_3 a_4 a_5
1 2 1 1 1 1
2 1 2 1 1 1
3 2 2 1 1 1
[...]
30 1 2 2 2 2
31 2 2 2 2 2
现在让我们用 rPref 同时最小化所有 5 个变量:
> library(rPref)
> psel(df, low(a_1) * low(a_2) * low(a_3) * low(a_4) * low(a_5))
a_1 a_2 a_3 a_4 a_5
1 2 1 1 1 1
2 1 2 1 1 1
4 1 1 2 1 1
8 1 1 1 2 1
16 1 1 1 1 2
帕累托最优完全是所有只有一个“2”的元组,因为(2, 1, 1, 1, 1)
它是帕累托主导的,例如(2, 2, 1, 1, 1)
。
于 2021-04-16T21:15:50.850 回答