M.Hiroi's Home Page

Prolog Programming

制約論理プログラミング超入門

[ Home | Prolog ]

WHAT'S NEW


CONTENTS


はじめに

「制約論理プログラミング (Constraint Logical Programming)」は論理型言語 (たとえば Prolog など) に「制約プログラミング (Constraint Programming)」の機能を追加したものです。SWI-Prolog の場合、標準で Constraint Handling Rules (CHR) がサポートされています。CHR はユーザ定義の制約を記述するためのプログラミング言語です。この他に、制約プログラミング用のライブラリ (clpb, clpfd, clpqr) が用意されていて、ライブラリをロードすることで、それらの機能を利用することができます。

M.Hiroi は 小屋畑さん からライブラリ clpfd のことを教えてもらったのですが、それまで制約プログラミングの経験はまったくありませんでした。そんな M.Hiroi でも、clpfd を使うと簡単にプログラムを作ることができ、なおかつ実行速度も高速でした。これには M.Hiroi も大変驚きました。小屋畑さんに改めてお礼申しあげます。

本ページは初心者でも簡単に扱うことができる (と思われる) ライブラリ clpfd をメインに、簡単なプログラムを作りながら制約プログラミングについて勉強していきたいと思っております。なにぶんにも初心者が作るプログラムなので、おかしなところがあるかもしれません。勘違いや間違いなど、お気づきの点がありましたら、ご指摘いただけると助かります。たいしたことはできませんが、よろしければお付き合いくださいませ。


参考文献, URL

  1. 石塚満, 『知識の表現と高速推論』, 丸善株式会社, 1996
  2. 制約論理プログラミングシステム (PDF), (相場亮さん)
  3. A.9 library(clpfd): CLP(FD): Constraint Logic Programming over Finite Domains (SWI-Prolog manual)
  4. 情報基礎特論: 制約プログラミング入門 (PDF), (田村直之さん)
  5. Coprisによる制約プログラミング入門, (田村直之さん)
  6. CLP(FD) Constraint Logic Programming over Finite Domains, (Anne Ogborn さん)
  7. 制約充足問題の SAT符号化 (PDF), (田村直之さん, 番原睦則さん, 宋剛秀さん)
  8. Logic, Programming and Prolog (Supplement) (PDF), (Ulf Nilsson さん)
  9. 制約論理プログラミング - Wikipedia
  10. Constraint Handling Rules - Wikipedia

『制約論理プログラミング超入門』の著作権は筆者「広井誠 (Makoto Hiroi)」が保持します。無断使用や無断転載は禁止いたします。『制約論理プログラミング超入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。

ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。

Copyright (C) 2016-2023 Makoto Hiroi
All rights reserved.

[ Home | Prolog ]