|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 制 : [せい] 1. (n,n-suf,vs) system 2. organization 3. organisation 4. imperial command 5. laws 6. regulation 7. control 8. government 9. suppression 10. restraint 1 1. holding back 12. establishment 1 ・ 制約 : [せいやく] 1. (n,vs) limitation 2. restriction 3. condition 4. constraints ・ 約 : [やく] 1. (adv,n) approximately 2. about 3. some ・ プログラミング : [ぷろぐらみんぐ] 【名詞】 1. programming 2. programing, (n) programming/programing
制約プログラミング(Constraint Programming)はプログラミングパラダイムの一つである。 制約プログラミングにおいては、変数間の関係を制約という形で記述することによりプログラムを記述する。制約が他のプログラミングパラダイムのプリミティブと異なっているのは、実行すべきステップではなく解の特性を記述するという点である。制約プログラミングにおける制約は様々である。制約充足問題での制約やシンプレックス法における制約などがある。制約は通常、プログラミング言語に埋め込まれているか別個のライブラリで提供される。 制約プログラミングは制約を論理プログラミングに埋め込んだ制約論理プログラミングが起源である。1987年、Jaffer と Lassez がProlog IIにある種の制約を取り入れたのが最初であった。制約論理プログラミング言語の実装としては、Prolog III、CLP(R)、CHIP がある。今日でも GNU Prolog などの制約論理プログラミングのインタプリタが存在している。 論理プログラミング以外では、制約は関数型言語、項書き換え、命令型言語などと融合させることができる。関数プログラミングでの制約としては、マルチパラダイムプログラミング言語 Oz がある。制約を取り入れた命令型言語としては Kaleidscope がある。しかし、命令型言語での制約はツールキット的な形態でライブラリとして既存の言語向けに提供されている場合がほとんどである。 ==制約論理プログラミング== 制約プログラミングはホストとなる言語に制約を埋め込む。最初のホスト言語は論理プログラミング言語であったため、これを「制約論理プログラミング」と呼んだ。この2つのパラダイムは論理変数やバックトラッキングといった多くの重要な共通点がある。現在の多くのProlog処理系には何らかの制約論理プログラミング用ライブラリが用意されている。 制約プログラミングも論理プログラミングもチューリング完全であり、論理プログラムを制約プログラムに書き換えることも逆も可能である。論理プログラムよりも制約プログラムの方が性能がよい問題もあり、そのような場合に事前に変換を行うこともある。 両者の最大の違いは、世界をモデリングする流儀と手法である。問題によっては論理プログラムとして書くのが自然で単純だし、別の問題は制約プログラムとして書くのが自然である。 制約プログラミングは、同時に最も多くの制約を充足する状態を探索する。その場合、問題は複数の未知の変数を含む世界の状態として記述される。制約プログラムはそれら変数全部の値を探索する。 時相並行制約プログラミング(Temporal Concurrent Constraint programming; TCC)や非決定性時相並行制約プログラミング(Non-deterministic Temporal Concurrent Constraint programming)は時を扱う制約プログラミングの一種である。 以下に制約論理言語の例を挙げる: *B-Prolog (Prologベース、プロプライエタリ) *CHIP V5 (Prologベース、C++/C言語のライブラリも含む、プロプライエタリ) *Ciao Prolog (Prologベース、フリーソフトウェア: GPL/LGPL) *ECLiPSe (Prologベース、オープンソース) *SICStus (Prologベース、プロプライエタリ) *GNU Prolog *YAP Prolog 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「制約プログラミング」の詳細全文を読む スポンサード リンク
|