IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ Amoeba Energy株式会社の特許一覧 ▶ 国立大学法人北海道大学の特許一覧

特許7627453解探索システム、解探索方法及び解探索プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-29
(45)【発行日】2025-02-06
(54)【発明の名称】解探索システム、解探索方法及び解探索プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20250130BHJP
   G06F 17/10 20060101ALI20250130BHJP
   G16Z 99/00 20190101ALI20250130BHJP
【FI】
G06N99/00 180
G06F17/10 Z
G16Z99/00
【請求項の数】 13
(21)【出願番号】P 2021073972
(22)【出願日】2021-04-26
(65)【公開番号】P2022075472
(43)【公開日】2022-05-18
【審査請求日】2023-11-29
(31)【優先権主張番号】P 2020184993
(32)【優先日】2020-11-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】518104902
【氏名又は名称】Amoeba Energy株式会社
(73)【特許権者】
【識別番号】504173471
【氏名又は名称】国立大学法人北海道大学
(74)【代理人】
【識別番号】100218280
【弁理士】
【氏名又は名称】安保 亜衣子
(74)【代理人】
【識別番号】100108914
【弁理士】
【氏名又は名称】鈴木 壯兵衞
(74)【代理人】
【識別番号】100173864
【弁理士】
【氏名又は名称】齊藤 健治
(72)【発明者】
【氏名】青野 真士
(72)【発明者】
【氏名】葛西 誠也
(72)【発明者】
【氏名】大古田 香織
(72)【発明者】
【氏名】福田 真悟
【審査官】北川 純次
(56)【参考文献】
【文献】特開2014-085733(JP,A)
【文献】青野 真士ほか,サイバー空間とフィジカル空間を癒合するアメーバ計算パラダイム,人工知能,日本,人工知能学会,2018年,第33巻 第5号,p. 561-569
【文献】AONO, Masashi, et al.,Amoeba-inspired SAT Solver,Proceedings of the 2012 International Symposium on Nonlinear Theory and its Applications,2012年,p. 586-589,[検索日 2021.11.19], インターネット:<URL:https://www.ieice.org/publications/proceedings/bin/pdf_link.php?fname=586.pdf&iconf=NOLTA&year=2012&vol=1&number=586&lang=E>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 - 99/00
G06F 17/10
G16Z 99/00
(57)【特許請求の範囲】
【請求項1】
Nを2以上の正の整数として、仮決定の出力調整信号をそれぞれ本決定の出力調整信号に変換して出力する、N個の信号調整回路を有する出力調整ユニットと、
前記本決定の出力調整信号のセットを受信するように、前記信号調整回路のセットに対しそれぞれ配置され、2値データを生成する2N個のデータ生成ユニットと、
前記データ生成ユニットがそれぞれ生成したデータを読み取って情報に変換する2N個のデータ変換ユニットと、
前記信号調整回路のそれぞれに独立したバイアス確率を供給し、前記データ生成ユニットのそれぞれに独立した揺らぎ確率を供給し、前記データ変換ユニットのそれぞれに独立した閾値を供給し、前記データ生成ユニットがそれぞれ生成するデータの出現頻度を非一様に設定し、特定の一つの変数の出現頻度を他の変数の出現頻度とは異なる値にする揺らぎ設定ユニットと、
前記データ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて最適解が得られたか判定し、前記最適解が得られていない場合は、出力調整ユニットに前記本決定の出力調整信号を出力させる動作を繰り返し制御するフィードバック制御ユニットと、
を備え、前記信号調整回路は前記バイアス確率を用いて前記仮決定の出力調整信号をそれぞれ前記本決定の出力調整信号に変換し、前記データ生成ユニットは前記本決定の出力調整信号と前記揺らぎ確率を用いて前記データを生成し、前記データ変換ユニットは前記データと前記閾値を用いて前記情報を生成し、前記情報から複数の含意形式の制約条件と該制約条件の論理積とで表現されたSAT問題の前記最適解を得ることを特徴とする解探索システム。
【請求項2】
前記データ生成ユニットと対応する前記データ変換ユニットが一対一で連結して2N個のタンデム接続セットをそれぞれ構成し、
該タンデム接続セットのそれぞれが、第1受動素子と第1非線形素子の直列回路と、該直列回路を接地電位に接続する接地並列回路を含む仮足ユニットを備え、
該仮足ユニットの集合によりアメーバコアが構成され、
前記接地並列回路が、前記直列回路に直列接続された電荷蓄積手段と、前記電荷蓄積手段に並列接続され前記電荷蓄積手段に蓄積される電荷を放電する放電制御回路を有することを特徴とする請求項1に記載の解探索システム。
【請求項3】
前記放電制御回路が、前記電荷蓄積手段にそれぞれ並列接続された第1スイッチング素子及び第2スイッチング素子を含むことを特徴とする請求項2に記載の解探索システム。
【請求項4】
前記仮足ユニットのそれぞれを構成する前記直列回路の一端が、それぞれ中心のハブで互いに結合し、前記直列回路の他端が放射状に広がることにより2N個の出力端子を定義し、2N個の前記仮足ユニットが星形ネットワークを構成することを特徴とする請求項3に記載の解探索システム。
【請求項5】
前記第1スイッチング素子のそれぞれの制御電極に、前記出力調整信号の反転信号が供給されることを特徴とする請求項4に記載の解探索システム。
【請求項6】
隣接する前記出力端子のペアの間に2入力NORゲートが設けられ、N個の前記2入力NORゲートのそれぞれの出力が、対応する前記第2スイッチング素子のそれぞれの制御電極に入力されることを特徴とする請求項5に記載の解探索システム。
【請求項7】
前記アメーバコアと前記アメーバコアに含まれる前記データ生成ユニットのそれぞれに揺らぎ確率を供給する揺らぎ設定ユニットとで算術論理演算回路を構成し、該算術論理演算回路の複数個を並列配置した多細胞アメーバ構造を備えることを特徴とする請求項2に記載の解探索システム。
【請求項8】
前記アメーバコアと前記アメーバコアに含まれる前記データ生成ユニットのそれぞれに揺らぎ確率を供給する揺らぎ設定ユニットとで算術論理演算回路を構成し、該算術論理演算回路の複数個を並列配置した多細胞アメーバ構造を軌道生成算術論理演算回路として備え、
該多細胞アメーバ構造による並列演算により、縦軸に複数の変数を配列し横軸に前記複数の変数の時系列で変化する状態を配列したマトリクスを複数種生成し、該複数種のマトリクスを複数種の代替軌道とすることを特徴とする請求項2に記載の解探索システム。
【請求項9】
前記複数種の代替軌道のそれぞれにつき、解析条件から決まるコンフリクトの有無をテーブル化するコンフリクト集計用算術論理演算回路を更に備えることを特徴とする請求項8に記載の解探索システム。
【請求項10】
前記コンフリクト集計用算術論理演算回路がテーブル化した、前記コンフリクトを解消させる新たな代替軌道を探索するコンフリクト解消算術論理演算回路を更に備えることを特徴とする請求項9に記載の解探索システム。
【請求項11】
外部から入力された揺らぎ確率の情報を、複数のデータ生成ユニットのそれぞれに独立して供給するステップと、
外部から入力されたバイアス確率の情報を、前記複数のデータ生成ユニットのそれぞれに対応して配置された複数の信号調整回路のそれぞれに独立して供給するステップと、
外部から入力された閾値の情報を、複数のデータ変換ユニットのそれぞれに独立して供給するステップと、
複数の仮決定の出力調整信号をそれぞれ、前記複数の信号調整回路に入力するステップと、
前記バイアス確率を用いて、前記複数の信号調整回路のそれぞれが、入力された前記複数の仮決定の出力調整信号を変換し本決定の出力調整信号の値にし、該本決定の出力調整信号を前記複数のデータ生成ユニットのそれぞれに入力するステップと、
前記複数のデータ生成ユニットのそれぞれが、前記揺らぎ確率と前記本決定の出力調整信号から非一様のデータを生成し、前記複数のデータ生成ユニットがそれぞれ出力する特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値にするステップと、
前記複数のデータ生成ユニットと同数の前記複数のデータ変換ユニットが、前記複数のデータ生成ユニットがそれぞれ生成したデータを読み取って情報に変換するステップと、
前記複数のデータ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて、最適解が得られたか判定し、前記最適解が得られていない場合は、前記本決定の出力調整信号を前記複数のデータ生成ユニットのそれぞれに送信する動作を繰り返す処理を制御するステップと
を含み、複数の含意形式の制約条件と該制約条件の論理積とで表現されたSAT問題の前記最適解を得ることを特徴とする解探索方法。
【請求項12】
前記探索問題情報が複数の変数からなる命題論理式で表される場合において、そのうちの1の変数yiをプログラム変数と定義し、含意形式の条件
yi=b且つxj=b’ならば、xk=b’’
を持つ単一のインスタンスを用意し、プログラム変数yiの値を“0”又は“1”に固定して、前記命題論理式の制約条件の有効化と無効化を切り替えることを特徴とする請求項11に記載の解探索方法。
【請求項13】
揺らぎ設定ユニットに、外部から入力された揺らぎ確率の情報を、複数のデータ生成ユニットのそれぞれに独立して供給させる命令と、
前記揺らぎ設定ユニットに、外部から入力されたバイアス確率の情報を、前記複数のデータ生成ユニットのそれぞれに対応して配置された複数の信号調整回路のそれぞれに独立して供給させる命令と、
揺らぎ設定ユニットに、外部から入力された閾値の情報を、複数のデータ変換ユニットのそれぞれに独立して供給させる命令と、
出力調整ユニットに、複数の仮決定の出力調整信号をそれぞれ、前記複数の信号調整回路に入力させる命令と、
前記複数の信号調整回路のそれぞれに、前記バイアス確率を用いて、入力された前記複数の仮決定の出力調整信号を変換させ本決定の出力調整信号の値にさせ、該本決定の出力調整信号を前記複数のデータ生成ユニットのそれぞれに入力させる命令と、
前記複数のデータ生成ユニットのそれぞれに、前記揺らぎ確率と前記本決定の出力調整信号から非一様のデータを生成させ、前記複数のデータ生成ユニットのそれぞれから、特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値にして出力させる命令と、
前記複数のデータ生成ユニットと同数の前記複数のデータ変換ユニットに対し、前記複数のデータ生成ユニットがそれぞれ生成したデータを読み取らせ、該読み取ったデータを情報に変換させる命令と、
フィードバック制御ユニットに対し、前記複数のデータ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて最適解が得られたか判定させ、前記最適解が得られていない場合は、前記本決定の出力調整信号を前記複数のデータ生成ユニットのそれぞれに対して送信する動作を繰り返す処理の制御をさせる命令と、
を含む一連の命令をコンピュータに実行させ、複数の含意形式の制約条件と該制約条件の論理積とで表現されたSAT問題の前記最適解を得ることを特徴とする解探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生物の揺らぎ動作からヒントを得た「デバイスの揺らぎ」からもたらされる確率的動作を活用し、種々のスケジューリングや組み合わせの最適解を探索する問題の解を高速かつ効率的に探索する解探索システム、解探索方法及び解探索プログラムに係り、特に非一様な揺らぎを活用した解探索システム、この解探索システムを用いた解探索方法、及びこの解探索方法をコンピュータシステムによって実現させる解探索プログラムに関する。
【背景技術】
【0002】
スケジューリング等において、与えられた制約条件を満足する解を探索する問題として、与えられた命題論理式を“真”にできるような変数の真偽値の組合せを探索する充足可能性問題(Boolean Satisfiability Problem: SAT問題)が知られている。SAT問題に関連した先行技術としては、SAT解法プログラムや、障害診断プログラム等が提案されている(特許文献1等参照)。SAT問題を解く解探索システムは、今後の情報化社会において極めて重要であるが、問題サイズが大きくなると、問題サイズに対して解候補の数が指数関数的に成長する。SAT問題は極めて高い計算複雑性を持つので、SAT問題の問題サイズが大きくなると、大量の計算資源や時間が必要になる。
【0003】
特許文献1に記載された発明は、SAT問題の所与の問題に対する解をより高速かつ効率的に探索する方法を提案するものではない。情報量が増大の一途を辿る昨今において、大量の情報から高速かつ効率的にSAT問題の解を求めることが社会的要請になっている。そこで、高速かつ効率的にSAT問題を解くための解探索システムが提案されている(特許文献2参照)。
【0004】
しかしながら、特許文献2に記載された発明では、SAT問題を解くにあたりデータに2種類の一様な揺らぎを内部構造によって付与する解探索方法を提供するものであって、多様且つ膨大な要求仕様が含まれる実社会で現れる種々の組合せ最適化問題について何ら検討されていない。例えば、物流倉庫の自動搬送台車による搬送システムを例にとれば、数百台の搬送台車が時々刻々と更新されるような複雑な台車の搬送要求に応じつつ、効率的な台車の搬送を行う「スケジューリング問題」に直面する。特許文献2に記載されたような2種類の一様な揺らぎを、内部構造によって付与する解探索方法では、数百台の搬送台車スケジューリング問題を取り扱う場合に、アルゴリズムが複雑化し、問題インスタンスが変わる毎に回路を変更する必要がある。したがって、特許文献2に記載された一様な揺らぎを内部構造によって付与する発明は、多様な実社会の組合せ最適化問題インスタンスを解く技術としては不都合があった。「インスタンス(an instance)」とは、問題の全てのパラメータに具体的な値を設定したものをいう。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-003733号公報
【文献】特許第6011928号
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上述した問題点に鑑みて案出されたものであり、その目的は、種々の現実のスケジューリング問題をSAT問題として定式化する場合において、アルゴリズムを複雑化することなく、かつ異なるインスタンスに対し同一回路で、高速かつ効率的にSAT問題を解くことが可能な解探索システム、この解探索システムを用いた解探索方法、及びこの解探索方法をコンピュータシステムによって実現させる解探索プログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の第1の態様は、(a)Nを2以上の正の整数として、仮決定の出力調整信号をそれぞれ本決定の出力調整信号に変換して出力する、N個の信号調整回路を有する出力調整ユニットと、(b)本決定の出力調整信号のセットを受信するように、信号調整回路のセットに対しそれぞれ配置され、2値データを生成する2N個のデータ生成ユニットと、(c)データ生成ユニットがそれぞれ生成したデータを読み取って情報に変換する2N個のデータ変換ユニットと、(d)信号調整回路のそれぞれに独立したバイアス確率を供給し、データ生成ユニットのそれぞれに独立した揺らぎ確率を供給し、データ変換ユニットのそれぞれに独立した閾値を供給し、データ生成ユニットがそれぞれ生成するデータの出現頻度を非一様に設定し、特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値にする揺らぎ設定ユニットと、(e)データ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて最適解が得られたか判定し、最適解が得られていない場合は、出力調整ユニットに本決定の出力調整信号を出力させる動作を繰り返し制御するフィードバック制御ユニットを備える解探索システムであることを要旨とする。本発明の第1の態様に係る解探索システムによれば、信号調整回路はバイアス確率を用いて仮決定の出力調整信号をそれぞれ本決定の出力調整信号に変換し、データ生成ユニットは本決定の出力調整信号と揺らぎ確率を用いてデータを生成し、データ変換ユニットはデータと閾値を用いて情報を生成し、生成された情報から複数の含意形式の制約条件とこの制約条件の論理積とで表現されたSAT問題の最適解を得ることができる。
【0008】
本発明の第2の態様は、(a)外部から入力された揺らぎ確率の情報を、複数のデータ生成ユニットのそれぞれに独立して供給するステップと、(b)外部から入力されたバイアス確率の情報を、複数のデータ生成ユニットのそれぞれに対応して配置された複数の信号調整回路のそれぞれに独立して供給するステップと、(c)外部から入力された閾値の情報を、複数のデータ変換ユニットのそれぞれに独立して供給するステップと、(d)複数の仮決定の出力調整信号をそれぞれ、複数の信号調整回路に入力するステップと、(e)バイアス確率を用いて、複数の信号調整回路のそれぞれが、入力された複数の仮決定の出力調整信号を変換し本決定の出力調整信号の値にし、この本決定の出力調整信号を複数のデータ生成ユニットのそれぞれに入力するステップと、(f)複数のデータ生成ユニットのそれぞれが、揺らぎ確率と本決定の出力調整信号から非一様のデータを生成し、複数のデータ生成ユニットがそれぞれ出力する特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値にするステップと、(g)複数のデータ生成ユニットと同数の複数のデータ変換ユニットが、データ生成ユニットがそれぞれ生成したデータを読み取って情報に変換するステップと、(h)複数のデータ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて、最適解が得られたか判定し、最適解が得られていない場合は、本決定の出力調整信号を複数のデータ生成ユニットのそれぞれに送信する動作を繰り返す処理を制御するステップを含む解探索方法であることを要旨とする。本発明の第2の態様に係る解探索方法によれば、複数の含意形式の制約条件とこの制約条件の論理積とで表現されたSAT問題の最適解を得ることができる。
【0009】
本発明の第2の態様で述べた解探索方法を実現するためのコンピュータ・ソフトウェア・プログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を第1の態様で述べたコンピュータシステムに読み込ませれば、コンピュータシステムによって実行することができる。すなわち、本発明の第3の態様は、(a)揺らぎ設定ユニットに、外部から入力された揺らぎ確率の情報を、複数のデータ生成ユニットのそれぞれに独立して供給させる命令と、(b)揺らぎ設定ユニットに、外部から入力されたバイアス確率の情報を、複数のデータ生成ユニットのそれぞれに対応して配置された複数の信号調整回路のそれぞれに独立して供給させる命令と、(c)揺らぎ設定ユニットに、外部から入力された閾値の情報を、複数のデータ変換ユニットのそれぞれに独立して供給させる命令と、(d)出力調整ユニットに、複数の仮決定の出力調整信号をそれぞれ、複数の信号調整回路に入力させる命令と、(e)複数の信号調整回路のそれぞれに、バイアス確率を用いて、入力された複数の仮決定の出力調整信号を変換させ本決定の出力調整信号の値にさせ、この本決定の出力調整信号を複数のデータ生成ユニットのそれぞれに入力させる命令と、(f)複数のデータ生成ユニットのそれぞれに、揺らぎ確率と本決定の出力調整信号から非一様のデータを生成させ、複数のデータ生成ユニットのそれぞれから、特定の一つの変数の出現頻度を他の変数の出現頻度とは異なる値にして出力させる命令と、(g)複数のデータ生成ユニットと同数の複数のデータ変換ユニットに対し、データ生成ユニットがそれぞれ生成したデータを読み取らせ、この読み取ったデータを情報に変換させる命令と、(h)フィードバック制御ユニットに対し、複数のデータ変換ユニットにより変換された情報、及び予め入力された探索問題情報に基づいて最適解が得られたか判定させ、最適解が得られていない場合は、本決定の出力調整信号を複数のデータ生成ユニットのそれぞれに対して送信する動作を繰り返す処理の制御をさせる命令を含む一連の命令をコンピュータに実行させる解探索プログラムであることを要旨とする。本発明の第3の態様に係る解探索プログラムによれば、複数の含意形式の制約条件とこの制約条件の論理積とで表現されたSAT問題の最適解を得ることができる。本発明の第3の態様に係る解探索プログラムを記録する記録媒体として、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができる種々の記録媒体が採用可能である。
【発明の効果】
【0010】
本発明によれば、種々の現実のスケジューリング問題をSAT問題として定式化する場合において、アルゴリズムを複雑化することなく、かつ異なるインスタンスに対し同一回路で、高速かつ効率的にSAT問題を解くことが可能な解探索システム、この解探索システムを用いた解探索方法、及びこの解探索方法をコンピュータシステムによって実現させる解探索プログラムを提供することができる。
【図面の簡単な説明】
【0011】
図1】本発明の第1実施形態に係る組合せ最適化問題の全体像を示す図である。
図2】第1実施形態に係る解探索システムの全体構成を示す図である。
図3】出力調整信号の送信によるデータ生成ユニットからの出力データの制御について説明する図である。
図4】出力調整信号の送信によるデータ生成ユニットからの出力データの制御について説明する他の図である。
図5】ブール式の論理積を1(“真”)にする命題論理式の例を示す図である。
図6図6(a)は、命題論理式の他の例を示す図であり、図6(b)は図6(a)に示した命題論理式が含意形式の制約の論理積で表現されることを説明する式である。
図7A】組合せ最適化問題として自動搬送システム最適化を取り上げた場合における物流倉庫における台車の移動経路の例を示す図である。
図7B】搬送要求を満たす軌道の例を示す図である。
図8A】第1実施形態に係る非一様SAT問題アルゴリズムを用いた場合に得られる最適性の高い解(軌道)の例を示す図である。
図8B】従来のアルゴリズムを用いた場合に得られる最適性の低い解(軌道)の例を示す図である。
図9】第1実施形態に係る解探索システムにおける、1の変数への値の割当てを2つのデータ変換ユニットで表現する場合について説明する図である。
図10】比較のために、特許文献2に記載された空間相関に基づいて一様な2種類の揺らぎを付与する技術を説明する図である。
図11】第1実施形態に係る解探索システムの具体的構成例の一つとしての電子アメーバの回路の一例を示す図である。
図12図12(a)は、命題論理式の他の例を示す図であり、図12(b)は図12(a)に示した命題論理式が、含意形式の制約の論理積で表現されるが、図6(b)に示した式の一部が省略されることを説明する式である。
図13】プログラム変数の変更により同一回路で様々な問題インスタンスを解く事例を示す図である。
図14】プログラム変数が固定される事例を示す図である。
図15図15(a)は、図5に示した命題論理式の「イントラ(INTRA)ルール」を、図15(b)は、図5に示した命題論理式の「インター(INTER)ルール」を、図15(c)は、図5に示した命題論理式の及び「コントラ(CONTRA)ルール」をそれぞれ説明する図である。
図16】第1実施形態に係る解探索方法及び解探索プログラムの処理の流れを説明するフローチャートである。
図17】コントラ・ルールが必要な従来技術における、1の変数への値の割当てを2つのデータ変換ユニットで表現する場合について説明する図である。
図18】コントラ・ルールの適用が必要な従来の電子アメーバ(Amoeba)の回路構成の例を示す図である。
図19】本発明の第2実施形態に係るハイブリッド型最適解計算システムの全体構成を示す図である。
図20】第2実施形態に係るハイブリッド型最適解計算システムの制御ユニット内に備え付けられた構成要素を示す図である。
図21】第2実施形態に係るハイブリッド型最適解計算方法又はハイブリッド型最適解計算方法を実行するための最適解計算プログラムにおける処理の流れを説明するフローチャートである。
図22】コンフリクト解消解探索演算回路がコンフリクトを解消できる代替軌道の組合せ(最適解)を探索する際に用いる探索システム(解法)と、軌道生成部がk種の代替軌道に代わる新たな代替軌道を生成する際に用いる探索システム(解法)との可能な組合せを示す図である。
図23】立体倉庫問題に対する第2実施形態に係るハイブリッド型最適解計算方法の適用例において、図21に示したフローチャートのステップS201で決めた初期軌道の具体例を示す図である。
図24】立体倉庫問題に対する第2実施形態に係るハイブリッド型最適解計算方法の適用例において、図21に示したフローチャートのステップS202で列挙した初期軌道同士のコンフリクトの具体例を示す図である。
図25】立体倉庫問題に対する第2実施形態に係るハイブリッド型最適解計算方法の適用例において、図21に示したフローチャートのステップS203で生成したk種の代替軌道の具体例を示す図である。
図26】立体倉庫問題に対する第2実施形態に係るハイブリッド型最適解計算方法の適用例において、図21に示したフローチャートのステップS204でテーブル化された代替軌道の全てのペアに関するコンフリクトの有無の具体例を示す図である。
図27】立体倉庫問題に対する第2実施形態に係るハイブリッド型最適解計算方法の適用例において、図21に示したフローチャートのステップS205の探索で得られたコンフリクトしない代替軌道の組合せ(解)の具体例を示す図である。
【発明を実施するための形態】
【0012】
本発明を説明する便宜上、第1及び第2実施形態を例示し、図面を参照して例示的に説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。但し、図面は模式的なものであり、厚みと平面寸法との関係、各部材の大きさの比率等は現実のものとは異なることに留意すべきである。従って、具体的な厚み、寸法、大きさ等は以下の説明から理解できる技術的思想の趣旨を参酌してより多様に判断すべきものである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0013】
又、以下に示す第1及び第2実施形態は、本発明の技術的思想を具体化するための方法及びその方法に用いる装置等を例示するものであって、本発明の技術的思想は、構成部品の材質、形状、構造、配置等、方法の手順等を下記のものに特定するものではない。本発明の技術的思想は、第1及び第2実施形態で記載された内容に限定されず、特許請求の範囲に記載された請求項が規定する技術的範囲内において、種々の変更を加えることができる。
【0014】
(第1実施形態)
本発明の第1実施形態が対象とする「社会的スケジューリング最適化課題」とは、本発明により最適解を求めることが可能な課題のことであり、一般社会において生じ得る様々なスケジューリングを最適化する課題のことである。例えば、図1の上段側に例示的に示すように、物流倉庫搬送システム最適化、勤務スケジュール最適化等が例示できる。「物流倉庫搬送システム最適化」とは、例えば、図7B等を用いて後述するように、荷物を搭載した複数の自動搬送台車が、物流倉庫内において、共通の進路上を移動する場合における最も効率の良いスケジューリングを、最適解として求めるような場合を意味する。図7Bでは2台の台車の「スケジューリング問題」を例示しているが、物流倉庫の台車の搬送システムでは、数十台から数百台の台車が時々刻々と更新される搬送要求に応じつつ効率的な配送を行う必要があるので、極めて煩雑且つ膨大な計算が発生する。なお図7B等は例示であり、搬送システムの最適化は「物流倉庫」に限定されるものではなく、食品工場、電子機器工場、自動車工場等における搬送システムの最適化に関しても同様である。
【0015】
同様に、図1の上段側に例示的に示した「勤務スケジュール最適化」とは、企業などの組織においてデスク、会議室、使用設備など空間資源や勤務開始時刻や終了時刻などの時間資源が限定されている場合に、それらの資源を効率良く使って従業員が最も生産性をあげられるような勤務場所や時間などのスケジューリングを行うことを意味する。図1では例示していないが、無線通信ネットワークにおけるリアルタイムルーティング、自動運転車による配送計画、ロボットアーム等による物体移動プランニング、分散型のP2P(ピア・ツー・ピア)によるモノ・サービス・エネルギーの取引き等のスケジューリングの最適化も、第1実施形態に係る「社会的スケジューリング最適化課題」である。このように、第1実施形態に係る解探索システムは、図1に例示した以外の様々課題を含む社会的スケジューリング最適化課題(以下において「最適化課題」と略記する。)について、これを組合せ最適化問題として解決するものである。なお、図1の本発明の適用対象外として示した「CL-アメーバ(Amoeba)SAT解法」は、国際公開第2019/017412号パンフレットに開示されたような、デジタル回路実装を想定してアメーバSAT解法を簡略化した回路レベル(Circuit-Level)アメーバSAT解法のアルゴリズムを意味する。
【0016】
第1実施形態に係る「組合せ最適化問題」とは、最適化課題を解決するために用いる命題論理式を決める(定式化する)ためのものであり、充足可能性(SAT)問題、巡回セールスマン問題(TSP)等が対応する。「SAT問題」とは、ある命題論理式(ブール式)Fが与えられたとき、その中の論理変数(ブール変数)x1,x2,……,xNの値に真(True:1)、又は偽(False:0)を割り当てることにより、命題論理式F全体の値を真(True:1)にすることができる(充足可能)か否かを判定する問題のことである。SAT問題は、コンピュータサイエンスの分野でよく知られた組合せ最適化問題の一例(NP完全問題)とされる。「NP完全問題」とは、(a)クラスNP(Non-deterministic Polynomial-time)に属する決定問題で、かつ(b)任意のクラスNPに属する問題から多項式時間還元可能なもののことである。NP完全問題であるSAT問題を多項式時間で解くアルゴリズムは知られていない。SAT問題の解候補の数は問題サイズに対して指数関数的に増大し、組合せ爆発を引き起こすからである。
【0017】
「巡回セールスマン問題」とは、所与の重み付きグラフに対し、すべての頂点を一度だけ通る閉路(ハミルトン閉路)のうち、最小の重み総和(コスト)を持つもの(最短経路)を探索する問題のことである。即ち、すべての都市を一度だけ訪問して戻ってくる巡回ルートのうち、移動距離が最小のものを探す問題である。巡回セールスマン問題は、コンピュータサイエンスの分野でよく知られた組合せ最適化問題の一例(NP困難問題)とされる。
【0018】
「最適化アルゴリズム」とは、組合せ最適化問題として定式化された論理式を用いて、上記の社会問題を解決する最適解を求めるための手順のことである。第1実施形態に係る解探索システムでは、「アメーバSAT解法」を基礎とする。アメーバSAT解法は、自然界を生き抜く生物であるアメーバの情報処理原理を用いた最適化アルゴリズムである。単細胞アメーバが環境に適応し最適パターンに変形する振舞いに学び、巡回セールスマン問題やSAT問題等の複雑な組合せ最適化問題を、単細胞アメーバを模した電子回路を用いて高速に解く生物型コンピュータのアルゴリズムである。図11を用いて後述するように、単細胞アメーバの動作を模した「アメーバ・コンピュータ」は、回路を流れる電流ダイナミクスの並行性や、デバイスの揺らぎからもたらされる確率的動作を活用し、適切なパターンを、従来のノイマン型コンピュータより素早く確実に得る方法を提供できる。
【0019】
生物である単細胞アメーバは栄養物質吸収量を最大化するべくなるべく多くの足を伸ばしたいが、光照射されると縮退せざるを得ない。本発明者の一人は、光照射のオン・オフを単細胞アメーバの形状(足の伸縮状態)に応じて更新するフィードバック規則を採用すると、単細胞アメーバが光被照射リスクを最小化できる組合せの足だけを伸ばそうと試行錯誤し変形する過程で、組合せ最適化問題「巡回セールスマン問題」の準最適解を探索できることを見いだした。この「アメーバ・コンピュータ」において、単細胞アメーバの自在に変化する複数の足や複数の足のハブ(中心)となる部分は、複数の足で発生する大自由度の複雑な時空間振動ダイナミクスにより、光照射の経験を記憶し、光刺激に対する応答の適切な「確率的揺らぎ」を生成し、量子コンピュータの「アニーリング」に類似の効果を持つ。
【0020】
最適化アルゴリズムとしては、図1に示すように、アメーバSAT解法以外のものもあるが、本発明は生物をモデルとしたアメーバSAT解法を前提とするため、ここではアメーバSAT解法以外の説明を省略する。後述するが、本発明では特定の変数の出現頻度を相対的に多く、又は少なくすることを出現頻度に「非一様性」を持たせると称し、そのような非一様性を持ったSAT最適化アルゴリズムを「非一様SATアルゴリズム」と称する。特許文献2に従来型の一様アメーバSAT解法が開示されているが、第1実施形態に係る解探索システムでは、改良された新型の非一様アメーバSAT解法を最適化アルゴリズムとして提供する。
【0021】
第1実施形態に係る「ハードウェア実装」とは、今回提案する非一様SATアルゴリズムを実現するための電気回路のことであり、アナログ的に上記の最適化アルゴリズムを実現するアナログ回路と、デジタル的に上記の最適化アルゴリズムを実現するデジタル回路とがある。以下では、最適化課題に係る問題インスタンスをSAT問題として定式化し、更に最適化アルゴリズムとして非一様アメーバSAT解法を用い、その最適化アルゴリズムをアナログ回路又はデジタル回路で実現することにより最適解を求める例を説明する。
【0022】
第1実施形態に係る解探索システムでの説明における「SAT解」とは、所与の命題論理式の全ての制約を充足できる変数割当てのことを意味し、一つの命題論理式のことを「インスタンス」と呼ぶ。そもそも、本来のSATには、「最適解」や「最適性の高い解」を得るという概念がないので、命題論理を充足できるような変数割当てを「SAT解」と呼ぶこととする。第1実施形態に係る解探索システムでは、従来のSATに「最適性」の概念を導入したことに独自性を有するが、一般に、複数のSAT解を持つインスタンスや、SAT解を一つも持たないインスタンス等も存在し得る。このようなことから「最適解」と「最適性の高い解」を以下に定義する。第1実施形態に係る解探索システムでの説明における「最適解」とは、数ある「SAT解」の中から、ユーザが指定する特定の添字を持つ変数の値が1或いは0となっている数の多さ或いは少なさで定義され、「最適性」が最大化された解のことをいう。ただ、厳密な意味での「最適解」が常に得られるということは難しいので、第1実施形態に係る解探索システムでは、最適解を得ることを目的とすると共に「最適性の高い解」を得ることもこれに加える。尚、「最適性の高い解」とは、数ある「SAT解」のうちで「最適解」により近い「最適性」を持つ解と定義する。即ち、以下の第1実施形態に係る解探索システムの説明において、「最適解」とあるところを「最適性の高い解」と読み替えてもよい。
【0023】
(第1実施形態に係る解探索システム)
図2に示すように、本発明の第1実施形態に係る解探索システムは、2値データを生成する第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iと、各第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iで生成されたデータを読み取って情報に変換する第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iと、各第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iに対して出力調整信号(バウンスバック信号)を送信することにより、2値データの出力を調整する出力調整ユニット14と、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iにより変換された情報、及び予め入力された探索問題情報に基づいて、各第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iに対して出力調整信号を送信する、又は出力調整信号と更新された揺らぎ確率の値を送信するか否かを繰り返し制御することにより、探索問題情報の最適解を表示するフィードバック制御ユニット13と、各第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iから出力されるデータに非一様の出現頻度を発生するように、非一様な揺らぎ確率のデータZi,bを供給する揺らぎ設定ユニット16を有する中央処理装置(CPU)1を備える(以下において「揺らぎ確率データZi,b」と略記する。)。ここで“i”は変数xiの添字であり、例えばNを2以上の正の整数として、変数がN個の場合にはi=1乃至Nのいずれかである。“b”は2値データの値であり、b=“0”又は“1”となる。
【0024】
第1実施形態に係る解探索システムの出力調整ユニット14は、第1データ生成ユニット11-1及び第2データ生成ユニット11-2に接続された第1信号調整回路141と、第3データ生成ユニット11-3及び第4データ生成ユニット11-4に接続された第2信号調整回路142と、第5データ生成ユニット11-5及び第6データ生成ユニット11-6に接続された第3信号調整回路143と、第7データ生成ユニット11-7及び第8データ生成ユニット11-8に接続された第4信号調整回路144を備える。更に、第1実施形態に係る解探索システムの出力調整ユニット14は、第1信号調整回路141乃至第4信号調整回路144に信号を供給する主出力調整回路140を備える。フィードバック制御ユニット13から主出力調整回路140に信号が送られると、主出力調整回路140が出力する2つの「仮決定」の出力調整信号L'i,0と出力調整信号L'i,1が第1信号調整回路141に、2つの「仮決定」の出力調整信号L'2,0と出力調整信号L'2,1が第2信号調整回路142に、2つの「仮決定」の出力調整信号L'3,0と出力調整信号L'3,1が第3信号調整回路143に、2つの「仮決定」の出力調整信号L'4,0と出力調整信号L'4,1が第4信号調整回路144にそれぞれ入力される。
【0025】
第1実施形態に係る解探索システムの出力調整ユニット14を構成する第1信号調整回路141乃至第4信号調整回路144は、変数xiの添字i=1乃至4のいずれかとして、もし出力調整信号L'i,0と出力調整信号L'i,1が共に1(L'i,0=L'i,1=1)ならば、バイアス確率piで出力調整信号Li,0=0及び出力調整信号Li,1=1とし、バイアス確率1-piで出力調整信号Li,0=1及び出力調整信号Li,1=0と「本決定」する。第1信号調整回路141乃至第4信号調整回路144は、出力調整信号L'i,0=L'i,1=0又は出力調整信号L'i,0 ≠ L'i,1ならば、出力調整信号Li,0=L'i,0及び出力調整信号Li,1=L'i,1と「本決定」する。バイアス確率piは変数xiの添字iごとに独立に異なる値を設定することも可能とする(通常は全変数xiの添字iについてpi = 0.5)。
【0026】
揺らぎ設定ユニット16は、特定の変数の出現頻度を相対的に多く、又は少なくするように、特定の変数に特定の揺らぎ確率を個別に設定する。即ち、揺らぎ設定ユニット16は、揺らぎ確率データZi,bを、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第8データ生成ユニット11-8に出力する(“i”は変数xiの添字であり、図9の場合i=1乃至4のいずれかである。bは2値データ“0”又は“1”である)。図9には図示を省略しているが、図2から分かるように、第1データ生成ユニット11-1には揺らぎ確率データZ1,0が入力され、第2データ生成ユニット11-2には揺らぎ確率データZ1,1が入力される。又、第3データ生成ユニット11-3には揺らぎ確率データZ2,0が入力され、第4データ生成ユニット11-4には揺らぎ確率データZ2,1が入力さる。……。そして、同様にして、第7データ生成ユニット11-7には揺らぎ確率データZ4,0が入力され、第8データ生成ユニット11-2には揺らぎ確率データZ4,1が入力される。
【0027】
この結果、第1データ生成ユニット11-1は、入力されたL1,0と揺らぎ確率データZ1,0から2値データSi,0 = “0”又は“1”を決定して出力する。同様に、第2データ生成ユニット11-2は、入力されたL1,1と揺らぎ確率データZ1,1から2値データS1,1 = “0”又は“1”を決定して出力する。更に、第3データ生成ユニット11-3は、入力されたL2,0と揺らぎ確率データZ2,0から2値データS2,0= “0”又は“1”を決定して出力する。……。第8データ生成ユニット11-8は、入力されたL4,1と揺らぎ確率データZ4,1から2値データS4,1= “0”又は“1”を決定して出力する。
【0028】
図2に示した第1データ生成ユニット11-1と第1データ変換ユニット12-1のタンデム接続からなる第1セット(第1タンデム接続セット)、第2データ生成ユニット11-2と第2データ変換ユニット12-2のタンデム接続からなるからなる第2セット(第2タンデム接続セット)、……、第iデータ生成ユニット11-iと第iデータ変換ユニット12-iのタンデム接続からなるからなる第iセット(第iタンデム接続セット)は、それぞれアメーバ・コンピュータの1本のアメーバ足に機能的に対応させることができる。例えば、図9に示すように、i=8とすれば、8つのタンデム接続セットのそれぞれは、図11に例示したような抵抗とダイオードの直列回路をそれぞれ備える8本の仮足ユニットのうちの1本に、それぞれ機能的に対応させることができる。図11に示したアメーバコア101は、8本の足を有する単細胞アメーバの構造に対応させて、放射状に8本の仮足ユニットを配列した構造を例示しているが、図2に示した構造は、より一般的なi本の足を有する単細胞アメーバの構造に対応させることができる。
【0029】
図11に示すように変数x1の値の決定を担う単細胞アメーバの2本の足に対応する出力端子X1,0と出力端子X1,1のペアの間に2入力NORゲート301の入力端子が接続されている。同様に、変数x2の値の決定を担う出力端子X2,0と出力端子X2,1のペアの間、変数x3の値の決定を担う出力端子X3,0と出力端子X3,4のペアの間、変数x4の値の決定を担う出力端子X4,0と出力端子X4,1のペアの間にも、それぞれ2入力NORゲート302,303,304の入力端子が接続されている。変数xiの添え字“i”を用いて、図11に示したアメーバコア101の出力端子を表記すると、2入力NORゲート301,302,303,304を用いることにより、Xi,0 = Xi,1 = 0となったときに強制的に回路を不安定化することが可能となり、Xi,0 = 1又はXi,1 = 1のいずれかの状態への確率的な遷移を促すことができ、コントラ・ルールの適用が不要になる。図11に示した8本の仮足ユニットは、出力調整信号(バウンスバック信号)と呼ばれる抑制信号が適用されるとき電気的縮退し出力電圧が減少し、そうでないとき電気的に伸長して出力電圧が増大する。しかし、生物である単細胞アメーバと同様に、電気的に伸長して出力電圧が増大するときにも、伸長しない「揺らぎ動作」が一定の揺らぎ確率で発生する。第1実施形態に係る解探索システムでは、この単細胞アメーバの動作を模した個々の「揺らぎ確率」を非一様に外部から設定する、あるいはユーザ指定の規則に従い毎ステップ更新する。
【0030】
第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから出力されてくるデータを読み取り、これを情報に変換する。第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから、例えば、デジタルデータとして“1”が出力されてきた場合には、これを読み取り、これに応じた情報として現ステップの値に“+1”を加算した値を出力する。
【0031】
また、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから、例えば、デジタルデータとして”0”が出力されてきた場合には、これを読み取り、これに応じた情報として現ステップの値に“-1”を加算した値を出力する。図11に示したアメーバコア101の8本の仮足ユニットは、単細胞アメーバの足の伸縮状態を表現する{-1,0,1}を出力できるので、8本の仮足ユニットの出力と、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iがそれぞれから出力する{-1,0,1}の情報とを対応させる。
【0032】
但し、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの取り得る値は、その最大値がXmax、最小値が-Xminとなるように制限しても良い。その場合、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの取り得る値は、-Xmin、…-1、0、+1、…+Xmax(Xmin及びXmaxは任意の値をとり得る)のうちのいずれかとなる。これはi本の仮足ユニットの出力が複数種類(複数段階)の値を取り得ることを示す。
【0033】
図11に示す単細胞アメーバの足の伸縮状態を3値の{-1,0,1}で表現する場合が簡単な例ではあるが、第1実施形態に係る解探索システムは3値に限定されるものではない。5値の{-2,-1,0,1,2}で伸縮状態を表現することも可能であり、一般にはKを正の奇数としてK値の値を取り得るように設計できる。5種類の値を取り得るために、例えば、-Xminが-2、+Xmaxが+2である場合を考えると、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの現ステップの値が+2の場合には、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれからの出力データの値とは無関係に、次ステップで値+1を出力し、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの現ステップの値が-2の場合には、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれからの出力データの値とは無関係に、次ステップで値-1を出力することにする。尚、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれから出力される情報としては、上述したものに限定されることなく、あくまで第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれからのデータに基づくものであれば、如何なるものであってもよいが、単細胞アメーバの足の伸び縮みに対応させ、単細胞アメーバの足の伸び縮みの揺らぎを活用することができる。
【0034】
図2に示すように、第1実施形態に係る解探索システムは更に、通常のノイマン式コンピュータシステムと同様に、入力装置21、表示装置23,出力装置24,データ記憶装置22及びプログラム記憶装置25等を備える。揺らぎ確率は、第1実施形態に係る解探索システムのユーザが、図2に示した入力装置21を介して、システムの外部から入力して設定しておくことにより、揺らぎ設定ユニット16が、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して独立して任意の揺らぎ確率の値に指定できる。更に、入力装置21を介して、最適化課題に係る問題インスタンスを、複数の含意形式の制約条件と、この制約条件の論理積の情報として入力できる。「含意形式」とは、論理学における「ならば」の形式を意味する。即ち、Aを前件、Bを後件としたとき「AならばB」という条件文の形式が含意形式である。入力装置21を介して入力された複数の含意形式の制約条件と、この制約条件の論理積とでSAT問題が表現できる。SAT問題として定式化された探索問題情報は、データ記憶装置22に格納しておくことができる。
【0035】
第1実施形態に係る解探索システムのフィードバック制御ユニット13は、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iにより変換された情報と、データ記憶装置22に格納されている探索問題情報に基づいて、SAT問題の最適解が得られたか判定する。最適解が得られていないと判定された場合は、フィードバック制御ユニット13は、出力調整ユニット14の第1信号調整回路141、第2信号調整回路142、第3信号調整回路143及び第4信号調整回路144を介して、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号(バウンスバック信号)を送信する動作を、最適解が得られるまで繰り返す。探索問題情報から複数のSAT解が得られた場合には、各SAT解の特定の一の変数の出現頻度が他の変数の出現頻度よりも相対的に多くなる、又は少なくなるものを解として、表示装置23や出力装置24を介して表示する。
【0036】
尚、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-i、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-i、フィードバック制御ユニット13、出力調整ユニット14、及び揺らぎ設定ユニット16の動作は、図示を省略したバスを介して制御ユニット17によって制御される。即ち図2では命令伝達経路の図示が省略されているが、制御ユニット17から、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-i、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-i、フィードバック制御ユニット13、出力調整ユニット14、及び揺らぎ設定ユニット16への命令の伝達経路がある。同様に、図2では命令伝達経路の図示が省略されているが、入力装置21を介して入力された情報はバスを介してデータ記憶装置22に格納される。データ記憶装置22に格納された情報はバスを介して、揺らぎ設定ユニット16やフィードバック制御ユニット13が読み出すことができる。
【0037】
また図2に示すように、中央処理装置1は更に制御ユニット17を備える。図2ではシークエンス回路の図示を省略しているが、制御ユニット17はシークエンス回路から出力される時系列に沿って、プログラム記憶装置25に格納された第1実施形態に係る解探索プログラムが命令する手順に従い、データ生成ユニット11、データ変換ユニット12、フィードバック制御ユニット13、出力調整ユニット14、及び揺らぎ設定ユニット16の動作が逐次制御する命令を出力する。プログラム記憶装置25には後述する図16に示したようなアルゴリズムに代表される解探索プログラムが格納されている。第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-i、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-i、フィードバック制御ユニット13、出力調整ユニット14、及び揺らぎ設定ユニット16等の各構成要素は、図11に例示したようなアメーバ・コンピュータに限定されるものではなく、これらの機能を発揮する如何なる既存の回路やデバイス、装置等で具現化されるものであってもよい。
【0038】
(第1実施形態に係る解探索方法の概略)
図16のフローチャートに示すように、第1実施形態に係る解探索方法では、先ずステップS101において、第1実施形態に係る解探索システムのユーザは、図2に示した入力装置21を介して最適化課題に係る問題インスタンスを、複数の含意形式の制約条件として入力する。入力された制約条件は、制約条件の論理積によりSAT問題として定式化し、これを探索問題情報とし、この探索問題情報をデータ記憶装置22に格納する。更に、ステップS102において入力装置21を介してユーザが、変数毎にそれぞれ別個に付与可能な複数の揺らぎ確率εi,bを入力し、入力した揺らぎ確率εi,bをデータ記憶装置22に格納する(“i”は変数xiの添字であり、“b”は2値データの値でありb=“0”又は“1”である。)。
【0039】
第1実施形態に係る解探索方法では、例えば、特定の変数xjの集合につき、状態xj = 1の出現頻度を相対的に多く、又は少なくすることで、最適解を高速かつ高確率で得ることができるように、ユーザが第1実施形態に係る解探索システムの外部から揺らぎ確率εi,bを、入力装置21を介して設定できる。xj = 1となる数が、残りの変数がxi = 1となる数よりも、なるべく少なくなるような解を高確率で得たい場合には、揺らぎ確率εj,1をεj,0、εi,0、εi,1より大きくする、すなわち、“j”を特定の変数xjの添字として、

εj,1>εj,0 =εi,0 =εi,1 ……(1)

となるように、第1実施形態に係る解探索システムの外部からユーザが個々に入力装置21を介して入力してもよい。第1実施形態に係る解探索方法では、このような特定の変数xj = 1の出現頻度を相対的に多く、又は少なくするように揺らぎ確率εi,bを外部から設定して、出現頻度に非一様性を持たせており、そのような非一様性を持ったSAT最適化アルゴリズムを「非一様SATアルゴリズム」と称する。
【0040】
各揺らぎ確率εi,bの値は、ユーザが指定する規則に従い、毎ステップで更新するようにしてもよい。一例として、ステップtのアメーバ足(i,b)の揺らぎ確率の値をεi,b(t)、ステップtのアメーバ足(j,c)のデータ変換ユニットの値をXj,c(t)とする。この場合、次ステップt+1のそれぞれのアメーバ足の揺らぎ確率εi,b(t+1)の値を、以下の式(2)で示されるような、ユーザ指定の活性化関数fで更新するようにしても良い。

εi,b(t+1)=f(Σj,c wi,b,j,c Xj,c(t))……(2)

式(2)の活性化関数fは、全データ変換ユニットの値Xj,c(t)のベクトル、ユーザ指定の重み行列 wi,b,j,cの積和演算関数である。最適化課題に係る問題インスタンスの目的関数に応じて重み行列 wi,b,j,cと活性化関数fを適切に設定すれば、揺らぎ確率εi,bの値が毎ステップ動的に更新され、より最適性の高い解を導出することが可能になる。
【0041】
そして、ステップS103において、データ記憶装置22に格納された複数の揺らぎ確率εi,bの集合を、揺らぎ設定ユニット16がデータ記憶装置22に格納された探索問題情報を考慮して読み出す。ステップS103では、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して、異なる揺らぎ確率を含む複数の揺らぎ確率εi,bを、それぞれ個別に供給する。その後、ステップS104において、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれが、独立した異なる揺らぎ確率に依拠して非一様のデータを生成し、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iがそれぞれ出力する特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値にする。更にステップS105において、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iと同数の第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iが、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iがそれぞれ生成されたデータを読み取って情報に変換する。
【0042】
図16のフローチャートに示したステップS106では、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iにより変換された情報、及び予め入力された探索問題情報に基づいてフィードバック制御ユニット13が、SAT解が得られたか判定する。ステップS106でフィードバック制御ユニット13が、SAT解が得られていると判定した場合はステップS108に進み、表示装置23又は出力装置24を用いて最終的なSAT解(最適解)を出力する。ステップS106でフィードバック制御ユニット13が、SAT解が得られていないと判定した場合は、ステップS107に進み、出力調整ユニット14から第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号(バウンスバック信号)を送信する。
【0043】
更に、ステップS107では、フィードバック制御ユニット13は、各揺らぎ確率εi,bの値をユーザが指定する規則に従い更新し、それらの値を揺らぎ設定ユニット16に送信するようにしてもよい。フィードバック制御ユニット13は、SAT解が得られたと判定されるまで、出力調整ユニット14に命令信号を送り、出力調整ユニット14が第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号を送信する、又は出力調整信号と更新された揺らぎ確率の値を送信する動作を繰り返させ、ステップS104→ステップS105→ステップS106→ステップS107→ステップS104のループの処理を繰り返し制御する。このように、フィードバック制御ユニット13が、複数の含意形式の制約条件とこの制約条件の論理積とで表現されたSAT問題の最終的なSAT解(最適解)が得られたと判定するまで、繰り返しループの処理が続けられる。
【0044】
(第1実施形態に係る解探索プログラムの概略)
図16に示した一連の解探索方法の処理は、図16と等価なアルゴリズムのコンピュータ・ソフトウェア・プログラムにより、図2に示した解探索システムを制御して実行出来る。このプログラムは、本発明の解探索システムを構成するコンピュータシステムのプログラム記憶装置25に記憶させればよい。また、第1実施形態に係る解探索プログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を解探索システムのプログラム記憶装置25に読み込ませることにより、本発明の一連の解探索方法を実行することができる。ここで、「コンピュータ読取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができるような媒体などを意味する。
【0045】
具体的には、フレキシブルディスク、CD-ROM,MOディスク、オープンリールテープなどが「コンピュータ読取り可能な記録媒体」に含まれる。例えば、情報処理装置の本体は、フレキシブルディスク装置(フレキシブルディスクドライブ)および光ディスク装置(光ディスクドライブ)を内蔵若しくは外部接続するように構成できる。フレキシブルディスクドライブに対してはフレキシブルディスクを、また光ディスクドライブに対してはCD-ROMをその挿入口から挿入し、所定の読み出し操作を行うことにより、これらの記録媒体に格納された解探索プログラムを、解探索システムを構成するプログラム記憶装置25にインストールすることができる。更に、インターネット等の情報処理ネットワークを介して、第1実施形態に係る解探索プログラムをプログラム記憶装置25に格納することが可能である。
【0046】
即ち、第1実施形態に係る解探索プログラムでは、図16のフローチャートに示したステップS101の処理に対応して、第1実施形態に係る解探索システムのユーザが、図2に示した入力装置21を介して最適化課題に係る問題インスタンスを、複数の含意形式の制約条件として入力すると、制御ユニット17は、入力された制約条件を、制約条件の論理積であるSAT問題として定式化した探索問題情報とし、この探索問題情報をデータ記憶装置22に格納させる命令を出す。更に、ステップS102において入力装置21を介してユーザが、変数毎にそれぞれ別個に付与可能な複数の揺らぎ確率εi,b、バイアス確率pi、閾値θi,bを入力すると、制御ユニット17は、入力した揺らぎ確率εi,b、バイアス確率pi、閾値θi,bをデータ記憶装置22に格納させる命令を出す。
【0047】
更に、図16のフローチャートのステップS103の処理に対応して、揺らぎ設定ユニット16に外部から入力された揺らぎ確率εi,b、バイアス確率pi、閾値θi,bの情報をデータ記憶装置22から読み出させる命令を、制御ユニット17が揺らぎ設定ユニット16に送信する。揺らぎ設定ユニット16はデータ記憶装置22から読み出した揺らぎ確率εi,bの情報に基づいて、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して独立した、異なる揺らぎ確率を供給する。また、揺らぎ設定ユニット16はデータ記憶装置22から読み出したバイアス確率piの情報に基づいて、第1信号調整回路141、第2信号調整回路142、……、第i信号調整回路のそれぞれに対して独立した、異なるバイアス確率を供給する。更に、揺らぎ設定ユニット16はデータ記憶装置22から読み出した閾値θi,bの情報に基づいて、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれに対して独立した、異なる閾値を供給する。
【0048】
そして、ステップS104の処理に対応して、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対し、独立した、異なる揺らぎ確率に依拠した非一様のデータを生成させることにより、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iがそれぞれ出力する特定の一の変数の出現頻度を他の変数の出現頻度とは異なる値に設定させる。そして、ステップS105の処理に対応して、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iと同数の第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iに対し、制御ユニット17は、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iがそれぞれ生成されたデータを読み取らせ、この読み取ったデータを情報に変換させる命令を送信する。
【0049】
図16のフローチャートのステップS106の処理に対応して、フィードバック制御ユニット13に対し、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iにより変換された情報、及び予め入力された探索問題情報に基づいて最適解が得られたかを判定させる命令を制御ユニット17が出力する。ステップS106でフィードバック制御ユニット13が、SAT解が得られていると判定した場合は、ステップS108に進ませる命令を制御ユニット17が出力する。ステップS108の処理に対応して、制御ユニット17は表示装置23又は出力装置24を用いて最終的なSAT解(最適解)を出力させる。ステップS106でフィードバック制御ユニット13が、SAT解が得られていないと判定した場合は、制御ユニット17はステップS107に進ませる命令を出力する。そして、ステップS107の処理に対応して、制御ユニット17は出力調整ユニット14に対し、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号(バウンスバック信号)を送信させる命令を出力する。なお、ステップS107では、フィードバック制御ユニット13に、各揺らぎ確率εi,bの値をユーザが指定する規則に従い更新させ、それらの値を揺らぎ設定ユニット16に送信させるようにすることも可能である。
【0050】
フィードバック制御ユニット13には、最終的なSAT解(最適解)が得られたと判定されるまで、出力調整ユニット14に命令信号を送り続ける命令を制御ユニット17が出力し、この命令により、出力調整ユニット14が第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号を送信する、又は出力調整信号と更新された揺らぎ確率の値を送信する動作を繰り返させる。この結果、ステップS104→ステップS105→ステップS106→ステップS107→ステップS104のループに対応する処理がフィードバック制御ユニット13によって繰り返し制御する。このようにして、第1実施形態に係る解探索プログラムによれば、複数の含意形式の制約条件とこの制約条件の論理積とで表現されたSAT問題の最適解を得ることができる。
【0051】
図2に例示した第1実施形態に係る解探索システム、図16のフローチャートに例示した第1実施形態に係る解探索方法及び図16のフローチャートに対応する第1実施形態に係る解探索プログラムによれば、非一様揺らぎとは別に、従来型の一様アメーバSAT解法において必要であった制約規則の一つコントラ(CONTRA)ルールを削除しても、最適解を求めることが可能になる。コントラ・ルールについては後述して説明する。即ち、第1実施形態に係る解探索システム、解探索方法及び解探索プログラムによれば、最適化アルゴリズムを複雑化することなくSAT問題を解くという一つの目的が実現される。また、探索問題情報から複数のSAT解が得られる場合があるが、その場合において、各SAT解における変数の出現確率を個別に設定可能とする、即ち、第1実施形態に係る解探索システム、解探索方法及び解探索プログラムによれば、特定の一の変数の出現頻度が他の変数の出現頻度よりも相対的に多くなる、又は少なくなるように設定できるように、特定のデータに非一様に揺らぎ確率を設定することで、高速かつ効率的にSAT問題を解くことが可能となる。更に、探索問題情報(定式化された一つの論理式)におけるプログラム変数を変更可能とすることで、様々な問題インスタンスを表現できるため、ハードウェアを変えることなく、即ち、問題インスタンスが変更されても同一回路で、最適解を求めることができる。プログラム変数を変更可能にする処理については後述する。
【0052】
第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iは、設定された非一様な揺らぎ確率に従い、それぞれ非一様のデータを出力する。第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iから出力されるデータは、2値化されたデジタルデータであってもよいし、又はアナログデータであってもよいが、以下の説明では、“1”又は“0”の何れかを出力する場合を例にとり説明をする。また、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iの何れか一つ以上は、出力調整ユニット14から出力されてくる出力調整信号(バウンスバック信号)を受信する。そして、この出力調整信号を受信した第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iは、これに基づいて出力すべき非一様のデータを制御する。
【0053】
図3に示すように、第1データ生成ユニット11-1に着目すると、その第1データ生成ユニット11-1に対して出力調整信号が供給された場合、第1データ生成ユニット11-1は、“0”を出力する頻度が高くなるように設定できる。この場合、図4に示すように、第1データ生成ユニット11-1に対して出力調整信号が供給されない場合、第1データ生成ユニット11-1は、“1”を出力する頻度が高くなる。尚、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれは、図3及び図4に示した機能を実現できるものであれば、如何なる形態で具現化されるものであってもよい。第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれは、例えば、“1”又は“0”の何れかを一定時間間隔で出力可能なアメーバ・コンピュータの回路ユニットで構成してもよいし、又は第1実施形態に係る解探索プログラムをコンピュータに実行させる際には、物理的なハードウェア資源に限定されず、仮想的に定義されたソフトウェアにおける概念的な構成要素(論理回路)として考えることも可能となる。
【0054】
第1実施形態に係る解探索システムの第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iから出力されるデータは、無相関の確率的乱数のようにランダムに出力されるもののみならず、カオス力学系や非線形振動子結合系のようなシステムから出力される空間相関や時間相関を持つ揺らぎを伴った状態で出力されるものを含める。この出力されるデータに持たせる非一様な出現頻度の特性は、揺らぎ設定ユニット16が供給する非一様な揺らぎ確率に基づいて決定される。既に述べたとおり、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、個々の第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから出力されてくるデータを読み取り、その出力された個々のデータに基づいてそれぞれ情報変換を行う。第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、この情報変換を行った情報を出力する。
【0055】
この時、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの取り得る値-Xmin、…-1、0、+1、…+Xmaxがある閾値θi,bより大きいか、又はある閾値θi,b以下であるかを出力するようにしてもよい。閾値θi,bは、データ変換ユニットに対応させられる各i 及びbごとに独立に異なる値を設定することも可能である。また、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれから出力する情報としては、これら正又は負の2値データに限定されることなく、変換されたデータに基づくものであれば、如何なるものであってもよい。
【0056】
また、変数がN個の場合に、これら第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれ及び第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれは、N個で構成するようにしてもよいし、又は2N個で構成するようにしてもよい。第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれから出力された情報は、フィードバック制御ユニット13へと送られることとなる。また、この出力される情報を表示装置23等の画面上に表示するようにしてもよい。
【0057】
フィードバック制御ユニット13は、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれにより変換されて出力された情報を受信する。このフィードバック制御ユニット13は、受信した情報、及び予め入力されデータ記憶装置22に格納された探索問題情報に基づいて、出力調整ユニット14による出力調整信号(バウンスバック信号)の送信を制御する。具体的には、フィードバック制御ユニット13は、かかる出力調整信号が送信される第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれ毎に、その出力調整信号の送信の有無を制御する。また、フィードバック制御ユニット13は、出力調整信号の送信制御の繰り返しを経て最終的に第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれにより変換された情報に基づき、探索問題情報に対する最適解を表示する。この最適解の表示は、表示装置23等のユーザインタフェースを介して表示するようにしてもよい。
【0058】
出力調整ユニット14は、フィードバック制御ユニット13からの制御に基づいて、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対して出力調整信号を送信する、又は出力調整信号と更新された揺らぎ確率の値を送信する。この出力調整信号は、フィードバック制御ユニット13からの制御に基づいて、すべての第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iに対して供給される場合もあれば、その逆としてすべての第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iに対して供給されない場合もある。この出力調整信号が供給された第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれは、出力調整信号が供給されない第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれと比較して、出力されるデータが異なる傾向を持つこととなる。
【0059】
揺らぎ設定ユニット16は、非一様の揺らぎ確率を供給することにより、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから出力されるデータに、非一様の出現頻度を付与するデバイスである。第1実施形態に係る解探索システムは、図16のフローチャートに示したように、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-i、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-i、フィードバック制御ユニット13の順に、処理動作が進行し、最終的なSAT解(最適解)が求まるまで出力調整ユニット14からの出力調整信号の送信を行うことで、これらの処理動作が繰り返し実行される。
【0060】
第1実施形態に係る解探索システムでは、いずれかの第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iに対して出力調整信号(バウンスバック信号)を送信し、又は送信しないかを、予め入力されデータ記憶装置22に格納された探索問題情報に基づいて制御することとなる。換言すれば、フィードバック制御ユニット13は、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから出力され、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれにより変換された情報と、データ記憶装置22に格納された探索問題情報との2つの要因に基づいて、出力調整ユニット14による出力調整信号の送信を制御する。
【0061】
「探索問題情報」とは、命題論理式で表されるものを含むあらゆる制約や目的関数などの問題情報を含むものである。データ記憶装置22に格納される探索問題情報は、最適解探索問題に関するあらゆる問題情報と解されるものであってもよい。データ記憶装置22に格納された探索問題情報は、例えば、N個の変数からなる命題論理式で表されるものであってもよい。探索問題情報は、(P0?P1?・・・・?Pn) =“真”(“1”)又は“偽”(“0”)、(ここで、“?” は論理和(or)、論理積(and)等を始めとした如何なる演算記号を適用してもよい。)で表される。第1実施形態に係る解探索システムでは、探索問題情報の最適解を探索させる上で、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれから出力され、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれにより変換された情報に応じて、探索問題情報として命題論理式を満たさないものを排除するように、出力調整信号の供給制御を行う。これを利用することで、例えば、探索問題情報として、命題論理式の全体の値を“真”(“1”)にするために充足可能な変数を探索するSAT問題を与えることで、その解を探索することも可能となる。
【0062】
例えば、図5は、与えられたブール式F11乃至ブール式F16で表現された6個の選言節の論理積を1(“真”)にするための命題論理式を示している。この命題論理式は、4個の変数x1,2,3,4と、6個の選言節を持つ式である。6個の選言節が論理積(and)で結ばれているので、6個の選言節の論理積を1とするためには、各選言節をすべて1にしなければならないことが分かる。例えば、図5のブール式F11=(x1又は~x2)に着目した場合に、仮に、x1が“0”である場合には、x2を“0”にしない限りブール式F11を“1”にすることができない。なお、本明細書においては、括弧内に示すブール式の表記では、ブール論理記号“~”により否定(NOT)を表記している。ブール式F11=(x1又は~x2)でx1=“0”の場合には、x2が“1”であることを打ち消すような制御を行う。また、x2が“1”である場合には、x1が“0”であるとブール式F11を“1”にすることができない。ブール式F11=(x1又は~x2)でx2=“1”の場合には、x1が“0”であることを打ち消すような制御を行う。
【0063】
また、ブール式F12=(~x2又はx3又は~x4)に着目した場合、x3が“0”かつx4が“1”である場合には、x2が“1”であるとブール式F12を“1”にすることができない。かかる場合には、x2が”1”であることを打ち消すような制御を行う。同様に、x2が”1”でx3が“0”である場合には、x4が“1”であるとブール式F12を“1”にすることができない。かかる場合には、x4が”1”であることを打ち消すような制御を行う。同様に、x2が”1”でx4が”1”である場合には、x3が“0”であるとブール式F12を“1”にすることができない。かかる場合には、x3が“0”であることを打ち消すような制御を行う。
【0064】
残りのブール式F13=(x1又はx3)乃至ブール式F16=(~x1又はx4)についても、図5に示したように、同様の論理に基づいて、命題論理式の全体の値を“真”にするために、命題論理式を満たさないものを排除するような制御をする。これにより、命題論理式の全体の値を“真”へと導くことが可能となる。また、このような解探索を行う上で、第1実施形態に係る解探索システムでは、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの保持する情報に応じて、探索問題情報としての命題論理式を満たさないものを排除するように、第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iのそれぞれに対する出力調整信号(バウンスバック信号)の供給を行うことができる。このため、図5に例示されるような命題論理式からなる探索問題情報を与えることにより、これに沿った出力調整信号の供給動作を行い、最終的には探索問題情報としての命題論理式を満たすような第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iのそれぞれの出力状態に到達することとなる。
【0065】
特に、図5に示すブール式F11乃至ブール式F16のような複数の選言節の論理積からなる命題論理式を解く場合においても、これをフィードバック制御ユニット13において探索問題情報として入力しておくことにより、データ記憶装置22に格納された探索問題情報に沿って出力調整信号の供給制御が行われ、解へと導くことが可能となる。尚、図5に示すSAT解は、(x1, x2, x3, x4) = (1, 1, 1, 1)であるが、第1実施形態に係る解探索システムにより、この解を得ることが可能となる。
【0066】
また、第1実施形態に係る解探索システムでは、命題論理式を解く場合において、最適化課題に係る問題インスタンスを、複数の「ならば」の形式(含意形式)の制約条件と、複数の制約条件の論理積とで表現されたSAT問題として定式化する。「含意形式の制約条件」は、後述するアメーバSAT解法のインター(INTER)ルールに相当する。これにより、後述するアメーバSAT解法のコントラ・ルールを削除しても、最適解を求めることが可能になり、最適化アルゴリズムを複雑化することなくSAT問題を解くことが可能となる。
【0067】
しかし、例えば、図6(a)に示す命題論理式の場合、SAT解は、(x1, x2, x3, x4) = (1, 1, 1, 1)、(1, 1, 1, 0)、(1, 1, 0, 0)、(1, 0, 0, 0)の4つとなる。図6(b)は図6(a)に示した命題論理式が、5個の選言節にそれぞれ対応する「ならば」の形式(含意形式)の制約の論理積で表現されることを示す。図6(a)に示す命題論理式の中から最適解を選択する必要があるが、第1実施形態に係る解探索システムでは、各SAT解における変数の出現確率を個別に設定可能とする、即ち、x1, x2, x3, x4のうちの一の変数の出現頻度が他の変数の出現頻度よりも相対的に多くなる、又は少なくなるように揺らぎ確率を設定できるようにすることで、高速かつ効率的に一つの解を選択することができる。一例として、xj (jは奇数) = 1の出現頻度が最も少ない解を選ぶように設定して「非一様性」を導入した場合、解は、(x1, x2, x3, x4) = (1, 1, 0, 0)、(1, 0, 0, 0)の2つに絞り込むことができる。
【0068】
図7A及び図7Bに、第1実施形態に係る解探索システムの含意形式(「ならば」の形式)で制約条件を表現した事例として、物流倉庫内の台車の自動搬送システムの最適化を説明する。図7Aは物流倉庫内の単位搬送区画(セル)の2次元配置を示している。単位搬送区画内の矢印は移動方向の制約を示している。図7Bの横軸は運行単位時間をセルサイズとする時間軸である。図7Bでは、それぞれ運行単位時間を構成する時刻1乃至時刻28からなる28の運行単位時間の配列が横軸に示されている。図7Bの縦軸は、図7Aに示した物流倉庫内の単位搬送区画の2次元配列を、縦軸に沿った1次元の配列に変換し、単位搬送区画をセルサイズとする空間的な位置を示す座標軸である。図7A及び図7Bにおいて、右上がりのハッチングで示したセルは第1台車v1を示し、左上がりのハッチングで示したセルは第2台車v2を示す。台車vが単位搬送区画(セル)iで時刻(運行単位時間)pに存在することをxv,i,p = 1と表現する。第1台車v1が荷積みをするセル7(F1で示す)から荷降ろしをするセル5(T1で示す)へ荷物を運び、第2台車v2が荷積みをするセル15(F2で示す)から荷降ろしをするセル17(T2で示す)へ荷物を運ぶように要求された場合、以下のように3つの制約条件の集合を定義しておくことで、第1制約条件乃至第3制約条件のすべて充足する解は、台車の搬送要求を満たすスケジュール(図7B)を表現することができる。
【0069】
(第1制約条件):同一台車の複数セルへの分身を禁止する制約条件: xv,i,p = 1ならば、xv,j,p= 0でなければならない。
(第2制約条件):複数台車の同一セルでの共存を禁止する制約条件: xv,i,p = 1ならば、xw,j,p= 0でなければならない。
(第3制約条件):ある台車の搬送要求を表現する制約条件: 指定の荷積み/荷降しセルへ行き、指定時間tv滞在しなければならない。
【0070】
図7Bに示すように、右上がりのハッチングで示した第1台車v1は時刻1でセル2に位置しているが、時刻2でセル2の左側のセル1に移動し、時刻3でセル1の下側のセル4に移動している。更に、右上がりのハッチングで示した第1台車v1は、時刻4でセル4の左側のセル3に移動し、時刻5でセル3の下側のF1で示したセル7に移動し、荷積みのため時刻8まで停滞している。右上がりのハッチングで示した第1台車v1は時刻9でセル7の下側のセル11に移動し、時刻10でセル11の下側のセル15に移動し、時刻11でセル15の下側のセル19に移動し、時刻12でセル19の右側のセル20に移動し時刻13まで停滞している。
【0071】
更に、右上がりのハッチングで示した第1台車v1は時刻14でセル20の下側のセル23に移動し、時刻15でセル23の右のセル24に移動し、時刻16でセル24の上側のセル21に移動し、時刻17でセル21の右側のセル22に移動している。更に、右上がりのハッチングで示した第1台車v1は時刻18でセル22の上側のセル18に移動し、時刻19でセル18の上側のセル14に移動し、時刻20でセル14の上側のセル10に移動し、時刻21まで停滞している。そして、右上がりのハッチングで示した第1台車v1は時刻22でセル10の上側のセル6に移動し時刻23まで停滞した後、時刻24でセル6の左側の目的地であるT1で示したセル5に移動し荷降ろしのため時刻27まで停滞している。
【0072】
左上がりのハッチングで示した第2台車v2は時刻1でセル1に位置しているが、時刻2でセル1の下側のセル4に移動し、時刻3でセル4の左側のセル3に移動している。更に、左上がりのハッチングで示した第2台車v2は、時刻4でセル3の下側のセル7に移動し、時刻5でセル7の下側のセル11に移動し、時刻6でセル11の下側のF2で示したセル15に移動し荷積みのため時刻9まで停滞している。更に、左上がりのハッチングで示した第2台車v2は、時刻10でセル15の下側のセル19に移動し、時刻11でセル19の右側のセル20に移動し、時刻12でセル20の下側のセル23に移動し、時刻15でセル23の右のセル24に移動し、時刻14でセル24の上側のセル21に移動し、時刻15で目的地となるセル21の上側のT2で示したセル17に移動し、荷降ろしのため時刻18まで停滞している。更に、左上がりのハッチングで示した第2台車v2は時刻19でセル17の上側のセル13に移動し時刻20まで停滞している。その後、時刻21でセル13の上側のセル9に移動し、時刻22でセル9の上側のセル5に移動し、時刻23でセル5の上側のセル2に移動し、時刻24でセル2の左側のセル1に移動し時刻26まで停滞した後、時刻25でセル1の下側のセル4に移動している。
【0073】
また、図8Aに、新型となる非一様アメーバSAT解法を用いた第1実施形態に係る解探索システムを物流倉庫内の台車の自動搬送システム最適化に適用して、データに付与する揺らぎを非一様にした場合の効果について示す。図8Bは比較のために、従来型の一様アメーバSAT解法を同様な物流倉庫内の台車の自動搬送システム最適化に適用した場合の効果について示す。図7A及び図7Bと同様に、図8A及び図8Bの横軸は運行単位時間をセルサイズとする時間軸である。図8A及び図8Bの縦軸は、単位搬送区画をセルサイズとする空間的な位置を示す座標軸である。図7A及び図7Bと同様に、図8A及び図8Bにおいて、右上がりのハッチングで示したセルは第1台車v1を示し、左上がりのハッチングで示したセルは第2台車v2を示している。図8Aに示す新型となる非一様アメーバSAT解法を用いた第1実施形態に係る解探索システムによるスケジューリングでは、右上がりのハッチングで示した第1台車v1は時刻1でセル1に位置しているが、時刻2でセル1の下側のセル4に移動し、時刻3でセル4の左側のセル3に移動している。
【0074】
更に、時刻4でセル3の下側に位置する、図7AにF1で示したセル7に移動し、荷積みのため時刻6までセル7に停滞している。荷積みの終わった第1台車v1は時刻7でセル7の下側のセル11に移動し、時刻8でセル11の下側のセル15に移動し、時刻9でセル15の下側のセル19に移動し、時刻10でセル19の右側のセル20に移動している。更に、右上がりのハッチングで示した第1台車v1は時刻11でセル20の下側のセル23に移動し、時刻12でセル23の右のセル24に移動し、時刻13でセル24の上側のセル21に移動し、時刻14でセル21の右側のセル22に移動している。更に、右上がりのハッチングで示した第1台車v1は時刻15でセル22の上側のセル18に移動し、時刻16でセル18の上側のセル14に移動し、時刻17でセル14の上側のセル10に移動している。そして、右上がりのハッチングで示した第1台車v1は時刻18でセル10の上側のセル6に移動し、時刻19でセル6の左側の目的地であるT1で示したセル5に移動し荷降ろしのため時刻22まで停滞している。荷降ろしの終わった第1台車v1は時刻24でセル5の上側のセル2に移動し、時刻25まで停滞した後、時刻26でセル2の左側のセル1に戻っている。
【0075】
図8Aに左上がりのハッチングで示した第2台車v2は時刻1でセル4に位置しているが、時刻2でセル4の左側のセル3に移動している。更に、左上がりのハッチングで示した第2台車v2は、時刻3でセル3の下側のセル7に移動し、時刻4でセル7の下側のセル11に移動し、時刻5でセル11の下側に位置する、図7AでF2として示したセル15に移動し荷積みのため時刻7まで停滞している。荷積みの終わった第2台車v2は、時刻8でセル15の下側のセル19に移動し、時刻9でセル19の右側のセル20に移動し、時刻10でセル20の下側のセル23に移動し、時刻11でセル23の右のセル24に移動し、時刻12でセル24の上側のセル21に移動し、時刻13で目的地となるセル21の上側に位置する、図7AにT2としてセル17に移動し、荷降ろしのため時刻15まで停滞している。荷降ろしの終わった第2台車v2は時刻16でセル17の上側のセル13に移動し、時刻17でセル13の上側のセル9に移動し、時刻18でセル9の上側のセル5に移動し、時刻19でセル5の上側のセル2に移動し、時刻20でセル2の左側のセル1に移動し、時刻21でセル1の下側のセル4に移動している。荷降ろしの終わった第2台車v2は時刻22でセル4の下側のセル8に移動し時刻23まで停滞している。その後、時刻24でセル8の下側のセル12に移動し、時刻25でセル9の下側のセル16に移動している。
【0076】
一方、図8Bに示す従来型の一様アメーバSAT解法によるスケジューリングでは、右上がりのハッチングで示した第1台車v1は時刻1でセル4に位置しているが、時刻2でセル4の左側のセル3に移動し、時刻3でセル3の下側に位置する、図7AにF1で示したセル7に移動し、荷積みのため時刻6までセル7に停滞している。荷積みの終わった第1台車v1は時刻7でセル7の下側のセル11に移動し、時刻8でセル11の下側のセル15に移動し、時刻9でセル15の下側のセル19に移動し、時刻10でセル19の右側のセル20に移動している。更に、右上がりのハッチングで示した第1台車v1は時刻11でセル20の下側のセル23に移動し、時刻12でセル23の右のセル24に移動し、時刻13でセル24の上側のセル21に移動し、時刻14でセル21の上側のセル17に移動している。更に、右上がりのハッチングで示した第1台車v1は時刻15でセル17の上側のセル13に移動し、時刻16でセル13の上側のセル9に移動し、時刻17でセル9の上側の目的地として図7AにT1で示したセル5に移動し、荷降ろしのため時刻22まで停滞している。荷降ろしの終わった第1台車v1は時刻23でセル5の上側のセル2に移動し時刻24まで停滞した後、時刻25でセル2の左側のセル1に戻って時刻26まで停滞した後、時刻27でセル1の下側のセル4に移動している。
【0077】
図8Bに示す従来型の一様アメーバSAT解法によるスケジューリングでは、左上がりのハッチングで示した第2台車v2は、時刻4でセル7の下側のセル11に位置しているが、時刻5でセル11の下側に位置する、図7AでF2として示したセル15に移動し荷積みのため時刻7まで停滞している。途中が不明であるが、荷積みの終わった第2台車v2は、時刻14でセル22に位置し、時刻17まで停滞している。第2台車v2は時刻18でセル22の上側のセル18に移動し時刻19まで停滞した後、時刻20でセル18の上側のセル14に移動し時刻21まで停滞している。第2台車v2は、時刻22でセル14の上側のセル10に移動し、時刻23でセル10の上側のセル6に移動し時刻24まで停滞している。第2台車v2は、時刻25でセル6の左側のセル5に移動し、時刻26でセル5の上側のセル2に移動している。第2台車v2は時刻27でセル2の左側のセル1に移動している。
【0078】
図8Aに示すように、非一様アメーバSAT解法を用いた第1実施形態に係る解探索システムでは、台車の停留状態が少ない、最適性の高い解が得られるのに対し、図8Bに示すように、従来型の一様アメーバSAT解法で得られる解は、水平の両向き矢印で示した台車の停留状態が多い、最適性の低い解となる。第1台車v1のセル5における荷降ろしのための停滞時間は、図8Aでは、時刻19から時刻22までの指定滞在時間である4運行単位時間であるのに対し、図8Bでは、時刻17から時刻22までの6運行単位時間滞在している。又、図8Bに示す従来型の一様アメーバSAT解法で得られる解では、左上がりのハッチングで示した第2台車v2は、セル22において、時刻14から時刻17まで水平の両向き矢印で示した4運行単位時間停滞している。更に、図8Bに示す従来型の一様アメーバSAT解法で得られる解では、第2台車v2は、セル18で時刻20から時刻21まで、セル14で時刻22から時刻23まで、セル6で時刻23から時刻24までと、それぞれ水平の両向き矢印で示した2運行単位時間停滞している。
【0079】
第1実施形態に係る解探索システムにおいて、「最適性の高い解」とは、より短時間ですべての台車の搬送を終えられるスケジューリングの解、即ち、セルiで停留する状態xv,(i,i),p = 1の数がより少ないスケジューリングの解のことを意味する。例えば、図8Bに示す従来型の一様アメーバSAT解法では、セル22で停留する状態はx2,(22,22),p = 1で示される。物流倉庫内の台車の自動搬送システムの場合は、台車の停留状態xv,(i,i),p = 1を表現するアメーバ足xv,(i,i),p,1が相対的に伸長して値1をとり難くなるよう、添字が(i,i)となる足の揺らぎ確率を、他の(添字が(i,j≠i)となる)アメーバ足の揺らぎ確率よりも相対的に大きくすればよい。ここで「アメーバ足xv,(i,i),p,1」とは、図11に示すような、複数の足を有する単細胞アメーバの構造を模した放射状の回路である仮足ユニットの出力電圧である。図11に示すような、複数本足のアメーバ・コンピュータを用いることにより、回路を流れる電流ダイナミクスの並行性や、デバイスの揺らぎからもたらされる確率的動作が活用され、最適性の高い解(スケジュール)が選択的に高確率で得られる。
【0080】
SAT問題は、ソフトウェア/ハードウェア検証、情報セキュリティー関連技術等を含む、多くのアプリケーションで使用され、今後も重要性が向上するものと考えられるが、新型となる非一様アメーバSAT解法を用いた第1実施形態に係る解探索システムにより、スケジューリングの最適解を高速かつ簡易に求めることが可能となる。尚、第1実施形態に係る解探索システムでは、命題論理式を予めフィードバック制御ユニット13のレジスタに読み出しておくことで、同様の手法によりその解を得ることが可能となる。例えば、ハミルトン閉路問題や、ナップサック問題を始めとした問題をSAT問題に変換して解くこともできるが、これらの変換機能をフィードバック制御ユニット13に持たせるようにしてもよい。これにより、SAT問題以外の探索問題情報が入力されても、これをSAT問題に変換することで解を求めることも可能となる。SAT問題以外の探索問題をSAT問題に変換する方法は、従来の如何なる手法も採用することができる。
【0081】
SAT問題は、アメーバ・アルゴリズムが定義するイントラ(INTRA)、インター、及びコントラという3つの制約規則に基づいて実行していくこととなるが、第1実施形態に係る解探索システムでは、上記した通り、コントラ・ルールを削除しても最適解に到達できるという顕著な効果を有する。即ち、最もサイズが大きくメモリ空間や回路面積/配線等の実装コストが嵩むコントラ・ルールを削除しても、出力調整信号(バウンスバック信号)の状態値を制御することで、最適解を得ることができる。
【0082】
ここで、アメーバ・コンピュータの「イントラ・ルール」、「インター・ルール」及び「コントラ・ルール」の3つの制約規則について説明する。例えば、図9に示す第1実施形態に係る解探索システムの第1データ生成ユニット11-1と第1データ変換ユニット12-1からなる第1セット、第2データ生成ユニット11-2と第2データ変換ユニット12-2からなる第2セット、……、第8データ生成ユニット11-iと第8データ変換ユニット12-iからなる第8セットのそれぞれのタンデム接続セットは、図11に例示したような抵抗とダイオードの直列回路をそれぞれ備える8本の仮足ユニットのうちの1本に対応している。図9に示すように、4変数x1, x2, x3, x4のうちの1の変数への値の割当てを、それぞれ2つのデータ変換ユニットのペアからの出力で表現する場合を想定する。
【0083】
即ち、第1実施形態に係る解探索システムでは、図9に示すように上から1番目と2番目に並んだ2つの第1データ変換ユニット12a、第2データ変換ユニット12bのペアで1の変数x1を表現する。更に上から3番目と4番目に並んだ2つの第3データ変換ユニット12c、第4データ変換ユニット12dのペアで1の変数x2を表現する。更に上から5番目と6番目に並んだ2つの第5データ変換ユニット12e、第6データ変換ユニット12fのペアで1の変数x3を表現する。更に上から7番目と8番目に並んだ2つの第7データ変換ユニット12g、第8データ変換ユニット12hのペアで1の変数x4を表現する。
【0084】
図9では、単細胞アメーバの8本の足に対応する8個の第1データ生成ユニット11a乃至第8データ生成ユニット11hと、第1データ生成ユニット11a乃至第8データ生成ユニット11hから出力されたデータを読み取る8個の第1データ変換ユニット12a乃至第8データ変換ユニット12hの状態により、4変数x1, x2, x3, x4の真偽値(“0”又は”1”)を表現している。図9から分かるように、一般に、N変数の真偽値を表現する場合には、2N個のデータ生成ユニットと、これらのデータ生成ユニットから出力されたデータを読み取る2N個のデータ変換ユニットとが必要となる。図9では、各変数x1~x4に対し、奇数番の第1データ変換ユニット12a、第3データ変換ユニット12c、第5データ変換ユニット12e、第7データ変換ユニット12gは、それぞれの変数xiに値“0”が割当てられることを表現している。又偶数番の第2データ変換ユニット12b、第4データ変換ユニット12d、第6データ変換ユニット12f、第8データ変換ユニット12hに対しては、それぞれの変数xiに値“1”が割当てられることが表現されている。
【0085】
図9に示すように、第1データ変換ユニット12a乃至第8データ変換ユニット12hにより、4変数x1, x2, x3, x4の真偽値割当を表現したい場合、例えば、偶数番の第2データ変換ユニット12b、第4データ変換ユニット12d、第6データ変換ユニット12f、第8データ変換ユニット12hのみが所定の閾値より大きい値(例えば“0”より大きい)をとり、奇数番の第1データ変換ユニット12a、第3データ変換ユニット12c、第5データ変換ユニット12e、第7データ変換ユニット12gが所定の閾値以下の値(例えば“0”以下)をとるとき、真偽値割当(x1, x2, x3, x4) = (1, 1, 1, 1)が表現されることとなる。第1データ変換ユニット12a、第4データ変換ユニット12d、第5データ変換ユニット12e、第8データ変換ユニット12hのみが所定の閾値より大きい値をとるとき、これは、真偽値割当(0101)を表す。また、第2データ変換ユニット12b、第3データ変換ユニット12c、第6データ変換ユニット12f、第7データ変換ユニット12gのみが所定の閾値より大きい値をとるとき、これは真偽値割当(1010)を表す。
【0086】
図9に示すようなN変数の真偽値割当を表現する2N個のデータ変換ユニットを用いる場合において、「イントラ・ルール」は、1の変数xiの真偽値を表現するデータ変換ユニットのペアに着目した場合において、それらの双方が所定の閾値より大きい値をとる状態(変数xiが値“0”であり、かつ値“1”であるという矛盾)が生じないようにするための出力調整信号(バウンスバック信号)を供給する制約規則である。そのために、1の変数xiに対応するデータ変換ユニットのペアの一方が正の値をとるならば、他方のデータ変換ユニットが正の値をとらなくなるように、対応するデータ生成ユニットに出力調整信号の供給制御を行うこととなる。図15(a)は、図5に示した命題論理式のイントラ・ルールを8つの条件式で示している。例えば、x1の“0”に対応するデータ変換ユニットが所定の閾値より大きい値をとった(excited)場合には、x1の“1”に対応するデータ変換ユニットが所定の閾値より大きい値をとることを抑制(inhibit)するために、対応するデータ生成ユニットへ出力調整信号を供給する。同様に、x1の“1”に対応するデータ変換ユニットが所定の閾値より大きい値をとった(excited)場合には、x1の“0”に対応するデータ変換ユニットが所定の閾値より大きい値をとることを抑制(inhibit)するために、対応するデータ生成ユニットへ出力調整信号を供給する。
【0087】
「インター・ルール」は、与えられた探索問題情報に基づいた出力調整信号(バウンスバック信号)を供給する制約規則である。図15(b)は、図5に示した命題論理式のインター・ルールを13の条件式で示している。例えば、図5におけるF11=(x1又は~x2)に着目した場合、x2の“1”に対応するデータ変換ユニットが所定の閾値より大きい値をとった(excited)場合には、x1の“0”に対応するデータ変換ユニットが所定の閾値より大きい値をとることを抑制(inhibit)するために、対応するデータ生成ユニットへ出力調整信号を供給する。同様に、x1の“0”に対応するデータ変換ユニットが所定の閾値より大きい値をとった(excited)場合には、x2の“1”に対応するデータ変換ユニットが所定の閾値より大きい値をとることを抑制(inhibit)するために、対応するデータ生成ユニットへ出力調整信号を供給する。
【0088】
「コントラ・ルール」は、インター・ルールに基づいて出力調整信号(バウンスバック信号)の供給制御を行おうとする場合に生じる論理矛盾を解消するための出力調整信号を供給する制約規則である。図5に示した命題論理式の場合で説明すると、x2が“1”である場合にx1が“0”である状態を打ち消すブール式F11=(x1又は~x2)、x3が“0”である場合にx1が“0”である状態を打ち消すブール式F13=(x1又はx3)、x4が“0”である場合にx1が“1”である状態を打ち消すブール式F16=(~x1又はx4)が定義されている。このため、例えばx2が“1”であり、かつx4が“0”である場合に、x1が“0”である状態も“1”である状態も打ち消されるという論理矛盾が生じてしまう。こうした事態を防ぐために、かかる場合にはx2が“1”である状態とx4が“0”である状態が同時に生じないようにコントラ・ルールで制御する。同様にx3が“0”であり、かつx4が“0”である場合には、x1の状態が“0”であることも“1”であることも許されなくなってしまう矛盾が生じる。こうした事態を防ぐために、かかる場合にはx3が“0”であり、かつx4が“0”である状態が同時に生じないようにコントラ・ルールで制御する。
【0089】
又、図5に示した命題論理式には、x2が“1”であり、かつx4が“1”である場合に、x3が“0”である状態を打ち消すブール式F12=(~x2又はx3又は~x4)が定義されている。同様にx2が“0”である場合にx3が“1”である状態を打ち消すブール式F14=(x2又は~x3)が定義されている。このため、x2が“1”であり、x4が“1”であり、かつx2が“0”である場合には、x3は“0”と“1”の何れも取りえないこととなり、論理矛盾が生じる。かかる場合においても同様に、x2が“1”、x4が“1”、かつx2が“0”の状態が同時に生じないようにコントラ・ルールで制御する。図15(c)は、図5に示した命題論理式のコントラ・ルールを9つの条件式で示している。コントラ・ルールは、探索問題情報に基づいて出力調整信号(バウンスバック信号)の供給制御を行うブール式に対して適用されるインター・ルールにおいて、各変数が“真”と“偽”のいずれの値をとることも共に禁じられてしまうような状態の組合せを列挙することで得られる制約規則の集合である。第1実施形態に係る解探索システムでは、このコントラ・ルールを削除することができるという顕著な効果を奏する。
【0090】
第1実施形態に係る解探索システムではコントラ・ルールの適用を不要として、最適性の高い解を得ることができることが特徴の一つである。従来技術の「コントラ・ルール」の適用が必要なシステムと、第1実施形態に係る解探索システムにおける「コントラ・ルール」を不要にする構成では、出力調整信号の取り扱いが異なる。「コントラ・ルール」の適用が必要な従来技術の場合には、図17に示すように、“i”を変数xiの添字i=1乃至4のいずれか、“b”を2値データ=”0”又は“1”として、各iとbについて、出力調整ユニット149が決定した出力調整信号Li,bがそのまま第1データ生成ユニット11-1乃至第8データ生成ユニット11-8に入力される。そして、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8は、出力調整信号Li,bと揺らぎ確率データZi,bから2値データSi,b = “0”又は“1”を決定し出力することになる。
【0091】
これに対し、第1実施形態に係る解探索システムでは、図9を用いて既に説明したとおり、各変数xiの添字iについて、出力調整ユニット14内の主出力調整回路140が決定した2つの「仮決定」の出力調整信号L'i,0と出力調整信号L'i,1が第1信号調整回路141乃至第4信号調整回路144に入力され、第1信号調整回路141乃至第4信号調整回路144は、もし出力調整信号L'i,0と出力調整信号L'i,1が共に1(L'i,0=L'i,1=1)ならば、バイアス確率piで出力調整信号Li,0=0及び出力調整信号 Li,1=1とし、バイアス確率1-piで出力調整信号Li,0=1及び出力調整信号 Li,1=0と「本決定」し、そうでない(L'i,0=L'i,1=0 or L'i,0 ≠ L'i,1)ならば、出力調整信号Li,0=L'i,0及び出力調整信号Li,1=L'i,1と「本決定」する。バイアス確率piは各iごとに独立に異なる値を設定可能とする(通常はpi = 0.5)。そして、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8は、出力調整信号Li,bと揺らぎ確率データZi,bから2値データSi,b = “0”又は“1”を決定して出力する。
【0092】
図10は、特許文献2に記載された内部構造を示すものであり、2種類の一様な揺らぎを内部構造によってデータに付与する技術を説明するものである。特許文献2に記載された発明では、複数のデータ生成ユニットは、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8の8個で構成されており、その個々の空間的な配置が図10に示すトポロジで説明がされている。特許文献2に記載された発明では、2値化されたデータの出力頻度が出力調整信号に従属して内部的に決定される。これに対し、第1実施形態に係る解探索システムでは、データの出力頻度が外部から入力装置1を用いて任意の値に指定できる。図10に示すトポロジにおいて、出力調整信号が供給されているデータ生成ユニットの数を“有効配置数num”と定義する。第1実施形態に係る解探索システムでは、データ生成ユニットの有効配置数numが大きくなるにつれて、出力調整信号が供給されていないデータ生成ユニットから“1”が多く出力されるように、2種類の一様な揺らぎを付与する。
【0093】
図10(a)では、出力調整ユニット14から出力調整信号が第1データ生成ユニット11-1乃至第8データ生成ユニット11-8に何ら供給されていない、いわゆる初期ステップを例示している。図10(a)では有効配置数num= 0である。ここで、第6データ生成ユニット11-6に着目した場合、第6データ生成ユニット11-6から出力されるデータの揺らぎを調節するためのパラメータとして、第1実施形態に係る解探索システムでは第1揺らぎ調節パラメータβ(num)と第2揺らぎ調節パラメータβ(num)を定義してデータに2種類の一様な揺らぎを付与する。第1揺らぎ調節パラメータβ(num)と第2揺らぎ調節パラメータβ(num)の値は、有効配置数numの関数として変化するような内部構造によって決まるものである。
【0094】
初期ステップでは、揺らぎを調節するためのパラメータの設定値を第1揺らぎ調節パラメータβ(0) =0.5、第2揺らぎ調節パラメータβ(0) =0.5とする。これらの設定値は、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8において、第1揺らぎ調節パラメータβ(0)は、出力調整信号が供給されていないときに値“0”が生成されるという、出力調整信号が誘導する値とは異なる値が生成される状況、いわば「エラー」のような状況が発生する確率が50%であることを意味している。第2揺らぎ調節パラメータβは、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8において、出力調整信号が供給されているときに値”1”が生成されるという、出力調整信号が誘導する値とは異なる値が生成される状況、いわば「エラー」のような状況が発生する確率が50%であることを意味している。但し、こうした「エラー」は、真偽値割当の多様な組合せを探索するためには必要不可欠な動作であり、その発生頻度を適切に調節することが、効率的に解を探索するためには重要である。
【0095】
一方、図10(b)では、出力調整ユニット14から出力調整信号が第1データ生成ユニット11-1、第4データ生成ユニット11-4、第5データ生成ユニット11-5に供給されているものとする。この時、有効配置数num=3である。この場合には、揺らぎを調節するためのパラメータの設定値を第1揺らぎ調節パラメータβ(3) = 0.25、第2揺らぎ調節パラメータβ(3) = 0.05に変化させる。こうすると、第6データ生成ユニット11-6において、出力調整信号が供給されていないときに“0”が生成される確率が25%、出力調整信号が供給されているときに“1”が生成される確率が5%となる。即ち、有効配置数numが増加するにつれて、「エラー」のような状況が発生する確率が低下するように制御することになる。
【0096】
図10(c)では、出力調整ユニット14から出力調整信号が第1データ生成ユニット11-1、第3データ生成ユニット11-3、第5データ生成ユニット11-5、第7データ生成ユニット11-7に供給されており、有効配置数num=4であるものとする。この場合、第1揺らぎ調節パラメータβ(4) = 0.05、第2揺らぎ調節パラメータβ(4) = 0.00に変化させ、第6データ生成ユニット11-6において、出力調整信号が供給されていないときに“0”が、出力調整信号が供給されているときに“1”が生成される確率が、それぞれ5%と0%となる。即ち、有効配置数numが更に増加したときに、「エラー」のような状況の発生確率が更に低下するように制御することになる。
【0097】
特許文献2に記載された発明の揺らぎ調整ユニットは、出力調整信号が供給されている第1データ生成ユニット11-1乃至第8データ生成ユニット11-8の数に応じて、各第1データ生成ユニット11-1乃至第8データ生成ユニット11-8からのデータ出力に付与する2種類の一様な揺らぎを調節する。具体的には、第1データ生成ユニット11-1乃至第8データ生成ユニット11-8からは、“0”又は“1”の2値化されたデジタルデータを出力することとなるが、ランダムに等確率で”0”又は”1”を出力するのではなく、“0”又は“1”の何れか一方がより多く出力されるような2種類の一様な揺らぎを設定する。
【0098】
特許文献2に記載された発明とは異なり第1実施形態に係る解探索システムにおいては、揺らぎ設定ユニット16に対し、システムの外部から個々に揺らぎ確率を設定し、各変数の出現確率を変更できる。即ち、第1実施形態に係る解探索システムでは、従来型の一様アメーバSAT解法に使用する論理式における各変数の出現確率を、システムの外部からユーザが入力装置21を用いて、個々に入力可能な非一様方式を採用する。図10で説明したとおり、特許文献2に記載された一様アメーバSAT解法では、各変数xiの状態xi = 1の出現頻度を一様にするべく、すべてのアメーバ足に対して、2種類の一様な値β(num)及びβ(num)が与えられていた。これに対し、第1実施形態に係る解探索システムでは、特定の変数xjの集合につき、状態xj = 1の出現頻度を相対的に多く、又は少なくすることで、最適解を高速かつ高確率で得ることができるように、ユーザがシステムの外部から揺らぎ確率εi,bを設定できる。
【0099】
第1実施形態に係る解探索システムの電子アメーバは、生物の単細胞アメーバを模した構造であり、例えば、既に説明した図11に示すように、抵抗(第1受動素子)とダイオード(第1非線形素子)の直列回路をそれぞれ備える8本の仮足ユニットを有するアメーバコア101と、アメーバコア101の動作、即ち、非一様SATアルゴリズムを制御するバウンスバック制御論理回路201とを備える。バウンスバック制御論理回路201は、アメーバコア101の8本の仮足ユニットにバウンスバック信号(出力調整信号)を供給する機能を有するので、図2に示した第1実施形態に係る解探索システムの構成における出力調整ユニット14の機能を有する。しかし、図11図2を対比すると、バウンスバック制御論理回路201は図2に示したフィードバック制御ユニット13、揺らぎ設定ユニット16やデータ記憶装置22の機能も有することが分かる。アメーバコア101の仮足ユニットは、生物の単細胞アメーバの足に対応する。
【0100】
アメーバコア101は、単細胞アメーバの複数の足の伸縮を電子回路の端子電圧の大小で表現している。仮足ユニットは、例えば図11に示したように、単細胞アメーバのトポロジを模して、放射状の星形ネットワークを構成するように接続された回路の形状が採用可能である。しかしながら、図11は例示に過ぎず、電気的に等価であればよく、アメーバコア101の形状は例示した放射状・星形のトポロジに限定されるものではない。望ましくない状態遷移をバウンスバック制御論理回路201が出力するバウンスバック規則により禁じられる環境下で、すべての足が同時平行的に伸び縮みすることで、試行錯誤を反復しながら解を探索する。そして、バウンスバック制御論理回路201からのバウンスバック信号L1,0, L1,1,……L4,0, L4,1の反転信号が適用されないすべての足が伸びた状態を維持できる安定状態に到達したとき、SAT解が発見される。N変数のSAT問題を解くのに2N本のアメーバ足を要するが、バウンスバック制御論理回路201に接続される単細胞アメーバの足の先端側の端子のそれぞれが、第1nMOSトランジスタ(第1スイッチング素子)、第2nMOSトランジスタ(第2スイッチング素子)とコンデンサ(電荷蓄積手段)からなる接地並列回路を介して接地され、各仮足ユニットの出力端子X1,0, X1,1,……X4,0, X4,1の出力の値を決定している。第1及び第2スイッチング素子は、電荷蓄積手段(コンデンサ)に蓄積された電荷の放電を制御する放電制御回路を構成している。接地並列回路の放電制御回路を構成している第1及び第2のスイッチング素子は、例示に過ぎない。単細胞アメーバの足の先端に接続される接地並列回路の放電制御回路は、電荷蓄積手段に蓄積された電荷の放電を放電させる制御機能を有する回路であれば、論理ゲート等種々の回路で置換可能であり、種々の等価な回路で放電制御回路を構成できる。
【0101】
例えば、変数x1の値の決定を担う仮足ユニットの出力端子X1,0と出力端子X1,1のペアの間に設けられた2入力NORゲート301の出力端子は、出力端子X1,0と接地電位の間に設けられた並列回路(以下において「接地並列回路」という。)を構成している第2スイッチング素子の制御電極(ゲート電極)に入力され、同時に出力端子X1,1の接地並列回路を構成している第2スイッチング素子の制御電極にも入力されている。そして、図11に示すようにインバータ410を介してバウンスバック信号(出力調整信号)L1,0の反転信号が、仮足ユニットの出力端子X1,0の接地並列回路を構成している第1スイッチング素子の制御電極に入力されている。又、インバータ411を介してバウンスバック信号L1,1の反転信号が、仮足ユニットの出力端子X1,1の接地並列回路を構成している第1スイッチング素子の制御電極に入力されている。そして、仮足ユニットの出力端子X1,0と出力端子X1,1の出力は、それぞれバウンスバック制御論理回路201に入力される。
【0102】
同様に、変数x2の値の決定を担う出力端子X2,0と出力端子X2,1の間に接続された2入力NORゲート302の出力端子は、出力端子X2,0の接地並列回路をなしている第2スイッチング素子の制御電極と、出力端子X2,1の接地並列回路をなしている第2スイッチング素子の制御電極に共に入力されている。更に、インバータ420及びインバータ421を介して、バウンスバック信号L2,0とバウンスバック信号L2,1の反転信号が、仮足ユニットの出力端子X2,0と出力端子X2,1のそれぞれの接地並列回路の第1スイッチング素子の制御電極に独立して入力される。そして、仮足ユニットの出力端子X2,0と出力端子X2,1の出力は、それぞれバウンスバック制御論理回路201に入力される。同様に、インバータ430及びインバータ431を介して、変数x3の値の決定を担う出力端子X3,0と出力端子X3,1の間の2入力NORゲートの出力端子は、出力端子X3,0の接地並列回路の第2スイッチング素子の制御電極と、出力端子X3,1の接地並列回路の第2スイッチング素子の制御電極に共に入力され、バウンスバック信号L3,0とバウンスバック信号L3,1の反転信号が、出力端子X3,0と出力端子X3,1のそれぞれの接地並列回路の第1スイッチング素子の制御電極に独立して入力される。そして、仮足ユニットの出力端子X3,0と出力端子X3,1の出力は、それぞれバウンスバック制御論理回路201に入力される。
【0103】
更に同様に、変数x4の値の決定を担う出力端子X4,0と出力端子X4,1の間の2入力NORゲートの出力端子は、出力端子X4,0の接地並列回路の第2スイッチング素子の制御電極と、出力端子X4,1の接地並列回路の第2スイッチング素子の制御電極に共に入力され、インバータ440及びインバータ441を介して、バウンスバック信号L4,0とバウンスバック信号L4,1の反転信号が、出力端子X4,0と出力端子X4,1のそれぞれの接地並列回路の第1スイッチング素子の制御電極に独立して入力される。そして、仮足ユニットの出力端子X4,0と出力端子X4,1の出力は、それぞれバウンスバック制御論理回路201に入力される。このように、独立したバウンスバック信号L1,0, L1,1,……L4,0, L4,1の反転信号が8本の仮足ユニットの接地並列回路の第1スイッチング素子の制御電極のそれぞれに独立して入力されることにより、対応するそれぞれの第1スイッチング素子の導通状態が変化する。そして、自然界を生き抜く単細胞アメーバが環境に適応して足の長さを変えるように、アメーバを模した電子回路を構成する仮足ユニットの出力端子X1,0, X1,1,……X4,0, X4,1の出力がバウンスバック信号L1,0, L1,1,……L4,0, L4,1により変化することにより、複雑な組合せ最適化問題を、生物型コンピュータのアルゴリズムで高速に解く。
【0104】
星形ネットワークの中心(ハブ)に電流Iが供給され、供給された電流Iは、2以上の仮足ユニットに分配される。図示を省略しているが、バウンスバック制御論理回路201は、バウンスバックルールが格納されたメモリ(図2のデータ記憶装置22参照。)を有する。「バウンスバックルール」は、単細胞アメーバの「与えられた制約条件」に相当するルールであるといってもよい。また、バウンスバックルールは、プログラムに組み込まれていても構わない(図2のプログラム記憶装置25参照。)。更に、プログラムで記載されている論理関数を現場書換可能ゲートアレイ(FPGA)等のようなプログラマブル・ロジック・デバイス(PLD)や論理ゲートによる回路で直接実装しても構わない。
【0105】
各仮足ユニットには、電流Iが入力され、各仮足ユニットの出力端子X1,0, X1,1,……X4,0, X4,1の出力が、バウンスバック制御論理回路201内のコントローラに与えられる。コントローラは、各仮足ユニットからの出力端子X1,0, X1,1,……X4,0, X4,1の出力に対し、バウンスバックルール基づくフィードバック信号L1,0, L1,1,……L4,0, L4,1を「バウンスバック信号(出力調整信号)」として生成する。生成されたフィードバック信号L1,0, L1,1,……L4,0, L4,1の反転信号のそれぞれは、各仮足ユニットの接地並列回路の第1スイッチング素子の制御電極に与えられる。フィードバック信号L1,0, L1,1,……L4,0, L4,1は、状態変数を更新するための信号であり、出力端子X1,0, X1,1,……X4,0, X4,1の出力を変更することにより、生物の単細胞アメーバの足の伸長状態を変更する動作を模している。
【0106】
このように、第1実施形態に係る解探索システムでは、巡回セールスマン問題やSAT問題等の複雑な組合せ最適化問題を、単細胞アメーバを模した電子アメーバ回路を用いて高速に解くアルゴリズムを提供可能であり、バウンスバック制御論理回路201での処理ではコントラ・ルールに相当する処理が不要である。一方、図18に示す従来技術に係るアメーバコア100では、バウンスバック制御論理回路200に接続される単細胞アメーバの足の先端側の出力端子X1,0, X1,1,……X4,0, X4,1のそれぞれが、スイッチング素子(第1スイッチング素子)とコンデンサ(電荷蓄積手段)の接地並列回路により接地されているので、図11に示す第1実施形態に係る解探索システムの接地並列回路とは異なる回路トポロジである。従来技術に係るアメーバコア100では、接地並列回路をそれぞれ構成するスイッチング素子に対し、独立したバウンスバック信号L1,0, L1,1,……L4,0, L4,1の反転信号を独立して入力することにより、各仮足ユニットの出力端子X1,0, X1,1,……X4,0, X4,1の出力の値を決定している。
【0107】
即ち、図18に示す従来技術に係るアメーバコア100では、インバータ530を介して、バウンスバック信号L3,0の反転信号が、出力端子X3,0の接地並列回路のスイッチング素子(第1スイッチング素子)の制御電極に独立して入力される。同様に、インバータ521及びインバータ520を介して、バウンスバック信号L2,1とバウンスバック信号L2,0の反転信号が、仮足ユニットの出力端子X2,1と出力端子X2,0のそれぞれの接地並列回路のスイッチング素子の制御電極に独立して入力される。同様に、インバータ511及びインバータ510を介してバウンスバック信号L1,1とバウンスバック信号L1,0の反転信号が、仮足ユニットの出力端子X1,1と出力端子X1,0の接地並列回路を構成しているスイッチング素子の制御電極に入力されている。更に同様に、インバータ541及びインバータ540を介して、バウンスバック信号L4,1とバウンスバック信号L4,0の反転信号が、出力端子X4,1と出力端子X4,0のそれぞれの接地並列回路のスイッチング素子の制御電極に独立して入力される。そして、インバータ531を介して、バウンスバック信号L3,1の反転信号が、出力端子X3,1の接地並列回路のスイッチング素子の制御電極に独立して入力される。
【0108】
“i”を変数xiの添字i=1乃至4のいずれかとして説明すると、図18に示す従来技術に係るアメーバコア100においては、各変数xiの値の決定を担う出力端子Xi,0とXi,1の間に、図11に示した2入力NORゲートの入力端子が接続されていない。即ち、図18に示したアメーバコア100においては、出力端子X1,0, X1,1,……X4,0, X4,1のそれぞれの出力の値を、各接地並列回路を構成しているスイッチング素子(第1スイッチング素子)のそれぞれの制御電極にフィードバックをするだけであるので、従来技術に係るアメーバコア100では、コントラ・ルールの適用が必要になる。これに対し、第1実施形態に係る解探索システムでは図11に示すように、2入力NORゲート301,302,303,304を、対応する出力端子Xi,0 と出力端子 Xi,1 のそれぞれの間に用いることにより、出力端子Xi,0 と出力端子 Xi,1 の出力がXi,0 = Xi,1 = 0となったときに強制的に回路を不安定化することが可能となり、出力端子Xi,0 と出力端子 Xi,1 の出力がXi,0 = 1又はXi,1 = 1のいずれかの状態への確率的な遷移を促すことができ、コントラ・ルールの適用が不要になる。
【0109】
ここで、図7A図7B図8A、及び図8Bで説明した事例を取り上げ、自動搬送システム最適化における出現確率の設定例を説明する。例えば、台車vがセルiからセルjへ時刻pに移動することを表す状態xv,(i,j),p = 1よりも、台車vがセルiで時刻pに停留することを表す状態xv,(i,i),p = 1のほうが実現する確率が低くなるように、揺らぎ確率を、εv,(i,i),p,1>εv,(i,j),p,1と設定することで、台車の停留状態がより少ない「最適性」の高い解を得ることができる。
【0110】
第1実施形態に係る自動搬送システムの最適化における「最適性」の高い解(軌道又はスケジュール)とは、より短時間ですべての台車の搬送を終えられる解、即ち、図8Aに示したようなセルiで停留する状態xv,(i,i),p = 1の数がより少ない解に他ならない。そこで、台車の停留状態xv,(i,i),p = 1を表現するアメーバ足Xv,(i,i),p,1が相対的に伸長して値“1”を取り難くなるように、添字が(i,i)となる足の揺らぎ確率を、他の(添字が(i,j≠i)となる)足の揺らぎ確率よりも相対的に大きくする。揺らぎ確率をεv,(i,i),p,1>εv,(i,j),p,1と設定することにより、「最適性」の高い解(軌道又はスケジュール)が選択的に高確率で得られることになる。
【0111】
第1実施形態に係る解探索システムでは、「プログラム変数」と呼ばれる変数yiと、含意形式の制約条件「yi=b且つxj=b’ならば、xk=b’’」を持つ単一のインスタンスを用意する。解探索中のプログラム変数yiの値をb(“0”又は“1”)で固定する設定にすると、プログラム変数yi=bとなるときのみ、制約条件の前件が真となり得て、「xj=b’ならば、xk=b’’」なる制約条件を有効化でき、プログラム変数yi = 1-bとなるとき、制約条件の前件が偽となり、前件が偽となる制約条件を無効化できる。このように、プログラム変数yiの固定値を変更するだけで、制約条件の有効化と無効化を切り替えられるため、ハードウェアを変えることなく、即ち、同一回路で、様々な異なる問題インスタンスの解を探索することが可能となる。
【0112】
例えば、図12(a)に示す命題論理式F2を用いて解を求める場合、その命題論理式F2の解は、(x1, x2, x3, y) = (1, 1, 1, 1)、(1, 1, 1, 0)、(1, 1, 0, 0)、(1, 0, 0, 0)の4つとなる。この場合、yを「プログラム変数」と呼び、他の3変数x1, x2, x3を探索変数と呼ぶ。図12(b)は図12(a)に示した命題論理式が、含意形式の制約の論理積で表現されるが、図6(b)に示した式の一部が、プログラム変数y=0と固定することで、2行目の後段の制約と、5行目の後段の制約が省略されることを示す。y= 0を固定して解探索を行うと、結果的に、(x1, x2, x3, y) = (1, 1, 1, 0)、(1, 1, 0, 0)、(1, 0, 0, 0)の3つの解に絞り込まれることになる。図12(a)から、プログラム変数yの固定値を変更するだけで、様々な異なる問題インスタンスの解を探索することが可能となることが分かる。
【0113】
図12(a)に示したようなプログラム変数yiの変更により様々な問題インスタンスを表現する方式を、自動搬送システム最適化に適用した事例を図13に示し、これと比較するために、プログラム変数yF v,i,s,yT v,j,sを固定した場合の事例を図14に示す。図13(a)の横軸は図7B等と同様に、運行単位時間をセルサイズとする時間軸である。図13(a)では、それぞれ運行単位時間を構成する時刻0乃至時刻27からなる28の運行単位時間の配列が横軸に示されている。図13(a)の縦軸は、物流倉庫内の単位搬送区画(セル)の2次元配列におけるセルiからセルjへの移動をエッジ(i,j)と表示し、エッジ(i,j)を1次元の配列に変換した座標軸である。図7Aで示されるようなセル内の矢印は移動方向の制約を示しているが、特定のセルiで停留している場合はエッジ(i,i)と表示して縦軸の配列に含ませている。図13(a)に示す最適スケジューリングにおいて、左上がりのハッチングで示したセルは第1台車v1を示す。台車vがセルiからセルjに移動することをxv,(i,j),p = 1と表記し、セルiに停留することをxv,(i,i),p = 1と表記する。図13(a)に示すように、左上がりのハッチングで示した第1台車v1は時刻2でセル4からセル3に移動し、時刻3でセル3からセル2に移動している。途中の経過を省略するが、左上がりのハッチングで示した第1台車v1は時刻25から時刻27までセル77に停滞している。
【0114】
図14(a)の縦軸は、物流倉庫内の単位搬送区画(セル)の2次元配列をセル1からセル80の1次元の配列に変換した座標軸である。図14(a)において、グレーで示したセルはプログラム変数を固定した場合において、第1台車v1の初期位置のプログラム変数yI v,iを表記している。図14(a)に示すように第1台車v1は時刻1でセル2に位置するように指定(プログラム)される。
【0115】
図14(b)の横軸は、運行単位時間をセルサイズとする時間軸であり、1運行単位時間乃至10運行単位時間からなる10の運行単位時間の配列が横軸に示されている。図14(b)の縦軸は、物流倉庫内の単位搬送区画(セル)の2次元配列におけるセル1からセル80への1次元の配列に変換した座標軸である。図14(b)は、プログラム変数yF v,i,sを固定した場合において、台車vが左上がりのハッチングで示した荷積み地点セル4(F6)で4運行単位時間滞在するように指定(プログラム)されることを示している。図14(c)の横軸も、運行単位時間をセルサイズとする時間軸であり、1運行単位時間乃至10運行単位時間からなる10の運行単位時間の配列が横軸に示されている。図14(c)の縦軸は、物流倉庫内の単位搬送区画(セル)の2次元配列におけるセル1からセル80への1次元の配列に変換した座標軸である。図14(c)は、プログラム変数yT v,j,sを固定した場合において、台車vが右上がりのハッチングで示した荷降ろし地点セル66(T7)で4運行単位時間滞在するように指定(プログラム)されることを示している。
【0116】
図13図14の比較から分かるように、第1実施形態に係る解探索システムによれば、プログラム変数の値を変更することで、台車の数、台車の初期地点、荷積み地点、荷降し地点、荷積み時間、荷降し時間等を任意に設定でき、様々な異なる台車の搬送要求を持つインスタンスに対して最適解を探索することができる。
【0117】
第1実施形態に係る解探索システムは、より高速な計算を可能とする回路として具現化することができる。そのような回路として具現化される場合、特定用途向け集積回路(ASIC)、FPGA等に基づいて、最適化アルゴリズム構成を設定するようにしてもよい。また、第1実施形態に係る解探索システムは、解探索システムとして具体化される場合以外には、解探索プログラムとして具体化されるものであってもよい。かかる場合には、仮想的に生成した論理的なデータ生成ユニット11-1、11-2、……11-iに対して、上述したデータ変換ユニット12-1、12-2、……12-i、フィードバック制御ユニット13、出力調整ユニット14、及び揺らぎ設定ユニット16の各構成要素を、プログラムの各ステップにおいて実行することにより、ハードウェア資源と等価な論理的機能を具現化することが可能となる。
【0118】
また、第1実施形態に係る解探索システムでは、フィードバック制御ユニット13は、中央演算処理装置(CPU)の一部を構成する回路であってもよいし、又はこのような高度な情報処理能力をもつデバイスではなく、データ変換ユニット12-1、12-2、……12-iからの入力をルールに基づき変換し、データ生成ユニット11-1、11-2、……11-iに出力を供給する機能のみをもつような、いわゆるスイッチ等の如何なる簡便な手段により実現してもよい。
【0119】
このように、第1実施形態に係る解探索システムのSATアルゴリズムを用いることにより、制約条件を含意形式で表現することで、制約規制であるコントラ・ルールを削除しても解に到達できるようになるため、最適化アルゴリズムを複雑化することなく、SAT問題を解くことが可能となる。また、各変数状態の「出現確率」を個々に入力可能にする方式、及び「プログラム変数」の変更により様々な問題インスタンスを解く方式を採用することで、インスタンス毎のASIC作成又はFPGA合成を不要にできる。即ち、第1実施形態に係る解探索システムによれば、種々の現実のスケジューリング問題をSAT問題として定式化する場合において、異なるインスタンスに対し同一回路で、高速かつ効率的にSAT問題を解くことが可能となる。
【0120】
(第2実施形態に係るハイブリッド型解探索システム)
以上の第1実施形態に係る解探索システム、解探索方法、及び解探索プログラムによれば、種々の現実のスケジューリング問題をSAT問題として定式化する場合において、アルゴリズムを複雑化することなく、かつ異なるインスタンスに対し同一回路で、高速かつ効率的に「社会的スケジューリング最適化課題」を解くことが可能となる。しかし、例えば、荷物を搭載した数百台の台車が時々刻々と更新される搬送要求に応じつつ効率的な配送を行う必要がある物流倉庫搬送システム最適化問題等のように、SAT解を求めるための変数やイントラ・ルール等の制約規則の数が膨大となると、それに伴って要求されるハードウェア資源使用量も膨大となり、最適解を高速かつ効率的に求めるための諸コストが増大してしまう。そこで、SAT解を求めるための変数や制約規則の数を低減してハードウェア資源使用量を抑え、低コストで最適解を高速かつ効率的に求めることが可能な計算方法が必要となる。
【0121】
なお、第1実施形態の冒頭で定義した「社会的スケジューリング最適化課題」、「組合せ最適化問題」、「SAT問題」、「アメーバ・コンピュータ」、「アメーバSAT解法」等の用語については、第2実施形態に係るハイブリッド型解探索システムにおいても同様に適用可能なものとする。ただし、第1実施形態の冒頭での図1の説明で巡回セールスマン問題(TSP)等を除外しているが、本発明の第2実施形態に係るハイブリッド型解探索システムではTSPをも含む態様を説明する。
【0122】
例えばTSPを解くアメーバ・コンピュータの解法を「アメーバTSP解法」と呼び、以下の第2実施形態に係るハイブリッド型解探索システムを説明する。そして、第2実施形態に係るハイブリッド型解探索システムでは、「社会的スケジューリング最適化課題」を、第1実施形態に係る解探索システムを用いた解法(アメーバSAT解法)、又はアメーバTSP解法等のアメーバSAT解法以外の種々の解法を用いて解く場合において、変数や制約規則の数が大きくなりハードウェア資源使用量が増大したときであっても、高速かつ効率的に最適解を求めることが可能なハイブリッド型最適解計算方法を説明する。第2実施形態に係るハイブリッド型解探索システムの計算方法は、第1実施形態に係る解探索システムのアメーバSAT解法を用いることが必須となるものではないが、アメーバSAT解法と組み合わせたハイブリッドモードで使用すれば、より高速かつ効率的に最適解を求めることができるという効果を奏することができる。
【0123】
まず、第2実施形態に係るハイブリッド型最適解計算方法を実行するためのシステム(最適解計算システム)の概要を説明する。図19に示すように、第2実施形態に係るハイブリッド型最適解計算システムは、中央処理装置(CPU)1と、入力装置21と、データ記憶装置22と、表示装置23と、出力装置24と、プログラム記憶装置25とを備える。第2実施形態に係るハイブリッド型解探索システムの中央処理装置1は、例えば、第1実施形態に係る解探索システムで説明した図2の点線で囲んだ領域に対応する。但し、第2実施形態に係るハイブリッド型解探索システムの中央処理装置1は、第1解探索演算論理回路1A及び第2解探索演算論理回路1Bの2つの演算論理回路を備えハイブリッドモードでの動作を可能にしている。第1解探索演算論理回路1Aは、例えば、第1実施形態に係る解探索システムの機能を有し、アメーバSAT解法を実行可能である。
【0124】
従って、第1解探索演算論理回路1Aは、図2の第1データ生成ユニット11-1、第2データ生成ユニット11-2、……、第iデータ生成ユニット11-iと、第1データ変換ユニット12-1、第2データ変換ユニット12-2、……、第iデータ変換ユニット12-iと、フィードバック制御ユニット13と、出力調整ユニット14と、揺らぎ設定ユニット16とを備える。第2解探索演算論理回路1Bは、第1実施形態に係る解探索システム以外の構成及び機能を有する演算論理回路であり、図1で除外したCL-アメーバSAT解法やアメーバTSP解法等のアメーバSAT解法以外の解法を実行可能な演算論理回路である。「CL-アメーバSAT解法」とは図1の説明で除外するとして説明した「回路レベルアメーバSAT解法」を意味する。更に、第2解探索演算論理回路1Bは、CL-アメーバSAT解法及びアメーバTSP解法以外の手順及び効果を有する他の解法を実行することもできる。
【0125】
尚、図19の第2実施形態に係るハイブリッド型解探索システムでは、第1解探索演算論理回路1A及び第2解探索演算論理回路1Bという異なる構成及び機能を有する論理回路を備えることにより、アメーバSAT解法と、それ以外の解法を選択したハイブリッドモードを実行できるようになっている。そして、後述する最適解計算方法においてアメーバSAT解法のみを使用する場合には、第1解探索演算論理回路1Aのみを使用することもできるし、第2解探索演算論理回路1Bを省略することもできる。また、ハイブリッド型最適解計算においてアメーバSAT解法以外の解法のみを使用する場合には、第2解探索演算論理回路1Bのみを使用し、第1解探索演算論理回路1Aを省略するモードを採用できる。更に、ハイブリッド型最適解計算においてアメーバSAT解法及びそれ以外の解法の双方を使用する場合には、2つの第1解探索演算論理回路1A及び第2解探索演算論理回路1Bを併存させることもできる。なお、図19では図示を省略しているが、第1解探索演算論理回路1A及び第2解探索演算論理回路1Bに加えて、更に第3解探索演算論理回路、第4解探索演算論理回路等の他の解探索演算論理回路を追加した構成として、より広範なハイブリッドモードの動作を実現することもできる。
【0126】
図19において、入力装置21を介して入力された情報は、バスを介してデータ記憶装置22に格納される。データ記憶装置22に格納された情報は、バスを介して、各第1解探索演算論理回路1A及び第2解探索演算論理回路1Bに提供される。制御ユニット17は、シークエンス回路から出力される時系列に沿って、プログラム記憶装置25に格納された解探索プログラムに従い、各第1解探索演算論理回路1A及び第2解探索演算論理回路1Bにおけるハイブリッドモードでの動作を制御する。プログラム記憶装置25には、第1解探索演算論理回路1Aで実行するアメーバSAT解法に関する解探索プログラムと、第2解探索演算論理回路1Bで実行するアメーバSAT解法以外の解法に関する解探索プログラムとがそれぞれ記憶される。第1解探索演算論理回路1A又は第2解探索演算論理回路1Bにおいて最適解が得られた場合には、表示装置23や出力装置24を介して表示する。
【0127】
制御ユニット17は、図20に示すように、軌道ジェネレータ(生成部)命令制御回路17Gと、コンフリクトタビュレータ(集計部)命令制御回路17Tと、コンフリクトリゾルバ(解消部)命令制御回路17Rとを備える。軌道生成部命令制御回路17Gは、最適化課題について最適解(軌道)を求める各対象について、独立に最も効率のよい初期軌道(初期解)を生成するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。一般に「経路」の最適化というときは、例えば、第1実施形態で説明した自動搬送システムにおいては、自動搬送台車同士の衝突や渋滞は考慮しない。即ち、経路の最適化においては、各自動搬送台車が独立にコストを最小化できる移動ルート、即ち空間情報のみを求める。一方、第2実施形態に係るハイブリッド型解探索システムにおいて、「軌道」の最適化というときは、自動搬送システムの例で説明すれば、自動搬送台車同士の衝突や渋滞を回避できる、全運行ダイヤを求める作業を意味する。
【0128】
即ち、自動搬送システムの軌道の最適化の例においては、全通過地点の通過時刻や滞在時間、即ちすべての自動搬送台車の空間情報及び時間情報を求める演算を意味する。第1実施形態で説明した物流倉庫の自動搬送台車による搬送システムの搬送台車スケジューリング問題を例にとると、最適解を求める対象とは、各搬送台車となる。また、軌道生成部命令制御回路17Gは、各対象について初期軌道の代替軌道(代替解)をk種(kは2以上の正の整数)生成するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。更に、軌道生成部命令制御回路17Gは、コンフリクト集計部命令制御回路17Tからの情報に基づき、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bを用いて、アメーバSAT解法又はそれ以外の解法により、コンフリクトする代替軌道を更新し、k種の代替軌道を生成する。
【0129】
コンフリクト集計部命令制御回路17Tは、軌道生成部命令制御回路17Gにより生成された初期軌道同士のコンフリクト(イベントの競合状態)を列挙するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。また、コンフリクト集計部命令制御回路17Tは、軌道生成部命令制御回路17Gにより生成された代替軌道の全てのペアについてコンフリクトの有無を検出し、テーブル化するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。更に、コンフリクト集計部命令制御回路17Tは、コンフリクトに関する情報を軌道生成部命令制御回路17Gに提供するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。コンフリクト解消部命令制御回路17Rは、コンフリクト集計部命令制御回路17Tによりテーブル化されたコンフリクト情報に基づき、コンフリクトを解消できる代替軌道の組合せを探索するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。また、コンフリクト解消部命令制御回路17Rは、コンフリクトしない代替軌道の組合せ(最適解)が存在するか否かを確認し、最適解が存在しないときは、探索回数が上限値に達するまでコンフリクトを解消できる代替軌道の組合せを探索するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。
【0130】
次に、第2実施形態に係る最適解計算システムを用いたハイブリッドモードでの最適解計算方法を説明する。第2実施形態に係る最適解計算方法は、主として、制御ユニット17内の軌道生成部命令制御回路17G、コンフリクト集計部命令制御回路17T、及びコンフリクト解消部命令制御回路17Rから送信される命令信号により、第1解探索演算論理回路1A及び第2解探索演算論理回路1Bが実行する。図21のフローチャートに示すように、まずステップS201において、軌道生成部命令制御回路17Gは、最適化課題について最適解(軌道)を求める各対象につき、独立に最も効率のよい初期軌道を決めるように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。続けてステップS202において、コンフリクト集計部命令制御回路17Tは、ステップS201で決めた初期軌道同士のコンフリクトを列挙するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。
【0131】
第1実施形態で説明した物流倉庫の自動搬送台車による搬送システムの搬送台車スケジューリング問題を例にとると、コンフリクトとは、例えば、同一時刻において同一セル上に異なる台車が複数存在する状態のことである。この後、ステップS203において、軌道生成部命令制御回路17Gは、ステップS202で列挙されたコンフリクト情報に基づき、各対象につき、コンフリクトを回避できる軌道の代替案(代替軌道)を、ステップS201で決めた初期軌道を含めて、全部でk種生成する(k=0~K-1)ように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。第1実施形態に係る解探索システムの説明で用いた図11に示したアメーバコア101は、単細胞アメーバの構造に対応している。
【0132】
図11に示した構造では、図2の揺らぎ設定ユニット16はバウンスバック制御論理回路201に組み込まれているが、アメーバコア101とこのアメーバコア101に対応する揺らぎ設定ユニット16のセット(組)は、図19の中央処理装置1を構成する解探索演算回路コアとしての論理演算回路になる。即ち、アメーバコア101と、このアメーバコア101に対応する揺らぎ設定ユニット16のセットで解探索演算回路コアを構成し、この解探索演算回路コアの複数個を集合した多細胞アメーバで、図19の中央処理装置1を構成することができる。この多細胞アメーバの構造は、並列計算を実行する複数の解探索演算回路コアの集合体に対応する。
【0133】
ステップS203におけるk種の代替案(代替軌道)の生成には、第1解探索演算論理回路1Aが内蔵するk個の第1実施形態に係る解探索論理回路(以下において「アメーバSAT-G」という。)を用いた処理が好ましい。即ち、ステップS203における演算処理は、第1解探索演算論理回路1Aが内蔵する複数のアメーバ(アメーバSAT-G)を用いた「多細胞アメーバ」の動作を行うことが短時間でk種の代替案(代替軌道)を生成する上で好ましい。ステップS203において、アメーバSAT-Gからなる多細胞アメーバの構成を有した第1解探索演算論理回路1Aが、k種の代替案(代替軌道)を生成しているとき、第1解探索演算論理回路1Aは、「軌道生成解探索演算回路」として機能している。また、ステップS204において、コンフリクト集計部命令制御回路17Tは、ステップS203で生成された代替軌道の全てのペアについてコンフリクトの有無を検出し、これをテーブル化するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。このテーブル化されたコンフリクト情報には、各対象の軌道が他の対象の軌道といつ、どこでコンフリクトするかについての情報を含む。
【0134】
そして、コンフリクト解消部命令制御回路17Rは、ステップS204によりテーブル化されたコンフリクト情報に基づき、ステップS205において、コンフリクトを解消できる代替軌道の組合せを探索するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。第2実施形態に係るハイブリッド型最適解計算方法では、コンフリクト解消部命令制御回路17Rがコンフリクトを解消できる代替軌道の組合せを探索するステップS205において、図19の第1解探索演算論理回路1Aを命令制御して、アメーバSAT解法を使用することができる。第2実施形態に係るハイブリッド型解探索システムにおいては、アメーバSAT解法を用いてコンフリクトを解消できる代替軌道の組合せを探索する演算論理を「アメーバSAT-R」と呼ぶこととする。ステップS205において、第1解探索演算論理回路1Aがコンフリクトを解消できる代替軌道の組合せを探索しているとき、第1解探索演算論理回路1Aは、「コンフリクト解消解探索演算回路」として機能している。アメーバSAT-Rは、多細胞アメーバで構成されるアメーバSAT-Gとは異なる単細胞アメーバでもよく、多細胞アメーバの一部をアメーバSAT-Gとして用い、残余の部分をアメーバSAT-Rとして用いてもよい。
【0135】
更に、アメーバSAT-GとアメーバSAT-Rとが同時に演算処理をしないタイミングが保証できれば、アメーバSAT-Gを構成している多細胞アメーバの一部をアメーバSAT-Rとして時分割で用いてもよい。即ち、第1解探索演算論理回路1Aは、軌道生成ALUを構成するアメーバSAT-Gとして機能することも、アメーバSAT-Rを構成するコンフリクト解消ALUとして機能することも論理的には可能である。アメーバSAT解法では、目的関数の値を小さくできる足が延びる確率を高くするなど、目的関数や各種制約を反映した代替軌道の組合せを探索することが可能となるので、アルゴリズムを複雑化することなく、かつ異なるインスタンスに対し同一回路で、高速かつ効率的に最適解(コンフリクトを解消できる代替軌道の組合せ)を探索できるという効果を奏することができる。但し、第2実施形態に係るハイブリッド型最適解計算方法では、ステップS205においてアメーバSAT-Rの解法を用いることは必須でない。即ち、コンフリクト解消部命令制御回路17Rは、第2解探索演算論理回路1Bの動作を命令制御することにより、アメーバSAT解法以外の解法を用いて、コンフリクトを解消できる代替軌道の組合せを探索することもできる。
【0136】
また、ステップS206において、コンフリクト解消部命令制御回路17Rは、コンフリクトしない代替軌道の組合せ(最適解)が存在するか否かを確認するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。最適解が存在するときは、制御ユニット17は、例えば、ステップS207において図19の表示装置23に最適解を表示し、又は図19の出力装置24から最適解を出力した後に、図21に示したフローチャートの処理を終了する。一方、最適解が存在しないときは、コンフリクト解消部命令制御回路17Rは、探索回数が上限値Nmaxに達するまで、ステップS204でテーブル化されたコンフリクト情報に基づき、ステップS206→ステップS208→ステップS205のループを繰り返ように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。
【0137】
そして、コンフリクトを解消できる代替軌道の組合せ(最適解)を継続して探索するように命令制御する。また、コンフリクト解消部命令制御回路17Rは、最適解を見つけることなく、探索回数が上限値Nmaxに達したときは、軌道生成部命令制御回路17Gに対して、ステップS204でテーブル化されたコンフリクト情報に基づいて、新たな代替軌道を生成するように、第1解探索演算論理回路1A及び第2解探索演算論理回路1Bへ、論理演算を実行するための指示を送信する。この「コンフリクト情報」は、各対象の軌道が他の対象の軌道と、いつ、どこでコンフリクトするかなどの情報である。
【0138】
即ち、軌道生成部命令制御回路17Gは、ステップS204でテーブル化されたコンフリクト情報に基づき、コンフリクトする代替軌道を更新し、ステップS206→ステップS208→ステップS205のループを繰り返すように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御することにより、k種の代替軌道を生成する。ここで、第2実施形態に係るハイブリッド型最適解計算方法では、軌道生成部命令制御回路17Gがk種の代替軌道を生成する命令を図19の第1解探索演算論理回路1Aに送信し、アメーバSAT解法を多細胞アメーバとして使用した演算処理を実行させる。アメーバSAT解法では、目的関数の値を小さくできる足が延びる確率を高くするなど、目的関数や各種制約を反映した代替軌道の組合せを探索することが可能となるので、複数個のアメーバ(多細胞アメーバ)を並列コンピュータのように活用することで、アルゴリズムを複雑化することなく、かつ異なるインスタンスに対し同一回路で、高速かつ効率的にk種の代替軌道を生成できるという効果を奏することができる。
【0139】
例えば、第1実施形態で説明した物流倉庫の自動搬送台車による搬送システムの搬送台車スケジューリング問題を例にとると、各台車の代替軌道に対してアメーバSAT解法を適用し、テーブル化されたコンフリクト情報に基づき、同一時刻において同一セル上に異なる台車が複数存在することを禁ずるバウンスバック信号をオンに固定することで、全てのコンフリクトを回避できる代替軌道を並列計算の解として得ることができる。但し、第2実施形態に係るハイブリッド型最適解計算方法では、ステップS205~S206においてアメーバSAT解法を用いることは必須でない。即ち、軌道生成部命令制御回路17Gは、アメーバSAT解法以外の他の並列計算の解法を用いて、k種の代替軌道を生成するように、第2解探索演算論理回路1Bの動作を命令制御することもできる。
【0140】
そして、軌道生成部命令制御回路17Gによりk種の代替軌道が生成された後、ステップS204において、コンフリクト集計部命令制御回路17Tは、ステップS203で生成された代替軌道のすべてのペアについてコンフリクトの有無を検出し、これをテーブル化するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。即ち、第2実施形態に係るハイブリッド型最適解計算方法では、ステップS204でテーブル化されたコンフリクト情報に基づき、コンフリクトしない代替軌道の組合せ(最適解)が存在するか否かの探索を、最大Nmax回行う。最大Nmax回を超えても最適解が見つからない場合には、再び、ステップS204→ステップS205→ステップS206→ステップS208→ステップS209→ステップS204のループを経由して、新たな代替軌道を生成し、探索を行うという動作を繰り返す。
【0141】
第2実施形態に係るハイブリッド型最適解計算において、ステップS203,ステップS205~206,ステップS209については、アメーバSAT解法を用いてもよいし、又はアメーバSAT解法以外の解法を用いてもよいハイブリッドモードを説明したが、ハイブリッドモードでの動作をまとめると、図22に示すように(a), (b), (c), (d)の4つのモードになる。
【0142】
左端の欄の最上段に(a)と示した第1モードでは、コンフリクト解消部命令制御回路17Rは、ステップS205で、左から2番目の欄の一番上の○で示したように、第1解探索演算論理回路の動作を制御して、コンフリクトを解消できる代替軌道の組合せ(最適解)を探索する。図22では、アメーバSAT解法を用いてコンフリクトを解消できる代替軌道の組合せを探索するシステムを左から2列目に「アメーバSAT-R」と表記している。また、軌道生成部命令制御回路17Gは、右から2番目の欄の一番上の○で示したように、ステップS203及びS209で、第1解探索演算論理回路の動作を制御して、k種の代替軌道を生成する。図22では、アメーバSAT解法を用いてk種の代替軌道を求めるシステムを、右から2列目に「アメーバSAT-G」と表記している。図22の第1モードは、左から2列目のアメーバSAT-Rと右から2列目のアメーバSAT-Gを備えた多細胞アメーバの構成を用いるモードである。
【0143】
図11に示したアメーバコア101は、単細胞アメーバの構造に対応しているが、k種の代替軌道を求めるために、k種のアメーバコアを備えた多細胞アメーバとし、この多細胞アメーバに、更にアメーバSAT-R用の専用アメーバコアを加えた多細胞アメーバの構成を採用してもよい。左端の欄の上から2段目に(b)と示した第2モードでは、コンフリクト解消部命令制御回路17Rは、ステップS205~206で、左から2番目の欄の上から2番目の○で示したように、アメーバSAT-Rで構成される第1解探索演算論理回路の動作を制御してコンフリクトを解消できる代替軌道の組合せを探索する。また、軌道生成部命令制御回路17Gは、右端の欄の一番上の○で示したように、ステップS203及びS209で、アメーバ・コンピュータではない第2解探索演算論理回路の動作を制御して、k種の代替軌道を生成する。図22の第2モードは、ステップS205~206でアメーバSAT-Rの構成を用いるが、ステップS203及びS209では第1実施形態で説明したアメーバ・コンピュータの構成を使わないモードである。
【0144】
左端の欄の上から3段目に(c)と示した第3モードでは、コンフリクト解消部命令制御回路17Rは、左から3番目の欄の一番上の○で示したように、ステップS205~206で第2解探索演算論理回路の動作を制御してコンフリクトを解消できる代替軌道の組合せを探索する。また、軌道生成部命令制御回路17Gは、ステップS203及びS209で、右から2番目の欄の上から2番目の○で示したように、アメーバSAT-Gを構成する第1解探索演算論理回路の動作を制御して、k種の代替軌道を生成する。図22の第3モードは、ステップS205~206では第1実施形態で説明したアメーバ・コンピュータの構成を使わないが、ステップS203及びS209でアメーバSAT-Rのアメーバ・コンピュータの構成を用いるモードである。左端の欄の一番下に(d)と示した第4モードでは、コンフリクト解消部命令制御回路17Rは、左から3番目の欄の上から2番目の○で示したようにステップS205~206で第2解探索演算論理回路の動作を制御してコンフリクトを解消できる代替軌道の組合せを探索する。また、軌道生成部命令制御回路17Gは、ステップS203及びS209で、右端の欄の一番下の○で示したように、第2解探索演算論理回路の動作を制御して、k種の代替軌道を生成する。図22の第4モードは、ステップS205~206及びステップS203及びS209の両方で、第1実施形態で説明したアメーバ・コンピュータの構成を使わないモードである。
【0145】
ここで、コンフリクト集計部命令制御回路17Tがコンフリクトを検出する構成及びこの構成によるモードを「アメーバSAT-T」と定義する。アメーバSAT-Tも第1実施形態に係る解探索システムで説明した単細胞アメーバで構成し、コンフリクト集計解探索演算回路とすることができる。アメーバSAT-Tは、多細胞アメーバで構成されるアメーバSAT-Gとは異なる単細胞アメーバでもよく、多細胞アメーバの一部をアメーバSAT-Gとして用い、残余の部分をアメーバSAT-R及びアメーバSAT-Tとして用いてもよい。更に、アメーバSAT-G、アメーバSAT-T及びアメーバSAT-Rが同時に演算処理をしないタイミングが保証できれば、アメーバSAT-Gを構成している多細胞アメーバの一部をアメーバSAT-R及びアメーバSAT-Tとして時分割で用いてもよい。
【0146】
即ち、第1解探索演算論理回路1Aは、軌道生成ALUを構成するアメーバSAT-Gとして機能することも、アメーバSAT-Rを構成するコンフリクト解消ALUとして機能することも、アメーバSAT-Tを構成するコンフリクト集計ALUとして機能することも、論理的には可能である。アメーバSATの定義を用いると、第2実施形態に係るハイブリッド型最適解計算において軌道生成部命令制御回路17GがアメーバSAT-Gモード、コンフリクト解消部命令制御回路17RがアメーバSAT-Rモードを用いるモードは、「アメーバSAT-GTRモード」と称することができる。以下の説明では、便宜上、第1モードのアメーバSAT-GTRモードを中心に説明するが、図22から分かるように、アメーバSAT-GTRモードに限定されるものではなく、第2~第4モードであっても構わない。
【0147】
図21に示した第2実施形態に係るハイブリッドモードでの最適解計算の一連の処理は、図19に示すプログラム記憶装置25内に記憶されたコンピュータ・ソフトウェア・プログラムに基づき、図19及び図20に示す制御ユニット17内の軌道生成部命令制御回路17G、コンフリクト集計部命令制御回路17T、及びコンフリクト解消部命令制御回路17Rが、それぞれ必要な命令信号を送信する。また、第2実施形態に係るハイブリッド型最適解計算方法に関するプログラムは、コンピュータ読取り可能な記録媒体に保存し、この記録媒体を図19に示すプログラム記憶装置25に読み込ませることもできる。コンピュータ読取り可能な記録媒体とは、例えば、コンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができるような媒体などを意味する。
【0148】
-立体倉庫-
第1実施形態に係る解探索システムで説明した単細胞アメーバで、大きなサイズの搬送システムのスケジューリングに対応しようとすると、変数やイントラ・ルール等の制約規則の数が膨大となり、手に負えなくなる可能性がある。立体倉庫問題では、3次元配置された膨大な数のセルを対象とするので、変数や制約規則の数が膨大となる可能性がある。立体倉庫問題では、膨大な数のセルの内の特定の複数の倉庫の一つに荷物を搬入し、又は複数の倉庫の一つから荷物を搬出する作業が、共通のレール上を搬送する複数の台車νにより時々刻々と更新される搬送要求に応じつつ行われる。第2実施形態に係るハイブリッド型最適解計算方法を社会的スケジューリング最適化課題に適用する具体例の一例として、最初に立体倉庫問題を説明する。従って、第2実施形態に係るハイブリッド型最適解計算方法を適用すれば、最適解を求めるための変数や制約規則の数が膨大となる状況でも、ハードウェア資源使用量の増大を抑え、最適解を高速かつ効率的に求めることが可能となる。「立体倉庫問題におけるコンフリクト」とは、同一時刻に同一セル(場所)に異なる台車νが存在する状態のことをいう。
【0149】
立体倉庫には多様な種類、形状及び規模があるが、以下の立体倉庫問題では、一例として422セルが立体的に配置された4階建ての立体倉庫を仮定する。即ち直方体形状の4階建て部分と、直方体の6面の内の1面である前面の1階部分に接続された平屋の配車準備ゾーンの部分とで構成されるものと仮定する。そして、以下の立体倉庫問題では、1階の台車の配車準備ゾーンにセル1~30が配置されるものと仮定する。前面をみる方向で定義される直方体の左側側面に沿って、立体倉庫本体の1階の左端において前面から裏面にセル31~47が配置される第1上下移動ゾーンが存在するものとする。
【0150】
立体倉庫の1階には、第1上下移動ゾーンと平行に中央部左側に第2上下移動ゾーンが前面から裏面に達するまで伸びている。立体倉庫の1階には、第2上下移動ゾーンと平行に中央部右側に第3上下移動ゾーンが、前面から裏面に達するまで伸び、前面をみる方向で定義される直方体の右側側面に沿って、立体倉庫本体の1階の右端において、第3上下移動ゾーンと平行に前面から裏面に至るまで第4上下移動ゾーンが伸びている。第1~第4上下移動ゾーンはほぼ等間隔で配置されている。第2上下移動ゾーンにはセル99~115が配置され、第3上下移動ゾーンにはセル167~183が配置され、第4上下移動ゾーンにはセル235~251が配置されている。第1上下移動ゾーンと第2上下移動ゾーンの間の平行移動ゾーンにはセル303~307,323~327が配置されている。第2上下移動ゾーンと第3上下移動ゾーンの間の平行移動ゾーンにはセル343~347,364~367が配置されている。第3上下移動ゾーンと第4上下移動ゾーンの間の平行移動ゾーンにはセル383~387,403~407が配置されているものと仮定する。
【0151】
立体倉庫本体の2階の左端には、セル48~64が配置される第5上下移動ゾーンが第1上下移動ゾーンと水平位置を一致するように配置されている。立体倉庫の2階には、第5上下移動ゾーンと平行に中央部左側に第6上下移動ゾーンが第2上下移動ゾーンと水平位置を一致するように配置されている。立体倉庫の2階には、第6上下移動ゾーンと平行に中央部右側に第7上下移動ゾーンが、第3上下移動ゾーンと水平位置を一致するように配置されている。第7上下移動ゾーンと平行に立体倉庫の2階の右端には、第8上下移動ゾーンが第4上下移動ゾーンと水平位置を一致するように伸びている。第6上下移動ゾーンにはセル116~132が配置され、第7上下移動ゾーンにはセル184~200が配置され、第8上下移動ゾーンにはセル252~268が配置されている。第5上下移動ゾーンと第6上下移動ゾーンの間の平行移動ゾーンにはセル308~312,328~332が配置されている。第6上下移動ゾーンと第7上下移動ゾーンの間の平行移動ゾーンにはセル348~352,368~372が配置されている。第7上下移動ゾーンと第8上下移動ゾーンの間の平行移動ゾーンにはセル388~392,408~412が配置されているものと仮定する。
【0152】
立体倉庫本体の3階の左端には、セル65~81が配置される第9上下移動ゾーンが第5上下移動ゾーンと水平位置を一致するように配置されている。3階には、第9上下移動ゾーンと平行に中央部左側に第10上下移動ゾーンが第6上下移動ゾーンと水平位置を一致するように配置されている。3階には、第10上下移動ゾーンと平行に中央部右側に第11上下移動ゾーンが、第7上下移動ゾーンと水平位置を一致するように配置されている。第11上下移動ゾーンと平行に3階の右端には、第12上下移動ゾーンが第8上下移動ゾーンと水平位置を一致するように伸びている。第10上下移動ゾーンにはセル133~149が配置され、第11上下移動ゾーンにはセル201~217が配置され、第12上下移動ゾーンにはセル269~285が配置されている。第9上下移動ゾーンと第10上下移動ゾーンの間の平行移動ゾーンにはセル313~317,333~337が配置されている。第10上下移動ゾーンと第11上下移動ゾーンの間の平行移動ゾーンにはセル353~357,373~377が配置されている。第11上下移動ゾーンと第12上下移動ゾーンの間の平行移動ゾーンにはセル393~397,413~417が配置されているものと仮定する。
【0153】
立体倉庫の最上階となる4階の左端には、セル82~98が配置される第13上下移動ゾーンが第9上下移動ゾーンと一致するように配置されている。4階には、第13上下移動ゾーンと平行に中央部左側に第14上下移動ゾーンが第10上下移動ゾーンと一致するように配置されている。4階には、第14上下移動ゾーンと平行に中央部右側に第15上下移動ゾーンが、第11上下移動ゾーンと一致するように配置されている。第15上下移動ゾーンと平行に4階の右端には、第16上下移動ゾーンが第12上下移動ゾーンと一致するように伸びている。第14上下移動ゾーンにはセル150~166が配置され、第15上下移動ゾーンにはセル218~234が配置され、第16上下移動ゾーンにはセル286~302が配置されている。第13上下移動ゾーンと第14上下移動ゾーンの間の平行移動ゾーンにはセル318~322,338~342が配置されている。第14上下移動ゾーンと第15上下移動ゾーンの間の平行移動ゾーンにはセル358~362,378~382が配置されている。第15上下移動ゾーンと第16上下移動ゾーンの間の平行移動ゾーンにはセル398~402,418~422が配置されているものと仮定する。
【0154】
上記のような立体倉庫内部のセル配置を前提に、立体倉庫問題では、まず、図21に示したフローチャートのステップS201において、図23に示す各台車につき、独立に最短経路をとるように「初期軌道」を決める。図23の縦軸は台車ν=1~15の区別(番号)を示し、横軸はそれぞれの台車νに関して、時系列で変化する移動(軌道)位置を説明する64ステップの時刻を示す時間軸である。時間軸の左端が時刻(ステップ)=ゼロで、右端が時刻(ステップ)=64である。図23に示すように、時刻0において台車1は台車の配車準備ゾーンのセル1に、台車2は配車準備ゾーンのセル2に、台車3は配車準備ゾーンのセル3に位置」しているという解析に必要な初期条件に従って各セルが配置される。更に、台車4は配車準備ゾーンのセル10に、台車5は配車準備ゾーンのセル11に、台車6は配車準備ゾーンのセル12に、台車7は配車準備ゾーンのセル19に、台車8は配車準備ゾーンのセル20に、台車9は配車準備ゾーンのセル21に位置」しているという解析の初期条件に従って各セルが配置される。
【0155】
更に、台車10は配車準備ゾーンのセル28に、台車11は配車準備ゾーンのセル29に、台車12は配車準備ゾーンのセル30に配置される。更に、台車13は配車準備ゾーンのセル7に、台車14は配車準備ゾーンのセル16に、台車15は配車準備ゾーンのセル25に配置されているという解析の初期条件を前提として、ステップS201の最短経路となる「初期軌道」が決められ、各台車1~15の軌道がコンフリクトしない最適解が探索される。そして、第2実施形態に係るハイブリッド型最適解計算を用いた立体倉庫問題では、台車1は2階の荷積みセル254で荷物を荷積みし、複数のセルを経由する所定の軌道で最終的に1階の目的セル1に向かう流れで探索条件が設定されていると仮定する。図7Aに例示した台車の自動搬送システムの例では、「荷積みをするセル」と「荷降ろしをするセル」がそれぞれ物流倉庫内に設定されていたが、ここで紹介する立体倉庫本体では目的セルが荷降ろしをするセルに設定されている場合と等価になる。台車2は1階の荷積みセル169で荷物を荷積みし、その後複数のセルを経由する所定の軌道で、1階の目的セル10に向かう流れの探索条件が設定されている。台車3は4階の荷積みセル91で荷物を荷積みし、その後複数のセルを経由して1階の目的セル19にまで、荷物を運ぶ探索条件が設定されている。台車4は2階の荷積みセル262で荷物を荷積みし、その後複数のセルを経由して1階の目的セル28にまで、荷物を運ぶ探索条件が設定されている。台車5は荷積みセル42で荷物を荷積みし、複数のセルを経由した後に1階の目的セル1にまで、荷物を運ぶ探索条件が設定されている。
【0156】
更に、台車6は1階の荷積みセル173で荷物を荷積みし、複数のセルを経由した後に1階の目的セル10にまで、荷物を運ぶ探索条件が設定されている。台車7は3階の荷積みセル67で荷物を荷積みし、複数のセルを経由する軌道で1階の目的セル19に向かう探索条件が設定されている。台車8は1階の荷積みセル113で荷物を荷積みし、複数のセルを経由する軌道で1階の目的セル28に向かう探索条件が設定されている。台車9は2階の荷積みセル61で荷物を荷積みし、所定の軌道に沿って1階の目的セル10に向かう探索条件が設定されている。台車10は3階の荷積みセル202で荷物を荷積みし、所定の軌道に沿って1階の目的セル10に向かう探索条件が設定されている。台車11は2階の荷積みセル261で荷物を荷積みし、所定の軌道で1階の目的セル19に向かう探索条件が設定されている。台車12は1階の荷積みセル109で荷物を荷積みし、所定の軌道で1階の目的セル28に向かう探索条件が設定されている。台車13は2階の荷積みセル266で荷物を荷積みし、所定の軌道で1階の目的セル1に向かう探索条件が設定されている。
【0157】
台車14は2階の荷積みセル53で荷物を荷積みし、所定の軌道で1階の目的セル10に向かう探索条件が設定されている。そして、台車15は3階の荷積みセル79で荷物を荷積みし、所定の軌道で1階の目的セル19に向かうというそれぞれの探索条件において、台車1~15のそれぞれの軌道がコンフリクトしない最適解を探索する。図7Aに例示した自動搬送システムの例では、「荷積みをするセル」と「荷降ろしをするセル」がそれぞれ物流倉庫内に分散して設定されていたが、ここで紹介する立体倉庫本体では、1階の配車準備ゾーンにすべての目的セルが位置し、立体倉庫の内部から1階の配車準備ゾーンにまで15台の台車で荷物を運ぶ場合の軌道が問題となる。即ち、このような探索条件で、各台車1~15同士の衝突や渋滞を回避できる、全運行ダイヤを求め、全通過地点の通過時刻や滞在時間、即ち各台車1~15のそれぞれの空間情報及び時間情報を求める。
【0158】
図23には、各台車1~15の初期軌道が台車番号対時刻のマトリクスに表示され、時々刻々変化する15台(n=15)の台車のそれぞれの立体倉庫中の軌道位置となるセル1~416の配置が示されている。ただし、上述したように今回の立体倉庫問題では、立体倉庫内部にセル1~422が配置されているとの前提であるので、図23に示したマトリクス表示には、初期軌道の設定で使われていないセルがあることが分かる。図23に□で囲んでセル番号を示したように、初期軌道の設定では時刻(ステップ)10においてセル171で台車6と台車12がコンフリクトしている。更に、初期軌道の設定では時刻(ステップ)14において、□で囲んで示したように、セル172で台車6と台車12がコンフリクトしている。また、初期軌道の設定では時刻(ステップ)11において、□で囲んだセル261で台車11と台車15がコンフリクトしていることが示されている。
【0159】
次に図21に示したフローチャートのステップS202において、図24に示すように、初期軌道同士のコンフリクトを列挙する。図24図23と等価であり、図23に示したマトリクス上での初期軌道同士のコンフリクトを整理して示すものである。即ち、図24の一番左端の欄(左列)には、図23に示した台車ν=1~15の番号が示されている。図24の左から2番目の列には、一番左端の列に示した台車νとコンフリクトする相手となる台車ν’の番号を示している。図24の左から3番目の列には、台車νと台車ν’とがコンフリクトする時刻として図23に示した時刻(ステップ)を示し、一番右端の列には、台車νと台車ν’とがコンフリクトする位置として図23に示した地点(セル)が示されている。例えば、一番上の横長の□で囲んで示したように、台車6に関しては、図23の時刻(ステップ)10においてセル171で台車12がコンフリクトしていることを図24が示している。台車11に関しては、図23に示した時刻(ステップ)14においてセル261で台車15とコンフリクトが発生していることが図24の上から2番目の横長の□で囲んで示した表示から分かる。台車12に関しては、図23に示した時刻(ステップ)11においてセル172で台車6とコンフリクトが発生していることが、上から3番目の横長の□で示されている。
【0160】
次に図21に示したフローチャートのステップS203において、図25に示すように、制御ユニット17の軌道生成部命令制御回路17Gが、各台車νにつきコンフリクトを回避できる軌道の代替案(代替軌道)をk種生成するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。k種の代替案の生成には、k種のアメーバSAT解法(アメーバSAT-Gモード)を並列処理する多細胞アメーバの処理が好適である。図25はk=5の場合であるので、k×n=5×15=75通りの場合が、初期軌道を含む全代替軌道として生成される。多細胞アメーバによるアメーバSAT-Gモードの並列計算をすることにより、75通りの全代替軌道の生成に必要な演算処理が短時間で効率良く実行できる。即ち、k=5の場合に対応してK=0,1,2,3,4とすると、図25の縦軸には、各台車の代替軌道xν,Kが縦軸の列に沿って配列される変数として列挙されている。
【0161】
具体的には縦軸の上から台車1(ν=1)についての代替軌道のペアを変数x1,0,x1,1,x1,2,x1,3,x1,4が示されている。次に縦軸に並ぶはずの台車2(ν=2)についての代替軌道のペアに関する変数x2,0,x2,1,x2,2,x2,3,x2,4の図示は省略され、代表として台車νについての代替軌道のペアを変数xν,0,xν,1,xν,2,xν,3,xν,4が縦軸に配列されている。全75通りを縦軸に示すのは無理であるので、縦軸のその下にはx6,0,x6,1,……,x11,0,x11,1,……,x12,0,x12,1,……,x15,0,x15,1,……等の代替軌道のペアの一部が、それぞれ省略した形で例示的に示されている。
【0162】
図25の横軸は、図23の横軸と同様に、代替軌道xν,Kで示されるそれぞれの台車νに関して、時系列で変化する移動(軌道)位置を説明する68ステップの時刻を示している。図25の左端が時刻(ステップ)=ゼロで、右端が時刻(ステップ)=68である。図23に対応する台車15の初期軌道x15,0は64ステップまでであるが、対応する台車15の代替軌道x15,1,は68ステップまである。即ち、図25の代替軌道xν,K対時刻のマトリクス表示において、時々刻々変化するk×n=75通りの台車のそれぞれの立体倉庫中の軌道位置となるセル1~416の配置が示されている。
【0163】
次に図21に示したフローチャートのステップS204において、コンフリクト集計部命令制御回路17Tが初期軌道を含む代替軌道の全てのペアのコンフリクトの有無を検出するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。コンフリクト集計部命令制御回路17Tが検出したコンフリクトの有無は、図26に示すコンフリクト行列の各セルにゼロまたは1の数値として表示され、コンフリクトの有無がテーブル化される。図26は、図25に対応して75×75のコンフリクト行列である。即ち、図26の縦軸は図25と同様に、各台車の代替軌道xν,Kが縦軸に配列される変数として示されている。本来であれば、図26の縦軸は、上から台車1についての代替軌道のペアを変数x1,0,x1,1,x1,2,x1,3,x1,4が示され、次に台車2についての代替軌道のペアに関する変数x2,0,x2,1,x2,2,x2,3,x2,4が示されるはずであるが、全75通りを縦軸に示すのは無理である。
【0164】
よって、図26の縦軸には、x1,0,……,x1,k,……,x1,K-1,……,xν’,k‘,……,x15,0,……,x15,k,……,x15,K-1が、それぞれ省略した形で例示的に示されている。一方、図26の横軸はコンフリクト行列を構成するように縦軸と同様に各台車の代替軌道xν,Kが横軸に配列される変数として示されている。本来であれば、横軸の左から台車1についての代替軌道のペアを変数x1,0,x1,1,x1,2,x1,3,x1,4が示され、次に台車2についての代替軌道のペアに関する変数x2,0,x2,1,x2,2,x2,3,x2,4が示されるはずである。しかし、全75通りを横軸に示すのは無理である。よって、図26の横軸には、x1,0,……,x1,k,……,x1,K-1,……,xν,k,……,x15,0,……,x15,k,……,x15,K-1が、それぞれ省略した形で例示的に示されている。図26のコンフリクト行列の各セルに示される数字ゼロはコンフリクトがない場合を示し、コンフリクト行列の各セルに示される数字1はコンフリクトが発生した場合を示す。図26のコンフリクト行列の中央に□で囲んで示すように、図26では台車νの代替軌道xν,kと台車ν’の代替軌道xν’,k‘とがコンフリクトしている。
【0165】
次に図21に示したフローチャートのステップS205において、コンフリクト解消部命令制御回路17Rは、図26のコンフリクト行列の情報に基づき、図27に示すように、コンフリクトを解消できる代替軌道の組合せを探索するように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。図27の縦軸はコンフリクトを解消できる各台車の代替軌道xν,Kである。即ち、図27の縦軸にはコンフリクトを解消できる代替軌道の組み合わせとして上から順にx1,0,x2,0,x3,0,x4,0,x5,0,x6,1,x7,0,x8,0,x9,0,x10,0,x11,0,x12,0,x13,0,x14,0,x12,1が示されている。図27の時刻(ステップ)0においてはすべての台車ν=1~15が立体倉庫の1階の配車準備ゾーンのセル1~30のいずれかに収納されていることが分かる。
【0166】
台車1は、時刻(ステップ)3で第1上下移動ゾーンのセル31に移り、時刻4で第5上下移動ゾーンのセル48に移り、時刻5で第9上下移動ゾーンのセル65に移り、時刻6で3階の水平移動ゾーンのセル313に移っていることが分かる。一方、台車2は、時刻2で第1上下移動ゾーンのセル31に移り、時刻3で第5上下移動ゾーンのセル48に移り、時刻4で第9上下移動ゾーンのセル65に移り、時刻5で3階の水平移動ゾーンのセル313に移っていることが分かる。時刻(ステップ)17において、台車1は2階の右端の第8上下移動ゾーンのセル254に位置している。セル254は最初に設定した荷積みセルであるので、時刻17~22まで6ステップの時間滞在する。また、台車2は時刻17で1階の中央右側の第3上下移動ゾーンのセル169に位置している。セル169も最初に設定した台車2の荷積みセルであるので、時刻14~19まで6ステップの時間滞在することが分かる。
【0167】
また、時刻17において、台車3は立体倉庫の4階の左端の第13上下移動ゾーンのセル93に位置し、台車4は2階の右端の第8上下移動ゾーンのセル259に位置し、台車5は1階の左端の第1上下移動ゾーンのセル41に位置している。台車6は、時刻17で1階の中央右側の第3上下移動ゾーンのセル173に位置している。セル173も最初に設定した台車6の荷積みセルであるので、時刻13~18まで6ステップの時間滞在することが分かる。また、台車7は、時刻17で3階の左端の第9上下移動ゾーンのセル67に位置している。セル67も最初に設定した台車7の荷積みセルであるので、時刻13~18まで6ステップの時間滞在することが分かる。時刻17で台車8は1階の中央右側の第3上下移動ゾーンのセル182に位置している。
【0168】
また、図27の時刻17において、台車9は立体倉庫の1階の中央右側の第3上下移動ゾーンのセル183に位置し、台車10は3階の中央右側の第11上下移動ゾーンのセル205に位置している。時刻17で、台車11は2階の右端の第8上下移動ゾーンのセル261に位置している。セル261も最初に設定した台車11の荷積みセルであるので、時刻12~17まで6ステップの時間滞在することが分かる。時刻17で、台車12は1階の中央右側の第3上下移動ゾーンのセル178に位置し、台車13は2階の中央左側の第6上下移動ゾーンのセル126に位置し、台車14は2階の中央左側の平行移動ゾーンのセル330に位置し、台車15は2階の右端の平行移動ゾーンのセル260に位置しているので、時刻17において、互いにコンフリクトはない。
【0169】
図27の時刻(ステップ)41においては、台車2,6,10,14はセルが空欄であり、既に当初に設定した目的のセルに到達し、作業が終了していることが分かる。そして、図27の時刻41の列に列挙されたセルを調べると、台車5が、最初に設定した目的セルであるセル1に丁度到達するタイミングであること分かる。同様に、時刻41において台車11が目的セルであるセル19に丁度到達するタイミングであること分かる。また、時刻41の列に列挙されたセルを調べると台車1は、セル3に位置し、台車4は、セル30に位置し、それぞれ最終目的のセルに向かって作業終了が間近であることが分かる。台車1は、目的セルであるセル1に時刻43に到達し、台車4も目的セルであるセル28に時刻43に到達する。時刻41の列の台車8は、4階建て立体倉庫の1階の右側の平行移動ゾーンのセル405に位置している。台車8は、目的セルであるセル28に時刻53で到達する。
【0170】
時刻41において台車9は2階の左端の第5上下移動ゾーンのセル52に位置する。台車9は、目的セルであるセル1に時刻49で到達する。台車12は時刻41において1階の右端の第4上下移動ゾーンのセル238に位置する。台車12は、目的セルであるセル28に時刻47で到達する。時刻41において台車13は2階の中央右側の上下移動ゾーンのセル194に位置している。台車13は、目的セルであるセル1に時刻61で到達する。時刻41において、台車15は2階の左端の第5上下移動ゾーンのセル61に位置している。台車15は、目的セルであるセル19に時刻67で到達する。このように図27に示した時刻41の列に列挙された各セルにおいて、コンフリクトはない。図21のステップS205の代替軌道の組合せの結果、図27に示すような軌道が決定され、ステップS206において図27に示す軌道によればコンフリクトを解消できる代替軌道の組合せが得られた判断されたときは、図27に示す軌道を最適解としてステップS207において表示(出力)する。
【0171】
ステップS206において、コンフリクト解消部命令制御回路17Rがコンフリクトを解消できる代替軌道の組合せが存在しないと第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの処理から判断したときは、ステップS206→ステップS208→ステップS205のループを繰り返しように、第1解探索演算論理回路1A又は第2解探索演算論理回路1Bの動作を命令制御する。例えば第1解探索演算論理回路1AのアメーバSAT-Rの機能を利用して、コンフリクトを解消できる代替軌道の組合せ(最適解)が見つかるまで繰り返し探索する。探索回数が上限値に達した場合は、ステップS206→ステップS208→ステップS209→ステップS204のループの処理により、コンフリクトを解消できる新たな代替軌道の組合せを多細胞アメーバが生成する。
【0172】
この結果、4階建ての立体倉庫において、台車1~15同士の衝突や渋滞を回避できる全台車の運行ダイヤを求めることができる。以上のように、セル数 imax=422台車数νmax=15となるような立体倉庫の場合であっても、第2実施形態に係るハイブリッド型最適解計算方法によれば「軌道の最適解」を、短時間で効率良く解くことが可能になる。更に、セル数 imax=800以上、台車数νmax=100以上の規模となり、変数が約106個以上、イントラ・ルールが約1010個以上となるような立体倉庫問題であっても、「軌道の最適解」に近い解を短時間で効率良く解くことが可能になる。
【0173】
(その他の実施形態)
上記のように、本発明は第1及び第2実施形態によって記載したが、この開示の一部をなす論述及び図面は本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替第1実施形態、実施例及び運用技術が明らかとなろう。例えば、上記の第1実施形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、又は複数の装置によって分散処理されることによって実現されてもよい。但し、複数の装置によって分散処理を行うことは、例えば、装置間で異なる遅延を容易に付加できる、又は確率論的に異なる遅延の発生が予期できる点で、好適である。また、一の装置で集中処理を行う場合にも、異なる遅延を付加したり、確率論的に異なる遅延の発生が予期されるような制御を行ったりすることは可能である。
【0174】
第2実施形態で説明した図22の第4モードは、ステップS205~206及びステップS203,209の両方でアメーバ・コンピュータの構成を使わないモードである。第4モードの場合のみの動作を目的とする場合であれば、図19に示したハイブリッド型解探索システムの構成から第1解探索演算論理回路1Aを除外し、第2解探索演算論理回路1Bのみの単機能の解探索システムとするとも可能である。又、第2実施形態で説明した図22の第2~第4モードの動作を行わない場合は、図19に示したハイブリッド型解探索システムの構成から第2解探索演算論理回路1Bを除外し、第1解探索演算論理回路1Aのみの単機能の解探索システムとするとも可能である。このように、本発明は、上記の第1及び第2実施形態の説明に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【0175】
1…中央処理装置(CPU)、1A…第1解探索演算論理回路、1B…第2解探索演算論理回路、11-1,11-2,……、11-i…データ生成ユニット、 12-1,12-2,……,12-i…データ変換ユニット、13…フィードバック制御ユニット、14…出力調整ユニット、14’…出力調整信号処理ユニット、16…揺らぎ設定ユニット、17G…軌道ジェネレータ(生成部)、17T…コンフリクトタビュレータ(集計部)、17R…コンフリクトリゾルバ(解消部)
図1
図2
図3
図4
図5
図6
図7A
図7B
図8A
図8B
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27