JP7228425B2 - 計算装置、表示装置およびプログラム - Google Patents

計算装置、表示装置およびプログラム Download PDF

Info

Publication number
JP7228425B2
JP7228425B2 JP2019050992A JP2019050992A JP7228425B2 JP 7228425 B2 JP7228425 B2 JP 7228425B2 JP 2019050992 A JP2019050992 A JP 2019050992A JP 2019050992 A JP2019050992 A JP 2019050992A JP 7228425 B2 JP7228425 B2 JP 7228425B2
Authority
JP
Japan
Prior art keywords
variable
variables
updating
function
update
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
JP2019050992A
Other languages
English (en)
Other versions
JP2020154524A (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 JP2019050992A priority Critical patent/JP7228425B2/ja
Priority to PCT/JP2020/009498 priority patent/WO2020189315A1/ja
Priority to CA3133795A priority patent/CA3133795C/en
Publication of JP2020154524A publication Critical patent/JP2020154524A/ja
Priority to US17/476,181 priority patent/US20220019714A1/en
Application granted granted Critical
Publication of JP7228425B2 publication Critical patent/JP7228425B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明の実施形態は、計算装置、表示装置およびプログラムに関する。
組み合わせ最適化問題の多くは、統計力学のイジングモデルのエネルギー最小状態(基底状態)を求める問題(以下、「イジング問題」と呼ぶ)に変換できる。近年、イジング問題を高速に解く量子コンピュータ(以下、「イジングマシン」と呼ぶ)の開発が盛んに進められている。しかし、現在提案されているイジングマシンはスピン数(量子ビットの数)に限界があり、大規模なイジング問題を解くことが難しいといった課題がある。
一方、計算機によるシミュレーションでイジング問題を解く方法として、シミュレーテッド・アニーリングが知られている。シミュレーテッド・アニーリングは、大規模なイジング問題を扱うことが可能であるが、逐次更新アルゴリズムを採用するため並列計算に不向きであり、大規模なイジング問題を高速に解くことが難しい。
特開2017-73106号公報
T.Inagaki et al.,Science 354,603 (2016). H.Goto,Sci.Rep.6,21686 (2016). Y.Haribara et al.,Quantum Sci.Technol.2,044002 (2017).
本発明が解決しようとする課題は、大規模なイジング問題を高速に解くことができる計算装置、表示装置およびプログラムを提供することである。
実施形態の計算装置は、処理部と、表示制御部と、を備える。処理部は、第1変数更新と第2変数更新とを含む処理手順を繰り返す。表示制御部は、表示装置に画像を表示させる。前記第1変数更新は、N個(Nは2以上の整数)の第1変数x(iは1以上N以下の整数)の各々について、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含む。前記第2変数更新は、N個の第1変数xに対応するN個の第2変数yの各々について、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含む。前記第1関数の変数は、第2変数yを含む。前記第2関数の変数は、第1変数xを含む。前記第3関数は、行列Ji,jと第1変数x(jはiとは異なる1以上N以下の整数)との積和演算を含む。前記処理部は、前記処理手順を繰り返している間は更新された第1変数xおよび第2変数yの値を出力し、前記処理手順の繰り返しが終了すると、最後に更新された第1変数xの符号を出力する。前記表示制御部は、前記処理部が出力する第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像を前記表示装置に表示させる。
図1は、実施形態に係る計算装置のハードウェア構成例を示すブロック図である。 図2は、実施形態に係る計算装置の機能的な構成例を示す図である。 図3は、実施形態に係る計算装置の動作の一例を示すフローチャートである。 図4は、処理部による処理の一例を示すフローチャートである。 図5は、処理部による処理の一例を示すフローチャートである。 図6は、処理部による処理の一例を示すフローチャートである。 図7は、処理部による処理の一例を示すフローチャートである。 図8は、処理部による処理の一例を示すフローチャートである。 図9は、処理部による処理の一例を示すフローチャートである。 図10は、処理部による処理の一例を示すフローチャートである。 図11は、処理部による処理の一例を示すフローチャートである。 図12は、モニタリング画像の一例を示す図である。 図13は、モニタリング画像の一例を示す図である。 図14は、モニタリング画像の一例を示す図である。 図15は、モニタリング画像の一例を示す図である。 図16は、モニタリング画像の一例を示す図である。 図17は、モニタリング画像の一例を示す図である。
以下、本発明を適用した計算装置、表示装置およびプログラムの具体的な実施形態について、添付図面を参照しながら詳細に説明する。なお、以下の説明では、共通の要素については同一の参照符号を付して、重複した説明を適宜省略する。
図1は、本実施形態に係る計算装置100のハードウェア構成例を示すブロック図である。計算装置100は、図1に示すように、第1プロセッサ回路101と、第2プロセッサ回路102と、主記憶装置103と、補助記憶装置104と、機器I/F105と、通信I/F106とを備える。
第1プロセッサ回路101は、例えばGPU(Graphics Processing Unit)を含む。第1プロセッサ回路101は、計算量が多い特定の処理を並列計算によって高速に行う。本実施形態において、特定の処理とは、後述の新規な運動方程式の時間発展を計算することによってイジング問題を解く(近似解を求める)処理である。
第2プロセッサ回路102は、例えばCPU(Central Processing Unit)を含む。第2プロセッサ回路102は、計算装置100を適切に動作させるための制御など、比較的複雑な処理を行う。本実施形態では、例えば、ユーザが入力した各種パラメータの設定や変数の設定、後述のモニタリング画像の表示制御などが、第2プロセッサ回路102により行われる。
主記憶装置103は、例えばRAM(Random Access Memory)を含む。主記憶装置103は、第1プロセッサ回路101や第2プロセッサ回路102が作業領域として利用する記憶装置である。
補助記憶装置104は、例えばHDD(Hard Disk Drive)あるいはSSD(Solid State Drive)などの大容量ストレージ装置を含む。補助記憶装置104は、計算装置100において使用されるプログラムやデータなどを格納する。補助記憶装置104に格納されたプログラムやデータは、第1プロセッサ回路101や第2プロセッサ回路102によって読み出されて主記憶装置103上にロードされる。第1プロセッサ回路101や第2プロセッサ回路102は、例えば主記憶装置103上にロードしたプログラムに従って、上述の処理を実行することができる。
機器I/F105は、計算装置100に対して表示装置110(例えば液晶ディスプレイ)や入力装置120(例えばキーボード、マウス、タッチ式入力パネル、音声認識入力装置など)などの外部機器を接続するためのインタフェースである。
通信I/F106は、計算装置100をネットワーク130に接続するためのインタフェースである。ネットワーク130は、例えばインターネットやLAN(Local Area Network)などを含む。
本実施形態に係る計算装置100としては、例えば汎用のコンピュータを用いることができる。また、互いに接続された複数のコンピュータを用いて計算装置100を構成してもよい。また、計算装置100の少なくとも一部(例えば第1プロセッサ回路101)として、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用の回路を用いてもよい。
図2は、本実施形態に係る計算装置100の機能的な構成例を示すブロック図である。計算装置100は、図2に示すように、機能的な構成要素として、設定部10と、処理部20と、表示制御部30とを備える。設定部10および表示制御部30は、例えば第2プロセッサ回路102により実現することができる。処理部20は、例えば第1プロセッサ回路101により実現することができる。
設定部10は、後述の新規な運動方程式を解くための各種パラメータの設定や変数の初期化などを行う。各種パラメータは、例えば、ユーザが入力装置120を用いて入力した値に設定される。変数は、イジングモデルのスピン数に対応するN個の(Nは2以上の整数)の第1変数x(iは1以上N以下の整数)と、N個の第1変数xに対応するN個の第2変数yとを含む。第1変数xは、イジングスピンの値域を実数に拡張した変数である。第2変数yは、後述の新規な運動方程式中に現れる値域が実数の変数である。N個の第1変数xの集合を第1変数群{x}、N個の第2変数yの集合を第2変数群{y}と呼ぶ。これら第1変数xおよび第2変数yは、計算を開始する前に、例えば絶対値が0.1以下の乱数によってランダムに初期化される。
処理部20は、後述の新規な運動方程式の時間発展を計算するために、第1変数更新と第2変数更新とを含む処理手順を繰り返す。第1変数更新は、N個の第1変数xの各々について、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含む。第2変数更新は、N個の第2変数yの各々について、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含む。第1関数の変数は、第2変数yを含み、第2関数の変数は、第1変数xを含む。第3関数は、行列Ji,jと第1変数x(jはiとは異なる1以上N以下の整数)との積和演算を含む。第1関数、第2関数および第3関数は、後述の新規な運動方程式から導かれる関数である。これらの具体例については詳細を後述する。
処理部20は、上述の処理手順を繰り返している間は、更新された第1変数xおよび第2変数yの値を出力する。そして、所定の終了条件を満たし、上述の処理手順の繰り返しが終了すると、処理部20は、最後に更新された第1変数xの符号「±1」を出力する。後述の新規な運動方程式の時間発展が適切に計算された場合、最後に更新されたN個の第1変数xの符号「±1」は、基底状態のイジングスピンを表しているものと期待される。
表示制御部30は、処理部20が出力する第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像を表示装置110に表示させる。モニタリング画像の具体例については詳細を後述する。
本実施形態に係る計算装置100によるシミュレーションでイジング問題を解く場合、処理部20による処理手順の繰り返しによって後述の新規な運動方程式の時間発展が進むにつれて、N個の第1変数xの値が0付近からプラス・マイナスの一定値に分岐して収束していくことが理想である。しかし、パラメータの設定が適切でない場合は、N個の第1変数xの値がうまく分岐しなかったり無限大に発散したりする場合がある。
そこで、本実施形態では、表示制御部30が、処理手順を繰り返している間に処理部20から出力される第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像(新規な運動方程式の時間発展に伴う第1変数xおよび第2変数yの時間変化を可視化した画像)を生成する。そして、表示制御部30は、このモニタリング画像を表示装置110に表示させるようにしている。したがって、ユーザは、表示装置110に表示されているモニタリング画像を参照することにより、第1変数xの分岐が適切に行われているか否かを確認することができ、パラメータの設定が適切であるかが確認できる。また、分岐が適切でない場合に、モニタリング画像で表される第1変数xおよび第2変数yの時間変化の様子から、パラメータのチューニングの方向性を判断することができる。
次に、本実施形態に係る計算装置100の動作について説明する。図3は、計算装置100の動作の一例を示すフローチャートである。
計算装置100の動作が開始されると、まず、設定部10が、後述の新規な運動方程式を解くための各種パラメータの設定を行う(ステップS1)。パラメータは、例えば、第1変数xや第2変数yの数を表す「N」、後述の「T」、「D」、「K」、「c」、「p」などを含む。また、パラメータは、要素間の相互作用の強さを表す行列「Ji,j」(第1パラメータ)を含む。また、パラメータは、外場を表すベクトル「h」(第2パラメータ)をさらに含んでもよい。
次に、設定部10は、第1変数群{x}に含まれる各第1変数xおよび第2変数群{y}に含まれる各第2変数yを、例えば絶対値が0.1以下の乱数によってランダムに初期化する(ステップS2)。
次に、処理部20が、後述の新規な運動方程式の時間発展の計算を行う(ステップS3)。すなわち、処理部20は、上述の第1変数更新と第2変数更新とを含む処理手順を複数回繰り返すことにより、後述の新規な運動方程式の時間発展を計算する。第1変数更新では、第2変数群{y}を用いて第1変数群{x}が更新され、第2変数更新では、第1変数群{x}を用いて第2変数群{y}が更新される。複数回の処理手順の少なくとも一部において、第1変数更新の後に第2変数更新が行われてもよいし、第2変数更新の後に第1変数更新が行われてもよい。第1変数更新と第2変数更新とを含む処理手順は、所定の終了条件が満たされるまで繰り返される。
処理手順の繰り返しが終了すると、処理部20は、最後に更新された第1変数群{x}に含まれる各第1変数xの符号を出力する(ステップS4)。これら第1変数xの符号は、基底状態のイジングスピンを表している。本実施形態に係る計算装置100は、以上のように、新規な運動方程式の時間発展を計算することにより、大規模なイジング問題を高速に解くことができる。
ここで、本実施形態に係る計算装置100が扱うイジング問題について説明する。イジングエネルギーは、例えば下記式(1)のように表される。
Figure 0007228425000001
この式(1)において、「N」はイジングスピンの数(スピン数)である。「s」はi番目のイジングスピンであり、例えば「s」=±1である。「Ji,j」はイジングスピン間の相互作用の強さを表す行列(第1パラメータ)であり、例えば、対角成分(対角要素)が全てゼロの実対象行列である。「h」は外場を表すベクトル(第2パラメータ)である。
上記式(1)に関して、量子分岐マシンの古典モデル(以下、「古典分岐マシン」と呼ぶ)が提案されている。例えば特許文献1には、古典分岐マシンによるシミュレーションの一例が記載されている。古典分岐マシンにおいては、運動方程式は、以下の式(2)乃至式(4)の連立常微分方程式で与えられる。
Figure 0007228425000002
Figure 0007228425000003
Figure 0007228425000004
これら式(2)乃至式(4)において、「N」は、例えば、イジングスピンの数(スピン数)に対応する。「D」は、例えば、特許文献1に記載の「離調」に対応するパラメータである。「c」は定数である。「p」は、例えば、特許文献1に記載の「ポンプ振幅(ポンプレート)」に対応するパラメータである。「K」は、例えば、特許文献1に記載の「カー係数」に対応するパラメータである。上記式(2)乃至式(4)で表される運動方程式において、第2パラメータ「h」は設けられなくてもよい。その場合は、上記式(3)および式(4)の中の「h」を含む項は無視される。
上記式(2)乃至式(4)において、p(t)をゼロから十分大きな値へ増加させたときの「x」の最終値(最後に更新された値)の符号「±1」が、最適解(基底状態)のイジングスピン「s」となる。「a(t)」は、「p(t)」とともに増加するパラメータである。「a(t)」は、例えば、下記式(5)により表される。
Figure 0007228425000005
上記の古典分岐マシンは、上記式(2)乃至式(4)において、「H」をハミルトニアンとしたハミルトン力学系であると見なすことができる。
計算機によるシミュレーションでイジング問題を解く方法としては、シミュレーテッド・アニーリングが広く知られている。この方法では、逐次更新アルゴリズムが採用される。逐次更新アルゴリズムにおいては、複数のスピンが1つずつ更新される。このような逐次更新アルゴリズムは、並列計算に向かない。
これに対して、上記の古典分岐マシンの運動方程式をデジタル計算機で離散解法によって解くことが考えられる。このアルゴリズムは、シミュレーテッド・アニーリングとは異なり、並列更新アルゴリズムである。並列更新アルゴリズムにおいては、複数の変数を同時に更新することができる。このため、並列計算による高速化が期待できる。
上記式(2)乃至式(4)を用いるアプローチには、以下の課題があると考えられる。すなわち、最も計算量が大きい行列Ji,jに関する積和計算が、第1変数xの更新と第2変数yの更新の双方において必要となる。上記の運動方程式は、数値的に容易には解けないため、例えば、計算量が大きい離散解法(例えば4次のルンゲ・クッタ法など)が必要となる。このため、並列計算を導入しても十分な高速化が図れない懸念がある。
そこで、本実施形態においては、上記式(2)乃至式(4)で表される運動方程式ではなく、例えば、下記式(6)乃至式(8)で表される新規な運動方程式を解く。
Figure 0007228425000006
Figure 0007228425000007
Figure 0007228425000008
これら式(6)乃至式(8)において、「N」は、例えば、イジングスピンの数(スピン数)に対応する。「D」は、例えば、特許文献1に記載の「離調」に対応するパラメータである。「c」は定数である。「p」は、例えば、特許文献1に記載の「ポンプ振幅(ポンプレート)」に対応するパラメータ(演算パラメータ)である。「K」は、例えば、特許文献1に記載の「カー係数」に対応するパラメータである。これらのパラメータは、例えば、図3のステップS1において設定される。1つの例において、「K」は1に設定される。上記式(6)乃至式(8)で表される運動方程式において、第2パラメータ「h」は設けられなくてもよい。その場合は、上記式(7)および式(8)の中の「h」を含む項は無視される。
上記式(6)乃至式(8)で表される新規な運動方程式を用いる場合、最も計算量が大きい行列Ji,jに関する積和演算は、第2変数yの更新においてのみ行われ、第1変数xの更新では行われない。したがって、計算量が削減される。この新規な運動方程式では、第1変数xの時間微分から「p」が消去されている。この新規な運動方程式において、第1変数xの時間微分は、第2変数yを含み、第1変数xを含まない。また、第2変数yの時間微分は、第1変数xを含み、第2変数yを含まない。ハミルトニアンにおいて、第1変数xおよび第2変数yは、互いに分離されている。このため、計算量が小さく安定な離散解法が適用可能となる。例えば、シンプレクティック・オイラー法と呼ばれる方法が適用できる。
イジング問題を解くアプローチとして新規な運動方程式を用いた場合に、高い性能(例えば、高い精度)が維持できることが分かった。本実施形態に係る計算装置100では、上記の分離可能なハミルトニアンを持つハミルトン力学系(新しい古典分岐マシン)の新規な運動方程式が、例えば、シンプレクティック・オイラー法で解かれる。本実施形態に係る計算装置100は、このような新しいアルゴリズムの計算が並列計算によって、できる限り高速に実行されるように構成される。
実施形態においては、図3のステップS3において、処理部20が第1変数更新および第2変数更新を含む処理手順を繰り返すことで上述の新規な運動方程式の時間発展を計算し、イジングモデルの基底状態を求める。例えば、「p(t)」をゼロから十分大きな値へ増加させたときの第1変数xの最終値の符号「±1」が、基底状態のイジングスピンsとなる。以下では、図3のステップS3における処理の詳細について説明する。
図4は、処理部20による処理の一例を示すフローチャートである。この図4のフローチャートで示す処理は、図3のステップS3においてサブルーチンとして実行される。
このサブルーチンが開始されると、処理部20は、まず、時刻「t」と演算パラメータ「p」および「a」を初期化する(ステップS101)。1つの例において、時刻「t」と演算パラメータ「p」および「a」は、0に初期化される。なお、「T」は、時刻「t」の最終値に対応する。「dt」は、時刻「t」の1ステップ当たりの増加量である。「dp」は、演算パラメータ「p」の1ステップ当たりの増加量である。これら「T」、「dt」、「dp」は、例えば、図3のステップS1において設定されるパラメータに含まれる。
処理部20は、「t」が「T」よりも小さいときに、以下に説明する第1変数更新および第2変数更新を含む処理手順を実施する(ステップS102)。すなわち、第1変数更新および第2変数更新を含む処理手順は、「t」が「T」以上という終了条件を満たすまで繰り返されるループ処理の1ステップとして実施される。なお、「p」が予め適切に設定された「P」以上であることを終了条件とし、「p」が「P」よりも小さいときに、第1変数更新および第2変数更新を含む処理手順を実施するようにしてもよい。
ループ処理の1ステップとして実施される処理手順において、処理部20は、例えば、まず、第1変数更新を行う(ステップS110)。第1変数更新では、N個のイジングスピンsに対応するN個の第1変数xの更新が行われる。例えば、更新前の第1変数xに、dt*D*yを加えて得られる値を、更新後の第1変数xとする。ここで、「*」は、積の記号である。
次に、処理部20は、第2変数更新を行う(ステップS120)。第2変数更新では、N個の第1変数xに対応するN個の第2変数yの更新が行われる。第2変数更新は、第1サブ更新(ステップS121)と第2サブ更新(ステップS122)とを含む。第1サブ更新と第2サブ更新の順番は、入れ替えが可能である。第1サブ更新の少なくとも一部と第2サブ更新の少なくとも一部とが同時に行われてもよい。
第1サブ更新では、例えば、更新前の第2変数yに、dt*[(p-D-x*x)*x-c*h*a]を加えて得られる値を、更新後の第2変数yとする。
第2サブ更新では、例えば、更新前の第2変数yに、dt*c*Σ(Ji,j*x)を加えて得られる値を更新後の第2変数yとする。「Σ」は、行列Jに関する和を表す。例えば、「dt*c*J」を行列Jとしてもよい。この場合、「dt*c*」の演算を実際に行わなくてもよい。
第1変数更新および第2変数更新が終了すると、処理部20は、更新後の第1変数xおよび第2変数yの値を出力する(ステップS130)。これら更新後の第1変数xおよび第2変数yの値は、表示制御部30が後述のモニタリング画像を生成して表示装置110に表示させるために利用される。
次に、処理部20は、時刻「t」と演算パラメータ「p」および「a」を更新する(ステップS140)。例えば、更新前の「t」に「dt」を加えて得られる値を、更新後の「t」とする。また、更新前の「p」に「dp」を加えて得られる値を、更新後の「p」とする。また、「p1/2」を、更新後の「a」とする。本実施形態では、「p」の更新において、任意の増加関数を用いた線形増加が適用される。
そして、更新後の「t」が「T」よりも小さければ、ステップS102に戻って以降の処理手順を繰り返す(ステップS103)。その後、更新後の「t」が「T」以上になると、ループ処理を終了して図3のステップS4に進む。なお、更新後の「p」が予め適切に設定された「P」よりも小さければステップS102に戻り、更新後の「p」が「P」以上になると、ループ処理を終了して図3のステップS4に進むようにしてもよい。
なお、以上の説明では、ループ処理の各ステップにおいて、第1変数xおよび第2変数yの更新が、第1変数更新(ステップS110)、第2変数更新の第1サブ更新(ステップS121)、第2変数更新の第2サブ更新(ステップS122)の順番で行われるものとしたが、これらの処理の順番は任意に変更することができる。例えば、ループ処理の少なくとも一部のステップにおいて、第1変数xおよび第2変数yの更新を、図5に示すように、第2変数更新の第1サブ更新(ステップS121)、第2変数更新の第2サブ更新(ステップS122)、第1変数更新(ステップS110)の順番で行うようにしてもよい。
また、ループ処理の少なくとも一部のステップにおいて、第1変数xおよび第2変数yの更新を、図6に示すように、第2変数更新の第1サブ更新(ステップS121)、第1変数更新(ステップS110)、第2変数更新の第2サブ更新(ステップS122)の順番で行うようにしてもよい。また、ループ処理の少なくとも一部のステップにおいて、第1変数xおよび第2変数yの更新を、図7に示すように、第2変数更新の第2サブ更新(ステップS122)、第1変数更新(ステップS110)、第2変数更新の第1サブ更新(ステップS121)の順番で行うようにしてもよい。
本実施形態に係る計算装置100で実行されるアルゴリズムは、例えば、以下を含む。すなわち、行列Ji,jを取得、または、計算により定める。このとき、ベクトルhをさらに取得、または、計算により定めるようにしてもよい。行列Ji,jおよびベクトルhは、イジングモデルにおけるパラメータである。2種類の変数(第1変数群{x}および第2変数群{y})を用いる。一方の変数の更新には、他方の変数の値を用いる。一方の変数の更新において、その一方の変数の値を用いない。一方の変数の更新の後に、更新後のその一方の変数の値を用いて、他方を更新する。
すなわち、第1変数群{x}を構成する各第1変数xの更新(第1変数更新)は、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含む。また、第2変数群{y}を構成する各第2変数yの更新(第2変数更新)は、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含む。第1関数は、第1変数群{x}から独立している。第1変数群{x}の値を変更しても、第1関数の結果の値は変化しない。第2関数は、第2変数群{y}から独立している。第2変数群{y}の値を変更しても、第2関数の結果の値は変化しない。第3関数は、第2変数群{y}から独立している。第2変数群{y}の値を変更しても、第3関数の結果の値は変化しない。
第1関数は、例えば、dt*D*yである(図4参照)。第2関数は、例えば、dt*[(p-D-x*x)*x-c*h*a]である(図4参照)。第3関数は、例えば、dt*c*Σ(Ji,j*x)である(図4参照)。第1関数の変数は、第2変数yを含む。第2関数の変数は、第1変数xを含む。第3関数は、行列Ji,jと第1変数xとの積和演算Σ(Ji,j*x)を含む。
第2関数は、例えば、第1変数xの非線形関数である第4関数を含む。第4関数は、演算パラメータ「p」も含む。2種類の変数の更新とともに「p」は変化する。2種類の変数の更新とともに「p」が変化すると、第4関数の実数根の数が変化する。「関数の実数根」とは、関数の値がゼロとなる変数の値(実数)のことである。第2変数更新において第4関数のみを考慮した場合、第4関数の実数根は非線形力学系の固定点(fixed point)に対応する。(ハミルトン力学系では、固定点はハミルトニアンの極値に対応する。)よって、第4関数の実数根の数が変化することは、固定点の数が変化することに対応する。これは、非線形力学系の分岐現象に対応する。
本実施形態に係る計算装置100で用いるアルゴリズムでは、第1変数xおよび第2変数yの初期値が、初期の1つの安定固定点(stable fixed point)の近傍に設定される。「p」を変化させることで分岐(bifurcation)を起こす。分岐後の複数の安定な固定点(変数の値はこの複数の安定固定点のうちの1つの近傍へと変化する)と、解きたい組合せ最適化問題の離散変数とを対応させる。これにより、分岐現象によって、その組合せ最適化問題を解く。例えば、上記の例では、分岐後の安定固定点における各第1変数xの値が、正負の2値であり、その符号と、イジングスピン(イジング問題の離散変数)とが対応付けられている。初期の安定固定点が原点であるため、各第1変数xと各第2変数yの初期値を原点の近傍(つまり、絶対値が0.1以下の小さな乱数)の値に設定する。
第4関数は、例えば、dt*(p-D’-x*x)*xである。「D’」は、0≦D’≦Dを満たす適切な定数である。初期時刻ではp=0であり、第4関数の根はx=0の1つだけであるが、pがD’よりも大きくなると、根は3つとなり、そのうちの正負2つの根が、イジングスピンと対応付けられる。なお、第2関数dt*[(p-D-x*x)*x-c*h*a]は、dt*(p-D’-x*x)*x+dt*[-(D-D’)*x-c*h*a]のように、第4関数と1次関数との和で表すことができる。したがって、第2関数は第4関数を含む。
上記の第4関数は、例えば、3次関数である。このような処理により、例えば、ニューラルネットワークで用いられている非線形関数(例えばシグモイド関数)を用いた計算よりも、計算が容易になる。
本実施形態に係る計算装置100においては、時間ステップ(例えば「dt」)を大きくすると、計算が高速になる。一方、時間ステップを過度に大きくすると、計算が不安定になる。このことを考慮して、計算の一部における時間ステップを大きくし、計算の別の一部では、時間ステップを小さくてもよい。例えば、計算量の大きい、行列Ji,jと第1変数xとの積和演算を含む第2変数更新の第2サブ更新(ステップS122)には大きい時間ステップを適用し、その他の第1変数更新(ステップS110)および第2変数更新の第1サブ更新(ステップS121)には小さい時間ステップを適用するようにしてもよい。これにより、さらなる高速化が可能である。
このような計算を行う場合の処理部20による処理の一例を図8に示す。図8に示す例では、1つのループ(ステップS102~ステップS103)の中に、小さいループ(ステップS104~ステップS105)が設けられている。ステップS104において、ループ変数「m」は、1以上M以下である。小さいループの中において、第1変数更新(ステップS110)および第2変数更新の第1サブ更新(ステップS121)がM回繰り返される。これら第1変数更新(ステップS110)および第2変数更新の第1サブ更新(ステップS121)をM回繰り返した後、ステップS122に進んで第2変数更新の第2サブ更新が行われる。
なお、小さいループ中における第1変数更新(ステップS110)と第2変数更新の第1サブ更新(ステップS121)の順序は入れ替えが可能である。第1変数更新(ステップS110)と第2変数更新の第1サブ更新(ステップS121)の順序を入れ替えた例を図9に示す。
なお、図8および図9の例では、第1変数更新(ステップS110)および第2変数更新の第1サブ更新(ステップS121)をM回繰り返した後に第2変数更新の第2サブ更新(ステップS122)を行うようにしているが、図10および図11に示すように、第2変数更新の第2サブ更新(ステップS122)を行った後に、第1変数更新(ステップS110)および第2変数更新の第1サブ更新(ステップS121)をM回繰り返すようにしてもよい。
本実施形態に係る計算装置100おいて、処理部20は、主記憶装置103などのメモリに保持されたデータを読み出し、データを更新し、更新されたデータをメモリに保持させる。例えば、上述の第1変数更新(ステップS110)において、処理部20は、更新前の第1変数xと第2変数yをメモリから取得し、第2変数yを用いて第1関数を計算し、得られた値を更新前の第1変数xに加えることにより第1変数xを更新し、更新された第1変数xをメモリに保持させる。
また、上述の第2変数更新の第1サブ更新(ステップS121)において、処理部20は、更新前の第2変数yと第1変数xをメモリから取得し、第1変数xを用いて第2関数を計算し、得られた値を更新前の第2変数yに加えることにより第2変数yを更新し、更新された第2変数yをメモリに保持させる。また、上述の第2変数更新の第2サブ更新(ステップS122)において、処理部20は、更新前の第2変数yと行列Ji,jと第1変数xをメモリから取得し、行列Ji,jと第1変数xを用いて第3関数を計算し、得られた値を更新前の第2変数yに加えることにより第2変数yを更新し、更新された第2変数yをメモリに保持させる。
実施形態において、例えば、行列Ji,jが疎行列の場合、疎行列の圧縮形式を用いてもよい。疎行列の圧縮形式には、例えば、COO(coordinate)形式またはCSR(compressed sparse row)形式などが適用できる。疎行列の圧縮形式を用いることで、例えば、メモリサイズを節約できる。疎行列の圧縮形式を用いることで、例えば、行列Ji,jと第1変数xとの積和演算を高速に実施できる。
以下、定数「c」の例について述べる。例えば、離調「D」は、行列Ji,jの最大固有値λmaxのc倍よりも大きくされる(例えば、非特許文献2参照)。「D」が大きすぎると、無駄な計算時間が生じる。このため、例えば、「D」がλmaxのc倍と実質的に等しいように設定する。この場合、c=D/λmaxとなる。一方、1つの例において、行列Ji,jは、実対称行列である。この場合に、行列Ji,jのサイズが十分大きい場合、λmaxは、2σ×N1/2と実質的に同じになる。この関係は、ランダム行列のウィグナーの半円則に基づく。「σ」は、行列Jの非対角成分の標準偏差である。この場合、c=D/(2σ×N1/2)と設定するとよい。
本実施形態において、精度を向上させる方法として、上記式(7)の非線形関数として用いられる関数を変更することが考えられる。例えば、上記式(7)の代わりに下記式(9)を用いてもよい。
Figure 0007228425000009
この式(9)において、「n」は、2以上の偶数である。このような関数を用いることで、例えば、イジング問題の解の精度を向上することができる。
次に、本実施形態に係る計算装置100によるモニタリング画像の表示制御について説明する。モニタリング画像は、処理部20が上述の新規な運動方程式の時間発展を計算するために処理手順を繰り返している間の第1変数xおよび第2変数yの時間変化を可視化した画像である。モニタリング画像は、上述のループ処理の1ステップごとに処理部20が出力する第1変数xおよび第2変数yの値に基づいて、表示制御部30により生成され、表示装置110に表示される。
表示制御部30は、例えば、上述のループ処理の1ステップごとに処理部20が出力する第1変数xおよび第2変数yの値を、予め定めたステップ数m分蓄積する。そして、蓄積した各ステップにおける第1変数xおよび第2変数yの値により表される座標点(x,y)を2次元座標上にプロットすることによりモニタリング画像を生成し、このモニタリング画像を表示装置110に表示させる。この際、モニタリング画像上の座標点(x,y)をiの値に応じてN種類に色分けして表示させることが望ましい。
このモニタリング画像では、2次元座標上における座標点(x,y)のステップごとの位置変化を軌跡として表すことができ、上述の新規な運動方程式の時間発展に伴う第1変数xおよび第2変数yの時間変化を視覚的に分かり易く表示することができる。ここで、色分けしない場合であっても、それぞれのiについて過去に蓄積されたm個の点を表示して、それらのm個の点の集合を軌跡で描くようにする、または、それらm個の点を順に線分で繋いで軌跡として表す、という方法を採ることができる。なお、モニタリング画像の表示中、処理部20が新たに出力する第1変数xおよび第2変数yの値は随時蓄積され、予め定めたステップ数分蓄積されると新たにモニタリング画像が生成され、表示装置110が表示するモニタリング画像が更新される。モニタリング画像の更新単位となるステップ数は、上述の新規な運動方程式の時間発展の初期で第1変数xが未分岐の状態と、上述の新規な運動方程式の時間発展が進んで第1変数xが分岐していることが期待される状態とが混在しないように設定するとよい。
図12乃至図14は、モニタリング画像の一例を示す図であり、i=1~4の4つの座標点(x,y)を各ステップごとに2次元座標上にプロットしたモニタリング画像を示している。図12に示すモニタリング画像は、上述の新規な運動方程式の時間発展の初期状態に対応し、4つの座標点(x,y)の軌跡が2次元座標の原点(0,0)付近に集中していることから、第1変数xが未分岐の状態であることが分かる。
図13に示すモニタリング画像は、上述の新規な運動方程式の時間発展が進んで、図12に示すモニタリング画像から更新されたモニタリング画像の一例である。この図13の例では、4つの座標点(x,y)の軌跡がすべて2次元座標のX軸のプラス側またはマイナス側の一定値付近にあり、上述の新規な運動方程式の時間発展が進んだことにより4つの第1変数xの値がうまく分岐していることが分かる。したがって、ユーザはこのモニタリング画像を参照することで、パラメータの設定が適切であることを確認できる。
図14に示すモニタリング画像は、上述の新規な運動方程式の時間発展が進んで、図12に示すモニタリング画像から更新されたモニタリング画像の他の例である。この図14の例では、4つの座標点(x,y)の軌跡のうちの1つが、2次元座標のX軸のプラス側とマイナス側に跨っており、第1変数xの値がうまく分岐できていないことが分かる。したがって、ユーザはこのモニタリング画像を確認することで、パラメータの設定が適切でないことを確認できる。
なお、以上で説明した例では、モニタリング画像を静止画として表示装置110に表示させることを想定し、予め定めたステップ数分の第1変数xおよび第2変数yの値が蓄積されるたびにモニタリング画像を更新するものとしたが、これに限らない。例えば、処理部20が第1変数xおよび第2変数yの値を出力するたびに座標点(x,y)を2次元座標上にプロットし、座標点(x,y)の軌跡をアニメーションとして表すモニタリング画像を表示装置110に表示させるようにしてもよい。この場合、軌跡を構成する座標点(x,y)の数に上限を設け、軌跡を構成する座標点(x,y)の数が上限に達したら、新たな座標点(x,y)が追加される際に最も古い座標点(x,y)を消去することで、座標点(x,y)の軌跡を見やすくすることが望ましい。
また、以上で説明した例では、処理部20が上述の処理手順(ループ処理)を繰り返している間に、表示制御部30がモニタリング画像を生成して表示装置110に表示させることを想定したが、これに限らない。例えば、表示制御部30は、処理部20が上述の処理手順を繰り返している間、1ステップごとに出力される第1変数xおよび第2変数yの値を蓄積しておき、上述の処理手順の繰り返しが終了した後に、蓄積した第1変数xおよび第2変数yの値に基づいて、上述のような座標点(x,y)の軌跡を静止画あるいはアニメーションとして表すモニタリング画像を表示装置110に表示させるようにしてもよい。
以上のように第1変数xおよび第2変数yの時間変化を座標点(x,y)の軌跡として表すモニタリング画像は、「N」の値、つまりスピン数が多くなると多数の軌跡が重ね合されて、視認性が低下する。そこで、表示制御部30は、第1変数xおよび第2変数yの時間変化を濃度で表すモニタリング画像を生成し、表示装置110に表示させるようにしてもよい。
例えば、表示制御部30は、上述のループ処理の1ステップごとに処理部20が出力する第1変数xおよび第2変数yの値により表される座標点(x,y)を、複数の小ブロックにブロック分割された2次元座標上にプロット(配置)する。そして、例えば図15および図16に示すように、各小ブロックをブロック内プロット数に応じた濃度で表したモニタリング画像を生成し、表示装置110に表示させる。なお、第1変数xおよび第2変数yは実数値のため、座標点(x,y)の位置がモニタリング画像として表示する2次元座標の範囲よりも外に出ることもある。この場合は、2次元座標の範囲外に出た座標点(x,y)を、例えばX軸方向の最端部に位置する小ブロックにプロットすればよい。
図15および図16に示すモニタリング画像は、「N」の値(スピン数)が1000の場合の例であり、それぞれ、(a)が上述の新規な運動方程式の時間発展の初期状態に対応し、(b)は時間発展がある程度進んだ状態に対応し、(c)は時間発展がさらに進んだ状態に対応する。
図15に示すモニタリング画像では、上述の新規な運動方程式の時間発展が進むにつれて、2次元座標のX軸のプラス側とマイナス側の一定値付近にある小ブロックの濃度が高くなっており、第1変数xの値がうまく分岐していることが分かる。したがって、ユーザはこのモニタリング画像を参照することで、パラメータの設定が適切であることを確認できる。
一方、図16に示すモニタリング画像では、上述の新規な運動方程式の時間発展が進むにつれて、2次元座標のX軸の両端部にある小ブロックの濃度が高くなっており、第1変数xの値が発散してしまっていることが分かる。したがって、ユーザはこのモニタリング画像を確認することで、パラメータの設定が適切でないことを確認できるとともに、第1変数xの値が発散しないように時間ステップ「dt」を小さくする必要があるといったように、パラメータのチューニングの方向性を判断することができる。
なお、以上で説明した例では、処理部20が出力する第1変数xおよび第2変数yの値により表される座標点(x,y)を2次元座標上にプロットすることによりモニタリング画像を生成したが、これに限らない。モニタリング画像は、処理部20が上述の新規な運動方程式の時間発展を計算するために処理手順を繰り返している間の第1変数xおよび第2変数yの時間変化を表す画像であればよく、上述の例とは異なる形態の画像であってもよい。
例えば、表示制御部30は、図17に示すように、処理部20が出力する第1変数xの少なくとも一部の値の時間変化を表す(一つの軸が時刻である)第1グラフ(図17の上段のグラフ)と、処理部20が出力する第2変数yの少なくとも一部の値の時間変化を表す(一つの軸が時刻である)第2グラフ(図17の下段のグラフ)と、の少なくともいずれかを含むモニタリング画像を表示装置110に表示させるようにしてもよい。図17に示す2つのグラフは横軸が時間軸であり、第1グラフの縦軸が第1変数xの値、第2グラフの縦軸は第2変数yの値をそれぞれ示している。図17に示す例では、時間の経過に伴って第1変数xの値がプラス側とマイナス側の一定値付近に収束していく様子が分かる。したがって、ユーザはこのモニタリング画像を参照することで、パラメータの設定が適切であることを確認できる。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係る計算装置100は、上述の新規な運動方程式の時間発展を計算することにより、イジング問題を解く構成である。新規な運動方程式は、例えばシンプレクティック・オイラー法などの計算量が小さく安定な離散解法を適用し、並列計算により高速に解くことができる。したがって、本実施形態に係る計算装置100によれば、大規模なイジング問題を高速に解くことができる。
また、本実施形態に係る計算装置100は、上述の新規な運動方程式の時間発展を計算している間の第1変数xおよび第2変数yの時間変化を表すモニタリング画像を表示装置110に表示させるようにしている。したがって、ユーザは、表示装置110に表示されているモニタリング画像を参照することにより、第1変数xの分岐が適切に行われているか否かを確認することができ、パラメータの設定が適切であるかが確認できる。また、分岐が適切でない場合に、モニタリング画像で表される第1変数xおよび第2変数yの時間変化の様子から、パラメータのチューニングの方向性を判断することができる。
本実施形態に係る計算装置100の機能的な各部(上述の設定部10、処理部20、表示制御部30)は、一例として、プログラム(ソフトウェア)をコンピュータに実行させることにより実現できる。コンピュータに上述の設定部10、処理部20、表示制御部30などの機能を実現させるためのプログラムは、例えば、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD-ROM、CD-R、CD-RW、DVD-ROM、DVD±R、DVD±RW、Blu-ray(登録商標)Discなど)、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータに適宜インストールするように構成してもよい。
コンピュータで実行されるプログラムは、例えば、本実施形態に係る計算装置100の機能的な各部(設定部10、処理部20、表示制御部30)を含むモジュール構成となっており、実際のハードウェアとしては、例えば、第1プロセッサ回路101や第2プロセッサ回路102が上記プログラムを読み出して実行することにより、上記各部が主記憶装置103上にロードされ、主記憶装置103上に生成されるようになっている。
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 設定部
20 処理部
30 表示制御部
100 計算装置
101 第1プロセッサ回路
102 第2プロセッサ回路
110 表示装置
第1変数
第2変数

Claims (8)

  1. 第1変数更新と第2変数更新とを含む処理手順を繰り返す処理部と、
    表示装置に画像を表示させる表示制御部と、を備え、
    前記第1変数更新は、N個(Nは2以上の整数)の第1変数x(iは1以上N以下の整数)の各々について、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含み、
    前記第2変数更新は、N個の第1変数xに対応するN個の第2変数yの各々について、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含み、
    前記第1関数の変数は、第2変数yを含み、
    前記第2関数の変数は、第1変数xを含み、
    前記第3関数は、行列Ji,jと第1変数x(jはiとは異なる1以上N以下の整数)との積和演算を含み、
    前記処理部は、前記処理手順を繰り返している間は更新された第1変数xおよび第2変数yの値を出力し、前記処理手順の繰り返しが終了すると、最後に更新された第1変数xの符号を出力し、
    前記表示制御部は、前記処理部が出力する第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像を前記表示装置に表示させること
    を特徴とする計算装置。
  2. 前記表示制御部は、前記処理部が出力する第1変数xおよび第2変数yの値により表される座標点(x,y)の少なくとも一部を2次元座標上にプロットした前記モニタリング画像を前記表示装置に表示させること
    を特徴とする請求項1に記載の計算装置。
  3. 前記表示制御部は、前記処理部が出力する第1変数xおよび第2変数yの値により表される座標点(x,y)を、複数の小ブロックにブロック分割された2次元座標上にプロットし、各小ブロックをブロック内プロット数に応じた濃度で表した前記モニタリング画像を前記表示装置に表示させること
    を特徴とする請求項1に記載の計算装置。
  4. 前記表示制御部は、前記プロットされた前記座標点の集合を軌跡として表すこと
    を特徴とする請求項2または3に記載の計算装置。
  5. 前記表示制御部は、前記プロットされた前記座標点の間を線分で繋いで軌跡として表すこと
    を特徴とする請求項4に記載の計算装置。
  6. 前記表示制御部は、前記処理部が出力する第1変数xの少なくとも一部の値の時間変化を表す第1グラフと前記処理部が出力する第2変数yの少なくとも一部の値の時間変化を表す第2グラフと、の少なくともいずれかを含む前記モニタリング画像を前記表示装置に表示させること
    を特徴とする請求項1に記載の計算装置。
  7. 計算装置に接続される表示装置であって、
    前記計算装置は、
    第1変数更新と第2変数更新とを含む処理手順を繰り返し、
    前記第1変数更新は、N個(Nは2以上の整数)の第1変数x(iは1以上N以下の整数)の各々について、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含み、
    前記第2変数更新は、N個の第1変数xに対応するN個の第2変数yの各々について、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含み、
    前記第1関数の変数は、第2変数yを含み、
    前記第2関数の変数は、第1変数xを含み、
    前記第3関数は、行列Ji,jと第1変数x(jはiとは異なる1以上N以下の整数)との積和演算を含み、
    前記処理手順を繰り返している間は更新された第1変数xおよび第2変数yの値を出力し、前記処理手順の繰り返しが終了すると、最後に更新された第1変数xの符号を出力し、
    前記計算装置が出力する第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像を表示すること
    を特徴とする表示装置。
  8. コンピュータに、
    第1変数更新と第2変数更新とを含む処理手順を繰り返す処理部の機能と、
    表示装置に画像を表示させる表示制御部の機能と、を実現させるためのプログラムであって、
    前記第1変数更新は、N個(Nは2以上の整数)の第1変数x(iは1以上N以下の整数)の各々について、更新前の第1変数xに第1関数より求まる値を加えて第1変数xを更新することを含み、
    前記第2変数更新は、N個の第1変数xに対応するN個の第2変数yの各々について、更新前の第2変数yに第2関数より求まる値および第3関数より求まる値を加えて第2変数yを更新することを含み、
    前記第1関数の変数は、第2変数yを含み、
    前記第2関数の変数は、第1変数xを含み、
    前記第3関数は、行列Ji,jと第1変数x(jはiとは異なる1以上N以下の整数)との積和演算を含み、
    前記処理部は、前記処理手順を繰り返している間は更新された第1変数xおよび第2変数yの値を出力し、前記処理手順の繰り返しが終了すると、最後に更新された第1変数xの符号を出力し、
    前記表示制御部は、前記処理部が出力する第1変数xおよび第2変数yの値に基づいて、第1変数xおよび第2変数yの少なくとも一部の時間変化を表すモニタリング画像を前記表示装置に表示させること
    を特徴とするプログラム。
JP2019050992A 2019-03-19 2019-03-19 計算装置、表示装置およびプログラム Active JP7228425B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019050992A JP7228425B2 (ja) 2019-03-19 2019-03-19 計算装置、表示装置およびプログラム
PCT/JP2020/009498 WO2020189315A1 (ja) 2019-03-19 2020-03-05 計算装置、表示装置およびプログラム
CA3133795A CA3133795C (en) 2019-03-19 2020-03-05 Calculation device, display device, and program
US17/476,181 US20220019714A1 (en) 2019-03-19 2021-09-15 Calculation device, display device, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019050992A JP7228425B2 (ja) 2019-03-19 2019-03-19 計算装置、表示装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2020154524A JP2020154524A (ja) 2020-09-24
JP7228425B2 true JP7228425B2 (ja) 2023-02-24

Family

ID=72520877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019050992A Active JP7228425B2 (ja) 2019-03-19 2019-03-19 計算装置、表示装置およびプログラム

Country Status (4)

Country Link
US (1) US20220019714A1 (ja)
JP (1) JP7228425B2 (ja)
CA (1) CA3133795C (ja)
WO (1) WO2020189315A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183172A1 (ja) 2016-04-22 2017-10-26 株式会社日立製作所 計算機及び計算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6530326B2 (ja) * 2015-10-07 2019-06-12 株式会社東芝 量子計算装置、及び、方法
JP2018067200A (ja) * 2016-10-20 2018-04-26 国立大学法人京都大学 シミュレーション装置、コンピュータプログラム及びシミュレーション方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183172A1 (ja) 2016-04-22 2017-10-26 株式会社日立製作所 計算機及び計算方法

Also Published As

Publication number Publication date
JP2020154524A (ja) 2020-09-24
WO2020189315A1 (ja) 2020-09-24
CA3133795C (en) 2024-01-02
US20220019714A1 (en) 2022-01-20
CA3133795A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
JP6836529B2 (ja) 計算装置、計算プログラム、記録媒体及び計算方法
JP7133894B2 (ja) データに基づくインタラクティブ3dエクスペリエンス
CN112074806A (zh) 使用减小的位宽向量的块浮点计算
KR20210158436A (ko) 콘볼루셔널 뉴럴 네트워크들에 대한 슈퍼픽셀 방법들
US11182157B2 (en) Information processing device, arithmetic device, and information processing method
EP3038060B1 (en) 3D modeled object defined by a grid of control points
JP6901448B2 (ja) 計算装置、計算プログラム、記録媒体及び計算方法
US20220318591A1 (en) Inference method and information processing apparatus
US10534874B2 (en) Particle etching or depositing evolutionary simulation method and device and computer readable medium
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JP6895415B2 (ja) 計算装置、計算プログラム、記録媒体及び計算方法
JP7228425B2 (ja) 計算装置、表示装置およびプログラム
US11670403B2 (en) Method and apparatus for generating chemical structure using neural network
CN114819163B (zh) 量子生成对抗网络的训练方法、装置、介质及电子装置
JP2023009904A (ja) プログラム、推論方法および情報処理装置
JP7137648B2 (ja) 計算装置、計算プログラム、記録媒体及び計算方法
JP2021117911A (ja) 計算システム、計算方法、およびコンピュータプログラム
JP6633267B2 (ja) 次元削減装置、方法及びプログラム
US11741187B2 (en) Calculation device, calculation method, and computer program product
JP7357795B2 (ja) 情報処理方法および情報処理システム
US20220343202A1 (en) Arithmetic circuit, arithmetic device, information processing apparatus, and method for searching for ground state of ising model
JP2024049148A (ja) 情報処理方法、及び情報処理装置
JP2023117959A (ja) 情報処理装置、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230213

R150 Certificate of patent or registration of utility model

Ref document number: 7228425

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150