並列制約論理プログラミングシステムGDCC 概要 並列制約論理プログラミング言語GDCCは問題解決のための高級言語であり、 論理プログラミングのパラダイムと制約プログラミングのパラダイムを並列環境 下で融合させた、高水準で、柔軟かつ効率的な言語である。本デモンストレーショ ンにおいては、GDCCの様々な問題領域における有効性を示すため、いくつか の試作システムを紹介する。 デモンストレーション 1)GDCC GDCCの基本的な特徴を、簡単な例を用いて示す。 2)ハンドリング・ロボット設計支援システム GDCCの強力さと柔軟性を設計の領域を例題として用いて示す。 3)GDCCによる階層制約の並列評価 階層制約の並列評価系をGDCCを用いて記述することにより、GDCC の強力さと効率の良さを示す。 4)ボロノイ図 GDCCの高水準さと柔軟性を計算幾何学の領域を例題として用いて示 す。 1.GDCC-言語と処理系 本システムの目的 1)制約論理プログラミングのパラダイムに基づいた高水準で宣言的な言語を提供 する。 2)問題解決のための強力で柔軟な枠組を提供する。 3)並列性を利用した効率の良い問題解決のための枠組を提供する。 制約論理プログラミングによる問題解決 制約とは、問題中で成立する関係である。制約論理プログラミングを用いた問 題解決は、通常のプログラミング言語を用いた問題解決とは、次に示すように異 なっている。 ●通常のプログラミング言語を用いた問題解決 1.問題の解析 2.問題を構成する対象問の関係の発見 3.解法の発見 4.問題を解く手続きとしてプログラムを作成 ●制約論理プログラミングを用いた問題解決 1.問題の解析 2.問題を構成する対象問の関係の発見 3.問題中で成立する関係(制約)の集まりとしてプログラムを 作成 GDCCの特徴 1)2つのレベルの並列性 柔軟で効率の良い制約論理プログラミング言語を実現するため、GDCCにお いては言語の並列化と制約評価系の並列化という、2つのレベルにおける並 列化を利用している。 2)複数の制約評価系 1.代数制約評価系 2.有理数/整数線形制約評価系 3.真偽値制約評価系 3)ブロック機構 1.多重環境 GDCCの代数制約評価系における1変数高次制約から実根の近似 値を求める機能により、ある変数が複数の値を取り得る状況を扱う 必要がある。 2.失敗の局所化 コミッテッド・チョイスに基づく並列言語において探索機能を持た せるため、制約評価の矛盾などに起因する失敗を局所化する必要が ある。 3.推論エンジンと制約評価系との同期の問題 ある制約集合に対して、ある関数の最大値、最小値などを求める際 に、その制約集合を与え、その元であるゴールの評価を行わせるよ うな機構が必要となる。たとえば、 0 X,X 1 0 Y,Y 1 という制約下でmax(X+Y)を求める GDCCのプログラム側 ヘロンの公式の導出 以下のGDCCは、三角形に関する3つの既知の性質、すなわち三角形 の求積公式、直角三角形に関するピタゴラスの定理、そして任意の三角 形が2つの直角三角形に分割可能であるということから、三角形に関す るヘロンの公式として知られる新しい性質を導き出すことが出来る。 :-module heron. :-public tri/4. tri(A,B,C,S):-true | alloc(O,CA,CB,H), alg#C=CA+CB, alg#CA**2+H**2=A**2, alg#CB**2+H**2=B**2, alg#H*C=S. 2.ハンドリング・ロボット設計支援 特徴 本支援システムを用いてGDCCの強力さと柔軟性とを示す。 ハンドリングロボットの設計過程 1)システムヘの入力である、ハンドリング・ロボットの仕様を変更する だけで任意構造のロボットの処理が可能である。 2)個々のハンドリング・ロボットに対する解析プログラムを別々に作成 する必要がない。 システムの機能 本支援システムは、以下の機能を持つ。 -制約の生成 ●順機構学を解くことによる -ロボットの解析と評価 ●逆機構学を解くことと ●各関節のトルク計算と、 ●設計中のロボットの可操作度の計算による デモンストレーション 本デモンストレーションにおいては、設計対象のハンドリング・ロボットを、 関節数3、アーム数3のものとする。 1)順機構学 手先の位置(P)を、各アーム長()と各関節の回転角度 (θ)を用いて表す。 2)逆機構学 与えられた位置(P)に手先を移動するために必要な各関節の 回転角度(θ)を求め、ついである関節の回転角度に制限を加え て解の個数が減少する様子を示す。 3)トルクの計算と可操作度の評価 順機構学の結果(P)と、手先に作用する力()とから、 各関節にかかるトルク(T)と可操作度(D)を求める。ついで手 先の動作範囲に制限を加え、トルクと可操作度の式を簡単化する。