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

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

▶ 新日鐵住金株式会社の特許一覧

特許7332874最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム
<>
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図1
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図2
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図3
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図4
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図5
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図6
  • 特許-最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-16
(45)【発行日】2023-08-24
(54)【発明の名称】最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20230817BHJP
   G06N 10/60 20220101ALI20230817BHJP
   G05B 19/418 20060101ALI20230817BHJP
【FI】
G06N99/00 180
G06N10/60
G05B19/418 Z
【請求項の数】 8
(21)【出願番号】P 2019165198
(22)【出願日】2019-09-11
(65)【公開番号】P2021043693
(43)【公開日】2021-03-18
【審査請求日】2022-05-12
(73)【特許権者】
【識別番号】000006655
【氏名又は名称】日本製鉄株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100187702
【弁理士】
【氏名又は名称】福地 律生
(74)【代理人】
【識別番号】100162204
【弁理士】
【氏名又は名称】齋藤 学
(74)【代理人】
【識別番号】100122116
【弁理士】
【氏名又は名称】井上 浩二
(72)【発明者】
【氏名】黒川 哲明
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2018-073171(JP,A)
【文献】米国特許第07043446(US,B1)
【文献】米国特許出願公開第2003/0018560(US,A1)
【文献】宇津木健 ほか,“7.2 組合せ最適化問題と量子アニーリング”,絵で見てわかる量子コンピュータの仕組み,初版第1刷,株式会社翔泳社,2019年07月,pp. 127-130,ISBN 978-4-7981-5746-7
【文献】並木誠 ほか,“2. Pythonによる線形最適化”及び”3. Pythonによる整数線形最適化問題”,実践Pythonライブラリー Pythonによる数理最適化入門,初版第4刷,株式会社朝倉書店,2019年05月,pp. 21-92,ISBN 978-4-254-12895-6
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06N 10/00 -10/80
G05B 19/418
(57)【特許請求の範囲】
【請求項1】
集合分割問題の最適解を求めるために、汎用計算機と量子計算機とが通信可能に接続された最適化システムであって、
前記汎用計算機は、前記集合分割問題を連続変数により表される双対問題に変換し、前記双対問題の解を求め、前記双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、
前記量子計算機は、前記複数の列生成子問題を求解し、
前記汎用計算機は、前記量子計算機により求解された前記複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を前記最適解に採用される部分集合の候補として部分集合族に追加し、
前記汎用計算機および前記量子計算機は、前記量子計算機により求解された前記複数の列生成子問題の解に前記収束条件を満たさない解が含まれなくなるまで前記複数の列生成子問題の作成および求解を繰り返し、
前記汎用計算機は、前記量子計算機により求解された前記複数の列生成子問題の解に前記収束条件を満たさない解が含まれない場合、前記部分集合族を前記量子計算機に出力し、
前記量子計算機は、入力された前記部分集合族に基づいて前記最適解を求解し、出力
前記集合分割問題は、全体集合に含まれる複数の要素および前記複数の要素の少なくとも一部を含む部分集合が満たすべき条件を不等式で規定した不等式制約を有し、
前記汎用計算機は、前記列生成子問題の作成において、前記不等式制約に基づき作成される複数の等式制約を用いて前記複数の列生成子問題を作成する、
最適化システム。
【請求項2】
前記集合分割問題は、複数の要素からなる全体集合に含まれるすべての要素を重複なくかつ漏れなく含むように複数の部分集合に分割する場合のあらゆる部分集合の組み合わせのうち、所定の評価指標が最適になる部分集合の組み合わせを特定する問題として定式化される、請求項1に記載の最適化システム。
【請求項3】
量子計算機と通信可能に構成され、集合分割問題の最適解を求めるための前記量子計算機の演算を支援する最適化支援装置であって、
前記集合分割問題を連続変数により表される双対問題に変換し、前記双対問題の解を求め、前記双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、前記複数の列生成子問題を前記量子計算機に出力する問題作成部と、
前記量子計算機により求解された前記複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を前記最適解に採用される部分集合の候補として部分集合族に追加する収束判定部と、を備え、
前記問題作成部は、前記複数の列生成子問題の解が前記部分集合族に追加された場合、前記双対問題への変換、前記双対問題の求解、前記列生成子問題の作成および前記列生成子問題の出力を、前記列生成子問題の解が前記収束条件を満たすまで繰り返
前記集合分割問題は、全体集合に含まれる複数の要素および前記複数の要素の少なくとも一部を含む部分集合が満たすべき条件を不等式で規定した不等式制約を有し、
前記問題作成部は、前記不等式制約に基づき作成される複数の等式制約を用いて前記複数の列生成子問題を作成する、
最適化支援装置。
【請求項4】
前記列生成子問題は、前記集合分割問題の目的関数の値から前記双対問題の目的関数の値を減じた値を示す被約費用を最小化する問題であり、
前記収束条件は、前記列生成子問題の解に対応する値が収束閾値より大きくなることである、請求項3に記載の最適化支援装置。
【請求項5】
前記収束判定部は、前記量子計算機により求解された前記複数の列生成子問題の解のうち最適の値である解について、前記収束条件を満たすか否かの判定を行う、請求項3または4に記載の最適化支援装置。
【請求項6】
前記収束判定部は、それまでに追加された前記列生成子問題の解に対応する前記等式制約の目的関数の値の最小値が0以上である場合、前記収束閾値をより大きな値に変更する、請求項に記載の最適化支援装置。
【請求項7】
量子計算機と通信可能に構成された汎用計算機により実行され、集合分割問題の最適解を求めるための前記量子計算機の演算を支援する最適化支援方法であって、
前記集合分割問題を連続変数により表される双対問題に変換し、前記双対問題の解を求め、前記双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、前記複数の列生成子問題を前記量子計算機に出力し、
前記量子計算機により求解された前記複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を前記最適解に採用される部分集合の候補として部分集合族に追加し、
前記複数の列生成子問題の解が前記部分集合族に追加された場合、前記双対問題への変換、前記双対問題の求解、前記列生成子問題の生成および前記列生成子問題の出力を繰り返す、ことを含み、
前記集合分割問題は、全体集合に含まれる複数の要素および前記複数の要素の少なくとも一部を含む部分集合が満たすべき条件を不等式で規定した不等式制約を有し、
前記列生成子問題の作成において、前記不等式制約に基づき作成される複数の等式制約を用いて前記複数の列生成子問題を作成する、
最適化支援方法。
【請求項8】
量子計算機と通信可能に構成された汎用計算機により実行され、集合分割問題の最適解を求めるための前記量子計算機の演算を支援する最適化支援プログラムであって、
前記汎用計算機に、
前記集合分割問題を連続変数により表される双対問題に変換し、前記双対問題の解を求め、前記双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、前記複数の列生成子問題を前記量子計算機に出力し、
前記量子計算機により求解された前記複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を前記最適解に採用される部分集合の候補として部分集合族に追加し、
前記複数の列生成子問題の解が前記部分集合族に追加された場合、前記双対問題への変換、前記双対問題の求解、前記列生成子問題の生成および前記列生成子問題の出力を繰り返
前記集合分割問題は、全体集合に含まれる複数の要素および前記複数の要素の少なくとも一部を含む部分集合が満たすべき条件を不等式で規定した不等式制約を有し、
前記列生成子問題の作成において、前記不等式制約に基づき作成される複数の等式制約を用いて前記複数の列生成子問題を作成する、
処理を実行させる最適化支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラムに関する。
【背景技術】
【0002】
複数の対象物を複数の工程に分けて処理するときの処理効率の最適化等のため、大規模な要素を持つ集合を複数の部分集合に分割する集合分割問題の求解が求められることがある。例えば、製鉄プロセスにおける製鋼工程と圧延工程との間で鋼材を山として積み上げて一時保管するスラブヤードでは、山の数を少なく、かつ、鋼材の積み替え回数が少なくなるように鋼材を積み上げるのが好ましい。このようなスラブヤード山分け問題は、集合分割問題として定式化される。
【0003】
特許文献1には、対象となる鋼材を要素とする全体集合に対し、制約を満たす部分集合である山をすべて列挙し、山の数および鋼材の積み替え回数について評価する目的関数を最小化する最適な山の組み合わせを求める鋼材の山分け計画方法が開示されている。
【0004】
また、特許文献2には、鋼材の山分け計画を定式化した集合分割問題を、列生成法により求解する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第6390331号公報
【文献】特開2018-073171号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の方法によると、集合分割問題を求解するにあたり、実行可能な部分集合をすべて列挙し、それぞれについて目的関数の値を求めることになる。実行可能な部分集合の数は、対象となる要素が多くなるにつれて膨大なものとなる。例えば、山分け対象となる鋼材数が80~100程度のとき、実行可能な山をすべて列挙すると1億個を超える場合がある。このような多数の部分集合をすべて列挙し、それぞれについて目的関数の値を求め、最適解を求解するには、大量の計算機資源が必要となる。
【0007】
特許文献2の方法によると、集合分割問題を求解するにあたり、列生成法を用いる。列生成法は、大規模な線形計画問題を一括で解くのに代えて、逐次的に変数(列)を追加しながら元の問題の部分問題を解き、元の問題の最適解を求める方法である。そのため、特許文献2の方法によると、集合分割問題を求解するにあたり、実行可能な部分(列)集合をすべて列挙する必要はない。しかし、列生成法によると、集合分割問題を変換して得られる線形計画問題である双対問題の求解と、双対問題の解を用いて作成される0-1計画問題である列生成子問題の求解とを、必要な列の抽出が完了するまで繰り返す必要がある。0-1計画問題である列生成子問題の計算は、用いられる2値変数の数によっては組み合わせの数が膨大となるため、大量の計算資源および処理時間が必要となることがある。そのため、特許文献2の方法によっても、集合分割問題を迅速に求解することができない場合があった。
【0008】
一方、近年、量子力学的な状態の共存を動作原理として用いる量子計算機(例えば、超伝導量子ビットを用いた量子アニーリングマシン)の開発が進んでいる。量子計算機で用いられる演算単位(量子ビット)は、0/1以外の複数の状態に対応する。このような量子計算機は、2値変数の二次形式で表された問題(以下、「イジングモデル」という)を、ノイマン型コンピュータ等の従来型計算機(以下、「汎用計算機」という)よりも効率的に処理することができる。
【0009】
ただし、現時点の量子アニーリングマシンは、連続変数を扱うことができず、連続変数で表された双対問題を求解することができない。
【0010】
そこで、本発明は、汎用計算機と量子計算機とを使い分けるハイブリッド方式により集合分割問題を効率よく求解する最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明にかかる最適化システムは、集合分割問題の最適解を求めるために、汎用計算機と量子計算機とが通信可能に接続された最適化システムであって、汎用計算機は、集合分割問題を連続変数により表される双対問題に変換し、双対問題の解を求め、双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、量子計算機は、複数の列生成子問題を求解し、汎用計算機は、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を最適解に採用される部分集合の候補として部分集合族に追加し、汎用計算機および量子計算機は、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれなくなるまで複数の列生成子問題の作成および求解を繰り返し、汎用計算機は、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれない場合、部分集合族を量子計算機に出力し、量子計算機は、入力された部分集合族に基づいて最適解を求解し、出力する。
【0012】
本発明にかかる最適化システムでは、集合分割問題は、複数の要素からなる全体集合に含まれるすべての要素を重複なくかつ漏れなく含むように複数の部分集合に分割する場合のあらゆる部分集合の組み合わせのうち、所定の評価指標が最適になる部分集合の組み合わせを特定する問題として定式化されることが好ましい。
【0013】
本発明にかかる最適化支援装置は、量子計算機と通信可能に構成され、集合分割問題の最適解を求めるための量子計算機の演算を支援する最適化支援装置であって、集合分割問題を連続変数により表される双対問題に変換し、双対問題の解を求め、双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、複数の列生成子問題を量子計算機に出力する問題作成部と、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を最適解に採用される部分集合の候補として部分集合族に追加する収束判定部と、を備え、問題作成部は、複数の列生成子問題の解が部分集合族に追加された場合、双対問題への変換、双対問題の求解、列生成子問題の作成および列生成子問題の出力を、列生成子問題の解が収束条件を満たすまで繰り返す。
【0014】
本発明にかかる最適化支援装置では、列生成子問題は、集合分割問題の目的関数の値から双対問題の目的関数の値を減じた値を示す被約費用を最小化する問題であり、収束条件は、列生成子問題の解に対応する値が収束閾値より大きくなることであることが好ましい。
【0015】
本発明にかかる最適化支援装置では、集合分割問題は、複数の要素および部分集合が満たすべき条件を不等式で規定した不等式制約を有し、問題作成部は、不等式制約に基づき作成される複数の等式制約を用いて複数の列生成子問題を作成することが好ましい。
【0016】
本発明にかかる最適化支援装置では、収束判定部は、量子計算機により求解された複数の列生成子問題の解のうち最適の値である解について、収束条件を満たすか否かの判定を行うことが好ましい。
【0017】
本発明にかかる最適化支援装置では、収束判定部は、それまでに追加された列生成子問題の解に対応する等式制約の目的関数の値の最小値が0以上である場合、収束閾値をより大きな値に変更することが好ましい。
【0018】
本発明にかかる最適化支援方法は、量子計算機と通信可能に構成された汎用計算機により実行され、集合分割問題の最適解を求めるための量子計算機の演算を支援する最適化支援方法であって、集合分割問題を連続変数により表される双対問題に変換し、双対問題の解を求め、双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、複数の列生成子問題を量子計算機に出力し、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を最適解に採用される部分集合の候補として部分集合族に追加し、複数の列生成子問題の解が部分集合族に追加された場合、双対問題への変換、双対問題の求解、列生成子問題の生成および列生成子問題の出力を繰り返す、ことを含む。
【0019】
本発明にかかる最適化支援プログラムは、量子計算機と通信可能に構成された汎用計算機により実行され、集合分割問題の最適解を求めるための量子計算機の演算を支援する最適化支援プログラムであって、汎用計算機に、集合分割問題を連続変数により表される双対問題に変換し、双対問題の解を求め、双対問題の解を含み2値変数により表される複数の列生成子問題を作成し、複数の列生成子問題を量子計算機に出力し、量子計算機により求解された複数の列生成子問題の解に収束条件を満たさない解が含まれる場合、当該列生成子問題の解を最適解に採用される部分集合の候補として部分集合族に追加し、複数の列生成子問題の解が部分集合族に追加された場合、双対問題への変換、双対問題の求解、列生成子問題の生成および列生成子問題の出力を繰り返す、処理を実行させる。
【発明の効果】
【0020】
本発明によると、汎用計算機と量子計算機とを使い分けるハイブリッド方式により集合分割問題を効率よく求解することができる。
【図面の簡単な説明】
【0021】
図1】最適化システムの動作概要を示す模式図である。
図2】汎用計算機の概略構成を示す模式図である。
図3】量子計算機の概略構成を示す模式図である。
図4】超伝導を用いた量子ビットの動作原理を説明する図である。
図5】量子ビットノードおよび結合器の配置模式図である。
図6】汎用計算機の処理フローチャートである。
図7】列生成子問題作成処理のフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照して最適化システム、最適化支援装置、最適化支援方法、および最適化支援プログラムについて詳細に説明する。ただし、本発明は図面または以下に記載される実施形態には限定されないことを理解されたい。
【0023】
図1は、最適化システムの動作概要を示す模式図である。
【0024】
最適化システム1は、汎用計算機2と量子計算機3とを使い分けるハイブリッド方式により集合分割問題の最適解を求める。ここで、集合分割問題は、n個の要素(要素1から要素n)からなる全体集合Nに含まれるすべての要素(図1に示すi)を重複なくかつ漏れなく含むように複数の部分集合(図1に示すj)に分割する場合の部分集合の組み合わせ(図1に示す破線で囲まれた部分集合jの集まり)のうち、所定の評価指標が最適になるような部分集合の組み合わせを特定する問題である。具体的には、最適化システム1は、全体集合Nに対する部分集合(列)jを列挙し、それぞれの部分集合jの評価値を求め、それらの評価値の総和である目的関数を最適化(最大化または最小化)するような部分集合jの組み合わせを特定する集合分割問題を求解する。図1の例では、製鋼工程から搬出された鋼材i1、i2、i3、……は、スラブヤードで一時保管するときに、いずれかの山に積み上げられる。このとき、鋼材i1、i2、i3、……をどのように山に積み上げるかを決定する問題を、集合分割問題として定式化することにより、例えば鋼材i1、i2、i3を、それぞれ山j1、j2、j3に積み上げる、あるいは鋼材i1を山j4に、鋼材i2、i3を山j5に積み上げるかを決定することができる。ただし、集合Nの要素である鋼材i1、i2、i3は、山j1、j2、j3からなる部分集合の組み合わせ、または、山j4、j5からなる部分集合の組み合わせに、重複なくかつ漏れなく含まれる。このような要素の集合を複数の部分集合(列)に分割する問題は、部分集合(列)jの評価値を表す目的関数を最適化する集合分割問題として定式化される。
【0025】
最適化システム1は、汎用計算機2と量子計算機3とを有する。汎用計算機2と量子計算機3とは、通信可能に接続される。汎用計算機2は、最適化支援装置の一例である。
【0026】
汎用計算機2は、部分集合(列)jの集合である部分集合族C(列集合)に対応する集合分割問題を、連続変数により表される双対問題に変換する。また、汎用計算機2は、双対問題の解(双対解)を求める。そして、汎用計算機2は、双対問題の解を含み2値変数により表される列生成子問題を作成し、量子計算機に出力する。
【0027】
量子計算機3は、列生成子問題を求解し、解を汎用計算機2に出力する。
【0028】
汎用計算機2は、量子計算機3により求解された列生成子問題の解に収束条件を満たさない解が含まれるか否かを判定する。収束条件を満たさない解が含まれる場合、汎用計算機2は、当該列生成子問題の解を元の集合分割問題の最適解に採用される候補として部分集合族Cに追加する。このようにして、汎用計算機2および量子計算機3は、量子計算機3により求解された列生成子問題の解に収束条件を満たさない解が含まれなくなるまで、列生成子問題の生成および求解を繰り返す。
【0029】
収束条件を満たさない解が含まれない場合、汎用計算機2は、部分集合族Cを量子計算機3に出力する。量子計算機3は、入力された部分集合族Cに基づいて集合分割問題の最適解を求解し、出力する。
【0030】
このように動作することにより、本実施形態にかかる最適化支援装置を含む最適化システム1は、汎用計算機2と量子計算機3とを使い分けるハイブリッド方式により集合分割問題を効率よく求解することができる。
【0031】
図2は、汎用計算機の概略構成を示す模式図である。
【0032】
汎用計算機2は、量子計算機3と接続し、集合分割問題に基づいて作成した列生成子問題を量子計算機3に出力し、量子計算機3から列生成子問題の解の入力を受ける。そのために、汎用計算機2は、通信インタフェース21と、メモリ22と、入力デバイス23と、プロセッサ24とを備える。
【0033】
通信インタフェース21は、汎用計算機2を通信ネットワークに接続するための通信インタフェース回路を有する。通信インタフェース21は、プロセッサ24により供給される列生成子問題を量子計算機3に送信し、量子計算機3から受信した列生成子問題の解をプロセッサ24に供給する。
【0034】
メモリ22は、例えば、半導体メモリ、磁気ディスク装置および光ディスク装置のうちの少なくとも1つを有する。メモリ22は、プロセッサ24による処理に用いられるドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム、データ等を記憶する。例えば、メモリ22は、データとして、部分集合族C等を記憶する。各種プログラムは、コンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いてメモリ22にインストールされてよい。コンピュータ読み取り可能な可搬型記録媒体とは、例えばCD-ROM(Compact Disc Read-Only Memory)、DVD-ROM(DVD Read-Only Memory)等である。
【0035】
入力デバイス23は、汎用計算機2の操作が可能であればどのようなデバイスでもよく、例えば、キーボードやマウス等である。ユーザは、入力デバイス23を用いて、文字や数字、記号等を入力することができる。入力デバイス23は、ユーザにより操作されると、その操作に対応する信号を発生する。そして、発生した信号は、ユーザの指示としてプロセッサ24に供給される。
【0036】
プロセッサ24は、1以上のプロセッサおよびその周辺回路を備える。プロセッサ24は、汎用計算機2の全体的な動作を統括的に制御する処理回路であり、例えば、CPU(Central Processing Unit)である。プロセッサ24は、汎用計算機2の各種処理がメモリ22に記憶されているプログラム等に基づいて適切な手段で実行されるように、通信インタフェース21等の動作を制御する。プロセッサ24は、メモリ22に記憶されているプログラム(オペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム等)に基づいて処理を実行する。また、プロセッサ24は、複数のプログラム(アプリケーションプログラム等)を並列に実行することができる。
【0037】
プロセッサ24は、問題作成部241と、収束判定部242とを有する。プロセッサ24が有するこれらの各部は、プロセッサ24が有するプロセッサ上で実行されるプログラムによって実装される機能モジュールである。あるいは、プロセッサ24が有するこれらの各部は、独立した集積回路、マイクロプロセッサ、またはファームウェアとして汎用計算機2に実装されてもよい。
【0038】
問題作成部241は、集合分割問題を連続変数により表される双対問題に変換する。また、問題作成部241は、双対問題の目的関数の解を求める。そして、問題作成部241は、双対問題の解を含み2値変数により表される列生成子問題を作成し、量子計算機に出力する。
【0039】
収束判定部242は、量子計算機3により求解された列生成子問題の解に収束条件を満たさない解が含まれるか否かを判定する。収束条件を満たさない解が含まれる場合、収束判定部242は、当該列生成子問題の解を部分集合族Cに追加する。また、収束条件を満たさない解が含まれない場合、収束判定部242は、部分集合族Cを量子計算機3に出力する。
【0040】
図3は、量子計算機の概略構成を示す模式図である。
【0041】
量子計算機3は、量子力学の法則を用いた処理を実行する計算機である。量子力学の法則を用いて組み合わせ最適化問題を求解する量子アニーリングマシンは、量子計算機3の一例である。
【0042】
量子計算機3は、複数の量子ビットノード31と、各量子ビットノード31を制御する量子ビット制御部32とを備える。また、量子計算機3は、各量子ビットノード31の間を結合する複数の結合器33と、各結合器33を制御する結合器制御部34とを備える。また、量子計算機3は、各量子ビットノード31の値を測定して出力する読出部35を備える。また、量子計算機3は、量子計算機3を通信ネットワークに接続するための通信インタフェース回路を有する通信部36を備える。
【0043】
本実施形態の量子ビットノード31は、例えばニオブなどの金属を極低温に冷却したときに電気抵抗がゼロになる現象である超伝導を動作原理として用いた超伝導リングにより実現される。なお、量子ビットノード31は、シリコン基板上の電子のスピンを動作原理として用いたシリコン量子ビットチップなどの他の技術によっても実現可能である。
【0044】
図4は、超伝導を用いた量子ビットの動作原理を説明する図である。
【0045】
図4に示す量子ビットは、超伝導リング内に発生する磁束の性質を用いた磁束量子ビットである。磁束量子ビットの超伝導リングでは、一方向の電流と逆方向の電流とが所定の比率で同時に存在することができ、超伝導リングに対して垂直な方向の磁束が生成される。このような超伝導リングの近傍に配置された回路を流れる交流電流により生ずる磁場に対して、超伝導リングの磁束が磁気共鳴する。この超伝導リングの磁束の変動を、磁束量子ビットの周囲に配置される不図示の超伝導量子干渉計(Superconducting Quantum Interference Device, SQUID)により検出する。
【0046】
図5は、量子ビットノードおよび結合器の配置模式図である。
【0047】
結合器33-15~33-48は、縦長の量子ビットノード31-1~31-4に重ねて配置される。また、横長の量子ビットノード31-5~31-8は、結合器33-15~33-48に重ねて配置される。縦型の量子ビットノード31-1~31-4と横型の量子ビットノード31-5~31-8とは、格子状に配置される。なお、図5では量子ビットノード31が縦横に4個ずつ配置された例を示しているが、量子ビットノード31が配置される個数はこの例に限定されない。
【0048】
結合器33-15~33-48は、上述した超伝導リングで構成されている。なお、量子ビットノード31がシリコン量子ビットチップで構成されている場合、結合器33もシリコン量子ビットチップで構成することができる。
【0049】
一の量子ビットノード31(図5において例えば量子ビットノード31-1)と他の量子ビットノード(図5において例えば量子ビットノード31-5)とは、結合器33(図5において例えば結合器33-15)を介して結合されている。
【0050】
量子ビット制御部32は、量子ビットノード31を所定の状態に設定する。これにより、量子ビットノード31は0と1(または-1と+1)とが重ね合わせられた状態を有する。また、結合器制御部34は、結合器33を所定の状態に設定する。結合器33および結合器33により結合される複数の量子ビットノード31は相互作用し、量子ビットノード31の状態が変化する。読出部35は量子ビットノード31の状態を読み取り、出力する。
【0051】
ここで、最適化システム1の処理対象となる問題について説明する。本実施形態において、最適化システム1は、鋼材をスラブヤードの複数の山に積み上げるスラブヤード山分け問題を解くことができる。スラブヤード山分け問題では、山の数を少なくするとともに、先に山に積まれた鋼材の搬出順序が先である場合に必要となる積み替えの回数を少なくすることが好ましい。
【0052】
山分けの対象となる鋼材の集合をN={1, 2, …, i, …, n}とし、実行可能な山(列)jの集合をC(部分集合族)とする。山jはベクトルmjにより表される。mjはn個の要素を持ち、その第i要素mj[i]は、山jに鋼材iが含まれる場合に1をとり、そうでない場合に0をとる。すなわち、mjは山jに含まれる鋼材iを特定するベクトルである。
【0053】
実行可能な山の集合C(部分集合族)に対応する集合分割問題は、以下の式(1)~(3)のように定式化することができる。
【0054】
【数1】
【0055】
式(1)は、各部分集合(列)の費用の合計に対応する目的関数を示している。x[j]は式(3)に示すように2値変数であり、部分集合(列)jが全体集合Nのすべての要素を重複なくかつ漏れなく被覆する解として採用された場合に1を、そうでない場合0をとる。cjは各部分集合(列、山分け問題における山に対応)jを評価する評価値であり、負でない整数のk1およびk2を用いて表される。k1は解として採用された部分集合(列)の数に対する重みを示す係数であり、k2は対応する山を作成する場合に生ずる積み替え回数cj2に対する重みを示す係数である。式(1)を満たすx[j]が、集合分割問題の解となる。なお、各部分集合(列)の評価値の合計に対応する目的関数は、所定の評価指標の一例である。評価指標は、評価値の中央値、最頻値、幾何平均値等に対応する目的関数であってもよい。
【0056】
式(2)において、S(i)は要素iを有する部分集合(列)の集合を表す。式(2)は、各要素iが一つの部分集合(列)に属するとの制約を示している。例えば、スラブヤード山分け問題では、式(2)は、すべての鋼材が重複なくかつ漏れなく部分集合である山に含まれるようにする制約に相当する。
【0057】
図6は、汎用計算機の処理フローチャートである。
【0058】
プロセッサ24は、集合分割問題として式(1)~(3)を与えられると、まず上述した部分集合族Cの初期値として初期部分集合族を作成する(ステップS1)。初期部分集合族では、例えば、要素の集合Nの任意の要素を1つずつ含むような部分集合(列)が生成される。すなわち、初期部分集合族Cinit={{1},{2},…,{n}}である。ここで{1}は、m1[i1]=1, m1[i2]=0,…,m1[in]=0であるベクトルm1により表される、要素i1のみを含む部分集合(列)を示す。同様に{2}、{n}は、それぞれ要素i2、inのみを含む部分集合(列)に対応する。
【0059】
次に、問題作成部241は、部分集合族Cに対応する集合分割問題を連続変数により表される双対問題に変換する(ステップS2)。ここで、ステップS1からステップS2に処理が初めて移行した場合は、部分集合族CとしてステップS1で作成された初期部分集合族を用いる。また、後述のステップS8からステップS2に処理が移行した場合は、その時点において最新の部分集合族Cを用いる。双対問題は、以下の式(4)、(5)のように定式化される。式(4)において、双対変数はd[i](i∈N)である。
【0060】
【数2】
【0061】
次に、問題作成部241は、双対問題(式(4)、(5))を求解する(ステップS3)。以下、双対問題の解としてのd[i]を、双対価格ともいう。式(4)は、式(1)、式(2)を主問題とする双対問題の目的関数を示し、式(5)は、式(1)、式(2)を主問題とする双対問題の制約式を示している。
【0062】
次に、問題作成部241は、双対価格を含み2値変数により表される列生成子問題を作成し(ステップS4)、作成した列生成子問題を量子計算機3に出力する(ステップS5)。
【0063】
図7は、列生成子問題作成処理のフローチャートである。
【0064】
列生成子問題作成処理が開始されると、問題作成部241は、まず制約条件を定式化する(ステップS41)。
【0065】
同じ部分集合(列)に属する要素が満たす必要のある条件は、制約条件の一例である。例えば、スラブヤード山分け問題において、上下に積まれる鋼材は、上の鋼材の方が下の鋼材よりも幅が狭いといった所定の幅条件または長さ条件を満たす必要がある。本実施形態において、要素Nについては以下の式(6)に示す制約条件に対応する要素対の集合Fが定義される。式(6)に示す定義より、集合Fに属する要素対の両方は、同一の山(部分集合あるいは列)に含まれることができない。そのため、以下では集合Fを「禁止対集合」と称する。
【0066】
【数3】
【0067】
禁止対集合Fは、Fに該当する要素が同時に含まれる項の値が大きくなるように設定された重み係数qBigを用いて、式(7)に示すイジングモデルJFとして表される。
【0068】
【数4】
【0069】
また、同じ部分集合(列)に属する要素の数を制限する条件は、制約条件の一例である。例えば、スラブヤード山分け問題において、積める山の高さは有限であるため、同一の山に積み得る鋼材の数は上限数以下である必要がある。本実施形態において、山の高さの上限をhmaxとし、山の高さ(部分集合上限)制約は、以下の式(8)に示す不等式により設定される。なお、鋼材iは、同一の高さの1以上のスラブから構成されているものとし、そのスラブ数をnmb(i)とする。
【0070】
【数5】
【0071】
次に、問題作成部241は、不等式制約から複数の等式制約を生成する(ステップS42)。本実施形態では、量子計算機3を用いて集合分割問題の求解を行う。しかし、量子計算機3では式(8)に示す不等式制約を処理することができない。そのため、問題作成部241は、式(8)に基づいて以下に示す複数の等式制約を用いた子問題を生成する。
【0072】
【数6】
【0073】
式(9-1)~(9-p)では、不等式制約を満たす高さをh1,h2,…,hp (hp=hmax)とする。子問題1~子問題pの実行可能領域は、元の問題である式(8)と比較して狭く、互いに背反領域となり、それらの和集合が元の問題の実行可能領域となる。したがって、これらの各等式制約を山の高さ(部分集合上限)制約として個別に持つ子問題を解いた場合、それらの最適値のうち最もよい最適値を持つ子問題の解を、元の問題の最適解とすることができる。
【0074】
式(9-1)~(9-p)は、この制約を満たさない場合に該当する項が大きくなるように設定された重み係数qBigを用いて、式(10-1)~(10-p)に示すイジングモデルの項に変換される。このように、不等式制約を等式制約に変換することで、量子計算機3において列生成子問題を解くことが可能になる。
【0075】
【数7】
【0076】
次に、問題作成部241は、列生成子問題の目的関数を作成する(ステップS43)。
【0077】
要素を複数の部分集合(列)に分類するにあたっては、同一の部分集合(列)に属すると好ましくない要素ペアがなるべく同一の部分集合(列)に分類されないようにすることが好ましい。例えば、スラブヤード山分け問題において、スラブヤードに先に到着し先に搬出される鋼材と、後に到着し後に搬出される鋼材とを同一の山にすると、山積みしてから搬出されるまでに積み替えが必要となる。本実施形態において、上記のような好ましくない要素対の集合Rは、以下の式(11)により定義される。
【0078】
【数8】
【0079】
鋼材i1が鋼材i2より到着順、搬出順共に先である場合、鋼材i1を一旦仮置きし、鋼材i2が到着した後に鋼材i1を仮置き場から本来の山に積み替える必要がある。式(11)に定義される要素対の集合Rは、属する要素対に対応する鋼材i1と鋼材i2とを同一山とすると積み替えが発生するので、同一山とするのに好ましくない鋼材対であることを示している。そのため、以下では集合Rを「積替え対集合」と称する。
【0080】
列生成子問題は、被約費用を最小化する問題として定式化される。被約費用は、集合分割問題の主問題評価値と双対問題の双対問題評価値とを用いて、以下の式(12)として表わされる。
【0081】
【数9】
【0082】
主問題評価値cjは、式(1)よりcj=k1+k2・cj2と表される。上述したようにcj2は積み替え回数に対応し、Σ(i1,i2)∈Rmj[i1]・mj[i2]により表される。よって、上述した複数の等式制約に対応する列生成子問題は、以下の式(13)に示すイジングモデルにより表される。
【0083】
【数10】
【0084】
式(13)において、d[i]は双対価格(直前の双対問題の解)である。なお、k1は定数であるので、最適解を計算する時には省略可能であるが、最適解に基づく最適値(後述する最適値rj s(s=1,…,p))を計算する時には必要となる。なお、式(13)において、制約に違反する部分集合(列)に過大なペナルティを課すため、式(7)に示す禁止対集合Fに対応する目的関数JF、および、式(10-1)~(10-p)に示す高さ制約に対応する目的関数Jhsを加えている。高さ制約は不等式制約であるが、量子計算機3においては不等式制約を扱うことができないので、不等式制約から変換された等式制約に対応する複数の目的関数Jhs (s=1,…,p)が用いられる。
【0085】
問題作成部241は、mj[i](i∈N)に関して式(14)に示すHS(s=1,…,p)を最小化する問題を、列生成子問題とする。
【0086】
図6に戻り、問題作成部241は、作成した列生成子問題を量子計算機3に出力する(ステップS5)。
【0087】
量子計算機3は、高さ制約に対応する目的関数Jhs(s=1,…,p)により複数に分かれた列生成子問題HS(s=1,…,p)を、並列あるいは順番に求解する。量子計算機3は、量子ビット制御部32および結合器制御部34により、列生成子問題に応じて量子ビットノード31および結合器33を所定の状態に設定する。列生成子問題の最適解をmj s*[i](i∈N, s=1,…,p)とし、それぞれの最適解をHsに代入して得られる最適値をrj s(s=1,…,p)とする。量子計算機3は、読出部35により量子ビットノード31の状態を読み取り、最適解mj s*[i]および最適値rj sを汎用計算機2に出力する。
【0088】
収束判定部242は、列生成子問題の解を量子計算機3から取得し(ステップS6)、取得した列生成子問題の解が収束条件を満たしているか否かを判定する(ステップS7)。
【0089】
収束判定部242は、取得した列生成子問題の解が収束条件を満たしていないと判定した場合(ステップS7:N)、列生成子問題の解(mj[i])を部分集合族Cに部分集合(列)として追加し(ステップS8)、ステップS2に戻る。また、収束判定部242は、取得した列生成子問題の解が収束条件を満たしていると判定した場合(ステップS7:Y)、部分集合族Cを量子計算機3に出力し(ステップS9)、処理を終了する。収束判定部242は、部分集合族Cに追加すべき部分集合(列)が含まれていれば収束条件を満たしていないと判定し、含まれていなければ収束条件を満たしていると判定する。
【0090】
ステップS8において、収束判定部242は、列生成子問題の解(mj[i])と同一の解が既に部分集合族Cに含まれているか否かを判定する。列生成子問題の解(mj[i])が部分集合族Cに含まれていないと判定した場合、収束判定部242は、列生成子問題の解(mj[i])を部分集合族Cに追加してステップS2に戻る。列生成子問題の解(mj[i])が部分集合族Cに含まれていると判定した場合、収束判定部242は、列生成子問題の解(mj[i])を部分集合族Cに追加することなくステップS2に戻る。
【0091】
取得した列生成子問題の解(mj s*[i])に対応する値(rj s) (s=1,…,p)が1つでも0以下である場合、収束判定部242は、収束条件を満たしていないと判定し、列生成子問題の解(mj s*[i])のうち、値rj sが0以下となる部分集合(列)を、部分集合族Cに追加する。なお、列生成子問題の値(rj s)は、被約費用に相当する。
【0092】
また、収束判定部242は、複数の等式制約に対応して作成された複数の列生成子問題の解(mj s*[i])のうち、値(rj s)が最小(最適)である解のみを、収束判定の対象としてもよい。
【0093】
また、収束判定部242は、された複数の列生成子問題の解(mj s*[i])のうち、値(rj s)が所定の収束閾値THD以下である解を部分集合族Cに追加してもよい。このように処理することで、1回の列生成子問題の求解によって複数の部分集合(列)を部分集合族Cに追加することができるため、繰り返し回数を抑制して計算時間を短縮することができる。
【0094】
また、収束判定部242は、収束閾値THDの初期値を0とし、列生成子問題の値(rj s)の最小値が0以上となった場合、収束閾値THDをより大きい値に変更するようにしてもよい。このように処理することで、双対最適解の精度が高くない繰り返し処理の初期段階での不適切な部分集合(列)の生成を防ぎ、双対最適解の精度が高まった繰り返し処理の終盤で、最適計算に有用な部分集合(列)の部分集合族Cへの取り込みが可能となる。
【0095】
収束判定部242は、列生成子問題の値(rj s)の最小値が0以上となった場合、収束閾値THDを以下に示す式(14)に変更してもよい。
【0096】
本実施形態において、主問題は0-1計画問題であり、双対問題は線形計画問題である。そのため、両者が最適解であったとしても主問題の最適値と双対問題の最適値との不一致(主双対ギャップ)が存在し得る。式(14)は、この主双対ギャップを想定したものである。収束閾値THDを式(14)に変更することにより、主双対ギャップが正となる列生成子問題の解(列)も部分集合族Cへの取り込みが可能となるので、主問題求解時に前記主双対ギャップに対応した解を求解することができる。
【0097】
【数11】
【0098】
本実施形態の最適化システム1は、このように汎用計算機2と量子計算機3とが相互に他方の求めた解を用いて問題を繰り返し求解することで、集合分割問題を効率よく求解することができる。
【0099】
なお、本実施形態にかかる最適化システム1では、量子計算機3が部分集合族Cに基づく集合分割問題の求解を行うが、汎用計算機2が集合分割問題の求解を行うようにしてもよい。
【0100】
当業者は、本発明の精神および範囲から外れることなく、種々の変更、置換および修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0101】
1 最適化システム
2 汎用計算機
241 問題作成部
242 収束判定部
3 量子計算機
図1
図2
図3
図4
図5
図6
図7