Calc/Creamの使い方
[ Japanese | English ]
Calc/Creamの動作
- ユーザは,後述するCalc/Creamのセル関数を利用して
整数上の変数や制約を宣言できます.
- ユーザが'Start'ボタンを押すと,以下が実行されます.
- シートがスキャンされ,変数や制約を含むセルがパースされて
Creamの制約ネットワークに追加されます.
- 解を見つけるためにソルバーが開始されます.
- 見つかった解の値が対応するセルにセットされます.
- ユーザが'Next'ボタンを押すと,次の解が探索されます.
Calc/Creamのセル関数
変数は,次のセル関数を用いて宣言できます.
-
CVARIABLE(ドメインの下限値; ドメインの上限値;
暫定値)
ドメインの下限値, ドメインの上限値で指定された領域の
変数を宣言します(暫定値は結果表示に利用されます).
-
CVARIABLES(ドメインの下限値; ドメインの上限値;
セル範囲1; セル範囲2; ...)
セル範囲1,セル範囲2, ...をドメインの下限値
,ドメインの上限値で指定された領域の変数として宣言します.
制約は,関数CONSTRAINTS
を用いて制約のセル位置を指定することで
宣言できます.
-
CONSTRAINTS(セル範囲1; セル範囲2; ...)
セル範囲1, セル範囲2, ... を制約として宣言します.
セル範囲1, セル範囲2, ...で参照されるセル中には、以下から構成される制約を宣言します.
- 整数値,セル,あるいはセル範囲
-
+
, -
, *
,
SUM(セル範囲)
,
ABS(セル範囲)
-
=
, <>
,
<
, <=
,
>
, >=
-
CEQUALS(セル範囲)
-
CNOTEQUALS(セル範囲)
-
CSEQUENTIAL(セル範囲)
-
CSERIALIZED(セル範囲)
CVARIABLE
CVARIABLE(下限値; 上限値; 暫定値)
セルを変数として宣言します.下限値, 上限値には以下のものが指定できます.
- "MIN", "MINIMUM" : Calc/Creamで扱うことができる最小値 (-1073741823)
- "MAX", "MAXIMUM" : Calc/Creamで扱うことができる最大値 (1073741823)
- Term
暫定値には整数値が指定できます.
CVARIABLES
CVARIABLES(下限値; 上限値; セル範囲1; セル範囲2; ...)
セル範囲1, セル範囲2, ...で指定された範囲を変数として宣言します.下限値, 上限値には以下のものが指定できます.
- "MIN", "MINIMUM" : Cale/Creamで扱うことができる最小値 (-1073741823)
- "MAX", "MAXIMUM" : Calc/Creamで扱うことができる最大値 (1073741823)
- Term
CONSTRAINTS
CONSTRAINTS(セル範囲1; セル範囲2; ...)
セル範囲1, セル範囲2, ...で指定された範囲を制約条件として宣言します.範囲内に記述されたExpressionが制約条件として制約ネットワークに追加されます.
CEQUALS
CEQUALS(引数1; 引数2; ...)
引数1, 引数2, ...が等しい制約を宣言します.引数1, 引数2, ...には以下のものが指定できます.
CNOTEQUALS
CNOTEQUALS(引数1; 引数2; ...)
引数1, 引数2, ...が全て異なる制約を宣言します.引数1, 引数2, ...には以下のものが指定できます.
CSEQUENTIAL
CSEQUENTIAL(引数1; 引数2; ...)
引数1, 引数2, ...が制約を宣言します.引数1, 引数2, ...には以下のものが指定できます.
CSERIALIZED
CSERIALIZED(引数1; 引数2; ...)
引数1, 引数2, ...が制約を宣言します.引数1, 引数2, ...には以下のものが指定できます.
COBJECTIVE
COBJECTIVE(Cell)
最適化問題における目的変数を宣言します.
CTIMEOUT
CTIMEOUT(Timeout)
解探索のタイムアウトを設定します.
COPTIONS
COPTIONS(Option1; Option2; ...)
オプションを設定します.
Option1, Option2, ...には次のものが指定できます.
- "MIN", "MINIMIZE" : 目的変数の最小化を行います.
- "MAX", "MAXIMIZE" : 目的変数の最大化を行います.
- "BETTER" : 目的変数の改善を行います.
- "RW" : Random Walk 法による準最適解探索を行います.
- "SA" : Simulated Annealing 法による準最適解探索を行います.
- "IBB" : Iterative Branch-and-Bound 法による準最適解探索を行います.
- "TABOO" : Taboo Search 法による準最適解探索を行います.
Term
Term = 整数値 ||
セル ||
- Term ||
Term + Term ||
Term - Term ||
Term * Term ||
SUM(arg1; arg2; ...) ||
ABS(Term)
Expression
Expression = Term = Term ||
Term <> Term ||
Term > Term ||
Term >= Term ||
Term < Term ||
Term <= Term ||
CEQUALS(arg1; arg2; ...) ||
CNOTEQUALS(arg1; arg2; ...) ||
CSEQUENTIAL(arg1; arg2; ...) ||
CSERIALIZED(arg1; arg2; ...) ||
Naoyuki Tamura
(
Last modified: Tue Mar 15 21:32:06 JST 2005
)