JP7094839B2 - 解探索装置 - Google Patents

解探索装置 Download PDF

Info

Publication number
JP7094839B2
JP7094839B2 JP2018165076A JP2018165076A JP7094839B2 JP 7094839 B2 JP7094839 B2 JP 7094839B2 JP 2018165076 A JP2018165076 A JP 2018165076A JP 2018165076 A JP2018165076 A JP 2018165076A JP 7094839 B2 JP7094839 B2 JP 7094839B2
Authority
JP
Japan
Prior art keywords
node
search
solution
evaluation
evaluation value
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.)
Active
Application number
JP2018165076A
Other languages
English (en)
Other versions
JP2020038478A5 (ja
JP2020038478A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018165076A priority Critical patent/JP7094839B2/ja
Priority to US16/296,513 priority patent/US20200074308A1/en
Priority to EP19161882.6A priority patent/EP3621001A1/en
Publication of JP2020038478A publication Critical patent/JP2020038478A/ja
Publication of JP2020038478A5 publication Critical patent/JP2020038478A5/ja
Application granted granted Critical
Publication of JP7094839B2 publication Critical patent/JP7094839B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)

Description

本発明は、木探索を用いた解探索に関する。
最適化問題は、設定された制約条件を満たしつつ、一つまたは複数の目的関数が最善となる最適解の一つを導きだす問題である。人工知能の研究分野では、深層学習が代表する機械学習を用いる方式が主流である一方、業務現場では制約条件や目的関数が頻繁に変更されるため、機械学習のためのデータ蓄積が困難であり、または変更するたび機械学習が完了までリードタイムが発生する課題が存在するため、シミュレーションを用いた木探索最適化計算が実用化されている。
業務現場の課題を解ける最適化計算では、一般的に、最適化問題の解空間を表す探索木の幅(木の内部ノードが持つ子ノードの数)が大きいと同時に、解を取得する時間に制限が存在する。そのため、膨大な計算時間を費やして論理的な最適解を解けることではなく、指定された計算時間内に算出する解の精度を向上させることが重要である。
限られた計算時間内に算出する解の精度を向上させる技術として、木探索の途中で特定のノードを探索木から切り離す枝刈がある。特許文献1には、ノードからシミュレーションを実行し、その結果をもとに評価関数を用いて評価値を算出し、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部を含む解探索装置が開示されている。
国際公開第2014/115232号
しかしながら、特許文献1に開示されている解探索技術では、枝刈りの精度が解の精度に影響するため、精度の高い枝刈用の評価関数を作成する必要がある。そのため、公知の技術では、高精度の評価関数を作成することが困難、または、高精度の評価関数は多くの場合複雑な計算が必要であり計算時間がかかるため、限られた計算時間内で探索できる解空間の範囲が狭くなる。
本発明は、上記の点を鑑みてなされたものであり、限られた計算時間内に木探索を用いて解を算出することを目的とする。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下の通りである。
探索木を用いた解探索を行う解探索装置は、中止条件を満たすまで、選択肢に基づいてノードを作成する探索木展開部と、第1評価方法を用いて葉ノードに対する評価値を算出する評価算出部と、下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定する探索解決定部と、を含む。
または、最適化探査システムは、制御対象を制御する制御装置と、前記制御装置から前記制御対象の局面情報を取得し、前記局面情報に基づき前記探索木を用いた解探索を行う上記解探索装置と、を含む。
または、1以上の記憶装置と、前記1以上の記憶装置に格納されるプログラムに従って動作する1以上のプロセッサと、を含む計算機システムが実行する、探索木を用いた解探索方法は、前記プロセッサが、中止条件を満たすまで、選択肢に基づいてノードを作成し、前記プロセッサが、第1評価方法を用いて葉ノードに対する評価値を算出し、前記プロセッサが、下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定する、ことを含む。
または、計算機に探索木を用いた解探索を実行させるプログラムは、前記計算機に、中止条件を満たすまで、選択肢に基づいてノードを作成し、前記プロセッサが、第1評価方法を用いて葉ノードに対する評価値を算出し、前記プロセッサが、下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定する、ことを実行させる。
本発明によれば、限られた計算時間内に木探索を用いて解を算出することができる。
前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例におけるシステム構成例である。 実施例における解探索装置の構成例である。 実施例における解探索装置のノード評価情報テーブルの例である。 実施例における解探索装置の探索解評価情報テーブルの例である。 実施例における解探索装置の構成情報テーブルの例である。 実施例における解探索装置の局面情報テーブルの例である。 実施例における解探索装置の探索情報テーブルの例である。 実施例における解探索装置の最適化計算時に展開する探索木のイメージの例である。 実施例における解探索装置の特徴量情報テーブルの例である。 実施例における解探索装置の探索木展開プログラムの処理フローの例である。 実施例における解探索装置の評価算出プログラムの処理フローの例である。 実施例における解探索装置の探索解決定プログラムの処理フローの例である。
以下、本発明の実施例を、図面を用いて説明する。なお、以下の実施例においては便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。
また、以下の実施例において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。さらに、以下の実施例において、その構成要素(要素ステップなどを含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではない。
(投入順序最適化探査システム)
本実施例では、解探索装置と、操作装置と、制御装置とを含む投入順序最適化探査システムにおいて、解探索装置が、制御装置から取得した局面情報に基づいて、探索木を用いた解探索を行い、操作装置から入力した制約条件を満たす個体投入順序を決定し、制御装置に最適化された制御指令を提示する。解探索装置は、中止条件を満たすまで、選択肢に基づいてノードを作成する探索木を展開し、第1評価方法(第1評価関数)を用いて葉ノードに対する評価値を算出し、下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定する探索解を決定する。
また、解探索装置は、探索解を決定する過程において、根ノードの複数の子ノードの評価値が最高値である場合に、第1評価方法と異なる第2評価方法(第2評価関数)を用いて複数の子ノードの評価値を更新し、探索の解を決定する。さらに、解探索装置は、探索木を展開する過程において、新たなノードを作成する時、その新たなノードの特徴量を計算し、すでに作成したノードの特徴量と比較し、同じ特徴量が存在する場合、ノードが重複していると判定して、その新たなノードを作成しない。
本実施例のシステム構成は、図1に示すように、解探索装置101と、操作装置102と、通信路103と、制御装置104と、制御対象である個体投入装置110と、から構成される。図1に示す個体投入装置の例は、入口ライン105と、入口搬送装置106と、作業ライン107と、出口搬送装置108と、出口ライン109とを含む。個体投入装置110内の丸(○)は、個体を示す。個体が個体投入装置110を通過することにより、それらの出口ライン109の先の投入順序や時間間隔などが調整される。
図1では、入口ライン105と出口ライン109がそれぞれ一つ存在する個体投入装置の例を示すが、いずれかまたはその両方が複数存在することも可能である。また、図1では、一つの作業ライン107が複数本の直線ラインから構成された例を示すが、作業ライン107が一本の環状ライン、または一本若しくは複数本のラインから構成されることも可能である。
ラインは、コンベアにより一連化した個体の作業装置や移動装置でもよいし、作業員によりまたは自動的に個体の作業や移動を行う作業区域でも構わない。このような個体投入装置110は、製造業務の現場において、例えば生産制約が異なる工程と工程の間における仕掛品の順序の調整に活用されている。また、個体投入装置110は、物流業務の現場において、例えば搬送ロボットにより個体を搬送する自動倉庫の入庫と出庫に活用されている。
解探索装置101は、制御装置104から取得した局面情報(すなわち個体投入装置110内の個体の位置情報)に基づいて、操作装置102から入力された制約条件に応じた個体投入順序を決定するために最適化された制御指令を、制御装置104に与える。操作装置102は、最適化計算に必要な制約条件及び構成情報を含むパラメータを解探索装置101に入力する。
通信路103は、解探索装置101と、操作装置102と、制御装置104との間で、リアルタイムの情報のやり取りを可能とする通信装置の集合である。通信路103は、一つの拠点内に閉じるLAN(Local Area Network)でもよいし、複数の拠点や地域をつなげるWAN(Wide Area Network)でも構わない。
制御装置104は、個体投入装置110から、個体及び個体投入装置110の状態を示す状態信号を取得する。制御装置104は、状態信号に基づいて、局面情報と、入口搬送装置106及び出口搬送装置108の稼働情報と、を作成する。稼働情報は、動作状態及び指示待ち状態を含む複数の稼働状態のいずれかを示す。制御装置104は、入口搬送装置106と出口搬送装置108とのいずれかが指示待ちの状態であると判定した場合、局面情報を解探索装置101に送信する。制御装置104は、解探索装置101から最適化された制御指令を受信し、対応する指令信号を入口搬送装置106と出口搬送装置108とに送信する。
図2に本実施例の解探索装置101の構成例を示す。本実施例における解探索装置101の機能は、一般的なコンピュータの外部記憶装置205にプログラムソフトウェアの形で格納され、メモリ201上に展開されてプロセッサであるCPU202により実行される。外部記憶装置205、メモリ201及びそれらの組み合わせは記憶装置であり、ソフトウェアを格納する記憶媒体を含む。また、解探索装置101は入出力インターフェース203、通信インターフェース204、またはその両方を介して通信路103と接続する。
解探索装置101のメモリ201は、操作装置102から設定パラメータを受信するパラメータ設定プログラム211と、操作装置102または制御装置104から構成情報を受信する構成情報入力プログラム212と、を格納する。メモリ201は、さらに、制御装置104から探索要求を受信し最適化探索を行う探索要求受信プログラム213と、中止条件を満たすまで選択肢に基づいてノードを作成する探索木展開プログラム214と、を格納する。
メモリ201は、さらに、予め定められた評価関数(評価方法)を用いて葉ノードに対する評価値を算出する評価算出プログラム215と、予め定められた条件(方法)で上位ノードの評価値を逐次更新し、さらに、予め定められた探索解決定関数(探索解決定方法)を用いて根ノードの子ノードから探索の解を決定する探索解決定プログラム216とを格納する。
解探索装置101のメモリ201は、さらに、葉ノードに対する評価関数(評価方法)のパラメータを格納するノード評価情報テーブル221と、根ノードの子ノードに対する探索解決定関数(探索解決定方法)のパラメータを格納する探索解評価情報テーブル222を格納する。ノード評価情報テーブル221は、探索解を決定するための制約条件を示し、探索解評価情報テーブル222は、探索解を決定するための調整条件(調整パラメータ)を示す。
メモリ201は、さらに、制御対象である個体投入装置110の構成情報を格納する構成情報テーブル223と、制御対象である個体投入装置110の局面情報を格納する局面情報テーブル224とを格納する。さらに、メモリ201は、木探索の情報を格納する探索情報テーブル225と、探索木のノードの特徴量を格納する特徴量情報テーブル226とを格納する。
なお、本実施例の解探索装置101では上記プログラム及び上記情報を単一のコンピュータのメモリ上に格納する構成を示す。しかし、上記情報を外部記憶装置に格納し、上記プログラムの処理のつど上記情報を上記外部記憶装置から読み込み、それぞれの処理が完了するごとに外部記憶装置に格納する構成を取ることも可能である。
また、上記プログラム及び上記情報を複数のコンピュータに分散して格納することも可能である。例えば上記情報をそれぞれデータベースのテーブルとして実装して解探索装置101とは異なるデータベースサーバに格納し、解探索装置101上で実行された上記プログラムがデータベースサーバ上の上記情報を参照及び更新することも可能である。以上のような上記情報の格納方法の違いは、本発明の本質には影響を与えない。
図3は、解探索装置101が保持するノード評価情報テーブル221の例である。ノード評価情報テーブル221は、ノードを評価するための情報(ノード評価情報)を格納している。具体的には、ノード評価情報テーブル221は、ノードの評価関数(評価方法)のパラメータ格納し、スペック情報301、最小間隔302、及び重み303を有する。
スペック情報301は、個体のスペック(個体間で共通する属性を表す識別子であり、機種や型番やモデルとも呼ばれる)を示す。最小間隔302は、特定スペックを持つ個体の投入に要求される最小間隔を示す。重み303は、レコード(エントリ又は行)の重みを示す。図3は、最小間隔302が、特定スペックを持つ個体間の個体数で表わされる例を示す。その他、最小間隔302を時間や空間の長さで表すことも可能である。
図4は、解探索装置101が保持する探索解評価情報テーブル222の例である。探索解評価情報テーブル222は、制約条件(ノード評価情報テーブル221が示す)に対する探索解を評価するための情報(探索解評価情報)を格納している。具体的には、探索解評価情報テーブル222は、探索解決定関数(探索解決定方法)のパラメータ格納し、隣接する個体ペアの先行する個体のスペックを示す先行スペック401と、後続の個体のスペックを示す後続スペック402と、隣接した個体ペアのスコアを示すスコア403とを有する。
図5は、解探索装置101が保持する構成情報テーブル223の例である。構成情報テーブル223は、構成情報テーブル223は、制御対象である個体投入装置110の構成を示す。構成情報テーブル223は、制御対象である個体投入装置110を構成するラインの識別子を示すラインID501と、ラインの種別を示すライン種別502と、ラインの長さを示すライン長さ503とからなる。
図5は、ライン種別502に入口ラインと、作業ラインと、出口ラインとの3種類のラインが存在する例を示すが、その他の種別のラインが存在することも可能である。また、図5は、ラインの中に存在する個体の数の最大値をライン長さ503として扱う例を示す。その他、ライン長さ503がラインの物理空間におけるサイズであることも可能である。
図6は、解探索装置101が保持する局面情報テーブル224の例である。局面情報は、個体投入装置110に存在する個体の識別子を示す個体ID601と、その個体のスペックを示すスペック情報602と、個体が存在するラインの識別子を示すラインID603と、個体がラインに存在する位置を示すライン内の位置604とからなる。図6は、ラインにおいて個体が存在しえる場所が固定されて、ライン内の位置604がその場所の番号である例を示す。その他、ライン内の位置604が、個体が存在する位置の物理座標であることも可能である。
図7は、解探索装置101が保持する探索情報テーブル225の例である。探索情報テーブル225は、ノードID701と、親ノードID702と、局面情報703と、深度704と、最適動作705と、評価値706とを有する。ノードID701は、探索木のノードの識別子を示す。親ノードID702は、ノードの探索木における親ノードの識別子を示す。局面情報703は、個体投入装置110のシミュレーションで生成したノードの局面情報を示す。
深度704は、該当ノードから探索木における根ノードまでのエッジ数を示す。最適動作705は、子ノードの局面から選択する最適動作を示す。評価値706は、ノードの評価値を示す。局面情報703は、局面情報テーブル224が格納する情報と同種の情報(601~604)を格納する。図7は、最適動作705が入口搬送装置106の搬送先のラインIDと出口搬送装置108の搬送元のラインIDの組合せの例を示す。その他、最適動作705が制御対象の動作時刻、制御対象に対する制御信号、またはその両方も可能である。
図8は、探索情報テーブル225が保持する探索情報の探索木のイメージを示す。図8は、根ノード801と、複数の中間ノード802と、複数の葉ノード803で構成されている。図8において、複数の中間ノードのうち一つの中間ノードが符号802で指示されており、複数の葉ノードのうち一つの葉ノードが符号803で指示されている。また、根ノード801、一部の中間ノード802及び一部の葉ノード803のノードID701が、例として、示されている。
探索木のノードは、個体投入装置110の局面(状態)を示す。根ノードは、個体投入装置110の最新(現在)の局面を示す。探索木のエッジは、親ノードの局面において実行される動作を示す。子ノードは、親ノードの局面においてエッジが示す動作が実行された結果の局面を示す。
図9は、解探索装置101が保持する特徴量情報テーブル226の例である。特徴量情報テーブル226は、局面情報の数値化結果を示す特徴量901と、その特徴量が対応するノードの識別子を示すノードID902とを有する。
解探索装置101が実行するパラメータ設定プログラム211は、入出力インターフェース203、通信インターフェース204、またはその両方を介して、操作装置102と情報のやり取りを行い、解探索に必要なパラメータ情報を取得する。そして、パラメータ設定プログラム211は、取得したパラメータ情報をノード評価情報テーブル221と探索解評価情報テーブル222とにそれぞれ格納する。
解探索装置101が実行する構成情報入力プログラム212は、入出力インターフェース203、通信インターフェース204、またはその両方を介して、操作装置102または制御装置104と情報のやり取りを行い、制御対象である個体投入装置110情報を取得する。そして、構成情報入力プログラム212は、取得した構成情報を構成情報テーブル223に格納する。
解探索装置101が実行する探索要求受信プログラム213は、入出力インターフェース203、通信インターフェース204、またはその両方を介して、制御装置104と情報のやり取りを行い、制御対象である個体投入装置110の最新の局面情報を含む最適解探索要求を受信する。
探索要求受信プログラム213は、受信した局面情報を局面情報テーブル224に格納した上、空白の探索情報テーブル225に根ノードのレコードを作成する。探索要求受信プログラム213は、順番に探索木展開プログラム214と、評価算出プログラム215と、探索解決定プログラム216とを動作させ、制約条件を満たす個体投入順序を決定するために最適化された制御指令を算出する。さらに、探索要求受信プログラム213は、入出力インターフェース203、通信インターフェース204、またはその両方を介して、制御装置104と情報のやり取りを行い、最適化された制御指令を送信する。
図10に、解探索装置101が実行する探索木展開プログラム214の具体的な処理フローの例を示す。ステップ1001において、解探索装置101は、探索要求受信プログラム213が制御装置104から最適解探索要求を受信することをトリガに、探索木展開プログラム214を動作させる。ステップ1002において、解探索装置101は、探索情報テーブル225から順番に一つの未展開ノードのレコードを抽出する。
次に、ステップ1003において、解探索装置101は、抽出したレコードの深度704が予め決まめられた最大深度(中止条件)に達したかどうかを判定する。なお、展開の中止条件は、予め決められた規定の数値に代えて、出口ライン109の個体数に応じて決定されてもよい。
最大深度に達した場合(1003:Y)、解探索装置101は、該当レコードの展開を完了し、ステップ1010に進む。最大深度に達していない場合(1003:N)、解探索装置101は、ステップ1004に進み、構成情報テーブル223を参照して入口搬送装置106の可能な動作を一つ選定する。ステップ1005において、解探索装置101は、出口搬送装置108の可能な動作を一つ選定する。構成情報テーブル223は、入口搬送装置106及び出口搬送装置108の可能な動作を示す。
次に、ステップ1006において、解探索装置101は、選定された入口搬送装置106と出口搬送装置108の動作により形成される個体投入装置110の新たな局面をシミュレーションし、その局面の特徴量を計算する。解探索装置101は、計算結果の特徴量が特徴量情報テーブル226に存在するかどうかを判定する。局面の特徴量の計算方法の一例として、シミュレーションで得られた局面情報のデータをハッシュ関数を使って計算する方法がある。公知のハッシュ関数の例は、MD5やFNV-1aなどがある。
計算結果の特徴量が特徴量情報テーブル226に存在する場合(1006:Y)、すでに計算した局面と同じ局面にたどり着いたことを意味するため、解探索装置101はステップ1008に進む。特徴量が存在しない場合(1006:N)、解探索装置101はステップ1007に進み、シミュレーションで得られた局面情報に基づいて、探索情報テーブル225に新たなノード情報(レコード)を作成する。
作成されたノード情報において、ノードID701は新規の識別子、親ノードID702はステップ1002において抽出したレコードのノードID701である。局面情報703はシミュレーションで得られた局面情報、深度704は抽出したレコードの深度704に1を足したもの、その他の項目は空欄である。解探索装置101は、さらに、ノード情報を作成後、特徴量情報テーブル226に、計算結果の特徴量と作成されたノード情報のノードID701とを格納する。
ステップ1008において、解探索装置101は、出口搬送装置108の可能な動作を全て選定されたかどうかを判定する。完了していない場合(1008:N)、解探索装置101は、ステップ1005に戻り、次の可能な動作を選定する。完了した場合(1008:Y)、解探索装置101は、ステップ1009に進み、入口搬送装置106の可能な動作を全て選定されたかどうかを判定する。
完了していない場合(1009:N)、解探索装置101は、ステップ1004に戻り、次の可能な動作を選定する。完了した場合(1009:Y)、解探索装置101は、ステップ1010に進み、該当レコードの展開を完了し、探索情報テーブル225にすべてのノードの探索木展開が完了したかどうかを判定する。
完了していない場合(1010:N)、解探索装置101は、ステップ1002に戻り、次の未展開のノードを抽出する。完了した場合(1010:Y)、解探索装置101は、ステップ1011に進み、探索木展開プログラム214を終了し、評価算出プログラム215を動作させる。
図11に、解探索装置101が実行する評価算出プログラム215の具体的な処理フローの例を示す。ステップ1101において、解探索装置101は、探索木展開プログラム214の終了をトリガに、評価算出プログラム215を動作させる。ステップ1102において、解探索装置101は、探索情報テーブル225から未評価の葉ノードのレコードを順番に一つ抽出する。
次に、ステップ1103において、解探索装置101は、抽出したレコードの評価値706を初期化し、0にする。そして、ステップ1104において、解探索装置101は、レコードの局面情報703に基づいて、出口ライン109(局面情報703におけるラインIDが「LE」)にある個体を搬送順序における前から順番に一つ抽出する。さらに、ステップ1105において、解探索装置101は、ノード評価情報テーブル221から、抽出した個体のスペック情報に対応するレコードを抽出する。
ステップ1106において、解探索装置101は、抽出された個体と同じスペックを持ち搬送順序における前の個体からの間隔が、最小間隔302以上かどうかを判定する。間隔が最小間隔302以上の場合(1106:Y)、解探索装置101は、ステップ1107に進み、葉ノードのレコードの評価値706に、ノード評価情報テーブル221において対応する重みを足す。間隔が最小間隔302未満の場合(1106:N)、解探索装置101は、ステップ1108に進む。
ステップ1108において、解探索装置101は、出口ライン109にある全ての個体に対する評価が完了したかどうかを判定する。完了していない場合(1108:N)、解探索装置101は、ステップ1104に戻り、次の個体を抽出する。完了した場合(1108:Y)、解探索装置はステップ1109に進む。このように、解探索装置101は、出口ライン109における状態をノード評価情報テーブル221に基づき評価する。
ステップ1108までの計算を、葉ノードの局面において、出口ラインにある個体が、(A001-011、A003-123、A001-012、…)の順で並んでいる場合の計算例で説明する。まずは個体「A001-011」が抽出され、それに対応するノード評価情報(A001、3、5)が抽出される。個体「A001-011」が先頭の個体であるため、前にスペックA001の個体が存在せず、間隔が最小間隔である3以上であるため、評価値が5になる。
同様に、「A003-123」に対する評価の結果、評価値に1が足されて、6になる。次に、個体「A001-012」が抽出されるが、その前に同様にスペックA001の個体「A001-011」との間隔が1であり、最小間隔3を満たしていないため、評価値に5が足されず、6のままになる。このように、出口ラインにある最後の個体まで、計算が行われる。
ステップ1109において、解探索装置101は、全ての葉ノードのレコードに対して、評価完了したかどうかを判定する。完了していない場合(1109:N)、解探索装置101は、ステップ1102に戻り、次の葉ノードのレコードを抽出する。完了した場合(1109:Y)、解探索装置101は、ステップ1110に進み、評価算出プログラム215を終了し、探索解決定プログラム216を動作させる。
図12に、解探索装置101が実行する探索解決定プログラム216の具体的な処理フローの例を示す。ステップ1201において、解探索装置101は、評価算出プログラム215の終了をトリガに、探索解決定プログラム216を動作させる。ステップ1202において、解探索装置101は、探索情報テーブル225から、評価値706が確定している評価済みのノードのレコードを一つ抽出する。最初に選択されるノードは葉ノードである。
次に、ステップ1203において、解探索装置101は、抽出したノードの評価値706と、そのノードの親ノードの評価値706と比較し、抽出したノードの評価値が親ノードのより大きいかどうかを判定する。解探索装置101は、親ノードを初めて選択する場合、そのノード評価値706を初期化して、0にした後、抽出したノードの評価値706と比較する。
抽出したノードの評価値706が親ノードの評価値706以下である場合(1203:N)、解探索装置101は、ステップ1205に進む。抽出したノード(子ノード)の評価値706が親ノードの評価値706より大きい場合(1203:Y)、解探索装置101は、ステップ1204に進み、親ノードのレコードの評価値706を抽出したノードの評価値706に更新し、親ノードのレコードの最適動作705を、抽出したノードの局面になる動作に更新する。
次に、ステップ1205において、解探索装置101は、全ての評価済みノードの処理が完了したかどうかを判定する。完了していない場合(1205:N)、解探索装置101は、ステップ1202に戻り、次のノードを抽出する。完了した場合(1205:Y)、解探索装置101は、ステップ1206に進み、根ノードの子ノードのレコードを全て抽出し、その評価値706を集計する。
ステップ1207において、解探索装置101は、評価値の集計結果において、最高評価値になる子ノードが複数存在するかどうか判定する。複数存在しない場合(1207:N)、解探索装置101は、ステップ1211に進む。複数存在する場合(1207:Y)、解探索装置101は、ステップ1208に進み、評価値706が最高評価値の子ノードのレコードを一つ抽出する。
次に、ステップ1209において、解探索装置101は、探索解評価情報テーブル222の情報を用いて、抽出した(子ノードの)レコードの評価値を更新する。更新方法の一例は、抽出したレコードの局面情報703から、作業ライン107で隣接する個体のペアを一つずつ抽出し、探索解評価情報テーブル222に基づいて、評価値706に抽出した個体のペアのスコア403を加算する。
このように、解探索装置101は、探索解評価情報テーブル222に基づいて作業ライン107の状態を評価する。作業ライン107は、出口ライン109より前の段階(搬送における工程)である。探索解評価情報テーブル222は、出口ライン109に対する制約条件の観点からより好ましい状態に対してより高い評価を与える。
さらに、ステップ1210において、解探索装置101は、全ての最高評価値を持つ子ノードの処理が完了したかどうかを判定する。完了していない場合(1210:N)、解探索装置101は、ステップ1208に戻り、次の最高評価値を持つ子ノードを抽出する。完了した場合(1210:Y)、解探索装置101は、ステップ1211に進み、更新された子ノードの評価値を再度集計し、根ノードの最適動作705を更新された最高評価値の子ノードの局面になる動作に更新する。最後に、解探索装置101は、根ノードの最適動作705を決定された最適解と決定し、ステップ1212に進み探索解決定プログラム216を終了する。
このように、本実施例では、解探索装置101と、操作装置102と、制御装置104とを含む投入順序最適化探査システムにおいて、解探索装置101が、制御装置104から取得した局面情報に基づいて、探索木を用いた解探索を行い、操作装置102から入力された制約条件(ノード評価情報テーブル221に示される)を満たす個体投入順序を決定し、制御装置104に最適化された制御指令を与える。
図11及び12を参照して説明したように、解探索装置101は、中止条件を満たすまで、選択肢に基づいて探索木を展開してノードを作成し、所定の評価方法(ノード評価情報テーブル221がそのパラメータを示す)を用いて葉ノードに対する評価値を算出し、上位ノードの評価値を逐次更新し、探索の解を決定する。これにより、限られた計算時間内に木探索を用いて解を算出することができる。探索木の展開と解の探索とが分離されているため、制御対象に応じて容易に設計変更が可能である。
実施例の最適化計算は、探索木の葉ノードの評価関数(ノード評価情報、図3)のほか、根ノードの子ノードに対して別の評価値(探索解評価情報、図4)も加味して、探索解を決定する。これにより、直観かつ計算複雑度の低い評価関数(評価方法)を使っても、限られた計算時間内に算出する解の精度を向上させることが可能となる。また、同一最高値を有する子ノードを選択して評価値を調整することで、解の特定の処理時間を短縮しつつ適切な解を選択できる。
また、探索木を展開する過程において、新たなノードを作成する時、新たなノードがすでに作成されているノードと重複しているかをチェックし、新たなノードがすでに作成されているノードと重複している場合、新たなノードの作成を省略する。これにより、探索木の規模が削減され、限られた計算時間内に算出する解の精度向上につながる。さらに、新しいノードの特徴量を作成し、今まで作成したノードの特徴量と比較し、同じ特徴量が存在する場合、ノードが重複していると判定する。これにより、重複チェックに要する処理時間を低減できる。
なお、探索解評価情報を使用した解探索は省略してもよい。例えば、同一最高値の複数の子ノードが存在する場合、予め決められた方法で一つの子ノードを同一最高値の複数の子ノードから選択することができる。また、解探索装置は、上記例と異なる方法により、評価値を調整(更新)する根ノードの子ノードを選択してもよい。たとえば、根ノードの全ての子ノードの評価値を調整して、最も高い評価値の子ノードを選択してもよく、評価値が上位の予め定められた数の子ノードを選択してもよい。
上記実施例では、評価関数(ノード評価情報、図3)は同一スペックでの最小間隔の例、別の評価値(探索解評価情報、図4)が隣接する個体のペアのスペックの例を示したが、両方とも評価情報テーブルであることも可能であり、また、両方とも他の評価手段(例えば、指定した数学関数、または、指定したプログラムコード)とすることができる。また、両方とも同一スペックでの最小間隔又は隣接する個体のペアのスペックを示してもよい。
本実施形態の探索木を用いた解探索は、上記投入順序最適化探査と異なる解探索に適用することができる。たとえば、本実施形態の探索木を用いた解探索は、物流業における配車システムに適用することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
101 解探索装置
102 操作装置
103 通信路
104 制御装置
105 入口ライン
106 入口搬送装置
107 作業ライン
108 出口搬送装置
109 出口ライン
901 根ノード
902 中間ノード
903 葉ノード

Claims (13)

  1. 探索木を用いた解探索を行う解探索装置であって、
    中止条件を満たすまで、選択肢に基づいてノードを作成する探索木展開部と、
    第1評価方法を用いて葉ノードに対する評価値を算出する評価算出部と、
    下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定する探索解決定部と、を含み、
    前記探索解決定部は、根ノードの複数の子ノードの評価値が最高値である場合に、前記第1評価方法と異なる第2評価方法を用いて前記複数の子ノードの評価値を更新し、探索の解を決定する、解探索装置。
  2. 請求項1に記載の解探索装置であって、
    前記探索木展開部は、
    新たなノードがすでに作成されているノードと重複しているかをチェックし、
    前記新たなノードが前記すでに作成されているノードの一つと重複している場合、前記新たなノードの作成を省略する、解探索装置。
  3. 請求項2に記載の解探索装置であって、
    前記探索木展開部は、
    前記新たなノードの特徴量を算出し、前記すでに作成されているノードの特徴量と比較し、
    前記新たなノードの特徴量と前記すでに作成されているノードの特徴量のいずれかが同一である場合、前記新たなノードが前記すでに作成されているノードの一つと重複していると判定する、解探索装置。
  4. 請求項1に記載の解探索装置であって、
    前記第1評価方法は、制約条件が規定する第1段階の状態を評価し、
    前記第2評価方法は、前記第1段階より前の段階の状態を評価する、解探索装置。
  5. 解探索システムであって、
    制御対象を制御する制御装置と、
    前記制御装置から前記制御対象の局面情報を取得し、前記局面情報に基づき前記探索木を用いた解探索を行う請求項1に記載の解探索装置と、を含む解探索システム。
  6. 1以上の記憶装置と、前記1以上の記憶装置に格納されるプログラムに従って動作する1以上のプロセッサと、を含む計算機システムが実行する、探索木を用いた解探索方法であって、
    前記1以上のプロセッサが、中止条件を満たすまで、選択肢に基づいてノードを作成し、
    前記1以上のプロセッサが、第1評価方法を用いて葉ノードに対する評価値を算出し、
    前記1以上のプロセッサが、下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定し、
    前記1以上のプロセッサが、根ノードの複数の子ノードの評価値が最高値である場合に、前記第1評価方法と異なる第2評価方法を用いて前記複数の子ノードの評価値を更新し、探索の解を決定する、解探索方法。
  7. 請求項6に記載の解探索方法であって、
    前記1以上のプロセッサが、新たなノードがすでに作成されているノードと重複しているかをチェックし、
    前記1以上のプロセッサが、前記新たなノードが前記すでに作成されているノードの一つと重複している場合、前記新たなノードの作成を省略する、解探索方法。
  8. 請求項7に記載の解探索方法であって、
    前記1以上のプロセッサが、前記新たなノードの特徴量を算出し、前記すでに作成されているノードの特徴量と比較し、
    前記1以上のプロセッサが、前記新たなノードの特徴量と前記すでに作成されているノードの特徴量のいずれかが同一である場合、前記新たなノードが前記すでに作成されているノードの一つと重複していると判定する、解探索方法。
  9. 請求項6に記載の解探索方法であって、
    前記第1評価方法は、制約条件が規定する第1段階の状態を評価し、
    前記第2評価方法は、前記第1段階より前の段階の状態を評価する、解探索方法。
  10. 計算機に探索木を用いた解探索を実行させるプログラムであって、前記計算機に、
    中止条件を満たすまで、選択肢に基づいてノードを作成し、
    第1評価方法を用いて葉ノードに対する評価値を算出し、
    下位ノードの評価値に基づいて上位ノードの評価値を逐次更新し、探索の解を決定し、
    根ノードの複数の子ノードの評価値が最高値である場合に、前記第1評価方法と異なる第2評価方法を用いて前記複数の子ノードの評価値を更新し、探索の解を決定する、ことを実行させるプログラム。
  11. 請求項10に記載のプログラムであって、前記計算機に、
    新たなノードがすでに作成されているノードと重複しているかをチェックし、
    前記新たなノードが前記すでに作成されているノードの一つと重複している場合、前記新たなノードの作成を省略する、ことを実行させるプログラム。
  12. 請求項11に記載のプログラムであって、前記計算機に
    前記新たなノードの特徴量を算出し、前記すでに作成されているノードの特徴量と比較し、
    前記新たなノードの特徴量と前記すでに作成されているノードの特徴量のいずれかが同一である場合、前記新たなノードが前記すでに作成されているノードの一つと重複していると判定する、ことを実行させるプログラム。
  13. 請求項10に記載のプログラムであって、
    前記第1評価方法は、制約条件が規定する第1段階の状態を評価し、
    前記第2評価方法は、前記第1段階より前の段階の状態を評価する、プログラム。
JP2018165076A 2018-09-04 2018-09-04 解探索装置 Active JP7094839B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018165076A JP7094839B2 (ja) 2018-09-04 2018-09-04 解探索装置
US16/296,513 US20200074308A1 (en) 2018-09-04 2019-03-08 Solution searching device
EP19161882.6A EP3621001A1 (en) 2018-09-04 2019-03-11 Solution searching device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018165076A JP7094839B2 (ja) 2018-09-04 2018-09-04 解探索装置

Publications (3)

Publication Number Publication Date
JP2020038478A JP2020038478A (ja) 2020-03-12
JP2020038478A5 JP2020038478A5 (ja) 2021-01-21
JP7094839B2 true JP7094839B2 (ja) 2022-07-04

Family

ID=65766822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018165076A Active JP7094839B2 (ja) 2018-09-04 2018-09-04 解探索装置

Country Status (3)

Country Link
US (1) US20200074308A1 (ja)
EP (1) EP3621001A1 (ja)
JP (1) JP7094839B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142849A (ja) 2013-01-25 2014-08-07 Nec Corp 解探索装置、解探索方法および解探索プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree
US7966336B2 (en) * 2007-11-30 2011-06-21 Palo Alto Research Center Incorporated Bounded sub-optimal problem solving
US9069792B1 (en) * 2008-08-22 2015-06-30 Conifer Systems LLC Method and system for persistently cached, copy-on-write view of revision control trees
US8200714B2 (en) * 2009-05-08 2012-06-12 Oracle America, Inc. Apparatus, systems and methods for configurable defaults for XML data
US8849741B2 (en) * 2012-01-25 2014-09-30 Google Inc. NoGood generation based on search tree depth
WO2014115232A1 (ja) 2013-01-25 2014-07-31 日本電気株式会社 解探索装置、解探索方法および解探索プログラム
US10275819B1 (en) * 2015-05-13 2019-04-30 Amazon Technologies, Inc. Reducing incompatible pairings
US10095734B2 (en) * 2015-06-10 2018-10-09 International Business Machines Corporation Source code search engine
US10776355B1 (en) * 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
JP6783427B2 (ja) 2017-03-28 2020-11-11 三菱マヒンドラ農機株式会社 作業車輌

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014142849A (ja) 2013-01-25 2014-08-07 Nec Corp 解探索装置、解探索方法および解探索プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
桑原 和人、鎌田 雅和、中島 麻衣、西谷 旦、菅原 真、保木 邦仁,Df-pn探索による6×6TRAXの解析,情報処理学会 研究報告 ゲーム情報学,情報処理学会,2016年03月08日,国内学会論文2016-00236-005

Also Published As

Publication number Publication date
US20200074308A1 (en) 2020-03-05
JP2020038478A (ja) 2020-03-12
EP3621001A1 (en) 2020-03-11

Similar Documents

Publication Publication Date Title
TWI625682B (zh) 參數最佳化方法、裝置以及非暫態電腦可讀取媒體
US10515177B1 (en) Method, system, and computer program product for implementing routing aware placement or floor planning for an electronic design
US9003349B1 (en) Methods, systems, and articles of manufacture for implementing a physical electronic design with area-bounded tracks
Cao et al. Querying similar process models based on the Hungarian algorithm
US20200250602A1 (en) System and method for high-mix wheels for capacity planning resource planning and material resource planning
KR102229859B1 (ko) 기계 학습 및 전이 학습을 이용한 공정 관리 방법, 장치 및 시스템
US10521097B1 (en) User interface to implement topology integrity throughout routing implementations
US10628549B2 (en) Automation generation of test layouts for verifying a DRC deck
EP3776280A1 (en) Multi-tier co-placement for integrated circuitry
US10073942B1 (en) Methods, systems, and computer program product for implementing synchronous clones for an electronic design
US10445457B1 (en) Methods, systems, and articles of manufacture for implementing a physical design of an electronic design with DFM and design specification awareness
US10055529B1 (en) Methods, systems, and computer program product for implementing a floorplan with virtual hierarchies and figure groups for an electronic design
Sikdar et al. Monsoon: Multi-step optimization and execution of queries with partially obscured predicates
US10055528B1 (en) Methods, systems, and computer program product for implementing engineering change orders with figure groups and virtual hierarchies
JP7094839B2 (ja) 解探索装置
US10817641B1 (en) Method and system to implement topology integrity throughout routing implementations
JP2005049922A (ja) ジョブ実行計画の評価システム
US11176283B2 (en) Analysis model creation assistance device and analysis model creation assistance method
US20170220726A1 (en) Method and system for performing a design space exploration of a circuit
CN115587560A (zh) 用于分布式引擎的运行时和存储器高效的属性查询处理
US10839119B2 (en) Bus wiring searching method and information processing apparatus
US9760667B1 (en) Method, system, and computer program product for implementing prototyping and floorplanning of electronic circuit designs
JP7070713B2 (ja) 情報処理装置、段取り作業修正方法、および段取り作業修正プログラム
JP6573583B2 (ja) システム開発支援装置およびシステム開発支援方法
US20150167433A1 (en) Proximity calculation in a geoscience domain

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220622

R150 Certificate of patent or registration of utility model

Ref document number: 7094839

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150