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

モデル構築の順序 * 定数データ * 動的データ * 決定変数 * 制約 * 目的関数

変数名のルール * 既知数 - 大文字 * 未知数 - 小文字 * 制約 - 組み合わせ