JP2022136877A - 最適化装置、最適化プログラムおよび最適化方法 - Google Patents

最適化装置、最適化プログラムおよび最適化方法 Download PDF

Info

Publication number
JP2022136877A
JP2022136877A JP2021036691A JP2021036691A JP2022136877A JP 2022136877 A JP2022136877 A JP 2022136877A JP 2021036691 A JP2021036691 A JP 2021036691A JP 2021036691 A JP2021036691 A JP 2021036691A JP 2022136877 A JP2022136877 A JP 2022136877A
Authority
JP
Japan
Prior art keywords
bit
optimization
memory
inversion
bits
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.)
Pending
Application number
JP2021036691A
Other languages
English (en)
Inventor
眞喜子 此島
Makiko Konoshima
泰孝 田村
Yasutaka Tamura
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021036691A priority Critical patent/JP2022136877A/ja
Priority to EP21211636.2A priority patent/EP4057132A1/en
Priority to US17/543,774 priority patent/US20220283733A1/en
Priority to CN202111583244.3A priority patent/CN115048756A/zh
Publication of JP2022136877A publication Critical patent/JP2022136877A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】最適化演算時のデータ転送量を抑える。【解決手段】実施形態の最適化装置は、複数のビットを含むエネルギー関数における複数のビットの各々の値の反転に伴うエネルギー関数の値の差分によりビット反転の採否を選択して最適化を行う最適化装置であって、メモリと、メモリに接続された演算部とを有する。演算部は、エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、補助変数に対応する結合係数とを用いて実行する。演算部は、計算の実行において、エネルギー関数に含まれる複数のビットに対応する複数の変数の相互作用を表す結合係数を格納するメモリより、補助変数に対応する結合係数を読み出す。【選択図】図1

Description

本発明の実施形態は、最適化装置、最適化プログラムおよび最適化方法に関する。
現在の社会ではあらゆる分野で情報処理が行われている。これらの情報処理はコンピュータ等の演算装置で行われており、様々なデータを演算、加工し、意味のある結果を得ることにより、予測、決定、制御等が行われる。これらの情報処理の1つとして最適化処理があり重要な分野となっている。
最適化処理の一つに離散最適化問題を解くものがある。離散最適化問題では、大規模で多変数になると、組み合わせ数が爆発的に増加し、全組み合わせを総当りで計算して求める手法では計算時間が現実的な域で収まらなくなる場合がある。
このような大規模な多変数の離散最適化問題を解く方法としては、例えばイジング型のエネルギー関数を用いたシミュレーテッド・アニーリング(疑似焼き鈍し法(SA))がある。このSAでは、計算対象の問題を磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算を行う。
イジングモデルを用いた最適化計算では、ビットを確率的に反転させてビットを1つ反転した場合のエネルギー変化を計算し、エネルギー変化に応じてビット反転を受け入れるか否かを採択することで、エネルギーを最小化する最適解を探索する。
特開2019-145010号公報 特開2019-46038号公報 国際公開第2015/190593号 米国特許出願公開第2019/0087388号明細書
しかしながら、上記の従来技術では、3次以上の高次項を含むエネルギー関数E(x)の最小値を探索する場合、メモリから計算資源へ転送するパラメータの要素数が膨大なものとなるという問題がある。
例えば、kを次数として、全ての次数に関するエネルギー関数E(x)を式で記述した一例は、k次の結合係数をk次の配列W1,2,…,kとして次の式(1)のとおりである。結合係数は、複数の変数の各々を磁性体の複数のスピンの各々に見立てたイジングモデルにおける、複数のスピンの各々の相互結合の強さを表している。
Figure 2022136877000002
…jは、各次数における要素の位置、xはバイナリ(0,1)またはスピン(1,-1)である。Wは、次数ごとに異なる配列であり、一般に多次元配列となる。
式(1)について、次の式(2)のように書き換える。ZKはk次の項の結合係数であり、K次元配列となる。
Figure 2022136877000003
ここで、xのi番目の要素の反転に伴うK次の項のエネルギーの変化分ΔEK(x,i)の計算式である式(3)と、全体の計算式である式(4)とは次のとおりとなる。なお、変化分なので、E0は消滅する。
Figure 2022136877000004
Figure 2022136877000005
例えば、3次の項では、xj1j2j3に対して1ビット反転したx’j1x’j2x’j3を計算する。このため、反転した箇所をm、ビット差分をΔxとすると、3次の項は、Zm,j2,j3Δxj2j3、Zj1,m,j3j1Δxj3、Zj1,j2,mj1j2Δxを計算し、足し合わせたものとなる。
つまり、計算を行うためのメモリアクセスの量は、Zの超平面を次数の数だけ必要とする。4次以上でも同様である。K×N^(K-1)個の要素の値をメモリから計算資源に転送することとなる。
図7は、最小解探索にかかる従来の構成例を示すブロック図である。図7に示すように、演算処理部201は、メモリ202より計算に用いるパラメータである結合係数(ZK)を読み出し、ある次数Kの項のxのi番目のビットxを変化させた状態でエネルギーの差分を計算する。j1~jkは、それぞれ1~Nまでの値を取りうる。
演算処理部201は、読み込み部203、演算部204~206および加算部207を有する。演算処理部201は、ビットを反転する位置(i)を確定し、反転前と反転後のxの差分値Δxを含むベクトル(x)を入力し、メモリ202に保存されているK次の結合係数ZKから所定の部分を読み出してその項のエネルギーの差分ΔEkを出力する。
読み込み部203は、多次元配列Zのある次元について、ビットを反転するxの位置(i)を固定した超平面を、各次元について選択しメモリ202より読み出してK個用意する。このメモリ202からの読み込みが、計算資源である演算処理部201への転送負荷の発生箇所である。
演算部204~206および加算部207は、読み込み部203から出力された超平面ごとに積和の計算を行う。例えば、K=3であれば、演算部204での演算は次のとおりとなる。
Figure 2022136877000006
加算部207は、演算部204~206の計算結果を足し合わせてΔEkを出力する。
図8は、最小解探索にかかる従来の動作例を説明する説明図である。図8において、Eの初期値は、式(2)に従って予め計算しておくものとする。この初期値は、最初の1回なので転送量に含めないものとする。
図8に示すように、演算処理部201a~201cは、図7の演算処理部201に相当し、次数がK、3、2の場合の演算を行う。乗算部208は、1次の場合において、変化させた位置(i)のUの値(U)と、Δxとの乗算を行う。
演算処理部201a~201cおよび乗算部208での演算の後、加算部209は、それぞれの結果を足し合わせてΔE(x,i)を作成する。採否判定部210は、ΔE(x,i)をもとに、公知のメトロポリス基準などで変化させたビットの採否を判定する。採否判定部210は、採用する場合は現在のエネルギーEに対してEnext=E+ΔE(x,i)とし、不採用の場合はEnext=Eとする。
図9は、超平面をメモリから読み出す一例を説明する説明図である。
図9の例では、3次の項をピックアップしている。図9に示すように、ビット反転によりエネルギーの差分を計算資源(演算処理部201など)で計算するためには、次数個の超平面をメモリ(メモリ202など)から読み出すこととなる。
例えば、次数K=3、ビット数Nであれば、3N個の要素数をメモリから計算資源へ転送することとなる。このため、高次項を含むエネルギー関数E(x)の最小値を探索する場合は、転送量が大きくなり、転送時間がかかる場合がある。次数が4次以上であり、Nがより大きい場合は、更に転送量が大きくなり、転送時間が増加する。
1つの側面では、最適化演算時のデータ転送量を抑えることができる最適化装置、最適化プログラムおよび最適化方法を提供することを目的とする。
1つの案では、複数のビットを含むエネルギー関数における複数のビットの各々の値の反転に伴うエネルギー関数の値の差分によりビット反転の採否を選択して最適化を行う最適化装置であって、メモリと、メモリに接続された演算部とを有する。演算部は、エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、補助変数に対応する結合係数とを用いて実行する。演算部は、計算の実行において、エネルギー関数に含まれる複数のビットに対応する複数の変数の相互作用を表す結合係数を格納するメモリより、補助変数に対応する結合係数を読み出す。
最適化演算時のデータ転送量を抑えることができる。
図1は、実施形態にかかる情報処理装置の構成例を示すブロック図である。 図2は、最小解探索部の構成例を示すブロック図である。 図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。 図4は、パラメータの一例を説明する説明図である。 図5は、タイムチャートの比較例を説明する説明図である。 図6は、結合係数の一回あたりの転送量を説明する説明図である。 図7は、最小解探索にかかる従来の構成例を示すブロック図である。 図8は、最小解探索にかかる従来の動作例を説明する説明図である。 図9は、超平面をメモリから読み出す一例を説明する説明図である。
以下、図面を参照して、実施形態にかかる最適化装置、最適化プログラムおよび最適化方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する最適化装置、最適化プログラムおよび最適化方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
実施形態では、最適化装置の一例として各種の演算処理を行う情報処理装置を例示する。この情報処理装置では、演算処理の一つとして、イジング型のエネルギー関数を用いたシミュレーテッド・アニーリングにおいて、ビット反転に伴うエネルギー関数の差分によりビット反転の採否を選択して最適化を行う。具体的には、情報処理装置は、1から複数のビットを確率的に反転させてビットを反転した場合のエネルギー変化を計算し、エネルギー変化に応じてビット反転を受け入れるか否かを採択することで、エネルギーを最小化する最適解を探索する。なお、実施形態はイジングモデルを用いて最適化問題を解く場合に限られるものではなく、三次以上の高次項を含むモデルを用いて最適化問題を解く場合にも適用可能である。
実施形態の情報処理装置は、1から複数のビットをランダムに反転させて最適解を探索するモンテカルロ法を用いて、エネルギー関数(E)の最小エネルギーとなる状態xを求める。ここで、反転する候補となるi番目のビットの反転によるエネルギー関数(E)の反転前のエネルギーとの変化分(差分)をΔEとする。実施形態の情報処理装置は、ΔEを計算したうえで、そのΔEiをもとに、メトロポリス基準のなどによりi番目のビットにおける反転の採否を判定(選択)する。
ここで、実施形態の情報処理装置におけるΔEの計算について説明する。まず、前述した式(2)について、3次以上の項をZで括り、次の式(5)のように書き直す。
Figure 2022136877000007
ここで、ビットの反転により生じるエネルギーの差ΔEを考えると、式(5)におけるEは、定数なので不要となる。また、変数xについては、離散値であるので微分はできないが、結合しているxにおけるビットの変化による差分(一次差分)に着目し、一次差分をΔxとする。このΔxにより、1つ結合するxの変数を少なくすることで、ΔEは次の式(6)のとおりとなる。
Figure 2022136877000008
次いで、式(6)において、xから計算可能な補助ビット(補助変数とも呼ぶ)yi,mを導入する。この補助ビットyi,mは、全ての変数xの積(xj1,…xjk)から、反転する対象であるi番目のビットの変数xを除いた積とする。yはxから計算可能であるため、yの導入によりビットそのものは増加しない。補助ビットyi,mを導入すると、式(6)は、次の式(7)のように書き直せる。
Figure 2022136877000009
ここで、Zi,mを導入する。Zi,mは、yi,mに対応した結合係数である。これにより、ΔEは、次の式(8)のように表すことができる。この式(8)の演算では、gで参照するZの要素数を1次下げることができる。
Figure 2022136877000010
ビットの反転が採用される場合、エネルギーの更新については、変数xの反転により、複数の補助変数yi,mの値が変化する可能性がある。この変化分をΔyi,mとすると、エネルギーの更新は、次の式(9)のとおりとなる。
Figure 2022136877000011
実施形態の情報処理装置では、式(8)、(9)のとおり、ΔEiの計算における3次以上の項について計算する。具体的には、情報処理装置は、反転する候補となるビットに対応する変数を除いた各ビットに対応する変数の積である補助変数yi,mと、yi,mに対応する結合係数Zi,mとを用いてΔEiを計算する。このとき、情報処理装置は、エネルギー関数に関する全てのビットに対応する結合係数を格納するメモリより、補助変数に対応する結合係数Zi,mを読み出す。したがって、情報処理装置は、メモリより読み出す要素数を1次下げることができ、演算時のデータ転送量を抑えることができる。
図1は、実施形態にかかる情報処理装置の構成例を示すブロック図である。図1に示すように、情報処理装置100は、UI1、最小解探索部2および汎用CPU3(CPU:Central Processing Unit)を有し、これらの各部はバスなどで接続される。例えば、情報処理装置100としては、PC(Personal Computer)などを適用できる。
UI1は、ユーザからのデータ入力、処理結果の出力などを行うユーザインターフェース(UI)である。エネルギー関数に関する全てのビットに対応する結合係数Zや、温度など外部から与えられるパラメータは、UI1を介してユーザによって入力される。
最小解探索部2は、最適化に関する演算処理を行い、エネルギーを最小化する最適解を探索する処理部であり、メモリ10および演算処理部20を有する。汎用CPU3は、UI1や演算処理部20の処理に対するアプリケーションなどを扱う汎用CPUである。
メモリ10は、HDD(Hard Disk Drive)やRAM(Random Access Memory)などであり、UI1を介して入力された結合係数Wなどのパラメータを格納する。
演算処理部20は、式(8)、(9)のとおりにΔEiを計算し、そのΔEiをもとに、メトロポリス基準のなどによりi番目のビットにおける反転の採否を判定して最適解を探索する処理部である。演算処理部20には、ASIC(Application Specific Integrated Circuit)などの専用ハードウェア装置、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)、汎用CPUなどを適用できる。
例えば、演算処理部20は、メモリ10に記憶されたプログラムを読み出して実行することで、最適化に関する演算処理を行う。なお、演算処理部20が実行するプログラムは、メモリ10に記憶されていなくてもよい。例えば、情報処理装置100が読み取り可能な記憶媒体に記憶されたプログラムを読み出し、演算処理部20が実行してもよい。情報処理装置100が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にプログラムを記憶させておき、情報処理装置100がこれらからプログラムを読み出して実行するようにしてもよい。また、演算処理部20で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
図2は、演算処理部20の構成例を示すブロック図である。図2に示すように、演算処理部20は、演算部21、22、23、加算部24、25、26、乗算部27および採否判定部28を有する。なお、演算処理部20では、Eの初期値、h、gの初期値は式(8)に従って計算しておくものとする。図示例では、主にΔy,mを計算し、その結果に従いΔEを計算して採否を判定する演算処理部20の構成を例示している。
演算部21は、メモリ10に格納された全てのビットに対応する結合係数Zから、反転する候補となるビットに対応する次元を取り除いたZi,mを読み込み、式(8)に従い演算を行う。
演算部22は、変数xと、変化させるビットの候補のiからΔy,mを計算する。
演算部23および加算部24は、式(8)に従い、hに関する計算を行う。なお、hを更新するか否かは、採否判定部28における採否判定に従うものであり、採否判定部28において採用すると判定した場合にhが更新される。
加算部25は、演算部21の演算結果をもとに、式(8)に従ってgに関する計算を行う。なお、gを更新するか否かは、採否判定部28における採否判定に従うものであり、採否判定部28において採用すると判定した場合にgが更新される。
加算部26は、加算部24、25の演算結果を足し合わせる。乗算部27は、加算部26の演算結果に-Δxをかけ合わせる。すなわち、加算部26と、乗算部27との演算では、式(8)に従ってΔEの計算を行う。
採否判定部28は、乗算部27までの演算結果であるΔE(x,i)をもとに、メトロポリス基準により変化させたビットの採否を判定する。
図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。具体的には、図3のフローチャートでは、3次の項を持つエネルギー関数の最小解(x)を求める場合の動作の一例を示している。
図3に示すように、処理が開始されると、演算処理部20は、xの初期値x0に対して、エネルギー関数Eの初期値E(0)を、エネルギー関数に関する次の式(10)より求める(S1)。
Figure 2022136877000012
次いで、演算処理部20は、次の式(11)に従い、hの初期値h(0)を用意する(S2)。ここで、hは、Nビット(N:ビット数)のベクトルである。
Figure 2022136877000013
次いで、演算処理部20は、次の式(12)に従い、gの初期値g(0)を用意する(S3)。ここで、gは、Nビットのベクトルである。
Figure 2022136877000014
次いで、演算処理部20は、xにおいて反転する1ビット(i)をランダムに選択し、選択されたビットの反転前後の差をΔxとする(S4)。
次いで、演算処理部20は、次の式(13)に従い、Δx、h、gからΔEを計算する(S5)。
Figure 2022136877000015
次いで、演算処理部20の採否判定部28では、計算したΔEを用いてメトロポリス基準などによりビット反転の採否を判定する(S6)。例えば、メトロポリス基準の場合、採否判定部28は、一例として区間0≦rand≦1の一様乱数randを発生させる。次いで、採否判定部28は、rand>exp(ΔE×β)であればビット反転を採用するものと判定する。ここで、βは、逆温度である。
不採用の場合(S6:不採用)、演算処理部20はS10へ処理を進める。採用の場合(S6:採用)、演算処理部20は、次の式(14)に従い、エネルギーEを更新する(S7)。更新されたエネルギーE(x,t+1)は、更新前のEと、乗算部27の演算結果である式(13)のΔEを足し合わせた値である。
Figure 2022136877000016
次いで、演算処理部20は、演算部23および加算部24の演算により、次の式(15)に従い、hを更新する(S8)。
Figure 2022136877000017
次いで、演算処理部20は、演算部21、演算部22および加算部25の演算により、式(16)に従い、gを更新する(S9)。ここで、Δy,mは、Δy,m=ΔxΔxである。
Figure 2022136877000018
次いで、演算処理部20は、S4~S9の演算処理を所定の回数繰り返す、または、所定のエネルギーが得られるなどの終了条件を満たしたか否かを判定する(S10)。終了条件を満たした場合(S10:Yes)、演算処理部20は、最適化が得られたものとして処理を終了する。終了条件を満たしていない場合(S10:No)、演算処理部20は、S4へ処理を戻す。このように、演算処理部20は、所定の回数または所定のエネルギーが得られるまでビットの反転を繰り返す。
以上のように、情報処理装置100は、エネルギー関数における特定のビット(i)の反転に伴う差分の3次以上の項について、特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数(yi,m)と、補助変数に対応する結合係数(Zi,m)とを用いて計算する。そして、情報処理装置100は、この計算の際には、エネルギー関数に関する全てのビットに対応する複数の変数の相互作用を表す結合係数(Z)を格納するメモリ10より、補助変数に対応する結合係数を読み出す。これにより、情報処理装置100は、メモリ10より読み出す要素数を1次下げることができ、演算時のデータ転送量を抑えることができる。
また、情報処理装置100は、特定のビットの反転を採用する場合、特定のビットに対応する変数の反転による補助変数の変化分を計算する(S8、S9)。これにより、情報処理装置100では、特定のビットの反転を採用する場合には、ビット反転に合わせて補助変数の値を更新できる。
図4は、パラメータの一例を説明する説明図である。具体的には、図4では、パラメータZi,mについて3次の場合を例示している。図4では、Δxを括りだしているが、xが変化した際には、x,xも変化する場合がある(同じビット位置を指している場合)。したがって、図4に示すように、更新する際には、変化している箇所へのアクセスをすればよい。このため、エネルギー関数に関する全てのビットに対応する結合係数(Z)への一度のアクセスは、Nではなく、「最大で」Nとなる。
図5は、タイムチャートの比較例を説明する説明図である。図5において、ケースC1は従来の最適解探索に関する演算処理のタイムチャートであり、ケースC2は実施形態の最適解探索に関する演算処理のタイムチャートである。
図5に示すように、従来のケースC1では、ΔEの計算は結合係数(Z)について少なくとも超平面単位で転送してから処理を行う。これに対し、実施形態のケースC1では、g1(t)~gn(t)各々について独立して転送・処理が可能である。大抵の場合、ビット数>次数なので、一度に転送すべき結合係数の数は、従来のケースC1のほうが実施形態のケースC2より大きくなる。よって、データのloadに関する時間の総計はケースC2の方が短くなる。
従来の最適解探索では、1ビット反転に伴うメモリから計算資源へのデータ転送量は、1回のエネルギーの差分の計算につき、スピン数(ビット数)をN、次数をkとしてkN(k-1)となる。本実施形態の最適解探索では、1回のエネルギーの差分の計算につき、N(k-1)以下とすることができる。
図6は、結合係数の一回あたりの転送量を説明する説明図である。N、kとデータ転送量の関係は図6のグラフG1示すようになり、本実施形態の最適解探索では、従来と比較してデータ転送量を抑えることができる。また、従来の最適解探索では、kが大きくなるとデータ転送量が大きくなるが、本実施形態では、補助変数を用いる方法を再帰的に適用することで、転送する結合係数の要素数をk=3の場合と同様にすることができる。このため、本実施形態では、kが大きくなると、データ転送量を抑える効果がより高くなる。例えば、充足可能性問題(SAT)をイジングモデルに適用して最適解探索を行う場合は、kが大きくなることから、データ転送量を抑える効果がより顕著なものとなる。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化を行う最適化装置であって、
メモリと、
前記メモリに接続された演算部と
を有し、
前記演算部は、
前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
ことを特徴とする最適化装置。
(付記2)前記演算部は、前記特定のビットの反転を採用する場合、前記特定のビットに対応する変数の反転による前記補助変数の変化分を計算する、
ことを特徴とする付記1に記載の最適化装置。
(付記3)複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化する処理を、メモリと前記メモリに接続された演算部とを含むコンピュータに実行させる最適化プログラムにおいて、
前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
処理をコンピュータに実行させることを特徴とする最適化プログラム。
(付記4)前記特定のビットの反転を採用する場合、前記特定のビットに対応する変数の反転による前記補助変数の変化分を計算する、
処理をさらに前記コンピュータに実行させることを特徴とする付記3に記載の最適化プログラム。
(付記5)複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化する処理を、メモリと前記メモリに接続された演算部とを含むコンピュータが実行する最適化方法において、
前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
処理をコンピュータが実行することを特徴とする最適化方法。
(付記6)前記特定のビットの反転を採用する場合、前記特定のビットに対応する変数の反転による前記補助変数の変化分を計算する、
処理をさらに前記コンピュータが実行することを特徴とする付記5に記載の最適化方法。
1…UI
2…最小解探索部
3…汎用CPU
10、202…メモリ
20、201、201a~201c…演算処理部
21~23、204~206…演算部
24~26、207、209…加算部
27、208…乗算部
28、210…採否判定部
100…情報処理装置
203…読み込み部
C1、C2…ケース
G1…グラフ

Claims (4)

  1. 複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化を行う最適化装置であって、
    メモリと、
    前記メモリに接続された演算部と
    を有し、
    前記演算部は、
    前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
    前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
    ことを特徴とする最適化装置。
  2. 前記演算部は、前記特定のビットの反転を採用する場合、前記特定のビットに対応する変数の反転による前記補助変数の変化分を計算する、
    ことを特徴とする請求項1に記載の最適化装置。
  3. 複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化する処理を、メモリと前記メモリに接続された演算部とを含むコンピュータに実行させる最適化プログラムにおいて、
    前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
    前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
    処理をコンピュータに実行させることを特徴とする最適化プログラム。
  4. 複数のビットを含むエネルギー関数における前記複数のビットの各々の値の反転に伴う前記エネルギー関数の値の差分によりビット反転の採否を選択して最適化する処理を、メモリと前記メモリに接続された演算部とを含むコンピュータが実行する最適化方法において、
    前記エネルギー関数における特定のビットの反転に伴う差分の3次以上の項の計算を、前記特定のビットに対応する変数を除いた各ビットに対応する変数の積である補助変数と、当該補助変数に対応する結合係数とを用いて実行し、
    前記計算の実行において、前記エネルギー関数に含まれる前記複数のビットに対応する複数の変数の相互作用を表す結合係数を格納する前記メモリより、前記補助変数に対応する結合係数を読み出す、
    処理をコンピュータが実行することを特徴とする最適化方法。
JP2021036691A 2021-03-08 2021-03-08 最適化装置、最適化プログラムおよび最適化方法 Pending JP2022136877A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021036691A JP2022136877A (ja) 2021-03-08 2021-03-08 最適化装置、最適化プログラムおよび最適化方法
EP21211636.2A EP4057132A1 (en) 2021-03-08 2021-12-01 Optimization apparatus, optimization program, and optimization method
US17/543,774 US20220283733A1 (en) 2021-03-08 2021-12-07 Optimization apparatus, non-transitory computer-readable storage medium, and optimization method
CN202111583244.3A CN115048756A (zh) 2021-03-08 2021-12-22 优化设备、优化程序和优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021036691A JP2022136877A (ja) 2021-03-08 2021-03-08 最適化装置、最適化プログラムおよび最適化方法

Publications (1)

Publication Number Publication Date
JP2022136877A true JP2022136877A (ja) 2022-09-21

Family

ID=78820328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021036691A Pending JP2022136877A (ja) 2021-03-08 2021-03-08 最適化装置、最適化プログラムおよび最適化方法

Country Status (4)

Country Link
US (1) US20220283733A1 (ja)
EP (1) EP4057132A1 (ja)
JP (1) JP2022136877A (ja)
CN (1) CN115048756A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015190593A1 (ja) 2014-06-12 2017-04-20 学校法人早稲田大学 情報処理方法、情報処理装置およびそのプログラム
JP6623947B2 (ja) * 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
WO2018170027A1 (en) 2017-03-13 2018-09-20 Universities Space Research Association System and method to hardcode interger linear optimization problems on physical implementations of the ising model
JP6951155B2 (ja) 2017-08-31 2021-10-20 株式会社デンソー 評価関数変換装置及びプログラム
JP6836529B2 (ja) 2018-02-23 2021-03-03 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP7319539B2 (ja) * 2019-08-26 2023-08-02 富士通株式会社 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム

Also Published As

Publication number Publication date
US20220283733A1 (en) 2022-09-08
CN115048756A (zh) 2022-09-13
EP4057132A1 (en) 2022-09-14

Similar Documents

Publication Publication Date Title
US20210173623A1 (en) Systems and methods for stencil amplification
Haener et al. Quantum circuits for floating-point arithmetic
US10713565B2 (en) Iterative feature selection methods
JP6212217B2 (ja) 機械学習における重みの生成
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7323777B2 (ja) 最適化装置および最適化方法
Sekanina et al. Automated search-based functional approximation for digital circuits
Li et al. An alternative adaptive differential evolutionary algorithm assisted by expected improvement criterion and cut-HDMR expansion and its application in time-based sheet forming design
WO2022097230A1 (ja) 予測方法、予測装置及びプログラム
Gupta et al. Unbiased estimation of parameter sensitivities for stochastic chemical reaction networks
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
US20160292064A1 (en) Iterative test generation based on data source analysis
Jerez et al. A low complexity scaling method for the lanczos kernel in fixed-point arithmetic
US11551087B2 (en) Information processor, information processing method, and storage medium
Lin et al. Parallel construction of explicit boundaries using support vector machines
JP2022136877A (ja) 最適化装置、最適化プログラムおよび最適化方法
Regis Large-scale discrete constrained black-box optimization using radial basis functions
TW202333041A (zh) 執行浮點運算的系統及方法
Han et al. Estimation of sparse directed acyclic graphs for multivariate counts data
JP2020067897A (ja) 演算処理装置、学習プログラム及び学習方法
JP2020027547A (ja) テンソルデータ計算装置、テンソルデータ計算方法及びプログラム
Mrazek Optimization of BDD-based approximation error metrics calculations
JP7450220B2 (ja) 量子計算機、プログラム、量子計算方法及び量子回路
Zadiraka et al. Calculating the Sum of Multidigit Values in a Parallel Computational Model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231109