(57)【要約】【課題】制約充足における制約のデバッグを行うに当たって、デバッグの過程で作成される過去の制約とその制約を変換した解モデルの集合を管理し、オペレータからの要求に応じてそれらを比較できるように表示すること。【解決手段】成果物管理手段７２により、入力装置１から入力された制約、表示条件、検査条件および解モデル生成装置３を用いて取得した前記制約に対応する解モデルの集合を記憶装置６に記憶させ、これらに対応するインデックスを表示装置２に表示し、解モデル表示手段７３により、入力装置１で選択されたインデックスに対応する制約および表示条件またはこれに加えて検査条件を記憶装置６から取得し、該取得した解モデルの集合、あるいは解モデル検査装置４を用いて取得した検査条件に合致する解モデルの集合を、表示条件に従って表示装置２に表示する。【選択図】図７
2008287411.tif 000002
【特許請求の範囲】
【請求項１】
解決したい問題を制約変数の集合、各制約変数の値の集合および制約変数間の制約の集合という形で定式化し、制約を満たす制約変数の値の組み合せである前記問題の解を求める制約充足における制約のデバッグを行うに当たって、前記問題の解のパターンを表現した解モデルの集合中に、本来は解のパターンでない解モデルが含まれていることや本来は解のパターンとなるべき解モデルが含まれていないことを調べて制約の誤りを発見し、誤り部分を特定するために、前記制約および当該制約に対応する解モデルの集合とともに、解モデルを表示する時の表示方法を記述した表示条件、あるいはこれに加えて表示すべき解モデルの条件を記述した検査条件を用いて、指定された制約に対応する解モデルの集合を指定された表示条件に従って表示し、あるいは指定された制約に対応する解モデルの集合のうち、指定された検査条件に合致する解モデルの集合を指定された表示条件に従って表示する方法であって、
制約を入力とし、該制約を解モデルの集合に変換して出力する解モデル生成装置と、
解モデルの集合および検査条件を入力とし、該解モデルの集合から該検査条件に合致する解モデルを取り出して出力する解モデル検査装置と、
前記解モデル生成装置および解モデル検査装置の両方を含むコンピュータもしくは前記解モデル生成装置または解モデル検査装置のいずれか一方を含み且つ他方とネットワークを介して通信可能なコンピュータもしくは前記解モデル生成装置および解モデル検査装置の両方とネットワークを介して通信可能なコンピュータあるいは当該コンピュータとネットワークを介して接続される他のコンピュータとを用い、
前記コンピュータあるいは当該コンピュータとネットワークを介して接続される他のコンピュータが、
入力装置から入力された制約を前記解モデル生成装置に送信し、該解モデル生成装置から前記制約を変換した解モデルの集合を受信する解モデル生成装置制御ステップと、
入力装置から入力された制約または表示条件または検査条件または前記解モデル生成装置から受信した解モデルの集合を記憶装置に出力して記憶させ、該記憶装置に記憶された制約、表示条件、検査条件および解モデルの集合にそれぞれ対応するインデックスを表示装置に表示し、入力装置で選択されたインデックスに対応する制約、解モデルの集合および表示条件、あるいは制約、解モデルの集合、表示条件および検査条件を記憶装置から取得する成果物管理ステップと、
記憶装置から取得した解モデルの集合および検査条件を前記解モデル検査装置に送信し、該解モデル検査装置から前記検査条件に合致する解モデルの集合を受信する解モデル検査装置制御ステップと、
記憶装置から取得した解モデルの集合、あるいは前記解モデル検査装置から受信した解モデルの集合を、記憶装置から取得した表示条件に従って表示装置に表示する解モデル表示ステップとを実行する
ことを特徴とする制約充足における解モデルの表示処理方法。
【請求項２】
前記成果物管理ステップは、入力装置で選択されたインデックスに対応する制約を変換した解モデルの集合を一意に特定できるように、解モデル生成装置における制約と解モデルの集合との対応関係も記憶装置に出力して記憶させる
ことを特徴とする請求項１記載の制約充足における解モデルの表示処理方法。
【請求項３】
前記成果物管理ステップは、入力装置で選択されたインデックスに対応する検査条件と関係する表示条件を一意に特定でき、表示条件の選択が省略できるように、表示条件と検査条件との対応関係も記憶装置に出力して記憶させる
ことを特徴とする請求項１記載の制約充足における解モデルの表示処理方法。
【請求項４】
前記解モデル表示ステップは、表示すべき制約変数の値と解モデルの指定、肯定集合あるいは否定集合の要素の表示・非表示の切り替え、制約変数の値の表示順、および全ての解モデルにおいて値が空である制約変数の値の表示・非表示の切り替え等の条件を記載した表示条件に従って、制約を変換した解モデルの集合中の各解モデルを表示装置に表示する
ことを特徴とする請求項１記載の制約充足における解モデルの表示処理方法。
【請求項５】
前記解モデル表示ステップは、入力装置で選択されたインデックスに対応する制約、表示条件、検査条件の組み合わせが異なる毎に、制約を変換した解モデルの集合を表示装置に別画面または別ウインドウで表示する
ことを特徴とする請求項１記載の制約充足における解モデルの表示処理方法。
【請求項６】
前記解モデル表示ステップは、入力装置から表示条件の変更指示が入力された時、表示中の解モデルの集合を前記変更指示された表示条件に従って表示装置に再表示し、さらに入力装置から変更した表示条件の保存指示が入力された時、その変更された表示条件を記憶装置に出力して記憶させる
ことを特徴とする請求項１記載の制約充足における解モデルの表示処理方法。
【請求項７】
コンピュータに、請求項１乃至６いずれか記載の各ステップを実行させるためのプログラム。
【請求項８】
解決したい問題を制約変数の集合、各制約変数の値の集合および制約変数間の制約の集合という形で定式化し、制約を満たす制約変数の値の組み合せである前記問題の解を求める制約充足における制約のデバッグを行うに当たって、前記問題の解のパターンを表現した解モデルの集合中に、本来は解のパターンでない解モデルが含まれていることや本来は解のパターンとなるべき解モデルが含まれていないことを調べて制約の誤りを発見し、誤り部分を特定するために、前記制約および当該制約に対応する解モデルの集合とともに、解モデルを表示する時の表示方法を記述した表示条件、あるいはこれに加えて表示すべき解モデルの条件を記述した検査条件を用いて、指定された制約に対応する解モデルの集合を指定された表示条件に従って表示し、あるいは指定された制約に対応する解モデルの集合のうち、指定された検査条件に合致する解モデルの集合を指定された表示条件に従って表示する装置であって、
入力装置および表示装置とともに、
制約を入力とし、該制約を解モデルの集合に変換して出力する解モデル生成装置と、
解モデルの集合および検査条件を入力とし、該解モデルの集合から該検査条件に合致する解モデルを取り出して出力する解モデル検査装置と、
入力装置から入力された制約または表示条件または検査条件または前記解モデル生成装置から受信した解モデルの集合を記憶する記憶装置と、
入力装置から入力された制約を前記解モデル生成装置に送信し、該解モデル生成装置から前記制約を変換した解モデルの集合を受信し、入力装置から入力された制約または表示条件または検査条件または前記解モデル生成装置から受信した解モデルの集合を記憶装置に出力して記憶させ、該記憶装置に記憶された制約、表示条件、検査条件および解モデルの集合にそれぞれ対応するインデックスを表示装置に表示し、入力装置で選択されたインデックスに対応する制約、解モデルの集合および表示条件、あるいは制約、解モデルの集合、表示条件および検査条件を記憶装置から取得し、記憶装置から取得した解モデルの集合および検査条件を前記解モデル検査装置に送信し、該解モデル検査装置から前記検査条件に合致する解モデルの集合を受信し、記憶装置から取得した解モデルの集合、あるいは前記解モデル検査装置から受信した解モデルの集合を、記憶装置から取得した表示条件に従って表示装置に表示する解モデル表示装置とを備える
ことを特徴とする制約充足における解モデルの表示処理装置。
【請求項９】
前記解モデル表示装置は、入力装置で選択されたインデックスに対応する制約を変換した解モデルの集合を一意に特定できるように、解モデル生成装置における制約と解モデルの集合との対応関係も記憶装置に出力して記憶させる
ことを特徴とする請求項８記載の制約充足における解モデルの表示処理装置。
【請求項１０】
前記解モデル表示装置は、入力装置で選択されたインデックスに対応する検査条件と関係する表示条件が一意に特定でき、表示条件の選択が省略できるように、表示条件と検査条件との対応関係も記憶装置に出力して記憶させる
ことを特徴とする請求項８記載の制約充足における解モデルの表示処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人工知能の分野である制約充足を用いたソフトウェア開発において、解モデルを用いて制約をデバッグする際の表示処理技術に関する。
【背景技術】
【０００２】
制約充足は、解決したい問題を制約変数の集合、各制約変数の値の集合（ドメイン）、および制約変数間の制約の集合という形で定式化し、制約を満たす制約変数の値の組み合せ、つまり前記解決したい問題の解を求める技術である。制約充足の特徴は、問題を正しく定式化できれば、処理手続きを与えずとも正しい解を出力できることにある。従って、正しい解を得るためには、定式化が問題を正しく表現していることを確認する必要がある。しかし、解決したい問題が複雑な場合、制約の数も多くなり複雑になるため、その確認は容易ではない。
【０００３】
この確認を行う従来の技術として、制約を解モデルの集合に変換し、その解モデルの集合上で制約の誤りを発見する方法（非特許文献１）がある。解モデルは、制約を満たす制約変数の値の組み合わせ、即ち解（のパターン）を表現したものである。例えば、制約変数ｘ，ｙ，ｚに対する制約（ｘ＝ｙ＝ｚ）∨（（ｘ＝６）∧（ｙ≠ｚ））が与えられた場合、解モデルの集合として２つの解モデル（ｘ，ｙ，ｚ）＝（｛α｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝）および（ｘ，ｙ，ｚ）＝（｛６｝：：｛｝，｛α｝：：｛β｝，｛β｝：：｛α｝）が得られる。
【０００４】
解モデルにおける各制約変数の値は「肯定集合：：否定集合」という形式で記述され、肯定集合はその制約変数が取り得る値を表し、否定集合は取り得ない値を表す。例えば、前者の解モデルの各制約変数の値の肯定集合は変数αを用いて「｛α｝」なので、この制約は、ｘとｙとｚとが等しい値の組み合わせを解とすることが読み取れる。また、後者の解モデルの制約変数ｙとｚの否定集合はそれぞれ、「｛β｝」，「｛α｝」となり、ｚとｙの肯定集合要素なので、ｚとｙとが等しくなくｘが６の時も解となることが読み取れる。
【０００５】
このように制約から変換される解モデルの集合は、問題の解の全てのパターンを網羅している。そのため、制約から変換された解モデルの集合中に、本来は解のパターンでない解モデルが含まれていることや本来は解のパターンとなるべき解モデルが含まれていないことを調べる、つまり解モデルを検査することで、正しい解が得られないという制約の誤りを発見できる。
【非特許文献１】中島、大石、山村「モデル生成にもとづく制約充足の検査手法」人工知能学会  第７３回知識ベースシステム研究会資料、ＳＩＧ−ＫＢＳ−Ａ５０４、２００６、ｐｐ．１３５−１４０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、制約中に出現する制約変数の数が増加すると解モデルを構成する制約変数の値の数も増加し、解モデルの可読性が低下する。また、解モデルの集合の要素数は、制約中に出現する論理記号の選言（“または”，“∨”）の数の増加によって指数オーダーで増加する。このため制約が複雑な場合に、制約を解モデルの集合に変換しただけでは、膨大な解モデルの集合に対して検査を行わなければならず、多大な労力を要していた。
【０００７】
また、実際の制約のデバッグでは、解モデルの検査で制約に誤りがあることを発見するだけでなく、誤り部分を特定し、修正する必要がある。さらに、その修正で発見した誤りが修正される保証はないので、修正された制約を再度、解モデルの集合に変換し、検査して正しい解が得られるか確認しなければならない。このように制約の修正を試行錯誤的に行うため、制約とそれを変換した解モデルの集合がデバッグの過程で数多く作成される。これらの制約とその解モデルの集合は、例えば、現在修正中の制約を破棄して、過去に作成した制約に戻って修正をやり直すことや、過去に作成した制約とその解モデルの集合を参照しながら現在の制約を修正することに利用される。
【０００８】
前述した従来の技術では、単に制約から解モデルの集合への変換を行うのみで、デバッグの過程で作成される制約とその解モデルを管理し、オペレータからの要求に応じてそれらを比較できるように表示する機構がなかったために、デバッグの過程で作成される過去の制約とその解モデルの集合を利用して、制約のデバッグを行うことができなかった。
【０００９】
このため、本発明では、制約充足における制約の誤りを解モデルの集合で発見して制約のデバッグを行う時、オペレータからの条件の指定にもとづいて、表示する解モデルや解モデル中の制約変数の値を制限して、制約から変換される解モデルの集合の可読性を高めた形式で表示することと、同一の解モデルの集合を異なる条件のもとで比較できるように表示することと、異なる解モデルの集合を同一の条件のもとで比較できるように表示することとを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明では、制約とその制約を変換した解モデルの集合、解モデルを表示する時の表示方法を記述した表示条件、表示すべき解モデルの条件を記述した検査条件を記憶し管理する処理と、オペレータが指定する制約と表示条件の組み合わせ毎に、あるいは制約と表示条件と検査条件の組み合わせ毎に、指定された制約を変換した解モデルの集合中の解モデルを条件に従って表示する処理とを具備し、管理している解モデルの集合をオペレータからの要求に応じてそれぞれ表示することで、それらを参照し比較することを可能にする。
【００１１】
これを可能にするために、本発明では、制約を入力とし、該制約を解モデルの集合に変換して出力する解モデル生成装置と、解モデルの集合および検査条件を入力とし、該解モデルの集合から該検査条件に合致する解モデルを取り出して出力する解モデル検査装置と、前記解モデル生成装置および解モデル検査装置の両方を含むコンピュータもしくは前記解モデル生成装置または解モデル検査装置のいずれか一方を含み且つ他方とネットワークを介して通信可能なコンピュータもしくは前記解モデル生成装置および解モデル検査装置の両方とネットワークを介して通信可能なコンピュータあるいは当該コンピュータとネットワークを介して接続される他のコンピュータとを用いて、以下に述べる処理を行う。
【００１２】
なお、前記コンピュータあるいは当該コンピュータとネットワークを介して接続される他のコンピュータは、後述するように、解モデル生成装置制御手段、成果物管理手段、解モデル表示手段および解モデル検査装置制御手段からなる解モデル表示装置を含むものとする。
【００１３】
（成果物と解モデルの集合の蓄積）
まず、オペレータは、デバッグの過程で作成される制約、表示条件および検査条件などの成果物を入力装置から入力する。この入力に対して本発明における成果物管理手段は、解モデル生成装置制御手段と連携して、図１の処理フローを実行する。
【００１４】
即ち、成果物管理手段は、入力された情報の種別を判定し（図１；ｓ１１，ｓ１２）、表示条件と検査条件が入力された場合は、そのまま記憶装置に出力して記憶させ（図１；ｓ１３）、制約が入力された場合は、該入力された制約を解モデル生成装置制御手段へ渡す（図１；ｓ１４）。解モデル生成装置制御手段は受け取った制約を解モデル生成装置に送信し（図１；ｓ１５）、該解モデル生成装置からその制約を変換した解モデルの集合を受信し、成果物管理手段へ渡す（図１；ｓ１６，ｓ１７）。成果物管理手段は、入力された制約とその制約を変換した解モデルの集合、およびそれらの対応関係を記憶装置に出力して記憶させる（図１；ｓ１３）。
【００１５】
また、オペレータは、表示条件と検査条件を入力する時に、両者を対応付けることができ、その対応関係も記憶装置に出力して記憶できる。この対応関係は、制約を変換した解モデルの集合から検査条件に合致する解モデルのみを表示する時に適用する表示条件を意味している。よって、１つの表示条件に対して、複数の検査条件を対応付けることが可能である。
【００１６】
（記憶装置中に記憶された成果物と解モデルの集合のインデックスの表示）
これら記憶装置に蓄積された成果物と解モデルの集合は、成果物管理手段によって、図２の処理フローに従い、対応するインデックスが表示装置に表示される。即ち、成果物管理手段は、記憶装置から成果物と解モデルの集合を取得し（図２；ｓ２１）、取得した成果物と解モデルの集合に対応するインデックスを表示装置に表示する（図２；ｓ２２）。この表示処理においては、制約と解モデルの集合との対応関係、および表示条件と検査条件の対応関係がわかるように、インデックスを表形式、あるいは木形式のような階層構造で表示する。
【００１７】
その表示を見ることで、オペレータは記憶装置中に蓄積されている成果物にはどのようなものがあるのか確認でき、例えば、デバッグにおいて参照したい制約を指定することが可能になる。
【００１８】
（記憶装置中に記憶された成果物と解モデルの集合の削除）
オペレータが入力装置から記億装置中の成果物の削除の指示を入力した時、成果物管理手段は、図３の処理フローに従い、選択された成果物を記憶装置から削除する。即ち、成果物管理手段は、削除指示された情報の種別を判定し（図３；ｓ３１，ｓ３２）、検査条件を削除する場合は、検査条件のみを削除する（図３；ｓ３３）。また、制約を削除する場合は、制約とその制約を変換した解モデルの集合の両方を記憶装置から削除する（図３；ｓ３４）。表示条件を削除する場合は、削除する表示条件に対応付けられた検査条件がないなら（図３；ｓ３５）、表示条件のみを削除し（図３；ｓ３６）、ある場合はその表示条件とそれら検査条件の両方を記憶装置から削除する（図３；ｓ３７）。
【００１９】
（記憶装置中に記憶された解モデルの集合の表示）
オペレータが入力装置から記憶装置中の制約および表示条件、あるいは制約、表示条件および検査条件のインデックスを選択することで、その条件の組み合せ方に従って、その制約を変換した解モデルの集合を表示装置に表示する。
【００２０】
この表示処理において、成果物管理手段、解モデル表示手段および解モデル検査装置制御手段は連携して、図４の処理フローを実行する。
【００２１】
このフローでは、まず選択された制約にもとづいて、成果物管理手段がその制約を変換した解モデルの集合を記憶装置から取得する（図４；ｓ４１，ｓ４２）。さらに選択された表示条件を記憶装置から取得して（図４；ｓ４１，ｓ４２）、その解モデルの集合と表示条件を解モデル表示手段へ渡す（図４；ｓ４４）。
【００２２】
この際、検査条件が選択されている、あるいは選択された表示条件に検査条件が対応付けられているのなら（図４；ｓ４３）、解モデル表示手段へ解モデルの集合を渡す前に、成果物管理手段は前記検査条件を記憶装置から取得し、取得した解モデルの集合と検査条件を解モデル検査装置制御手段へ渡す（図４；ｓ４６）。そして解モデル検査装置制御手段は、受け取った解モデルの集合と検査条件を解モデル検査装置に送信し（図４；ｓ４７）、該解モデル検査装置から検査条件に合致する解モデルからなる解モデルの集合を受信する（図４；ｓ４８）。そして受信した解モデルの集合を成果物管理手段へ渡し、成果物管理手段はｓ４２の処理で記憶装置から取得した解モデルの集合を、新たに取得した解モデルの集合に置き換えて（図４；ｓ４９）、解モデル表示手段に渡す（図４；ｓ４４）。
【００２３】
解モデル表示手段は、受け取った表示条件の内容に従って、受け取った解モデルの集合を表示装置に表示する（図４；ｓ４５）。
【００２４】
前述した検査条件とは、解モデルの集合中から取り出して表示したい解モデルの条件を記述したものである。検査条件の記述形式の例としては、データベースにおける問い合わせ、つまりＳＱＬのｗｈｅｒｅ節のような論理式があげられる。
【００２５】
また、前述した表示条件とは、解モデルの集合を表示する時の表示方法を記述したもので、以下の条件が記述されたものである。
１．表示する制約変数の値の指定
２．表示する解モデルの直接指定
３．解モデル中の肯定集合あるいは否定集合の要素の表示・非表示の切り替え
４．制約変数の値の表示順
５．集合中の全ての解モデルにおいて、値が空である制約変数の値の表示・非表示の切り替え。
【００２６】
具体例として、２つの解モデルからなる解モデルの集合（ｘ，ｙ，ｚ）＝（｛｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝），（｛｝：：｛｝，｛α｝：：｛β｝，｛β｝：：｛α｝）で説明する。
【００２７】
１．では、オペレータが表示する制約変数を指定する。例えば、表示する制約変数をｘおよびｙとすることで、ｚの値が省略して表示されることになる。つまり、前記解モデルの集合は、表示装置に、（ｘ，ｙ）＝（｛｝：：｛｝，｛α｝：：｛｝），（｛｝：：｛｝，｛α｝：：｛β｝）と表示される。
【００２８】
２．では、オペレータが表示する解モデルを直接指定する。例えば、表示する解モデルを１番目の解モデルと指定することで、前記解モデルの集合の２番目の解モデルは表示が省略される。つまり表示装置には、（ｘ，ｙ，ｚ）＝（｛｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝）の解モデルの集合が表示される。
【００２９】
３．では、解モデル中の肯定集合／否定集合の要素の表示・非表示を指定する。例えば、否定集合を非表示と指定すると、前記解モデルの集合は、表示装置に（ｘ，ｙ，ｚ）＝（｛｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝），（｛｝：：｛｝，｛α｝：：｛｝，｛β｝：：｛｝）と表示され、否定集合の値は省略される。
【００３０】
４．では、解モデルの各制約変数の値の表示順を指定する。例えば（ｘ，ｚ，ｙ）と順番を指定することで、前記解モデルの集合は、表示装置に、（ｘ，ｚ，ｙ）＝（｛｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝），（｛｝：：｛｝，｛β｝：：｛α｝，｛α｝：：｛β｝）と表示されることになる。
【００３１】
５．では、全ての解モデルの値が空である制約変数の値の表示・非表示を指定する。値が空であるとは、肯定集合と否定集合が空集合、即ち「｛｝：：｛｝」となる値のことである。空である制約変数の値を非表示にすると、前記解モデルの集合は、ｘの値が省略され、表示装置に（ｙ，ｚ）＝（｛α｝：：｛｝，｛α｝：：｛｝），（｛α｝：：｛β｝，｛β｝：：｛α｝）と表示される。
【００３２】
この表示条件は、解モデル表示手段が保持する解モデルの集合そのものを変更するわけではない。あくまで表示装置に表示する時に、解モデルの集合の表示を制限するために用いられる。
【００３３】
オペレータが入力する制約および表示条件の選択、あるいは制約、表示条件および検査条件の選択の組み合わせにおいては、それぞれ表示条件を省略することができる。省略して制約のみを選択した場合は、図４の処理ｓ４４で、事前に設定しておくデフォルトの表示条件を成果物管理手段が解モデル表示手段へ渡す。また、制約および検査条件のみ選択した場合は、成果物管理手段が、検査条件と対応する表示条件が存在するか記憶装置を調べ、存在するならその表示条件を、存在しないならデフォルトの表示条件を解モデル表示手段へ渡す。
【００３４】
解モデルの集合を表示装置に表示する時、入力された制約および表示条件、あるいは制約、表示条件および検査条件の組み合わせの異なる組み合わせ毎に、解モデルの集合を別画面または別ウインドウに表示する。このようにすることで、同一の制約を変換した解モデルの集合を異なる条件のもとで複数表示することや、いくつかの制約を変換した各解モデルの集合を同一の条件のもとでそれぞれ表示することが可能になり、解モデルの集合を自由に参照できるようになる。
【００３５】
（表示中の解モデルの集合の表示条件の変更とその変更の画面への反映）
ある表示条件のもとで、ある解モデルの集合を表示装置に表示している時、入力装置からオペレータが前記表示条件の１．〜５．の条件の変更を入力すると、成果物管理手段と解モデル表示手段が連携して図５の処理フローを実行し、表示装置におけるその解モデルの集合の表示に変更を反映させる。まず、成果物管理手段は、入力装置から入力された表示条件の変更内容を解モデル表示手段に指示する（図５；ｓ５１，ｓ５２）。解モデル表示手段は、表示中の解モデルの集合の表示条件に前記表示条件の変更内容を反映させ（図５；ｓ５３）、変更後の表示条件のもとで、解モデルの集合を表示装置に再表示する（図５；ｓ５４）。
【００３６】
この時、変更された表示条件は、図６の処理フローに示すように、オペレータが入力装置から保存の指示を入力することで解モデル表示手段から成果物管理手段に渡され（図６；ｓ６１，ｓ６２）、成果物管理手段が記憶装置に出力して記憶させる（図６；ｓ６３）。
【発明の効果】
【００３７】
本発明によれば、制約充足における制約の誤りを解モデルの検査で発見し制約のデバッグを行う場合に、解モデルの集合をオペレータが指定する形式で表示できるようになり、解モデルの集合の可読性を高めることができる。また、解モデルの集合を複数表示できるようになるため、これらを参照し比較しながら制約のデバッグを行えるようになる。
【発明を実施するための最良の形態】
【００３８】
図７は本発明の制約充足における解モデルの表示処理方法を実施する装置の実施の形態の一例を示すもので、図中、１は入力装置、２は表示装置、３は解モデル生成装置、４は解モデル検査装置、５はコンピュータである。
【００３９】
入力装置１は、オペレータがコンピュータ５に所定の情報、ここでは制約、表示条件、検査条件などの成果物や、それら成果物の表示と削除の指示、表示中の解モデルの集合の表示条件の変更指示などを入力するためのものである。表示装置２は、コンピュータ５の所定の処理結果、ここでは入力された成果物のインデックスや、オペレータが指定した制約を変換した解モデルの集合を、同じくオペレータが指定した表示条件や検査条件にもとづいて表示し、オペレータに提示するためのものである。
【００４０】
解モデル生成装置３は、制約を入力とし、その制約を解モデルの集合に変換して出力するためのものである。
【００４１】
解モデル検査装置４は、解モデルの集合および検査条件を入力とし、その解モデルの集合から該検査条件に合致する解モデルを取り出して出力するためのものである。
【００４２】
コンピュータ５は、図１乃至図６に示した処理フローに対応する所定のプログラムに従い各装置を制御するとともに、この際、記憶装置６および解モデル表示装置７を構成する。
【００４３】
記憶装置６は、入力装置１より入力される成果物や、解モデル生成装置３が変換した解モデルの集合を記憶するためのものである。
【００４４】
解モデル表示装置７は、解モデル生成装置制御手段７１、成果物管理手段７２、解モデル表示手段７３および解モデル検査装置制御手段７４を備え、図１乃至図６に示した処理フローに対応する機能、即ち入力装置１から入力された制約、表示条件、検査条件等の成果物を記憶装置６に出力して記憶させ、入力装置１から入力された制約を解モデル生成装置３に送信し、該解モデル生成装置３から前記制約を変換した解モデルの集合を受信し、その解モデルの集合を記憶装置６に出力して記憶させ、記憶装置に記憶されている前記成果物と解モデルの集合にそれぞれ対応するインデックスを表示装置２に表示し、入力装置１で選択されたインデックスに対応する制約、表示条件、検査条件に応じて、それぞれ、その制約を変換した解モデルの集合、表示条件、検査条件を記憶装置６から取得し、取得した解モデルの集合および検査条件を解モデル検査装置４に送信し、該解モデル検査装置４から前記検査条件に合致する解モデルの集合を受信し、記憶装置６から取得した解モデルの集合、あるいは解モデル検査装置４から受信した解モデルの集合を表示条件に従って表示装置２に表示し、さらに、入力装置１から入力された表示中の解モデルの集合の表示条件の変更指示に対応して、変更された表示条件のもとで表示装置２にその解モデルの集合を再表示させる機能を有する。
【００４５】
詳細には、解モデル生成装置制御手段７１は、成果物管理手段７２から渡される制約を解モデル生成装置３に送信し、その制約を変換した解モデルの集合を受信し、これを成果物管理手段７２へ渡す。
【００４６】
成果物管理手段７２は、入力装置１より入力された制約、表示条件、検査条件および前記受信した解モデルの集合を記憶装置６に出力して記憶させ、記憶装置６に記憶されている制約、表示条件、検査条件および解モデルの集合を、入力装置１から選択可能とするためにそれぞれ対応するインデックスを表示装置２に表示し、入力装置１で選択されたインデックスに対応する制約、表示条件および検査条件から、記憶装置６に記億されている制約を変換した解モデルの集合、表示条件、検査条件を探索し、該探索した解モデルの集合および検査条件を解モデル検査装置制御手段７４を介して解モデル検査装置４に送信し、該解モデルの集合中から検査条件に合致する解モデルの集合を受信し、記憶装置６から取得した解モデルの集合および表示条件、あるいは解モデル検査装置４を用いて取得した検査条件に合致する解モデルの集合および表示条件を解モデル表示手段７３へ渡す。
【００４７】
解モデル表示手段７３は、受け取った解モデルの集合を表示条件に従って表示装置２に表示し、表示装置２に表示中の解モデルの集合の表示方法の変更が入力装置１から入力された場合は、その変更を反映した表示条件のもとでその解モデルの集合を表示装置２に再表示する。
【００４８】
解モデル検査装置制御手段７４は、成果物管理手段７２から渡される解モデルの集合および検査条件を解モデル検査装置４に送信し、検査条件に合致する解モデルの集合を受信し、これを成果物管理手段７２へ渡す。
【００４９】
本装置により、制約充足における制約の誤りを解モデルの検査で発見し制約のデバッグを行う場合に、解モデルの集合をオペレータが指定する形式で表示できるようになり、解モデルの集合の可読性を高めることができる。また、解モデルの集合を複数表示できるようになるため、これらを参照し比較しながら制約のデバッグを行えるようになる。
【００５０】
なお、前述した実施の形態では、１つのコンピュータ５に記録媒体もしくは通信回線を介して、図１乃至図６のフローに示された手順を備えるプログラムをインストールすることによって記憶装置６および解モデル表示装置７を実現した例を示したが、適切な通信路で相互に接続された複数のハードウェア上に分散して実現してもよい。また、前述した実施の形態では、解モデル生成装置３および解モデル検査装置４をコンピュータ５とは別の装置として実装し、適切な通信路でコンピュータ５（内の各装置）と接続するようにした例を示したが、これらのいずれか一方もしくは両方を記憶装置６および解モデル表示装置７とともにコンピュータ５上に実現するようにしても良い。また、解モデル表示装置７における各手段は、適切な通信路で相互に接続された複数のハードウェア上に分散して存在し、相互に通信し合いながら実行することもできる。
【実施例１】
【００５１】
本発明による制約のデバッグについて例を挙げて説明する。
【００５２】
まず、前提として既に、制約１〜３、表示条件１、検査条件１〜３が本発明の解モデル表示装置７にファイルとして入力されており、表示条件１に対して検査条件２および３が対応付けられているとする。この時、記憶装置６には、図８に示すように、これらのファイルおよび制約を変換した解モデルの集合（それぞれ解モデルの集合１から３とする）のファイル１１，１２，１３，１４が記憶されており、さらに、それらの対応関係に関しては、例えば対応表１５，１６として記憶されているものとする。
【００５３】
この状態からオペレータが制約４「（ｘ＝ｙ＝ｚ）∨（（ｘ＝６）∧（ｙ≠ｚ））」を作成し、ファイルとして入力装置１から入力すると、図１のｓ１１，ｓ１２，ｓ１４，ｓ１５，ｓ１６，ｓ１７，ｓ１３と順に実行し、記憶装置６に制約４のファイルおよび制約４を変換した解モデルの集合４のファイルを図８のファイル１１および１２に追加する。この時、非特許文献１の記述に従って、各制約変数の値を「肯定集合：：否定集合」という形式で、解モデルの集合４の内容を記述すると、「（ｘ，ｙ，ｚ）＝（｛α｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝），（｛６｝：：｛｝，｛α｝：：｛β｝，｛β｝：：｛α｝）」となる。また，制約４と解モデルの集合４との対応関係を図８の制約と解モデルの集合の対応表１５に追加する。この時の記憶装置６内の状態を図９に示す。
【００５４】
さらに検査条件４「ｘの値における肯定集合が｛６｝」および表示条件２「表示順（ｘ，ｚ，ｙ）、表示する制約変数の値（ｘ，ｚ）、否定集合を非表示」を、それぞれファイルとして入力装置１から入力すると、図１のｓ１１，ｓ１２，ｓ１３と順に実行して、記憶装置６にこれらのファイルが追加される。さらに検査条件４が表示条件２と同時に入力されたので、両者に対応関係があるとみなし、図８の検査条件と表示条件の対応表１６に、検査条件４と表示条件２の対応関係を追加する。この時の記憶装置６内の状態を図１０に示す。
【００５５】
解モデル表示装置７は、記憶装置６に記憶されているファイルのインデックスとそれらの対応関係を、例えば図１１に示すような階層形式で表示装置２に表示する。図１１はＧＵＩあるいはＣＵＩを備え、その画面上からオペレータは、デバッグ作業で参照したい制約などの選択を行うことができ、その制約を変換した解モデルの集合を表示させることが可能である。
【００５６】
単純に制約４のみを選択した場合、表示条件を「全ての内容を制限なく表示する」として、解モデル表示装置７は図４のｓ４１，ｓ４２，ｓ４３，ｓ４４，ｓ４５を実行し、例えば、図１２に示すような表形式で、制約４と対応する解モデルの集合４を表示装置２に表示する。図１２の表は、２行で１つの解モデルを表現しており、上段が各制約変数の値の肯定集合、下段が否定集合になっている。図１２の解モデル１は前記解モデルの集合４の要素である解モデル（ｘ，ｙ，ｚ）＝（｛α｝：：｛｝，｛α｝：：｛｝，｛α｝：：｛｝）を表しており、図１２の解モデル２は解モデル（ｘ，ｙ，ｚ）＝（｛６｝：：｛｝，｛α｝：：｛β｝，｛β｝：：｛α｝）を表している。
【００５７】
制約４と表示条件２を組み合わせて入力した場合、解モデル表示装置７は図４のｓ４１，ｓ４２，ｓ４３，ｓ４４，ｓ４５を実行し、表示条件２に従って、解モデルの集合４を表示する。表示条件２は、表示順（ｘ，ｚ，ｙ）という指定があるので、図１２のカラムのｚとｙを入れ替えた状態で表示する。また、表示する制約変数の値はｘおよびｚに関するものだけなので、ｙのカラムを表示しない。さらに、否定集合は表示しないため、解モデル１と解モデル２の下段は表示しない。従って、制約４と表示条件２を組み合わせた場合に表示装置に表示される解モデルの集合４は、図１３に示すようになる。
【００５８】
制約４と表示条件２と検査条件４を組み合わせて入力した場合は、解モデル表示装置７は図４のｓ４１，ｓ４２，ｓ４３，ｓ４６，ｓ４７，ｓ４８，ｓ４９，ｓ４４，ｓ４５と順に実行する。この時、ｓ４６からｓ４９の処理において、解モデルの集合４の中から、検査条件４「ｘの値における肯定集合が｛６｝」に合致する解モデル、即ち（ｘ，ｙ，ｚ）＝（｛６｝：：｛｝，｛α｝：：｛β｝，｛β｝：：｛α｝）が取り出されるため、図１２における解モデル２を表示条件２に従って表示することになる。従って、制約４と表示条件２と検査条件４を組み合わせた場合に表示装置２に表示される解モデルの集合４は、図１４に示すようになる。
【００５９】
このようにして、解モデルの集合が含む解モデルの数が膨大になった場合や、制約変数の数が増加し解モデルの値の数が多い場合でも、解モデルの集合の表示させたい情報を表示条件や検査条件として指定することで、検査に必要な情報のみを表示させることができ、検査を簡単に行うことができるようになる。
【００６０】
また、図１２から図１４をそれぞれ別画面や別ウインドウに表示させ、オペレータが表示を切り替えることで、各条件にもとづいて表示された解モデルの集合４を比較することができるようになる。
【００６１】
もし、表示条件１と、それぞれ制約１、制約２、制約３、制約４の組み合わせを選択した場合、表示条件１のもとで解モデルの集合１から４をそれぞれ別画面や別ウインドウに表示させ、オペレータが表示を切り替えることで、表示条件１にもとづいて表示装置に表示された各解モデルの集合を比較することができるようになる。
【００６２】
本発明装置では、表示装置２に表示中の解モデルの集合の表示方法を変更し、それをすぐさま表示装置２に反映することができる。例えば、図１４が表示装置２に表示されている時、オペレータが否定集合を表示するように入力装置１から表示方法の変更を指示したとすると、図５の各処理を行って、図１４において表示されていない解モデル２の下段を表示させることができる。
【００６３】
この時、表示条件は「表示順（ｘ，ｚ，ｙ）、表示する制約変数の値（ｘ，ｚ）」となっており、オペレータはこれの保存を入力装置１から指示し、解モデル表示装置７が図６の処理を実行することで、表示条件３として記憶装置６に保存することができる。
【００６４】
また、オペレータは、図１１の画面上から、削除する制約、表示条件、検査条件を選択できる。例えば、制約１を選択した場合は、図３のｓ３１，ｓ３２，ｓ３４の処理が実行され、制約１と解モデルの集合１のファイルが記憶装置６から削除され、さらに図１０の制約と解モデルの集合の対応表１５から制約１と解モデルの集合１との対応関係を示す行が削除される。この時の記憶装置６内の状態を図１５に示す。
【００６５】
上記のように、制約のデバッグの過程で作成される成果物を管理することで、解モデルの集合を参照しつつ、デバッグを進めることが可能になる。
【図面の簡単な説明】
【００６６】
【図１】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図２】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図３】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図４】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図５】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図６】本発明の制約充足における解モデルの表示処理方法の処理のフローを示す図
【図７】本発明の制約充足における解モデルの表示処理装置の実施の形態の一例を示す構成図
【図８】記憶装置に保存されている情報の一例を示す説明図
【図９】記憶装置に保存されている情報の一例を示す説明図
【図１０】記憶装置に保存されている情報の一例を示す説明図
【図１１】記憶装置に保存されているファイルのインデックスの表示例を示す説明図
【図１２】解モデルの集合の表示例を示す説明図
【図１３】解モデルの集合の表示例を示す説明図
【図１４】解モデルの集合の表示例を示す説明図
【図１５】記憶装置に保存されている情報の一例を示す説明図
【符号の説明】
【００６７】
１：入力装置、２：表示装置、３：解モデル生成装置、４：解モデル検査装置、５：コンピュータ、６：記憶装置、７：解モデル表示装置、７１：解モデル生成装置制御手段、７２：成果物管理手段、７３：解モデル表示手段、７４：解モデル検査装置制御手段。
【図１】
2008287411.tif 000003
【図２】
2008287411.tif 000004
【図３】
2008287411.tif 000005
【図４】
2008287411.tif 000006
【図５】
2008287411.tif 000007
【図６】
2008287411.tif 000008
【図７】
2008287411.tif 000009
【図８】
2008287411.tif 000010
【図９】
2008287411.tif 000011
【図１０】
2008287411.tif 000012
【図１１】
2008287411.tif 000013
【図１２】
2008287411.tif 000014
【図１３】
2008287411.tif 000015
【図１４】
2008287411.tif 000016
【図１５】
2008287411.tif 000017