2017-08-29 5 views
0

私はこのような目的関数にしたいのジャンプを使用した:juliaマクロを使用して内積計算を展開する方法は?

@objective(m, Max, 19*run[1] + 15*run[2] + 15*run[3]) 

... 19、15および15は、活動のユーティリティで、[i]を実行するアクティビティあれば記述するバイナリジャンプ変数であります実行されるべきかどうか。

@myObjective(M:

それはユーティリティのリストを与えられたので、私は、この目標を生成するマクロを作りたい=(19、15、15)の代わりに上記の、私はこのような何かを書くことができます、Max、utilities、run)

これは私が上でタイプした目的のように機能します。

(私は二次目的を使いたくないので、JuMP変数 "utility"を使用することはできず、目的はsum(run [i] * utility [i])にすることはできません。しかし、私は事前にユーティリティーを知っているので、マクロはおそらく線形目的関数を書くために書くことができます。3つのアクティビティーでマクロはあまり役に立ちませんが、実際の問題ではたくさんのアクティビティーがあるので、参考に。

私は今しばらくの間、苦労してきたと私は任意のトラクションを得ていないよ、誰でも簡単にこの問題を解決する方法を知っていますか?

また、マクロを考え使用していないこの問題を解決するための他のアプローチを役に立つ:-)

答えて

3

ユーティリティはジャンプ変数でない限り、あなたは @objective(メートル、マックス、ドット(ユーティリティ、実行))を行うことができ、それは、これが問題を解決し

+0

次ではありません。 ( "import Base:dot"は必要ですが、それはもちろんディテールです)ありがとう;) – Rmz

関連する問題