Python 添加除法不等式约束
我需要使用Google或Python中的工具CP-SAT解算器解决这个简单的优化问题:Python 添加除法不等式约束,python,or-tools,Python,Or Tools,我需要使用Google或Python中的工具CP-SAT解算器解决这个简单的优化问题: Goal = MAXIMIZE (X+Y+Z) Constraint: Z/(X+Y+Z) <= 0.25 Goal=最大化(X+Y+Z) 约束:Z/(X+Y+Z)您必须创建一个中间变量,并使用model.add设置其值。当CP-SAT处理整数时,还必须放大一些变量 scaling=1000 x=model.NewIntVar(0,10,'x') y=model.NewIntVar(0,10,'y')
Goal = MAXIMIZE (X+Y+Z)
Constraint: Z/(X+Y+Z) <= 0.25
Goal=最大化(X+Y+Z)
约束:Z/(X+Y+Z)您必须创建一个中间变量,并使用model.add设置其值。当CP-SAT处理整数时,还必须放大一些变量
scaling=1000
x=model.NewIntVar(0,10,'x')
y=model.NewIntVar(0,10,'y')
z=model.NewIntVar(0,10,'z')
scaled_z=model.NewIntVar(0,10*缩放,'z_scaled')
denom=model.NewIntVar(1,3*10,'x+y+z')
除法=model.NewIntVar(0,10*缩放,'z/(x+y+z)'))
model.Add(scaled_z==z*缩放)
model.Add(denom==x+y+z)
模型.AddDivisionEquality(除法,缩放z,denom)
添加(非常感谢!不幸的是,我把约束写错了。我的约束是:z/(x+y+z)