Kotlin 从列表创建模型-oj!Algo&;科特林

Kotlin 从列表创建模型-oj!Algo&;科特林,kotlin,optimization,linear-programming,ojalgo,Kotlin,Optimization,Linear Programming,Ojalgo,我试图从数据库中的膳食列表中创建二进制优化模型。列表由变量(餐名)和表达式(卡路里、价格等)组成。向模型中添加变量不是问题,但我不能设置表达式,因为每个表达式都需要指定给单个变量。有没有办法做到这一点 没有列表的示例代码: val model=ExpressionsBasedModel() val x1:Variable=model.addVariable(“x1”).binary().weight(41) val x2:Variable=model.addVariable(“x2”).bin

我试图从数据库中的膳食列表中创建二进制优化模型。列表由变量(餐名)和表达式(卡路里、价格等)组成。向模型中添加变量不是问题,但我不能设置表达式,因为每个表达式都需要指定给单个变量。有没有办法做到这一点

没有列表的示例代码:

val model=ExpressionsBasedModel()
val x1:Variable=model.addVariable(“x1”).binary().weight(41)
val x2:Variable=model.addVariable(“x2”).binary().weight(16)
val x3:Variable=model.addVariable(“x3”).binary().weight(32)
val x4:Variable=model.addVariable(“x4”).binary().weight(23)
val x5:Variable=model.addVariable(“x5”).binary().weight(46)
val x6:Variable=model.addVariable(“x6”).binary().weight(1)
val x7:Variable=model.addVariable(“x7”).binary().weight(2)
val x8:Variable=model.addVariable(“x8”).binary().weight(23)
val x9:Variable=model.addVariable(“x9”).binary().weight(5)
val x10:Variable=model.addVariable(“x10”).binary().weight(7)
val蛋白质:表达式=模型。添加表达式(“蛋白质”)
.较低(60)
.上(90)
.组(x1,20)
.套(x2,25)
.套(x3,30)
.套(x4,15)
.套(x5,20)
.套(x6,15)
.组(x7,5)
.set(x8,11)
.套(x9,3)
.套(x10,25)
val卡路里:表达式=模型。加法表达式(“卡路里”)
.较低(1800)
.上(2200)
.套(x1700)
.套(x2600)
.套(x31000)
.套(x4500)
.套(x5800)
.套(x6300)
.套(x7,350)
.套(x8200)
.套(x9300)
.套(x10、330)
val carbs:Expression=model.addExpression(“carbs”)
.较低(300)
.套(x1100)
.套(x2,100)
.套(X3150)
.设置(x4,60)
.套(x5150)
.套(x5800)
.套(x6,60)
.套(x7,70)
.set(x8,30)
.套(x9,70)
.套(x10,50)
val进餐:表达式=模型.addExpression(“进餐”)
.第(3)级
.set(x1,1)
.set(x2,1)
.套(x3,1)
.套(x4,1)
.套(x5,1)
.套(x6,1)
.组(x7,1)
.set(x8,1)
.组(x9,1)
.套(x10,1)

val结果:optimization.result=model.maximize()
不清楚您在问什么。