(57)【要約】【課題】  熟練者の知識を効率的に学習しながら、動的な環境変化に対して柔軟に対応するシミュレーション装置を提供する。【解決手段】  制約条件設定部１０１は、複数の制約条件を必須制約条件と緩和制約条件とに設定し、シミュレーション部１０２は、設定された制約条件を用いて事例をシミュレーションし、シミュレーション結果表示部３０１は、シミュレーション結果を表示する。このとき、修正受付部４０４は、シミュレーション結果に対する熟練者の修正を受け付け、修正認識部１０６は、ユーザの修正を分析して修正箇所及び修正過程を認識し、制約条件再設定部１０８は、修正箇所及び修正過程に応じて必須制約条件及び緩和制約条件の設定を再設定し、シミュレーション部１０２は、再設定された制約条件を用いて事例を再シミュレーションする。【選択図】      図２
2006323784.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションにより事例を最適化するためのシミュレーションプログラムであって、
前記事例が満たすべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定する制約条件設定手段と、
前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするシミュレーション手段と、
前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示する表示手段と、
前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付ける修正受付手段と、
前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識する認識手段と、
前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定する制約条件再設定手段としてコンピュータを機能させ、
前記シミュレーション手段は、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションすることを特徴とするシミュレーションプログラム。
【請求項２】
前記制約条件設定手段は、複数の制約条件の各々に対して当該制約条件を有効とするか無効とするかを設定し、
前記シミュレーション手段は、前記制約条件設定手段によって有効とされた制約条件のみを用いて事例をシミュレーションすることを特徴とする請求項１記載のシミュレーションプログラム。
【請求項３】
前記制約条件変更手段によって変更された制約条件をユーザに提示する制約条件提示手段と、
前記制約条件提示手段によって提示された制約条件を確定するか否かのユーザによる入力を受け付ける確定受付手段としてコンピュータをさらに機能させ、
前記制約条件再設定手段は、前記確定受付手段によって確定すると入力された制約条件を再設定することを特徴とする請求項１又は２記載のシミュレーションプログラム。
【請求項４】
制約条件設定手段、シミュレーション手段、表示手段、修正受付手段、認識手段及び制約条件再設定手段として機能するコンピュータを用い、シミュレーションにより事例を最適化するためのシミュレーション方法であって、
前記制約条件設定手段が、前記事例が満たすべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定するステップと、
前記シミュレーション手段が、前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするステップと、
前記表示手段が、前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示するステップと、
前記修正受付手段が、前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付けるステップと、
前記認識手段が、前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識するステップと、
前記制約条件再設定手段が、前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定するステップと、
前記シミュレーション手段が、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションするステップとを含むことを特徴とするシミュレーション方法。
【請求項５】
シミュレーションにより事例を最適化するシミュレーション装置であって、
前記事例が満たすべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定する制約条件設定手段と、
前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするシミュレーション手段と、
前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示する表示手段と、
前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付ける修正受付手段と、
前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識する認識手段と、
前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定する制約条件再設定手段とを備え、
前記シミュレーション手段は、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションすることを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションにより事例を最適化するためのシミュレーションプログラム、シミュレーション方法及びシミュレーション装置に関し、特に、物品の製造又は輸送に関する事例を最適化するためのシミュレーションプログラム、シミュレーション方法及びシミュレーション装置に関するものである。
【背景技術】
【０００２】
従来、生産環境におけるスケジューリング問題等を解決するための生産管理システムが開発されている（例えば、特許文献１参照）。このような生産管理システムは、近年の科学技術及びコンピュータの発展に伴い、より複雑化し、大規模なものになってきており、物品の製造及び輸送等に関する事例をシミュレーションすることが要望されている。
【０００３】
このような要望に応えるため、従来の生産管理システムでは、事前に用意したパラメータやデータを最適化処理手順に設定することにより、自動的にシミュレーションを行い、シミュレーション結果を出力している。例えば、荷物をコンテナに積み込む積載問題を解決するためのシミュレーションプログラムでは、重い荷物、大きい荷物を下方に積み付けるといった制約条件をパラメータとして入力し、最適化処理手順を用いて自動的にコンテナに荷物を積み付けるシミュレーションが行われている。また、生産スケジューリング問題を解決するためのシミュレーションプログラムでは、処理順序、人員の配分、処理時間等の制約条件をパラメータとして設定し、最適化処理手順を用いて自動的にスケジュールを管理することが行われている。
【特許文献１】特開２００４−２９８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のシミュレーションプログラムでは、予め定められたパラメータ及び最適化処理手順等を用いてシミュレーションが行われるため、動的な環境変動に応じてアルゴリズムの組み合わせやパラメータを変更することが困難であった。すなわち、現実には、内部要因としてボトルネックの発生、外部要因として緊急要求や納期変化などの予測が困難な問題が生じる場合があるが、従来のシミュレーションプログラムでは、事前に用意されたパラメータを用いているため、これらの問題に対応することが困難であった。
【０００５】
例えば、上述の積載問題を解決するためのシミュレーションプログラムでは、小さくて重い荷物をどのように配置するか等を判断することが困難である。また、上述の生産スケジューリング問題を解決するためのシミュレーションプログラムでは、機械の故障や人員の欠員等の予想不可能な事例に対して、どれだけ制約条件を緩和させればよいかがわからず、対応することが困難である。
【０００６】
一方、生産管理に熟練した熟練者は、長年の知識をもって、動的な環境変動に柔軟に対応できる。すなわち、熟練者は、制約条件を緩和できる制約条件と緩和できない制約条件とに分け、緩和できる条件についてはどれだけ緩和させればよいかを長年の経験により判断することができる。
【０００７】
しかしながら、熟練者は、短時間に大量のデータを処理することができず、特に大規模の生産管理システムになると、システムの一部分を変更することによりシステム全体に及ぼす影響を把握することが困難である。
【０００８】
本発明の目的は、熟練者の知識を効率的に学習しながら、動的な環境変化に対して柔軟に対応することができるシミュレーションプログラム、シミュレーション方法及びシミュレーション装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明に係るシミュレーションプログラムは、シミュレーションにより事例を最適化するためのシミュレーションプログラムであって、前記事例が達成すべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定する制約条件設定手段と、前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするシミュレーション手段と、前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示する表示手段と、前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付ける修正受付手段と、前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識する認識手段と、前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定する制約条件再設定手段としてコンピュータを機能させ、前記シミュレーション手段は、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションする。
【００１０】
本発明に係るシミュレーションプログラムにおいては、事例が満たすべき複数の制約条件が、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定され、設定された制約条件を用いて事例がシミュレーションされ、シミュレーションされたシミュレーション結果が表示される。このとき、表示されるシミュレーション結果に対してユーザ、好ましくは熟練者が入力した修正データが受け付けられ、受け付けられた修正データからユーザの修正が分析され、修正箇所及び修正過程が認識される。そして、認識された修正箇所及び修正過程が必須制約条件を緩和制約条件に変更するものである場合、必須制約条件が緩和制約条件に再設定され、認識された修正箇所及び修正過程が緩和制約条件を必須制約条件に変更するものである場合、緩和制約条件が必須制約条件に再設定され、再設定された制約条件を用いて事例が再度シミュレーションされる。
【００１１】
このように、シミュレーション結果が可視的に表示され、熟練者は、表示されたシミュレーション結果を見ながら、長年の知識に基づいて動的な環境変動に柔軟に対応する修正データを入力することができるので、動的な環境変化に対して柔軟に対応することができる。また、熟練者による修正箇所及び修正過程が必須制約条件を緩和制約条件に変更するものである場合、必須制約条件が緩和制約条件に再設定され、熟練者による修正箇所及び修正過程が緩和制約条件を必須制約条件に変更するものである場合、緩和制約条件が必須制約条件に再設定されるので、動的な環境変化に対してさらに柔軟に対応することができる。
【００１２】
また、上記のシミュレーションプログラムにおいて、前記制約条件設定手段は、複数の制約条件の各々に対して当該制約条件を有効とするか無効とするかを設定し、前記シミュレーション手段は、前記制約条件設定手段によって有効とされた制約条件のみを用いて事例をシミュレーションすることが好ましい。
【００１３】
この場合、複数の制約条件の各々に対して当該制約条件を有効とするか無効とするかが設定され、有効とされた制約条件のみを用いて事例がシミュレーションされる。したがって、シミュレーションにおいて使用する制約条件を容易に判別することができ、必要な制約条件のみを考慮してシミュレーションされるので、計算量を少なくすることができる。
【００１４】
また、上記のシミュレーションプログラムにおいて、前記制約条件変更手段によって変更された制約条件をユーザに提示する制約条件提示手段と、前記制約条件提示手段によって提示された制約条件を確定するか否かのユーザによる入力を受け付ける確定受付手段としてコンピュータをさらに機能させ、前記制約条件再設定手段は、前記確定受付手段によって確定すると入力された制約条件を再設定することが好ましい。
【００１５】
この場合、変更された制約条件がユーザに提示され、提示された制約条件を確定するか否かの入力が受け付けられ、確定すると入力された制約条件が再設定される。したがって、変更された制約条件をユーザ、好ましくは熟練者に提示することで、変更後の制約条件が間違っていないかを確認することができ、より確実にシミュレーションすることができる。
【００１６】
本発明に係るシミュレーション方法は、制約条件設定手段、シミュレーション手段、表示手段、修正受付手段、認識手段及び制約条件再設定手段として機能するコンピュータを用い、シミュレーションにより事例を最適化するためのシミュレーション方法であって、前記制約条件設定手段が、前記事例が達成すべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定するステップと、前記シミュレーション手段が、前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするステップと、前記表示手段が、前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示するステップと、前記修正受付手段が、前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付けるステップと、前記認識手段が、前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識するステップと、前記制約条件再設定手段が、前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定するステップと、前記シミュレーション手段が、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションするステップとを含む。
【００１７】
本発明に係るシミュレーション装置は、シミュレーションにより事例を最適化するシミュレーション装置であって、前記事例が達成すべき複数の制約条件を、必ず満たさなければならない必須制約条件と、緩和可能な緩和制約条件とに設定する制約条件設定手段と、前記制約条件設定手段によって設定された制約条件を用いて事例をシミュレーションするシミュレーション手段と、前記シミュレーション手段によってシミュレーションされたシミュレーション結果を表示する表示手段と、前記表示手段によって表示されるシミュレーション結果に対してユーザが入力した修正データを受け付ける修正受付手段と、前記修正受付手段によって受け付けられた修正データからユーザの修正を分析し、修正箇所及び修正過程を認識する認識手段と、前記認識手段によって認識された修正箇所及び修正過程が前記必須制約条件を前記緩和制約条件に変更するものである場合、前記必須制約条件を前記緩和制約条件に再設定し、前記認識手段によって認識された修正箇所及び修正過程が前記緩和制約条件を前記必須制約条件に変更するものである場合、前記緩和制約条件を前記必須制約条件に再設定する制約条件再設定手段とを備え、前記シミュレーション手段は、前記制約条件再設定手段によって再設定された制約条件を用いて事例を再度シミュレーションする。
【発明の効果】
【００１８】
本発明によれば、シミュレーション結果が可視的に表示されるので、熟練者は、表示されたシミュレーション結果を見ながら、長年の知識に基づいて動的な環境変動に柔軟に対応する修正データを入力することができるとともに、熟練者による修正箇所及び修正過程を基に必須制約条件を緩和制約条件に変更したり、緩和制約条件を必須制約条件に変更したりすることができるので、熟練者の知識を効率的に学習しながら、動的な環境変化に対して柔軟に対応することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施の形態によるシミュレーション装置について図面を参照しながら説明する。図１は、本発明の一実施の形態によるシミュレーション装置のハードウエア構成の一例を示す図である。
【００２０】
図１に示すシミュレーション装置１０は、パーソナルコンピュータ等から構成され、入力装置１、ＲＯＭ（リードオンリメモリ）２、ＣＰＵ（中央演算処理装置）３、ＲＡＭ（ランダムアクセスメモリ）４、外部記憶装置５、表示装置６、記録媒体駆動装置７及び出力装置９を備えて構成される。各ブロックは内部のバスに接続され、このバスを介して種々のデータ等が各ブロック間で入出力され、ＣＰＵ３の制御の下、種々の処理が実行される。
【００２１】
入力装置１は、キーボード、マウス等から構成され、ユーザである熟練者が制約条件等を入力するために用いられる。ここで、熟練者とは、例えば、物品の積載に関して精通した者、輸送経路の決定について精通した者等の物品の生産及び輸送等に精通した者である。
【００２２】
ＲＯＭ２には、システムプログラム等が予め記憶される。外部記憶装置５は、ハードディスクドライブ等から構成され、後述するシミュレーションプログラム等を記憶している。ＣＰＵ３は、外部記憶装置５からシミュレーションプログラム等を読み出し、後述するシミュレーション処理等を実行して各ブロックの動作を制御する。ＲＡＭ４は、ＣＰＵ３の作業領域等として用いられる。
【００２３】
表示装置６は、ＣＲＴ（陰極線管）又は液晶表示装置等から構成され、ＣＰＵ３の制御の下、種々の画面を表示する。出力装置９は、プリンタ等から構成され、ＣＰＵ３などによる処理結果を印刷することにより外部に出力する。
【００２４】
なお、シミュレーションプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ及びフレキシブルディスク等から構成されるコンピュータ読み出し可能な記録媒体８に記録するようにしてもよい。この場合、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ及びフレキシブルディスクドライブ等から構成される記録媒体駆動装置７を用いて記録媒体８から読み出されたシミュレーションプログラムが外部記憶装置５にインストールされる。また、シミュレーションプログラムがネットワークを介して接続されている他のコンピュータ等に記憶されている場合、当該コンピュータ等からネットワークを介してシミュレーションプログラムをダウンロードするようにしてもよい。
【００２５】
次に、上記のように構成されたシミュレーション装置の主要な機能について説明する。図２は、図１に示すシミュレーション装置の主要機能の一例を示すブロック図である。
【００２６】
図２に示すシミュレーション装置１０は、機能的には、制御部１００、記憶部２００、表示部３００及び入力部４００を備える。制御部１００は、ＣＰＵ３等から構成され、ＣＰＵ３等が外部記憶装置５に記憶されているシミュレーションプログラム等を実行することにより、制約条件設定部１０１、シミュレーション部１０２、シミュレーション結果出力制御部１０３、シミュレーション結果表示制御部１０４、分散認識部１０５、修正認識部１０６、制約条件変更部１０７及び制約条件再設定部１０８として機能する。
【００２７】
記憶部２００は、外部記憶装置５等から構成され、ＣＰＵ３等が外部記憶装置５に記憶されているシミュレーションプログラム等を実行することにより、制約条件記憶部２０１及びシミュレーション結果記憶部２０２として機能する。
【００２８】
表示部３００は、表示装置６等から構成され、ＣＰＵ３等が外部記憶装置５に記憶されているシミュレーションプログラム等を実行することにより、シミュレーション結果表示部３０１及び制約条件表示部３０２として機能する。
【００２９】
入力部４００は、入力装置１等から構成され、ＣＰＵ３等が外部記憶装置５に記憶されているシミュレーションプログラム等を実行することにより、制約条件入力受付部４０１、データ入力受付部４０２、結果確定受付部４０３、修正受付部４０４及び制約条件確定受付部４０５として機能する。
【００３０】
制約条件記憶部２０１は、事例が達成すべき複数の制約条件を記憶する。なお、事例とは、物品の生産及び輸送等においてシミュレーションにより最適化する事例を意味し、例えば、荷物などの製品をコンテナなどの運輸媒体に積み付ける事例、荷物などの製品を輸送する輸送経路を決定する事例等を含む。また、制約条件は、必ず満たさなければならない必須制約条件（以下、ハード制約条件ともいう）と、緩和可能な緩和制約条件（以下、ソフト制約条件ともいう）とを含む。制約条件記憶部２０１は、ソフト制約条件に対する緩和度合いを表す緩和パラメータ等を記憶する。
【００３１】
ここで、上記のハード制約条件及びソフト制約条件について詳細に説明する。従来の事例シミュレーション方法では、問題と関連する制約条件しか考慮されておらず、設計したシステムも同じ制約条件の問題しか処理できないという限界がある。この場合、制約条件の変更や新しい制約条件の追加を行うと、現場のシステムが停止し、修正待ちの状態になるため、現場に大きい影響を与える。
【００３２】
上記の問題を克服するために、本実施の形態では、すべての制約条件を一般化し、ハード制約条件とソフト制約条件とに分け、ハード制約条件は緩和不可能とし、ソフト制約条件は一定の範囲で緩和可能とする。緩和可能な範囲は事前に指定されており、緩和されるソフト制約条件はシミュレーションの状況に応じて自動的に決定され、緩和可能な範囲内で変更される。
【００３３】
例えば、積載問題における制約条件の場合、ハード制約条件には、「Ｈ１：コンテナのサイズを超えてはならない」、「Ｈ２：コンテナの最大積載重量を超えてはならない」、「Ｈ３：指定されるコンテナに従って配置しなければならない」、「Ｈ４：荷姿強度に従って上下配置しなければならない」、「Ｈ５：指定される配置場所に従って上下配置しなければならない」、「Ｈ６：指定される回転条件に従って上下配置しなければならない」、「Ｈ７：同梱指定に従って配置しなければならない」、「Ｈ８：指定される最大積み層を超えてはならない」などがある。
【００３４】
また、ソフト制約条件には、「Ｓ１：重たい荷物を下に、軽い荷物を上に配置する（ε１，ε１，ｍａｘ）」、「Ｓ２：段差範囲を超えない（ε２，ε２，ｍａｘ）」、「Ｓ３：長い荷物が下で、短い荷物が上に配置する（ε３，ε３，ｍａｘ）」、「Ｓ４：幅の広い荷物が下で、幅の狭い荷物を上に配置する（ε４，ε４，ｍａｘ）」、「Ｓ５：コンテナ操作が容易になるよう配置する（ε５，ε５，ｍａｘ）」、「Ｓ６：指定される順番に従って配置する（ε６，ε６，ｍａｘ）」、「Ｓ７：荷物の優先順位に従って配置する（ε７，ε７，ｍａｘ）」、「Ｓ８：指定される積みパターンに従って配置する（ε８，ε８，ｍａｘ）」、「Ｓ９：同じ積荷グループをまとめて配置する（ε９，ε９，ｍａｘ）」、「Ｓ１０：同梱可能な荷物をまとめて配置する（ε１０，ε１０，ｍａｘ）」などがある。なお、ソフト制約条件におけるεｉとεｉ，ｍａｘ（０≦εｉ≦εｉ，ｍａｘ，ｉ＝１，２，・・・）とは、それぞれソフト制約条件に関する緩和パラメータ及びその最大緩和可能のパラメータを表している。
【００３５】
なお、制約条件の分類方法は、上記の例に特に限定されず、よく使用する制約条件をＡゾーン、ときどき使用する制約条件をＢゾーン、あまり使用しない制約条件をＣゾーンとして、制約条件を３つのゾーンに分類し、３つのゾーンに分類された制約条件を上記のハード制約条件とソフト制約条件とに分類して使用してもよい。
【００３６】
制約条件設定部１０１は、予め記憶している初期設定条件に基づき、制約条件記憶部２０１に記憶されている複数の制約条件を、必ず満たさなければならないハード制約条件と、緩和可能なソフト制約条件とに設定し、ソフト制約条件に緩和パラメータを設定する。緩和パラメータの初期値は緩和しないことを意味する０とし、デッドロックの状況に従って自動的に少しずつ緩和する。
【００３７】
また、制約条件設定部１０１は、初期設定条件に基づき、すべての制約条件にスイッチ・パラメータＰｏｎ（Ｐｏｎ＝０，１）を設定し、問題によって考慮するかどうかをスイッチ・パラメータで決定する。Ｐｏｎ＝０（ｏｆｆ）の場合、この制約条件を考慮せず、Ｐｏｎ＝１（ｏｎ）の場合、この制約条件を考慮する。
【００３８】
制約条件入力受付部４０１は、熟練者による制約条件の入力を受け付け、制約条件設定部１０１は、事例が達成すべき複数の制約条件を、必ず満たさなければならないハード制約条件と、緩和可能なソフト制約条件とに設定する。このように、熟練者も制約条件入力受付部４０１を用いて、各制約条件のスイッチ・パラメータを設定でき、緩和パラメータ及び最大緩和範囲の値を変更できる。また、熟練者が結果を修正することにより、システムの認識機能及びパラメータ変更機能によるスイッチ・パラメータ及び緩和パラメータを自動的に変更できる。
【００３９】
データ入力受付部４０１は、事例を特定するための事例データの入力を受け付ける。シミュレーション部１０２は、制約条件設定部１０１によって設定された制約条件を制約条件記憶部２０１から読み出し、最適化処理手順を用いて、データ入力受付部４０１により受け付けられた事例データにより特定される事例をシミュレーションする。また、シミュレーション部１０２は、後述する制約条件再設定部１０８によって再設定された制約条件を制約条件記憶部２０１から読み出し、最適化処理手順を用いて事例をシミュレーションする。
【００４０】
ここで、最適化処理手順としては、組み合わせ最適化アルゴリズム、ヒューリスティクス（heuristics）、局所探索法（local search）、アニーリング法（simulated annealing）、タブー探索法（tabu search）、遺伝アルゴリズム（genetic algorithm）等の最適化アルゴリズムを用いた処理手順を用いることができる。これらの最適化処理手順は、事例に応じて選択してもよく、また、最適化処理手順選択部１０１は、通常、事例に最適な一の最適化処理手順を用いるが、事例によっては２以上の最適化処理手順を組み合わせて用いてもよい。
【００４１】
シミュレーション結果出力制御部１０３は、シミュレーション部１０２によりシミュレーションされたシミュレーション結果をシミュレーション結果表示制御部１０４へ出力するとともに、シミュレーション結果記憶部２０２に記憶させる。シミュレーション結果記憶部２０２は、シミュレーション結果出力制御部１０３から出力されるシミュレーション結果を記憶し、シミュレーション部１０２の要求に応じて、記憶しているシミュレーション結果をシミュレーション部１０２へ出力する。
【００４２】
シミュレーション結果表示制御部１０４は、シミュレーション結果出力制御部１０３から出力されるシミュレーション結果を動画又は静止画を用いて表示するようにシミュレーション結果表示部３０１を制御し、シミュレーション結果画像データをシミュレーション結果表示部３０１に出力する。シミュレーション結果表示部３０１は、シミュレーション結果表示制御部１０４から出力されるシミュレーション結果画像データが入力され、シミュレーション部１０２によるシミュレーション結果を表示画面に表示する。
【００４３】
修正受付部４０４は、シミュレーション結果表示部３０１に表示されたシミュレーション結果に対して熟練者が入力した修正データを受け付ける。修正データとしては、制約条件、緩和パラメータ、運輸媒体に積載される物品に対する移動指示、物品を輸送する輸送経路の変更指示等が該当する。
【００４４】
修正受付部４０４は、熟練者が入力した制約条件、緩和パラメータ等のパラメータ、及び、移動指示、変更指示等のシミュレーション結果の修正指示を修正認識部１０６へ出力し、ユーザが入力した移動指示、変更指示等のシミュレーション結果の修正指示をシミュレーション結果出力制御部１０３へ出力する。また、修正受付部４０４は、表示されているシミュレーション結果を後述する分散認識部１０５が分割した複数の部分（以下、クラスタという）のうちの１のクラスタに対して熟練者が入力した修正データを受け付ける。
【００４５】
シミュレーション結果出力制御部１０３は、移動指示、変更指示等のシミュレーション結果の修正指示に応じてシミュレーション結果を修正し、修正後のシミュレーション結果をシミュレーション結果表示制御部１０４へ出力する。シミュレーション結果表示制御部１０４は、修正後のシミュレーション結果を表示するようにシミュレーション結果表示部３０１を制御し、シミュレーション結果表示部３０１は、修正後のシミュレーション結果を表示画面に表示する。
【００４６】
結果確定受付部４０３は、シミュレーション結果表示部３０１に表示されるシミュレーション結果の熟練者による確定指示を受け付ける。分散認識部１０５は、結果確定受付部４０３によって確定指示が受け付けられたシミュレーション結果以外の残りのシミュレーション結果を、分散認識等の手法を用いて所定のルールに従って複数のクラスタに分割する。なお、クラスタの分割は、上記の例に特に限定されず、確定指示が受け付けられる前のシミュレーション結果を複数のクラスタに分割して各クラスタを個別に表示する等の種々の変更が可能である。
【００４７】
修正認識部１０６は、修正受付部４０４によって受け付けられたシミュレーション結果に対する修正を分析し、修正箇所及び修正過程を認識する。制約条件変更部１０７は、修正認識部１０６によって認識された修正箇所及び修正過程に基づいて、制約条件及び緩和パラメータを変更し、変更結果を制約条件再設定部１０８及び制約条件表示部３０２へ出力する。制約条件表示部３０２は、制約条件及び緩和パラメータの変更結果を表示する。
【００４８】
制約条件再設定部１０８は、修正認識部１０６によって認識された修正箇所及び修正過程がハード制約条件をソフト制約条件に変更するものである場合、ハード制約条件をソフト制約条件に再設定し、修正認識部１０６によって認識された修正箇所及び修正過程がソフト制約条件をハード制約条件に変更するものである場合、ソフト制約条件をハード制約条件に再設定する。
【００４９】
制約条件確定受付部４０５は、制約条件表示部３０２によって表示される制約条件及び緩和パラメータの変更結果を確定するか否かを熟練者から受け付ける。熟練者は、表示された変更結果でよい場合、そのまま確定し、表示された変更結果をさらに変更する場合、変更結果をさらに修正する。
【００５０】
制約条件変更部１０７は、制約条件確定受付部４０５によって変更結果がさらに修正された場合、修正後の制約条件及び緩和パラメータを制約条件表示部３０２へ出力する。制約条件表示部３０２は、修正後の制約条件及び緩和パラメータを表示する。制約条件再設定部１０８は、制約条件変更部１０７によって変更された制約条件及び緩和パラメータを制約条件記憶部２０１に再設定する。
【００５１】
なお、本実施形態において、制約条件設定部１０１が制約条件設定手段の一例に相当し、シミュレーション部１０２がシミュレーション手段の一例に相当し、シミュレーション結果表示制御部１０４及びシミュレーション結果表示部３０１が表示手段の一例に相当し、修正受付部４０４が修正受付手段の一例に相当し、修正認識部１０６が認識手段の一例に相当し、制約条件再設定部１０８が制約条件再設定手段の一例に相当し、制約条件表示部３０２が制約条件提示手段の一例に相当し、制約条件確定受付部４０５が確定受付手段の一例に相当する。
【００５２】
次に、本発明の基本概念について説明する。コンピュータ技術の急速な発展に伴い、これまで手動で行われていた作業が様々な分野で自動化されている。コンピュータは、大規模で複雑な情報を高速度かつ高精度で処理できる。しかしながら、一部の作業は自動化により便利になったが、自動化により不便になる例も多く、実際に、高額な自動化システムが使えないという例もある。
【００５３】
従来の自動化システムにおいて不便となる主な原因は、次の二つであると考えられる。一つは、事前に定義した仕様に従って設計されたシステムが柔軟性を持たず、実際の状況のダイナミックな変化や、予想外の問題の発生などに適用できないためである。もう一つは、システムの制約条件、評価基準などはほとんど固定であり、状況変化に応じた制約条件の緩和、評価基準の変化などができないためである。
【００５４】
このため、本願発明者は、自動化システムは制約条件を満たす最適解に注目し、一方、熟練者は状況に応じて制約条件の緩和、評価基準などの変化に柔軟に対応して現状に対する適応解に注目する点に着目し、すべての制約条件を緩和不可であるハード制約条件と認識するアプローチから、熟練者のように状況に応じた制約緩和というノウハウを用いて、一部の制約条件をある程度は緩和可能なソフト制約条件と認識するアプローチに考案した。また、現実の時間制限を考慮したDrum-Buffer-Rope（ＤＢＲ）手法を用いたマルチエージェントの交渉モデルとして、状況を認識しながら制約条件の緩和程度を考慮し、制約になった個体に合わせて制約違反を次々に解消するThree-Zone Buffer Management（ＴＺＢＭ）を考案した。
【００５５】
しかしながら、これらのアプローチでは、制約緩和を自動化システムが一方的に行うので、熟練者とのインタラクションがなく、無駄な制約緩和やデッドロックが発生する虞があった。この問題を解消するため、本発明では、Explanation-Based Learning（ＥＢＬ）を拡張した進化型ＥＢＬ（Evolution Explanation-Based Learning（ＥＥＢＬ）、Semi-Automatic Learning of decision maker及びThree-zone Buffer Management（ＴＺＢＭ）を用いて、人間と機械（システム）のインタラクションにより、熟練者の知識を自動的に獲得する設計論(Automatically Acquiring Knowledge by Human-Machine Interaction)（ＡＫＨＭＩ）を用い、上記のシミュレーション装置１０を実現している。
【００５６】
また、本発明では、積載問題を事例として、提案した設計論を配車配送支援システムの設計に適応する。熟練者の知識を獲得し、自動的にシステムを更新するために、次のことを考える。
（１）領域制約ベースという積載領域に使う制約条件を含め、自動的に追加・更新できる領域制約ベース（Domain Constraints Base，ＤＣＢ）を構築する。
（２）熟練者は持っている状況に依存する知識、明文化できない暗黙知を獲得するために、自動化システムと熟練者をインタラクションするインタフェース・ツールを構築し、熟練者はこのツールを通じて、制約条件を追加、または削除し、制約緩和パラメータを変更、または設定し、自動化により得られた結果を修正する。
（３）自動化システムに操作プロセスの分析、認識、クラスタリング、自動的に更新できる知識獲得・継承ツールを構築する。
【００５７】
次に、本実施の形態で用いられる学習モデルについて説明する。本実施の形態で用いられる学習モデルは、従来のＥＢＬ学習モデルをさらに進化させた進化型ＥＢＬ学習モデルである。図３は、本実施の形態で用いられる進化型ＥＢＬ学習モデルを概念的に説明するための図である。
【００５８】
図３における破線部分は従来のＥＢＬ学習モデルと同じである。ＥＢＬ学習モデルは、訓練事例として与えられる単一事例の内包する目標概念を、対象領域固有の知識を用いることによって説明構造を生成し、目的指向的に一般化知識を得るものである。領域理論は、システムに用意された領域固有の知識である。目標概念は、訓練事例の機能定義、学習の目標である。説明構造は、領域知識に基づいて、目標概念と整合する訓練事例に準拠した因果モデルである。操作規範は、訓練事例からの概念を容易に抽出し、生成された知識を新たな状況下で適応しやすくする実行規則である。なお、このＥＢＬ学習モデルについては、本願発明者による特開２００３−３３７９３４号公報に詳細に記載されているので、これ以上の詳細な説明は省略する。
【００５９】
本実施の形態に用いられる進化型ＥＢＬ学習モデルでは、自動計算結果（シミュレーション結果）を熟練者が修正し、修正結果を得ることにより、熟練者による修正プロセスを訓練事例とし、領域理論として入力する領域制約ベースを構築するとともに、操作規範として入力する操作規範ベースを構築する。領域制約ベースは、熟練者が「説明できない部分」を修正することによって追加更新される。また、操作規範ベースは、熟練者が「説明できない部分」を修正することによって追加され、操作規範を更新する。
【００６０】
ここで、領域制約ベースについて説明する。図４は、コンテナ積載問題における領域制約ベースの設計を説明するための図である。
【００６１】
図４において、まず、定義した制約条件は、初期制約条件として領域制約ベースに設定される。要求された制約条件は、問題に依存する事前に定義した制約条件であり、追加した制約条件は、熟練者の判断、修正によって追加した制約条件である。制約条件の更新も含め、制約条件の分類・認識は、全ての制約条件をハードとソフトに分類し、使用する制約条件をＰｏｎ＝１に設定し、ソフト制約条件に緩和パラメータを設定する。
【００６２】
ハード制約条件Ｈｉは、使ったハード制約条件と使っていないハード制約条件とに分けられ、使ったハード制約条件のスイッチＳＨｉを１に設定し、使っていないハード制約条件のスイッチＳＨｉを０に設定する。また、ソフト制約条件Ｓｊは、使ったソフト制約条件と使っていないソフト制約条件とに分けられ、使ったソフト制約条件のスイッチＳＳｊを１に設定し、使っていないソフト制約条件のスイッチＳＳｊを０に設定する。これらのパラメータは、熟練者の指定、修正、システムの認識により変更される。システムと熟練者の意見が異なる場合は、システムからの情報提供に基づき熟練者が決定する。
【００６３】
従来のシステム設計では、現場事前に要求した制約条件及び評価基準に従って、アプローチを提案し、システムを設計する。しかし、現実の問題は大規模かつ複雑で、予想できない状況の発生も十分考えられる。従って、要求の変更、制約条件の変更と追加、評価基準の変化などが必要である。従来のシステムでは、制約条件の変更だけでも自動的に適応できず、システムの変更及びアプローチの修正には一旦現場のシステムを止める必要がある。
【００６４】
コンピュータを用いた従来のシステムでは、高速で正確に、大規模で複雑な情報を処理できる。しかし、柔軟性を持たず、環境変化に適用できない。人間は、状況に応じて適応的に問題を解決できる。しかし、解決速度や正確性は低く、大規模で複雑な情報を短時間では処理できない。
【００６５】
上記の問題を改善するために、本発明では、上記した進化型ＥＢＬ、Semi-Automatic Learning of decision maker及びＴＺＢＭを用いた、人間・機械インタラクションによる学習システムとして、上記のシミュレーション装置１０を構築している。すなわち、シミュレーション装置１０に熟練者とのインタフェースを設けることにより、熟練者の操作プロセスを分析しながら認識し、操作プロセスから熟練者の明文化できない知識を獲得し、自動的にアプローチを更新する。
【００６６】
例えば、コンテナ積載問題の場合、制約条件制御（人間）→シミュレーション（機械）→分類認識（機械）→可視化表示（機械）→結果確定（人間・機械）→モディファイ（人間）→知識獲得（機械）→制約条件・パラメータ変換（機械）→再確認（人間・機械）→アプローチ更新（機械）→シミュレーション（機械）というプロセスが実行される。
【００６７】
また、シミュレーション装置１０では、制約緩和の社会的交渉モデルとしてＴＺＢＭを用い、領域制約ベースにあるすべての制約条件にスイッチ・パラメータを設定し、この値により制約条件が有効か無効かを決定する。また、制約条件をハード制約条件とソフト制約条件とに分けて、ソフト制約条件に緩和パラメータを定義する。すべての緩和パラメータは、熟練者の設定及び修正により変更可能であり、シミュレーション装置１０と熟練者との二重の確認によって確定される。
【００６８】
シミュレーション結果は大規模且つ複雑な情報を含み、人間にとって一度に認識するのは困難であるため、シミュレーション装置１０は、表示部３００を用いてシミュレーション結果を容積、重量積、荷物の種類、積載パターンなどに基づき分類し、可視化技術を利用して熟練者に提示する。このとき、熟練者は自ら満足したコンテナを確定し、集合から削除する。また、未確定のコンテナから一事例を選び、モディファイ・ツールを使って修正する。システムの認識を支援するために、事前に用意した修正ポイントから選んで入力する。
【００６９】
シミュレーション装置１０は、進化型ＥＢＬを用いて、修正プロセス及び修正ポイントを参照しながら熟練者の修正を分析と認識し、一般化した知識に変換し、システム・パラメータを更新する。これによって制約条件の削除、追加、変更及び評価基準の変更を行い、制約条件選択・パラメータ設定のインタフェース画面を熟練者に表示する。事前に定義した最大緩和範囲を超える場合や、領域制約ベースにない制約条件が存在する場合は、熟練者に警告を与えて再確認を行う。このとき、熟練者は、制約条件及びパラメータを確認し、問題ある制約条件及びパラメータの値を再び修正できる。
【００７０】
シミュレーション装置１０は、獲得した知識、すなわちアプローチに使用している制約条件、パラメータ及び評価基準を自動的に更新し、新しいアプローチを生成する。このアプローチを用いて、シミュレーション装置１０は、熟練者に指定された未確定のコンテナを再びシミュレーションする。このような処理が未確定なコンテナの集合が空となるか、指定された時間となるまで繰り返される。
【００７１】
上記の処理により、シミュレーション装置１０では、制約条件の変更、追加、削除、評価基準の変化などの要求があっても、停止することなく、リアルタイムで制約条件等を更新することができるので、環境変化に適応できる柔軟性を有する自動化システムを構築することができる。
【００７２】
また、熟練者による操作の正しさの判断基準や、熟練者の状況に依存する知識を獲得するために、修正受付部４０４、修正認識部１０６、制約条件変更部１０７及び制約条件再設定部１０８が設けられているが、熟練者の全ての操作が正しいとは限らず、間違った操作も存在する。この間違った操作を認識できなければ、正しい知識を獲得できないため、シミュレーション装置１０では、以下のようにして間違った操作を認識している。
【００７３】
熟練者は、シミュレーション装置１０が計算した結果を、自らの長年の経験やノウハウに基づきモディファイ・ツールである修正受付部４０４を用いて修正し、修正認識部１０６は、これらの修正プロセスを認識する。このとき、操作規範ベース（ＯＣＢ）を構築し、修正受付部４０４に様々な操作機能、例えば、「移動」、「回転」、「削除」、「追加」、「Ｕｎｄｏ」、「Ｃｏｐｙ」等の機能を具備させ、修正認識部１０６は、これらの操作を認識する。操作者は、これらの操作から所望の操作を選択することができ、例えば「Ｕｎｄｏ」バターンを使って間違い操作を削除できる。
【００７４】
また、シミュレーション装置１０には制約条件確定受付部４０５が設けられ、熟練者は、このインタフェース画面を用いて制約条件の選択、変更及び緩和パラメータの設定を行うことができ、修正認識部１０６は、これらの操作を認識する。
【００７５】
上記の構成により、本シミュレーション装置１０は、定型的・反復的な問題においてのみ効力を発揮するエキスパート・システム（Expert System，ＥＳ）の限界を超えるものであり、人間と機械のインタラクションにより、互いの利点を利用して欠点を補うことができる。さらに、知識獲得の難しさ、領域理論を更新できないという限界を持つ従来のＥＢＬとは異なり、領域制約ベース及び操作規範ベースの構築により、より汎用的で適応的な機械学習のモデルを実現することができる。
【００７６】
次に、上記のように構成されたシミュレーション装置１０による積載問題のシミュレーション処理について説明する。図５は、積載問題のシミュレーションの概要を説明するための図である。図５に示すように、積載問題は、複数のサイズ、重量、個数といった複数の制約条件を満たすように荷物を指定されたトラック又はコンテナに自動的に配置するものであり、下記のシミュレーション処理により自動的に配置された荷物が熟練者によって修正される。
【００７７】
図６は、図２に示すシミュレーション装置１０によるシミュレーション処理を説明するためのフローチャートである。なお、図６に示すシミュレーション処理は、ＣＰＵ３が予め記憶されているシミュレーションプログラムを実行することにより行われる処理である。また、以下では、荷物等の製品をコンテナ等の運輸媒体に積み付ける積載問題を例に説明する。
【００７８】
まず、ステップＳ１において、制約条件入力受付部４０１は、ユーザによる制約条件の入力を受け付ける。このとき、表示装置６には、制約条件を入力するための制約条件入力画面が表示され、ユーザは、表示装置６に表示される制約条件入力画面に制約条件を入力する。次に、ステップＳ２において、制約条件設定部１０１は、制約条件入力受付部４０１によって入力された制約条件を制約条件記憶部２０１に設定する。
【００７９】
図７は、ユーザが制約条件を入力するための制約条件入力画面の一例を示す図である。図７に示す制約条件入力画面Ｇ１は、ハード制約条件表示領域Ｒ１と、ソフト制約条件表示領域Ｒ２と、制約条件説明領域Ｒ３とから構成される。ハード制約条件表示領域Ｒ１は、荷物等の製品をコンテナ等の運輸媒体に積み付ける場合に必ず満たさなければならないハード制約条件の設定入力を行うためのものである。図７に示すハード制約条件表示領域Ｒ１には、ハード制約条件の一例として、「Ｈ１：ＢＯＸのＳＩＺＥを超えない」、「Ｈ２：ＢＯＸのＭａｘＬｏａｄを超えない」、「Ｈ３：指定したＢＯＸを使う」、「Ｈ４：荷姿強度を守る」などが表示されている。ここで、ＢＯＸはコンテナを意味し、ＭａｘＬｏａｄは最大積載重量を意味するものである。
【００８０】
ソフト制約条件表示領域Ｒ２は、荷物等の製品をコンテナ等の運輸媒体に積み付ける場合に、所定の範囲内で緩和することが可能なソフト制約条件の設定入力を行うためのものである。図７に示すソフト制約条件表示領域Ｒ２には、ソフト制約条件の一例として、「Ｓ１：重量許す範囲ε１，ε１，ｍａｘ」、「Ｓ２：段差無視範囲ε２，ε２，ｍａｘ」、「Ｓ３：長さ無視範囲ε３，ε３，ｍａｘ」、「Ｓ４：幅の無視範囲ε４，ε４，ｍａｘ」、「Ｓ５：空間優先順位ε５，ε５，ｍａｘ」などが表示されている。それぞれのソフト制約条件には、緩和パラメータが設定可能であり、各ソフト制約条件におけるε１〜ε５には、緩和可能範囲の初期値Ｒ２１が入力され、各ソフト制約条件におけるε１，ｍａｘ〜ε５，ｍａｘには、緩和可能範囲の最大値Ｒ２２が入力される。
【００８１】
また、各ハード制約条件及びソフト制約条件の左側にはチェックボックスＣ１が表示される。ユーザは、シミュレーションに使用するハード制約条件及びソフト制約条件に対応するチェックボックスＣ１にチェックマークを入力することにより、チェックマークが入力された制約条件がシミュレーションにおいて使用される。制約条件説明領域Ｒ３には、各制約条件の説明が表示され、ユーザが選択した制約条件の説明が表示される。
【００８２】
ハード制約条件及びソフト制約条件には、優先順位が設けられており、ハード制約条件表示領域Ｒ１及びソフト制約条件表示領域Ｒ２には、優先順位が高い順に表示される。例えば、図７では、ハード制約条件Ｈ１はハード制約条件Ｈ２よりも優先順位が高く、ソフト制約条件Ｓ１はソフト制約条件Ｓ２よりも優先順位が高く設定されている。
【００８３】
図７に示すように、全ての制約条件を使用率の高い順に上位に並べて画面で表示する。各制約条件にスイッチ・パラメータＰｏｎを設定し、初期値を与える。制約条件をハード制約条件とソフト制約条件とに分け、ソフト制約条件には緩和パラメータを用意し、各緩和パラメータに初期値と最大値とを設定する。
【００８４】
なお、図７では、ハード制約条件の一例として、「Ｈ１：ＢＯＸのＳＩＺＥを超えない」、「Ｈ２：ＢＯＸのＭａｘＬｏａｄを超えない」、「Ｈ３：指定したＢＯＸを使う」、「Ｈ４：荷姿強度を守る」の４つを図示し、ソフト制約条件の一例として、「Ｓ１：重量許す範囲ε１，ε１，ｍａｘ」、「Ｓ２：段差無視範囲ε２，ε２，ｍａｘ」、「Ｓ３：長さ無視範囲ε３，ε３，ｍａｘ」、「Ｓ４：幅の無視範囲ε４，ε４，ｍａｘ」、「Ｓ５：空間優先順位ε５，ε５，ｍａｘ」の５つを図示しているが、本実施形態ではこれら以外のハード制約条件及びソフト制約条件も設定可能である。
【００８５】
図６に戻って、ステップＳ３において、データ入力受付部４０２は、ユーザによる事例データの入力を受け付ける。このとき、表示装置６には、事例データを入力するためのデータ入力画面が表示され、ユーザは、表示装置６に表示されるデータ入力画面に事例データを入力する。
【００８６】
ここで、事例データとしては、荷物などの物品をコンテナなどの運輸媒体に積み付ける場合、物品の数、各物品の配送先、各物品の大きさ（幅、奥行き及び高さ等）、各物品の重量、コンテナの数、各コンテナの配送先及びコンテナの大きさ（幅、奥行き及び高さ等）等が該当し、各事例についてシミュレーションするために必要な種々のデータが該当する。
【００８７】
なお、上記の説明では、ステップＳ１及びＳ２の処理によりユーザが制約条件を入力したが、この例に特に限定されず、ステップＳ３において、データ入力受付部４０２から制約条件設定部１０１にも事例データを入力し、制約条件記憶部２０１に予め記憶されている制約条件の中から事例データに適する制約条件を制約条件設定部１０１が自動的に選択して設定するようにしてもよく、この場合、ステップＳ１及びＳ２の処理を省略することができる。
【００８８】
次に、ステップＳ４において、シミュレーション部１０２は、制約条件設定部１０１によって設定された制約条件を制約条件記憶部２０１から読み出し、最適化処理手順を用いて事例をシミュレーションする。シミュレーション結果出力制御部１０３は、シミュレーション部１０２によりシミュレーションされたシミュレーション結果をシミュレーション結果表示制御部１０４へ出力するとともに、シミュレーション結果記憶部２０２に記憶させる。例えば、最適化処理手順を用いて運輸媒体に積載される物品の仮想的な配置状態をシミュレーションし、荷物等の物品をコンテナ等の運輸媒体に積み付ける場合、最適化処理手順を用いて計算された仮想的な荷物の積付状態がシミュレーションされる。
【００８９】
次に、ステップＳ５において、シミュレーション結果表示部３０１は、シミュレーション結果出力制御部１０３から出力されるシミュレーション結果を表示する。例えば、シミュレーション結果表示部３０１は、シミュレーション部１０２によりシミュレーションされた、３次元空間内において運輸媒体に積載される物品の仮想的な配置状態を表示する。例えば、荷物等の物品をコンテナ等の運輸媒体に積み付ける場合、シミュレーション結果表示部３０１は、荷物がコンテナに仮想的に積み付けられた積付状態を３次元的に表示する。このとき、コンテナの各辺がワイヤフレームで表示され、このコンテナの中に積載された荷物が表示される。なお、荷物が複数のコンテナに積み付けられる場合、全てのコンテナについて積付状態が表示される。
【００９０】
次に、ステップＳ６において、結果確定受付部４０３は、シミュレーション結果表示部３０１により表示されるシミュレーション結果に対するユーザによる確定指示を受け付ける。すなわち、ユーザは、満足するシミュレーション結果が得られた場合に確定指示を入力し、満足するシミュレーション結果が得られなかった場合に不確定指示を入力する。
【００９１】
荷物等の物品をコンテナ等の運輸媒体に積み付ける場合、複数のコンテナに対する荷物の積付状態がシミュレーション結果として表示され、ユーザは、このシミュレーション結果を視認により確認し、複数のコンテナの中から満足するコンテナを修正不要として確定する。
【００９２】
結果確定受付部４０３によりシミュレーション結果が確定されると、シミュレーション結果表示制御部１０４は、シミュレーション結果表示部３０１にシミュレーション結果が確定された旨を表示するよう指示し、シミュレーション結果表示部３０１は、ユーザが視認容易な表示態様でシミュレーション結果が確定されたことを表示する。
【００９３】
次に、ステップＳ７において、シミュレーション結果表示制御部１０４は、全てのシミュレーション結果について確定されたか否かを判断し、全てのシミュレーション結果について確定されたと判断された場合（ステップＳ７でＹＥＳ）、ステップＳ８に処理を移行し、全てのシミュレーション結果について確定されていないと判断された場合（ステップＳ７でＮＯ）、ステップＳ９に処理を移行する。
【００９４】
例えば、荷物等の物品をコンテナ等の運輸媒体に積み付ける場合、複数のコンテナの中からユーザが満足したコンテナが確定されるが、全てのコンテナについて確定されるとは限らない。特に、シミュレーション開始直後は、制約条件が厳しく設定されているので、熟練者が満足するような積付状態にならない場合がある。そこで、全てのシミュレーション結果が確定されたか否かを判断することにより、熟練者による修正が必要なシミュレーション結果が存在するか否かを判断する。
【００９５】
全てのシミュレーション結果について確定されたと判断された場合、ステップＳ８において、シミュレーション結果出力制御部１０３は、シミュレーション結果表示部３０１に表示されているシミュレーション結果をシミュレーション結果記憶部２０２に出力して記憶させ、シミュレーション処理が終了する。
【００９６】
一方、全てのシミュレーション結果について確定されていないと判断された場合、ステップＳ９において、分散認識部１０５は、結果確定受付部４０３によって確定指示が受け付けられたシミュレーション結果以外の残りのシミュレーション結果を複数のクラスタに分割する。
【００９７】
すなわち、結果確定受付部４０３によって確定されたシミュレーション結果以外の残りのシミュレーション結果には、複雑な状況が同時に存在し、判断し難いシミュレーション結果や制約条件を満たさないシミュレーション結果が含まれる。このため、分散認識部１０５は、残りのシミュレーション結果に対して分散認識法を用いて複雑な状況を短時間で認識し、認識結果を基に残りのシミュレーション結果を所定のルールに基づいて複数のクラスタに分割する。
【００９８】
この結果、シミュレーション対象が多数の個体から構成され、膨大な情報量を含む複雑な大規模システムであっても、システムを複数のクラスタに分割することにより、システムを部分的に選択し、選択した各部分の問題を順次修正することが可能となり、システムを徐々にダウンサイジングさせて複雑な問題を簡略化することができる。
【００９９】
次に、ステップＳ１０において、シミュレーション結果表示制御部１０４は、シミュレーション結果表示部３０１にクラスタを単位として残りのシミュレーション結果を表示させ、修正受付部４０４は、熟練者によるシミュレーション結果の修正指示を受け付ける。このとき、表示部３００には、シミュレーション結果の修正指示を受け付けるための修正受付画面が表示され、熟練者は、表示部３００に表示される修正受付画面にしたがってシミュレーション結果を修正することができる。例えば、シミュレーション結果表示制御部１０４がクラスタごとにシミュレーション結果を表示させたり、少数のクラスタを一括して表示させたりすることにより、熟練者は表示されているシミュレーション結果に対してクラスタごとに修正を行うことができる。
【０１００】
ここで、熟練者によるシミュレーション結果の修正について説明する。図８は、シミュレーション結果の修正を受け付ける修正受付画面の一例を示す図である。
【０１０１】
修正受付画面５００は、種々の修正操作を入力する修正ボタン５０１、２次元空間内におけるコンテナへの積付状態を表示する２次元積付表示部５０２、３次元空間内におけるコンテナへの積付状態を表示する３次元積付表示部５０３、コンテナに積み付けられる積荷のデータを一覧表示する積荷データ一覧表示部５０４及び各積荷の詳細なデータを表示する積荷データ詳細表示部５０５により構成される。熟練者は、修正ボタン５０１を操作しながら、２次元積付表示部５０２及び３次元積付表示部５０３に表示される荷物の積付位置を修正する。
【０１０２】
図６に戻って、ステップＳ１１において、修正認識部１０６は、修正受付部４０４によって受け付けられた熟練者による修正を分析し、修正箇所及び修正過程を認識する。次に、ステップＳ１２において、制約条件変更部１０７は、修正認識部１０６によって認識された修正箇所及び修正過程に基づいて、制約条件及び緩和パラメータを変更し、変更結果を制約条件表示部３０２へ出力する。具体的に、制約条件変更部１０７は、ＥＢＬ学習モデルにおける操作規範に修正認識部１０６によって認識された修正箇所及び修正過程を入力し、一般化知識を獲得する。そして、制約条件変更部１０７は、獲得した一般化知識をパラメータ化することにより制約条件を変更する。
【０１０３】
次に、ステップＳ１３において、制約条件変更部１０７は、シミュレーション結果が熟練者によって修正されることにより変更された制約条件の変更結果を制約条件表示部３０２へ出力し、制約条件表示部３０２は、制約条件の変更結果画面を表示する。なお、制約条件表示部３０２によって表示される変更結果画面は、図７に示す制約条件入力画面Ｇ１と同じであり、変更後のハード制約条件及びソフト制約条件が表示される。
【０１０４】
次に、ステップＳ１４において、制約条件確定受付部４０５は、制約条件表示部３０２により表示される制約条件の変更結果に対するユーザによる確定指示を受け付ける。すなわち、ユーザは、満足する変更結果が得られた場合、確定指示を入力し、満足する変更結果が得られなかった場合、変更結果を修正する。
【０１０５】
次に、ステップＳ１４において、制約条件変更部１０７は、制約条件の変更結果について確定されたか否かを判断し、制約条件の変更結果について確定されたと判断された場合（ステップＳ１４でＹＥＳ）、ステップＳ１６に処理を移行し、制約条件の変更結果について確定されていないと判断された場合（ステップＳ１４でＮＯ）、ステップＳ１５に処理を移行する。
【０１０６】
制約条件の変更結果について確定されていないと判断された場合、ステップＳ１５において、制約条件確定受付部４０５は、制約条件表示部３０２によって表示される制約条件の変更結果の修正を受け付ける。制約条件変更部１０７は、制約条件確定受付部４０５によって受け付けられた制約条件の修正に応じて制約条件を変更し、制約条件表示部３０２に表示する。
【０１０７】
制約条件の変更結果について確定されたと判断された場合、ステップＳ１６において、制約条件再設定部１０８は、制約条件変更部１０７によって変更された制約条件を制約条件記憶部２０１に再設定する。
【０１０８】
そして、制約条件記憶部２０１の制約条件が更新された後、ステップＳ４に戻り、シミュレーション部１０２は、制約条件再設定部１０８により再設定された制約条件を最適化処理手順に用いて事例を再度シミュレーションする。
【０１０９】
ここで、熟練者の修正について具体的に説明する。図９〜図１１は、熟練者の修正について具体的に説明するための図である。図９（ａ）は、図６のステップＳ６においてシミュレーション結果が確定された後のコンテナを示す図であり、図９（ｂ）は、図６のステップＳ１０において熟練者による修正が行われた後のコンテナを示す図である。
【０１１０】
図９（ａ）に示す例は、シミュレーションが行われることにより作成された１００本のコンテナのうち３０本のコンテナが熟練者により修正不要として確定された場合であり、残り７０本のコンテナが未確定として表示される。
【０１１１】
ＴＺＢＭを用いたシミュレーションでは、初期設定に従って全ての荷物を例えば１００本のコンテナに積み付け、指定された積みパターンに分類し、熟練者に提示する。熟練者は提示された１００本のコンテナを自らの認識により判断し、そのうち例えば３０本を確定する。確定したコンテナは、再計算しないように解の空間から削除する。
【０１１２】
シミュレーション結果が確定されると、図９（ａ）に示すように、修正が必要な複数のコンテナＣＴ１〜ＣＴ７０（図９（ａ）ではコンテナＣＴ１〜ＣＴ４のみを図示）が表示される。
【０１１３】
熟練者は、残りの７０本のコンテナから一本を選び、修正受付画面５００を使って、積み替える。この７０本のコンテナには、例えば、細かい製品がコンテナの奥に積載されていることや制約条件が緩和されていないこと等の様々な問題が含まれている。熟練者は、全ての問題を一括して修正することは困難であり、コンピュータによる学習も困難である。そこで、分散認識部１０５は、クラスタを単位として未確定の複数のコンテナを分割する。熟練者は、クラスタごとに分割されたコンテナのうちの１つのクラスタを選択し、選択したクラスタに含まれるコンテナを修正し、再度シミュレーションを行う。このように、選択、修正及びシミュレーションを繰り返し行うことにより、問題となるコンテナの数が徐々に減少し、最終的に全ての問題を解決することができる。
【０１１４】
ここで、熟練者がコンテナＣＴ２に対して後方に配置された細かい製品Ｐ１をコンテナＣＴ２内の前方に移動する修正を行った場合、図９（ａ）に示すコンテナＣＴ２内の製品Ｐ１は、図９（ｂ）に示すコンテナＣＴ２のように、コンテナＣＴ２の前方に配置されることとなる。このように、１本のコンテナＣＴ２に対して、後方に配置された細かい製品Ｐ１をコンテナＣＴ２内の前方に配置する修正が行われることにより、元々は考慮していないソフト制約条件Ｓ５を追加し、制約条件が更新される。
【０１１５】
制約条件再設定部１０８は、熟練者の修正に従ってソフト制約条件Ｓ５のスイッチＳＳ５を１に設定し、アプローチを更新する。そして、シミュレーション部１０２は、更新したアプローチを使って残りの６９本のコンテナを再計算する。これより、他のコンテナＣＴ３，ＣＴ４内の後方に配置された細かい製品Ｐ２，Ｐ３もコンテナＣＴ３，ＣＴ４内の前方に配置されることになる。その結果、残りの６９本のコンテナのうち、２９本が熟練者により修正不要として確定されることになる。
【０１１６】
このように、修正受付部４０４は、シミュレーション結果表示部３０１に表示される物品に対して熟練者が入力した物品の移動指示を受け付け、修正認識部１０６は、熟練者により修正された３次元空間内における運輸媒体に積載される物品の配置状態を分析し、熟練者による修正を認識する。そして、制約条件変更部１０７は、修正認識部１０６によって認識された修正に基づいて、制約条件を変更する。
【０１１７】
例えば、熟練者により、後方に配置された細かい製品をコンテナ内の前方に配置する修正が行われた場合、制約条件再設定部１０８は、細かい製品がコンテナ内の前方に配置されたことを認識し、予め設定されている「細かい製品をコンテナの後方に配置する」という制約条件を追加させる。
【０１１８】
このように、最適化処理手順を用いて運輸媒体に積載される物品の配置状態がシミュレーションされ、シミュレーションされた３次元空間内における運輸媒体に積載される物品の配置状態が表示され、表示された物品に対してユーザが入力した移動指示が受け付けられるので、熟練者は、シミュレーションされた３次元空間内における運輸媒体に積載される物品の配置状態を見ながら、迅速且つ的確に物品を移動させることができるとともに、運輸媒体に積載される物品に対する熟練者の修正プロセスを分析して一般化した知識を獲得することができる。
【０１１９】
図１０（ａ）は、２回目のシミュレーションが行われ、シミュレーション結果が確定された後のコンテナを示す図であり、図１０（ｂ）は、熟練者による２回目の修正が行われた後のコンテナを示す図である。
【０１２０】
図１０（ａ）に示す例は、シミュレーション結果の修正が行われた後、再度シミュレーションが行われることにより作成された６９本のコンテナのうち２９本のコンテナが熟練者により修正不要として確定された場合であり、残り４０本のコンテナが未確定として表示される。熟練者は、６９本から満足した２９本のコンテナを確定し、解の空間から削除する。熟練者は、残りの４０本のコンテナから一本を選んで修正する。シミュレーション結果が確定されると、図１０（ａ）に示すように修正が必要な複数のコンテナＣＴ１’〜ＣＴ４０’（図１０（ａ）ではコンテナＣＴ１’〜ＣＴ４’のみを図示）が表示される。
【０１２１】
ここで、容積率を向上させるため、コンテナＣＴ１’に対して熟練者により荷物の上下配置の制約条件（サイズ、重量、段差など）を緩和させる修正が行われた場合、図１０（ｂ）に示すコンテナＣＴ１’内の容積率が向上し、図１０（ｂ）に示すコンテナＣＴ１’のように製品が配置される。例えば、最も重い荷物を下に、軽い荷物を上に配置するが、小さく重い荷物があるので、少し重い場合でも小さければ上に配置する。
【０１２２】
この修正では、制約条件を追加するのではなく、ソフト制約条件Ｓ１の緩和パラメータε１を一定の程度で緩和させ、緩和パラメータの値を変える。制約条件変更部１０７は、緩和されたパラメータの値を事前に設定された最大緩和可能の範囲と比較し、超えない場合（εｉ≦εｉ，ｍａｘ）は自動的に更新し、超えれば（εｉ＞εｉ，ｍａｘ）熟練者とインタラクションしながら決定する。緩和パラメータに従ってアプローチを自動的に更新し、再び残っているコンテナを再計算する。
【０１２３】
このように、１本のコンテナＣＴ１’に対して、荷物の上下配置の制約条件を緩和する修正が行われることにより、制約条件が自動的に更新される。そして、更新された制約条件が再設定され、再度シミュレーションされることにより、他のコンテナＣＴ２’，ＣＴ３’，ＣＴ４’内の容積率が向上し、コンテナＣＴ２’，ＣＴ３’，ＣＴ４’をはみ出さない範囲まで製品が配置されることになる。その結果、残りの３９本のコンテナのうち、１０本が熟練者により修正不要として確定されることになる。
【０１２４】
図１１は、３回目のシミュレーションが行われ、シミュレーション結果が確定された後のコンテナを示す図である。図１１に示す例は、シミュレーション結果の修正が行われた後、再度シミュレーションが行われることにより作成された３９本のコンテナのうち１０本のコンテナが熟練者により修正不要として確定された場合であり、残り２９本のコンテナが未確定として表示される。シミュレーション結果が確定されると、図１１に示すように修正が必要な複数のコンテナＣＴ１”〜ＣＴ２９”（図１１ではコンテナＣＴ１”〜ＣＴ４”のみを図示）が表示される。熟練者は、複数のコンテナＣＴ１”〜ＣＴ２９”のうちの１本のコンテナを修正することにより、さらに制約条件を更新する。
【０１２５】
このようにして、全てのコンテナが修正不要として熟練者により確定されるまでステップＳ４〜Ｓ１６までの処理が繰り返し行われることにより、最適化処理手順の適応解を求めることができ、熟練者の知識が反映されたシミュレーションが行われることとなる。
【０１２６】
上記の処理により、本実施の形態では、シミュレーション結果及び修正受付画面が表示部３００に可視的に表示されるので、熟練者は表示されたシミュレーション結果を見ながら、長年の知識に基づいて動的な環境変動に柔軟に対応する修正データを入力することができるとともに、熟練者による修正箇所及び修正過程を基に必須制約条件を緩和制約条件に変更したり、緩和制約条件を必須制約条件に変更したりすることができるので、熟練者の知識を効率的に学習しながら、動的な環境変化に対して柔軟に対応することができる。
【図面の簡単な説明】
【０１２７】
【図１】本発明の一実施の形態によるシミュレーション装置のハードウエア構成の一例を示す図である。
【図２】図１に示すシミュレーション装置の主要機能の一例を示すブロック図である。
【図３】本実施の形態で用いられる進化型ＥＢＬ学習モデルを概念的に説明するための図である。
【図４】コンテナ積載問題における領域制約ベースの設計を説明するための図である。
【図５】積載問題のシミュレーションの概要を説明するための図である。
【図６】図２に示すシミュレーション装置によるシミュレーション処理を説明するためのフローチャートである。
【図７】ユーザが制約条件を入力するための制約条件入力画面の一例を示す図である。
【図８】シミュレーション結果の修正を受け付ける修正受付画面の一例を示す図である。
【図９】（ａ）は、図６のステップＳ６においてシミュレーション結果が確定された後のコンテナを示す図であり、（ｂ）は、図６のステップＳ１０において熟練者による修正が行われた後のコンテナを示す図である。
【図１０】（ａ）は、２回目のシミュレーションが行われ、シミュレーション結果が確定された後のコンテナを示す図であり、（ｂ）は、熟練者による２回目の修正が行われた後のコンテナを示す図である。
【図１１】３回目のシミュレーションが行われ、シミュレーション結果が確定された後のコンテナを示す図である。
【符号の説明】
【０１２８】
１    入力装置
２    ＲＯＭ
３    ＣＰＵ
４    ＲＡＭ
５    外部記憶装置
６    表示装置
７    記録媒体駆動装置
８    記録媒体
９    出力装置
１０    シミュレーション装置
１００    制御部
１０１    制約条件設定部
１０２    シミュレーション部
１０３    シミュレーション結果出力制御部
１０４    シミュレーション結果表示制御部
１０５    分散認識部
１０６    修正認識部
１０７    制約条件変更部
１０８    制約条件再設定部
２００    記憶部
２０１    制約条件記憶部
２０２    シミュレーション結果記憶部
３００    表示部
３０１    シミュレーション結果表示部
３０２    制約条件表示部
４００    入力部
４０１    制約条件入力受付部
４０２    データ入力受付部
４０３    結果確定受付部
４０４    修正受付部
４０５    制約条件確定受付部
【図１】
2006323784.tif 000003
【図２】
2006323784.tif 000004
【図３】
2006323784.tif 000005
【図４】
2006323784.tif 000006
【図５】
2006323784.tif 000007
【図６】
2006323784.tif 000008
【図７】
2006323784.tif 000009
【図８】
2006323784.tif 000010
【図９】
2006323784.tif 000011
【図１０】
2006323784.tif 000012
【図１１】
2006323784.tif 000013