Xpress 入門
- 加算
!buy(p)は配列 MaxCap := sum( p in 1..10) buy(p) <= 100
- 繰り返し
forall(t in 2..NT) do Inven(t) := bal(t) = bal(t-1) + buy(t) end-do
- 加算 + 繰り返し
forall( c in 1..10 | IFCAP(c)=true ) MaxCap(c) := sum(i in 1..10, j in 1..10 | i<>j) TECH(i,j,c)*x(i,j,c) <= MAXTECH(c)
a: is_binary b: is_binary a = 1 - y d=max(a,b) d=min(a,b)=a*b
- 動的配列
COST: dynamic array(1..NT) of real use: array(TIME) of mpvar forall( t in TIME | COST(t)>0)create(use(t))
parameter
モデルの一番初めに記述しなければならない
DEBUG=true NUM=10
declarations
PRODUCTS = 1..5
モデル構築の順序 * 定数データ * 動的データ * 決定変数 * 制約 * 目的関数
変数名のルール * 既知数 - 大文字 * 未知数 - 小文字 * 制約 - 組み合わせ