Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7736178B2 - 重み係数算出装置および重み係数算出方法 - Google Patents
[go: Go Back, main page]

JP7736178B2 - 重み係数算出装置および重み係数算出方法 - Google Patents

重み係数算出装置および重み係数算出方法

Info

Publication number
JP7736178B2
JP7736178B2 JP2024516049A JP2024516049A JP7736178B2 JP 7736178 B2 JP7736178 B2 JP 7736178B2 JP 2024516049 A JP2024516049 A JP 2024516049A JP 2024516049 A JP2024516049 A JP 2024516049A JP 7736178 B2 JP7736178 B2 JP 7736178B2
Authority
JP
Japan
Prior art keywords
constraint
term
constraint term
represented
spin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2024516049A
Other languages
English (en)
Other versions
JPWO2023203769A5 (ja
JPWO2023203769A1 (ja
Inventor
裕太 井手口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2023203769A1 publication Critical patent/JPWO2023203769A1/ja
Publication of JPWO2023203769A5 publication Critical patent/JPWO2023203769A5/ja
Application granted granted Critical
Publication of JP7736178B2 publication Critical patent/JP7736178B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Description

本発明は、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項の重み係数を算出する重み係数算出装置、重み係数算出方法、および、重み係数算出プログラムに関する。
組合せ最適化問題を解く際に、イジングモデルやQUBO(Quadratic Unconstrained Binary Optimization )のエネルギー関数が利用されている。
イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルであるが、組合せ最適化問題の求解にも適用可能である。イジングモデルでは、個々のスピンの状態は、“1”または“-1”で表される。
イジングモデルにおけるエネルギー関数は、以下の式(1)のように表される。
式(1)におけるi,jは、いずれもスピンを表す変数である。また、式(1)におけるsは、スピンiの状態を表す変数であり、sは、スピンjの状態を表す変数である。式(1)におけるhは、スピンiに対応する定数である。iの取り得る値毎に、hは定数として定められる。式(1)におけるJijは、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Jijは定数として定められる。
QUBOは、個々のスピンの状態を“1”または“0”で表すモデルである。
QUBOにおけるエネルギー関数は、以下の式(2)のように表される。
式(2)におけるi,jは、いずれもスピンを表す変数である。また、式(2)におけるsは、スピンiの状態を表す変数であり、sは、スピンjの状態を表す変数である。式(2)におけるQijは、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Qijは定数として定められる。
イジングモデルやQUBOのエネルギー関数は、シミュレーテッドアニーリングを実行する求解装置に入力される。求解装置は、シミュレーテッドアニーリングによって、組合せ最適化問題の解に該当する各スピンの状態を求める。
以下、QUBOのエネルギー関数を求める場合を例にして説明する。ただし、イジングモデルのエネルギー関数を求めることも、下記の説明と同様に説明可能である。
QUBOのエネルギー関数は、組合せ最適化問題におけるエネルギーを表す式を変形することによって求められる。この式は、1つ以上の目的関数と1つ以上の制約項の重み付け和を、エネルギーとして表す。1つの制約項は、1つの制約を表す。1つ以上の各目的関数と1つ以上の各制約項には、それぞれ、重み係数が定められている。また、個々の目的関数や個々の制約項は、それ自体で、QUBOのエネルギー関数の形式に変形可能である。
例えば、以下に示す式(3)は、組合せ最適化問題におけるエネルギーを表す式の一例である。
E=W(目的関数1)+W(目的関数2)+W(制約項1)+W(制約項2)
+W(制約項3+制約項4)
・・・(3)
,W,W,W,Wは、それぞれ重み係数である。
式(3)において、W(制約項3+制約項4)は、複数の制約項(制約項3と制約項4)が共通の重み係数Wに関連付けられていることを表している。
式(3)に例示するようなエネルギーを表す式が、QUBOのエネルギー関数に変形される。そして、QUBOのエネルギー関数は求解装置に入力される。求解装置は、組合せ最適化問題の解に該当する各スピンの状態を求める。
QUBOのエネルギー関数に変形されるエネルギーを表す式の具体例を以下に示す。ここでは、都市数が4個である場合の巡回セールスマン問題を例にする。図7は、この巡回セールスマン問題における各スピンの状態の一例を示す模式図である。本例では、エネルギーを表す式は、以下に示す式(4)のように表される。
式(4)の右辺第1項は、目的関数である。本例では、目的関数の重み係数は1である。目的関数におけるdijは、2つの都市間の距離を表す。式(4)の右辺第2項から第9項までは、制約項である。各制約項には共通の重み係数Aが定められている。本例の目的関数は、QUBOのエネルギー関数の形式になっている。また、8個の各制約項はそれぞれ、それ自体で、QUBOのエネルギー関数の形式に変形することができる。
右辺第2項は、図7に示す第1列において1つのスピンだけが1になるという制約である。右辺第3項は、図7に示す第2列において1つのスピンだけが1になるという制約である。右辺第4項は、図7に示す第3列において1つのスピンだけが1になるという制約である。右辺第5項は、図7に示す第4列において1つのスピンだけが1になるという制約である。
右辺第6項は、図7に示す第1行において1つのスピンだけが1になるという制約である。右辺第7項は、図7に示す第2行において1つのスピンだけが1になるという制約である。右辺第8項は、図7に示す第3行において1つのスピンだけが1になるという制約である。右辺第9項は、図7に示す第4行において1つのスピンだけが1になるという制約である。
制約項の値が0に近いほど、その制約項が表す制約がより満たされていることになる。
一般的に、制約項の重み係数の値によっては、求解装置によって得られた解が、制約項が表す制約を満たさない場合がある。そこで、一般的に、シミュレーテッドアニーリングと、制約項の重み係数の修正とを繰り返すことによって、解が制約を満たすような制約項の重み係数を決定している。図8は、制約項の重み係数の決定の一般的な処理経過の例を示すフローチャートである。なお、目的関数の重み係数は、オペレータが固定値として定めているものとする。
まず、各制約項の重み係数を初期化する(ステップS101)。そして、シミュレーテッドアニーリングを実行し、組合せ最適化問題の解を得る(ステップS102)。次に、各制約項が示す制約を満たす解が得られたか否かを判定する(ステップS103)。得られた解において、満たされていない制約があるならば(ステップS103のNo)、手動または自動で、制約項の重み係数を修正する(ステップS104)。そして、ステップS102以降の処理を繰り返す。各制約項が示す制約を全て満たす解が得られたならば(ステップS103のYes)、その時点で得られている各制約項の重み係数を、各制約項の重み係数として決定する。
なお、目的関数の重み係数は、オペレータによって適宜決定されてよい。例えば、式(3)に示す例において、オペレータが、目的関数1が重要であると判断した場合には、オペレータが、目的関数1の重み係数Wを大きな値に設定すればよい。
また、特許文献1には、エネルギー関数を、制約条件を表す制約項と、コスト関数を表すコスト項とに分けて定義し、制約項の重み係数の値をパラメータ更新則によって調節して、シミュレーテッドアニーリングを行うことが記載されている。
特開平8-153085号公報
前述のように、シミュレーテッドアニーリングと、制約項の重み係数の修正とを繰り返しながら、制約を満たす解を得ることができる制約項の重み係数を決定する場合、シミュレーテッドアニーリングを繰り返すことになる。そのため、この方法では、制約項の重み係数の決定に時間がかかる。
そこで、本発明は、組合せ最適化問題のエネルギーを表す式の制約項の重み係数を高速に算出することができる重み係数算出装置、重み係数算出方法、および、重み係数算出プログラムを提供することを目的とする。
本発明による重み係数算出装置は、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項が入力される入力手段と、制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出手段と、制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定手段と、制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出手段と、制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出手段とを備えることを特徴とする。
本発明による重み係数算出方法は、コンピュータが、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項の入力を受け付け、制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出処理を実行し、制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定処理を実行し、制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出処理を実行し、制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出処理を実行することを特徴とする。
本発明による重み係数算出プログラムは、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項が入力される入力手段を備えるコンピュータに、制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出処理、制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定処理、制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出処理、および、制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出処理を実行させる。
本発明によれば、組合せ最適化問題のエネルギーを表す式の制約項の重み係数を高速に算出することができる。
本発明の実施形態の重み係数算出装置の構成例を示すブロック図である。 複数のスピンに対して定められた制約の例を示す模式図である。 1となっているスピンの数がn-aよりも1減少したときのエネルギー増加量、および、1となっているスピンの数がn+bよりも1増加したときのエネルギー増加量を示す模式図である。 本発明の実施形態の処理経過の例を示すフローチャートである。 本発明の実施形態の重み係数算出装置に係るコンピュータの構成例を示す概略ブロック図である。 本発明の重み係数算出装置の概要を示すブロック図である。 巡回セールスマン問題における各スピンの状態の一例を示す模式図である。 制約項の重み係数の決定の一般的な処理経過の例を示すフローチャートである。
以下、本発明の実施形態を図面を参照して説明する。
以下の説明では、組合せ最適化問題のエネルギーを表す式から、QUBOのエネルギー関数を求める場合を例にして説明する。ただし、イジングモデルのエネルギー関数を求める場合も同様である。
図1は、本発明の実施形態の重み係数算出装置の構成例を示すブロック図である。本実施形態の重み係数算出装置10は、入力部1と、制約特定部2と、自動成立率算出部3と、エネルギー増加量決定部4と、スピン数導出部5と、重み係数算出部6とを備える。
入力部1には、QUBOのエネルギー関数に変形される組合せ最適化問題のエネルギーを表す式における、各目的関数および各制約項が入力される。入力される制約項の個数は1個以上である。目的関数の重み係数は、オペレータによって適宜決定されうるので、目的関数は、入力されなくてもよい。
また、共通の重み係数に関連付けられる複数の制約項が存在する場合、その複数の制約項を指定する情報も、入力部1に入力される。共通の重み係数に関連付けられる複数の制約項が2組以上存在していてもよい。
既に説明したように、1つの制約項は、1つの制約を表す。
入力部1に入力される各目的関数および各制約項はそれぞれ、それ自体で、QUBOのエネルギー関数の形式に変形可能である。
入力部1は、各目的関数および各制約項、および、共通の重み係数に関連付けられる複数の制約項が存在する場合にその複数の制約項を指定する情報が入力される入力デバイスである。例えば、入力部1は、記録媒体に記録された目的関数、各制約項、および、共通の重み係数に関連付けられる複数の制約項が存在する場合にその複数の制約項を指定する情報を読み込むデータ読み込み装置等の入力デバイスであってもよい。ただし、上記のように、目的関数は、入力部1に入力されなくてもよい。
制約特定部2は、入力された制約項毎に、制約項が表す制約の内容を特定する。
自動成立率算出部3は、制約毎に(換言すれば、制約項毎に)、自動成立率を算出する。自動成立率とは、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、その制約項が表す制約が満たされている確率である。
スピンと制約とが関連しているとは、その制約が満たされるか否かを判定する際に、そのスピンの状態が参照されるということである。
図2は、複数のスピンに対して定められた制約の例を示す模式図である。各制約C~Cの内容は、入力された各制約項に基づいて、制約特定部2によって特定される。本例では、制約C~Cがいずれも、1つのスピンだけが1になるという制約であるものとする。以下、1つのスピンだけが1になるという制約を、one-hot 制約と記す。
制約Cの自動成立率を例にして説明する。制約Cに関連する個々のスピンは、スピン1~4である(図2参照)。その個々のスピンに関連する他の全ての制約は、スピン1に関連する制約C,C、スピン2に関連する制約C、スピン3に関連する制約C、および、スピン4に関連する制約Cである(図2参照)。従って、制約Cの自動成立率は、制約C~Cが全て満たされている場合に、制約Cが満たされている確率である。
自動成立率算出部3は、自動成立率を0以上1以下の範囲の値として算出する。
以下、自動成立率の算出対象となる制約を対象制約と記す。また、対象制約に関連する個々のスピンに関連する他の全ての制約をそれぞれ関連制約と記す。自動成立率算出部3は、対象制約の自動成立率を算出するときに、全ての関連制約が満たされているものとして、対象制約に関連する個々のスピン毎に、スピンが1になる確率をそれぞれ算出する。自動成立率算出部3は、その個々のスピンが1になる確率に基づいて、対象制約の自動成立率を算出する。
図2を参照して具体的に説明する。対象制約が制約Cであるとする。このとき、制約C~Cが関連制約となる。自動成立率算出部3は、関連制約C~Cが全て満たされているときに、スピン1が1になる確率(s=1になる確率)、スピン2が1になる確率(s=1になる確率)、スピン3が1になる確率(s=1になる確率)、および、スピン4が1になる確率(s=1になる確率)をそれぞれ算出する。そして、自動成立率算出部3は、算出した上記の確率に基づいて、対象制約の自動成立率を算出する。
具体的な計算例を以下に示す。関連制約C~Cは満たされているものとする。制約Cに関連するスピンの数は2個である。従って、制約Cが満たされているときにs=1になる確率は、1/2=0.5である。また、制約Cに関連するスピンの数は4個である。従って、制約Cが満たされているときにs=1になる確率は、1/4=0.25である。制約C,Cが満たされているときにs=1になる確率は、上記の2つの確率の平均値であり、(0.5+0.25)/2=0.375である。
また、制約Cに関連するスピンの数は4個である。従って、制約Cが満たされているときにs=1になる確率は、1/4=0.25である。同様に、制約Cが満たされているときにs=1になる確率も0.25である。制約Cが満たされているときにs=1になる確率も0.25である。
本例では、自動成立率算出部3は、上記のように、対象制約に関連する個々のスピン毎に、スピンが1になる確率を計算する。
次に、自動成立率算出部3は、以下のように、対象制約Cの自動成立率を算出する。対象制約Cは、one-hot 制約である。従って、自動成立率算出部3は、まず、s=1、かつ、s=s=s=0となる確率を求める。自動成立率算出部3は、この確率を0.375*(1-0.25)=0.1582と算出する。
次に、自動成立率算出部3は、s=1、かつ、s=s=s=0となる確率を求める。自動成立率算出部3は、この確率を(1-0.375)*0.25*(1-0.25)=0.08789と算出する。
自動成立率算出部3は、s=1、かつ、s=s=s=0となる確率、および、s=1、かつ、s=s=s=0となる確率も、それぞれ、上記と同様に、0.08789と算出する。
従って、自動成立率算出部3は、対象制約C(one-hot 制約)が満たされる確率を、0.1582+0.08789+0.08789+0.08789=0.422と算出する。
自動成立率算出部3は、対象制約に関連する個々のスピン毎に、スピンが1になる確率を計算することによって、対象制約が任意の制約の場合でも、自動成立率を算出することができる。
上記の説明では、対象制約が制約Cである場合を例にして説明した。前述のように、自動成立率算出部3は、制約毎に(制約項毎)に、自動成立率を算出する。
一般的に、制約項の重み係数がより大きければ、その制約項が表す制約はより満たされやすくなる。また、制約項の重み係数がより小さければ、その制約項が表す制約はより満たされにくくなる。自動成立率が高いということは、制約が満たされやすいということであるので、重み係数を小さくしても、制約を満たすことができる。従って、後述の重み係数算出部6は、0以上1以下の範囲の値である自動成立率が大きいほど、重み係数が小さくなるように、重み係数を決定する。
エネルギー増加量決定部4は、制約毎に(換言すれば、制約項毎に)、制約破壊時のエネルギー増加量を決定する。制約破壊時のエネルギー増加量とは、制約項が表す制約が満たされなくなった場合のエネルギー増加量である。
ただし、エネルギー増加量決定部4は、「1となっているスピンの数が第1の所定値以上第2の所定値以下である」という制約、「1となっているスピンの数が所定値以上である」という制約、および、「1となっているスピンの数が所定値以下である」という制約に関して、制約破壊時のエネルギー増加量を算出する。エネルギー増加量決定部4は、その他の制約に関しては、制約破壊時のエネルギー増加量を一律に“1”に決定する。なお、制約項毎の制約の内容は、制約特定部2によって特定されている。
以下、エネルギー増加量決定部4が、「1となっているスピンの数が第1の所定値以上第2の所定値以下である」という制約に関して、制約破壊時のエネルギー増加量を決定する動作の例を説明する。以下、この制約を表す制約項のエネルギーが最小になるときの、1となっているスピンの数をn個とする。また、第1の所定値をn-aとし、第2の所定値をn+bとする。
図3は、1となっているスピンの数がn-aよりも1減少したときのエネルギー増加量、および、1となっているスピンの数がn+bよりも1増加したときのエネルギー増加量を示す模式図である。図3に示すグラフにおいて、横軸は、制約に関連するスピンのうち1となっているスピンの数を示す。また、縦軸は、制約を表す制約項に基づいて定まるエネルギーを示す。
図3に示すように、1となっているスピンの数がn-aよりも1減少したときのエネルギー増加量をEと記す。また、1となっているスピンの数がn+bよりも1増加したときのエネルギー増加量をEと記す。エネルギー増加量決定部4は、この制約を表す制約項に基づいて、エネルギー増加量E,Eを算出することができる。
また、エネルギー増加量決定部4は、着目している制約項に関して、制約に関連する個々のスピン毎に、関連する他の制約に基づいて、スピンが1になる確率をそれぞれ算出する。エネルギー増加量決定部4は、その確率に基づいて、1となっているスピンの数がn-a未満になる確率、および、1となっているスピンの数がn+bを超える確率をそれぞれ算出する。1となっているスピンの数がn-a未満になる確率をPと記す。1となっているスピンの数がn+bを超える確率をPと記す。
エネルギー増加量決定部4は、E,E,P,Pを用いて、以下の式(5)によって、「1となっているスピンの数が第1の所定値以上第2の所定値以下である」という制約における制約破壊時のエネルギー増加量を決定する。
(E-E)*P/(P+P)+E ・・・(5)
式(5)によって得られた値が、「1となっているスピンの数が第1の所定値以上第2の所定値以下である」という制約における制約破壊時のエネルギー増加量である。
また、確率Pが0である場合には、エネルギー増加量決定部4は、制約破壊時のエネルギー増加量をEに決定する。
確率Pが0である場合には、エネルギー増加量決定部4は、制約破壊時のエネルギー増加量をEに決定する。
また、「1となっているスピンの数が所定値以上である」という制約に対しては、エネルギー増加量決定部4は、1となっているスピンの数が所定値となっている状態から、1となっているスピンの数が所定値より1少ない状態に変化したときのエネルギー増加量を、制約破壊時のエネルギー増加量として決定する。
また、「1となっているスピンの数が所定値以下である」という制約に対しては、エネルギー増加量決定部4は、1となっているスピンの数が所定値となっている状態から、1となっているスピンの数が所定値より1多い状態に変化したときのエネルギー増加量を、制約破壊時のエネルギー増加量として決定する。
制約破壊時のエネルギー増加量が大きい制約項が表す制約は、シミュレーテッドアニーリング実行時に満たされやすい。従って、制約破壊時のエネルギー増加量が大きい制約項に関しては、重み係数を小さくしても、その制約項が表す制約を満たすことができる。従って、後述の重み係数算出部6は、制約破壊時のエネルギー増加量が大きいほど、重み係数が小さくなるように、重み係数を決定する。
スピン数導出部5は、制約毎に(換言すれば、制約項毎に)、制約に関連するスピンの数を導出する。スピン数導出部5は、制約項に基づいて、その制約項が表す制約に関連するスピンの数を導出すればよい。
制約に関連するスピンの数が多いほど、シミュレーテッドアニーリング実行時に、その制約に関連するスピンが選択され、その選択されたスピンがフリップする確率が高くなる。その結果、その制約は満たされやすい。従って、制約に関連するスピンの数が多いほど、重み係数を小さくしても、制約を満たすことができる。従って、後述の重み係数算出部6は、制約に関連するスピンの数が多いほど、重み係数が小さくなるように、重み係数を決定する。
重み係数算出部6は、制約毎に(換言すれば、制約項毎に)、制約項に対応する重み係数を算出する。重み係数算出部6は、着目している制約項に関して求めた自動成立率、制約破壊時のエネルギー増加量、および、スピンの数に基づいて、その制約項に対応する重み係数を算出する。
前述のように、重み係数算出部6は、0以上1以下の範囲の値である自動成立率が大きいほど、重み係数が小さくなるように、重み係数を決定する。また、重み係数算出部6は、制約破壊時のエネルギー増加量が大きいほど、重み係数が小さくなるように、重み係数を決定する。重み係数算出部6は、制約に関連するスピンの数が多いほど、重み係数が小さくなるように、重み係数を決定する。
具体的には、重み係数算出部6は、以下の式(6)の計算によって、制約項毎に、制約項に対応する重み係数を算出する。
重み係数=(1-自動成立率)/(制約破壊時のエネルギー増加量*スピンの数)
・・・(6)
また、重み係数算出部6は、共通の重み係数に関連付けられる複数の制約項が存在する場合、その複数の制約項それぞれに対して式(6)で算出した重み係数の平均値を、その複数の制約項に関連付けられる共通の重み係数として決定する。
例えば、式(3)に示す制約項1、制約項2、制約項3、制約項4が入力され、共通の重み係数に関連付けられる複数の制約項として制約項3および制約項4を指定する情報が入力されたとする。この場合、重み係数算出部6は、制約項1に関して式(6)で算出した値を、制約項1に対応する重み係数Wとして決定する。同様に、重み係数算出部6は、制約項2に関して式(6)で算出した値を、制約項2に対応する重み係数Wとして決定する。重み係数算出部6は、制約項3および制約項4に共通の重み係数Wを決定する場合、制約項3に関して式(6)で算出した重み係数と、制約項4に関して式(6)で算出した重み係数の平均値を算出し、その平均値を重み係数Wとして決定する。
制約特定部2、自動成立率算出部3、エネルギー増加量決定部4、スピン数導出部5、および、重み係数算出部6は、例えば、重み係数算出プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から重み係数算出プログラムを読み込み、その重み係数算出プログラムに従って、制約特定部2、自動成立率算出部3、エネルギー増加量決定部4、スピン数導出部5、および、重み係数算出部6として動作すればよい。
次に、処理経過について説明する。図4は、本実施形態の処理経過の例を示すフローチャートである。既に説明した事項については、詳細な説明を省略する。
まず、入力部1に、組合せ最適化問題のエネルギーを表す式における各制約項が入力される(ステップS1)。ステップS1において、エネルギーを表す式における各目的関数も併せて入力部1に入力されてもよい。また、共通の重み係数に関連付けられる複数の制約項が存在する場合、その複数の制約項を指定する情報も、入力部1に入力される。
次に、制約特定部2が、制約項毎に、制約項が表す制約の内容を特定する(ステップS2)。
次に、自動成立率算出部3が、制約項毎に、自動成立率を算出する(ステップS3)。
また、エネルギー増加量決定部4が、制約項毎に、制約破壊時のエネルギー増加量を決定する(ステップS4)。
また、スピン数導出部5が、制約項毎に、制約項が表す制約に関連するスピンの数を導出する(ステップS5)。
ステップS3,S4,S5の実行順序は、限定されない。また、自動成立率算出部3、エネルギー増加量決定部4、および、スピン数導出部5が、ステップS3,S4,S5を並列に実行してもよい。
次に、重み係数算出部6が、制約項毎に、自動成立率、制約破壊時のエネルギー増加量、および、スピンの数に基づいて、制約項に対応する重み係数を算出する(ステップS6)。
また、共通の重み係数に関連付けられる複数の制約項が存在する場合、重み係数算出部6は、その複数の制約項それぞれに対して算出した重み係数の平均値を、その複数の制約項に関連付けられる共通の重み係数として決定する(ステップS7)。共通の重み係数に関連付けられる複数の制約項が存在しない場合、重み係数算出部6は、ステップS7を実行せずに、ステップS6で処理を終了してよい。
重み係数算出部6は、最終的に決定した個々の制約項に対応する個々の重み係数を、例えば、ディスプレイ装置(図示略)に表示してもよい。ただし、個々の制約項に対応する個々の重み係数の出力態様は、上記の例に限定されない。
本実施形態によれば、組合せ最適化問題のエネルギーを表す式における各制約項が重み係数算出装置10に入力される。また、共通の重み係数に関連付けられる複数の制約項が存在する場合、その複数の制約項を指定する情報も、重み係数算出装置10に入力される。重み係数算出装置10は、入力された情報に基づいて、入力された各制約項に対応する重み係数を算出する。このとき、重み係数算出装置10は、満たされやすい制約を表す制約項に関して、重み係数が小さくなるように、重み係数を算出する。一般的に、制約項の重み係数がより小さければ、その制約項が表す制約はより満たされにくくなる。しかし、本実施形態の重み係数算出装置10は、満たされやすい制約を表す制約項に関して、重み係数が小さくなるように重み係数を算出するので、重み係数が小さくても、制約を満たすことができる。
また、上記のように、本実施形態の重み係数算出装置10は、入力された情報に基づいて、入力された各制約項に対応する重み係数を算出するので、シミュレーテッドアニーリングを含む繰り返し処理(図8を参照)を行わずに、各制約項の重み係数を算出することができる。従って、組合せ最適化問題のエネルギーを表す式の各制約項の重み係数を高速に算出することができる。
組合せ最適化問題のエネルギーを表す式の各目的関数および各制約項は、組合せ最適化問題に応じて、予め定められる。そして、本実施形態の重み係数算出装置10により、各制約項の重み係数が決定される。また、オペレータは、各目的関数の重み係数を適宜、決定すればよい。その結果、各目的関数および各制約項、並びに、各目的関数の重み係数および各制約項の重み係数が定まった状態になる。すなわち、エネルギーを表す式が定まる。従って、エネルギーを表す式をQUBOのエネルギー関数に変形することができ、そのエネルギー関数を、シミュレーテッドアニーリングを実行する求解装置に入力することで、組合せ最適化問題の解に該当する各スピンの状態を得ることができる。
図5は、本発明の実施形態の重み係数算出装置10に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、入力デバイス1005とを備える。
本発明の実施形態の重み係数算出装置10は、コンピュータ1000によって実現される。重み係数算出装置10の動作は、重み係数算出プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その重み係数算出プログラムを補助記憶装置1003から読み出して、主記憶装置1002に重み係数算出プログラムを展開し、その重み係数算出プログラムに従って、上記の実施形態で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の実施形態で説明した処理を実行してもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図6は、本発明の重み係数算出装置の概要を示すブロック図である。本発明の重み係数算出装置は、入力手段71と、自動成立率算出手段73と、エネルギー増加量決定手段74と、スピン数導出手段75と、重み係数算出手段76とを備える。
入力手段71(例えば、入力部1)には、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項が入力される。
自動成立率算出手段73(例えば、自動成立率算出部3)は、制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、その制約項が表す制約が満たされている確率である自動成立率を算出する。
エネルギー増加量決定手段74(例えば、エネルギー増加量決定部4)は、制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定する。
スピン数導出手段75(例えば、スピン数導出部5)は、制約項毎に、制約項が表す制約に関連するスピンの数を導出する。
重み係数算出手段76(例えば、重み係数算出部6)は、制約項毎に、自動成立率と、制約破壊時のエネルギー増加量と、スピンの数とに基づいて、制約項に対応する重み係数を算出する。
そのような構成によって、組合せ最適化問題のエネルギーを表す式の制約項の重み係数を高速に算出することができる。
自動成立率算出手段73が、制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、その制約項が表す制約に関連する個々のスピンが1になる確率をそれぞれ算出し、個々のスピンが1になる確率に基づいて、自動成立率を算出する構成であってもよい。
重み係数算出手段76が、共通の重み係数に関連付けられる複数の制約項が存在する場合に、その複数の制約項それぞれに対して算出した重み係数の平均値を、その複数の制約項に関連付けられる共通の重み係数として決定する構成であってもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項の重み係数を算出する重み係数算出装置に好適に適用される。
1 入力部
2 制約特定部
3 自動成立率算出部
4 エネルギー増加量決定部
5 スピン数導出部
6 重み係数算出部
10 重み係数算出装置

Claims (9)

  1. 組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項が入力される入力手段と、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出手段と、
    制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定手段と、
    制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出手段と、
    制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出手段とを備える
    ことを特徴とする重み係数算出装置。
  2. 前記自動成立率算出手段は、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約に関連する個々のスピンが1になる確率をそれぞれ算出し、前記個々のスピンが1になる確率に基づいて、前記自動成立率を算出する
    ことを特徴とする請求項1に記載の重み係数算出装置。
  3. 前記重み係数算出手段は、
    共通の重み係数に関連付けられる複数の制約項が存在する場合に、前記複数の制約項それぞれに対して算出した重み係数の平均値を、前記複数の制約項に関連付けられる共通の重み係数として決定する
    請求項1または請求項2に記載の重み係数算出装置。
  4. コンピュータが、
    組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項の入力を受け付け、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出処理を実行し、
    制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定処理を実行し、
    制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出処理を実行し、
    制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出処理を実行する
    ことを特徴とする重み係数算出方法。
  5. 前記コンピュータが、
    前記自動成立率算出処理で、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約に関連する個々のスピンが1になる確率をそれぞれ算出し、前記個々のスピンが1になる確率に基づいて、前記自動成立率を算出する
    請求項4に記載の重み係数算出方法。
  6. 前記コンピュータが、
    前記重み係数算出処理で、
    共通の重み係数に関連付けられる複数の制約項が存在する場合に、前記複数の制約項それぞれに対して算出した重み係数の平均値を、前記複数の制約項に関連付けられる共通の重み係数として決定する
    請求項4または請求項5に記載の重み係数算出方法。
  7. 組合せ最適化問題におけるエネルギーを表す式に含まれる各制約項が入力される入力手段を備えるコンピュータに、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約が満たされている確率である自動成立率を算出する自動成立率算出処理、
    制約項毎に、制約項が表す制約が満たされなくなった場合のエネルギー増加量である制約破壊時のエネルギー増加量を決定するエネルギー増加量決定処理、
    制約項毎に、制約項が表す制約に関連するスピンの数を導出するスピン数導出処理、および、
    制約項毎に、前記自動成立率が大きく、前記制約破壊時のエネルギー増加量が大きく、前記スピンの数が多いほど制約項に対応する重み係数が小さくなるように、制約項に対応する重み係数を算出する重み係数算出処理
    を実行させるための重み係数算出プログラム。
  8. 前記コンピュータに、
    前記自動成立率算出処理で、
    制約項毎に、制約項が表す制約に関連する個々のスピンに関連する他の全ての制約が満たされている場合に、前記制約項が表す前記制約に関連する個々のスピンが1になる確率をそれぞれ算出させ、前記個々のスピンが1になる確率に基づいて、前記自動成立率を算出させる
    請求項7に記載の重み係数算出プログラム。
  9. 前記コンピュータに、
    前記重み係数算出処理で、
    共通の重み係数に関連付けられる複数の制約項が存在する場合に、前記複数の制約項それぞれに対して算出した重み係数の平均値を、前記複数の制約項に関連付けられる共通の重み係数として決定させる
    請求項7または請求項8に記載の重み係数算出プログラム。
JP2024516049A 2022-04-22 2022-04-22 重み係数算出装置および重み係数算出方法 Active JP7736178B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/018589 WO2023203769A1 (ja) 2022-04-22 2022-04-22 重み係数算出装置および重み係数算出方法

Publications (3)

Publication Number Publication Date
JPWO2023203769A1 JPWO2023203769A1 (ja) 2023-10-26
JPWO2023203769A5 JPWO2023203769A5 (ja) 2024-10-29
JP7736178B2 true JP7736178B2 (ja) 2025-09-09

Family

ID=88419504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024516049A Active JP7736178B2 (ja) 2022-04-22 2022-04-22 重み係数算出装置および重み係数算出方法

Country Status (3)

Country Link
US (1) US20250165668A1 (ja)
JP (1) JP7736178B2 (ja)
WO (1) WO2023203769A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121137A (ja) 2017-12-29 2019-07-22 富士通株式会社 最適化装置および最適化装置の制御方法
WO2022024329A1 (ja) 2020-07-30 2022-02-03 日本電気株式会社 最適化装置、最適化方法および最適化プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318193A (ja) * 1993-05-07 1994-11-15 Hitachi Ltd データ処理装置及び方法
JPH08153085A (ja) * 1994-11-28 1996-06-11 Ricoh Co Ltd 配送計画問題の最適解探索方法及びその装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121137A (ja) 2017-12-29 2019-07-22 富士通株式会社 最適化装置および最適化装置の制御方法
WO2022024329A1 (ja) 2020-07-30 2022-02-03 日本電気株式会社 最適化装置、最適化方法および最適化プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
竹原 康太ほか,SAベースのイジングマシンにより巡回セールスマン問題を高速解法するための多種軽量係数試行法,情報処理学会 研究報告 組込みシステム(EMB) 2019-EMB-050,日本,情報処理学会,2019年03月10日

Also Published As

Publication number Publication date
WO2023203769A1 (ja) 2023-10-26
JPWO2023203769A1 (ja) 2023-10-26
US20250165668A1 (en) 2025-05-22

Similar Documents

Publication Publication Date Title
JP7007520B6 (ja) 情報処理装置、演算装置、及び情報処理方法
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
US11106761B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
WO2020003434A1 (ja) 機械学習方法、機械学習装置、及び機械学習プログラム
AU2020465147B2 (en) Information processing system and optimal solution search processing method
WO2021090484A1 (ja) 学習装置、情報統合システム、学習方法、及び、記録媒体
JP7736178B2 (ja) 重み係数算出装置および重み係数算出方法
US20200089729A1 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
US9003419B2 (en) Network balancing procedure that includes redistributing flows on arcs incident on a batch of vertices
JP7505574B2 (ja) 求解方法選択装置および方法
JP7439923B2 (ja) 学習方法、学習装置及びプログラム
WO2019150561A1 (ja) 最適化装置、最適化方法および最適化プログラム
US7827305B2 (en) Determination of a state of flow through or a cut of a parameterized network
WO2020175162A1 (ja) 需要予測装置、需要予測方法及びプログラム
JP7470019B2 (ja) 情報処理システム
EP4510048A1 (en) Causal association estimation device, causal association estimation method, and causal association estimation program
JP7151870B2 (ja) スコア分布変換装置、スコア分布変換方法およびスコア分布変換プログラム
JP7529028B2 (ja) 学習装置、学習方法および学習プログラム
JP7468655B2 (ja) 不整合判定装置、方法、および、プログラム
JP2019185207A (ja) モデル学習装置、モデル学習方法、プログラム
JP7729488B2 (ja) 求解装置、求解方法および求解プログラム
EP4207007A1 (en) Data generation program, method and device
JP2023132988A (ja) データ変換プログラム、装置、及び方法
EP4722993A1 (en) Information processing program, information processing device, and information processing method
JP7582496B2 (ja) 変数割当装置および変数割当方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250514

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250811

R150 Certificate of patent or registration of utility model

Ref document number: 7736178

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150