7.1 rcpspの構成要素
資源制約付きスケジューリング問題ソルバrcpspを利用する際には,必ず次の3つの構成要素Activity
, ResourceRequire
, ResourceCapacity
を定義しなければなりません.この3つの構成要素の関係を表すと,以下のような図になります.
作業集合は,「必ず実施しなければならない作業」から構成される集合です.作業集合の要素には,実施する必要の無い作業が含まれてはいけません.モード集合は,「作業に対する対処方法」から構成される集合です.「作業に対する対処方法」の事を,rcpspではモードと呼びます.資源集合は,「モードの利用に必要な資源」から構成される集合です.rcpspを利用する際には,まずこの3種類の集合を定義する必要があります.
次に,「どの作業をどのモードで処理するか」に相当する変数Activity
を定義します.rcpspが決定するのは,このActivity
の値です.さらに,「各モードはどの資源をどの程度必要とするか」に相当する定数ResourceRequire
を定めます.最後に,「資源はどれだけ利用できるか」に相当する定数ResourceCapacity
を定めます.
なお,rcpspでは完了時刻最小化問題と,納期遅れ最小化問題を扱うことができます.どちらを扱うかは,目的関数で指定します.
rcpspで利用することのできる構成要素は以下の通りです.
構成要素名 | C++SIMPLE内の名称 | 機能 |
---|---|---|
目的関数 | Objective |
目的関数を表す |
制約式 | Constraint |
制約式を表す |
定数 | Parameter |
定数を表す |
範囲演算関数 | sum |
|
式 | Expression |
頻出する数式に対して,簡単な別の表現を与える |
添字 | Element |
添字を表す |
集合 | Set |
添字の動く範囲を表す |
順序集合 | OrderedSet |
要素間に順序を持つ集合を表す |
数列集合 | Sequence |
等差数列からなる集合を表す |
条件式 | 制約式や代入文を制限する | |
ソフト制約関数 | softConstraint |
ソフト制約を表す |
アクティビティ | Activity |
必要な作業がどのモードを用いるかという変数 |
必要資源 | ResourceRequire |
モードの利用に必要な資源を表す |
資源供給量 | ResourceCapacity |
利用可能な資源の限界値を表す |
モード順序関数 | modeOrder |
モード順序を同一に設定する |
アクティビティ固定関数 | fixActivity |
アクティビティを固定する |
アクティビティ固定解除関数 | unfixActivity |
アクティビティの固定を解除する |
以降,rcpspでのみ利用可能な構成要素,あるいはrcpspで用いる場合に注意を要する構成要素に関してのみ説明します.
上に戻る