MINERVAは、制約処理のための先進の機能を持つと共に、あなた自身のユーザー定義制約処理を加えることができます。...
移動
次へ 前へ
上へ 最上
詳細
co_add/2
co_get/2
co_merge/2
co_check/2
参考
算術比較
算術式評価
アトム項処理
文書処理と正規表現
黒板
バイナリ入出力
文字入出力
制約処理
Compilation
節の生成と削除
節の検索と情報
グローバル変数
文法規則
リスト
論理と制御
全解
配布されたMinervaプロセス間の通信
ストリームの選択と制御
サーブレット
項の比較
項の生成と分解
項の入出力
項の単一化
項ベクター
項ストリーム
XML (eXtended Markup Language) 項へのサポート
非同期タイマー処理へのサポート
型検査
イフコンピュータ > MINERVA > マニュアル > レファレンス > 述語 > 制約処理

制約処理

MINERVAは、制約処理のための先進の機能を持つと共に、あなた自身のユーザー定義制約処理を加えることができます。

制約処理は、例えば以下のような難しい管理問題ために非常に強い力を発揮します: 資源配分、スケジューリング、計画。

MINERVAは、制約処理のために2つの述語を定義します:

        co_add(+Var, +Constraint)
        co_get(+Var, -Constraint)
The programmer is has to supply two user defined predicates:
        co_merge(+Var, +ConstraintList)
        co_check(+Term, +Constraint)

co_add(+Var, +Constraint)
制約を変数にまたは制約変数に加えます。 "Constraint"は、変数以外のいかなる項でありえます。

"Var"が変数であるならば、それは制約変数になります。

"Var"が制約変数であるならば、制約は追加の制約としてマークされます、そして、ユーザー定義述語co_merge(+Var,[NewConstraint,OldConstraint])は起動されます。

"Var"が変数でないならば、ユーザー定義述語co_check(+Var, NewConstraint)は起動されます。

co_get(+Var, -Constraint)
co_get(+Var、-Constraint)は、制約変数と関連する現在の制約を復帰します。 "Var"が制約変数でないならば、述語は失敗します。

co_merge(+Var, +ConstraintList)
制約変数が単一化されるとき、それらの付随する制約も単一化されなければなりません。 これは、co_merge/2のジョブです。 個々の制約のリストは新しい制約に結合されなければなりません。そして、新しい制約はそれからco_add/2で再び制約変数と関連することができます。 個々の制約が矛盾を引き起こすならば、述語は失敗します。

co_merge/2が起動される前に、関連する制約変数は普通の変数に変えられます。 co_add/2の以下の呼び出しの後でのみ、そして、もちろんバックトラックの場合だけでのみそれは、再び制約変数になります。

co_check(+Term, +Constraint)
制約変数が値を与えられるとき、すなわち、変数でない項に連結される時に、ユーザー定義述語co_check/2は起動されます。 この結合が与えられた制約"Constraint"の下で許される場合のみ、co_check/2は成功しなければならなりません。

例題

例題は、例題プログラムのセクションを参照して下さい。

規格

これらの述語は、ISO-Prolog Standardの要件ではありません。

続く..
co_add/2
制約を変数または制約変数に加えます。...
co_get/2
制約変数の現在の制約を復帰します。...
co_merge/2
制約を単一化します...
co_check/2
値を与えることが許されているかどうか、チェックします...
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/Constraints/home_jp.html
published 2008/5/12 update 2002/3/19 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 ifcj@ifcomputer.co.jp
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS