(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】最適化関数生成装置、最適化関数生成方法、プログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20231212BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2021575185
(86)(22)【出願日】2020-02-06
(86)【国際出願番号】 JP2020004544
(87)【国際公開番号】W WO2021157008
(87)【国際公開日】2021-08-12
【審査請求日】2022-07-11
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】宮原 和大
(72)【発明者】
【氏名】堀川 桂太郎
(72)【発明者】
【氏名】富田 均也
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特表2006-527541(JP,A)
【文献】銭 飛, 平田 廣則,平均場近似計算法を用いた分散型QoSルーティングアルゴリズム,電気学会論文誌C(電子・情報・システム部門誌),127 巻 (2007) 1 号,2007年01月01日,pp. 59-67,[検索日 2023.09.01], インターネット : <URL: https://www.jstage.jst.go.jp/article/ieejeiss/127/1/127_1_59/_pdf/-char/ja>
【文献】木村 卓巳, 内田 真人, 川原 亮一, 亀井 聡, 森 達哉, 能上 慎也, 阿部 威郎,オーバーレイネットワークによるトラヒック制御の提案,電子情報通信学会技術研究報告,2004年07月16日,104巻182号(IN2004 36-42),pp.7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
経路の集合Pathと、エッジの集合Edgeと、最大帯域Maxと、経路p(∈Path)が要求する帯域p.bandwidthと、エッジe(∈Edge)を含む経路の集合e.paths(⊆Path)とを、所定の制約条件のもと、集合Pathの経路に割り当てられる帯域を全体として最小化するという条件(以下、最適化条件という)を満たすような、経路への帯域割当計画を生成する帯域割当計画問題の入力として設定する入力設定部と、
前記入力を用いて、前記帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成する最適化関数生成部と、
を含む最適化関数生成装置。
【請求項2】
請求項1に記載の最適化関数生成装置であって、
前記制約条件は、最大帯域Maxまでの各帯域b、エッジe∈Edgeに対して、|{p∈e.paths|bottom(p)≦b<bottom(p)+p.bandwidth}|≦1(ただし、bottom(p)は経路pに割り当てられる帯域の下限を表す)を満たすという条件(以下、第1制約条件という)であり、
前記最適化関数は、前記第1制約条件を満たす場合に最小値を取るように設計された関数である
ことを特徴とする最適化関数生成装置。
【請求項3】
請求項2に記載の最適化関数生成装置であって、
前記量子状態を表す変数は、ある状態であることを1、それ以外の状態であることを0で表す量子ビットであり、
前記最適化関数は、前記第1制約条件を表現した関数と前記最適化条件を表現した関数とに基づいて定義されるQUBOの目的関数であり、
前記第1制約条件を表現した関数は、前記第1制約条件が満たされる場合に0を値として取り、それ以外の場合に0より大きい値を取る関数であり、
前記最適化条件を表現した関数は、1つ以上の経路が割り当てられている帯域の合計値が小さいほど値が小さくなるように定義された関数である
ことを特徴とする最適化関数生成装置。
【請求項4】
請求項2に記載の最適化関数生成装置であって、
前記量子状態を表す変数は、ある状態であることを1、それ以外の状態であることを-1で表すスピンであり、
前記最適化関数は、前記第1制約条件を表現した関数と前記最適化条件を表現した関数とに基づいて定義されるイジングハミルトニアンであり、
前記第1制約条件を表現した関数は、前記第1制約条件が満たされる場合に0を値として取り、それ以外の場合に0より大きい値を取る関数であり、
前記最適化条件を表現した関数は、1つ以上の経路が割り当てられている帯域の合計値が小さいほど値が小さくなるように定義された関数である
ことを特徴とする最適化関数生成装置。
【請求項5】
請求項3または4に記載の最適化関数生成装置であって、
前記量子状態を表す変数は、帯域bが経路pに割り当てられる帯域の下限以上であるという状態を値1で表すように定義される変数である
ことを特徴とする最適化関数生成装置。
【請求項6】
最適化関数生成装置が、経路の集合Pathと、エッジの集合Edgeと、最大帯域Maxと、経路p(∈Path)が要求する帯域p.bandwidthと、エッジe(∈Edge)を含む経路の集合e.paths(⊆Path)とを、所定の制約条件のもと、集合Pathの経路に割り当てられる帯域を全体として最小化するという条件(以下、最適化条件という)を満たすような、経路への帯域割当計画を生成する帯域割当計画問題の入力として設定する入力設定ステップと、
前記最適化関数生成装置が、前記入力を用いて、前記帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成する最適化関数生成ステップと、
を含む最適化関数生成方法。
【請求項7】
請求項1ないし5のいずれか1項に記載の最適化関数生成装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組合せ最適化問題を量子コンピュータで解くための最適化関数を生成する技術に関する。
【背景技術】
【0002】
現在広く利用されているノイマン型コンピュータでは、組合せ最適化問題を効率的に解くことが難しいとされている。そこで、近年、組合せ最適化問題をノイマン型コンピュータよりも効率的に解くことが可能な計算機である、量子アニーリングマシンやイジングマシンなどの研究開発が進められている。
【0003】
これらの新たな計算機は、対象とする組合せ最適化問題をQUBO(Quadratic Unconstrained Binary Optimization)の目的関数やイジングハミルトニアンとして表現した最適化関数を入力とすることにより、高速にその問題の解を計算することができる。
【0004】
従来、グラフ分割問題、グラフのクリーク問題、グラフ同型問題をQUBOの目的関数やイジングハミルトニアンとして設計する手法が考案されている(非特許文献1、2、3、4参照)。
【先行技術文献】
【非特許文献】
【0005】
【文献】A. Lucas, “Ising formulations of many NP problems,” frontiers in Physics (2014), [online],[令和2年1月17日検索],インターネット <URL: https://www.frontiersin.org/articles/10.3389/fphy.2014.00005/full>
【文献】D-Wave Systems Inc, “The D-Wave 2000QTM Quantum Computer Technology Overview,”[online],[令和2年1月17日検索],インターネット<URL: https://www.dwavesys.com/sites/default/files/D-Wave%202000Q%20Tech%20Collateral_1029F.pdf>
【文献】Takahiro Inagaki et al., “A coherent Ising machine for 2000-node optimization problems,” Science, vol.354, Issue 6312, pp.603-606, 2016.
【文献】N. Yoshimura, M. Tawada, S. Tanaka, J. Arai, S. Yagi, H. Uchiyama, and N. Togawa, “An efficient ising model mapping method to solve induced subgraph isomorphism problems using ising machines,” Adiabatic Quantum Computing Conference 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
帯域を割り当てる経路に関する各種制約のもと、各経路に割り当てる帯域を求める帯域割当計画問題は、組合せ最適化問題の1つであるため、量子アニーリングマシンやイジングマシンを用いることにより、高速にその解を求めることができると期待される。しかし、非特許文献1~4には、グラフに関する特定の問題を解くためのQUBOの目的関数やイジングハミルトニアンが開示されているのみであり、上記帯域割当計画問題に関するQUBOの目的関数やイジングハミルトニアンについては知られていない。
【0007】
そこで本発明では、帯域を割り当てる経路に関する各種制約のもと、各経路に割り当てる帯域を求める帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成する技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様は、経路の集合Pathと、エッジの集合Edgeと、最大帯域Maxと、経路p(∈Path)が要求する帯域p.bandwidthと、エッジe(∈Edge)を含む経路の集合e.paths(⊆Path)とを、所定の制約条件のもと、集合Pathの経路に割り当てられる帯域を全体として最小化するという条件(以下、最適化条件という)を満たすような、経路への帯域割当計画を生成する帯域割当計画問題の入力として設定する入力設定部と、前記入力を用いて、前記帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成する最適化関数生成部と、を含む。
【発明の効果】
【0009】
本発明によれば、所定の制約条件が課された帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】帯域割当計画問題の入力の一例を示す図である。
【
図3】帯域割当計画問題の出力の一例を示す図である。
【
図4】p.bandwidth=2のときのx
p,b-x
p,b-p.bandwidthの様子を示す図である。
【
図5】最適化関数生成装置100の構成を示すブロック図である。
【
図6】最適化関数生成装置100の動作を示すフローチャートである。
【
図7】本発明の実施形態における各装置を実現するコンピュータの機能構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0012】
各実施形態の説明に先立って、この明細書における表記方法について説明する。
【0013】
^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【0014】
ある文字xに対する^xや~xのような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、^xや~xと記載しているものである。
【0015】
<技術的背景>
本発明の実施形態で扱う組合せ最適化問題は、所定の制約条件のもと、経路に割り当てられる帯域を全体として最小化するという条件(以下、最適化条件という)を満たすような、経路への帯域割当計画を生成する帯域割当計画問題である。ここで、所定の制約条件とは、“エッジ重複の制約”のことである。以下、“エッジ重複の制約”について説明する。
(1)エッジ重複の制約
エッジ重複の制約とは、同一のエッジを含む経路同士は、同じ帯域を共有しないという条件である。
【0016】
次に、帯域割当計画問題の入力と出力について説明する。
(1)入力
帯域割当計画問題の入力は、以下の通りである。
・計画生成対象となる経路の集合Path(以下、経路集合という。)
・経路を構成するエッジの集合Edge(以下、エッジ集合という。)
・経路に割り当てられる帯域(割当帯域)の上限が超えてはならない値Max(以下、最大帯域という。なお、Maxは所定の定数である。)
また、各経路p∈Pathに対して、以下の値が入力される。
・経路pが要求する帯域(要求帯域)p.bandwidth∈N(ただし、Nは自然数の集合を表す。)
また、各エッジe∈Edgeに対して、以下の値が入力される。
・エッジeを含む経路の集合e.paths⊆Path
最大帯域Maxは、例えば、経路集合Pathに含まれるすべての経路の要求帯域の合計値とすればよい。このようにすると、帯域割当計画問題の解が存在しないということを防ぐことができる。
(2)出力
帯域割当計画問題の出力は、以下の通りである。
・各経路p∈Pathの割当帯域の下限bottom(p)
なお、各経路pに対して要求帯域p.bandwidthが与えられていることから、割当帯域の上限はbottom(p)+ p.bandwidth-1として求めることができる。
【0017】
ただし、bottom(p)は以下の条件(a), (b), (c)を満たすものとする。
(a)割当帯域の制約
割当帯域の制約とは、各経路に割り当てられる帯域の上限は最大帯域Maxを超えないという条件であり、以下のように表現することができる。
bottom(p)+p.bandwidth-1≦Max
【0018】
(b)エッジ重複の制約
エッジ重複の制約とは、上述した通り、同一のエッジを含む経路同士は、同じ帯域を共有しないという条件であり、以下のように表現することができる。
1≦b≦Maxならば、|{p∈e.paths|bottom(p)≦b<bottom(p)+p.bandwidth}|≦1
(ただし、|S|は集合Sの要素の個数を表す)
【0019】
(c)最適化条件
最適化条件とは、上述した通り、集合Pathの経路に割り当てられる帯域を全体として最小化するという条件であり、以下のように表現することができる。
minimize(|{b∈N|帯域bに対して、bottom(p)≦b<bottom(p)+p.bandwidthを満たす経路p∈Pathが存在する。}|)
【0020】
図1は帯域割当計画問題の入力の一例を示したものである。
図2は
図1の経路とエッジの関係を示したものである。また、
図3は帯域割当計画問題の出力の一例を示したものである。
【0021】
帯域割当計画問題を解くために用いる量子ビットについて説明する。ここで、量子ビットとは1か0を値として取る、量子状態を表す変数である。つまり、本発明で対象とする帯域割当計画問題では、量子ビットxp,bを以下のように定義する。
【0022】
xp,b:帯域bが経路pに割り当てられる帯域(割当帯域)の下限以上であることを”1”、そうでないことを”0”とする。ただし、p∈Path, 1≦b≦Max-p.bandwidthとし、b>Max-p.bandwidthについては定数”1”とする。
【0023】
b>Max-p.bandwidthについて定数”1”と定義することにより、割当帯域の制約は充足されることになる。なお、同値の記号⇔を用いると、量子ビットxp,bの定義を”xp,b=1⇔帯域bが経路pの割当帯域の下限以上である”と表すこともできる。
【0024】
上記のように定義した量子ビットxp,tを用いると、経路の割当帯域範囲を表現することができる。具体的には、経路の割当帯域範囲はxp,b-xp,b-p.bandwidthにより表現される。実際、
・xp,b-xp,b-p.bandwidth=1⇔帯域bが経路pの割当帯域範囲に含まれる。
となる。
【0025】
なお、b<1のとき、xp,b=0とする。このように、量子ビットxp,bに定数制約を組み込むことにすると、xp,b-p.widthの値が不定ということがなくなる。
【0026】
図4は、p.bandwidth=2のときのx
p,b-x
p,b-p.bandwidthの様子を示したものである。
【0027】
以上を踏まえて、以下、QUBOの目的関数について説明する。ここで、ある制約を表す式は、その式の値が0となるとき当該制約を満たす状態を、その式の値が0より大きい値となるとき当該制約を満たさない状態を表すものとする。
【0028】
QUBOの目的関数FlexGridは、次式により定義できる。
【0029】
【0030】
ここで、Restrictionは最小化条件以外の条件を表す式、Optimizationは最小化条件を表す式、Penaltyは式Restrictionの重みを表す定数である。また、OverBottomは量子ビットxp,bの意味を規定するため制約を表す式、Conflictはエッジ重複の制約を表す式である。
【0031】
Penaltyは例えば、10000とすればよい。このようにPenaltyの値を最小化条件を表す式Optimizationがとりうる値に比して極端に大きいものとすると、式Restrictionを優先的に満たすように、QUBOの目的関数FlexGridのチューニングがなされる。
【0032】
式OverBottomは、“量子ビットxp,bがある帯域で”1”になった場合、それ以上の帯域では量子ビットxp,bが”1”となる”という制約を表す式である。この制約により量子ビットxp,bが”0”から”1”になる帯域が経路pの割当帯域の下限を表すこととなる。
【0033】
【0034】
式(3)について説明する。式xp,b(1-xp,b+1)のxp,bは帯域bで”xp,b=1”ならば”1”、1-xp,b+1は帯域b+1で”xp,b+1=0”ならば”1”となる。したがって、帯域bから帯域b+1になるときに量子ビットxp,bが”1”から”0””に変化すると制約違反となる。よって、式OverBottomは、“量子ビットxp,bがある帯域で”1”になった場合、それ以上の帯域において量子ビットxp,bが”1”となる”という制約を表すことになる。
【0035】
(変形例)
式(3)のOverBottomは、制約に違反する箇所、つまり、量子ビットxp,bが”1”から”0”に変化する箇所の個数のみでペナルティが決定されるため、制約違反とならないように誘導することができない。そこで、次式のように、式xp,b(1-xp,b+1)を重み付けすることで、式OverBottomを”制約違反なし”に近いほどペナルティを小さくするようにしてもよい。
【0036】
【0037】
式Conflictは、エッジ重複の制約を表す式である。
【0038】
【0039】
ここで、Count(e, b)は帯域bにおいてエッジeを含む経路の数を表す。このことは、xp,b-xp,b-p.bandwidth=1が、帯域bが経路pの割当帯域範囲に含まれることを表すことからわかる。
【0040】
式(4)について説明する。式Count(e, b)(Count(e, b)-1)はCount(e, b)の値が0か1であるときに”0”となることから、Count(e, b)の値が2以上となると制約違反となる。したがって、式Conflictはエッジ重複の制約を表すことになる。
【0041】
式Optimizationは、“1つ以上の経路が割当られている帯域の合計値”を表現する式である。
【0042】
【0043】
ここで、abは式Optimizationでのみ用いる補助量子ビットである。
【0044】
補助量子ビットabは式ab+Σ(1-ab)xp,bを最小とするための値をとるものであり、式ab+Σ(1-ab)xp,bは割り当てられた経路があれば”1”、なければ”0”となる。
【0045】
以上説明したように、ある状態であることを1、それ以外の状態であることを0で表す変数である量子ビットxp,bを用いて、式(3)の関数OverBottom(式(3a)の関数OverBottom)、式(4)の関数Conflictを各式が表す制約を満たす場合に0を値として取り、それ以外の場合に0より大きい値を取る関数として定義し、式(6)の関数Optimizationを1つ以上の経路が割り当てられている帯域の合計値が小さいほど値が小さくなるような関数として定義する。このようにすると、QUBOの目的関数FlexGridは、式OverBottomが表す制約と式Conflictが表す制約とが満たされ、式Optimizationが最小値をとるときに、最小値を取るように設計された関数となる。そして、このQUBOの目的関数FlexGridは、量子アニーリングマシンやイジングマシンにより求解可能な関数となる。
【0046】
<第1実施形態>
最適化関数生成装置100は、帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成する。ここで、帯域割当計画問題とは、所定の制約条件のもと、集合Pathの経路に割り当てられる帯域を全体として最小化するという条件(以下、最適化条件という)を満たすような、経路への帯域割当計画を生成する問題のことである。また、所定の制約条件とは、技術的背景において説明したエッジ重複の制約、すなわち、最大帯域Maxまでの各帯域b、エッジe∈Edgeに対して、|{p∈e.paths|bottom(p)≦b<bottom(p)+p.bandwidth}|≦1(ただし、bottom(p)は経路pに割り当てられる帯域の下限を表す)を満たすという条件(以下、第1制約条件という)のことである。また、ここでは、量子状態を表す変数として、ある状態であることを1、それ以外の状態であることを0で表す量子ビットを用いる。具体的には、帯域bが経路pに割り当てられる帯域の下限以上であるという状態を値1、それ以外の状態を値0で表すように定義される量子ビットxp,bを用いる。
【0047】
以下、
図5~
図6を参照して最適化関数生成装置100を説明する。
図5は、最適化関数生成装置100の構成を示すブロック図である。
図6は、最適化関数生成装置100の動作を示すフローチャートである。
図5に示すように最適化関数生成装置100は、入力設定部110と、最適化関数生成部120と、記録部190を含む。記録部190は、最適化関数生成装置100の処理に必要な情報を適宜記録する構成部である。
【0048】
図6に従い最適化関数生成装置100の動作について説明する。
【0049】
S110において、入力設定部110は、経路の集合Pathと、エッジの集合Edgeと、最大帯域Maxと、経路p(∈Path)が要求する帯域p.bandwidthと、エッジe(∈Edge)を含む経路の集合e.paths(⊆Path)とを入力とし、これらのデータを帯域割当計画問題の入力として設定する。
【0050】
S120において、最適化関数生成部120は、S110において設定した帯域割当計画問題の入力を入力とし、当該入力を用いて、帯域割当計画問題を解くための最適化関数を生成し、出力する。ここで、最適化関数は、量子ビットxp,bを用いて定義される関数であり、具体的には、量子ビットxp,bの意味を表現した関数と、第1制約条件を表現した関数と、最適化条件を表現した関数とに基づいて定義されるQUBOの目的関数である。
【0051】
QUBOの目的関数とは、式(1)の関数FlexGridのことである。また、量子ビットxp,bの意味を表現した関数、第1制約条件を表現した関数、最適化条件を表現した関数は、それぞれ式(3)の関数OverBottomまたは式(3a)の関数OverBottom、式(4)の関数Conflict、式(6)の関数Optimizationのことである。
【0052】
量子ビットxp,bの意味を表現した関数は、量子ビットxp,bの意味が正しく表現されている場合に値が最も小さくなるように定義された関数であり、より具体的には、量子ビットxp,bの意味が正しく表現されている場合に0を値として取り、それ以外の場合に0より大きい値を取る関数となる。また、第1制約条件を表現した関数は、第1制約条件が満たされる場合に値が最も小さくなるように定義された関数であり、より具体的には、第1制約条件が満たされる場合に0を値として取り、それ以外の場合に0より大きい値を取る関数となる。さらに、最適化条件を表現した関数は、1つ以上の経路が割り当てられている帯域の合計値が小さいほど値が小さくなるように定義された関数となる。
【0053】
したがって、最適化関数であるQUBOの目的関数FlexGridは、第1制約条件を満たす場合に最小値を取るように設計された関数である。
【0054】
なお、QUBOの目的関数FlexGridは、式(2)の関数Restriciton(すなわち、量子ビットxp,bの意味を表現した関数Overbottomと第1制約条件を表現した関数Conflictとに基づいて定義される関数Restriction)と最適化条件を表現した関数Optimizationの重み付き和として定義されている。この重みPenaltyを関数Optimizationの取りうる値に比べて大きな値とすることにより、量子ビットxp,bの意味が正しく表現されることとエッジ重複の制約が満たされることが優先されるように、目的関数FlexGridをチューニングすることができる。
【0055】
(変形例)
最適化関数として、量子ビットを用いたQUBOの目的関数を用いる代わりに、スピンを用いたイジングハミルトニアンを用いてもよい。ここで、スピンとは、1か-1を値として取る、量子状態を表す変数である。スピンsと量子ビットxは、式(7)、式(8)により相互に変換することができる。
【0056】
【0057】
つまり、量子ビットの値が1のとき、スピンの値は1となり、量子ビットの値が0のとき、スピンの値は-1となる。
【0058】
以下、量子状態を表す変数として、ある状態であることを1、それ以外の状態であることを-1で表すスピンを用いる。具体的には、帯域bが経路pに割り当てられる帯域の下限以上であるという状態を値1、それ以外の状態を値-1で表すように定義されるスピンsp,bを用いる。この場合、最適化関数は、スピンsp,bを用いて定義される関数であり、具体的には、スピンsp,bの意味を表現した関数と、第1制約条件を表現した関数と、最適化条件を表現した関数とに基づいて定義されるイジングハミルトニアンである。
【0059】
イジングハミルトニアンとは、式(1)の関数FlexGridに上記変数変換を適用して得られる関数のことである。また、スピンsp,bの意味を表現した関数、第1制約条件を表現した関数、最適化条件を表現した関数とは、それぞれ式(3)の関数OverBottomまたは式(3a)の関数OverBottomに上記変数変換を適用して得られる関数、式(4)の関数Conflictに上記変数変換を適用して得られる関数、式(6)の関数Optimizationに上記変数変換を適用して得られる関数のことである。
【0060】
スピンsp,bの意味を表現した関数は、スピンsp,bの意味が正しく表現されている場合に値が最も小さくなるように定義された関数であり、より具体的には、スピンsp,bの意味が正しく表現されている場合に0を値として取り、それ以外の場合に0より大きい値を取る関数となる。また、第1制約条件を表現した関数は、第1制約条件が満たされる場合に値が最も小さくなるように定義された関数であり、より具体的には、第1制約条件が満たされる場合に0を値として取り、それ以外の場合に0より大きい値を取る関数となる。さらに、最適化条件を表現した関数は、1つ以上の経路が割り当てられている帯域の合計値が小さいほど値が小さくなるように定義された関数となる。
【0061】
したがって、最適化関数であるイジングハミルトニアンは、第1制約条件を満たす場合に最小値を取るように設計された関数である。
【0062】
なお、最適化関数生成装置100の出力である最適化関数は、例えば、量子アニーリングマシンやイジングマシンの入力となり、これらのマシンにより処理されることにより、帯域割当計画問題の解を求めることができる。
【0063】
本発明の実施形態によれば、所定の制約条件が課された帯域割当計画問題を解くための、量子状態を表す変数に関する最適化関数を生成することが可能となる。
【0064】
<補記>
図7は、上述の各装置を実現するコンピュータの機能構成の一例を示す図である。上述の各装置における処理は、記録部2020に、コンピュータを上述の各装置として機能させるためのプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
【0065】
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0066】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0067】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。
【0068】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0069】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0070】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0071】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0072】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0073】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【0074】
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。