2

Julia+JuMP で一定の​​パラメーターを定義する必要があります。これは、AMPL で定義するときに行うことと同様です。

set A := a0 a1 a2;

param p :=
a0 1
a1 5
a2 10 ;

Julia でAandのようなものを定義するにはどうすればよいですか?p

4

2 に答える 2

4

JuMP 自体は、Julia で利用可能なものを超えて、インデックス セットの特別な構文を定義していません。たとえば、次のように定義できます。

A = [:a0, :a1, :a2]

where:a0はシンボルを定義します。

このセットに対して変数にインデックスを付けたい場合、構文は次のとおりです。

m = Model()
@variable(m, x[A])

また、JuMP は AMPL と同じようにデータとモデルを区別しないため、パラメーターの実際の概念はありません。代わりに、使用時にデータを提供するだけです。あなたの質問を正しく理解できれば、次のようなことができます

p = Dict(:a0 => 1, :a1 => 5, :a2 => 10)
@constraint(m, sum(p[i]*x[i] for i in A) <= 20)

これにより、制約が追加されます

x[a0] + 5 x[a1] + 10 x[a2] <= 20

pJulia辞書として定義する場所。ここでは JuMP に固有のものは何もありません。実際には、任意の julia 式を係数として提供できます。簡単に言うと

@constraint(m, sum(foo(i)*x[i] for i in A) <= 20)

fooデータベース検索を実行したり、pi の数字を計算したりできる任意の Julia 関数はどこにありますか?

于 2014-07-09T20:44:25.110 に答える