JP7297540B2 - 情報処理装置、puboソルバ、情報処理方法およびプログラム - Google Patents

情報処理装置、puboソルバ、情報処理方法およびプログラム Download PDF

Info

Publication number
JP7297540B2
JP7297540B2 JP2019106437A JP2019106437A JP7297540B2 JP 7297540 B2 JP7297540 B2 JP 7297540B2 JP 2019106437 A JP2019106437 A JP 2019106437A JP 2019106437 A JP2019106437 A JP 2019106437A JP 7297540 B2 JP7297540 B2 JP 7297540B2
Authority
JP
Japan
Prior art keywords
penalty term
information processing
logical
objective function
solution
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
JP2019106437A
Other languages
English (en)
Other versions
JP2020201598A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions 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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2019106437A priority Critical patent/JP7297540B2/ja
Priority to PCT/JP2020/006291 priority patent/WO2020246073A1/en
Publication of JP2020201598A publication Critical patent/JP2020201598A/ja
Priority to US17/249,312 priority patent/US12033090B2/en
Application granted granted Critical
Publication of JP7297540B2 publication Critical patent/JP7297540B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Nonlinear Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明の実施形態は、情報処理装置、PUBOソルバ、情報処理方法およびプログラムに関する。
近年、組合せ最適化問題を高速に解くために、イジング模型の基底状態のエネルギーを計算するコンピュータの活用が進められている。これらのコンピュータが利用される場合、事前に組合せ最適化問題がイジング模型の形式に変換される。しかし、イジング模型は、明示的な制約条件を含んでいないため、制約条件をペナルティ項の形で目的関数に組み込む必要がある。
ペナルティ項の設計は、専門的な知見が必要であり、困難な作業である。さらに、ペナルティ項自体が求解の妨げとなってしまう問題もある。例えば、ペナルティ項によって決定変数の数が増えると、求解に必要な計算リソースが大きくなりすぎてしまう。また、本来の目的関数の値域に比べ、ペナルティ項の値域が大きいため、求解が困難となる場合もある。実用的なペナルティ項を容易に生成し、組合せ最適化問題の求解を促進する技術の開発が求められている。
特開2017-224227号公報 特表2017-515195号公報
R. Babbush et al.,"Resource Efficient Gadgets for Compiling Adiabatic Quantum Optimization Problems", Annalen der Physik: Volume 25, 10-11 (2013) DOI: 10.1002/andp.201300120, [online], [平成31年4月23日検索]、インターネット<https://arxiv.org/abs/1307.8041> Vasil S. Denchev et al., "What is the Computational Value of Finite Range Tunneling?", Phys. Rev. X 6, 031015 (2016) DOI 10.1103/PhysRevX.6.031015, [online], [平成31年4月23日検索]、インターネット<https://arxiv.org/abs/1512.02206> Andrew Lucas: "Ising formulations of many NP problems", 2013, Frontiers in Physics 2, 5 (2014) DOI: 10.3389/fphy.2014.00005, [online], [平成31年4月23日検索]、インターネット<https://arxiv.org/abs/1302.5843>
本発明の実施形態は、実用的なペナルティ項を容易に生成し、組合せ最適化問題の求解を促進する、情報処理装置、PUBOソルバ、情報処理方法およびプログラムを提供する。
本発明の実施形態としての情報処理装置は、形式言語で記述された組合せ最適化問題の制約条件より論理式を生成する生成部と、前記論理式を変換し、二値変数をパラメータとする、ペナルティ項を生成する変換部とを備え、前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかは、制約なし多項式2値変数最適化の形式となっている。
情報処理システムの構成例を示したブロック図。 PUBOソルバを用いて解決したい課題を解くときに必要な処理の例を示した図。 Verilog-HDLファイルの第1例を示した図。 関連技術の方法によって生成されたデジタル回路の例を示した図。 関連技術の方法によって作成されたペナルティ関数について、決定変数の各組合せにおけるペナルティ項の値の例を示したテーブル。 情報処理システムで実行される処理の例を示したフローチャート。 情報処理装置で実行される各処理ステップとデータとの関係の第1例を示した図。 ペナルティ項生成処理の例を示したフローチャート。 変換ルールの第1例を示した図。 決定変数の各組合せにおけるペナルティ項の値の例を示したテーブル。 変換ルールの第2例を示した図。 Verilog-HDLファイルの第2例を示した図。 情報処理装置で実行される各処理ステップとデータとの関係の第2例を示した図。
以下、図面を参照しながら、本発明の実施形態について説明する。また、図面において同一の構成要素は、同じ番号を付し、説明は、適宜省略する。
図1は、情報処理システムの構成例を示したブロック図である。図1の情報処理システムは、情報処理装置1と、PUBOソルバ2と、操作装置3と、表示装置4と、情報端末6と、情報端末7とを含む。情報処理装置1、PUBOソルバ2、情報端末6、情報端末7はネットワーク5を介して互いに通信可能である。ネットワーク5は、例えば、複数のコンピュータネットワークが相互に接続されたインターネットである。ネットワーク5は、通信媒体として有線、無線または、これらの組み合わせを用いることができる。また、ネットワーク5で使われる通信プロトコルの例としては、TCP/IPがあるが、通信プロトコルの種類については特に問わない。操作装置3および表示装置4は、情報処理装置1と電気的に接続されている。
情報処理装置1は、中央演算処理装置(CPU)とメモリとを含むコンピュータである。情報処理装置1の例としては、サーバ、デスクトップPC、ノートPCが挙げられるが、情報処理装置1は、どのような種類のコンピュータであってもよい。情報処理装置1は、例えば、各種の演算処理を実行し、PUBOソルバ2を制御する。操作装置3は、情報処理装置1に情報を入力するための装置である。操作装置3は、例えば、キーボード、マウス、タッチパネル、音声認識装置などであるが、これに限られない。表示装置4は、情報処理装置1から出力される画像、映像、テキストなどを表示するための装置である。表示装置4の例としては、LCD(液晶ディスプレイ)、有機EL(有機エレクトロルミネッセンス)ディスプレイ、プロジェクタがあるが、これに限られない。ユーザは、操作装置3および表示装置4を使い、情報処理装置1に各種の操作を行うことができる。なお、ユーザによって使用される操作装置3または表示装置4の少なくともいずれかは、情報処理装置1に組み込まれたものであってもよい。
PUBOソルバ2は、イジング模型のスピンの値を求めるコンピュータ(イジングマシン)、または制約なし多項式2値変数最適化(PUBO:Polynomial Unconstrained Binary Optimization)を解くことが可能なコンピュータである。PUBOソルバ2の例としては、超伝導量子ビットを使ったコンピュータ(量子アニーリングマシン)、光パラメトリック発振器を使ったコンピュータが挙げられる。ノイマン型コンピュータ上でプログラムを実行することによって、物理現象をエミュレートしてもよい。また、ノイマン型コンピュータ上で各種のメタヒューリスティックスアルゴリズムを実行してもよい。また、ノイマン型コンピュータとFPGA、ASIC、GPUなどのハードウェア回路を組み合わせることによって、スピン(二値変数)の値を求めてもよい。スピンの値の計算には、どのような種類のアルゴリズムを用いてもよい。PUBOソルバの種類および構成については特に問わない。
なお、図1では、1台のPUBOソルバが示されているが、PUBOソルバの台数はこれより多くてもよい。例えば、複数台のPUBOソルバに並列的な計算を実行させてもよい。情報処理システムは、複数種類のPUBOソルバを含んでいてもよい。情報処理装置1およびPUBOソルバ2の後述する機能の少なくとも一部は、仮想コンピュータ(VM:Virtual Machine)やコンテナによって実現されていてもよい。また、複数台のコンピュータによって情報処理装置1およびPUBOソルバ2の機能が実現されていてもよい。図1では、情報処理装置1とPUBOソルバ2が別々のコンピュータとなっているが、この構成は一例にしかすぎない。例えば、情報処理装置1の少なくとも一部の機能と、PUBOソルバ2の少なくとも一部の機能が同一のコンピュータによって実現されていてもよい。
情報端末6は、ラップトップPCである。また、情報端末7は、スマートフォンである。情報端末6、7は、いずれも無線通信(例えば、無線LANまたはモバイル通信)によって、ネットワーク5に接続された他の装置との間でデータの送受信を行うことができる。ラップトップPCやスマートフォンは、情報処理システムで使用可能な情報端末の例にしかすぎない。したがって、デスクトップPC、タブレット、車載機器、組み込み機器のマイコンなどその他の種類の情報端末が用いられてもよい。ユーザは、情報端末をクライアントとして使い、リモート環境で情報処理装置1を操作することができる。この場合、情報端末は、上述の操作装置3および表示装置4の機能を兼ね備えていてもよい。
次に、情報処理装置1の各構成要素について説明する。情報処理装置1は、演算部10と、記憶部14と、入力部15と、出力部16と、通信部17とを備えている。
演算部10は、演算を実行し、情報処理装置1全体の制御を行う電子回路である。演算部10として、例えば、CPU、マイクロプロセッサ、ASIC、FPGA、PLDまたはこれらの組み合わせを用いることができる。情報処理装置1の機能の少なくとも一部は、演算部10の電子回路によって実現されてもよい。また、情報処理装置1の機能の少なくとも一部は、演算部10でプログラムを実行することによって実現されてもよい。この場合、プログラムは、一時的でない有形のコンピュータ読み取り可能な記憶媒体(例えば、後述の記憶部14)に保存される。
演算部10は、内部の構成要素として、生成部11と、変換部12と、制御部13とを含む。生成部11は、形式言語で記述された組合せ最適化問題の制約条件より論理式を生成する。変換部12は、論理式を変換し、二値変数をパラメータとする、ペナルティ項を生成する。ペナルティ項または、ペナルティ項を含む組合せ最適問題の目的関数の少なくともいずれかは、制約なし多項式2値変数最適化の形式となっていてもよい。例えば、変換部12は、論理式の論理積および論理和を算術演算に、論理変数の正リテラルおよび論理変数の負リテラルを、二値変数を含む内容に変換することによって、ペナルティ項を生成する。組合せ最適化問題の解は、二値変数をスピンとしたイジング模型の解に基づいて求められる。このために、制御部13は、PUBOソルバ2の制御を行う。例えば、制御部13は、PUBOソルバ2にイジング模型の解の計算を開始する指令を送信する。また、制御部13は、PUBOソルバ2から計算の結果を取得する。そして、変換部12は、イジング模型の解に基づいて組合せ最適化問題の解を求める。組合せ最適化問題の解は、上述の表示装置4に表示されてもよい。生成部11および変換部12の詳細については、後述する。
記憶部14は、情報処理装置1のプログラム、プログラムの実行に必要なデータ、プログラムによって生成されたデータを含む各種のデータを記憶するストレージである。ここで、プログラムは、OSとアプリケーションのいずれも含むものとする。ストレージは、揮発性メモリ、不揮発性メモリ、またはこれらの組み合わせであってもよい。揮発性メモリの例としては、DRAM、SRAMなどがある。不揮発性メモリの例としては、NANDフラッシュメモリ、NORフラッシュメモリ、ReRAM、MRAMが挙げられる。また、ストレージとして、ハードディスク、光ディスク、磁気テープまたは外部の記憶装置が使われてもよい。
入力部15は、情報処理装置1へのデータ入力を実現する回路である。例えば、上述の操作装置3は入力部15を介して情報処理装置1に接続される。入力部15の例として、USB、PCI-Express、シリアルポートなどのインタフェースがあるが、その他のインタフェースを使ってもよい。出力部16は、情報処理装置1からのデータ出力を実現する回路である。例えば、上述の表示装置4は出力部16を介して情報処理装置1に接続される。出力部16の例として、HDMI、DisplayPortなどのインタフェースがあるが、その他の種類のインタフェースを使ってもよい。
情報処理装置1の通信部17は、ネットワーク5に接続された各装置とデータの送受信を行う通信回路である。通信部17は、例えば、有線LANのNIC(Network Interface Card)である。ただし、通信部17は、無線LANなど、その他の種類の通信回路であってもよい。
上述のように、PUBOソルバ2は、イジング模型の基底状態におけるスピンの値を求める。PUBOソルバ2は、通信部20と、制御部21と、演算部22と、記憶部23とを備えている。PUBOソルバ2の各構成要素の詳細について説明する前に、イジング模型の概略について述べる。下記の式(1)は、イジング模型のハミルトニアンHを示している。ハミルトニアンHはイジング模型のエネルギーである。また、ハミルトニアンHは最適化問題における目的関数に相当する。
Figure 0007297540000001
ここで、Jijは、スピン間の相互作用係数の行列である。s、sは二値変数(スピン)であり、+1または-1のいずれかの値をとる。hは各スピンにおける局所磁場のベクトルである。なお、上述の式(1)は、s、sについての2次式となっている。ただし、PUBOソルバの中には、3次以上の目的関数を使った計算が可能なものが存在するため、イジング模型は必ず2次式でなくてもよい。例えば、スピンの3次以上の項を含むイジング模型を使ってもよい。このようなイジング模型は、物理的には多体相互作用を含むといえる。以降の説明でイジング模型について述べた場合、2次式で表現されるものだけでなく、3次以上の次数で表現されるもの(多体相互作用を持つイジング模型)も含むものとする。情報処理装置1が生成するペナルティ項または、ペナルティ項を含む組合せ最適問題の目的関数の少なくともいずれかは、3次以上のパラメータを有していてもよい。この場合、PUBOソルバ2は、スピンの3次以上の項を含むイジング模型の解を計算する。
PUBOソルバ2の演算部22は、イジング模型のスピンの値を求める。演算部22は、ハミルトニアンHの値が可能な限り小さくなるパラメータの組合せ(s、s、・・・、s)を求める。演算部22によって求められたイジング模型の解は、上述のパラメータの組合せ(s、s、・・・、s)となる。演算部22によって求められる解は、ハミルトニアンHの値が最小値となる解(最適解)であることが期待される。ただし、演算部22によって求められる解は、必ず厳密な最適解とならなくてもよい。例えば、複数回の求解処理を実行して最適解を求めてもよい。また、複数の演算部22を使って並列的に求解処理を実行し、最適解を求めてもよい。
PUBOソルバ2の通信部20は、ネットワーク5に接続された各装置とデータの送受信を行う通信回路である。通信部20は、例えば、有線LANのNIC(Network Interface Card)である。ただし、通信部20は、無線LANなど、その他の種類の通信回路であってもよい。
PUBOソルバ2の制御部21は、PUBOソルバ2の各構成要素の制御を行う。PUBOソルバ2の通信部20は、情報処理装置1から送信された制御信号を、ネットワーク5を経由して受信する。PUBOソルバ2の制御部21は、受信された制御信号に基づき、演算部22を制御する。また、PUBOソルバ2の制御部21は演算部22によって求められたイジング模型の解を、通信部20を介して情報処理装置1に転送する。
PUBOソルバ2の記憶部23は、PUBOソルバの動作に必要なデータを含む各種のデータを保存可能な記憶領域を提供する。例えば、PUBOソルバ2の制御部21は、記憶部14をイジング模型のデータや、イジング模型の解が一時的に保存されるバッファとして使ってもよい。また、記憶部14には、プログラムや、制御用のデータが保存されていてもよい。
記憶部23は、例えばSRAM、DRAMなどの揮発性メモリであってもよいし、NAND、MRAM、FRAMなどの不揮発性メモリでもよい。またハードディスク、SSDなどのストレージ装置や、外部の記憶装置であってもよい。すなわち、記憶部23の種類については特に問わない。また、記憶部23は複数の種類のメモリやストレージの組み合わせであってもよい。なお、PUBOソルバ2は必ず記憶部23を備えていなくてもよい。
図2は、PUBOソルバを用いて解決したい課題を解くときに必要な処理を示している。以下では、図2を参照しながら、関連する技術について説明する。
社会において解決が求められる問題(図2の問題50)では、一定の制約のもとで所望の目的を達成するために、適当な組合せを見つけることが必要なことがある。このような問題の例としては、物流分野における配送車両の割り当て、プロセッサへのタスクの割り当てが挙げられる。組合せ最適化は、これらの問題を解決するために用いられる。一般に、組合せ最適化を含む最適化の分野では、問題が目的関数および制約条件によって表現される。目的関数の値は、解の“よさ”を示す。制約条件は、解が充足すべき条件を定義する。
組合せ最適化の問題を解くために、例えば、上述のPUBOソルバ2を使うことができる。ただし、組合せ最適化の問題を解くために使われるコンピュータ(ソルバー)の台数、種類および構成については特に限定しない。
ユーザは、目的関数および制約条件を使われるコンピュータに適合したデータ形式に変換する必要がある。例えば、PUBOソルバ2を使う場合、目的関数および制約条件をイジング模型の形式に変換する必要がある。以降では、組合せ最適化問題を解くためにPUBOソルバが使われた場合を例に説明をするが、求解にPUBOソルバ以外のコンピュータを使うことを妨げるものではない。
組合せ最適化の一例として、ナップサック問題がある。ここでは、ナップサック問題について説明する。それぞれ重さw、価値v(i=1,・・・,N)である、N個の荷物b~bがあるものとする。ナップサック問題では、重さWまで入れられるナップサックに詰める荷物を選択する。ナップサックに詰める荷物の選択にあたっては、重さの合計を上限W以下にしつつ、価値の合計を最大化するという、制約条件を満たす必要がある。
選択する荷物の組合せを示すために、荷物b~bにそれぞれ対応する変数x~xを導入する。変数x~xは、いずれも0または1の値をとる二値変数である。例えば、ナップサックに詰める荷物として荷物bを選択した場合、x=1となる。ナップサックに詰める荷物として、荷物bを選択しない場合、x=0となる。
上述の表記を使った場合、ナップサック問題の目的関数は下記の式(2)のようになる。
Figure 0007297540000002
また、ナップサック問題の制約条件は下記の式(3)のようになる。
Figure 0007297540000003
式(3)を満たしつつ、式(2)を最大化させる変数x~xがナップサック問題の解となる。なお、以降の説明では、二値変数の表記に小文字のxに添え字(英数字)を付した記号を使うものとする。
組合せ最適化を含む最適化において、求める必要のある情報を上述のような目的関数や制約条件の形式で定義したものを問題という。図2の問題51は、目的関数および制約条件を含む組合せ最適化問題を示している。問題で使われるパラメータの値(上述の例では、v~v、w~wおよびWのそれぞれの値)は、問題のインスタンスとよばれる。また、上述のx~xのような値の組合せを示す変数は、決定変数とよばれる。決定変数の値の組合せ(上述の例では2個の組合せとなる)のうち、制約条件を満たすものを実行可能解とよぶ。また、実行可能解のうち、目的関数を最大(目的関数の符号を負に定義した場合には、最小)にするものが、インスタンスの解となる。なお、目的関数が厳密に最大値(または、最小値)となる場合の実行可能解でなくても、慣習的に、最適化を試みた結果として得られた決定変数の値の組合せも解とよばれる。
近年、組合せ最適化の分野では、問題の目的関数としてイジング模型のハミルトニアン(エネルギー関数)を使う方法が注目されている。以降では、このような最適化問題をイジング問題とよぶものとする。上述の式(1)で示したように、イジング問題の決定変数(スピン)の値は-1または-1であるため、制約なし二次形式二値変数最適化との変換が容易である。例えば、変換時には、0および1をそれぞれ+1または-1のいずれかに対応付けることが可能である。
イジング問題は、明示的な制約条件を含まない。2次式で表現されるイジング模型を使う場合、多項式は多重線形関数となる。イジング問題では、目的関数を最小化させる(すなわち、基底状態のエネルギーに相当する)解が求められることが多い。2次式で表現されるイジング模型を使う場合、イジング問題は、QUBO(制約なし2次形式2値変数最適化)と等価であるか、相互に変換可能であることが知られている。また、3次以上のハミルトニアンも扱われる場合、イジング問題は、PUBO(制約なし多項式2値変数最適化)の形式となる。
上述のPUBOソルバ2に問題のデータを入力するために、次数が2次以下の目的関数を使うことが求められる場合がある。例えば、“ancilla gadget”と呼ばれるものをイジング模型に挿入し、それに対応するペナルティ項を補助変数(追加の決定変数)とともに目的関数に導入することを通して、高次の多重線形関数を2次以下に変換する方法が提案されている。ただし、イジング問題の目的関数の次数は必ず2次以下でなくてもよい。例えば、量子アニーリングにおいて、3次以上の目的関数を扱う技術の研究が行われている。また、シミュレーテッド・アニーリング(SA)によってイジング問題を解く場合、目的関数の次数は2次以下でなくてもよい。
PUBOソルバ2を使って組合せ最適化問題を解くためには、イジング模型の形式に問題を変換する必要がある。現実の組合せ最適化問題は、制約条件を含むことが多いが、上述のようにイジング問題は明示的な制約条件を含んでいない。このため、問題の変換をする際に、制約条件に相当する効果を導入する必要がある。
例えば、制約条件に基づいてペナルティ関数を用意し、ペナルティ関数に係数を乗じて本来の目的関数に加算することができる。これにより、制約条件に相当する効果をイジング問題の目的関数に含めることができる。ペナルティ関数は、制約条件を充足する決定変数の値の組合せでは比較的小さい値をとり、制約条件を充足しない決定変数の値の組合せでは比較的大きい値となるように設計された関数である。イジング問題に変換された後の目的関数のうち、ペナルティ関数に相当する項は、ペナルティ項とよばれる。ペナルティ項を含む目的関数を最小化させる決定変数の組合せを計算すれば、制約条件を満たす解が得られることが期待される。各種の組合せ最適化問題を2次の目的関数を有するイジング問題に変換する場合、上述のようなペナルティ項が導入されることが一般的である。
次に、上述のナップサック問題にペナルティ項を導入した場合の例について述べる。下記の式(4)は、ペナルティ項が導入されたナップサック問題の目的関数の例である。
Figure 0007297540000004
ここで、決定変数(yおよびx)の値は0または1のいずれかをとる。また、各荷物の重量wと重量の合計値の上限Wは、自然数である。式(4)の係数Aを含む2つの項は、ペナルティ項に相当する。また、係数Bを含む項は、ナップサック問題の本来の目的関数である。ここでは、目的関数を最小化させる決定変数の値の組合せが求められるため、本来の目的関数の符号は負となっている。変数y~yは、ペナルティ項の導入に伴って追加された決定変数(補助変数)である。式(4)では、W個の補助変数が導入されている。“log trick”とよばれる方法によって、補助変数の数を減らすことが可能である。係数AおよびBの値は、v~vの最大値よりA/Bの比が大きくなるように決めることができる。ただし、この係数の決め方は一例にしかすぎない。
ペナルティ項の設計には特別の知見が必要である。組合せ最適化の分野における知識と経験を有する者にとっても、ペナルティ項の設計は困難な作業である。
次に、具体的なインスタンス例のパラメータを使って、ペナルティ項の大きさを評価する。ナップサックに詰める候補となる荷物の数Nは5であるとする。また、ナップサックに詰めることができる荷物の重量の合計は、最大でW=15であるとする。荷物b~bの重さは、w=7、w=2、w=5、w=4、w=3である。また、荷物b~bの価値v~vはいずれも1であるとする。
下記の式(5)は、式(4)のうち、ペナルティ項の部分を抽出したものである。
Figure 0007297540000005
式(5)でy~yの値がいずれも1であり、かつx~xの値がいずれも0であるとき、係数Aを除いたペナルティ項の値は14596となる。また、y~yの値がいずれも0であり、かつx~xの値がいずれも1である場合を考えると、係数Aを除いたペナルティ項の値は441となる。Log Trickを用いた場合は、具体的な式の設計によってペナルティ項の最大値は変化するが、少なくとも441以上になる。一方、上述の式(2)は、式(4)のペナルティ項以外の項から係数-Bを除いた目的関数(本来の目的関数)である。本来の目的関数は、x~xの値がいずれも1のときに最大値21をとる。上述の値の違いによって例示されるように、ペナルティ項の値域は、本来の目的関数の値域よりも広くなっている。A/B>1となるように、係数AおよびBの値を設定すると、本来の目的関数の値域の広さと、ペナルティ項の値域の広さの違いはさらに大きくなる。
ここでは、説明の都合上、N=5、W=15という小規模なインスタンスを例に用いた。ただし、コンピュータを使った求解の対象となる問題の規模は、これより大きくなることが多い。問題の規模が大きくなるほど、本来の目的関数の値に対してペナルティ項の値が大きくなる傾向が強まる。一部のPUBOソルバでは、取扱い可能な数値の範囲が限定されているため、ペナルティ項の値が大きくなるのは好ましくない。また、本来の目的関数の値に対してペナルティ項の値が大きくなると、数値演算の精度が低下するおそれもある。
さらに、ペナルティ項の導入は、問題に含まれる決定変数の数の増大という副作用をもたらす。決定変数の数が増えると、PUBOソルバの計算で必要なスピン数が大きくなる。PUBOソルバでは、計算可能なスピン数に上限があるため、決定変数の数は少ない方が好ましい。また、決定変数の数がPUBOソルバで計算可能なスピン数の上限内にあったとしても、決定変数の数が増えることによって計算時間が長くなってしまう。
ペナルティ項の設計にかかる負担を軽減するため、ペナルティ項の設計に設計ツール(ソフトウェア)を活用する方法(関連技術の方法)が提案されている。この方法を使った場合、はじめにユーザは、制約条件をハードウェア記述言語で記述する。そして、ユーザは、論理合成ツールによってデジタル回路の設計データを生成する。デジタル回路は、あらかじめ定義された、2入力1出力のゲートのいずれかを使った形式に変換される。次に、各ゲート、各ゲートのタイプ、各ゲートの中間出力、各ゲートの第1入力、各ゲートの第2入力のそれぞれに番号を割り当てる。割り当てられた番号に基づき、各ゲートを行列に変換する。最後に、制約条件に基づく行列を加算し、デジタル回路全体からひとつの行列が生成される。最後に生成される行列は、2次の多重線形関数を示しており、イジング問題の目的関数として使うことができる。
上述の方法によって、下記の論理式(6)が充足されているときには、値0をとり、下記の論理式(6)が充足されていないときには、正の値をとるペナルティ関数を作成する場合を考える。
Figure 0007297540000006
図3は、式(6)のペナルティ項を作成するために、ユーザによって記述されたVerilog-HDLファイルの例を示している。Verilog-HDLファイルにおいて、論理変数a、b、c、dを使った演算は、ビット演算によって記述されている。ファイル内のビット演算において、1ビットの“1”は真(TRUE)、1ビットの“0”は偽(FALSE)にそれぞれ対応する。Verilog-HDLは、ペナルティ項を記述可能なハードウェア記述言語の一例にしかすぎない。したがって、その他の形式言語によってペナルティ項の記述を行ってもよい。
図3のファイルを論理合成ツール(例えば、Yosys)に入力すると、図4のデジタル回路8の設計データが生成される。図3のdは、デジタル回路8の出力である。式(6)の論理式が真(TRUE)となる場合、dの値は1ビットの“1”となり、式(6)の論理式が偽(FALSE)となる場合、dの値は1ビットの“0”となる。デジタル回路8のeは、論理合成ツールによって追加された配線(論理変数)であり、上述の補助変数に相当する。
上述のように、デジタル回路のデータから行列を生成することもできるが、行列表現と等価である、下記の式(7)の“ancilla gadget”を使うこともできる。
Figure 0007297540000007
式(7)の変数x、x、xの値は、0または1のいずれかとなる。また、式(7)は、x=xであるときに、s(x,x,x)=0となり、x≠xであるときに、s(x,x,x)≧1となる。
“Ancilla gadget”は、ANDゲートに対応しているため、“ancilla gadget”を図4のデジタル回路8に適用すると、下記の式(8)のようになる。
Figure 0007297540000008
ここで、変数x、x、x、x、xの値は、0または1のいずれかとなる。また、変数x、x、x、x、xは、それぞれブール代数の変数a、b、c、d、eに対応している。式(8)で、1-xは、デジタル回路8左側のANDゲートの出力の否定(NOT:図4の円形マーク)がとられていることを示している。
ペナルティ関数は、制約条件を充足するときに一定値をとる関数であるため、xに1を代入する。そして、式(7)を(8)に代入する。こうして、下記の式(9)が得られる。
Figure 0007297540000009
図5は、各変数の組合せにおける式(9)の値を示した表である。図5の表を参照すると、下記の式(10)の条件が満たされたときにr(・・・)=0となり、下記の式(10)の条件が満たされていないときに正値となっている。xの値を適切に決めることにすれば、意図した通り、式(6)が充足されているときに値0をとり、充足されていないときに正の値をとるペナルティ項が得られることが分かる。
Figure 0007297540000010
しかし、上述のデジタル回路の設計データ使う方法(関連技術の方法)によってペナルティ関数を生成する場合、デジタル回路の設計データの生成、当該設計データの数学的表現への変換という処理が必要であり、比較的複雑な処理が必要となる。また、図4に示したように、補助変数の追加が必要となる場合がある。計算量が少ない処理によってペナルティ関数を生成する技術の開発が望まれている。
以下では、ペナルティ関数の生成時において、補助変数の追加は回避するか、最小限にする方法(本実施形態の方法)について説明する。
図6は、情報処理システムで実行される処理の例を示したフローチャートである。以下では、図6を参照しながら、本実施形態に係る情報処理システムによって実行される処理の概要を述べる。
まず、ユーザは、形式言語によって、組合せ最適化問題の制約条件を記述する(ステップS101)。論理式を記述可能な各種のデータ形式を、形式言語として使うことができる。例えば、形式言語として、論理式を記述可能なプログラミング言語であるC言語を使ってもよい。また、形式言語として、論理回路の設計データの交換フォーマットであるEDIFを使ってもよい。形式言語は、人間による読み書きが可能な形式に限らず、設計ツールから出力されるデータ(例えば、LSIのネットリストなど)であってもよい。
以下では、形式言語として、ハードウェア記述言語の一種である、Verilog-HDLが使われた場合を例に説明する。ただし、VHDLなど、その他のハードウェア記述言語が使われてもよい。また、ブール代数の記述が可能なのであれば、ハードウェア記述言語以外の形式言語を用いてもよい。ユーザは、例えば、操作装置3を介して制約条件を情報処理装置1に入力し、表示装置4によって記述した内容を視覚的に確認することができる。
次に、生成部11は、記述された制約条件より論理式を生成する(ステップS102)。後述するように、生成部11が生成する論理式は簡単化されたものであってもよい。次に、変換部12は、ブール代数の論理式を、二値変数をパラメータとするペナルティ項に変換する(ステップS103)。ステップS103では、論理式の論理積および論理和を算術演算に、論理変数の正リテラルおよび論理変数の負リテラルを、二値変数を含む内容に変換する。変換ルールの例については、後述する。
そして、変換部12は、ペナルティ項を本来の目的関数に加算する(ステップS104)。ステップS104では、ペナルティ項と本来の目的関数をそれぞれ係数で重み付けしてから加算を行ってもよい。さらに、制御部13は、PUBOソルバ2にペナルティ項を含む目的関数の求解を実行させる(ステップS105)。すなわち、PUBOソルバ2は、ペナルティ項を含む目的関数をイジング模型のハミルトニアンとして、イジング模型の解を計算する。最後に、変換部12は、PUBOソルバ2の解に基づき、組合せ最適化問題の解を求める(ステップS106)。組合せ最適化問題の解は、表示装置4または、情報端末6,7に表示されてもよい。また、組合せ最適化問題の解は、図1に表示されていないその他のコンピュータに転送されてもよいし、図1に表示されていない外部の記憶装置に保存されてもよい。
なお、後述するように、ステップS104を省略されてもよい。この場合、制御部13は、PUBOソルバ2にペナルティ項のみを使った求解を実行させてもよい。以下では、生成部11および変換部12によって実行される処理の詳細について説明する。
図7は、情報処理装置1で実行される各処理ステップとデータとの関係の第1例を示している。以下では、図7を参照しながら、情報処理装置1が実行する処理について説明する。
図7には、データとして、制約条件データ30、内部表現データ31、論理式データ32、変換ルールデータ33、ペナルティ項データ34、目的関数データ35、係数データ36、合成済目的関数データ37、計算結果データ38が示されている。これらのデータは、情報処理装置1の記憶部14に保存されているものとする。ただし、これらのデータの少なくとも一部が、外部のストレージ装置など、その他の場所に保存されていてもよい。
また、図7には、処理として、論理合成処理40、簡単化処理41、ペナルティ項生成処理42、関数合成処理43、求解処理44が示されている。例えば、論理合成処理40、簡単化処理41は、生成部11によって実行される。また、ペナルティ項生成処理42と、関数合成処理43は、変換部12によって実行される。求解処理44は、PUBOソルバ2の演算部22によって実行される。
制約条件データ30は、問題の制約条件を示したデータである。例えば、問題がナップサック問題である場合、制約条件は上述の式(2)のような不等号を含む代数式となる。問題の制約条件は、ユーザによって入力されてもよいし、別の情報処理装置からダウンロードされたものであってもよい。論理合成処理40では、入力された制約条件データ30を内部表現データ31に変換する。論理合成処理40は、ハードウェア記述言語の処理系を提供するツール(ソフトウェア)によって実行されてもよい。
内部表現データ31は、ブール代数表現(論理式)に変換された制約条件に相当する。簡単化処理41では、内部表現データ31に論理の簡単化を行う。簡単化処理41の例としては、AND-ORの2段論理への簡単化、カルノー図による簡単化が挙げられる。論理の簡単化のために、ESPRESSO-MV、SISなどのツールを用いてもよい。簡単化処理41で2段論理への簡単化を行った場合、POS形式(product-of-sums形式)の論理式が生成される。簡単化処理41で生成された論理式は、論理式データ32として保存される。なお、POS形式は積和形式または、CNF(conjunctive normal form)ともよばれる。
例えば、ユーザが図3のVerilog-HDLファイルを作成し、当該ファイルを制約条件データ30に保存したものとする。図3の内容に対して、論理合成処理40および簡単化処理41を実行すると、上述の式(6)の論理式が得られる。式(6)の論理式は、論理式データ32として保存される。なお、生成部11は、必ず簡単化処理41を実行しなくてもよい。この場合、簡単化処理41を経ていない論理式が論理式データ32として保存される。
次に、ペナルティ項生成処理42は、簡単化された論理式を、二値変数をパラメータとする関数に変換する。図8は、ペナルティ項生成処理42の例を示したフローチャートである。以下では、図8を参照しながら処理を説明する。
まず、変換部12は、記憶部14の論理式データ32から論理式を読み出す(ステップS201)。そして、変換部12は、読み出した論理式の否定形を作る(ステップS202)。例えば、式(6)の論理式が読み出された場合、当該論理式の否定形は下記の式(11)のようになる。
Figure 0007297540000011
次に、変換部12は、記憶部14の変換ルールデータ33から、変換ルールを読み出す(ステップS203)。図9のテーブルでは、変換ルール(ルール53)の一例が示されている。図9において、Aはブール代数の変数を、xは変換後の変数をそれぞれ示しているものとする。ルール53では、論理積が乗算に、論理和が加算に、ブール代数の変数の正リテラルが二値変数xに、ブール代数の変数の負リテラルが1から二値変数xを減算した内容に、それぞれ変換される。xは、ブール代数の各変数に対応する二値変数であるものとする。括弧で指定されている場合を含め、演算の実行順序は変更されないものとする。
変換部12は、読み出した変換ルールに基づき、論理式の否定形を関数に変換する(ステップS204)。例えば、式(11)に示した論理式の否定形が関数に変換された場合、関数p(x,x,x)=x+1-xが生成される。関数pは、ペナルティ項に相当する。関数pにおいて、変数x,x,xは、それぞれ式(6)および(11)におけるブール代数の変数a,b,cに対応している。変数x,x,xの値は、0または1のいずれかとなる。関数pは、多重線形関数となる。そして、変換後の関数pは、ペナルティ項データ34として記憶部14に保存される(ステップS205)。
図8のフローチャートの説明は以上である。以降では、再び図7を参照しながら情報処理装置1が実行する処理の説明を行う。
目的関数データ35には、ペナルティ項を含まない、本来の目的関数が格納されている。係数データ36には、ペナルティ項に乗じる係数Cの値が格納されている。係数Cは、例えば、ユーザが目的関数およびペナルティ項の値を考慮して設定された正の実数である。例えば、制約条件を満たす決定変数の組合せ(実行可能解)における目的関数の最小値と、制約条件を満たさない決定変数の組合せにおける目的関数の最小値との差をDとする。一方、制約条件を満たす決定変数の組合せにおけるペナルティ項の値と、制約条件を満たさない決定変数の組合せにおけるペナルティ項の値の差の最小値をEとする。この場合、係数Cの値をD/Eより大きく設定することができる。使われるPUBOソルバ2の特性に応じて、係数Cをさらに大きく設定してもよい。
上述の係数Cの決め方は一例にしかすぎない。計算の実行前に、実行可能解における目的関数の最小値(すなわち、組合せ最適化問題の解)を正確に知ることはできない。したがって、係数Cの値は、問題の性質を考慮し、比較的大きく設定されることが多い。また、異なる値に係数Cを設定し、PUBOソルバにおける計算が実行されることがある。これにより、当該問題について高精度な解が得られる係数Cの値が探索される。
はじめに、関数合成処理43では、目的関数データ35より本来の目的関数が読み出され、係数データ36より係数Cの値が読み出される。そして、本来の目的関数と、係数Cで重み付けされたペナルティ項との和が求められる。例えば、本来の目的関数としてx-x+2xが読み出された場合、下記の式(12)が得られる。
Figure 0007297540000012
なお、変換部12は、ペナルティ項を組合せ最適化問題の本来の目的関数に加算し、ペナルティ項を含む目的関数を生成する際、必ずペナルティ項をCで重み付けしなくてもよい。
式(12)の関数f(x,x,x)は、ペナルティ項pを含む目的関数である。変換部12は、関数f(x,x,x)を、記憶部14の合成済目的関数データ37に保存する。例えば、係数Cを3とした場合、f(x,x,x)=3x+x-x-x+3となる。なお、定数項は、PUBOソルバ2における求解処理の結果に影響しないため、定数項+3を除いた関数、3x+x-x-xを合成済目的関数データ37に保存してもよい。
情報処理装置1の制御部13は、合成済目的関数データ37の関数fをイジング問題の目的関数とし、PUBOソルバ2の演算部22に求解処理を実行させる。PUBOソルバ2は、ペナルティ項または、ペナルティ項を含む目的関数の二値変数をスピンとしたイジング模型の解を計算する。PUBOソルバ2が解の計算を行うイジング模型は、スピンの3次以上の項を含んでいてもよい。また、制御部13は、PUBOソルバ2より、求められた解を取得する。PUBOソルバ2での計算の結果、x=0、x=1、x=1という解が求められる。この解は、制約条件を充足している。
上述の例では、ペナルティ項が2次式となっているが、ペナルティ項は必ず2次式でなくてもよい。図10では、決定変数の各組合せにおけるペナルティ項p(x,x,x)=x+1-xの値をテーブルに示している。図10のテーブルを関連技術の方法によって作成された図5の表と比較すると、以下のような違いがある。
図5のペナルティ項では、4つの変数が必要となっている。一方、図10のペナルティ項では、使われる変数が3つとなっている。関連技術の方法では、補助変数の追加が必要となるが、本実施形態の方法では、補助変数の追加が発生しない。このため、ペナルティ項を含む目的関数における決定変数の数を減らし、PUBOソルバ2において必要となるスピン数および計算量(計算リソース)を抑制することができる。
制約条件が満たされる場合、図5、図10のペナルティ項の値はいずれも0となる。しかし、両者の方法を比較すると、制約条件が満たされない場合におけるペナルティ項の値域に違いがある。制約条件が満たされない場合における、図10のペナルティ項の値域は[1,2]である。一方、制約条件が満たされない場合における、図5のペナルティ項の値域は[1,6]である。上述の係数Cとして、D/Eより大きな値を選ぶ方法を用いた場合を考える。この場合、D=1、E=1となるため、係数Cの設定値はいずれの方法においても同じ値に設定される。ただし、本実施形態の方法の方がペナルティ項の値域が狭くなっているため、ペナルティ項がPUBOソルバ2の演算精度に与える影響が小さくなる。すなわち、本実施形態の方法によって生成されたペナルティ項は、PUBOソルバにおける求解処理を阻害しにくいといえる。
2段論理への簡単化が行われるため、簡単化処理41で生成される論理式において、論理積の項で同じ変数が重複して現れることはなくなる。このため、ペナルティ項生成処理42によって生成される関数pに2次以上のべき乗が含まれることはない。したがって、本実施形態の方法によって生成されるペナルティ項は多重線形関数となる。なお、論理式の簡単化手法によっては、同じ変数が重複して現れている項が生成される可能性がある。このような場合には、変数の重複を検出し、重複した変数を自動的に除去すればよい。
上述では、0または1のいずれかの値をとる決定変数が使われる場合の処理について説明した。-1または+1のいずれかの値をとる決定変数を使う場合には、ペナルティ項生成処理42で図11に示した変換ルール(ルール54)を適用すればよい。図11においも、Aはブール代数の変数を、xは変換後の変数をそれぞれ示している。ルール54では、論理積が乗算に、論理和が加算に、ブール代数の変数の正リテラルが1に二値変数xを加算し2で除算した内容に、ブール代数の変数の負リテラルが1から二値変数xを減算し2で除算した内容にそれぞれ変換される。xは、ブール代数の各変数に対応する二値変数であるものとする。括弧で指定されている場合を含め、演算の実行順序は変更されないものとする。
これまで、変換部12で使われる複数の変換ルール(ルール53、54)を説明した。これらの変換ルールは、論理式を変換し、二値変数をパラメータとする、ペナルティ項を生成する際に使用することができる変換ルールの例にしかすぎない。したがって、変換部12は、論理式の論理積および論理和を算術演算に、論理変数の正リテラルおよび論理変数の負リテラルを、二値変数を含む内容に変換する、その他の変換ルールを使ってもよい。
次に、上述のナップサック問題のインスタンス例に対して、本実施形態の方法を適用した場合について説明する。図12では、上述のナップサック問題のインスタンス例における制約条件をハードウェア記述言語によって記述している。図12では、Verilog-HDLが使われている。図12では、in[1]~in[5]の5ビットの入力がそれぞれ決定変数x~xに対応している。ナップサックに詰めることが可能な荷物の重量の合計に係る上限Wは15であり、荷物w~wの重さは、7、2、5、4、3であった。この制約条件を定式化すると、下記の式(13)が得られる。
Figure 0007297540000013
図12では、式(13)の制約条件を満たすときに“1”、式(13)の制約条件を満たさないときに“0”の1ビット値(out)を出力している。ユーザは、例えば、図12の内容を含むVerilog-HDLファイルを作成し、記憶部14の制約条件データ30に当該ファイルを保存する。そして、図7の説明で述べたように、論理合成処理40および簡単化処理41が実行されることによって、記憶部14の論理式データ32にブール代数の式が保存される。下記の式(14)は、式(13)の制約条件に対応するブール代数の式である。
Figure 0007297540000014
ここで、ブール代数の変数X、X、X、X、Xは、それぞれ式(13)の変数x、x、x、x、xに対応している。
ペナルティ項生成処理42では、論理式データ32から上述のブール代数の式(14)が読み出され、式(14)の否定形が生成される。下記の式(15)は、式(14)の否定形である。
Figure 0007297540000015
そして、式(15)に、変換ルール(図9のルール53)を適用し、二値変数xをパラメータとする関数を生成する。下記の式(16)は、式(15)の変換によって生成された関数であり、当該関数はペナルティ項pに相当する。
Figure 0007297540000016
ここで、二値変数x、x、x、x、xは、それぞれ式(14)の変数X、X、X、X、Xに対応している。
ペナルティ項が生成されたら、関数合成処理43によってペナルティ項に係数Cを乗じ、本来の目的関数と加算し、ペナルティ項を含む目的関数(合成済目的関数)が生成される。ペナルティ項を含む目的関数を使って、PUBOソルバ2での求解処理44が実行される。
関連技術による方法によって、ペナルティ項を生成すると、式(4)に示したように、W=15個の補助変数の追加が必要となる。“log trick”とよばれる手法を使ったとしても、少なくとも4個の補助変数の追加が必要となる。しかし、本実施形態の方法によってペナルティ項を生成すると、補助変数の追加が不要となる。ペナルティ項を含む目的関数の決定変数の個数が増えないため、PUBOソルバ2で必要なスピン数や計算時間(すなわち、計算リソースの消費)を抑制することができる。
制約条件を満たす決定変数の組合せ(実行可能解)では、本実施形態による方法と、関連技術による方法のいずれが用いられた場合でも、ペナルティ項の値が0になる。本実施形態による方法では、制約条件を満たさない場合におけるペナルティ項の値域は[1,3]となるが、関連技術による方法では、制約条件を満たさない場合におけるペナルティ項の値域は[1,14596]となる。ペナルティ項の係数Cとして、D/Eより大きな値を選ぶ方法を用いた場合を想定する。この場合、D=1、E=1となるため、係数Cの設定値はいずれの方法においても同じ値に設定される。関連技術による方法のように、ペナルティ項の値域が大きくなりすぎると、PUBOソルバ2における求解処理を阻害する要因となり、場合によっては求解が困難となるおそれがある。
説明の都合上、N=5、W=15という小規模なインスタンスを例に、ナップサック問題への適用を説明した。現実に求解の対象となる問題の規模は、これより大きくなることが一般的である。したがって、解決したい課題に対して、本実施形態に係る方法を適用してペナルティ項を生成することにより、求解の精度改善、必要なスピン数の抑制、計算時間の削減などの効果はより顕著となる。
なお、PUBOソルバの種類・構成によっては、ペナルティ項を含む目的関数の微分(または、勾配)を利用した計算が実行される場合もある。一般に、ペナルティ項を含む目的関数の値域が大きくなると、微分(勾配)の絶対値も大きくなる。したがって、PUBOソルバの計算でペナルティ項を含む目的関数の値が直接使われない場合であっても、ペナルティ項の値域を抑えることは、計算精度の改善に寄与するといえる。
本実施形態に係る情報処理システムを用いることにより、ペナルティ項の設計に係る難易度と負担を軽減し、専門的な知見を有しないユーザでも、ペナルティ項の設計を行うことができる。また、本実施形態に係る情報処理システムを使うと、決定変数の追加を最小限にし、ペナルティ項を含む目的関数を生成することが可能となる。また、ペナルティ項の値域が小さく抑えられているため、本来の目的関数の値に比べ、ペナルティ項の値が大きくなりすぎることもなくなる。したがって、コンピュータ(例えば、PUBOソルバなどのソルバ)における高精度な計算および求解の成功率(計算で実行可能解を得られる確率)の向上を実現し、組合せ最適化問題の求解を促進することが可能となる。
上述の情報処理装置では、生成したペナルティ項を本来の目的関数と合成し、ペナルティ項を含む目的関数を使い、組合せ最適化問題を解いていた。ただし、必ず生成されたペナルティ項を本来の目的関数と合成しなくてもよい。例えば、以下で説明するように、ペナルティ項のみを使って求解処理を行ってもよい。上述の情報処理システムと、構成は同様であるため、以下では実行される処理における相違点を中心に説明をする。また、必要に応じ、図1に示された構成要素を参照するものとする。
図13は、情報処理装置で実行される各処理ステップとデータとの関係の第2例を示している。図7(第1例)との第1の相違点は、ペナルティ項データ34に格納されたペナルティ関数(ペナルティ項)を使い、PUBOソルバ2での求解が行われている点である。図7との第2の相違点は、目的関数データ35、係数データ36、合成済目的関数データ37が使われておらず、関数合成処理43が実行されていない点である。図13におけるその他のデータおよび処理は、図7の場合と同様である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1 情報処理装置
2 PUBOソルバ
3 操作装置
4 表示装置
5 ネットワーク
6、7 情報端末
8 デジタル回路
10、22 演算部
11 生成部
12 変換部
13、21 制御部
14、23 記憶部
15 入力部
16 出力部
17、20 通信部
30 制約条件データ
31 内部表現データ
32 論理式データ
33 変換ルールデータ
34 ペナルティ項データ
35 目的関数データ
36 係数データ
37 合成済目的関数データ
38 計算結果データ
40 論理合成処理
41 簡単化処理
42 ペナルティ項生成処理
43 関数合成処理
44 求解処理
50、51、52 問題

Claims (14)

  1. 形式言語で記述された組合せ最適化問題の制約条件より論理式を生成する生成部と、
    前記論理式を変換し、二値変数をパラメータとする、ペナルティ項を生成する変換部とを備え、
    前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかは、制約なし多項式2値変数最適化の形式となっている、
    情報処理装置。
  2. 前記変換部は、前記論理式の論理積および論理和を算術演算に、論理変数の正リテラルおよび前記論理変数の負リテラルを、前記二値変数を含む内容に変換することによって、前記ペナルティ項を生成する、
    請求項1に記載の情報処理装置。
  3. 前記変換部は、前記論理式の論理積を乗算に、前記論理式の論理和を加算に、論理変数の正リテラルを前記二値変数に、前記論理変数の負リテラルを1から前記二値変数を減算した内容に変換することによって、前記ペナルティ項を生成する、
    請求項1に記載の情報処理装置。
  4. 前記変換部は、前記論理式の論理積を乗算に、前記論理式の論理和を加算に、論理変数の正リテラルを、1に前記二値変数を加算し2で除算した内容に、負リテラルを、1から前記二値変数を減算し2で除算した内容に変換することによって、前記ペナルティ項を生成する、
    請求項1に記載の情報処理装置。
  5. 前記生成部は、2段論理に簡単化した前記論理式を生成する、
    請求項1ないし4のいずれか一項に記載の情報処理装置。
  6. 前記生成部は、前記制約条件を使って論理合成処理を実行し、前記論理式を生成する、
    請求項1ないし5のいずれか一項に記載の情報処理装置。
  7. 請求項1ないし6のいずれか一項に記載の情報処理装置によって生成された前記ペナルティ項または、前記ペナルティ項を含む前記目的関数の二値変数をスピンとした、イジング模型の解を計算する、
    PUBOソルバ。
  8. 前記イジング模型は、前記スピンの3次以上の項を含む、
    請求項7に記載のPUBOソルバ。
  9. 形式言語で記述された組合せ最適化問題の制約条件より生成された論理式を、二値変数をパラメータとする、ペナルティ項に変換し、制約なし多項式2値変数最適化の形式の前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかを生成する情報処理装置と、
    前記ペナルティ項または、前記ペナルティ項を含む目的関数の前記二値変数をスピンとした、イジング模型の解を計算するPUBOソルバとを備え、
    前記情報処理装置は、前記イジング模型の解に基づいて前記組合せ最適化問題の解を求める、
    情報処理システム。
  10. 前記情報処理装置が生成する前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかは、3次以上の前記パラメータを有し、前記PUBOソルバは、前記スピンの3次以上の項を含む前記イジング模型の解を計算する、
    請求項9に記載の情報処理システム。
  11. 形式言語で記述された組合せ最適化問題の制約条件より論理式を生成するステップと、
    前記論理式を、二値変数をパラメータとする、ペナルティ項に変換し、制約なし多項式2値変数最適化の形式の前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかを生成するステップと、
    前記ペナルティ項または、前記ペナルティ項を含む目的関数の前記二値変数をスピンとしたイジング模型の解を計算するステップと、
    前記イジング模型の解に基づいて前記組合せ最適化問題の解を求めるステップとを含む、
    情報処理方法。
  12. 前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかは、3次以上の前記パラメータを有し、前記スピンの3次以上の項を含む前記イジング模型の解が計算される、
    請求項11に記載の情報処理方法。
  13. 形式言語で記述された組合せ最適化問題の制約条件より論理式を生成するステップと、
    前記論理式を、二値変数をパラメータとする、ペナルティ項に変換し、制約なし多項式2値変数最適化の形式の前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかを生成するステップと、
    前記ペナルティ項または、前記ペナルティ項を含む目的関数の前記二値変数をスピンとしたイジング模型の解を計算するステップと、
    前記イジング模型の解に基づいて前記組合せ最適化問題の解を求めるステップとをコンピュータに実行させる、
    プログラム。
  14. 前記ペナルティ項または、前記ペナルティ項を含む前記組合せ最適問題の目的関数の少なくともいずれかは、3次以上の前記パラメータを有し、前記スピンの3次以上の項を含む前記イジング模型の解が計算される、
    請求項13に記載のプログラム。
JP2019106437A 2019-06-06 2019-06-06 情報処理装置、puboソルバ、情報処理方法およびプログラム Active JP7297540B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019106437A JP7297540B2 (ja) 2019-06-06 2019-06-06 情報処理装置、puboソルバ、情報処理方法およびプログラム
PCT/JP2020/006291 WO2020246073A1 (en) 2019-06-06 2020-02-18 Information processing device, pubo solver, information processing method and non-transitory storage medium
US17/249,312 US12033090B2 (en) 2019-06-06 2021-02-26 Information processing device, PUBO solver, information processing method and non-transitory storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019106437A JP7297540B2 (ja) 2019-06-06 2019-06-06 情報処理装置、puboソルバ、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020201598A JP2020201598A (ja) 2020-12-17
JP7297540B2 true JP7297540B2 (ja) 2023-06-26

Family

ID=69784507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019106437A Active JP7297540B2 (ja) 2019-06-06 2019-06-06 情報処理装置、puboソルバ、情報処理方法およびプログラム

Country Status (3)

Country Link
US (1) US12033090B2 (ja)
JP (1) JP7297540B2 (ja)
WO (1) WO2020246073A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022118715A1 (ja) 2020-12-04 2022-06-09 パナソニックIpマネジメント株式会社 化粧用積層シート及び化粧用セット
WO2022264414A1 (ja) * 2021-06-18 2022-12-22 日本電気株式会社 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
US12001779B2 (en) * 2022-01-14 2024-06-04 Huawei Cloud Computing Technologies Co., Ltd. Method and system for automatically formulating an optimization problem using machine learning
JP2023149726A (ja) 2022-03-31 2023-10-13 富士通株式会社 データ処理装置、プログラム及びデータ処理方法
JP2023149428A (ja) 2022-03-31 2023-10-13 富士通株式会社 データ処理装置、プログラム及びデータ処理方法
JP2024082550A (ja) 2022-12-08 2024-06-20 富士通株式会社 データ処理装置、プログラム及びデータ処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206060A (ja) 2005-12-21 2007-08-16 General Electric Co <Ge> 制約問題に対する提案される解のロバストネスを評価し、制約問題の解を展開する際にロバストネスを考慮する方法および装置
WO2017152289A1 (en) 2016-03-11 2017-09-14 1Qb Information Technologies Inc. Methods and systems for quantum computing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015060915A2 (en) * 2013-07-29 2015-04-30 President And Fellows Of Harvard College Quantum processor problem compilation
CN106170802A (zh) 2014-03-12 2016-11-30 时空防御系统有限责任公司 通过绝热量子计算解决数字逻辑约束问题
JP6623947B2 (ja) 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US10691771B2 (en) * 2017-03-13 2020-06-23 Universities Space Research Association System and method to hardcode interger linear optimization problems on physical implementations of the Ising model
US10592816B1 (en) * 2018-12-03 2020-03-17 Accenture Global Solutions Limited Quantum computation for optimization in exchange systems
US11620534B2 (en) * 2019-03-18 2023-04-04 International Business Machines Corporation Automatic generation of Ising Hamiltonians for solving optimization problems in quantum computing
JP7145116B2 (ja) * 2019-04-05 2022-09-30 株式会社日立製作所 スケジュール作成支援装置およびスケジュール作成支援方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206060A (ja) 2005-12-21 2007-08-16 General Electric Co <Ge> 制約問題に対する提案される解のロバストネスを評価し、制約問題の解を展開する際にロバストネスを考慮する方法および装置
WO2017152289A1 (en) 2016-03-11 2017-09-14 1Qb Information Technologies Inc. Methods and systems for quantum computing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TANAHASHI, K, et al.,Application of Ising Machines and a Software Development for Ising Machines,Journal of the Physical Society of Japan, 88, 061010,2019年05月20日

Also Published As

Publication number Publication date
WO2020246073A1 (en) 2020-12-10
US12033090B2 (en) 2024-07-09
US20210182720A1 (en) 2021-06-17
JP2020201598A (ja) 2020-12-17

Similar Documents

Publication Publication Date Title
JP7297540B2 (ja) 情報処理装置、puboソルバ、情報処理方法およびプログラム
Zulehner et al. Advanced simulation of quantum computations
Haener et al. Quantum circuits for floating-point arithmetic
WO2020196862A1 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
JP7502269B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
US20220012306A1 (en) Information processing device, information processing system, information processing method, and storage medium
JP7474242B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
JP7421545B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
Drake PyEDA: Data Structures and Algorithms for Electronic Design Automation.
WO2021078827A1 (en) Precision-preserving qubit reduction based on spatial symmetries in fermionic systems
Khusainov et al. Nonlinear predictive control on a heterogeneous computing platform
JP2020113190A (ja) 最適化装置、最適化システム、最適化方法、及びプログラム
Zayer et al. A gpu‐adapted structure for unstructured grids
JP7181988B2 (ja) 情報処理システム、情報処理方法およびプログラム
JP7341965B2 (ja) 計算装置、計算方法およびプログラム
Błażewicz et al. Scheduling malleable tasks on parallel processors to minimize the makespan
Hong et al. Implementation of an quantum circuit simulator using classical bits
WO2022249785A1 (ja) 求解装置、求解方法およびプログラム
Huang et al. A generic FPGA-based hardware architecture for recursive least mean p-power extreme learning machine
Mayannavar et al. Performance comparison of serial and parallel multipliers in massively parallel environment
Mahadevan et al. Improving climate model coupling through a complete mesh representation: a case study with E3SM (v1) and MOAB (v5. x)
Robertson et al. Tensor Network enhanced Dynamic Multiproduct Formulas
US11741187B2 (en) Calculation device, calculation method, and computer program product
JP7398401B2 (ja) 最適化方法、情報処理装置及びそれを用いたシステム
Huang et al. Reaping the processing potential of FPGA on double-precision floating-point operations: an eigenvalue solver case study

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220314

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: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230614

R150 Certificate of patent or registration of utility model

Ref document number: 7297540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150