【发布时间】:2015-10-06 17:13:05
【问题描述】:
我面临二次客观项的问题。为了说明我的意图,我编写了一个非常简单的代码。
代码解释:我们想给一个女孩糖果。女孩收到 1 颗糖果 (joy_per_candy) 的喜悦取决于她收到的糖果总数。我们给她的糖果越多,她的joy_per_candy就越少。目标是最大化她的总快乐,这是一个二次项:
total_joy = candies * joy_per_candy
在以下情况下,1 颗糖果产生 10 的joy_per_candy; 10 颗糖果产生的 joy_per_candy 为 0。这里是 joy curve。简单的数学表明total_joy 最大化candies = 5。
我该如何解决这个问题?
joy_curve = [(1,10),(10,0)]
m = Model('candy')
candies=m.addVar(ub=joy_curve[1][0])
joy_per_candy=m.addVar(ub=joy_curve[0][1])
m.update()
total_joy=QuadExpr(candies*joy_per_candy)
m.setObjective(total_joy,GRB.MAXIMIZE)
m.optimize()
结果:
优化具有 0 行、2 列和 0 个非零值的模型。
模型有 1 个二次目标项
矩阵范围[0e+00, 0e+00]
目标范围 [0e+00, 0e+00]
边界范围 [3e+00, 1e+01]
RHS 范围 [0e+00, 0e+00]
预求解时间:0.00s
GurobiError
【问题讨论】:
标签: mathematical-optimization gurobi