【发布时间】:2020-08-18 13:09:20
【问题描述】:
我有一个距离(相似度)矩阵D,例如,
D <- matrix(c(0.00, 1.00, 1.00, 0.10, 0.05, 1.00, 0.00, 1.00, 1.00, 1.00, 1.00, 1.00, 0.00, 0.90, 0.95, 0.10, 1.00, 0.90, 0.00, 0.15, 0.05, 1.00, 0.95, 0.15, 0.00),5,5)
和一个权重向量 w = (w1, ..., wn) 使得 sum(w) == 1。向量中的值 w 是实数,介于 0 和 1 之间,包括。我需要找到一个向量 w 使得总和 w*D*t(w) 最大化。其中t(w)是w的转置,符号“*”表示矩阵乘法。
令人惊讶的是,我在 R 中找不到可以做到这一点的求解器。
谢谢
【问题讨论】:
-
@chinsoon12,我认为你是对的。例如,参见“单位球面上的二次形式”here 部分。
-
@chinsoon12 我猜
eigen(D)$vectors[,1]忽略了约束sum(w)=1和0 <=w<=1 -
@chinsoon12 是的,如果最大化问题是无约束的,那么我相信你使用
eigen的方法是最优雅的
标签: r optimization algebra maximize quadratic-programming