(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023092308
(43)【公開日】2023-07-03
(54)【発明の名称】最適化装置、最適化方法
(51)【国際特許分類】
G06Q 10/04 20230101AFI20230626BHJP
G06N 99/00 20190101ALI20230626BHJP
G06Q 50/04 20120101ALI20230626BHJP
G06Q 10/08 20230101ALI20230626BHJP
G05B 19/418 20060101ALI20230626BHJP
【FI】
G06Q10/04
G06N99/00 180
G06Q50/04
G06Q10/08
G05B19/418 Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021207465
(22)【出願日】2021-12-21
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】工藤 文也
(72)【発明者】
【氏名】紅山 史子
(72)【発明者】
【氏名】宇都木 契
(72)【発明者】
【氏名】伊藤 誠也
(72)【発明者】
【氏名】月舘 統宙
【テーマコード(参考)】
3C100
5L049
【Fターム(参考)】
3C100AA14
3C100AA16
3C100AA22
3C100AA29
3C100BB33
3C100BB39
3C100CC02
5L049AA04
5L049AA16
5L049CC03
(57)【要約】
【課題】複数の自律体を用いて行われる作業の順序を、作業環境の変化に応じて効率的に最適化する。
【解決手段】最適化装置100は、複数の自律体を用いて行われる作業の順序を最適化する装置である。最適化装置100において、最適化情報入力部11は、作業に対して計画された作業順序の初期値を表す初期オーダー情報31と、作業順序の変動要因を表す作業進捗情報32および追加オーダー情報33と、作業が実施される作業環境を表す倉庫静的基礎情報36と、を含む最適化情報を入力する。最適化対象更新部12は、最適化対象とする作業順序を表す最適化対象オーダーを決定する。探索部13は、倉庫静的基礎情報36および最適化対象オーダーに基づいて作業順序の最適解を探索する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の自律体を用いて行われる作業の順序を最適化する装置であって、
前記作業に対して計画された作業順序の初期値を表す初期オーダー情報と、前記作業順序の変動要因を表す変動要因情報と、前記作業が実施される作業環境を表す作業環境情報と、を含む最適化情報を入力する最適化情報入力部と、
前記初期オーダー情報および前記変動要因情報に基づいて最適化対象とする作業順序を表す最適化対象オーダーを決定する最適化対象更新部と、
前記作業環境情報および前記最適化対象オーダーに基づいて前記作業順序の最適解を探索する探索部と、
前記探索部により探索された前記最適解を出力する最適解出力部と、を備える、最適化装置。
【請求項2】
請求項1に記載の最適化装置において、
前記探索部は、前記作業環境情報に基づく前記作業環境の変化に応じて前記最適化対象オーダーを変更した近傍解を生成し、前記近傍解を用いて前記最適解を探索する、最適化装置。
【請求項3】
請求項2に記載の最適化装置において、
前記探索部は、前記作業環境情報に基づいて前記作業環境の変化量を表す環境変化量を計算し、前記環境変化量に基づいて前記近傍解を生成する、最適化装置。
【請求項4】
請求項3に記載の最適化装置において、
前記探索部は、前記環境変化量に応じた摂動を前記最適化対象オーダーに付与して前記最適化対象オーダーを変更することにより前記近傍解を生成する、最適化装置。
【請求項5】
請求項3または4に記載の最適化装置において、
前記探索部は、前記環境変化量を可視化してユーザに提示する、最適化装置。
【請求項6】
請求項3または4に記載の最適化装置において、
前記探索部は、前記環境変化量に基づいて前記近傍解を生成するか否かを判定し、前記近傍解を生成しないと判定した場合は、前記最適化対象オーダーとは無関係に設定した初期解を前記近傍解の代わりに用いて前記最適解を探索する、最適化装置。
【請求項7】
請求項2に記載の最適化装置において、
前記探索部は、前記近傍解に基づく複数の変異解を生成し、前記近傍解および前記複数の変異解の評価値をそれぞれ計算し、前記評価値に基づいて前記近傍解または前記複数の変異解のいずれかを前記最適解として選択する、最適化装置。
【請求項8】
請求項7に記載の最適化装置において、
前記最適解出力部は、前記作業環境の変化に応じた前記最適解の評価値の変化の様子を可視化してユーザに提示する、最適化装置。
【請求項9】
複数の自律体を用いて行われる作業の順序を最適化する方法であって、
前記作業に対して計画された作業順序の初期値を表す初期オーダー情報と、前記作業順序の変動要因を表す変動要因情報と、前記作業が実施される作業環境を表す作業環境情報と、を含む最適化情報をコンピュータに入力し、
前記コンピュータにより、前記初期オーダー情報および前記変動要因情報に基づいて最適化対象とする作業順序を表す最適化対象オーダーを決定し、
前記コンピュータにより、前記作業環境情報および前記最適化対象オーダーに基づいて前記作業順序の最適解を探索し、
探索された前記最適解を前記コンピュータから出力する、最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の自律体を用いて行われる作業の順序を最適化するための装置および方法に関する。
【背景技術】
【0002】
近年、倉庫や工場などにおいて、人間の作業者に加えて、自律的に動作して予め設定された計画に沿った作業順序で所定の作業を行うロボット(以下、これらをまとめて「自律体」と称する)の利用が進められている。こうした自律体の運用では、業務効率化ニーズの高まりを受けて、運用効率化を実現する技術が必要とされている。
【0003】
自律体の運用効率化に関して、例えば特許文献1の技術が知られている。特許文献1には、解ベクトル集合内で適合度の高いグループの重心ベクトルの移動ベクトルに着目し、その移動ベクトルが同じ方向を指し示す場合にはそちらの方向に適合度の高い解ベクトルが存在すると判断しそのベクトルに沿って解ベクトル群の更新を行うとともに、現在の解ベクトル集合を対象にした組み替え操作による解ベクトルの最適化も同時に行うことにより、大域的解更新能力に優れるという遺伝的アルゴリズムの特徴を活かしながら、同時に過去の解ベクトル更新の履歴を利用して高速に最適解の方向を推定することができる最適化調整方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、作業環境の変化により、自律体の作業実績と計画との乖離が大きくなって計画の修正が必要となった場合に、算出済みの最適解を利用して計画の修正を行うことが困難である。そのため、最適解の推定をやり直す必要があり、作業環境の変化に応じて作業順序を効率的に最適化することができないという課題がある。
【0006】
本発明は、上記に鑑みてなされたものであり、複数の自律体を用いて行われる作業の順序を、作業環境の変化に応じて効率的に最適化することを主な目的とする。
【課題を解決するための手段】
【0007】
本発明による最適化装置は、複数の自律体を用いて行われる作業の順序を最適化する装置であって、前記作業に対して計画された作業順序の初期値を表す初期オーダー情報と、前記作業順序の変動要因を表す変動要因情報と、前記作業が実施される作業環境を表す作業環境情報と、を含む最適化情報を入力する最適化情報入力部と、前記初期オーダー情報および前記変動要因情報に基づいて最適化対象とする作業順序を表す最適化対象オーダーを決定する最適化対象更新部と、前記作業環境情報および前記最適化対象オーダーに基づいて前記作業順序の最適解を探索する探索部と、前記探索部により探索された前記最適解を出力する最適解出力部と、を備える。
本発明による最適化方法は、複数の自律体を用いて行われる作業の順序を最適化する方法であって、前記作業に対して計画された作業順序の初期値を表す初期オーダー情報と、前記作業順序の変動要因を表す変動要因情報と、前記作業が実施される作業環境を表す作業環境情報と、を含む最適化情報をコンピュータに入力し、前記コンピュータにより、前記初期オーダー情報および前記変動要因情報に基づいて最適化対象とする作業順序を表す最適化対象オーダーを決定し、前記コンピュータにより、前記作業環境情報および前記最適化対象オーダーに基づいて前記作業順序の最適解を探索し、探索された前記最適解を前記コンピュータから出力する。
【発明の効果】
【0008】
本発明によれば、複数の自律体を用いて行われる作業の順序を、作業環境の変化に応じて効率的に最適化することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の一実施形態に係る最適化装置の構成を示すブロック図である。
【
図2】
図2は、初期オーダー情報の具体例を示す図である。
【
図3】
図3は、最適化パラメータの具体例を示す図である。
【
図4】
図4は、倉庫静的基礎情報の具体例を示す図である。
【
図5】
図5は、本発明の一実施形態に係る最適化装置の処理の流れを示すフローチャートである。
【
図6】
図6は、最適化情報入力画面の具体例を示す図である。
【
図7】
図7は、探索処理の流れを示すフローチャートである。
【
図8】
図8は、環境変化量計算処理の流れを示すフローチャートである。
【
図9】
図9は、環境変化量可視化画面の具体例を示す図である。
【
図10】
図10は、近傍解生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について、図面を参照して説明する。
【0011】
図1は、本発明の一実施形態に係る最適化装置の構成を示すブロック図である。本実施形態に係る最適化装置100は、中央処理装置1、主記憶装置2、二次記憶装置3、入力装置4および出力装置5を備えたコンピュータであり、これらの各装置がバス6を介して互いに接続されることにより構成されている。
【0012】
中央処理装置1は、例えばCPU(Central Processing Unit)を用いて構成され、最適化装置100を動作させるための様々な処理や演算を行う。中央処理装置1は、主記憶装置2や二次記憶装置3に格納されたプログラムを実行することで、最適化情報入力部11、最適化対象更新部12、探索部13および最適解出力部14の各機能ブロックを実現する。これらの機能ブロックの詳細については後述する。なお、中央処理装置1の機能の一部または全部をCPU以外のデバイス、例えばGPU(Graphic Processing Unit)やFPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等を用いて実現してもよい。
【0013】
主記憶装置2は、例えばDRAM(Dynamic Random Access Memory)等の高速かつ揮発性の記憶装置を用いて構成され、中央処理装置1がプログラムを実行する際の作業領域として使用される。
【0014】
二次記憶装置3は、例えばHDD(Hard Disk Drive)等の磁気記憶装置やSSD(Solid State Drive)などの大容量かつ不揮発性の記憶装置を用いて構成され、中央処理装置1が実行するプログラムや、中央処理装置1の処理で利用される各種情報が格納される。二次記憶装置3に格納される情報には、初期オーダー情報31、作業進捗情報32、追加オーダー情報33、計算時間指定情報34、最適化パラメータ35、倉庫静的基礎情報36、計算履歴情報37、最適オーダー情報38の各情報が含まれる。これらの情報の詳細については後述する。
【0015】
入力装置4は、最適化装置100を利用するユーザからの入力操作を検出する装置であり、例えばキーボード、マウス等を用いて実現される。入力装置4により検出されたユーザの入力操作内容は中央処理装置1に伝達され、中央処理装置1が行う処理や演算に反映される。
【0016】
出力装置5は、最適化装置100で行われた処理や演算の結果を、最適化装置100を利用するユーザに提示する装置であり、例えばディスプレイ装置、プリンタ等を用いて実現される。出力装置5における提示内容は、中央処理装置1によって制御される。
【0017】
なお、最適化装置100とネットワークを介して接続された端末を、入力装置4や出力装置5の代わりに用いてもよい。この場合、最適化装置100が備える不図示の通信インターフェースにより、ユーザが端末を用いて行った入力操作内容を示す通信情報を端末から受信するとともに、最適化装置100の処理結果を端末へ送信し、端末に出力してユーザに提示することができる。
【0018】
また、
図1に示した最適化装置100の構成は、物理的に一つの計算機上に構築されてもよいし、複数の計算機上に分散して構築されてもよい。さらに、物理的には一つまたは複数の計算機上に論理区画を構成し、この論理区画上に最適化装置100の各構成が構築されてもよい。
【0019】
次に、中央処理装置1における最適化情報入力部11、最適化対象更新部12、探索部13および最適解出力部14の各機能ブロックについて説明する。本実施形態の最適化装置100では、中央処理装置1がこれらの機能ブロックとして動作することで、倉庫や工場などにおいて複数の自律体を用いて行われる作業について、作業環境に応じて作業順序を変更することにより、最適な作業順序を探索する。これにより、作業環境が変化した場合にも、元の作業順序を利用して最適な作業順序を効率的に求めることができるようにしたものである。
【0020】
最適化情報入力部11は、最適化装置100が作業環境に応じた最適な作業順序を求めるために必要な情報を入力する。具体的には、二次記憶装置3に格納されている初期オーダー情報31、作業進捗情報32、追加オーダー情報33、計算時間指定情報34、最適化パラメータ35、倉庫静的基礎情報36、計算履歴情報37の各情報を読み込むことで、これらの情報を入力する。なお、これらの情報は、最適化装置100が処理を開始する前に、二次記憶装置3に予め記憶されているものとする。
【0021】
最適化対象更新部12は、最適化情報入力部11により入力された各情報のうち、予め計画された作業順序の初期値を表す初期オーダー情報31と、初期値からの作業順序の変動要因をそれぞれ表す作業進捗情報32および追加オーダー情報33とに基づいて、最適化対象とする作業順序を表す最適化対象オーダーを決定する。
【0022】
探索部13は、最適化情報入力部11により入力された各情報のうち、作業が実施される作業環境を表す倉庫静的基礎情報36と、最適化対象更新部12により決定された最適化対象オーダーとに基づいて、作業順序の最適解を探索する。例えば、複数の自律体による全体の作業効率を最大化するような作業順序を、最適解として探索する。
【0023】
最適解出力部14は、探索部13により探索された最適解を出力する。最適解出力部14が出力した最適解は、出力装置5によってユーザに提示される。これにより、変化後の作業環境に応じた最適な作業順序をユーザに伝えて、ユーザが作業計画を見直す際に有用な情報を提供できるようにする。
【0024】
次に、二次記憶装置3に格納されている情報の詳細について説明する。以下では、複数の自律体によって行われる倉庫のピッキング作業について、その作業順序を最適化する場合の例を説明するものとする。なお、自律体はロボットであってもよいし、人間の作業者であってもよい。また、これらが混在して運用されていてもよい。
【0025】
初期オーダー情報31は、予め計画された作業順序の初期値を表す情報である。
図2は、初期オーダー情報31の具体例を示す図である。
図2に示すように、初期オーダー情報31は、例えば出荷日時311、SKU(Stock Keeping Unit)312、個数313の各フィールドを有する複数のレコードを組み合わせたテーブルデータにより表される。初期オーダー情報31のレコードは、作業単位ごとに設定される。
【0026】
出荷日時311には、倉庫から商品を出荷する予定時刻の情報が格納される。各自律体は、この出荷日時311に示された時刻の順序に従って、倉庫内の棚から指定の商品をピックアップして出荷する。SKU312には、在庫管理上の各商品の種類を特定する固有のIDが格納される。このSKU312に商品のIDが格納されることで、出荷対象の商品が指定される。個数313には、出荷する商品の個数が格納される。
【0027】
なお、
図2に示した初期オーダー情報31の構成は一例であり、例えば各作業を担当する自律体(ロボットまたは作業者)のIDなど、他の情報を初期オーダー情報31に含めてもよい。倉庫の運用形態や取り扱う商品の大きさなどに応じて、任意の情報を初期オーダー情報31に含めることができる。各自律体は、初期オーダー情報31またはこれと同じ内容が記載されたオーダーリストに従って、倉庫のピッキング作業を行う。
【0028】
作業進捗情報32は、初期オーダー情報31が表す作業順序の初期値、すなわち計画時の作業順序に対して、現時点での作業進捗状況を表す情報である。追加オーダー情報33は、初期オーダー情報31が表す作業順序の初期値に対して、後から追加された作業を表す情報である。これらの情報は、いずれも作業順序の変動要因を表す情報であるため、以下ではまとめて「変動要因情報」と呼ぶことがある。
【0029】
作業進捗情報32および追加オーダー情報33は、例えば
図2に示した初期オーダー情報31と同様のテーブルデータにより表すことができる。具体的には、作業進捗情報32は、例えば初期オーダー情報31を構成する複数のレコードのうち、すでに実施済みの作業に対応するレコードを抽出したものとして表すことができる。また、追加オーダー情報33は、追加された作業ごとにレコードを設定し、各レコードに初期オーダー情報31と同様のフィールドを設定したものとして表すことができる。
【0030】
なお、初期オーダー情報31、作業進捗情報32および追加オーダー情報33の各情報は、必ずしも上記のようなテーブル形式で表現する必要はない。例えば、これらの情報をテキストベースで記述してもよいし、他の表現形式としてもよい。
【0031】
計算時間指定情報34は、最適化装置100が作業順序の最適解を求めるために使用可能な計算時間を表す情報である。この計算時間には、例えば予めユーザにより指定された値が設定される。
【0032】
最適化パラメータ35は、最適化装置100が作業順序の最適解を求める際に使用可能な最適化手法やそのパラメータ値を表す情報である。
図3は、最適化パラメータ35の具体例を示す図である。
図3に示すように、最適化パラメータ35は、例えば手法351と、複数の項目からなるパラメータ情報352とを組み合わせて構成される。
【0033】
手法351は、最適化手法の種類を表す情報である。ここには、例えば遺伝的アルゴリズムを表す「GA」、ベイズ最適化を表す「BO」、強化学習を表す「RL」など、周知の様々な最適化手法を表す情報を記録することができる。パラメータ情報352は、手法351で指定された最適化手法において用いられるパラメータ値を表す情報である。
図3の例では、遺伝的アルゴリズム(GA)を用いる場合のパラメータ値として、交叉率3521、突然変異率3522、選択方法3523の各パラメータ値がパラメータ情報352に含まれている。
【0034】
なお、パラメータ情報352の内容は
図3のものに限らず、最適化手法の種類に応じて様々なパラメータ値をパラメータ情報352に含めることができる。例えば、最適化手法がベイズ最適化(BO)の場合、探索のepoch数や獲得関数などをパラメータ情報352において設定することが考えられる。また、パラメータ情報352の各パラメータ値は、ユーザが個別に細かく指定することもできるし、自動で選択されるように設定することも可能である。
【0035】
倉庫静的基礎情報36は、複数の自律体によりピッキング作業が実施される倉庫の作業環境を表す情報である。
図4は、倉庫静的基礎情報36の具体例を示す図である。
図4に示すように、倉庫静的基礎情報36は、例えば自律体パラメータ361、商品配置362、商品マスター363、倉庫レイアウト364の各テーブルデータを含んで構成される。
【0036】
自律体パラメータ361は、ピッキング作業を行う自律体の性能に関する情報であり、例えば自律体個数3611、最高速度3612、回転速度3613の各パラメータを組み合わせて構成される。自律体個数3611は自律体の個数を表し、最高速度3612は自律体が作業中に出すことのできる最高速度を表し、回転速度3613は自律体が作業中に回転するときの回転速度を表している。なお、自律体パラメータ361の内容は
図4のものに限らず、様々なパラメータ値を自律体パラメータ361に含めることができる。
【0037】
商品配置362は、倉庫内において自律体によるピッキング作業が行われる各商品の配置を表す情報である。商品配置362は、例えば棚ID3621、列ID3622、段ID3623、SKU3624の各フィールドを有する複数のレコードを組み合わせたテーブルデータにより表される。商品配置362のレコードは、在庫管理上の商品の種類ごとに設定される。
【0038】
棚ID3621には、各商品が置かれた棚を特定するIDが格納される。列ID3622と段ID3623には、各商品が置かれた棚の列と段をそれぞれ特定するIDが格納される。SKU3624には、各商品の種類を特定するIDが格納される。すなわち、商品配置362では、棚ID3621、列ID3622および段ID3623の値の組み合わせにより各商品の場所を指定し、SKU3624の値により商品の種類(SKU)を指定している。
【0039】
商品マスター363は、倉庫に格納される全商品の属性を表す情報である。商品マスター363は、例えばSKU3631、サイズ3632、重量3633、出荷頻度3634の各フィールドを有する複数のレコードを組み合わせたテーブルデータにより表される。商品マスター363のレコードは、在庫管理上の商品の種類ごとに設定される。
【0040】
SKU3631には、商品配置362のSKU3624と同様に、各商品の種類を特定するIDが格納される。サイズ3632、重量3633、出荷頻度3634には、各商品の属性を表す情報として、各商品の大きさ、重さ、出荷頻度がそれぞれ格納される。
【0041】
倉庫レイアウト364は、倉庫内の棚配置などのレイアウトを表す情報である。倉庫レイアウト364は、例えばx座標3641、y座標3642、ステータス3643、物体ID3644の各フィールドを有する複数のレコードを組み合わせたテーブルデータにより表される。倉庫レイアウト364のレコードは、倉庫内のレイアウトを定めるレイアウト要素ごとに設定される。
【0042】
x座標3641とy座標3642には、各レイアウト要素の倉庫内の位置を表す座標値が格納される。ステータス3643には、例えば「通路」、「棚」、「移動体」、「出口」など、各レイアウト要素の属性を表す情報が格納される。物体ID3644は、各レイアウト要素を特定する固有のIDが格納される。
【0043】
なお、
図4に示した倉庫静的基礎情報36は一例であり、これ以外にも任意の情報を組み合わせて、倉庫静的基礎情報36を構成することができる。また、本実施形態では複数の自律体によって行われる倉庫のピッキング作業の作業順序を最適化する場合の例を説明しているため、
図4のような倉庫静的基礎情報36により、作業実施場所である倉庫の作業環境を表すこととしたが、他の種類の作業について作業順序を最適化する場合は、倉庫静的基礎情報36に替えて、当該作業に応じた情報により作業環境を表すことが好ましい。すなわち、本実施形態の倉庫静的基礎情報36は、作業が実施される作業環境を表す作業環境情報の一例に相当し、これ以外にも様々な作業環境情報を用いて、作業順序を最適化する作業が実施される作業環境を表すことができる。
【0044】
計算履歴情報37は、過去に最適化装置100によって最適な作業順序が求められたときの計算履歴を表す情報である。これには、過去の最適化パラメータ35や倉庫静的基礎情報36の内容と、これらを用いて最適解を探索する際に計算された過去の各最適解候補の評価値とが含まれる。
【0045】
最適オーダー情報38は、最適化装置100によって求められた作業順序の最適解を表す情報である。
【0046】
本実施形態の最適化装置100では、初期オーダー情報31によって表されるピッキング作業の作業順序の初期値が、前述の変動要因情報(作業進捗情報32および追加オーダー情報33)に基づいて変更されることにより、最適化対象とする作業順序が決定される。そして、倉庫静的基礎情報36によって表される作業環境に基づいて、計算時間指定情報34や最適化パラメータ35に応じた探索処理を行うことにより、作業順序の最適解を探索し、最適オーダー情報38を決定する。これにより、複数の自律体によって行われる倉庫のピッキング作業の作業順序を最適化するようにしている。
【0047】
次に、最適化装置100の処理内容について、
図5~
図11を参照して以下に説明する。
図5は、本発明の一実施形態に係る最適化装置100の処理の流れを示すフローチャートである。最適化装置100は、中央処理装置1において所定のプログラムを実行することにより、
図5のフローチャートに示す処理を所定周期ごとに実行する。
【0048】
ステップS10において、中央処理装置1の最適化情報入力部11は、最適解を求めるための最適化情報を入力する。ここでは最適化情報として、二次記憶装置3に格納されている前述の各情報、すなわち初期オーダー情報31、作業進捗情報32、追加オーダー情報33、計算時間指定情報34、最適化パラメータ35、倉庫静的基礎情報36および計算履歴情報37を、二次記憶装置3から読み込んで主記憶装置2に格納する。
【0049】
ステップS20において、中央処理装置1の最適化対象更新部12は、ステップS10で入力した最適化情報に基づいて、作業進捗および追加オーダーが空であるか否かを判定する。作業進捗情報32が表す作業進捗が空、すなわち、作業進捗情報32において作業進捗状況が登録されておらず、かつ追加オーダー情報33が表す追加オーダーが空、すなわち、追加オーダー情報33において追加作業が登録されていない場合は、初期オーダー情報31が表す作業順序の初期値をそのまま最適化対象の作業順序として決定し、その内容を最適化対象オーダー41として出力してステップS40に進む。一方、作業進捗および追加オーダーの少なくとも一方が空ではない場合は、ステップS30に進む。
【0050】
ステップS30において、中央処理装置1の最適化対象更新部12は、ステップS10で入力された最適化情報に基づいて、最適化対象の作業順序を更新する。具体的には、初期オーダー情報31が表す作業順序の初期値に対して、最適化情報に含まれる変動要因情報が表す作業順序の変動要因、すなわち作業進捗情報32が表す作業進捗状況や、追加オーダー情報33が表す追加オーダーの内容を反映することにより、作業順序を初期値から変化させる。そして、変化後の作業順序を最適化対象の作業順序として決定し、その内容を最適化対象オーダー41として出力する。これにより、当初計画された作業順序を計画後の変動要因を考慮して更新し、更新後の作業順序を最適化対象として、その後の探索処理に用いることができる。なお、ここで決定される最適化対象オーダー41が表す最適化対象の作業順序は、変動要因情報が表す変動要因を所定のルールに従って作業順序の初期値に反映させたものであればよく、作業効率については考慮する必要がない。
【0051】
ステップS40において、中央処理装置1の探索部13は、ステップS10で入力された最適化情報と、ステップS20またはS30で最適化対象更新部12から出力された最適化対象オーダー41とに基づいて、作業順序の最適解を探索する探索処理を行う。なお、ステップS40で行われる探索処理の詳細については後述する。
【0052】
ステップS50において、中央処理装置1の最適解出力部14は、ステップS40の探索処理によって探索された最適解を出力する。ここでは、探索された最適解の内容に基づいて最適オーダー情報38を生成し、生成した最適オーダー情報38を二次記憶装置3に格納するとともに、出力装置5に出力してユーザに提示する。
【0053】
ステップS50の処理を実行したら、中央処理装置1は
図5のフローチャートに示す処理を終了する。
【0054】
図6は、
図5のステップS10で最適化情報を入力する際に出力装置5において表示される最適化情報入力画面の具体例を示す図である。
図6に示す最適化情報入力画面110は、最適化業務登録欄111、設定値入力欄112および実行ボタン113を含んで構成されている。
【0055】
最適化業務登録欄111は、最適化対象とする業務の種類をユーザが指定するための部位である。ユーザは、例えば作業順序を最適化して作業効率を向上した場合は、最適化業務登録欄111において「作業順序」の欄をチェックする。他にも、商品配置、走行レイアウト、自律体の巡回経路などを、最適化業務登録欄111において最適化対象に指定することができる。
【0056】
設定値入力欄112は、最適化を行う際の計算時間の値や、計算の終了判定を行う目標改善率、進捗オーダーや追加オーダーの有無などを指定するための部位である。倉庫や工場における作業の最適化を図るユーザは、
図6のような入力画面を用いて、最適化に必要な情報を最適化装置100に入力し、最適化を実行することができる。ここで指定された内容は、計算時間指定情報34や最適化パラメータ35に反映される。
【0057】
実行ボタン113は、最適化業務登録欄111や設定値入力欄112で指定された内容を最適化情報に反映し、最適化の実行を開始するための部位である。ユーザは、最適化情報入力画面110において実行ボタン113を操作することにより、ステップS10で最適化装置100に入力される最適化情報の内容を確定し、ステップS20以降の処理を最適化装置100に実行させることができる。
【0058】
図5のステップS10の処理において、ユーザは、例えば
図6の最適化情報入力画面110を介して、入力される最適化情報の内容を定めることができる。ただし、最適化情報の入力では、必ずしも最適化情報入力画面110のように可視化された入力画面を用いる必要はない。例えば、CUI(Character User Interface)コンソールへ情報を入力したり、設定ファイルに記入したりするなどの方法で、最適化情報の入力を行うことも可能である。これ以外にも、ステップS10では任意の方法により最適化情報の入力を行うことができる。
【0059】
図7は、
図5のステップS40で実行される探索処理の流れを示すフローチャートである。
【0060】
ステップS410において、探索部13は、
図5のステップS10で入力された最適化情報に含まれる最適化パラメータ35、倉庫静的基礎情報36および計算履歴情報37を用いて、環境変化量計算処理を行う。この環境変化量計算処理では、計算履歴情報37が表す過去の最適化パラメータ35や倉庫静的基礎情報36の内容と、現在の最適化パラメータ35や倉庫静的基礎情報36の内容との差分を求めることにより、過去のある時点を基準とした作業環境の変化量を求め、その計算結果を環境変化量42として出力する。なお、環境変化量計算処理の詳細については後述する。
【0061】
ステップS420において、探索部13は、ステップS410の環境変化量計算処理によって計算された環境変化量42に基づいて、環境変化量を可視化する。可視化された環境変化量は、出力装置5に出力されることでユーザに提示される。なお、このときの出力装置5の表示画面例については後述する。
【0062】
ステップS430において、探索部13は、ステップS410で計算された環境変化量42の値に基づいて、近傍解の再探索が必要か否かを判定する。ここでは、例えば環境変化量42の値を所定の基準値と比較し、環境変化量42の値が基準値未満であれば、近傍解の再探索は不要と判断してステップS440に進む。一方、環境変化量42の値が基準値以上であれば、
図5のステップS20またはS30で設定された最適化対象オーダー41に対して、近傍解の再探索を行う必要ありと判断し、ステップS450に進む。
【0063】
ステップS440において、探索部13は、作業順序の初期解を生成する。ここでは、例えば最適化対象オーダー41とは無関係にランダムな作業順序を設定することで、作業順序の初期解を生成する。なお、作業順序の初期解を生成できれば、任意の方法を用いてステップS440の処理を行うことができる。
【0064】
ステップS450において、探索部13は、ステップS410の環境変化量計算処理によって計算された環境変化量42と、最適化対象オーダー41とを用いて、近傍解生成処理を行う。この近傍解生成処理では、環境変化量42に基づいて最適化対象オーダー41が表す作業順序を変更することにより、最適化対象オーダー41に対する近傍解43を生成し、出力する。なお、近傍解生成処理の詳細については後述する。
【0065】
ステップS440またはS450の処理を実行したら、ステップS440で生成した初期解またはステップS450で生成した近傍解43を最適解候補に設定し、以降で説明するステップS460~S500のループ処理に移行する。
【0066】
ステップS460において、探索部13は、最適化パラメータ35や倉庫静的基礎情報36に基づいて、最適解候補の評価値を計算する。ここでは、例えばシミュレータを用いて、最適解候補を適用した場合の作業効率の度合いを示すスループット値を最適化パラメータ35や倉庫静的基礎情報36に基づいて計算することで、評価値の計算を行う。ここで計算される評価値とは、最適化の目的に対する最適解候補の優劣の程度を表す値であり、最適化対象に指定した業務の種類に応じてその内容が異なる。例えば、自律体の総移動距離の最小化を目的として最適化処理を行う場合は、自律体の総移動距離を評価値として計算すればよい。これ以外にも、任意の物理量や情報量を最適解候補の評価値として計算することができる。
【0067】
ステップS470において、探索部13は、ステップS460で評価値を計算する際に用いた最適化パラメータ35および倉庫静的基礎情報36と、計算された評価値とを、計算履歴情報37として二次記憶装置3に保存する。ここで保存された計算履歴情報37は、次回以降の処理において、前述のようにステップS410の環境変化量計算処理で利用される。
【0068】
ステップS480において、探索部13は、これまでに生成された最適解候補の中からいずれかを優良解として選択する。ここでは、ステップS460で計算した評価値に基づいて、最適化の目的に最も適合する評価値を有する最適解候補を優良解として選択する。なお、ステップS460~S500のループ処理を最初に実行する場合は、ステップS460で評価値を計算した最適解候補を、その評価値に関わらず優良解として選択すればよい。
【0069】
ステップS490において、探索部13は、ステップS460で選択した優良解に基づく変異解を生成する。ここでは、例えば優良解として選択した作業順序を部分的に変化させることで、変異解を生成することができる。なお、優良解に基づいて変異解を生成することができれば、任意の方法で変異解を生成することが可能である。
【0070】
ステップS500において、探索部13は、最適解の探索を終了するか否かを判定する。ここでは、計算時間指定情報34や最適化パラメータ35により指定された探索終了条件を満たすか否かを判定し、探索終了条件を満たさない場合は、ステップS460に戻ってステップS460~S500のループ処理を繰り返す。このとき探索部13は、前回ループ処理のステップS490で生成した変異解について、ステップS460で評価値を計算し、その評価値と、前回ループ処理のステップS480で選択した優良解の評価値とを比較して、いずれか一方を新たな優良解に選択する。一方、探索終了条件を満たした場合は、
図7のフローチャートに示す探索処理を終了し、
図5のステップS50に進む。このときステップS50では、
図7の探索処理においてステップS460~S500のループ処理が複数回実行された結果、ステップS480で最終的に選択された優良解が最適解として出力される。
【0071】
図7の探索処理では、上記のようにしてS460~S500のループ処理が繰り返されることにより、最適解候補(初期解または近傍解)について複数の変異解を生成し、これらの評価値をそれぞれ計算して、最適解候補または複数の変異解のいずれかを最適解として選択することができる。
【0072】
図8は、
図7のステップS410で実行される環境変化量計算処理の流れを示すフローチャートである。
【0073】
ステップS411において、探索部13は、
図5のステップS10で入力された最適化情報に含まれる最適化パラメータ35、倉庫静的基礎情報36および計算履歴情報37を用いて、過去のある時点での作業環境と現在の作業環境との類似度を計算する。ここでは、計算履歴情報37が表す過去の最適化パラメータ35や倉庫静的基礎情報36の内容と、現在の最適化パラメータ35や倉庫静的基礎情報36との差分を求め、その差分値から類似度を計算する。具体的には、例えば、過去の倉庫静的基礎情報36における商品配置362の内容と、現在の倉庫静的基礎情報36における商品配置362の内容とを、それぞれ配列と見なして、これらの配列間の順位相関係数を計算する。これにより、過去と現在での作業環境の変化の程度、つまり類似性を定量化することができる。なお、ここで計算される類似度は、作業環境の変化の程度を定量的に表すものであればよく、任意の計算方法を利用してステップS411の処理を行うことができる。例えば、自律体の速度のような環境変数の変化に対しては、差の絶対値、差の二乗、差の絶対値の対数を取るなどの差分計算方法が考えられる。
【0074】
ステップS412において、探索部13は、ステップS411で計算された類似度に基づいて、環境変化関数の計算を行う。ここでは、類似度の計算結果に加えて他の情報、例えば最適化パラメータ35や倉庫静的基礎情報36の各パラメータ値を用いて、所定の環境変化関数を適用することにより、総合的な環境変化量を計算する。例えば、過去と現在での各パラメータ値の差分に重みを付けて総和を取る線形的な計算方法や、各パラメータ値の差分の積を取るような非線形な計算方法などにより、環境変化量を求めることができる。このようにして計算されたスカラ値が、環境変化量42として出力される。
【0075】
ステップS412の処理を実行して環境変化量42を出力したら、探索部13は、
図8のフローチャートに示す環境変化量計算処理を終了し、
図7のステップS420に進む。
【0076】
図9は、
図7のステップS420で環境変化量を可視化する際に出力装置5において表示される環境変化量可視化画面の具体例を示す図である。
図9に示す環境変化量可視化画面120は、実線で示した環境変化量グラフ121と、破線で示した生産性変化グラフ122とを含んで構成されている。これらのグラフにおいて、横軸は時間を表し、縦軸は環境変化量42と最適解の評価値をそれぞれ表している。なお、前述のように最適解の評価値の情報は、
図7のステップS470で保存される計算履歴情報37に含まれている。
【0077】
環境変化量グラフ121は、環境変化量42の時系列変化を表しており、生産性変化グラフ122は、得られた最適解の評価値が表す生産性、例えば作業効率の度合いの時系列情報を表している。ユーザは、これらのグラフを見比べることで、環境変化量と最適解の生産性との対応関係を視覚的に把握し、環境変化量が目的とする生産性の変化を適切にとらえているかどうかを判断することができる。その結果、
図7のステップS450で実行される近傍解生成処理において、後述のステップS451で生成されるパラメータに対する環境変化量の反映方法を検討し、必要に応じてこれを調整することが可能となる。
【0078】
図10は、
図7のステップS450で実行される近傍解生成処理の流れを示すフローチャートである。
【0079】
ステップS451において、探索部13は、
図7のステップS410で計算された環境変化量42に基づいて、過去のある時点を基準とした現在の環境変化量を反映したパラメータを生成する。ここでは、例えば環境変化量42の値を反映して、後述のステップS452で最適化対象オーダー41に対して付与する摂動の大きさを定めるパラメータを生成する。
【0080】
ステップS452において、探索部13は、ステップS451で生成されたパラメータに基づき、前述の最適化対象オーダー41に対して摂動を付与する。ここでは、例えば最適化対象オーダー41が表す作業順序における各作業の順番を数値化するとともに、パラメータに応じた確率分布の幅を決定し、この確率分布の幅で各数値を変動させることにより、最適化対象オーダー41に足してパラメータに応じた摂動を付与することができる。なお、このときの確率分布には、例えば正規分布やその他の様々な分布を使用することができる。例えば正規分布を用いる場合は、環境変化量42の値に応じた分散をステップS451でパラメータとして生成することにより、ステップS452では、数値化した最適化対象オーダー41の各作業の順番をステップS451で生成された分散に応じて変化させ、摂動を付与することが可能となる。その他の確率分布を用いる場合も、分布の広がりを表現するパラメータに環境変化量42の値を当てはめることで、同様に最適化対象オーダー41に対する摂動を確率分布として扱うことができる。
【0081】
ステップS453において、探索部13は、ステップS452で摂動を付与された最適化対象オーダー41を並び替える。ここでは、例えば摂動付与後の最適化対象オーダー41の各数値を昇順でソートすることにより、環境変化量42を反映した最適化対象オーダー41の並び替えを行う。
【0082】
ステップS454において、探索部13は、ステップS453で並び替えた最適化対象オーダー41の各数値を再整数化することにより、環境変化量42を反映した並び替え後の作業順序を決定する。そして、決定した並び替え後の作業順序を近傍解43として出力し、
図10のフローチャートに示す近傍解生成処理を終了して、
図7のステップS460に進む。
【0083】
近傍解生成処理では、このようにして最適化対象オーダー41に対して環境変化量42に応じた摂動を与えることにより、最適化対象オーダー41を変更した近傍解43を生成することができる。このとき、最適化対象オーダー41が表す作業順序の各数値に対して割り当てる確率分布の種類やそのパラメータを変更することにより、多様な類似性を表現することができる。なお、ステップS454で出力される近傍解43は、一つであってもよいし、複数であってもよい、必要に応じて近傍解43を一つ生成して出力することも、あるいは多数生成して出力することも可能である。
【0084】
図11は、本実施形態の最適化装置100において最適化処理が実行された後に、作業環境の変化を受けて再度最適化処理を実行したときに、出力装置5において表示される探索状況画面の具体例を示す図である。
図11に示す探索状況画面130において、破線のグラフ131は過去の探索結果を示し、実線のグラフ132は今回の探索結果を示している。これらのグラフにおいて、横軸は探索に要した計算時間を表し、縦軸は最適解の評価値として求められた倉庫作業の生産性(例えばスループット値)をそれぞれ表している。なお、
図11の探索状況画面130では、最適化手法として遺伝的アルゴリズム(GA)を使用した場合の例を示しているが、ベイズ最適化(BO)やその他の最適化手法でも、同様の画面により探索状況を示すことができる。
【0085】
グラフ131では、過去の探索結果として、事前知識のない状態から、作業環境に応じた倉庫静的基礎情報36と初期オーダー情報31を含む最適化情報を本実施形態の最適化装置100に入力し、遺伝的アルゴリズム(GA)を用いて一定時間探索を行ったときの様子を示している。一方、グラフ132では、今回の探索結果として、グラフ131が示す過去の探索結果の情報を活用し、変化した作業環境の中で再度探索を行ったときの結果を示している。
【0086】
前述したように、本実施形態の最適化装置100では、探索部13において、
図8に示した環境変化量計算処理を実行することにより、過去の探索時点と現時点との間での環境変化の程度を表す環境変化量42を計算することができ、さらに、
図10に示した近傍解生成処理を実行することにより、環境変化量42をもとに近傍解43を生成することができる。そして、
図7に示した探索処理を実行することにより、近傍解に基づく複数の変異解を生成し、近傍解および複数の変異解の評価値をそれぞれ計算し、これらの評価値に基づいて近傍解または複数の変異解のいずれかを最適解として選択することができる。これにより、作業環境の変化に応じて過去の探索結果を効率的に更新し、現時点での作業環境に対する最適解を得ることができる。
【0087】
なお、
図11における曲線133は、近傍解43の生成時に最適化対象オーダー41に対して付与した摂動の分布を示している。この曲線133が表す摂動の分布は、過去と今回の作業環境変化の程度を加味した上で、過去の探索結果を今回の探索に反映する程度を概念的に示している。
図7に示した探索処理では、計算履歴情報37が表す過去の探索結果による最適解から近傍解43を生成し、遺伝的アルゴリズム(GA)などの最適化手法を用いて、新たな最適解の探索を行う。これにより、最初から探索を再実行する場合と比べて、環境の変化を反映しつつ過去の探索結果情報を流用し、再探索を効率的に実行することができる。
【0088】
以上説明した本発明の一実施形態によれば、以下の作用効果が得られる。
【0089】
(1)最適化装置100は、複数の自律体を用いて行われる作業の順序を最適化する装置であって、作業に対して計画された作業順序の初期値を表す初期オーダー情報31と、作業順序の変動要因を表す変動要因情報(作業進捗情報32および追加オーダー情報33)と、作業が実施される作業環境を表す作業環境情報(倉庫静的基礎情報36)と、を含む最適化情報を入力する最適化情報入力部11と、初期オーダー情報31および変動要因情報に基づいて最適化対象とする作業順序を表す最適化対象オーダー41を決定する最適化対象更新部12と、作業環境情報および最適化対象オーダー41に基づいて作業順序の最適解を探索する探索部13と、探索部13により探索された最適解を出力する最適解出力部14と、を備える。このようにしたので、複数の自律体を用いて行われる作業の順序を、作業環境の変化に応じて効率的に最適化することができる。
【0090】
(2)探索部13は、作業環境情報に基づく作業環境の変化に応じて最適化対象オーダー41を変更した近傍解43を生成し(ステップS450)、近傍解43を用いて最適解を探索する(ステップS460~S500)。このようにしたので、最適化対象オーダー41を利用して作業環境の変化に応じた近傍解43を生成し、この近傍解43を用いて最適解を効率的に探索することができる。
【0091】
(3)探索部13は、作業環境情報に基づいて作業環境の変化量を表す環境変化量42を計算し(ステップS410)、この環境変化量42に基づいて近傍解43を生成する(ステップS450)。具体的には、環境変化量42に応じた摂動を最適化対象オーダー41に付与して最適化対象オーダーを変更することにより、近傍解43を生成する(ステップS451~S454)。このようにしたので、最適化対象オーダー41に対して作業環境の変化量を適切に反映した近傍解43を生成することができる。
【0092】
(4)探索部13は、環境変化量42を可視化してユーザに提示する(ステップS420)。このようにしたので、過去のある時点を基準として現在の作業環境がどの程度変化したかを、ユーザに知らせることができる。
【0093】
(5)探索部13は、環境変化量42に基づいて近傍解43を生成するか否かを判定し(ステップS430)、近傍解43を生成しないと判定した場合(ステップS430:NO)は、最適化対象オーダー41とは無関係に設定した初期解を近傍解43の代わりに用いて最適解を探索する(ステップS440、S460~S500)。このようにしたので、過去のある時点に対する現在の作業環境の変化が小さく、そのため近傍解43を生成しても元の最適化対象オーダー41との差が小さいと考えられる場合は、近傍解43の代わりに初期解を用いることで、最適解を確実に探索することができる。
【0094】
(6)探索部13は、近傍解43に基づく複数の変異解を生成し(ステップS490)、近傍解43および複数の変異解の評価値をそれぞれ計算し(ステップS460)、これらの評価値に基づいて近傍解43または複数の変異解のいずれかを最適解として選択する(ステップS480)。このようにしたので、最適化の目的に対して最も適切な作業順序を最適解として得ることができる。
【0095】
(7)最適解出力部14は、例えば
図11の探索状況画面130を出力装置5に表示することで、作業環境の変化に応じた最適解の評価値の変化の様子を可視化してユーザに提示する。このようにしたので、作業環境の変化に応じて最適解の評価値がどのように変化したのかを、ユーザに知らせることができる。
【0096】
なお、本発明は上記実施形態や変形例に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。また、各実施形態や変形例は任意に組み合わせて実施することも可能である。
【0097】
上記の実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0098】
1…中央処理装置、2…主記憶装置、3…二次記憶装置、4…入力装置、5…出力装置、6…バス、11…最適化情報入力部、12…最適化対象更新部、13…探索部、14…最適解出力部、31…初期オーダー情報、32…作業進捗情報、33…追加オーダー情報、34…計算時間指定情報、35…最適化パラメータ、36…倉庫静的基礎情報、37…計算履歴情報、38…最適オーダー情報、41…最適化対象オーダー、42…環境変化量、43…近傍解、100…最適化装置