R语言 四个以上变量的帕累托最优

jv4diomz  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(178)

我有一个包含多个结果的数据框,每个结果包含5个变量,我想在R中优化这些变量。我使用了rPref,但这最多需要优化4个变量。有人知道如何对超过4个变量进行优化吗?

huwehgph

huwehgph1#

我是rPref包的作者,rPref只能计算4个变量的Pareto最优的信息根本就是错误的,优化目标的数量没有限制。
考虑下面这个小例子:让我们创建一个数据集(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)是帕累托显性的.

相关问题