JPWO2006118193A1 - エージェントおよび分散制約充足方法 - Google Patents

エージェントおよび分散制約充足方法 Download PDF

Info

Publication number
JPWO2006118193A1
JPWO2006118193A1 JP2007514806A JP2007514806A JPWO2006118193A1 JP WO2006118193 A1 JPWO2006118193 A1 JP WO2006118193A1 JP 2007514806 A JP2007514806 A JP 2007514806A JP 2007514806 A JP2007514806 A JP 2007514806A JP WO2006118193 A1 JPWO2006118193 A1 JP WO2006118193A1
Authority
JP
Japan
Prior art keywords
data
variable
constraint
agent
improvement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007514806A
Other languages
English (en)
Inventor
泰樹 飯塚
泰樹 飯塚
崇 下島
崇 下島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2006118193A1 publication Critical patent/JPWO2006118193A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life

Abstract

エージェントは、変数データを記憶する変数記憶部と、制約データを記憶する制約記憶部と、変数変更禁止期間データを記憶する変数変更禁止期間記憶部と、変数データが制約データを満たしているかと満たすための容易度を示す改善容易度データを生成する改善容易度生成部と、近隣のエージェントと改善容易度データを送受信する通信部と、近隣のエージェントの改善容易度データを記憶する近隣状況記憶部と、改善容易度データと近隣のエージェントの改善容易度データとを比較し、変数変更禁止期間データに応じて、制約違反を解消するように変数データを変更するとともに変数変更禁止期間データを更新する制約解決部とを備え、多くのエージェントが非同期で協調して制約違反を解消して、局所最適解に陥ることなく集合全体がより早く解に到達するエージェントが得られる。

Description

本発明は、近隣のエージェントと通信し、非同期で協調して制約条件を満たすための解を求めるエージェント、および、エージェントの分散制約充足方法に関する。
工場の生産計画や病院の看護士勤務表の作成、ロジスティックスの計画作成など、1つの計画と他の計画との間で規定された制約を満たす計画案を作成する装置として、制約充足装置が知られている。従来の制約充足装置は、より具体的には、計算機のハードウェアとソフトウェアから構成される。図29は、従来の制約充足装置を構成する計算機の構成を示す。図29において、計算機900は、CPU901、メモリ902、表示部903、入力部904、二次記憶部905、ネットワークインタフェース906で構成されている。さらに、二次記憶部905に、変数の初期値と制約データ、および、各部を制御するソフトウェアが格納されている。
また、制約充足装置は、その動作原理を制約充足問題に一般化できることが知られている。このことは、例えば、特開平11−316682号公報(第4−5頁)や、石塚満著「情報科学コアカリキュラム講座、知識の表現と高速推論」(丸善、1996年、p.20,103−119)に開示されている。
この制約充足問題は、次のように説明される。すなわち、制約充足問題とは、m個の変数x1、x2、・・・、xmと、各変数のとり得る値の集合D1、D2、・・・、Dm、および、各変数間の制約の集合P={p1,p2,・・・,pr}が存在する時、変数の値がこの制約をすべて満たす組合せを見つけることである。すなわち、述語論理で記述すると、式1が真である場合の変数の組を見つけることである。
Figure 2006118193
制約充足問題のアルゴリズムや探索手法が既に提案されている。すべての解の組合せを探索するバックトラック探索手法や、ヒューリスティックスと呼ばれる問題に対する知識情報を用いる山登り法や最良優先探索、A*(エー・スター)アルゴリズムなどが知られている。ヒューリスティックサーチは解の評価値を改善する方向に進むため、高速に解に到達するが、局所最適解に陥るとそこから脱出できず、本当の解に到達し得ない可能性がある。また、シミュレーテッド・アニーリングや遺伝的アルゴリズムなどの確率的探索と呼ばれる手法が知られている。また、局所的探索手法を一般化したタブーサーチが知られている。タブーサーチは、最近選んだ近傍解への探索を避ける機構を持ち、近傍への探索を効率化している。これは例えば、特開平11−195066号公報(第9頁、第2図)や石塚 満著「情報科学コアカリキュラム講座、知識の表現と高速推論」(丸善、1996年、p.20,103−119)や、サディック・M・サイト、外1名著、白石洋一訳、「組合せ最適化アルゴリズムの最新手法」(丸善、2002年、p.163)や、リナ・デチター著、「コンストレイント・プロセッシング」((米国)、モルガン・カウフマン・パブリッシャーズ、2003年)に開示されている。
また、制約充足問題は制約ネットワーク図を用いて表現することができるので、ここで制約ネットワーク図について説明する。
図30は、制約充足問題を表現する制約ネットワーク図を説明する図である。図30において、ノード1001は制約充足問題の変数、アーク1002は変数間の制約関係を示している。制約充足問題は、変数n個の間の制約は2項制約に変換して表現できるため、一般性を失うことなく、このような制約ネットワーク図で表現することができる。例えば、各ノードが「黒」と「白」のうちどちらか一方の値をとり、各アークの両端のノードが同じ値をとることができないという制約を持つ場合の例について説明する。
図31Aは、制約充足問題の初期状態例を示す制約ネットワーク図、図31Bは、制約充足問題の解の定まった状態例を示す制約ネットワーク図である。図31Aと図31Bにおいて、値が「黒」のノードは黒色で、値が「白」のノードは白色で示されている。図31Aでは、ノードX203とノードX206の値がともに「黒」でありこれらの間で制約違反が発生している。また、同じ値「白」であるノードX204とノードX205の間でも制約違反が発生している。図31Bは、すべてのノード間の制約が満たされ、この問題の解の一つが定まった状態を示している。以降の説明では、適時、このような制約ネットワーク図を用いる。
特に、制約充足装置のうちネットワークの資源割当計画や多数の作業を含む生産計画、あるいは、電力系統設備の作業停止計画など、分散して配置された計画と他の計画との間で規定された制約を満たす計画案を他の装置と非同期に協調して作成する装置として、複数のエージェントから構成される分散制約充足装置が知られている。この分散制約充足装置を構成するエージェントの動作原理は、制約充足問題の変数や制約を分散した分散制約充足問題に一般化できることが知られている。
ここで、分散制約充足問題を表現する制約ネットワーク図について説明する。分散制約充足問題も、変数n個の間の制約は2項制約に変換して表現できるため、制約充足問題と同様に制約ネットワーク図で表現することができる。図32は、分散制約充足問題を表現する制約ネットワーク図を説明する図である。図32において、1003a、1003b、1003cはエージェント、ノード1001はエージェント1003aが持つ変数、アーク1002はそれら変数間の制約関係を示している。このように各エージェントは、分散制約充足問題の一部の変数を対象にして、それぞれ対象に近隣の制約関係のあるエージェントと非同期に協調して制約を解消する。
ここで、納入契約によって結ばれた複数の独立した会社、工場などの個々の事業者が利益を上げ、しかも全体としても利益が大きくなるように生産計画する場合の例について説明する。計画は、各事業者が独立して並行に作成し、各自業者間で計画を調整する。この全体の生産計画作成は分散制約充足問題として一般化できる。図33において、事業者F1から事業者F7は、それぞれ部品Aから部品Eや、半製品Fの生産数や在庫数、納入数など個別に生産計画を立案し、また他の事業者とこれらの全体計画を調整する。この時、納期や価格、生産期間、生産能力などの事業者間での各制約条件を満足する必要がある。しかし、事業者F1が、事業者F4に対して事業者F3や事業者F5の機密情報を漏らすことなく各計画を作成するためには、分散した変数や制約の情報を一箇所に集めることなく問題を解く方法が必要である。このように、分散制約充足問題では、制約についての情報を通信しようとすると通信コストが大きくなるという課題や、内部データである変数データを他のエージェントに対して隠蔽しなければいけないなどの課題から、分散制約充足問題についての情報を一箇所に集めて解くことが現実的ではない。
制約充足問題を解く既存のアルゴリズムや探索アルゴリズムをそのまま分散制約充足問題に適用することは、非常に難しいことが知られている。分散環境でバックトラック探索する方法として、非同期分散バックトラック法が知られている。バックトラック探索は、探索時に分岐点を覚えておき、探索中に矛盾が生じたら分岐点まで戻って別のルートを探索する単純な方法である。これに対し、非同期分散バックトラック法は、分散環境でこれを実現するために2種類のメッセージと複数のメモリを使い分けるという複雑な構成が必要である。また、この非同期分散バックトラック法は、バックトラック探索と同様にバックトラックを用いた全解探索であるため、探索に著しく時間がかかる。また、各エージェントはノーグッドと呼ばれる制約違反情報を大量に保持する必要がある。このアルゴリズムは、例えば、特開平11−316682号公報(第4−5頁)や、横尾 真、外3名、「分散制約充足による分散協調問題解決の定式化とその解法」(電子情報通信学会論文誌D−I、1992年、第75巻、第8号、p.704−713)や、横尾 真、外1名、「分散制約充足のアルゴリズム:レビュー」(自律エージェントとマルチェージェント・システム、(米国)、2000年、第3巻、2号、p.189−212)などに開示されている。
また、非同期分散バックトラック法を改善した非同期弱コミットメント探索法が知られている。非同期弱コミットメント探索法は、優先度の概念を導入して高速であるが、制約違反情報を大量に保持、交換する必要がある。また、その情報を検索し、条件によってさらに制約違反情報を生成するなどのコストが必要である。また、特定のエージェント間の制約情報を第三のエージェントにも配布する必要があり、エージェント間でのセキュリティを保つことができない。このアルゴリズムは、例えば、リナ・デチター著「コンストレイント・プロセッシング」((米国)、モルガン・カウフマン・パブリッシャーズ、2003年)や、横尾 真「非同期弱コミットメント探索法」(第1回制約プログラミングの原理と実践に関する国際会議(CP−95))、(米国)、1995年、p.407−422))などに開示されている。
また、バックトラックを必要とせず、制約違反情報も持たないアルゴリズムとして、分散ブレークアウトアルゴリズムが知られている。しかし、このアルゴリズムは特定の条件下では、ループに陥り解が得られない可能性がある。また、制約に対して重み付けをするため、解を求めている途中で制約が変わるような動的状況には対応できない。これは、例えば、特開平9−297689号公報(第4頁、第1図)や、横尾 真、外1名、「分散breakout:反復改善型分散制約充足アルゴリズム」(情報処理学会論文誌、1998年、第39巻、第6号、p.1889−1897)などに開示されている。
また、従来のエージェントは、従来の制約充足装置と同様に、より具体的には、計算機のハードウェアとソフトウェアから構成される。特に、複数のエージェントがネットワークを介して非同期に通信し、協調して制約違反を解消するように動作する。
上記従来のエージェントでは、各エージェントがそれぞれ非同期でエージェント間の制約違反状態を解消するための変数を求めようとする。そのため、局所最適解に陥る可能性や、一部のエージェントが順番に値を変更する処理の無限ループに陥る可能性が高いという課題がある。
本発明は、このような課題を解決するもので、非同期でエージェント間の制約違反状態を解消するための変数を求める際に、一部のエージェントだけで制約違反を解消しようとせず、多くのエージェントで制約違反解消にあたることで、局所最適解や無限ループに陥ることなく、結果としてエージェントの集合全体がより早く解に到達するエージェントを提供するものである。
上記の課題を解決するために、本発明のエージェントは、複数のエージェントが非同期で協調して解を求めるエージェントにおいて、求める前記解の現在の値を示す変数データを記憶する変数記憶部と、変数データと近隣のエージェントが記憶する変数データとの値の組合せを示す制約データを記憶する制約記憶部と、変数データの変更を禁止する期間を示す変数変更禁止期間データを記憶する変数変更禁止期間記憶部と、自エージェントの前記変数データが制約データを満たすための容易度を示す改善容易度データを生成する改善容易度生成部と、変数データと改善容易度生成部が生成した改善容易度データとを近隣のエージェントと送受信する通信部と、近隣のエージェントより取得した改善容易度データおよび変数データとで構成する近隣状況データを記憶する近隣状況記憶部と、改善容易度生成部が生成した改善容易度データと近隣状況記憶部に格納している近隣のエージェントの改善容易度データとを比較し、変数変更禁止期間データに応じて、近隣状況記憶部に格納している近隣のエージェントの変数データとの間の制約違反を解消するように変数データを制約データの組合せを満たす値に変更するとともに、変数変更禁止期間データをあらかじめ定められた期間とするよう設定する制約解決部とを備える。
そのため、ある条件下で一定の期間において変数を連続して変更することを禁止することにより、一部のエージェントの制約違反を解消するだけでなく、多くのエージェントで制約違反を解消するもので、局所最適解に陥ることなく、結果としてエージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、改善容易度データは、少なくとも、制約データの数を示す制約数と、変数データが制約データに違反している数を示す制約違反数と、変数データの値を変更した場合に違反状態を解消できる制約データの数を示す改善可能数とのいずれか1つを属性とする構造とし、改善容易度生成部が、変数データに対する制約データの総数を求めて制約数とし、変数データと近隣のエージェントの変数データとが制約データの値の組合せを満たしていない制約データの総数を求めて制約違反数とし、変数データと近隣のエージェントの変数データとが制約データの値の組合せを満たしていない制約データのうち、変数データが変数変更禁止期間データに含まれておらず、かつ、変数データの値を変更することによって、制約データの値の組合せを満たすように変更できる組合せの総数を求めて改善可能数として、改善容易度データの属性の値を生成する。
そのため、エージェントが変数データを変更すべきかどうかについてその変数データが制約データを満たす度合いに基づいて判断できるようになり、結果としてエージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、変数データが制約データを満たしている度合いの過去の推移を示す改善傾向データを記憶する改善傾向記憶部をさらに備え、制約解決部は、変数データに含まれる制約違反数で改善傾向記憶部にしている改善傾向データを追加更新し、改善傾向データに応じて変数変更禁止期間の長さを決定して、変数データを変更後に変数変更禁止期間記憶部に記憶している変数変更禁止期間データを更新する。
そのため、エージェントが制約違反の改善傾向に応じて変数データの変数変更禁止期間を調整し、問題に適応した期間だけ変数を変更することを禁止できるようになり、局所最適解に陥ることなく、あるいは一部のエージェントだけの無限ループに陥る可能性が低下し、結果としてエージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、改善容易度生成部は、第1の一定時間間隔毎に改善容易度データを生成し、通信部が近隣のエージェントへ改善容易度データを送信するように構成する。
そのため、エージェントが近隣のエージェントの改善度合いを定期的に取得できるようになり、より最新の改善状況に基づいて変数を変更するかどうかを判断し、結果として、エージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、改善容易度生成部は、第2の一定時間間隔毎に改善容易度データを生成し、制約解決部が変数変更禁止期間データに応じて、近隣のエージェントの記憶する変数データとの間の制約違反を解消するように変数データを変更するとともに変数変更禁止期間記憶部に記憶している変数変更禁止期間データを更新するように構成する。
そのため、エージェントが自身の改善度合いを定期的に確認できるようになり、より最新の自身の改善状況に基づいて変数を変更し、結果として、エージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、第1の一定時間間隔は、第2の一定時間間隔より小さく設定するように構成する。
そのため、エージェントが近隣のエージェントの改善度合いを送受信する頻度よりも自身の改善度合いを確認する頻度を低くできるようになり、近隣のエージェントの最新状況に基づいて改善度合いを確認することができ、結果として、エージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、変数データの変更を禁止する期間を示す変数変更禁止期間は、第2の一定時間間隔のk倍(kは整数)に設定するように構成する。
そのため、エージェントが自身の変数データを変更後に、変数データの変更を禁止した状態で、変数データの改善度を近隣のエージェントが判断することができるようになり、一部のエージェントの制約違反だけでなく、多くのエージェントで制約違反を解消し、一部のエージェントだけの無限ループに陥る可能性がより低下し、結果としてエージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、制約解決部は、変数データを変更するかどうかを判定する際に、自エージェントの改善容易度データと近隣状況記憶部が記憶する近隣のエージェントの改善容易度データとを比較し、少なくとも改善可能数が最も多い場合と、自エージェント以外に制約違反をしていて変数データを変更できるエージェントがいない場合と、制約違反数が最も多い場合と、制約数が最も少ない場合とのうちいずれか1つの場合に変数データを変更すると判定するように構成する。
そのため、エージェントが変数データを変更すべきかどうかについてその変数データが制約データを満たす複数の度合いに基づいて判断できるようになり、変数を変更するエージェントを任意の基準で決定し、結果としてエージェントの集合全体が解に到達する度合いを調整することができる。
また、本発明のエージェントは、制約解決部は、変数データを変更する際に、制約データより制約を満たす変数の値を選択し、変数記憶部の変数データを更新するように構成する。
そのため、エージェントが制約を解消する値を組合せリストから選択することができるようになり、適切に制約を解消できる値を確実に選定し、結果としてエージェントの集合全体がより早く解に到達することができる。
また、本発明のエージェントは、制約解決部は、改善傾向データの直近の第3の一定時間間隔における制約違反数の合計m1とその前の第3の一定時間間隔における制約違反数の合計m0とを比較により、m1<m0の場合は改善傾向があると判定して変数変更禁止期間の現在設定値を短くし、m1≧m0の場合は改善傾向がないと判定して変数変更禁止期間の現在設定値を長くして、変数変更禁止期間データを更新するように構成する。
そのため、エージェントが実際の制約違反数の改善傾向に応じて変数データの変数変更禁止期間を調整し、問題に適応した期間だけ変数を変更することを禁止できるようになり、結果としてエージェントの集合全体がより早く解に到達することができる。
本発明のエージェントによれば、ある条件下で一定の期間において変数を連続して変更することを禁止することにより、一部のエージェントだけで制約違反を解消しようとせず、多くのエージェントで制約違反の解消にあたることで、局所最適解や無限ループに陥ることなく、結果としてエージェントの集合全体がより早く解に到達する。
エージェントは、複数のエージェントが非同期で協調して解を求めるエージェントにおいて、求める解の現在の値を示す変数データを記憶する変数記憶部と、変数データと近隣のエージェントが記憶する変数データとの値の組合せを示す制約データを記憶する制約記憶部と、変数データの変更を禁止する期間を示す変数変更禁止期間データを記憶する変数変更禁止期間記憶部と、自エージェントの変数データが制約データを満たすための容易度を示す改善容易度データを生成する改善容易度生成部と、変数データと改善容易度生成部が生成した改善容易度データとを近隣のエージェントと送受信する通信部と、近隣のエージェントより取得した改善容易度データおよび変数データを記憶する近隣状況記憶部と、改善容易度生成部が生成した改善容易度データと近隣状況記憶部に格納している近隣のエージェントの改善容易度データとを比較し、変数変更禁止期間データに応じて、近隣状況記憶部に格納している近隣のエージェントの変数データとの間の制約違反を解消するように変数データを制約データの組合せを満たす値に変更するとともに、変数変更禁止期間データをあらかじめ定められた期間に設定する制約解決部とを備える。
分散制約充足方法は、各エージェントが、求める解の現在の値を示す変数データと、変数データと近隣のエージェントがもつ変数データとの値の組合せを示す制約データと、変数データの値の変更を禁止する期間を示す変数変更禁止期間データとをそれぞれ持ち、変数データ間のすべての制約関係が成立する変数データの解を複数のエージェントが協調して求める分散制約充足方法において、各エージェントが、自エージェントの変数データが制約データを満たすための容易度を示す改善容易度データを生成する生成ステップと、変数データと生成ステップで生成した改善容易度データとを各近隣のエージェントと非同期に送受信するステップと、変数データと改善容易度データを自己の改善容易度データと各近隣のエージェントの改善容易度データとを比較して、自己の変数データを変更するかどうかを決定する判定ステップと、判定ステップで自己の変数データを変更すると判定した場合に、自己の変数データを制約データの組合せを満たす値に変更して近隣のエージェントに通知する変更ステップと、変更ステップで変数データを変更した場合に、変数変更禁止期間データをあらかじめ定められた期間に設定する変更禁止ステップとを有する。
図1は本発明の実施の形態1にかかるエージェントの構成図である。 図2Aは本発明の実施の形態1にかかるエージェントの変数記憶部に格納する変数データの構造を示す図である。 図2Bは本発明の実施の形態1にかかるエージェントの制約記憶部に格納する制約データの構造を示す図である。 図2Cは本発明の実施の形態1にかかるエージェントの近隣状況記憶部に格納する改善容易度データの構造を示す図である。 図2Dは本発明の実施の形態1にかかるエージェントの変数変更禁止期間記憶部に格納する変数変更期間データの構造を示す図である。 図3は本発明の実施の形態1にかかるエージェントの動作を示すフローチャートである。 図4は本発明の実施の形態1にかかるエージェントの変数変更禁止期間の設定例を示す図である。 図5は本発明の実施の形態1にかかるエージェントの変数を変更する判定処理を示すフローチャートである。 図6は本発明の実施の形態1にかかるタスク割当装置の構成図である。 図7は本発明の実施の形態1にかかるタスク割当装置が計画を作成するタスク問題の制約ネットワークを示す図である。 図8Aは本発明の実施の形態1にかかるタスク割当装置の初期状態の制約ネットワークを示す図である。 図8Bは本発明の実施の形態1にかかるタスク割当装置の計画策定中状態の制約ネットワークを示す図である。 図8Cは本発明の実施の形態1にかかるタスク割当装置の最終状態の制約ネットワークを示す図である。 図9は本発明の実施の形態2にかかるエージェントの構成を示す図である。 図10は本発明の実施の形態2にかかるエージェントの動作を示すフローチャートである。 図11Aは本発明の実施の形態2にかかるエージェントの改善傾向データの構造を示す図である。 図11Bは本発明の実施の形態2にかかるエージェントの改善傾向データの記憶動作を説明する図である。 図11Cは本発明の実施の形態2にかかるエージェントの改善傾向を判定する動作を説明する図である。 図12は本発明の実施の形態2にかかるエージェントの変数変更禁止期間を調整する動作を示すフローチャートである。 図13は本発明の実施の形態2にかかるエージェントを搭載するスケジュール調整装置の構成図である。 図14は本発明の実施の形態2にかかるスケジュール調整装置が計画を作成するスケジュール問題を説明する図である。 図15は本発明の実施の形態2にかかるスケジュール調整装置が計画を作成するスケジュール問題の制約ネットワークを示す図である。 図16は本発明の実施の形態2にかかるスケジュール調整装置の初期動作を説明する図である。 図17は本発明の実施の形態2にかかるスケジュール調整装置のTP調整後の動作を説明する図である。 図18は本発明の実施の形態3にかかるエージェントの構成図である。 図19は本発明の実施の形態3にかかるエージェントを搭載した協調作業ロボットの構成例を示す図である。 図20は本発明の実施の形態3にかかる移動計画立案装置が計画を作成する移動問題を説明する図である。 図21は本発明の実施の形態3にかかる移動計画立案装置が計画を作成する移動問題の制約ネットワークを示す図である。 図22は本発明の実施の形態3にかかる協調作業ロボットの移動オペレータの説明図である。 図23は本発明の実施の形態3にかかる移動計画立案装置の初期状態を説明する図である。 図24は本発明の実施の形態3にかかる移動計画立案装置の途中状態を説明する図である。 図25は本発明の実施の形態3にかかる移動計画立案装置の最終動作を説明する図である。 図26は実験に使った問題の制約ネットワークの例を示す図である。 図27は実験結果の解到達までの平均サイクル数の比較を示す図である。 図28は実験結果の解到達率の比較を示す図である。 図29は従来の制約充足装置を構成する計算機の構成図である。 図30は制約充足問題を表現する制約ネットワークを説明する図である。 図31Aは制約充足問題の初期状態例を示す制約ネットワークを示す図である。 図31Bは制約充足問題の解の定まった状態例を示す制約ネットワークを示す図である。 図32は分散制約充足問題を表現する制約ネットワーク図を説明する図である。 図33は分散制約充足問題の例を説明する図である。
符号の説明
100,100a,100b,100c,200,200a,200b,200c,200n,700 エージェント
101 変数記憶部
102 制約記憶部
103 近隣状況記憶部
104 変数変更禁止期間記憶部
105,205 制約解決部
106 通信部
107 改善容易度生成部
208 改善傾向記憶部
210 改善傾向データ
701 計画座標記憶部
703 近隣計画座標記憶部
800,811,812 ロボット
801 外界検知部
802 移動部
803 衝突回避部
813 障害物
814,815 ゴール
900 計算機
(実施の形態1)
以下、本発明の実施の形態1にかかる複数のエージェントを接続したタスク割当装置について、図面を参照しながら説明する。実施の形態1にかかるエージェントは、ある条件下で一定の期間において変数を連続して変更することを禁止することにより、一部のエージェントの制約違反を解消するだけでなく、多くのエージェントで制約違反を解消するもので、局所最適解に陥ることなく、結果としてエージェントの集合全体がより早く解に到達するものである。
まず、実施の形態1にかかるエージェントの構成および動作について説明する。図1は、本発明の実施の形態1にかかるエージェントの構成図である。図1において、エージェント100は、変数記憶部101と制約記憶部102と変数変更禁止期間記憶部104と改善容易度生成部107と通信部106と近隣状況記憶部103と制約解決部105とで構成されている。
変数記憶部101は、求める解の現在の値を示す変数データを記憶する。制約記憶部102は、変数データと近隣のエージェントが記憶する変数データとの値の組合せを示す制約データを記憶する。変数変更禁止期間記憶部104は、変数データの変更を禁止する期間を示す変数変更禁止期間データを記憶する。改善容易度生成部107は、自エージェントの変数データが制約データを満たすための容易度を示す改善容易度データを生成する。通信部106は、変数データと改善容易度生成部107が生成した改善容易度データとを近隣のエージェントと送受信する。近隣状況記憶部103は、近隣のエージェントより取得した改善容易度データおよび変数データとで構成する近隣状況データを記憶する。制約解決部105は、改善容易度生成部107が生成した改善容易度データと近隣状況記憶部103に格納している近隣のエージェントの改善容易度データとを比較し、変数変更禁止期間データに応じて、近隣状況記憶部103に格納している近隣のエージェントの変数データとの間の制約違反を解消するように変数データを制約データの組合せを満たす値に変更する。それとともに、制約解決部105は、変数変更禁止期間データをあらかじめ定められた期間とするよう設定する。
次に、エージェント100に格納するデータの構造について説明する。図2Aは、本発明の実施の形態1にかかるエージェントの変数記憶部101に格納される変数データの構造を示す図である。図2Aにおいて、変数記憶部101に格納される変数データ121は、変数名とその値をレコードとするテーブル構造をしている。図2Aは、自エージェントAが変数xを1つ持ち、その値が1であることを示している。
図2Bは、本発明の実施の形態1にかかるエージェントの制約記憶部102に格納される制約データの構造を示す図である。図2Bにおいて、制約記憶部102に格納される制約データ122は、自分の変数名と近隣のエージェントの変数名と、それらの値の可能な値の組合せを示すリストをレコードとするテーブル構造である。図2Bにおいて、自エージェントAは、変数xに関連する制約として、エージェントBの変数yとの間に値の組合せ(x,y)が(1,1)または、(2,2)または(3,3)でなければならないとする制約があることが示されている。また、エージェントCの変数yとの間に値の組合せが(1,1)または、(2,2)または(3,3)とする制約があることも示されている。この変数xに関して制約のある変数を持つエージェントを近隣のエージェントと呼ぶ。
図2Cは、本発明の実施の形態1にかかるエージェントの変数変更禁止期間記憶部104に格納される変数変更期間データの構造を示す図である。図2Cにおいて、変数変更禁止期間記憶部104に格納される変数変更禁止期間データ123は、変数名と、変数の値の変更を禁止する期間の開始時と終了時を示すそれぞれの時刻情報とをレコードとするテーブル構造である。図2Cでは、自エージェントAの変数xの値を時刻00時00分から00時05分まで禁止されていることが示されている。
図2Dは、本発明の実施の形態1にかかるエージェントの近隣状況記憶部103に格納する改善容易度データの構造を示す図である。図2Dにおいて、近隣状況記憶部103に格納される近隣状況データは、変数データと制約関係のある近隣のエージェントの変数名と値、改善容易度データ125、をレコードとするテーブル構造をしている。なお、改善容易度データ125は、制約データの数を示す制約数lと、変数データが制約データに違反している数を示す制約違反数mと、変数データの値を変更した場合に制約違反状態を解消できる制約データの数を示す改善可能数nで構成されている。
自エージェントAの変数xと制約を有する近隣のエージェントBについては、変数yの値が2であり、改善容易度データ125の制約数lが1、制約違反数mが1、改善可能数nが1であることを示している。同様に、近隣のエージェントCについて、変数zの値が3であり、改善容易度データ125の制約数lが1、制約違反数mが1、改善可能数nが1であることを示している。なお、図2Dでは、自エージェントの改善容易度データ125についても、同様に格納するようにしているが、自エージェントAの改善容易度データ125を別の記憶手段に記憶するように構成してもなんら差し支えない。
次に、エージェントの動作を説明する。図3は、本発明の実施の形態1にかかるエージェントの動作を示すフローチャートである。図3においては、パラメータとして、近隣のエージェントへ改善容易度データを送信する時間間隔T1(タイマイベントEv1)と、改善動作をする時間間隔T2(タイマイベントEv2)が用いられている。尚、この時間間隔T1は第1の一定時間間隔の一例である。また、この時間間隔T2は第2の一定時間間隔の一例である。
まず、制約解決部105は、時間間隔T1で起動されるタイマイベントEv1と、時間間隔T2で起動されるタイマイベントEv2と、近隣のエージェントからのメッセージを受信によるメッセージ受信イベントEv3のいずれか1つのイベントが発生するまで待機する(ステップS401)。次に、制約解決部105は、発生したイベントの種類に応じて、それぞれ次の処理の開始を指示する(ステップS402)。
イベントがタイマイベントEv1の場合について説明する。改善容易度生成部107は、変数の値の変更が禁止されている期間内かどうかを、変数変更禁止期間記憶部104に記憶された変数変更禁止期間データより判定する。もし、期間外であれば、改善容易度生成部107は、変数記憶部101に格納された変数データと制約記憶部102に格納された制約データから、制約数l、制約違反数m、改善可能数nとで構成される改善容易度データを生成し、期間内であれば、変数の値が変更できない旨が記憶される(ステップS403)。このとき、改善容易度生成部107は、変数データテーブル121に格納されている変数データに対する改善容易度データの属性値を次のように生成する。改善容易度生成部107は、制約記憶部102に格納している制約データ122からその変数データの変数名を含むレコードの総数を計算して制約数lとし、そのレコードの中で、自エージェントの変数データと近隣のエージェントの変数データとが値の組合せに含まれていないレコードの総数を計算して制約違反数mとする。改善容易度生成部107は、さらにそのレコードの中で、変数データの値が変数変更禁止期間データ123に格納されておらず、かつ、変数データの値を変更することにより制約データの値の組合せとすることができるレコードの総数を計算して改善可能数nとする。なお、時間間隔T1は後に述べる時間間隔T2よりも短いことが望ましい。時間間隔T1が十分に短く、常に最新の状況を近隣のエージェントに通知することができる。
続いて、通信部106は、改善容易度データをメッセージ通信で近隣のエージェントのすべてに送信し、ステップS401に戻る。ただし、通信部106は、ステップS403で変数の変更が禁止されている期間内で変数の値が変更できないと判定していた場合は、変更できない旨のメッセージを送信する(ステップS404)。
次に、イベントがメッセージ受信イベントEv3の場合について説明する。通信部106は、近隣のエージェントからメッセージを受信する(ステップS405)。通信部106は、受信したメッセージに含まれる近隣のエージェントの変数データと改善容易度データを近隣状況記憶部103に格納し、ステップS401に戻る(ステップS406)。
次に、イベントがタイマイベントEv2の場合について説明する。改善容易度生成部107は、ステップS403での処理と同様に、変数変更禁止期間記憶部104に記憶された変数変更禁止期間データ123より変数値の変更が禁止されていないかを判定する。さらに、改善容易度生成部107は、変数記憶部101に格納された変数データ121と制約記憶部102に格納された制約データ122から、制約数l、制約違反数m、改善可能数nとで構成される改善容易度データを生成する(ステップS407)。ただし、自エージェントの改善容易度データ125の近隣エージェント名は、自エージェントをあらわす値として、他エージェントのデータと区別可能としている。
次に、制約解決部105は、改善容易度生成部107がステップ407で生成した改善容易度データ125と、近隣状況記憶部103に記録している各近隣のエージェントの改善容易度データ125とを比較し、変数の値を変更するべきかどうかを判定する。変更すると判定した場合は、ステップS409へ進む。変更しないと判定した場合は、このイベント処理を終了し、ステップS401へ戻る(ステップS408)。この判定方法の詳細は後述する。
続いて、制約解決部105は、制約記憶部102に格納している制約データ122の可能な組合せの中から、自エージェントのとれる変数を1つ選択して変数の値を求め、変数記憶部101に格納している変数データ121の現在の値を更新する。その結果として、改善容易度生成部107は、更新した変数データの値で改善容易度データをステップS403での処理と同様に生成し、通信部106は変数データと生成した改善容易度データを各近隣のエージェントにメッセージで通知する(ステップS409)。
さらに、制約解決部105は、ステップS408で値を変更した変数に対して、その値を一定期間変更できないように変数変更禁止期間記憶部104に変数変更禁止期間の現在の時刻を開始時刻とし、一定期間経過後の時刻を終了時刻として格納し、ステップS401に戻る(ステップS410)。
なお、ステップS410で、本実施の形態では、変数の変更を一定期間禁止する設定とし、この時の期間を時間間隔T2のk倍(kは整数)としている。例えば、k=2、即ち2倍とする。また、この期間が過ぎたら変数変更禁止期間記憶部104の禁止設定を解除するようにしている。
なお、この動作フローは、近隣のエージェントとは独立して非同期的に動作する。そのため、各エージェント間は、非同期で動作する近隣のエージェントから任意の時間にメッセージが送られてくる。本実施の形態では、メッセージを受信した際にはイベント処理機構によるイベントキューにメッセージ受信イベントEv3が格納され、ステップS401以外のステップを処理中であっても、ステップS401に処理が移行した際にイベントを検知できるよう実現している。また、ステップS405でメッセージ処理中にタイマイベントが発生した場合でも、同様に検知して処理できる。
次に、ステップS410での変数変更禁止期間の設定方法について説明する。本実施の形態では、変数の値の変更を一切禁止する方法(禁止方法1)としたが、変数をある値にすることを禁止する方法(禁止方法2)や、ある値から別のある値へ変更することを禁止する方法(禁止方法3)、あるいは、上記の組合せやその他の特定の変更を禁止する方法(禁止方法4)として実現することもできる。
このような禁止方法で、例えば、変数xの値域、すなわち、変数xのとる値の集合を{1,2,3}とし、変数xの値が「1」から「2」へ変更した場合に、先に示した禁止方法による禁止期間中の動作はそれぞれ次のようになる。
禁止方法1では、変数xの値を変更することが一切禁止され、一定期間中は、変数xの値を変更することはできない。変数変更禁止期間は、変数毎に設定される。
禁止方法2では、変数xの値を「1」に戻すことを一定期間禁止にするか、あるいは変数xの値を「2」に変更することを一定期間禁止にする。この場合、禁止期間であっても変数xの値を「3」に変更することは禁止されない。変数変更禁止期間は、変数の値毎に設定される。
禁止方法3では、変数xの値を「1」から「2」への変更を禁止する。この場合、「1」から「2」への変更を禁止された期間であっても、「1」から「3」への変更や、「3」から「2」への変更は禁止されない。変数変更禁止期間は、変数の変更の方向を区別して設定される。
禁止方法4では、変数xの値を「3」から「2」、「2」から「1」、「1」から「3」への変更を禁止する。この場合、値は「1」から「2」、「2」から「3」、「3」から「1」のように昇順方向での変更のみに制限される。
次に、本実施の形態にかかるエージェントの変数変更禁止期間の設定例について説明する。図4は、本発明の実施の形態1にかかるエージェントの変数変更禁止期間の設定例を示す図である。図4において、変数Aの値を「1」から「2」へ変更後、「1」から「2」への変更を禁止するように変数変更禁止期間151が設定(時刻153で)される。さらに、その変数変更禁止期間151中に変数Aの値を「2」から「1」へ変更し、変数Aの「2」から「1」への変数変更禁止期間152が設定(時刻154で)されている。それぞれの変数変更禁止期間は独立に設定され、また、「1」から「2」への変数変更禁止期間であっても、「2」から「1」への変数変更禁止期間でなければ、「2」から「1」へ変更は禁止されない。変数変更禁止期間の終了後は、禁止設定が解除(時刻155と、時刻156で)される。
次に、本実施の形態にかかるエージェントの変数を変更する制約解決部105の判定処理の詳細について説明する。図5は、本発明の実施の形態1にかかるエージェントの変数を変更する制約解決部105の判定処理を示すフローチャートである。判定処理は、図3のエージェントの動作を示すフローチャートのステップS408の詳細な動作を示している。なお、図5では、制約解決部105は、必ず、変数の値を変更しないと判定するか(S509)、変数の値を変更すると判定し(S510)、終了する。
ステップS501において、制約解決部105は、変数記憶部101に格納している変数データ121と制約記憶部102に格納している制約データ122とから、変数データの値が制約データの組合せに含まれていないレコードを検索して制約に違反している変数データの有無を判別する。制約に違反している変数データがない場合は、制約解決部105は、変数を変更しないと判定し(S509)、終了する。
ステップS502において、ステップS501で調べた制約に違反している変数が、変数変更禁止期間記憶部104に格納されている変数変更禁止期間データ123の禁止期間に含まれており変数の変更が禁止されている場合は、制約解決部105は、変数の値を変更しないと判定し(S509)、終了する。
ステップS503において、制約解決部105は、改善容易度生成部107で計算された制約数l、制約違反数m、改善可能数nとで構成される改善容易度データと近隣状況記憶部103に格納されている近隣のエージェントの改善容易度データ125とを比較する。改善可能数nがどの近隣のエージェントの改善可能数nよりも大きい場合は、制約解決部105は、変数の値を変更すると判定し(S510)、終了する。逆に、改善可能数nがいずれかの近隣のエージェントの改善可能数nよりも小さい場合は、制約解決部105は、変数を変更しないと判定し(S509)、終了する。上記以外の場合、すなわち、改善可能数nが近隣のエージェントの改善可能数nの中で最大のものと同じ場合は、ステップS504へ進む。この時、すべての近隣のエージェントとともに改善可能数nが0の場合も含まれる。
ステップS504において、制約解決部105は、改善容易度生成部107で計算した制約数l、制約違反数m、改善可能数nとで構成される改善容易度データと近隣状況記憶部103に格納されている近隣のエージェントの改善容易度データ(制約数l、制約違反数m、改善可能数n)125とから、近隣のエージェントの中に、制約違反数mが1以上で、かつ、改善可能数nから変数を変更できるエージェントがあるかを調べる。対象のエージェント数が0であれば、制約解決部105は、変数を変更すると判定し(S510)、終了する。対象のエージェント数が1以上であれば、ステップS505へ進む。
ステップS505において、制約解決部105は、制約違反数mとステップS504で対象となったエージェントの制約違反数mとを比較し、どの近隣のエージェントの制約違反数mよりも大きい場合は、変数の値を変更すると判定し(S510)、終了する。いずれかの近隣のエージェントの制約違反数mよりも小さい場合は、変数を変更しないと判定し(S509)、終了する。また、制約違反数mが、近隣のエージェントの制約違反数mの中で最大のものと同じ場合は、ステップS506へ進む。
ステップS506において、制約解決部105は、制約数lとステップS504で対象となったエージェントの制約数lとを比較し、どの近隣のエージェントの制約数lよりも小さい場合は、変数を変更すると判定し(S510)、終了する。いずれかの近隣のエージェントの制約数lよりも大きい場合は、変数を変更しないと判定し(S509)、終了する。制約数lが近隣のエージェントの制約数lの中で最小のものと同じ場合は、ステップS507へ進む。
ステップS507において、制約解決部105は、自エージェントとステップS504で対象となったエージェントを含めて、あらかじめ設定されている確率的な判定方法で変数を変更するエージェント判別する。
ステップS508において、制約解決部105は、自エージェントが変数を変更する対象と判別した場合には、変数を変更すると判定し、終了する。変数を変更する対象と判別されなかった場合には、変数を変更しないと判定し、終了する。
なお、ステップS508でのエージェントの確率的な判定は、例えば時刻情報やエージェント間の序列など、エージェントが共通に参照できるデータに応じて算出する方法などとしてもよい。
また、この確率的な判定方法は、決定する結果に偏りがなく平均的な確率分布でどちらの変数も決定されるものとし、少なくとも一方の変数が平均的に長い間続けて優先して変更されるようなことがないものとする。例えば、ノードの名前の若い方のノードが必ず優先して変更されるような誤った判定方法のみとする場合は除くものとする。
また、変数を変更するかしないかを判定する処理手順について、本実施の形態では上記ステップS501からステップS508の処理手順としたが、一例を示したものであり、判定するステップの種類や判定する順番はこれに限定されるものではない。
次に、本実施の形態にかかる複数のエージェントを接続したタスク割当装置により計画を作成する実施例について説明する。図6は、本発明の実施の形態1にかかるタスク割当装置の構成図である。図6において、タスク割当装置300内のエージェント100a、エージェント100b、、、、エージェント100cは、有線あるいは無線のネットワークで接続され互いに通信可能な状態になっている。また、本実施の形態では、エージェント100、エージェント100b、、、、エージェント100cは図1に示したエージェント100と同様の構成をしている。エージェント100aが自エージェントとすると、エージェント100bなどが近隣エージェントということになる。また、変数記憶部101、制約記憶部102、変数変更禁止期間記憶部104には、あらかじめ動作に必要な初期値が設定されているとして説明するが、各エージェントの初期値を設定する初期設定装置を別に設けて、ネットワークを通して各エージェントに設定する構成としても実施できる。
次に、本実施の形態にかかる複数のエージェントを接続したタスク割当装置の具体的動作について説明する。ここでは、「黒タスク」と「白タスク」のどちらか一方を受け持つ複数のエージェントが、それぞれタスクの種別を示す1つの変数を持ち、初期の値の状態から近隣のエージェントと制約違反を解消するように非同期に協調してタスク割当計画を作成する実施例について説明する。
図7は、本発明の実施の形態1にかかるタスク割当装置が計画を作成する制約ネットワーク図である。図7において、各ノードは、エージェントX1の変数x1、X2の変数x2、・・・、X7の変数x7を示している。そして各ノードは「黒タスク」を示す「黒」と「白タスク」を示す「白」のどちらか一方の値をとる。また、各アークは各変数間の制約を示している。ここでは、アークで結ばれた近隣のエージェントどうしは同じタスクを受け持つことはできないこととする。すなわち、制約で結ばれたノードどうしは互いに同じ値を持つことができない。例えば、ノードx1とノードx4は、同時に「白」、あるいは「黒」であってはいけない。図7に示される状態では、ノードx4とノードx5の値が同時に「黒」であり、制約違反が発生している。
なお、図7は、タスク割当装置内の各エージェントについて変数間の制約関係を示したものであり、各エージェント間を接続する実際のネットワーク接続構成を示すものではない。ただし、図6に示したように必ずしもすべてのエージェント間の通信路を構成する必要はなく、少なくとも制約関係にある変数を持つエージェント間の通信路が構成されていればよい。
次に、本実施の形態にかかる複数のエージェントを接続したタスク割当装置で各エージェントの変数間の制約を解消する例について説明する。図8Aは、本発明の実施の形態1にかかるタスク割当装置の初期状態の制約ネットワーク図である。図8Bは、本発明の実施の形態1にかかるタスク割当装置の計画策定中状態の制約ネットワーク図である。図8Cは、本発明の実施の形態1にかかるタスク割当装置の最終状態の制約ネットワーク図である。なお、図8Aから図8Cにおいて、各ノードを表す記号xjの後ろにそれぞれの改善容易度データが「(改善可能数n/制約違反数m/制約数l)」のように示されている。また、ここでは、変数を変更するかどうかの判定については、改善可能数nが多い方が変更する。もし、これが同じ場合には、制約違反数mが多い方が変更し、もし、これも同じ場合には、制約数lが少ない方のエージェントが変数の値を変更するものとしている。また、変数の変更禁止方法については、変数の値の変更を一切禁止するようにしている。
図8Aは、初期状態を示している。ここでは、ノードx4とノードx5の間で制約違反が発生している。ノードx1、x2、x3、x6、x7は、制約違反しておらず、制約数も1なので、改善容易度データはすべて(0/0/1)となる。ノードx4は、ノードx5との間で制約違反を1つ持ち、ノードx4が白に変更すると、ノードx5との間の制約違反は解消されるものの、ノードx1、x2、x3の間で制約違反が発生することから、改善可能数n(この場合は0以上の数)は0になる。よって、ノードx4の改善容易度データは、(0/1/4)となる。ノードx5の改善容易度データも同様に(0/1/3)となる。この情報が図3のステップS403、ステップS404、ステップS405、ステップS406により近隣のエージェント間で情報交換される。
制約違反しているノードx4と変数x5は、ほとんど条件が同じだが、制約数lはノードx5の方が小さいため、ノードx4は値を変更しないと判定し、ノードx5は値を変更すると判定する。よってノードx5は値を「白」に変更し、図8Bに示す状態になる。
図8Bの状態において、ノードx5は、値を「白」から「黒」に変えればノードx6、ノードx7との間の2つの制約違反を改善できるがノードx4との間の制約に違反することになるため、改善可能数lは1である。よってノードx5の改善容易度データは(1/2/3)となる。ノードx6、x7の改善容易度データはともに(1/1/1)となる。改善可能数nはすべて同じであるが、制約数lはノードx5の方が大きい。ここでノードx5の値を「白」から「黒」に変更すると、図8Aの状態に戻って局所最適解の無限ループに陥ってしまう。
しかし、ノードx5は、先ほど値を変更したため変数変更禁止期間にあり、値は変更できない。このため、ノードx6、ノードx7は、それぞれがステップS504で値を変更すると判定する。ノードx6とノードx7は直接制約で結ばれていないので、両方が同時に値を変更できる。
最後に、変数x6、x7が値を変更し、図8Cの状態になる。図8Cは、すべての制約が満たされた最終状態である。
このようにして、すべてのエージェントに白、あるいは黒のタスクが、制約をすべて満たすように割当てられた。すなわち、すべての制約が満たされた状態になり、タスク割当装置によりタスク割当計画が作成された。
なお、本実施の形態におけるエージェントは、近隣のエージェントと時間間隔T1で情報交換し、時間間隔T2で状態を改善する動作としたが、これらの動作を同じタイミングで実行するようにしてもよい。すなわち、近隣のエージェントとの情報交換と改善の判定を連続して動作するようにしてもよい。
このような構成とすることによって、本実施の形態では、エージェントが変数を連続して変更することを禁止し、一定期間中は同じ変数を同じ値に変更できないようにすることにより、局所最適解に陥る可能性が低下し、結果としてエージェントの集合全体がより早く解に到達することができる。
(実施の形態2)
次に、本発明の実施の形態2にかかる複数のエージェントを接続したスケジュール調整装置について説明する。
本実施の形態にかかるエージェントは、変数の制約違反の解消状況に応じた期間において変数を連続して変更することを禁止することにより、一部のエージェントの制約違反を解消するだけでなく、局所最適解や無限ループに陥ることなく、結果としてエージェントの集合全体がさらに早く解に到達することを目的とする。
まず、実施の形態2にかかるエージェントの構成および動作について説明する。図9は、本発明の実施の形態2にかかるエージェントの構成図である。図9において、エージェント200は、図1に示したエージェント100とほぼ同じ構成をしているが、変数データが制約データを満たしている度合いの過去の推移を示す改善傾向データを記憶する改善傾向記憶部208をさらに備えた点が図1と異なる。さらに、制約解決部205が、変数記憶部101に記憶する変数データの値を変更する際に最新の改善傾向データを生成して改善傾向記憶部208に記憶し、変数データの変数変更禁止期間の長さを改善傾向データに応じて調整するようにした点が図1と異なっている。また、改善傾向記憶部208に格納される改善傾向データは、変数名と、その変数の制約違反数mの推移データのテーブル構造である。改善傾向データは、過去数回分を含めた制約違反数mの履歴データである。過去の推移のデータ構造の詳細については後述する。
次に、各エージェントの動作を説明する。図10は、本発明の実施の形態2にかかるエージェントの動作を示すフローチャートである。図10において、エージェント200の動作は、図3に示したエージェント100の各ステップとほぼ同じであるが、ステップS601とステップS602が加わっている点が図3と異なっている。また、パラメータとして時間間隔T1と時間間隔T2に加えて、変数の改善傾向を判定するための期間である時間間隔T4と、変数変更禁止期間の現在設定値TPが用いられている。なお、この時間間隔T4は第3の一定時間間隔の一例である。また、時間間隔T4は時間間隔T2の数倍に相当する期間とするが、本実施の形態では、時間間隔T2の5倍に設定して説明する。また、変数変更禁止期間の現在設定値TPは、変数の更新動作と判定動作の同期タイミングの関係より、時間間隔T2のk倍(kは整数)とすることが望ましく、本実施の形態での設定値については後述する。
ステップS601において、制約解決部205は、改善容易度生成部107で計算した制約違反数mを現時点での改善傾向データとして、改善傾向記憶部208に記録する。制約違反数mは、時間間隔T4の2倍程度の期間の記録が残るように設定されている。
ここで、改善傾向データの記録処理について説明する。なお、本実施の形態では、改善傾向データとして制約違反数mを用いている。図11Aは、本発明の実施の形態2にかかるエージェントの改善傾向データの構造を示す図である。図11Aにおいて、改善傾向データ210は、過去の変数の制約違反数mを記録する構造をしており、一番右の欄に現時点での制約違反数mを格納する。また、その左の欄には1つ前の時刻に記録した制約違反数mが、さらにその左の欄には2つ前の回に記録した制約違反数mが格納される。このように、T4時間の2倍の期間分、すなわち、T2の10倍の期間分が記録されている。図11Bは、本発明の実施の形態2にかかるエージェントの改善傾向データの記憶動作を説明する図である。図11Bにおいて、改善傾向データ210に新たなデータとして制約違反数を記録する場合は、それまでの記録を1つずつ左にシフトしてから一番右の欄に現在の制約違反数が記録され、過去の制約違反数について時刻順を保つよう記録される。
ステップS602において、制約解決部205は、改善傾向記憶部208に記録されている制約違反数mの履歴から、改善傾向を判定する。制約解決部205は、最近の時間間隔T4における制約違反数の合計と、その前の時間間隔T4における制約違反数の合計を比較し、改善の傾向を判定する。この判定により変数変更禁止期間の現在設定値TPの値が変更される。
ここで、変数変更禁止期間の現在設定値TPの値を変更する動作について説明する。
図11Cは、本発明の実施の形態2にかかるエージェントの改善傾向を判定する動作を説明する図である。図11Cおいて、改善傾向データ210のうち、最近の時間間隔T4における制約違反数の合計m1と、その前の時間間隔T4における制約違反数の合計m0の大小が比較される。m1>m0ならば「改善されていない」と判定され、m1≦m0ならば「改善されている」と判定される。この判定に応じて変数変更禁止期間の現在設定値TPの値が変更される。ここでは、以前の制約違反数の合計は6、最近の制約違反数の合計は5、であり、改善傾向は「改善されている」と判定される。
次に、変数変更禁止期間の現在設定値TPを調整する制約解決部205の調整処理の詳細動作について説明する。図12は、本発明の実施の形態2にかかるエージェントの変数変更禁止期間を調整する動作を示すフローチャートである。図12において、変数変更禁止期間の現在設定値TPは、最小値TP_minから最大値TP_maxまでの決められた範囲の値をとる。
ステップS701において、制約解決部205は、改善傾向記憶部208に記憶されている制約違反数mから改善の傾向が判定され、「改善されている」と判定された場合はステップS704に進む。「改善されていない」と判定された場合はステップS702へ進む。
ステップS702において、TP<TP_maxならばステップS703へ進む。そうでなければTPを変更せずに終了する。
ステップS703において、TPがある決められた値分増加されて終了する。
ステップS704において、TP>TP_minならばステップS705へ進む。そうでなければTPを変更せずに終了する。
ステップS705において、ある決められた値をTPから減じて終了する。
次に、本実施の形態にかかる複数のエージェントを接続したスケジュール調整装置により計画を作成する実施例について説明する。図13は、本発明の実施の形態2にかかるエージェントを搭載するスケジュール調整装置の構成図である。図13において、スケジュール調整装置301は、ネットワークで接続された複数のエージェント200a、エージェント200b、エージェント200c、・・・、エージェント200nで構成されている。利用者Aはエージェント200aに、利用者Bはエージェント200bに、利用者Cはエージェント200cに、また、利用者nはエージェント200nにそれぞれ入出力部を介してスケジュールを入出力する。各エージェントは、それぞれ入力されたスケジュールを元に、他の利用者とのスケジュールを調整する。例えば、利用者Aはエージェント200aを搭載するスケジュール調整装置に自分の希望する予定を入力するとともに、会議設定と他の参加者とのスケジュール調整の開始を指示する。また、エージェント200aが他のエージェント200b、エージェント200c、エージェント200nと調整して作成した計画をスケジュール結果として、スケジュール調整装置より提示を受ける。
次に、本実施の形態にかかる複数のエージェントを接続したスケジュール調整装置の具体的動作について説明する。ここでは、利用者A、利用者B、利用者Cの会議日を調整する3つのエージェント200a、エージェント200b、エージェント200cが協調して利用者Aと利用者Bの第1の会議日を調整し、また、同時に利用者Bと利用者Cの第2の会議日を調整する場合の動作について説明する。
図14は、本発明の実施の形態2にかかるスケジュール調整装置が計画を作成するスケジュール問題を説明する図である。図14において、初期条件として、各利用者の設定可能日は、利用者Aは1日と2日、利用者Bは2日と3日と4日、利用者Cは2日と3日であり、各利用者の会議を開催する希望開催日の初期設定が2日であることを示している。このスケジュール計画の作成において、各利用者は、同じ日に2つの会議を同時に設定できないものとしている。また、各利用者は、プライバシーの観点から会議の設定可能日を他の利用者に最初から開示しないものとしている。また、利用者Bは、利用者Aと第1の会議を設定することを利用者Cには開示しないものとしている。同様に、利用者Bは、利用者Cと第2の会議をすることを利用者Aには開示しないものとしている。
図15は、本発明の実施の形態2にかかるスケジュール調整装置が計画を作成するスケジュール問題の制約ネットワーク図である。図15において、各ノードは、エージェント200a、エージェント200b、エージェント200cの変数を示している。エージェント200aは利用者Aの会議設定日を示すノードx8を持ち、ノードx8は「1」または「2」をとる。エージェント200bは、利用者Bが利用者Aと会議を設定する日を示すノードx9と、利用者Bが利用者Cと会議を設定する日を示すノードx10を持つ。ノードx9とノードx10はそれぞれ「2」、「3」、「4」のいずれかの値をとる。エージェント200cは、利用者Cが利用者Bと会議を設定する日を示すノードx11を持つ。ノードx11は「2」または「3」をとる。ここでのノード間の制約は、「x8=x9」、「x9≠x10」、「x10=x11」である。
なお、本実施の形態では、変数変更禁止期間の現在設定値TPを調整動作する状態について説明するために、変数の値を変更するかどうかを判定するステップS408での動作を、次のようにする。制約で結ばれたそれぞれ2つのノードについて、改善容易度データの値が全く同じ場合における確率的な判定処理(ステップS507)では、ノードの名前の若い方のノード、例えば、ノードx9がノードx10に優先して値を変更するように判定されるものとする。ただし、このような若い方のノードが永続的に優先して変更されることは誤っているが、限られた期間においてはこのように判定される場合はありうる。本実施の形態では、このような状態の動作について説明するために、少なくとも時間間隔T4の2倍以内の期間において、一方のノードに偏って多く変更すると判断するとしている。また、各変数の持つ変数変更禁止期間の現在設定値TPの初期値は、時間間隔T2と同じ時間相当とする。さらに、本実施の形態において、ノードの値の変更禁止方法は、値を変更した後は、変更前の値に戻すことを変数変更禁止期間の間は禁止することとする。ただし、値を変更前の値以外にとり得る値があれば、その値への変更は禁止されない。
次に、実施の形態2にかかる複数のエージェントを接続したスケジュール調整装置で変数変更禁止期間の現在設定値TPを調整しながら各エージェントの変数間の制約違反を解消する動作例について説明する。まず、動作を開始後、局所最適解に陥り変数の改善が進まず制約解決部205で「改善されていない」と判定され、変数変更禁止期間の現在設定値TPの調整を開始するに至るまでの第1の動作例について説明する。図16は、本発明の実施の形態2にかかるスケジュール調整装置の初期動作を説明する図である。図16において、各行はそれぞれの時刻における変数の値を示している。また、変数の値の後ろに、それぞれ改善容易度データを「(改善可能数n/制約違反数m/制約数l)」のように示している。
時刻0、すなわち、初期状態において、エージェント200a、エージェント200b、エージェント200cは、それぞれの変数x8、変数x9、変数x10、変数x11の値がすべて「2」に設定されており、変数x9と変数x10の間で制約違反が発生している。ここで各エージェントは、改善容易度データを生成して送受信し、変数の値を変更するかどうかが判定される。エージェント200bは、変数x9と変数x10は改善容易度データが同じため、優先度を持つx9の値が「3」に変更される。エージェント200aとエージェント200cは変数の値を変更しないと判定される。
時刻1において、変数x9は値「2」への変更が禁止されているが、値「3」と値「4」へは変更できる状態になっている。また、変数x8と変数x9の間で制約違反が発生している。変数x8と変数x9の改善容易度データを比較すると、改善可能制約違反数nと制約違反数mは同じだが、制約数lが変数x8の方が小さいので、エージェント200aは変数x8の値を「1」に変更すると判定する。一方、エージェント200bは変数x9の値を変更しないと判定する。
時刻2において、変数x8は、値「2」への変更が禁止された状態になっている。変数x8は、値が「1」または「2」とする必要があるため、変数x8は、値をまったく変更できない状態になっている。また、変数x9の変数変更禁止設定は、解除されており、エージェント200bは変数x9の値を変更すると判定する。変数x9は、制約違反数mが1で、仮に値「2」へ変更すると制約違反数mが2に増加することになるので、値「4」へ変更する。
時刻3において、変数x8の変数変更禁止設定は、解除されている。時刻1の時と同様に、エージェント200aは、変数x8の値を「1」から「2」へ変更する。
時刻4において、変数x8が変数変更禁止設定され値が変更できないため、時刻2の時と同様に、エージェント200bは変数x9の値を「4」から「3」へ変更する。
時刻5において、時刻5は時刻1とほぼ同じ動作であり、この時刻以降も同様に変数x8と変数x9の値を交互に変更する動作を続けるのみで制約違反状態は解消されない。この時、変数x8と変数x9は制約違反数が1の状態が続いている。ここで、エージェント200a、エージェント200bの制約解決部205が、改善傾向データより「改善されていない」と判定し、エージェント200aは変数x8、エージェント200bは変数x9についての変数変更禁止期間の現在設定値TPを増加する。エージェント200cは、どの変数についても変数変更禁止期間の現在設定値TPを変更しない。
次に、第1の動作例に続いて変数変更禁止期間の現在設定値TPが調整された後から、調整した新たな値により局所最適解からの脱出を強制的に誘発して制約違反を解消するに至る第2の動作例について説明する。図17は、本発明の実施の形態2にかかるスケジュール調整装置のTP調整後の動作例を説明する図である。図17において、図16と同様に、各行はそれぞれの時刻における変数の値を示している。なお、第2の動作例は、第1の動作例で変数x8、変数x9のTPが変更された後に続く動作例を示すが、動作の違いを比較しやすくするため、各変数の初期値は図16で示した動作例の初期値と同じ状態とする。すなわち、どの変数についても変数変更禁止期間が設定されていない状態から動作を開始してどのように動作するかについて説明する。ただし、変数の現在設定値TPについては、変数x8と変数x9については図16に示した先の動作例での設定値である時間間隔T2の2倍の期間、すなわち、2×T2の時間としている。
時刻nにおいて、図16の時刻0における動作と同様に、エージェント200aは変数x9の値を「3」に変更する。
時刻n+1において、エージェント200bは、変数x9の値「2」への変更を変数変更禁止設定する。変数x8と変数x9の間の制約違反は、まだ解消されていない。制約数の少ない変数x8の値を変更する。
時刻n+2において、エージェント200aは、変数x8の値を「1」へ変更し、値「2」への変更を禁止設定する。変数x8の値を「1」または「2」とする必要があるため、エージェント200aは、変数x8の値を全く変更できない状態となっている。変数x8と変数x9の間の制約違反は、まだ解消されていないので、エージェント200bは、図16の時刻2における動作と同様に、変数x9の値を「3」から「4」に変更する。変数x9は、値「2」への変更が禁止された状態のため、値「4」へ変更する。
時刻n+3において、変数x8と変数x9の間の制約違反は解消されていない。変数x8は、まだ値の変更が禁止されているので、エージェント200bは、変数x9の値を変更すると判断する。変数x9は、値「2」へ変更すると制約違反数が2に増えるが、値「3」への変更が禁止されているので、値「2」へ変更する。
時刻n+4において、変数x8と変数x9の間、および、変数x9と変数x10の間でそれぞれ制約違反が生じている。エージェント200bは、変数x9の値「3」への変更と、値「4」への変更がどちらも禁止されているので、値を変更することができない。しかし、エージェント200aは、変数x8の値を変更すれば制約違反が解消できるため、値を「2」へ変更する。エージェント200bは、変数x10の近隣で制約違反している変数x9の値の変更が禁止されているので、変数x10の値を「2」から「3」へ変更する。
時刻n+5において、変数x8と変数x9の間、および、変数x9と変数x10の間の制約違反は解消されている。変数x10と変数x11の間で制約違反が発生しているが、変数x11が値を変更すれば制約違反が解消できるので、エージェント200cは、変数x11の値を「2」から「3」へ変更する。
時刻n+6において、変数間のすべての制約が満たされた状態になり、スケジュール調整装置は動作を終了する。
上記2つの動作例について説明した。図16に示した第1の動作例では、時刻5において、変数名の若い方を変更すると判定される状態が確率的に継続し、一時的に局所最適解のループに陥った。しかし、時刻5以降の処理で変数変更禁止期間の現在設定値TPの値を調整することにより、その結果、第2の動作例へと移行した。図17に示した第2の動作例では、変数x10、変数x11の値を変更するべきところで、変数x8と変数x9の変更だけでこれを解決しようとすることにより、一時的に、局所最適解に陥った。しかし、変数変更禁止期間が第1の動作例より長く調整されていたので変数x10が値を変更して局所最適解から脱出し、時刻n+6において動作を完了した。
このような構成とすることによって、本実施の形態では、エージェントが制約違反の解消状態に応じた期間において、変数を連続して変更することを禁止し、局所最適解に陥る可能性や、一部のエージェントが無限ループに陥る可能性をより低下させ、結果としてエージェントの集合全体がさらに早く解に到達することができる分散制約充足装置を提供することができる。
なお、実施の形態2にかかるエージェントは、より具体的には、計算機ハードウェア、および、ソフトウェアから構成される。実施の形態2にかかるエージェントは、従来のエージェントと同様に、例えば、図29に示す構成をしている。変数記憶部101と制約記憶部102と近隣状況記憶部103と変数変更禁止期間記憶部104と改善傾向記憶部208は、メモリ902と二次記憶部905およびこれらを管理するソフトウェアで実現される。制約解決部205と改善容易度生成部107は、CPU901とメモリ902および二次記憶部905に格納されたソフトウェアから構成される。通信部106はネットワークインタフェース906、およびこれを制御するソフトウェアから構成される。また、スケジュール調整装置を利用する利用者は、ディスプレイなどの表示部903、およびマウスやキーボード、音声入力装置などの入力部904を用いることで対話的に自分のスケジュールを設定できる。また、スケジュール調整結果を表示部903により確認できる。
(実施の形態3)
次に、本発明の実施の形態3にかかるエージェントを複数接続した協調作業ロボット(以下、ロボットと記載)の移動計画立案装置について説明する。本実施の形態にかかるエージェントは、ある条件下で一定の期間において変数を連続して変更することを禁止することにより、一部のエージェントの制約違反を解消するだけでなく、多くのエージェントで制約違反を解消するもので、局所最適解に陥ることなく、結果としてエージェントの集合全体がより早く解に到達することを目的とする。
まず、本実施の形態にかかるエージェントの構成および動作について説明する。図18は、本発明の実施の形態3にかかるエージェントの構成図である。図18において、エージェント700は、実施の形態1で示したエージェント100とほぼ同じ構成をしているが、変数記憶部101に代わり計画座標系列を記憶する計画座標記憶部701と、近隣状況記憶部103に代わり近隣のエージェントの計画座標系列を記憶する近隣計画座標記憶部703を備えている点が異なっている。また、計画座標記憶部701に記憶される計画座標系列のデータ構造は、位置座標の配列構造をしている。また、近隣計画座標記憶部703に記憶される計画座標系列のデータ構造は、近隣のエージェントを識別するデータと、位置座標の配列構造データとをレコードとするテーブル構造をしている。
次に、エージェントの動作を説明する。エージェント700の基本動作は実施の形態1で示したエージェント100と同じである。
なお、本実施の形態にかかるエージェントはロボットに搭載され、他のロボットに搭載されるエージェントと通信するよう構成される。図19は、本発明の実施の形態3にかかるエージェントを搭載した協調作業ロボットの構成例を示す図である。図19において、ロボット800は、自位置、他のロボットの位置、障害物などを検知するセンサからなる外界検知部801、移動のためのモータあるいは脚からなる移動部802、計画外あるいは予想外の障害物への衝突を回避するための衝突回避部803、センサからの各種入力と他のロボットとの移動計画との制約に応じて自分の移動計画を立案するエージェント700からなる。このような構成で、ロボット800は、起動後、エージェント700が、あらかじめ設定される変数データと制約データと、外界検知部801と衝突回避部803が取得するデータに応じて他のロボットのエージェントと通信して移動計画を調整して立案し、その移動計画を移動部802に指示して移動する。
次に、実施の形態3にかかる複数のエージェントを接続した移動計画立案装置の具体的動作について説明する。ここでは、2台のロボットRa、ロボットRbに搭載されるエージェントが仮想的な移動計画立案装置を構成し、協調して目的地まで移動する計画を立案する。図20は、本発明の実施の形態3にかかる移動計画立案装置が計画を作成する移動問題を説明する図である。図20において、2台のロボットRa811、Rb812が同じ室内で作業する。ロボットRa811、ロボットRb812は、それぞれの持つセンサで室内での自分の位置、相手の位置、障害物の位置などを検知して確認できる。ただし、センサの精度、ロボット本体の大きさなどの条件により、移動計画は量子化したタイル状の座標値で計画する。また、協調作業ロボットRa811、ロボットRb812の移動できる空間は、X方向の幅5、Y方向の幅2の大きさを持つ。この空間にロボットRa811とロボットRb812が存在する。
協調作業ロボットRa811は、初期座標(1,1)に、ロボットRb812は初期座標(0,0)に位置する。また、座標(3,1)には、障害物K813があり、ロボットRa811、ロボットRb812はここに移動できない。障害物K813の存在は、ロボットRa811、ロボットRb812のそれぞれのセンサにより既に認識されているものとする。また、ロボットは、1ステップで、X方向もしくはY方向に1つしか移動できない。ロボットRa811、ロボットRb812は、それぞれ最短経路でゴールGa814、ゴールGb815に移動し、ロボットRb812についてはゴールGb815に到達したところで留まるものとする。このような条件で、ロボットRa811は、最終座標すなわちゴールGa814(座標(4,1))に、ロボットRb812はゴールGb815(座標(4,0))に5ステップ以内に到達するものとする。この移動計画を立てることを考える。
ここで、計画座標系列をロボットRa811については、計画座標(x11,y11)から計画座標(x15,y15)、ロボットRb812については計画座標(x21,y21)から計画座標(x25,y25)と表す。計画座標(x11,y11)と計画座標(x15,y15)は、それぞれロボットRa811の初期位置とゴールGa814の位置であり、計画座標(x21,y21)と計画座標(x25,y25)はロボットRb812の初期位置とゴールGb815の位置である。これらの値は既に決まっており、移動計画立案問題はこの間の座標を埋めることである。
次に、計画問題の制約条件について説明する。制約計画座標系列が変数であり、ロボットRa811、ロボットRb812が同じ座標を占めないこと、障害物K813と同じ座標をとれないことなどが制約になる。またロボットRa811、ロボットRb812の移動能力も制約となる。図21は、本発明の実施の形態3にかかる移動計画立案装置が計画を作成する移動問題の制約ネットワーク図である。図21において、計画座標のX座標値は「0」、「1」、「2」、「3」、「4」のいずれかの値、Y座標値は「0」、「1」のいずれかの値をとるが、ロボットRa811とロボットRb812が同じ時刻に同じ座標を持つことはできない。また、座標(3,1)には、障害物K813があり、この計画座標の値を持つことはできない。
また、移動オペレータ「op」は、移動コマンドに関する制約を示す。移動は、1ステップにつき座標を上下左右どちらかの方向に1つ動く4種の移動オペレータと、全く動かない1つの移動オペレータの、計5つがある。
図22は、本発明の実施の形態3にかかる協調作業ロボットの移動オペレータの説明図である。図22において、「left」オペレータはX座標値を1減らし、Y座標値は変更しない。即ち、「X座標値変更」は「−1」であって、「Y座標値変更」は「変更しない」である。「right」オペレータではX座標値を1増やし、Y座標値は変更しない。即ち、「X座標値変更」は「+1」であって、「Y座標値変更」は「変更しない」である。「up」オペレータはY座標値を1増やし、X座標値は変更しない。即ち、「Y座標値変更」は「+1」であって、「X座標値変更」は「変更しない」である。「down」オペレータはY座標値を1減らし、X座標値は変更しない。即ち、「Y座標値変更」は「−1」であって、「X座標値変更」は「変更しない」である。また、「stay」オペレータは座標値を変更しない。即ち、「X座標値変更」も「Y座標値変更」は「変更しない」である。
また、ロボットRa811、ロボットRb812は、これら5つのオペレータから一度に1つを選択するものとする。この時、これらのオペレータ間の制約として、座標系列は、1回の移動毎に移動前後の座標との間にそれぞれ制約が決定する。
次に、本実施の形態にかかる複数のエージェントを接続した移動計画立案装置で各エージェントの変数間の制約を解消する動作例について説明する。図23は、本発明の実施の形態3にかかる移動計画立案装置の初期状態を説明する図である。図23において、最初にロボットRa811とロボットRb812は、計画座標記憶部701に格納されているそれぞれ自分の計画座標系列(x11,y11)から計画座標系列(x15,y15)と計画座標系列(x21,y21)から計画座標系列(x25,y25)を、制約解決部105により、移動オペレータの制約から計画した状態を示している。最初の計画を立てた後、ロボットRa811とロボットRb812は通信部106により計画座標系列を送受信し、計画座標(x12,y12)から計画座標(x15,y15)と計画座標(x22,y22)から計画座標(x25,y25)とが同じ座標に存在することから制約違反状態であることを検知する。
図24は、本発明の実施の形態3にかかる移動計画立案装置の途中状態を説明する図である。図24において、制約条件を解消する優先度を持つロボットRa811が、図23の状態から計画座標(x12,y12)の値を座標(1,0)から座標(2,1)に変更し、この変数を変更禁止設定した状態を示している。ロボットRa811は目標移動数以内でゴールGa814に到達するためには、計画座標(x12,y12)以降の計画座標系列を変更することができない。そして、ロボットRa811は、改善容易度生成部107にて生成した先の変更と変数変更禁止期間についての情報を含む改善容易度データをロボットRb812へ送信する。ロボットRa811の改善容易度データを受信したロボットRb812は、計画座標(x23,y23)を変更し、それ以降の計画座標についても変更する。
図25は、本発明の実施の形態3にかかる移動計画立案装置の最終状態を説明する図である。図25において、ロボットRa811とロボットRb812の計画座標ですべての制約が満たされた状態を示している。図25に示される通り、ロボットRa811はゴールGa814、即ち座標(4,1)に辿り着くことができる。ロボットRb812はゴールGb815、即ち座標(4,0)に辿り着くことができる。これにより、ロボットRa811とロボットRb812の移動計画が立案動作を終了する。
このような構成とすることによって、実施の形態3では、エージェントが変数として座標系列を用いて、変数データや制約データの初期値や変更時の値をセンサ装置によって外部より取得して計画を作成する。また、この作成した計画に応じて稼動部を制御することによって、局所最適解に陥る可能性や、一部のエージェントが無限ループに陥る可能性がより低下する。結果として、ロボットに搭載されるエージェントの集合全体が移動計画を早く立案することができる。
なお、実施の形態3では変数として座標系列を用いる形態としたが、移動オペレータを変数として用いる形態としてもよい。
(実施例)
以上で説明した実施の形態1を用いて、効果の測定実験を行なった。分散アルゴリズムの速度評価は通信回数で行うのが一般的であるため、本実験では、実施の形態1におけるタスク割り当て装置の問題についてシミュレータを用いて解き、そのメッセージ交換回数で評価を行うことにする。
以下、本発明による手法と、既存アルゴリズムとしては最速である分散ブレークアウトアルゴリズム(横尾 真、外1名、「分散breakout:反復改善型分散制約充足アルゴリズム」、情報処理学会論文誌、1998年、第39巻、第6号、p.1889−1897を参照)を比較する。分散アルゴリズムの動作は本来、分散しているエージェント間で非同期だが、今回の実験では各エージェントがシミュレータ上で同期的にメッセージ交換と処理を行い、全ての制約が充足されたことをシミュレータが検知した時点までの全体のメッセージ交換回数(以下ではサイクル数と呼ぶ)で比較を行う。
実施の形態1におけるタスク割り当て装置においては、実施例として各エージェントが2種類のタスクだけを選択し得る図7の制約ネットワークを用いた。本実験では、各エージェントは3種類、あるいは4種類のタスクを選択し得るさらに複雑な制約ネットワークの問題を用いて実験を行った。
図26は、その制約ネットワークの例を示す。3つのタスクを選択し得る場合の問題について説明する。図26のように最初にエージェントを3つのグループに分け、違うグループのエージェントの間を制約によりランダムに結ぶことで問題が作成される。制約は、X≠Y型の制約とする。このように問題を作成すると、必ず解が存在する問題を作ることができる。
図26は、エージェントの数が12だが、実験ではエージェントの総数120、制約の総数324となる問題を10種類用意した。これを課題Iとする。
4つのタスクを選択し得る場合についても同様に、エージェントを4つのグループに分けて、違うグループのエージェント間を制約でランダムに結ぶことで、解がある問題を作成した。エージェントの総数120、制約の総数564となる問題を10種類用意した。これを課題IIとする。
本実験では、課題Iと課題IIそれぞれ各10種類ずつの課題について、実行時にランダム値で初期化し、解に到達するまでのサイクル数を計測した。課題Iの10種類についてそれぞれ10回、課題IIの10種類についてそれぞれ10回実行し、その解到達までの平均サイクル数を評価値として集計した。ただし、10000サイクル(回)メッセージを交換しても解に到達しない場合、解に到達しなかったものとして扱い、10000サイクルを評価値として平均計算に組み込む。
図27および図28は、この結果を示す。図27は、解到達までの平均サイクル数である。図28は、解到達率である。図27に示されている通り、課題Iでも課題IIでも、本発明の方式による解到達までの平均サイクル数は既存方式による解到達までの平均サイクル数よりも大変少ない値である。また、図28に示されている通り、課題Iでも課題IIでも、本発明の方式による解到達率は100%である。一方、既存方式による解到達率は、課題Iでも課題IIでも100%に達していない。
本発明の手法は、既存の手法よりも短い時間で確実に解に到達していることがわかる。特に問題IIにおいては、既存の手法が5277.30サイクル(解到達率74%)であるのに対し、本発明の方式では407.82サイクル(解到達率100%)であり、顕著な差が現れている。
なお、実施の形態1から実施の形態3において、それぞれの問題を、エージェント間で数回の情報交換をすることで解決できた。しかし実際の問題は非常に複雑である。例えば、実施の形態3においてロボットのとり得る座標は非常に少ない形態としたが、実世界での制約条件は複雑であり、情報交換の回数も非常に多くなる。ただし、このような複雑な問題で分散制約充足問題を解くことは、既存のアルゴリズムでは非常に長い時間が必要であるが、本発明によれば高速に解くことが可能である。実施の形態1から実施の形態3はそれを端的に説明するために問題を単純化したものであり、本発明にかかるエージェントの応用の範囲は、単純な問題に限定されるものではない。
なお、本発明は、上記した実施の形態の分野に限定されるものではない。例えば、複数の自律ロボットが共同で作業する場合、ロボットへのタスクの分配、ロボットの位置特定、複数ロボットによる地図作成などでも応用できる。このような問題ではロボット毎に変数や制約が分散しており、これを複数のロボットにより分散して解く必要があり、本発明が応用できる。
また、複数のセンサがネットワーク接続されている場合でも、本発明は各センサのセンシング情報の統合などに応用できる。これは各センサのセンシングノイズや誤差をとり除き全体として正確な情報を得るためには、各センサの持つ変数や制約、センサ間のセンシング情報についての制約を解決する必要があり、本発明が応用できる。あるいは各センサへのタスクの割当や、センサ間のネットワークの形成、センサ間の通信周波数の割当、センシング情報を目的のノードにまで送る装置などに本発明が応用できる。
また、本発明は、複数の観測機器による複数の観測対象の追跡において、追跡対象を観測機器に割当てる装置にも応用できる。監視カメラに監視対象を割当てる場合や、レーダーに追跡対象を割当てる場合などで、それぞれの観測機器の性能や観測範囲、追跡対象の移動など、変数と制約が観測機器に分散していて、これを分散環境で動作する場合に本発明が応用できる。
また、サプライチェーンマネージメントでの生産計画、在庫計画、納入計画などの立案にも本発明を応用することができる。あるいはロジスティックスの各種問題解決、計画立案に本発明が応用できる。分散して問題を解決するのはもちろんであるが、一部の情報を隠蔽する場合にも、本発明が応用できる。
また、電力系統設備作業停止計画にも本発明が応用できる。また、エネルギー需要予測に基づくエネルギー配送計画にも本発明が応用できる。例えば発電所からの電力配送計画では、発電所の能力とメンテナンス計画、需要予測、配電網などの各種制約と変数が分散していて、これを分散環境で動作する場合にも本発明が応用できる。
また、本発明は、複数の空調機器を用いる空調計画にも応用できる。分散した空調機器が独立に温度調整する場合でも、変数や制約が分散している状態を各機器で解決する場合にも本発明が応用できる。また、複数の機器からなるシステムの故障診断、通信経路ルーティング、無線ネットワークの通信周波数割当などにも本発明が応用できる。
また、鉄道、バスなどのダイヤ作成、勤務割当にも本発明が応用できる。例えば、複数の相互に乗り入れをしている鉄道会社でのダイヤ作成は、ダイヤという変数、乗り入れに関する制約が会社間に分散し、変数の制御を各装置で解決する場合にも本発明が応用できる。
本発明にかかるエージェントは、ネットワーク接続されたタスク割当装置、スケジュール装置、ロボット等に搭載され自律的に近隣のエージェントと非同期で通信し協調して制約を解消する制御機器等に好適である。

Claims (15)

  1. 複数のエージェントが非同期で協調して解を求めるエージェントにおいて、
    求める前記解の現在の値を示す変数データを記憶する変数記憶部と、
    前記変数データと近隣のエージェントが記憶する変数データとの値の組合せを示す制約データを記憶する制約記憶部と、
    前記変数データの変更を禁止する期間を示す変数変更禁止期間データを記憶する変数変更禁止期間記憶部と、
    自エージェントの前記変数データが前記制約データを満たすための容易度を示す改善容易度データを生成する改善容易度生成部と、
    前記変数データと前記改善容易度生成部が生成した前記改善容易度データとを前記近隣のエージェントと送受信する通信部と、
    前記近隣のエージェントより取得した改善容易度データおよび変数データを記憶する近隣状況記憶部と、
    前記改善容易度生成部が生成した前記改善容易度データと前記近隣状況記憶部に格納している前記近隣のエージェントの改善容易度データとを比較し、前記変数変更禁止期間データに応じて、前記近隣状況記憶部に格納している前記近隣のエージェントの変数データとの間の制約違反を解消するように前記変数データを前記制約データの組合せを満たす値に変更するとともに、前記変数変更禁止期間データをあらかじめ定められた期間に設定する制約解決部と
    を備えるエージェント。
  2. 前記改善容易度生成部は、前記変数データに対する前記制約データの総数を求めた制約数と、前記変数データと前記近隣のエージェントの変数データとが前記制約データの値の組合せを満たしていない制約データの総数を求めた制約違反数と、前記変数データと前記近隣のエージェントの変数データとが前記制約データの値の組合せを満たしていない制約データのうち、前記変数データが前記変数変更禁止期間データに含まれておらず、かつ、前記変数データの値を変更することによって、前記制約データの値の組合せを満たすように変更できる組合せの総数を求めた前記改善可能数の少なくとも1つからなる改善容易度データを生成する
    請求項1記載のエージェント。
  3. 前記変数データが前記制約データを満たしている度合いの過去の推移を示す改善傾向データを記憶する改善傾向記憶部をさらに備え、
    前記制約解決部は、前記変数データを変更する前に、前記改善容易度データに含まれる前記制約違反数で前記改善傾向記憶部に記憶している前記改善傾向データを追加更新し、前記改善傾向データに応じて前記変数変更禁止期間の長さを決定して、変数データを変更後に前記変数変更禁止期間データを設定する
    請求項2記載のエージェント。
  4. 前記改善容易度生成部は、第1の一定時間間隔毎に前記改善容易度データを生成し、前記通信部が前記近隣のエージェントへ前記改善容易度データを送信する
    請求項1または請求項3のいずれか1項に記載のエージェント。
  5. 前記改善容易度生成部は、第2の一定時間間隔毎に前記改善容易度データを生成し、前記制約解決部が前記変数変更禁止期間データに応じて、前記近隣のエージェントの記憶する変数データとの間の制約違反を解消するように前記変数データを変更するとともに前記変数変更禁止期間データを設定する
    請求項1または請求項3のいずれか1項に記載のエージェント。
  6. 前記第2の一定時間間隔は、前記第1の一定時間間隔より大きい請求項5記載のエージェント。
  7. 前記変数データの変更を禁止する期間を示す前記変数変更禁止期間は、前記第2の一定時間間隔のk倍であり、kは整数である請求項6記載のエージェント。
  8. 前記制約解決部は、前記変数データを変更するかどうかを判定する際に、自エージェントの前記改善容易度データと前記近隣状況記憶部が記憶する前記近隣のエージェントの改善容易度データとを比較し、少なくとも前記改善可能数が最も多い場合と、自エージェント以外に制約違反をしていて変数データを変更できるエージェントがいない場合と、前記制約違反数が最も多い場合と、前記制約数が最も少ない場合とのうちいずれか1つの場合に前記変数データを変更すると判定する
    請求項1または請求項3のいずれか1項に記載のエージェント。
  9. 前記制約解決部は、前記変数データを変更する際に、前記制約データより制約を満たす変数の値を選択し、変数記憶部の変数データを更新する
    請求項1または請求項3のいずれか1項に記載のエージェント。
  10. 前記制約解決部は、前記改善傾向データの直近の第3の一定時間間隔における制約違反数の合計m1とその前の第3の一定時間間隔における制約違反数の合計m0とを比較により、m1<m0の場合は改善傾向があると判定して前記変数変更禁止期間の現在設定値を短くし、m1≧m0の場合は改善傾向がないと判定して前記変数変更禁止期間の現在設定値を長くして、前記変数変更禁止期間データを設定する請求項3記載のエージェント。
  11. 各エージェントが、求める解の現在の値を示す変数データと、前記変数データと近隣のエージェントがもつ変数データとの値の組合せを示す制約データと、前記変数データの値の変更を禁止する期間を示す変数変更禁止期間データとをそれぞれ持ち、前記変数データ間のすべての制約関係が成立する前記変数データの解を複数のエージェントが協調して求める分散制約充足方法において、
    各エージェントが、
    自エージェントの前記変数データが前記制約データを満たすための容易度を示す前記改善容易度データを生成する生成ステップと、
    前記変数データと前記生成ステップで生成した前記改善容易度データとを各近隣のエージェントと非同期に送受信するステップと、
    前記変数データと前記改善容易度データを自己の前記改善容易度データと各近隣のエージェントの改善容易度データとを比較して、自己の前記変数データを変更するかどうかを決定する判定ステップと、
    前記判定ステップで自己の前記変数データを変更すると判定した場合に、自己の前記変数データを前記制約データの組合せを満たす値に変更して前記近隣のエージェントに通知する変更ステップと、
    前記変更ステップで前記変数データを変更した場合に、変数変更禁止期間データをあらかじめ定められた期間に設定する変更禁止ステップと
    を有する分散制約充足方法。
  12. 前記生成ステップは、前記変数データに対する前記制約データの総数を求めた制約数と、前記変数データと前記近隣のエージェントの変数データとが前記制約データの値の組合せを満たしていない制約データの総数を求めた制約違反数と、前記変数データと前記近隣のエージェントの変数データとが前記制約データの値の組合せを満たしていない制約データのうち、前記変数データが前記変数変更禁止期間データに含まれておらず、かつ、前記変数データの値を変更することによって、前記制約データの値の組合せを満たすように変更できる組合せの総数を求めた前記改善可能数の少なくとも1つからなる改善容易度データを生成する
    請求項11記載の分散制約充足方法。
  13. 前記変数データを変更すると判定した場合に、前記制約違反数の現在の値を改善傾向データとして自エージェント内に追加格納するステップと、
    前記改善傾向データより、前記変数データの変更を禁止する期間を調整するステップと
    をさらに有する請求項12記載の分散制約充足方法。
  14. 前記判定ステップにおいて、自己の前記改善容易度データと各近隣のエージェントの改善容易度データとを比較した場合に、少なくとも前記改善可能数が最も多い場合と、自エージェント以外に制約違反をしていて変数データを変更できるエージェントがいない場合と、前記制約違反数が最も多い場合と、前記制約数が最も少ない場合とのうちいずれか1つの場合に前記変数データを変更すると決定する
    請求項11記載の分散制約充足方法。
  15. 前記変更ステップにおいて、
    自己の前記変数データを変更する際に、前記制約データより制約を満たす変数の値を選択して決定し前記変数データを更新する
    請求項11記載の分散制約充足方法。
JP2007514806A 2005-04-27 2006-04-27 エージェントおよび分散制約充足方法 Pending JPWO2006118193A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005129304 2005-04-27
JP2005129304 2005-04-27
PCT/JP2006/308836 WO2006118193A1 (ja) 2005-04-27 2006-04-27 エージェントおよび分散制約充足方法

Publications (1)

Publication Number Publication Date
JPWO2006118193A1 true JPWO2006118193A1 (ja) 2008-12-18

Family

ID=37307991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007514806A Pending JPWO2006118193A1 (ja) 2005-04-27 2006-04-27 エージェントおよび分散制約充足方法

Country Status (2)

Country Link
JP (1) JPWO2006118193A1 (ja)
WO (1) WO2006118193A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5186443B2 (ja) * 2009-06-30 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字列の妥当性を判定するシステム、方法及びプログラム
US8584246B2 (en) 2009-10-13 2013-11-12 International Business Machines Corporation Eliminating false reports of security vulnerabilities when testing computer software
US8528095B2 (en) 2010-06-28 2013-09-03 International Business Machines Corporation Injection context based static analysis of computer software applications
JP6458561B2 (ja) * 2015-03-09 2019-01-30 富士電機株式会社 負荷配分決定支援装置、そのプログラム、負荷配分決定支援方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09297689A (ja) * 1996-04-30 1997-11-18 Nippon Telegr & Teleph Corp <Ntt> 複数ジョブへの分散型資源割当方法

Also Published As

Publication number Publication date
WO2006118193A1 (ja) 2006-11-09

Similar Documents

Publication Publication Date Title
Çelik et al. The post-disaster debris clearance problem under incomplete information
Hooshangi et al. Agent-based task allocation under uncertainties in disaster environments: An approach to interval uncertainty
Roghanian et al. An improved fuzzy critical chain approach in order to face uncertainty in project scheduling
Zhen et al. A vehicle routing problem arising in unmanned aerial monitoring
Najafi et al. A dynamic dispatching and routing model to plan/re-plan logistics activities in response to an earthquake
Fanti Event-based controller to avoid deadlock and collisions in zone-control AGVS
US20200014759A1 (en) Systems and methods for optimizing cooperative actions among heterogeneous autonomous connected machines
Mısır et al. An analysis of generalised heuristics for vehicle routing and personnel rostering problems
US20210232990A1 (en) Workflow deployment
Chen et al. Optimal path planning with spatial-temporal mobility modeling for individual-based emergency guiding
Rezazadeh et al. A sub-modular receding horizon approach to persistent monitoring for a group of mobile agents over an urban area
Lim et al. Congestion-aware multi-agent path planning: distributed algorithm and applications
JPWO2006118193A1 (ja) エージェントおよび分散制約充足方法
Ahn et al. Cooperative zone-based rebalancing of idle overhead hoist transportations using multi-agent reinforcement learning with graph representation learning
De Paz et al. Mathematical model for dynamic case-based planning
Hamilton et al. Towards adaptive planning of assistive-care robot tasks
Soonpracha et al. A re-constructed meta-heuristic algorithm for robust fleet size and mix vehicle routing problem with time windows under uncertain demands
Zu et al. Distributed path planning for building evacuation guidance
Xue et al. A game theoretical approach for distributed resource allocation with uncertainty
Garcia et al. A computational intelligence approach to improve the efficiency of repair services in the smart grid context
Pham et al. Multiperiod integrated spare parts and tour planning for on-site maintenance activities with stochastic repair requests
Delage et al. Re-optimization of technician tours in dynamic environments with stochastic service time
Dannenhauer et al. Expectations for agents with goal-driven autonomy
Ahmed Modeling, Scheduling and Optimization of Wireless Sensor Networks lifetime
Le et al. Reinforcement learning framework for modeling spatial sequential decisions under uncertainty