使用Scala breeze.optimize.linear.LinearProgram时出现意外类型不匹配

时间:2015-12-02 20:45:32

标签: scala linear-programming scala-breeze

现在我正在使用Scala Breeze中的Linear Program类,我已经达到了使用以下代码优化线性编程问题的程度。

import breeze.stats.distributions
import breeze.stats._
import breeze.linalg._

val lp = new breeze.optimize.linear.LinearProgram()
val unif_dist = breeze.stats.distributions.Uniform(-1,1)

val U = DenseMatrix.rand(1, 3, unif_dist).toArray
val V = DenseMatrix.rand(2, 3, unif_dist).toArray.grouped(3).toArray
val B = Array.fill(3)(lp.Binary())

val Objective = V.map(vi => U.zip(vi).map(uv => uv._1 * uv._2)).map(uvi => B.zip(uvi).map(buv => buv._1 * buv._2)).map(x => x.reduce(_ + _)).reduce(_ + _)
val lpp = ( Objective subjectTo() )

lp.maximize(lpp)

我收到以下错误

scala> lp.minimize(lpp)
<console>:45: error: type mismatch;
found   : lp.Problem
required: lp.Problem
          lp.minimize(lpp)
                      ^

之前有没有人碰到这个,如果有的话,你有没有办法解决这个问题?另外,我愿意接受一些更清晰的方式来建议我在这里设计目标的方法。

0 个答案:

没有答案