(57)【特許請求の範囲】
【請求項１】
複数の推論ユニットが相互に通信を行って入力された問題を解決する協調推論装置において、
前記推論ユニットは、入力された問題を解決するための推論を行う推論手段と、前記推論手段の所定の推論状態を記憶する記憶手段と、他の推論ユニットに対して交渉を行うための交渉手段と、前記交渉手段の所定の交渉状況に基づいて前記記憶手段に記憶された推論状態を管理する推論状態管理手段とを具備し、
前記推論手段は、
入力された問題を、推論知識に基づいて推論する推論駆動部と、
前記推論駆動部によって推論を行った結果、自己の推論ユニット内部では解決できないことが判明した場合に、前記交渉手段に対して他の推論ユニットに対する交渉を依頼する交渉依頼部と、
前記交渉手段から渡された他のユニットからの提案内容に従って推論を行った場合に、提案内容を許容できる解が得られたか否かを判定し、この判定結果を交渉手段に通知する提案内容検討部とを備え、
前記交渉手段は、
入力された問題を前記推論駆動部にて推論した推論状態を前記記憶手段に書き込む手段と、
前記他の推論ユニットに対する提案内容を前記推論手段へ推論させる手段と、
前記他の推論ユニットからの提案内容を、所定の条件に従って合意するか否かを判断する手段と、
この判断する手段により、合意すると判断した場合に、前記所定の提案内容を確定した新たな推論状態として前記記憶手段に書き込む手段とを備え、
前記交渉手段により確定された推論状態が得られた後に行った推論が行き詰まった場合には、前記書き込む手段にて前記記憶手段に書き込まれた確定された新たな推論状態が得られた以降の前記推論手段による推論により得られた推論状態を破棄し、前記交渉手段により前記記憶手段に保存されていた確定された推論状態に基づいて、前記推論手段にて新たな推論を行うようにしたことを特徴とする協調推論装置。
【請求項２】
前記交渉手段は、新たな提案内容を推論状態として前記記憶手段に書き込むことを他のユニットに通知する手段を備えていることを特徴とする請求項１に記載の協調推論装置。
【請求項３】
前記交渉手段は、複数の交渉を並行して行うことを特徴とする請求項１に記載の協調推論装置。
【請求項４】
前記推論ユニットは、各手段が所定の機能を実現する複数のモジュールを備え、これら複数のモジュールが、個々の推論ユニットごとの処理手順を定義する第１の層に属するモジュールと、所定の問題ごとの処理手順を定義する第２の層に属するモジュールと、各推論ユニット間の共通の処理手順を定義する第３の層に属するモジュールとの少なくとも３層に区分されていることを特徴とする請求項１記載の協調推論装置。
【請求項５】
複数の推論ユニットのそれぞれが、入力された問題を解決するための推論を行う推論手段と、前記推論手段の所定の推論状態を記憶する記憶手段と、他の推論ユニットに対して交渉を行うための交渉手段と、前記交渉手段の所定の交渉状況に基づいて前記記憶手段に記憶された推論状態を管理する推論状態管理手段とを具備し、前記推論手段は、入力された問題を、推論知識に基づいて推論する推論駆動部と、前記推論駆動部によって推論を行った結果、自己の推論ユニット内部では解決できないことが判明した場合に、前記交渉手段に対して他の推論ユニットに対する交渉を依頼する交渉依頼部と、前記交渉手段から渡された他のユニットからの提案内容に従って推論を行った場合に、提案内容を許容できる解が得られたか否かを判定し、この判定結果を交渉手段に通知する提案内容検討部とを備え、前記交渉手段は、入力された問題を前記推論駆動部にて推論した推論状態を前記記憶手段に書き込む手段と、前記他の推論ユニットに対する提案内容を前記推論手段へ推論させる手段と、前記他の推論ユニットからの提案内容を、所定の条件に従って合意するか否かを判断する手段と、この判断する手段により、合意すると判断した場合に、前記所定の提案内容を確定した新たな推論状態として前記記憶手段に書き込む手段とを備えた協調推論装置を使用して、複数の推論ユニットが相互に通信を行って所定の問題を解決する協調推論方法であって、
前記交渉手段により確定された推論状態が得られた後に行った推論が行き詰まった場合には、前記書き込む手段にて前記記憶手段に書き込まれた確定された新たな推論状態が得られた以降の前記推論手段による推論により得られた推論状態を破棄し、前記交渉手段により前記記憶手段に保存されていた確定された推論状態に基づいて、前記推論手段にて新たな推論を行うようにしたことを特徴とする協調推論方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、推論ユニットを単位として並列推論を行う協調推論装置及び協調推論方法に関するものである。
【０００２】
【従来の技術】
計算機ネットワークの技術が発達し、計算機システムの構成方法が、一つの中央計算機ですべての処理を行う集中型のシステム構成から、ネットワーク接続された複数の計算機を用いて処理を行う分散型のシステム構成へと変化してきている。
【０００３】
人間の問題解決過程を計算機に模倣させることによって問題解決を行う人工知能技術を用いた問題解決の方法においても、一つの推論ユニットですべての処理を行う集中型の問題解決方法ではなく、複数の推論ユニットを用いて処理を行う分散型の問題解決方法が提案されている。
【０００４】
分散型の問題解決方法においては、推論ユニットそれぞれが、独自に問題解決のための目標を定め、そのためにとり得る処理の手順を推論する。ただし、個々の推論ユニット単独の推論では他の推論ユニットの推論結果と矛盾が起きたり、他の推論ユニットと協力しなければ問題が解決できない場合があるため、他の推論ユニットと情報交換を行って処理手順を修正し全体として整合性のある処理を行うように構成されることが望ましい。
【０００５】
この情報交換の手順を交渉という。現在までに、契約ネットプロトコルや統合交渉プロトコルに代表される様々な交渉プロトコルが提案されている。
【０００６】
まず、契約ネットプロトコルは、市場原理を模倣したもので、タスク割り当てのための情報交換の手順を提案したものである。ここでは、問題解決の過程において発生し当該推論ユニット単独では解決できない課題や、他の推論ユニットへ外注したほうが効率的な課題をタスクと呼ぶこととする。タスクを保有する推論ユニット（マネージャと呼ぶ）がタスクを公告すると、他の推論ユニット（契約者と呼ぶ）はそれぞれの状況に応じて該タスクを実行する契約を行うかどうかを推論し、契約を行いたいような状況にあるならば入札を行う。なお、どの推論ユニットもタスクを公告する場合にはマネージャの立場になる。
【０００７】
入札は、入札する側の推論ユニットがどの程度のコストでタスクを請け負えるかを添付して行う。このコストは、具体的には、現在の負荷やタスクの処理所要時間などである。公告を行った推論ユニットは、入札ごとの条件を比較し、最適な条件を提示した推論ユニットに対してタスクを落札する。例えば、いくつかの推論ユニットが協調してジョブをスケジューリングする場合、自己のタイムテーブルに配置できないジョブをタスクとして他の推論ユニットに振り替えることが考えられる。
【０００８】
契約ネットプロトコルについては、Ｒ．Ｇ．Ｓｍｉｔｈの論文「Ｔｈｅ  Ｃｏｎｔｒａｃｔ  Ｎｅｔ  Ｐｒｏｔｏｃｏｌ：Ｈｉｇｈ−Ｌｅｖｅｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ａｎｄ  Ｃｏｎｔｒｏｌ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｐｒｏｂｌｅｍ  Ｓｏｌｖｅｒ（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，Ｖｏｌ．２９，Ｎｏ．１２，ｐｐ．１１０４−１１１３，１９８０）」に詳しい。
【０００９】
次に、統合交渉プロトコルは、各推論ユニットが自分の行動プランの効用（利益）を最大化するという目的（経済的合理性）のために行動し、これによって、推論ユニット間の競合状態や協調の可能性に関しての合意点を見い出す方式を提案したものである。
【００１０】
ここでは、各推論ユニットが自分の都合に基づいてプラン（妥結案）の作成（プランニング）を行い、各プランを結合したジョイントプランを得る。さらに、ジョイントプランの中の各プランについてコストを計算し、コストを差し引いた効用が各推論ユニットにとって最もプラスとなる妥結案の集合（交渉集合）を得る。
【００１１】
ここで、妥結案の例は、会議の日程調整における日程の候補（例えば、「３日」「４日」「７日」など）である。また、交渉集合は妥結案の集合であり、前記の例では例えば「３日と４日」「４日と７日」などである。
【００１２】
妥結案にはそれぞれ評価値として「効用」が決定される。例えば「３日」の方が「７日」よりも好都合の場合、「３日」の効用＞「７日」の効用、となる。
【００１３】
この交渉集合によって競合／妥協／協調状況を定義し、各ユニットが自分にもっとも有益な妥結案をプランとして採用する。すなわち、「協調」は双方が歓迎する妥結案がある場合をいい、例えば「売ります」と「買います」の交渉が、双方にとって当初提示価格で合意される場合である。「妥協」は最善ではないが現状よりましな妥結案がある場合をいう。例えば、当初提示価格より若干値引きすれば売れる場合、在庫を抱えるよりは効用が大きい。
【００１４】
「競合」は妥結案がなく交渉が成立しない場合をいい、「競合」の場合には、さいころやくじのような確率的選択を導入し、いずれが損をするかを決定する（混合ジョイントプラン）ことにより合理的に交渉を進める。これは、合意が不成立の場合に放置すると問題が解決されないまま現状が進展せず、推論全体の課題が解決されないからである。確率的に決定することから、一方が損をし続けることはなく、結果的に放置するよりは良い結果が得られる。これによって協調／妥協／競合のすべての状態における交渉が可能となる。
【００１５】
このような前提で、推論ユニットがそれぞれ推論した妥結案を効用の高いものから提示し、相手の提示した妥結案が自分の妥結案よりも効用が大きいときに合意する。
【００１６】
統合交渉プロトコルについては、Ｇ．ＺｌｏｔｋｉｎとＪ．Ｓ．Ｒｏｓｅｎｓｃｈｅｉｎの論文「Ｃｏｏｐｅｒａｔｉｏｎ  ａｎｄ  Ｃｏｎｆｌｉｃｔ  Ｒｅｓｏｌｕｔｉｏｎ  ｖｉａ  Ｎｅｇｏｔｉａｔｉｏｎ  Ａｍｏｎｇ  Ａｕｔｏｎｏｍｏｕｓ  Ａｇｅｎｔｓ  ｉｎ  Ｎｏｎ−Ｃｏｏｐｅｒａｔｉｖｅ  Ｄｏｍａｉｎ（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｙｓｔｅｍｓ，Ｍａｎ，ａｎｄ  Ｃｙｂｅｒｎｅｔｉｃｓ，Ｖｏｌ．２１，Ｎｏ．６，ｐｐ．１３１７−１３２４．１９９１）」に詳しい。
【００１７】
【発明が解決しようとする課題】
上記のような従来技術では、ユニット間で様々な提案が行われることによってユニット間での整合性が実現されることが期待され、各ユニットは、それまでの交渉で築かれた最新の推論状態を合意成立のための最善策であることを暗黙の了解として推論を進めていた。
【００１８】
しかしながら、各ユニットは他のユニットの内部を知り得ないので、ある妥結案によって交渉が行き詰まった場合には、その妥結案を推論するための前提としていた既存の交渉内容が覆されることがある。このような場合、各ユニットは、推論の拠り所がなくなり、前提が覆された推論をやり直す必要があった。この結果、推論の効率化が困難であった。特に、このような従来の推論では、推論過程途中の様々な選択肢をツリー図の分岐と考えた場合、深さ優先探索を行うことになるが、ルートに近い分岐が覆されるたびに大幅な推論のやり直しを生じることになるという問題があった。
【００１９】
また、前記のように最新の交渉状態を前提として推論をしていると、解の範囲が狭くなり前提が覆される可能性が高くなるので、最新より少し前の交渉内容を前提に推論を行う方が良い解が発見されることも考えられるが、具体的にどの時点の交渉内容が適切であるかを判断するための基準を定めることは困難であった。さらに、推論が行き詰まったために推論をやり直す場合も、単なる事実上の提案や過程と、確定的合意事項の区別が明確でなかったので、具体的に推論のどの段階まで遡って（バックトラックして）やり直すべきかが明確でなく、処理が困難であった。
【００２０】
また、従来の交渉プロトコルでは、交渉の手続きとして必要な情報交換と、実際の交渉に利用される情報交換とが混在しており、これを実問題に適用する場合に、実装上の困難を伴っていた。すなわち、従来の交渉プロトコルを推論ユニットに実装する際には、「交渉の開始／終了及び交渉しようとする事項の特定」などの交渉の枠組みに関する手続き的な処理と、「数量は２０個とする／金額は１５００円とする」などの数量や金額のような具体的条件などの内容的な処理を、一体にプログラミングしていた。このため、プログラミングの内容が複雑で、実装上の困難を伴っていた。
【００２１】
本発明は、上記のような従来の課題を解決するために提案されたもので、その目的は、交渉の拠り所が明示されることにより、優れた効率で推論を行う協調推論装置、協調推論方法及び協調推論方法を実現するプログラムを記録した媒体を提供することである。
【００２２】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、複数の推論ユニットが相互に通信を行って所定の問題を解決する協調推論装置において、前記推論ユニットは、所定の問題を解決するための推論を行う推論手段と、前記推論手段の所定の推論状態を記憶する記憶手段と、他の推論ユニットに対して交渉を行うための交渉手段と、前記交渉手段の所定の交渉状況に基づいて前記記憶手段に記憶された推論状態を管理する推論状態管理手段とを具備し、前記交渉手段は、交渉開始前の所定の推論状態を格納する手段と、前記他の推論ユニットに対して所定の提案内容を提案する手段と、この手段により提案された所定の提案内容を、所定の条件に従って合意するか否かを判断する手段と、この手段により、合意すると判断した場合に、前記所定の提案内容を確定した新たな推論状態として前記記憶手段に書き込む手段とを含み、前記推論手段および交渉手段は、所定の問題を解決する過程により得られた推論状態、他の推論ユニットとの間で合意されて記憶手段に書き込まれた推論状態、および他の推論ユニットに対する交渉状況とに基づいて、前記所定の問題を解決するために推論を行い、前記推論手段は、その推論ユニット独自で得られる推論状態と、他の推論ユニットとの交渉の過程で得られる推論状態を推論すると共に、前記交渉手段により確定された推論状態が得られた後に行った推論が行き詰まった場合には、確定された推論状態が得られた後に行った推論により得られた推論状態を破棄し、前記交渉手段により前記記憶手段に保存されていた確定された推論状態に基づいて新たな推論を行うことを特徴とする。
【００２３】
請求項６の発明は、複数の推論ユニットのそれぞれが、所定の問題を解決するための推論を行う推論手段と、前記推論手段の所定の推論状態を記憶する記憶手段と、他の推論ユニットに対して交渉を行うための交渉手段と、前記記憶手段に記憶された推論状態を管理する推論状態管理手段とを具備し、前記交渉手段は、交渉開始前の所定の推論状態を格納する手段と、前記他の推論ユニットに対して所定の提案内容を提案する手段と、この手段により提案された所定の提案内容を、所定の条件に従って合意するか否かを判断する手段と、この手段により、合意すると判断した場合に、前記所定の提案内容を確定した新たな推論状態として前記記憶手段に書き込む手段とを有する協調推論装置を使用して、複数の推論ユニットが相互に通信を行って所定の問題を解決する協調推論方法において、前記推論手段により所定の問題を解決するための推論を行う推論ステップと、前記推論手段の所定の推論状態を記憶手段に記憶する記憶ステップと、前記交渉手段により他の推論ユニットに対して交渉を行うための交渉ステップと、前記交渉ステップにおけるの所定の交渉状況に基づいて前記記憶ステップで記憶された推論状態を推論状態管理手段により管理する推論状態管理ステップと、前記交渉ステップが、前記提案手段により一方の推論ユニットから他方の推論ユニットに対して提案を行うステップと、前記提案を受領した推論ユニットが前記判断手段により提案内容を検討して、その受け入れの諾否を提案側のユニットに回答するステップと、提案の受け入れが許諾された場合に、両推論ユニット間で提案内容に関する合意を行うステップと、合意された内容を前記書き込み手段により前記記憶手段に書き込むステップを含み、前記推論ステップおよび交渉ステップは、所定の問題を解決する過程により得られるべき推論状態、他の推論ユニットとの間で合意されて記憶手段に書き込まれた推論状態、および他の推論ユニットに対する交渉状況に関する情報とに基づいて、前記所定の問題を解決するために推論を行うことを特徴とする。
【００２４】
このような請求項１および請求項６の発明によれば、自己の推論ユニット内部で解決できない問題を、他の推論ユニットとの交渉で解決することが可能となる。特に、交渉の過程で得られた推論状態を、自己の内部で推論した推論状態と置き換えることにより、自己内部だけでは解決できなかった問題の解決が可能になると共に、その後は置き換えられた新たな推論状態を基礎として問題解決を行うことが可能になる。さらに、与えられた問題の種類や問題解決の方法によらず、各推論ユニット間の交渉において整合性のある推論状態が得られた任意の時点で、その推論状態をユニット間の合意によって確定状態とする。各推論ユニットはこの確定状態を拠り所としてその後の推論を進めることができるので、推論が効率化される。
【００２５】
請求項２の発明は、前記請求項１の発明において、前記推論手段は、入力された問題を、推論知識に基づいて推論する推論駆動部と、前記推論駆動部によって推論を行った結果、自己の推論ユニット内部では解決できないことが判明した場合に、前記交渉手段に対して他の推論ユニットに対する交渉を依頼する交渉依頼部と、交渉手段から渡された他のユニットからの提案内容に従って推論を行った場合に、提案内容を許容できる解が得られたか否かを判定し、この判定結果を交渉手段に通知する提案内容検討部を有していることを特徴とする。
【００２６】
請求項３の発明は、前記請求項１または請求項２の発明において、前記交渉手段は、新たな提案内容を推論状態として前記記憶手段に書き込むことを他のユニットに通知する手段を備えていることを特徴とする。
このような請求項３の発明によれば、他のユニットにおいても、新たな論理状態の書き込みを知ることができるので、提案を受けた側のユニットが提案を許諾した否かの判定が他のユニットから判別できる。
【００２７】
請求項４の発明は、前記請求項１，２又は３の発明において、前記交渉手段は複数の交渉を並行して行うことを特徴とする。請求項７の発明は、請求項６の発明において、前記交渉ステップは、前記交渉手段が複数の交渉を並行して行うことを特徴する。
このような請求項４及び請求項７の発明によれば、並行して行われた複数の交渉の中で最も早く合意に達したものをその後の推論の拠り所とすることができ、推論速度が向上する。
【００２８】
請求項５の発明は、前記請求項１の発明において、前記推論ユニットは、各手段が所定の機能を実現する複数のモジュールを備え、これら複数のモジュールが、個々の推論ユニットごとの処理手順を定義する第１の層に属するモジュールと、所定の問題ごとの処理手順を定義する第２の層に属するモジュールと、各推論ユニット間の共通の処理手順を定義する第３の層に属するモジュールとの少なくとも３層に区分されていることを特徴とする。
このような請求項５の発明では、推論ユニットの各手段を複数のモジュールから構成すると共に、各モジュールが共通の属性を有する層に区分されているので、解決する問題に合わせて種々の推論ユニットを構成する場合に、必要とする層のモジュールのみを変更するだけで新たな推論ユニットを作成できる。
【００３０】
【発明の実施の形態】
以下、本発明の協調推論装置の実施の形態（以下「実施形態」という）について、図面を参照して具体的に説明する。
【００３１】
（１）第１実施形態の構成
（１−１）第１実施形態の概略
第１実施形態は、生産計画を立案するスケジューリングシステム（以下本システムという）に本発明を適用したもので、前記請求項１、２、３、４の協調推論装置及び請求項７、８の協調推論方法に対応するものである。
【００３２】
スケジューリングシステムは、予め入力されたリソース情報を元にして、与えられたジョブをリソースに配置するシステムである。ここで、リソース情報とはジョブの処理に用いる各種資源に関する情報であり、例えば、「フライス盤が２台とボール盤が１台ある」とか「作業人員が２人確保できる」といったデータである。また、ジョブとは「製品Ａを製造するために第一工程：表面を削る（工数２時間）」とか「第二工程：ボール盤で穴を開ける（工数１時間）」といった処理すべき製造工程などのデータである。スケジューリングシステムは、リソースの空き状態を考慮しながら、どのジョブはいつからいつまでどのリソースを利用して製造するのかを決定し、最終的に全てのジョブを資源に割り付けることを目的に問題解決を行う。
【００３３】
ところで、リソースのまとまりをショップと呼ぶが、生産計画は、一つのジョブごとに完結するわけではなく、ジョブによっては複数のショップを一定順序で経る必要がある。このように、生産計画ではショップ間やジョブ間の順序関係など、各種の制約関係が存在する。そのため、前工程を担当するショップの納期を考慮しながら自工程の計画を立てなければならないなど、複数のショップをそれぞれ担当する推論ユニット間では、相互関係をもってスケジューリングを行う。なお、上記の例では、「フライス盤」「ボール盤」などがショップとなる。
【００３４】
第１実施形態の分散協調スケジューリングシステムは、単一のショップの生産計画を立案する単独の推論ユニットを複数用い、各推論ユニットを相互に接続し、互いの制約関係を考慮しながら全体で整合性のとれた生産計画を立案する。
【００３５】
（１−２）全体の構成
図１は、本システムの全体構成を示す機能ブロック図である。この図に示すように、本システムは、相互に交渉しながら問題を解決する複数の推論ユニットＡ，Ｂ及びＣがネットワークＮによって相互に接続されたものである。各推論ユニットＡ，Ｂ及びＣは、入出力装置Ｉを有し、この入出力装置Ｉはキーボードやマウスなどの入力装置及びビデオディスプレイなどの出力装置のように所定のデータを入出力できるものならば適宜使用可能である。各推論ユニットＡ，Ｂ及びＣにおいて、入力装置からリソース情報や入力ジョブを問題として入力すると、推論によって生産計画（スケジュール）が立案され、立案されたスケジュールが出力装置から出力される。
なお、本実施の形態においては、推論ユニットＡは旋盤１台のショップ、推論ユニットＢはフライス盤１台のショップ、推論ユニットＣはボール盤１台のショップのそれぞれにおける生産計画を担当する。
【００３６】
（１−３）推論ユニット
図２は、各推論ユニットＡ，Ｂ及びＣの構成を示す機能ブロック図である。この図に示すように、本実施の形態において、各推論ユニットの要部は、推論手段１、交渉手段５および通信手段８から構成されている。
【００３７】
（１−３−１）推論手段
各推論ユニットＡ，Ｂ及びＣは、各ユニットに接続された入出力装置Ｉから入力された各ショップに関する問題を、推論知識記憶手段２に予め蓄積されている推論知識に従って推論し、所定の解を得るための推論手段１を備えている。ここで、推論知識とは、入力されたジョブをリソースに配置する場合の規則や、妥結策を得るための仮説の生成規則（例えば、入力されたジョブやリソースの制約の変更をどのような規則に従って行うか）、あるいは選択肢がツリー図によって表現されている場合にどの程度の深さまで推論を行うかなどの規則、さらには問題を満足する解が複数ある場合の優先順位などである。
【００３８】
推論手段１は、入出力装置Ｉや他の推論ユニットから入力された問題を、前記推論知識に基づいて推論する推論駆動部（推論エンジン）１１と、推論駆動部１１によって推論を行った結果、自己の推論ユニット内部では解決できないことが判明した場合に、後述する交渉手段５に対して他の推論ユニットに対する交渉を依頼する交渉依頼部１２と、交渉手段から渡された他のユニットからの提案内容に従って推論を行った場合に、提案内容を許容できる解が得られたか否かを判定し、その判定結果を交渉手段に通知する提案内容検討部１３を有している。
【００３９】
この推論手段１による推論の過程で得られた解（および推論の結果得られた解）は、推論状態として入出力装置Ｉから出力されると共に、推論状態記憶手段３に格納される。すなわち、この推論状態記憶手段３には、次のような解が推論状態として記憶される。
(a) 入出力装置Ｉから入力された問題を推論することによって得られた各推論ユニット独自の解。この解は、交渉を開始する前の解であり、自己の推論ユニット内部で問題が解決されたものである。
(b) 他の推論ユニットとの交渉の過程で生じた解。すなわち、自己のユニットから他のユニットに対する提案に基づいて推論された解や、他のユニットからの提案に基づいて推論した解。
(c) 他の推論ユニットとの交渉の結果合意された確定状態の解。
これらの各解は、それぞれ複数づつ格納される場合がある。例えば、各ショップに対する問題が入力された場合や交渉の過程で、問題や交渉条件を満足する複数の解が存在することも有るので、その場合には複数の解が格納される。そのとき、複数の解の間の優先順位は、前記推論知識に従って定められる。
【００４０】
推論状態記憶手段３に記憶されている各推論状態（各解）は、状態（コンテキスト）管理手段４によって管理されている。この状態管理手段４は、推論手段１や後で述べる交渉手段の指令を受けて、推論状態記憶手段３に対する各推論状態の書き込みおよび読み出しを管理するものであり、推論や交渉の過程でどの推論状態を推論手段１が利用するかを決定する。
【００４１】
（１−３−２）交渉手段
各推論ユニットＡ，Ｂ及びＣは、他の推論ユニットとの間で交渉を行い、各ユニット間で整合性のとれた解を得るための交渉手段５を備えている。
この交渉手段５は、交渉に当たっての戦略を記憶する交渉戦略記憶手段６に接続されている。この記憶手段６に記憶されている交渉戦略とは、例えば、旋盤では「既に配置したジョブはなるべく動かさない」、フライス盤では「依頼を検討する際には、なるべく自分だけで解決する」、ボール盤では「依頼はできるかぎり受け入れる」などの規則が考えられる。なお、旋盤、フライス盤、ボール盤が、「なるべく他に影響が出ないように最小幅で交渉する」のように共通の戦略を持つことは差しつかえない。この交渉戦略は、提案の作成時や提案に対する回答の作成時に、前記推論手段１が推論を行うために前記推論知識と共に利用する。
【００４２】
交渉手段５は、前記推論手段１との間で提案や回答の作成に必要なデータを交換しながら交渉を進めるものであって、前記交渉戦略に従ってどのジョブについてどの仕切り時刻を交渉対象とするかを選択する対象選択手段５１と、選択対象とされたジョブや仕切り時刻を基礎にして他のユニットに対する提案を推論手段１に推論させる提案作成手段５２と、他のユニットからの提案について検討しこの提案内容が妥当なものかを推論手段１に推論させて判断する回答管理手段５３とを備えている。また、この回答管理手段５３は、交渉先の推論ユニットから通知された提案の受け入れの諾否に関する回答を受領する。こ交渉手段５は、前記回答管理手段５３が受領した回答の内容に従い他のユニットに対して合意するか否かを問い合わせる合意要求手段５４と、他のユニットからの合意要求に対して合意するか否かを判定する合意判定手段５５と、他の推論ユニットからの合意承諾信号の有無を判定し、前記状態管理手段４に対して合意した推論状態を確定状態として前記推論状態記憶手段３に記憶させる指示を与える確定処理手段５６とを備えている。
【００４３】
交渉手段５は、交渉の過程で必要とされる推論状態その他のデータを記憶する交渉状態記憶手段７に接続されている。すなわち、この交渉状態とは、交渉の対象として推論状態記憶手段３から取り出された推論状態や、交渉過程において他のユニットに提案される推論状態、あるいは他のユニットの提案や合意要求に対する回答の内容などである。この交渉状態記憶手段７は前記状態管理手段４にも接続され、前記確定処理手段５６の指示に従い、交渉状態記憶手段７に記憶されている交渉途中の推論状態を合意した確定状態として推論状態記憶手段３に記憶させる。
【００４４】
（１−３−３）通信手段
各推論ユニットＡ，Ｂ及びＣは、交渉及び合意のために他の推論ユニットＡ，Ｂ又はＣとネットワークＮを通じて通信するための通信手段８を備えている。この通信手段８は、交渉開始メッセージ／合意形成開始メッセージ／了承メッセージ／確定メッセージ／交渉キャンセルメッセージといった明示的な合意形成を行うためのメッセージ送受信手段８１と、交渉段階で使用される提案や再提案の内容を授受するためのデータ送受信手段８２とを備えている。ここで、前記メッセージ送受信手段８１は、また、送受信するメッセージが金額などの機密データを含む場合に、これを暗号化して送受信するための暗号化手段８３を備えている。
【００４５】
（２）第１実施形態の作用
第１実施形態における推論（スケジューリング）は次のように行われる。
【００４６】
（２−１）ジョブの内容
本システムでスケジューリングを行うには、まず利用者は、各ショップを担当する推論ユニットＡ，Ｂ及びＣに対し、当該ショップに関して作成したジョブ情報を入出力装置Ｉから入力する。
【００４７】
図３は、入力されるジョブの例を表す概念図である。この図において、例えばＪＯＢ１は、使用するリソースが「旋盤」であること、配置する際に必要な工数は「４」であること、配置可能な範囲は「０」〜「５」であることを示し、ＪＯＢ２への矢印は、次工程がＪＯＢ２であり、ＪＯＢ２はＪＯＢ１が終了しなければ開始できないという順序関係を表す。
【００４８】
第１実施形態では、推論ユニットＡは旋盤のショップを担当しているので、推論ユニットＡにはＪＯＢ１とＪＯＢ３の情報を入力する。同様に、推論ユニットＢには、ＪＯＢ２とＪＯＢ４の情報を、推論ユニットＣにはＪＯＢ５の情報を入力する。入力された情報は、各推論ユニットＡ，Ｂ及びＣに対応するハードディスク装置上のデータファイルなどの形式で保存される。
【００４９】
なお、ジョブのデータは、あらかじめハードディスクやフロッピーディスクなどのファイルとして作成しておき、各推論ユニットＡ，Ｂ及びＣの入出力装置Ｉがこのファイルを読み込むことによって与えてもよい。
【００５０】
（２−２）各ユニットでのスケジューリング
各推論ユニットＡ，Ｂ及びＣでは、推論手段１の推論駆動部１１が、与えられた入力ジョブを一つずつ取り出し、リソースに配置するという推論を進める。例えば、図４に示すように、推論ユニットＢでは、ＪＯＢ２を「５」〜「１０」の間の適当な場所に長さ「３」だけリソースを確保する。図において、各ジョブを配置しうる時間の候補を破線矢印で示すが、この候補は当該ジョブの前工程の最遅終了時刻と、当該ジョブの後工程の最早開始時刻との間の時間帯である。
【００５１】
なお、配置するジョブはＪＯＢ２だけではないので、後々のことを考慮して適切な場所を見つけなければならない。ここでは、納期に余裕を持たせる「前詰め」を行い、実線の太い矢印に示す時刻「５」〜「８」に配置する。同様に、ＪＯＢ４も実線の太い矢印で示す時刻「２」〜「３」に配置する。このような「前詰め」などの推論に当たって必要な規則は、推論知識記憶手段２に記憶されており、推論手段１はこの推論知識に従って推論を進める。
【００５２】
推論の結果得られた解は、推論状態記憶手段３に記憶される。この場合、推論知識に与える条件によっては、入力された問題を満足する解は１つとは限らないので、複数ある場合には複数の解が推論状態記憶手段３に記憶される。推論知識記憶手段２に「複数の解がある場合には、推論に当たって所定の基準で優先順位を設定する」という知識を蓄積しておけば、複数の解がある場合にその優先順位が分かり、推論結果を利用したり、交渉の際に適切な解を得ることができる。この推論状態記憶手段３に対する解の記憶と同時に、状態管理手段４に対してどのような解を記憶したかが書き込まれる。
【００５３】
（２−３）交渉の必要性の判定
推論の結果、入力された問題が各推論ユニット単独では解決できないことが判明すると、他のユニットＡ，Ｂ又はＣとの交渉が必要となる。例えば、第１実施形態において、それぞれの推論ユニットＡ，Ｂ及びＣが並列に動作しながら、与えられたジョブを順次配置していくと、図５のような状態になる。なお、この図において、各ＪＯＢの配置時刻を実線矢印で示し、当該ＪＯＢの最遅終了時刻までの余裕分を破線矢印で示す。
【００５４】
すなわち、推論ユニットＢ及び推論ユニットＣでは、与えられた入力ジョブをそれぞれ実線の矢印に示すように配置できたが、推論ユニットＡはＪＯＢ１を先に配置した結果、最遅終了時刻が２であるＪＯＢ３を配置することができない。また、ＪＯＢ１の最遅終了時刻は「５」であるため、ＪＯＢ１を遅い時刻方向に移動しても、工数２を要するＪＯＢ３を配置できるだけのリソースを確保することができない。
【００５５】
そこで、推論ユニットＡは他の推論ユニットＢ又はＣに納期制約緩和の交渉を行う。具体的には、推論ユニットＡの推論駆動部１１による推論の結果、自己のユニットだけでは入力された問題を解決する解が得られないことが判明すると、推論手段１はその交渉依頼部１２によって交渉手段５に交渉を依頼する。交渉の依頼を受けた交渉手段５は、他のユニットに対してどのような提案をすれば自己の推論ユニットに入力された問題を解決されるか否かを検討する。すなわち、交渉手段５においては、交渉戦略記憶手段６に記憶されている前記交渉戦略に従って、対象選択手段５１がどのジョブについてどの仕切り時刻を交渉対象とするかを選択し、選択対象とされたジョブや仕切り時刻を提案作成用データとして推論手段１に通知する。推論手段１の推論駆動部１１は、この提案作成用データに従って推論を行い、他の推論ユニットに関するある仮説が成立するならば自己の推論ユニットが与えられた問題を解決できるか否かを検討する。
【００５６】
ここで、自己の問題解決を可能とする仮説が全く発見されない場合には、交渉の余地はなく、その問題は解決不可能であるから、推論手段１は入出力装置Ｉにその旨を出力する。一方、仮説が成立するならば問題解決が可能となることが判明した場合には、その仮説の内容を交渉手段５の提案作成手段５２に通知し、提案作成手段５２は通知された仮説の内容に従って提案内容を作成する。
【００５７】
例えば、図６に示すように、推論ユニットＡにおいてＪＯＢ３をＪＯＢ１に続く時刻４〜６に配置するためには、ＪＯＢ３に後続するＪＯＢ４を、推論ユニットＢにおいて時刻６〜７に配置するという仮説が成立すればよい。換言すれば、ＪＯＢ３の最遅終了時刻を「６」にするため、ＪＯＢ３の次工程であるＪＯＢ４を担当する推論ユニットＢに対し、ＪＯＢ４の最早開始時刻を「６」に変更してもらうように交渉すればよい。
【００５８】
なお、問題を解決するための仮説は必ずしも１つとは限らないので、推論駆動部１１が推論した仮説を含む解が複数ある場合には、これらの解は推論状態記憶手段３に蓄積される。そして、状態管理手段４によって、最も優先順位の高い解が交渉の対象として選択され、この解を成立させるための仮説が交渉に当たっての最初の提案となる。この選択された解（推論状態）は、交渉の間、交渉状態記憶手段６に記憶される。
【００５９】
（２−４）交渉開始フェーズ
提案作成手段５２によって提案内容が作成された後は、交渉手段５は、この提案内容に従って交渉を開始する。すなわち、交渉手段５は、図９に示すように、通信手段８のメッセージ送受信手段８１によって交渉開始メッセージを対象となる他の推論ユニットＢに送信し、推論ユニットＢによる交渉開始メッセージの受領が確認されると、交渉が開始される。
【００６０】
（２−５）交渉フェーズ
（２−５−１）提案の送信
交渉フェーズは、前記提案作成手段５２によって作成された提案の内容を、通信手段８１のデータ送受信手段８２が推論ユニットＢに送信することにより開始される。
【００６１】
（２−５−２）提案内容の検討
推論ユニットＢは、自己の通信手段８１のデータ送受信手段８２によって提案内容を受信すると、この提案内容が容認できるものか否かの検討を行い、その結果を回答する。すなわち、提案を受信した時点で、推論ユニットＢでは、図５に示すように、ＪＯＢ４が時刻２〜３に、ＪＯＢ２が時刻５〜８に配置されている。そこで、ＪＯＢ４について、最早開始時刻を「６」に変更するという提案を受け入れるためには、ＪＯＢ４の最遅終了時刻は「７」に変更する必要がある。変更できれば、ＪＯＢ２については当初から最遅終了時刻が１０であるから、ＪＯＢ２を時刻「７」〜「１０」にずらすことによって時刻６〜７を空け、この時刻６〜７にＪＯＢ４を配置することによって、交渉を受け入れることができる。
【００６２】
具体的には、推論ユニットＢにおいて交渉手段５が受信した提案は、交渉戦略記憶手段６に記憶されている交渉戦略と共に推論手段１の提案内容検討部１３に渡される。提案内容検討部１３では交渉開始前から保存している自己の推論状態および推論ユニットＡからの提案内容を前提として推論を進め、提案内容を満足する解があるか否かを検討する。
【００６３】
（２−５−３）受け入れの回答
検討の結果、提案内容を満足する解が推論できた場合には、提案内容検討部１３は、交渉手段５の回答管理手段５３にその旨を通知し、回答管理手段５３は回答メッセージを作成して通信手段８のメッセージ送受信手段８１を通じて推論ユニットＡに回答を送信する。
【００６４】
（２−５−４）他のユニットへの交渉
一方、前記提案内容検討部１３において提案内容に基づいて推論を行った結果、推論ユニットＢ単独では満足する解が得られない場合も生じる。その場合には、推論ユニットＢは、推論ユニットＡに対する回答を交渉状態記憶手段７に保留した状態で、他の推論ユニットに対して交渉を行う。すなわち、図５の例のように、推論ユニットＢにおいてＪＯＢ４の最遅終了時刻を７に変更するには、ＪＯＢ４の次工程であるＪＯＢ５の最早開始時刻が「７」に変更してもらう必要がある。そこで、この変更を、ＪＯＢ５を担当する推論ユニットＣに依頼する。
【００６５】
前記のような交渉を受けた推論ユニットＣでは、前記推論ユニットＢが推論ユニットＡからの提案を受領した場合と同様に、推論ユニットＢの提案を前提として推論を行い、提案を満足する解が存在するか否かを検討し、その結果を推論ユニットＢに回答する。図５の例では、推論ユニットＣでは、ＪＯＢ５の最早開始時刻を「７」に変更してもＪＯＢ５は配置可能なので要求を了承する。これによって、推論ユニットＢではＪＯＢ４を時刻６〜７に配置でき、結果的に推論ユニットＡからの交渉を了承することができる。
【００６６】
このような推論ユニットＢが推論ユニットＡからの提案に対する回答を保留したまま交渉を行う相手先としては、必ずしも第三者である必要はなく、提案者である推論ユニットＡに対して交換条件となる提案を行うこともできる。この場合、交換条件の提案を受けた推論ユニットＡは、その提案内容を検討し、その可否を推論ユニットＢに回答する。
【００６７】
（２−５−５）提案許諾の回答
このようにして、推論ユニットＡの提案内容が交渉先の推論ユニットＢによって受け入れられ、推論ユニットＡがＯＫの回答を得た場合には、交渉フェーズは終了する。
【００６８】
（２−５−６）提案拒否の回答
他の推論ユニットと交渉した結果、推論ユニットＡからの提案を受け入れることができない場合には、推論ユニットＢは回答管理手段５３によって提案拒否の回答を作成して、通信手段８を用いて推論ユニットＡに送信する。
【００６９】
提案を拒否された推論ユニットＡは、いままで交渉対象としていた推論状態を破棄して、次の優先順位の推論状態を選択し、その推論状態を成立させるための仮説を、次の提案として他の推論ユニットとの間で交渉を行う。この場合、交渉状態記憶手段６に記憶されていた拒否された推論状態は抹消され、状態管理手段４によって新たに選択された推論状態が交渉途中の推論状態として交渉状態記憶手段６に記憶される。同様にして、推論状態記憶手段３に記憶されている全ての候補について交渉を行った結果、全ての提案が拒否された場合には、自己の推論ユニット内部のみならず他の推論ユニットとの交渉によっても、その問題を解決することが不可能となるので、推論ユニットＡは交渉終了メッセージを送信して、交渉を終了する。
【００７０】
（２−６）合意形成フェーズ
（２−６−１）合意形成の必要性
前記（２−５−５）に述べたとおり、交渉の相手先の推論ユニットから提案を許諾する旨の回答が得られた場合には、交渉フェーズは終了して、次の合意形成フェーズに移行する。この合意形成フェーズは、提案側の推論ユニットによって交渉の最終段階で提案された仮説が、今後、各推論ユニットが推論を進める場合の前提となることを確認するものである。
【００７１】
すなわち、提案に対して許諾の回答をした推論ユニットから見れば、許諾した提案が提案側のユニットで採用されたか否かは判らない。例えば、推論ユニットＡが推論ユニットＢとＣとにそれぞれ提案を行い、両方の提案が満足された場合にはじめてその提案にかかる仮説を採用する場合を考えてみる。提案を受けた一方の推論ユニットＢが提案を許諾したとしても、他方の推論ユニットＣが提案を拒否した場合、推論ユニットＡはその仮説を採用しない。しかし、推論ユニットＢが不採用を知らないまま許諾した提案を前提に今後の推論を進めると、推論の方向や結果を誤らせることになる。同様に、推論ユニットＢが推論ユニットＡに提案許諾の回答をした後、別の推論ユニットから別の提案を受け、それについても許諾の回答をした結果、推論ユニットＡに対して許諾した提案は受け入れられなくなることもある。この場合も、推論ユニットＡは自己の受領した回答が最終段階の提案と考えて、これをその後の推論の前提とすることになるので、誤った推論の原因になる。
【００７２】
（２−６−２）合意要求
そこで、本実施の形態では、合意形成フェーズによって、交渉の最終段階の状態を確定状態として合意できるかどうかを確認し合う。具体的には、提案を行った推論ユニットＡの回答管理手段５３が提案許諾の回答を得ると、その交渉手段５に設けられた合意要求手段５４が合意要求メッセージをメッセージ通信手段８１から回答を得た推論ユニットＢに送信する。
【００７３】
（２−６−３）合意判定
合意要求メッセージを受信した推論ユニットＢは、その交渉手段５の合意判定手段５５によって、その合意要求に応じるか否かを検討する。このとき、図５の例のように、推論ユニットＢがさらに他の推論ユニットＣと交渉を行っている場合には、推論ユニットＢは推論ユニットＣに対して合意要求メッセージを送信し、推論ユニットＣの合意を得る必要がある
この合意判定手段５５としては、次のようなものが考えられる。
(a) 推論ユニットＡが交渉の結果、問題を満足する解を１つも推論できない場合は、合意形成メッセージを発信して合意形成フェーズに入ることはできず、交渉終了メッセージを発信する。言い換えれば、推論ユニットＢが合意形成メッセージを受信したことは、推論ユニットＢが許諾した提案が推論ユニットＡによって採用されたことを意味するから、合意要求に応じると判定する。逆に、推論ユニットＡからの交渉終了メッセージが先に受信された場合には、推論ユニットＢは交渉が成立しなかったと判定する。
【００７４】
(b) 推論ユニットＢが推論ユニットＡに対する回答の後に、他の推論ユニットからの提案に対して許諾の回答を行った場合に、推論ユニットＡからの合意形成メッセージを受信したとしても、推論ユニットＡにした回答は推論ユニットＢにとって交渉の最終段階の提案に対する回答でない。従って、推論ユニットＡに対する回答は、推論ユニットＣに対する回答によってもはや維持できなくなっており、合意要求に応じられないと判定する。
【００７５】
(c) 推論ユニットＢが他の推論ユニットＣに交渉を行っている場合、交渉先の推論ユニットＣの合意が得られない場合は、推論ユニットＡの合意要求には応じられないと判定する。
【００７６】
もちろん、合意判定手段５５としては、このような合意要求メッセージの送受信だけで合意の諾否を判定するものだけではなく、合意要求メッセージに推論ユニットＡが最終的な解と判断したの内容に関するデータを包含させておき、これを合意要求された側の推論ユニットに蓄積されている推論状態の内容と逐次比較することで、両者の間に矛盾が存在するか否かを確認することもできる。
【００７７】
（２−６−４）合意要求承諾
前記のようにして、合意判定手段５５によって合意に応じられるとの判定がなされた場合には、推論ユニットＢはメッセージ通信手段８１から承諾メッセージを推論ユニットＡに送信する。承諾メッセージを受信した推論ユニットＡは、交渉状態記憶手段６に記憶されていた交渉対象の解（交渉状態）を、状態管理手段４を用いて推論状態記憶手段３に確定状態として記憶させる。すなわち、交渉状態は、他のユニットの交渉成立を前提とした仮説を含んだ解であったが、交渉が合意されたので仮説ではなくなり、今後の推論を行う場合に確定された前提として使用することが可能になる。
【００７８】
推論ユニットＡは自己の交渉状態を確定状態とすると共に、推論ユニットＢに対して確定メッセージを送信し、推論ユニットＡ自体も合意成立を承認していることを推論ユニットＢに通知する。確定メッセージを受けた推論ユニットＢは、自己の交渉状態記憶手段６に記憶されている交渉状態を確定状態として推論状態記憶手段３に記憶させる。以下、推論ユニットＢにおいてもこの確定状態に基づいて推論が行われる。
【００７９】
（２−６−５）合意要求拒絶
一方、合意に応じられないとの判定がなされた場合は、推論ユニットＢは合意拒絶メッセージを推論ユニットＡに送る。この合意拒絶メッセージを受けた推論ユニットＡは、いままでの交渉をキャンセルして、交渉状態記憶手段６に記憶しておいた交渉途中の解を破棄する。また、推論ユニットＢも、推論ユニットＡからの提案に従って推論を行い、交渉状態記憶手段６に記憶しておいた解を破棄する。
【００８０】
（２−７）交渉終了フェーズ
前記（２−６−４）のようにして各推論ユニットが合意された交渉状態を確定した後は、終了メッセージを交換することにより、交渉は終了する。また、前記のように合意要求が拒絶された場合は、前記確定メッセージの代わりに終了メッセージを交換することにより、交渉は終了する。さらに、交渉の結果各ユニットが満足する解が得られない場合は、合意形成フェーズに移行することなく、交渉フェーズから直接交渉終了フェーズに移行する。
【００８１】
（２−８）メッセージの例
ここで、上記に例示した交渉及び合意において、各ユニット間で交換されるメッセージの例を示す。
【００８２】
【表１】
Ａ開始：セッション１
Ａ提案：セッション１，交渉１，ＪＯＢ４の最早開始時刻，６
Ｂ提案：セッション１，交渉２，ＪＯＢ５の最早開始時刻，７
Ｃ回答：セッション１，交渉２，ＯＫ
Ｂ回答：セッション１，交渉１，ＯＫ
Ａ合意：セッション１
Ｂ承認：セッション１，ＯＫ
Ｃ承認：セッション１，ＯＫ
Ａ確定：セッション１
Ａ終了：セッション１
【００８３】
なお、このメッセージは一例であって、交渉フェーズは形式上「開始」や「終了」を独立して含む必要はなく、提案や又は合意形成に関するメッセージによって交渉の開始や終了の役割を兼ねることもできる。
【００８４】
（３）フローチャートの説明
図７および図８は、前記のような本実施の形態の作用を示すフローチャートである。図７は本実施の形態において交渉及び合意の手順を主に依頼する側（推論ユニットＡ側）から表したフローチャートであり、図８は、交渉及び合意の手順を主に依頼される側（推論ユニットＢ側）から表したフローチャートである。また、図９は、ユニット間で授受される情報の一部を示した図である。
【００８５】
（３−１）交渉の開始
推論ユニットＡが問題解決に向けて推論を進める途中（ステップ４１）、問題解決のために他のユニットとの交渉が必要となった場合は（ステップ４２）、提案内容を作成して（ステップ４４）、交渉の相手方である推論ユニットＢに提案を送信する（ステップ４５）。
【００８６】
（３−２）提案の受領と回答
推論ユニットＡからの提案を受領した交渉先の推論ユニットＢでは（図８／ステップ６１）、その内容について推論を進め（ステップ６２）、推論ユニットＢだけで提案内容を受諾することができるか否かを検討する（ステップ６３）。この場合、推論ユニットＢだけでは推論ユニットＡからの提案内容を満足することができず、他のユニットへの交渉が必要な場合は他のユニットへの交渉を行う（ステップ６４）。推論ユニットＢが他のユニットへの交渉の結果、又は他のユニットへ交渉するまでもなく、推論ユニットＡの提案に応じられるときは（ステップ６５）、推論ユニットＡに対して提案を受け入れる旨の回答をする（ステップ６６）。
【００８７】
また、提案に完全に応じられないまでも代案を推論して（ステップ６７）、代案が発見できた場合は（ステップ６８）、推論ユニットＡに対して代案を提案する（ステップ７０）。すなわち、推論ユニットＢが推論ユニットＡからの提案に応じるためには、推論ユニットＡが推論ユニットＢからの代案を受け入れることが条件となる場合は、推論ユニットＡに対して代案を提案し、その受け入れの回答を待って、推論ユニットＡに対してその提案を受け入れるか否かを回答する。この代案の提案を受けた推論ユニットＡは、図８のステップ６１から始まる提案の受領側のフローチャートに従い、代案を検討して代案を受け入れが可能か否かの回答を推論ユニットＢに行う。この代案の提案及び代案の受け入れの是非の検討は、提案を受領した推論ユニットＢが自己のユニット内部で問題の解決ができず、他の推論ユニットに交渉を行う場合と同様に行われる。推論ユニットＡが代案を受け入れた場合は（ステップ７１）、推論ユニットＢは推論ユニットＡからの提案に対して受け入れの回答を行う（ステップ６６）。
【００８８】
さらに、推論ユニットＢ単独で推論ユニットＡからの提案を解決することができず、ステップ６４における他の推論ユニットへの提案も拒絶され、さらに代案も存在しない場合は、推論ユニットＢは推論ユニットＡからの提案の受け入れについて拒否の回答する（ステップ７２）。
【００８９】
（３−３）回答の受領
提案を行った推論ユニットＡにおいて、交渉先の推論ユニットＢから回答を受領し（図７のステップ４７）、この回答が提案の受け入れを拒絶するものである場合には（ステップ４８）、ステップ４４に戻り再度新しい提案を行う。一方、回答が提案の受け入れを許諾するものである場合には、合意形成フェーズに移る（図９参照）。
【００９０】
（３−４）合意形成
（３−４−１）合意要求
合意形成フェーズでは、他の推論ユニットＡ，Ｂ又はＣとの間で整合性のとれた推論状態を、今後の推論の拠り所とするための確定状態とすることについて、他の推論ユニットＡ，Ｂ又はＣとの間で合意する。すなわち、提案に対して受け入れ許諾の回答を受けた推論ユニットＡは（ステップ４８）、回答を発信した推論ユニットＢに対して前記提案内容に基づく推論状態を確定状態とするか否かの合意を要求する（ステップ４９）。
【００９１】
（３−４−２）合意するか否かの検討
図８のステップ７４において、合意要求を受領した推論ユニットＢは、合意要求に応じられるか否かを検討する（ステップ７５）。合意要求に応じられる場合には、推論ユニットＢは、その旨の回答を推論ユニットＡに行う（ステップ７６）と共に、推論ユニットＢ内部に保存しておいた推論ユニットＡからの提案に基づく推論状態を確定状態として保存する（ステップ７７）。今後は、推論ユニットＢにおいては、この確定状態が推論の基礎となる。なお、この確定処理は、前記第１実施形態で説明したように、推論ユニットＢが合意要求に対して了承の回答した後、推論ユニットＡからの確定処理メッセージを待って行っても良い。
【００９２】
一方、合意要求に応じられない場合（ステップ７８）には、その旨を推論ユニットＡに回答する（ステップ７９）。すなわち、推論ユニットＡに提案の受け入れの回答を行った後に、推論ユニットＡの提案内容と異なった推論状態が推論ユニットＢで生じた場合（例えば、推論ユニットＢが他の推論ユニットに対して異なる内容の提案をしたか、あるいは他のユニットから別の提案を受けたかなど）は、推論ユニットＡの提案に基づく推論状態とその後の推論状態とでは整合性が失われているので、合意することはできないので、その旨を回答する。
【００９３】
（３−４−３）確定処理
推論ユニットＢから合意要求に対する回答を受領した（ステップ５０）推論ユニットＡは、回答の内容に応じて（ステップ５１）、回答が合意要求を承諾するものである場合は推論ユニットＢに提案した推論状態を確定状態とするための処理を行う（ステップ５２）。一方、合意要求に対する回答が、合意を拒否するものである場合には提案した内容に係る推論状態を破棄して、保存していた提案前の推論状態（既に交渉を行い確定した推論状態がある場合にはその確定状態）に復帰し（ステップ５３）、他の提案を検討する（ステップ４５）。
【００９４】
（３−５）交渉の終了
合意フェーズにおいて、確定状態が得られた場合は終了メッセージを交換するとともに保存してあった交渉開始前の確定状態を放棄することによって交渉を終了する（終了フェーズ）。また、合意できなかった場合は、終了フェーズにおいて、保存されていた確定状態に復帰することによって交渉に係る推論状態をキャンセルする。さらに、推論ユニットＡが繰り返し交渉を行ったにもかかわらず、相手先の推論ユニットから提案を受け入れる回答が得られなかった場合には、前記の合意形成フェーズを経ることなく終了メッセージを交換することで、交渉を終了する。
【００９５】
（４）第１実施形態の効果
このように、第１実施形態では、確定状態を推論ユニットＡ，Ｂ及びＣ間で明示的に合意することによって、推論の拠り所を定めることができ、効率良い推論を行うことが可能となる。特に、推論ユニットＢでは、このような交渉を開始する前の状態は、推論ユニットＡ及びＣの行っている生産計画とは整合した状態にあるが、推論ユニットＡから交渉を持ちかけられた際、『仮にＪＯＢ４の最遅終了時刻が「７」に変更できれば』といった仮説が入り込んでくるため、どの状態を今後の推論の根拠として正当化できるかが分かりにくい。しかし、第１実施形態では、他の推論ユニットＡ，Ｂ又はＣとの整合性のとれた状態を確定状態として合意しておき、その後の交渉は確定状態を元にして推論を行うため、推論の根拠が明確である。
【００９６】
また、第１実施形態では、推論を進めた結果として不整合な状態が発生し、合意形成に失敗した場合には、保存していた推論状態を用いることによって、その間の推論状態の更新をキャンセルし、交渉開始前の整合性ある状態に容易に復帰することができる。また、第１実施形態では、推論開始当初は確定状態は空であるが、合意形成により一旦確定状態が形成されると、以後の推論はこの確定状態を基準として行われ、合意事項が段階的に積み上げられるので、複雑な問題であっても交渉の繰り返しによって効率の良い推論を行うことができる。。
【００９７】
以上のように、本実施の形態の協調推論装置では、単独の推論ユニットでは解決できない制約の変更を交渉によって行いながら全体として整合性ある生産計画を生成することが可能になる。
【００９８】
（５）第２実施形態
（５−１）多重交渉の必要性
前記第１実施形態は、各推論ユニットＡ，Ｂ及びＣが、問題解決に当たり異なった仮説に基づく複数の解を得た場合に、優先順序の高い解から順番に交渉を進めるものである。すなわち、１つの解についての交渉が破綻した場合に次の解に基づく提案を他のユニットに行う。しかし、このような交渉では時間がかかることも多く、また提案を行う推論ユニット内部で優先順位の高い解が、必ずしも交渉が成立する可能性が高いものや、他の推論ユニットおよび協調推論装置全体にとって有利ものとは言えない。
【００９９】
そこで、第２実施形態においては、推論の結果、問題解決のために異なった仮説を前提とする複数の解（推論状態）が生成された場合に、これら複数の解に基づく複数の提案について、その提案に関係する他の複数の推論ユニットとの間で同時に交渉する。この第２実施形態は、請求項５及び９の発明に対応するものである。
【０１００】
（５−２）第２実施形態の構成
第２実施形態の構成は基本的には、前記第１実施形態と同様である。しかし、推論手段１、交渉手段５および通信手段８は、複数の交渉を並行して実施できるように構成されている。また、状態管理手段４及び交渉状態記憶手段６も複数の交渉状態を同時に管理、記憶できるようになっている。
【０１０１】
（５−３）第２実施形態の作用
前記のような構成を有する第２実施形態において、複数の交渉を同時に進める場合の例を考える。
推論手段１による推論の結果、図５の状態においては、ＪＯＢ３の最遅終了時刻を修正する以外にも、ＪＯＢ１の最遅終了時間を「６」にするという解もあり得る。第１実施形態では、状態管理手段４により、２つの解のうちから一つを選んで交渉したが、双方同時並行的に交渉を試み、合意に達することのできる方を採用するという戦略もありうる。
【０１０２】
そこで、第２実施形態では、推論ユニットＡは二つの交渉を同時に始める。この場合、状態管理手段４は、２つの選択肢となった推論状態を交渉対象として取り出し、交渉状態記憶手段６に記憶させる。一つ目の選択肢の交渉は、ＪＯＢ３の最遅終了時刻を「６」に変更してもらう交渉であり、これは先の交渉の説明と同じ動作を行う。もう一つの選択肢の交渉は、ＪＯＢ１の最遅終了時刻を「６」に変更してもらう交渉である。この交渉では、ＪＯＢ１の次工程であるＪＯＢ２の最早開始時刻を「６」に変更しても、フライス盤を「６」〜「９」と確保すれば実行可能であるので、すぐに推論ユニットＢから了承が得られる。図１０は、この交渉の最終状態を表している。
【０１０３】
この場合、推論ユニットＡは、同時に行っている交渉で早く結論が得られた第二の選択肢を確定すべく、一つ目の交渉はキャンセルし、二つ目の交渉の合意形成を行うことによって確定状態を確保する。このような交渉のキャンセルおよび合意形成は、前記第１実施形態と同様に推論ユニット間でメッセージを交換することにより行われる。すなわち、第２実施形態の交渉手段５は、複数の交渉を並行して行っている場合、提案を許諾するという最先の回答が得られた場合、この回答の受領を契機として、回答を発信した推論ユニットには合意形成メッセージを送信し、他のユニットには交渉終了メッセージを送る。
【０１０４】
（５−４）第２実施形態の効果
このように第２実施形態においては、二つの交渉を同時に実行することが可能である。その結果、交渉が合意に達した最先の推論状態を問題解決の解として採用することができ、推論の効率が前記第１実施形態に比較して格段に向上する。しかも、交渉が途中でキャンセルされた推論ユニットに関しても、採用されなかった提案や回答は合意されていないものとして破棄し、その後の推論は元の確定状態を基礎に進めることができ、交渉のキャンセルによって整合性が失われることはない。例えば、図１０の例で交渉がキャンセルされても、図５の推論状態は整合性のあるものとしてすべての推論ユニットＡ，Ｂ及びＣ間で合意され確定状態になるっているから、交渉がキャンセルされた推論ユニットもこの確定状態にまで復帰することで、整合性を確保できる。
【０１０５】
（６）第３実施形態
第１実施形態は、交渉を効率良く行う上で非常に有効であるが、従来の交渉プロトコルのように、交渉開始や合意形成開始など交渉のためのメッセージと、最早開始時刻変更要求などのような具体的な交渉メッセージを混在させてしまうと、実装しにくく、また別のシステムへの再利用がしにくくなる。そこで、交渉に関する各要素を階層的に構成した第３実施形態を示す。この第３実施形態は、請求項６の発明に対応するものである。
なお、このようなモジュール化は、前記第１実施形態において示した各手段と一対一で対応するものではなく、各手段を複数のモジュールによって構成し、これら複数のモジュールを推論および交渉に当たっての機能に応じて階層的に区分したものである。
【０１０６】
（６−１）第３実施形態の構成
図１１は、第３実施形態の構成を示す機能ブロック図である。この図に示すように、第３実施形態では、協調推論装置に含まれる各推論ユニットＡ，Ｂ及びＣの機能を、各ユニットに共通の処理手順を定義する枠組層Ｗ（最下層）と、協調推論装置を適用する課題ごとの処理手順を定義する方式層Ｈ（中間層）と、個々の推論ユニットＡ，Ｂ及びＣ固有の処理手順を定義する戦略層Ｓ（最上層）と、の三階層に構成する。
【０１０７】
そして、戦略層Ｓが方式層Ｈの機能を利用し、方式層Ｈが枠組層Ｗの機能を利用することによって前記交渉及び合意を行う。第３実施形態では、このように交渉の手順が階層的に構成されるので、上位層を構成するときは下位層での処理内容を考慮する必要がない。このため、協調推論装置及び協調推論方法を構成することが容易になり、再利用や修正も容易になる。
【０１０８】
枠組層Ｗは、交渉の形式的順序を定めるもので、本発明の協調推論装置において、交渉し合意によって確定状態を得る機能に対応する。交渉を行う推論ユニットＡ，Ｂ及びＣすべてに共通であり、新たな推論ユニットを用意する際に再利用可能である。本実施形態では、推論状態を確定させる合意手段が最下層の枠組層Ｗとして構成されるので、上位の方式層Ｈ及び戦略層Ｓでは枠組層Ｗを通じて推論状態を確定させる処理を容易に利用することができる。このため方式層Ｈ及び戦略層Ｓを容易に構成することができる。具体的には、枠組層Ｗには、交渉の開始及び終了のメッセージを生成及び解釈するメッセージ通信モジュールＷ１と、交渉フェーズで提案や回答を示すメッセージを生成及び解釈するデータ送受信モジュールＷ２と、合意要請のメッセージを生成及び解釈する合意要請処理モジュールＷ３と、整合性ある推論状態について他の推論ユニットＡ，Ｂ又はＣとの間で合意することによって確定状態を得る確定処理モジュールＷ４が属する。
【０１０９】
方式層Ｈは、適用する問題に依存した処理手順を定義するもので、同じ問題に適用される推論ユニット間では共通である。例えば、本実施形態において、「各ユニットが了承できる妥当な仕切り時刻を定める」ためには「ジョブの仕切り時刻を前後にずらす」ことが必要である。このため、方式層Ｈには、交渉手段５において、どのジョブについてどの仕切り時刻（最早開始時刻又は最遅終了時刻）を交渉対象とするかを決定する対象選択モジュールＨ１と、ずらすとすれば自ユニットにとって妥当な仕切り時刻はいつかを決定する提案作成モジュールＨ２とが含まれる。また、方式層Ｈの機能のうち、提案を受けるユニットとしてのものは、依頼メッセージを受信した場合に、提案内容に同意できるかどうかの判断を戦略層Ｓから受け取り、必ずＯＫ又はＮＧの回答メッセージを返信する回答作成モジュールＨ３が挙げられる。さらに、方式層Ｈの要素としては、金額などの機密データをメッセージに挿入する際に暗号化する暗号化モジュールＨ４などの要素が挙げられる。
【０１１０】
戦略層Ｓは、個々の推論ユニットＡ，Ｂ及びＣ固有の交渉の戦略を定める。交渉の戦略は、例えば、旋盤では「既に配置したジョブはなるべく動かさない」、フライス盤では「依頼を検討する際には、なるべく自分だけで解決する」、ボール盤では「依頼はできるかぎり受け入れる」などが考えられる。なお、旋盤、フライス盤、ボール盤が、「なるべく他に影響が出ないように最小幅で交渉する」のように共通の要素を持つことは差しつかえない。また、第１実施形態において、推論ユニットＡはジョブが配置できなくなった場合に、ただちに他のユニットに協力を求めたが、解決できない問題もしばらく保留しておけば他からの別の交渉によって事態が解決する可能性もある。このように、解決できない問題についてすぐに他の協力を求めるか、しばらく保留するかなどは、個々の推論ユニットの交渉の進め方であり、交渉戦略として推論ユニットＡ，Ｂ及びＣそれぞれに独自の戦略層Ｓとして実装される。このように戦略層Ｓには、各戦略を適用して問題を解決するための問題解決モジュールＳ１が含まれている。
【０１１１】
（６−２）第３実施形態の作用
前記のような構成を有する第３実施形態において、戦略層Ｓは方式層Ｈが持つ機能を利用し、方式層Ｈは枠組層Ｗの機能を利用する。例えば、戦略層Ｓは、状況に応じて、問題解決のための行動（どの対象をどう動かすか）とデータ（どれくらい動かすか）を方式層Ｈに指示する。
【０１１２】
第３実施形態における推論の例を次に説明する。ここでは、図１２に示す各ジョブが与えられたものとする。これを受けて、フライス盤を担当する推論ユニットＢは、ＪＯＢ３，ＪＯＢ４，ＪＯＢ５の順に配置する（図１３）。このとき、ＪＯＢ３は時刻２〜５に、ＪＯＢ４は時刻５〜７に、ＪＯＢ５は時刻７〜１０に配置される。また、ボール盤を担当する推論ユニットＣはＪＯＢ６を時刻１０〜１２に配置する。
【０１１３】
旋盤を担当する推論ユニットＡは、ＪＯＢ１を時刻０〜４に配置するが、ＪＯＢ２は最遅終了時刻の５を守れないため配置することができない。そこで、推論ユニットＡの戦略層Ｓがこの問題を解決するための方策を推論する。
【０１１４】
戦略層Ｓは、この問題を解決するために、ＪＯＢ２の最遅終了時刻を遅らせるか、ＪＯＢ１を一旦未配置状態に戻し、先にＪＯＢ２を配置した後でＪＯＢ１をより遅い最遅終了時刻で配置しなおす、という２通りの選択肢を発見し、選択を行う。具体的には、旋盤を担当する推論ユニットＡは「既に配置したジョブはなるべく動かさない」戦略をとるので、未配置のＪＯＢ２の最遅終了時刻を遅らせる選択肢が選択される。また、「なるべく他に影響が出ない」ように遅らせる幅として１が選択される。これらの選択は「ＪＯＢ２の最遅終了時刻＋１」のようなあらかじめ定められた形式の指示として、方式層Ｈに受け渡される。
【０１１５】
方式層Ｈは、この指示を受けると、交渉の対象となる事項として「ＪＯＢ２の最遅終了時刻＝ＪＯＢ４の最早開始時刻＝（現在）５」を選択し、交渉での要求内容たるデータとして「６」を選択し、交渉の相手方として、ＪＯＢ４に対応するフライス盤を担当している推論ユニットＢを選択する。これらの選択は、さらに下位層の枠組層Ｗに伝達される。
【０１１６】
推論ユニットＡの枠組層Ｗに属するメッセージ送受信モジュールおよびデータ送受モジュールがフライス盤担当の推論ユニットＢに、交渉開始メッセージ及び提案内容メッセージを送信すると、これらのメッセージを受信した推論ユニットＢでは、枠組層Ｗから方式層Ｈに依頼内容メッセージが渡される。
【０１１７】
方式層Ｈでは、回答作成モジュールが、受信した依頼メッセージを解析することによって、交渉の対象が「ＪＯＢ４の最早開始時刻」であり、交渉での要求内容たるデータは６であることを認識する。次に、この提案内容が妥当か否かが判断される。具体的には、回答作成モジュールは、ＪＯＢ４の最早開始時刻を６にするためには、ＪＯＢ５を移動しなければならないと判断し、この判断が戦略層Ｓに伝達される。戦略層Ｓは、「依頼を検討する際には、なるべく自分だけで解決する」という戦略に基づいて、ＪＯＢ５を移動する具体的内容として、ＪＯＢ５を時刻５〜８に、ＪＯＢ４を時刻８〜１０に配置すればいいと判断する。この結果、推論ユニットＡからの提案は受け入れ可能となる。
【０１１８】
方式層Ｈの回答作成モジュールは、この判断を受け、枠組層Ｗを用いてＯＫの回答を推論ユニットＡに返信する。旋盤を担当している推論ユニットＡは、推論ユニットＢからＯＫの回答を受信すると、交渉が成功したことを認識し、枠組層Ｗを用いて合意形成を行い、新たな確定状態を生成して交渉を終了する。
【０１１９】
図１４は交渉後のジョブ配置の状態を示す図であり、推論ユニットＢにおいてＪＯＢ４とＪＯＢ５の順序が入れ替えられた結果、ＪＯＢ４に先行するＪＯＢ２が、推論ユニットＡにおいて無事行われた様子が示されている。
【０１２０】
（７）他の実施形態
本発明は上記実施形態に限定されるものではなく、次に例示するような他の実施形態をも包含するものである。
例えば、本発明の適用対象は、スケジューリングシステムには限定されず、他の問題を解決するための推論システムに本発明を適用することもできる。
各推論ユニットは、それぞれ独立したハードウェアには限定されず、例えば、ネットワーク接続された各コンピュータ上のプロセスとして実現することができる。また、各推論ユニットは、専用のハードウェアで実現してもよいし、ハードウェア上の専用ソフトウェアとして実現してもよい。特に、前記第１実施形態では、推論手段と交渉手段とを区別するために、交渉手段はメッセージやデータの授受を管理し、推論は全て推論手段で行うように構成したが、必ずしもこのような構成を採る必要はない。例えば、交渉手段に専用の推論手段を組み込むことで、推論手段は入出力装置からの指令に基づいた推論を行い、交渉過程に必要となる提案の作成や検討、あるいは回答の作成や検討に必要な推論は交渉手段に設けられた専用の推論手段が行うようにしても良い。
【０１２１】
交渉及び合意は、必ずしも開始フェーズ、交渉フェーズ、合意フェーズ、終了フェーズの形式を明示的にとる必要はなく、「開始」や「終了」は省略したり、交渉又は合意形成に関するメッセージをもって替えることもできる。合意の具体的態様は自由で、例えばメッセージ交換によって合意を確認してもよいし、ユニット間で共有するメモリやファイルに合意事項を書き込むことによって合意を確認してもよい。
前記第３実施形態において、必ずしも、枠組層、方式層、戦略層の三階層をとる必要はなく、二階層や四階層など実装に好都合な階層数をとることができる。
本発明の協調推論装置及び協調推論方法は、主にコンピュータプログラムを用いて実現されるが、そのようなプログラムを記録した記録媒体も本発明の一態様である。
【０１２２】
【発明の効果】
以上説明したように、本発明によれば、交渉後において各推論ユニット間で合意された確定状態に基づいて、各推論ユニットがその後の推論を進めることができる。その結果、推論の基礎となる状態が各推論ユニット間で整合性のとれたものになるので、効率の良い推論を実施することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態のスケジューリングシステムの全体構成を示す機能ブロック図
【図２】本発明の第１実施形態における推論ユニットの構成を示す機能ブロック図
【図３】本発明の第１実施形態におけるジョブの情報を例示する図
【図４】本発明の第１実施形態における推論ユニットＢによるジョブ配置の例を示す概念図
【図５】本発明の第１実施形態におけるジョブ配置の例を示す概念図
【図６】本発明の第１実施形態におけるジョブ配置の例を示す概念図
【図７】本発明の第１実施形態における交渉及び合意の手順を、主に依頼する側の推論ユニットについて表したフローチャート
【図８】本発明の第１実施形態における交渉及び合意の手順を、主に依頼される側の推論ユニットについて表したフローチャート
【図９】本発明の第１実施形態における推論ユニット間で授受される情報の流れを例示する概念図
【図１０】本発明の第１実施形態におけるジョブ配置について他の例を示す概念図
【図１１】本発明の第２実施形態における階層構造を示す概念図
【図１２】本発明の第２実施形態におけるジョブの情報を例示する図
【図１３】本発明の第２実施形態におけるジョブ配置の例を示す概念図
【図１４】本発明の第２実施形態におけるジョブ配置の例を示す概念図
【符号の説明】
Ｎ…ネットワーク
Ａ，Ｂ，Ｃ…推論ユニット
Ｉ…入出力装置
１…推論手段
１１…推論駆動部
１２…交渉依頼部
１３…提案内容検討部
２…推論知識記憶手段
３…推論状態記憶手段
４…状態管理手段
５…交渉手段
５１…対象選択手段
５２…提案作成手段
５３…回答管理手段
５４…合意要求手段
５５…合意判定手段
５６…確定処理手段
６…交渉戦略記憶手段
７…交渉状態記憶手段
８…通信手段
８１…メッセージ送信手段
８２…データ送信手段
８３…暗号化手段
１０…コンテキスト管理手段
Ｓ…戦略層
Ｈ…方式層
Ｗ…枠組層
【図１】
0003638391.tif 000002
【図２】
0003638391.tif 000003
【図３】
0003638391.tif 000004
【図４】
0003638391.tif 000005
【図５】
0003638391.tif 000006
【図６】
0003638391.tif 000007
【図７】
0003638391.tif 000008
【図８】
0003638391.tif 000009
【図９】
0003638391.tif 000010
【図１０】
0003638391.tif 000011
【図１１】
0003638391.tif 000012
【図１２】
0003638391.tif 000013
【図１３】
0003638391.tif 000014
【図１４】
0003638391.tif 000015