首页 > 解决方案 > 在线性规划问题中将约束设置为百分比

问题描述

我正在尝试解决以下线性规划问题,其约束条件至少需要每种成分的 10%。问题是要求解决方案至少包含 10% 的种子、10% 的葡萄干、10% 的薄片、10% 的山核桃和 10% 的核桃。目前,我在“#ingredients”下设置了约束,但无法弄清楚如何将值设为 10%,0.10 似乎不起作用。

# declare the model
model = ConcreteModel()

# declare decision variables
model.seeds = Var(domain=NonNegativeReals)
model.raisins = Var(domain=NonNegativeReals)
model.flakes = Var(domain=NonNegativeReals)
model.peacans = Var(domain=NonNegativeReals)
model.walnuts = Var(domain=NonNegativeReals)


# declare objective
model.cost = Objective(
                  expr = 4*model.seeds + 5*model.raisins + 3*model.flakes + 7*model.peacans + 6*model.walnuts,
                  sense = minimize)

# declare constraints
# Vitamin Content
model.Vitamins = Constraint(expr = 10*model.seeds + 20*model.raisins + 10*model.flakes + 
30*model.peacans + 20*model.walnuts >= 20)

# Mineral Content
model.Minerals = Constraint(expr = 5*model.seeds + 7*model.raisins + 4*model.flakes + 9*model.peacans 
+ 2*model.walnuts >= 10)

# Protein Content
model.Protein = Constraint(expr = 1*model.seeds + 4*model.raisins + 10*model.flakes + 2*model.peacans 
+ 1*model.walnuts >= 15)

# Calorie Content
model.Calories = Constraint(expr = 500*model.seeds + 450*model.raisins + 160*model.flakes + 
300*model.peacans + 500*model.walnuts >= 600)

#Ingredients
# Seed Constraint
model.Seeds = Constraint(expr = model.seeds >= .10)

# Raisin Constraint
model.Raisin = Constraint(expr = model.raisins >= .10)

# Flakes Constraint
model.Flakes = Constraint(expr = model.flakes >= .10)

# Peacans Constraint
model.Peacans = Constraint(expr = model.peacans >= .10)

# Walnuts Constraint
model.Walnuts = Constraint(expr = model.walnuts >= .10)

# show the model you've created
model.pprint()

标签: pythonlinear-programmingpyomo

解决方案


推荐阅读