0

私は解決しようとしている簡単な数学プログラムを持っています:

m = Model(solver=MosekSolver())
@variable(m, x[1:8] >= 0)
@objective(m,Min,sum(x))
@constraint(m,A*x .== given)
@constraint(m, x, sum(x)==1)

status = solve(m)

println("x = ", getvalue(x))

A は型のある行列ですArray{Float64,2

この線:

@constraint(m, x, sum(x)==1))

のタイプをxからArray{JuMP.Variable,1}に変更しJuMP.ConstraintRef{JuMP.Model,JuMP.GenericRangeConstraint{JuMP.GenericAffExpr{Float64,JuMP.Variable}}}ます。

  1. x以前に変数として宣言されているので、型は同じままであるべきではありませんか? (さらに、上記の行が実行されると、すべてが機能しますがgetvalue、タイプの変更により機能しなくなります。)

  2. タイプを変更せずに合計制約を追加する方法はありますかx

4

2 に答える 2

0

そのようにする

@constraint(m, constr, A*x .== given)

@constraint(m, constr2, sum(x) == 1)
于 2016-11-24T08:27:20.297 に答える