JP7053995B2 - 最適化装置及び最適化装置の制御方法 - Google Patents

最適化装置及び最適化装置の制御方法 Download PDF

Info

Publication number
JP7053995B2
JP7053995B2 JP2018078524A JP2018078524A JP7053995B2 JP 7053995 B2 JP7053995 B2 JP 7053995B2 JP 2018078524 A JP2018078524 A JP 2018078524A JP 2018078524 A JP2018078524 A JP 2018078524A JP 7053995 B2 JP7053995 B2 JP 7053995B2
Authority
JP
Japan
Prior art keywords
coefficient
compression
unit
matrix
component
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
JP2018078524A
Other languages
English (en)
Other versions
JP2019185602A (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.)
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 JP2018078524A priority Critical patent/JP7053995B2/ja
Priority to US16/287,051 priority patent/US11748645B2/en
Publication of JP2019185602A publication Critical patent/JP2019185602A/ja
Application granted granted Critical
Publication of JP7053995B2 publication Critical patent/JP7053995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、最適化装置及び最適化装置の制御方法に関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、最適化装置に含まれる複数のユニット(ビット)のそれぞれが、他のビットの状態と、他のビットと自身のビットとの結合の強さを示す結合係数(重み係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、擬似焼き鈍し(シミュレーテッド・アニーリング)を用いた確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の最小値が得られる各ビットの状態の組み合わせを、解として求める。従来、加算器や比較器などの論理回路を用いて、ハードウェアにより擬似焼き鈍しを行う最適化装置が提案されている(たとえば、特許文献1参照)。
特開2017-138760号公報
ところで、結合係数を記憶する方法として、上記のようなハードウェアで実現される最適化装置の外部のメモリに結合係数を記憶する方法があるが、メモリからの読み出しに時間がかかる。そのため、外部のメモリよりも高速アクセスが可能な最適化装置の内部メモリに結合係数を記憶する方法がある。
しかしながら、問題の規模の増大に応じて結合係数の数が増加し、最適化装置のハードウェアに搭載される内部メモリに記憶しきれないという問題がある。たとえば、イジングモデルのビット数が1024ビットであり、1つの結合係数が32ビットである場合、全結合係数のビット数は、33Mビット程度となる。現状のハードウェアのオンチップメモリの記憶容量は高々数十Mビット程度であり、結合係数以外にも記憶するデータが存在することを考慮すると、これ以上大規模な問題を扱うことは困難である。
1つの側面では、本発明は、大規模な問題を少量のメモリを用いて演算可能な最適化装置及び最適化装置の制御方法を提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、前記係数行列を圧縮した圧縮係数データを出力する圧縮部と、前記圧縮部が出力する前記圧縮係数データを記憶する記憶部と、前記記憶部が記憶する前記圧縮係数データから前記結合係数を復号する復号部と、前記復号部が復号した前記結合係数を用いて、擬似焼き鈍し動作を実行する焼き鈍し部と、を有する最適化装置が提供される。
また、1つの実施態様では最適化装置の制御方法が提供される。
1つの側面では、本発明は、大規模な問題を少量のメモリを用いて演算できる。
第1の実施の形態の最適化装置及びその制御方法の例を示す図である。 第2の実施の形態の最適化装置の一例を示す図である。 結合係数の記憶部での配置例を示す図である。 第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第3の実施の形態の最適化装置の一例を示す図である。 パターン性を有する係数行列の一例を示す図である。 圧縮係数データの記憶例を示す図である。 第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第4の実施の形態の最適化装置の一例を示す図である。 第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
以下に示す最適化装置は、イジングモデルの基底状態(イジング型のエネルギー関数が最小値となるときの各ビットの値)を探索することで、巡回セールスマン問題などの最適化問題を計算する。イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 0007053995000001
右辺の1項目は、全ビット(全ニューロン)から選択可能な2つのビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と結合係数との積を積算したものである。xは、i番目のビットの値、xは、j番目のビットの値であり、Wijは、i番目とj番目のビットの結合の強さを示す結合係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、結合係数による係数行列は対称行列である場合が多い)。
右辺の2項目は、全ビットのそれぞれのバイアス係数とビットの値との積の総和を求めたものである。bは、i番目のビットのバイアス係数を示している。
また、i番目のビットのスピン反転(値の変化)に伴うエネルギー変化ΔEは、以下の式(2)で表される。
Figure 0007053995000002
式(2)において、i番目のビットの値xが1のとき、2x-1は1となり、値xが0のとき、2x-1は-1となる。なお、以下の式(3)で表されるhはローカルフィールド(局所場)と呼ばれ、値xに応じてローカルフィールドhに符号(+1または-1)を乗じたものがエネルギー変化ΔEである。
Figure 0007053995000003
図1は、第1の実施の形態の最適化装置及びその制御方法の例を示す図である。
第1の実施の形態の最適化装置10は、圧縮部11、記憶部12、復号部13、焼き鈍し部14を有する。
圧縮部11は、計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、係数行列を圧縮した圧縮係数データを出力する。たとえば、前述のように、Wij=Wjiであり、係数行列が対称行列である場合、圧縮部11は、その対称性に基づいて、係数行列を圧縮した圧縮行列データを出力する。
図1には、n個のビットを有するイジングモデルにおける係数行列の圧縮例が示されている。対称行列である係数行列は、対角成分15aと対角成分15aを挟んだ対称成分15b,15cを有する。Wij=Wjiであるため、対称成分15b,15cの何れか一方から、他方を再現できる。そこで、圧縮部11は、対角成分15aと、対称成分15b,15cのいずれか一方を含む圧縮係数データを出力する。図1の例では、圧縮部11は、対角成分15aと対称成分15bとを含む圧縮係数データを出力する。
係数行列のパターン性に基づいて係数行列を圧縮する例については後述する(第3の実施の形態参照)。
記憶部12は、圧縮部11が出力する圧縮係数データを記憶する。
なお、焼き鈍し部14において、各ビットについて、式(3)で表されるローカルフィールドhが算出される場合、係数行列の各行の結合係数が用いられる。
図1に示すような圧縮係数データに含まれる結合係数が1行ずつ(各ビットについての演算に用いられる分ずつ)、記憶部12の1ライン分の記憶領域に記憶される場合、圧縮係数データに含まれない対称成分15cに割り当てられた記憶領域が無駄になる。そこで、圧縮部11は、所定のメモリ配置ルールにしたがって、対角成分15aまたは対称成分15bに含まれる結合係数を、記憶部12において、対称成分15cに割り当てられた記憶領域に記憶する。これにより圧縮係数データを記憶する記憶領域を縮小できる。
復号部13は、記憶部12が記憶する圧縮係数データから結合係数を復号する。たとえば、図1のように、係数行列が対称性に基づいて圧縮された場合、復号部13は、記憶部12が記憶する圧縮係数データに含まれる対称成分15bから、対称成分15cを復号する。たとえば、焼き鈍し部14による、結合係数Wi2を含む行の読み出し要求発生時、復号部13は、圧縮係数データの結合係数W2iを含む列の結合係数を用いて、結合係数Wi2を含む行の圧縮係数データに含まれない結合係数を復号する。
また、対称成分15cに割り当てられた記憶領域に配置された対角成分15aまたは対称成分15bの結合係数に対する読み出し要求があった場合、復号部13は、所定のメモリ配置ルールに基づいて、その結合係数を記憶部12から読み出す。
係数行列がそのパターン性に基づいて圧縮された場合の復号例については後述する。
上記のような圧縮部11や復号部13は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路で実現できる。また、圧縮部11や復号部13は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。圧縮部11や復号部13がプロセッサである場合、プロセッサが、たとえば、記憶部12に記憶されているプログラムを実行することで、上記の処理が実現される。
記憶部12は、たとえば、SRAM(Static Random Access Memory)などの揮発性メモリ、または、フラッシュメモリやEEPROM(Electrically Erasable Programmable Read Only Memory)などの不揮発性メモリである。
焼き鈍し部14は、復号部13が復号した結合係数を用いて、擬似焼き鈍し動作を実行し、イジングモデルの基底状態を探索する。焼き鈍し部14は、焼き鈍しパラメータに基づいた擬似焼き鈍し動作を行う。
焼き鈍しパラメータには、擬似焼き鈍しにより温度を下げていく際の初期温度、最終温度、冷却スケジュール(冷却速度など)、演算処理の繰り返し回数、バイアス係数、ビットの初期値などがある。なお、擬似焼き鈍しでは、温度はノイズの幅で表される。温度が高いほどノイズの幅が広い。ノイズは乱数生成器(LFSR(Linear Feedback Shift Registers)など)によって生成できる。
たとえば、焼き鈍し部14は、読み出しアドレスを指定して、式(3)で表されるローカルフィールドhを演算するために用いる結合係数Wijの読み出し要求を記憶部12に対して行う。そして、焼き鈍し部14は、復号部13により復号されたその結合係数Wijを焼き鈍し部14の内部の図示しないメモリまたはレジスタに記憶する。そして、焼き鈍し部14は、結合係数Wijとバイアス係数bと値xに基づいて、ローカルフィールドhを演算する。そして、焼き鈍し部14は、ノイズ(乱数)をローカルフィールドhに加え、閾値との比較によってi番目のビットの値の更新の可否を判定する。
焼き鈍し部14は、このような演算処理を、各ビットに対して行う。そして、焼き鈍し部14は、全ビットのうち、更新可であると判定されたビットが複数ある場合には、収束性の悪化を防ぐため、乱数に基づいて、更新可であると判定された複数のビットのうち、1つを選択してそのビットの値を更新する。なお、焼き鈍し部14は、各ビットに関する処理を並列に行ってもよい。その場合、焼き鈍し部14は、初めに全結合係数の読み出し要求を記憶部12に対して行う。
焼き鈍し部14は、このような演算処理を、たとえば、所定回数繰り返す。なお、焼き鈍し部14は、冷却スケジュールに基づいて、たとえば、上記所定回数よりも少ないある回数の繰り返し処理ごとに、温度を下げていく(ノイズ幅を小さくする)。そして、上記所定回数の繰り返し処理後の各ビットの値を、問題に対する解(計算結果)として出力する。なお、焼き鈍し部14は、各繰り返し処理後に式(1)に示したエネルギー関数E(x)の値(以下、単にエネルギーという)を算出し、最低エネルギーと最低エネルギーを示したときの各ビットの値を保持してもよい。その場合、焼き鈍し部14は、たとえば、所定回数の繰り返し処理後において、最低エネルギーを示したときの各ビットの値を計算結果として出力する。
なお、焼き鈍し部14は、広い意味での擬似焼き鈍し手法である交換モンテカルロ法にしたがって演算を行ってもよい。その場合、焼き鈍し部14には、たとえば、全ビットに関する演算を行うユニット(レプリカ)が複数設けられる。各ユニットにはそれぞれ異なる温度が割り当てられ、各ユニットのエネルギーや温度に基づいた所定の交換確率に基づいて、隣接する温度が割り当てられたユニット間で、温度または状態(各ビットの値)が交換される処理が繰り返される。たとえば、所定回数の繰り返し処理の終了後において、最低エネルギーを示すユニットの状態が解となる。
このような焼き鈍し部14は、たとえば、結合係数とバイアス係数と各ビットの値を保持するレジスタやメモリ、積和演算回路、乱数生成器(LFSRなど)、比較器、セレクタなどの論理回路、読み出しアドレスを指定する制御回路などを用いて実現できる。
なお、焼き鈍しパラメータや係数行列は、最適化装置10の外部の装置(たとえば、コンピュータ)から供給される。計算対象の問題のイジングモデルへの変換などは、その外部の装置により行われる。また、計算結果は、外部の装置に供給され、たとえば、ディスプレイなどの表示装置に表示される。
以下、第1の実施の形態の最適化装置10の動作例を説明する。
圧縮部11は、たとえば、図示しないコンピュータのメモリから読み出される係数行列を受信した場合、係数行列の対称性またはパターン性に基づいて、係数行列を圧縮した圧縮係数データを出力する。記憶部12は、圧縮部11が出力する圧縮係数データを記憶する。
焼き鈍し部14は、記憶部12に対して、読み出しアドレスを指定して、たとえば、まず1番目のビットと他のビットの間の結合の強さを示す結合係数W11~W1nの読み出し要求を行う。これにより、記憶部12からその読み出しアドレスに対応した圧縮係数データが復号部13に読み出される。図1のように、係数行列が対称性に基づいて圧縮された場合、1番目のビットと他のビットの間の結合の強さを示す結合係数W11~W1nは、圧縮係数データに含まれているため、復号部13は、結合係数W11~W1nを焼き鈍し部14に供給する。
これによって、焼き鈍し部14は、結合係数W11~W1nを用いて1番目のビットに対する前述の処理(ローカルフィールドの算出や値の更新可否の判定など)を実行する。
次に、焼き鈍し部14が、読み出しアドレスを指定して、2番目のビットと他のビットの間の結合の強さを示す結合係数W21~W2nの読み出し要求を行う。これにより、記憶部12からその読み出しアドレスに対応した圧縮係数データが復号部13に読み出される。図1のように、係数行列が対称性に基づいて圧縮された場合、2番目のビットと1番目のビットの間の結合の強さを示す結合係数W21は、圧縮係数データに含まれていない。そのため、復号部13は、結合係数W21と同じ値であり、記憶部12に記憶されている圧縮係数データに含まれる結合係数W12を読み出すことで、結合係数W21を復号する。
これによって、焼き鈍し部14は、結合係数W21~W2nを用いて2番目のビットに対する前述の処理を実行する。
同様の処理が各ビットに対して行われる。そして、焼き鈍し部14は、全ビットのうち、更新可であると判定されたビットが複数ある場合には、乱数に基づいて、更新可であると判定された複数のビットのうち、1つを選択してそのビットの値を更新する。焼き鈍し部14は、このような演算処理を、たとえば、所定回数繰り返す。なお、焼き鈍し部14は、冷却スケジュールに基づいて、たとえば、上記所定回数よりも少ないある回数の繰り返し処理ごとに、温度を下げていく。そして、焼き鈍し部14は、上記所定回数の繰り返し処理後の各ビットの値を、問題に対する解(計算結果)として出力する。
以上のような第1の実施の形態の最適化装置10によれば、係数行列をその対称性またはパターン性に基づいて圧縮して記憶部12に記憶することで、記憶部12の記憶容量が問題の規模に比して少なくてよくなる。つまり、大規模な問題を少量のメモリを用いて演算可能になる。
なお、係数行列に対称性とパターン性の両方がある場合、後述のようにパターン性に基づいて圧縮したほうが対称性に基づいて圧縮する場合に比べて圧縮率が高いため、パターン性に基づいて圧縮するようにしてもよい。
(第2の実施の形態)
図2は、第2の実施の形態の最適化装置の一例を示す図である。
第2の実施の形態の最適化装置20は、圧縮部21、記憶部22、復号部23、焼き鈍し部24を有する。
圧縮部21は、行列解析部21a、行列圧縮部21bを有する。
行列解析部21aは、係数行列を受信し、受信した係数行列を解析し、係数行列が対称性を有するか否かを判定する。たとえば、行列解析部21aは、係数行列に含まれる全ての結合係数において、Wij=Wjiの関係が満たされているか否かを判定し、Wij=Wjiの関係が満たされている場合には、係数行列が対称性を有すると判定する。Wij=Wjiの関係を満たさない結合係数がある場合には、行列解析部21aは、係数行列が対称性を有さないと判定する。
行列解析部21aは、係数行列が対称性を有すると判定した場合には、係数行列を、行列圧縮部21bに入力し、係数行列が対称性を有さないと判定した場合には、係数行列を、記憶部22に記憶する。また、行列解析部21aは、係数行列が対称性を有すると判定した場合には、圧縮を行うことを示す信号(たとえば、0か1の値をもつ信号(以下フラグという))を復号部23に入力する。
行列圧縮部21bは、係数行列の対称性に基づいて、係数行列を圧縮した圧縮係数データを出力する。たとえば、図1に示したように、行列圧縮部21bは、対角成分15aと対称成分15bとを含む圧縮係数データを出力する。また、行列圧縮部21bは、所定のメモリ配置ルールにしたがって、対角成分15aまたは対称成分15bに含まれる結合係数を、記憶部22において、対称成分15cに割り当てられた記憶領域に記憶する。これにより圧縮係数データを記憶する記憶領域を縮小できる。
図3は、結合係数の記憶部での配置例を示す図である。
圧縮係数データに含まれる結合係数が1行ずつ、記憶部22のそれぞれ1ライン分の記憶領域L1~Lnの何れかに記憶される場合、圧縮係数データに含まれない対称成分15cに割り当てられた記憶領域が無駄になる。たとえば、記憶領域L1に記憶される結合係数の数が、n個であるのに対し、記憶領域Lnに記憶される結合係数の数は、1個である。
そこで、行列圧縮部21bは、所定のメモリ配置ルールにしたがって、対角成分15aまたは対称成分15bに含まれる結合係数を、記憶部22において、対称成分15cに割り当てられた記憶領域に記憶する。図3の例では、結合係数Wnnは、記憶領域L2の先頭に記憶されている。これにより、記憶領域L1~L(n/2)のそれぞれにおいて記憶される結合係数の数をn個とすることができ、無駄をなくせ、さらにライン数をnから(n/2)+1に減らせる。このため、圧縮係数データを記憶する記憶領域を縮小できる。
記憶部22は、係数行列または圧縮係数データを記憶する。
復号部23は、圧縮判別部23a、行列復号部23bを有する。
圧縮判別部23aは、行列解析部21aが出力するフラグが、圧縮を行うことを示す値である場合、記憶部22に記憶されている圧縮係数データを、行列復号部23bに入力する。圧縮判別部23aは、フラグが圧縮を行うことを示す値ではない場合、記憶部22に記憶されている非圧縮の係数行列の結合係数を焼き鈍し部24に入力する。
行列復号部23bは、入力された圧縮係数データから結合係数を復号する。たとえば、焼き鈍し部24による、結合係数Wi2を含む行の読み出し要求発生時、行列復号部23bは、圧縮係数データの結合係数W2iを含む列の結合係数を用いて、結合係数Wi2を含む行の圧縮係数データに含まれない結合係数を復号する。
また、対称成分15cに割り当てられた記憶領域に配置された対角成分15aまたは対称成分15bの結合係数の読み出し要求があった場合、行列復号部23bは、そのメモリ配置ルールに基づいて、その結合係数を記憶部22から読み出す。
たとえば、結合係数Wnnを含む行の読み出し要求があった場合、行列復号部23bは、図3の記憶領域L2から、結合係数Wnnを読み出す。
なお、行列復号部23bは、図3に示したようにメモリ配置変更後の圧縮係数データを全て記憶部22から読み出し、元のメモリ配置に戻した後に、対称成分15cの結合係数を対称成分15bの結合係数から復号してもよい。
第1の実施の形態の最適化装置10の圧縮部11や復号部13と同様に、圧縮部21や復号部23は、たとえば、ASICやFPGAなどの特定用途の電子回路で実現できる。また、圧縮部21や復号部23は、CPUやDSPなどのプロセッサであってもよい。圧縮部21や復号部23がプロセッサである場合、プロセッサが、たとえば、記憶部22に記憶されているプログラムを実行することで、上記の処理が実現される。
第1の実施の形態の最適化装置10の記憶部12と同様に、記憶部22は、たとえば、SRAMなどの揮発性メモリ、または、フラッシュメモリやEEPROMなどの不揮発性メモリである。
焼き鈍し部24は、圧縮判別部23aから入力された非圧縮の係数行列の結合係数、または、行列復号部23bから入力された復号後の係数行列の結合係数を用いて、擬似焼き鈍し動作を実行する。焼き鈍し部24が行う擬似焼き鈍し動作については、第1の実施の形態の最適化装置10の焼き鈍し部14が行う前述の擬似焼き鈍し動作と同じであるので説明を省略する。
第1の実施の形態の焼き鈍し部14と同様に焼き鈍し部24は、たとえば、結合係数とバイアス係数と各ビットの値を保持するレジスタやメモリ、積和演算回路、乱数生成器、比較器、セレクタなどの論理回路、制御回路などを用いて実現できる。
以下、第2の実施の形態の最適化装置20の動作例を説明する。
図4は、第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
行列解析部21aは、係数行列を受信すると(ステップS10)、受信した係数行列を解析し(ステップS11)、係数行列が対称性を有するか否かを判定する(ステップS12)。行列解析部21aは、係数行列が対称性を有すると判定した場合には、係数行列を、行列圧縮部21bに入力し、行列圧縮部21bは、係数行列の対称性に基づいて、係数行列を圧縮する(ステップS13)。なお、行列解析部21aは、係数行列が対称性を有すると判定した場合には、圧縮を行うことを示すフラグを復号部23に入力する。
そして、記憶部22は、圧縮係数データを記憶する(ステップS14)。
一方、行列解析部21aは、係数行列が対称性を有さないと判定した場合には、係数行列を、記憶部22に記憶する(ステップS15)。
ステップS14またはステップS15の処理後、焼き鈍し部24は、疑似焼き鈍し動作に用いる結合係数を取得するために、記憶部22に対して読み出しアドレスの指定を行い、結合係数の読み出し要求を行う(ステップS16)。これにより、記憶部22から読み出しアドレスに対応する圧縮係数データまたは非圧縮の係数行列の結合係数が読み出される。
その後、圧縮判別部23aは、行列解析部21aが出力するフラグが、圧縮を行うことを示す値であるか否かに基づいて、係数行列が圧縮されているか否かを判定する(ステップS17)。
圧縮判別部23aは、係数行列が圧縮されていると判定した場合、圧縮係数データを、行列復号部23bに入力し、行列復号部23bは、入力された圧縮係数データから結合係数を復号する(ステップS18)。復号された結合係数は、焼き鈍し部24に入力される。
そして、焼き鈍し部24は、入力された結合係数を用いて、擬似焼き鈍し動作を実行する(ステップS19)。なお、圧縮判別部23aは、係数行列が圧縮されていないと判定された場合、記憶部22から読み出された非圧縮の結合行列の結合係数を焼き鈍し部24に入力し、焼き鈍し部24はその結合係数を用いて擬似焼き鈍し動作を実行する。
ステップS19の処理後、たとえば、焼き鈍し部24内の図示しない制御回路は、擬似焼き鈍し動作が終了したか否かを判定する(ステップS20)。たとえば、上記所定回数の繰り返し処理後が終了した場合に、擬似焼き鈍し動作が終了したと判定される。
擬似焼き鈍し動作が終了していないと判定された場合、ステップS16からの処理が繰り返され、擬似焼き鈍し動作が終了したと判定された場合、焼き鈍し部24は、各ビットの値を、問題に対する解(計算結果)として出力する(ステップS21)。
以上のような第2の実施の形態の最適化装置20によれば、係数行列をその対称性に基づいて圧縮して記憶部22に記憶することで、記憶部22の記憶容量が問題の規模に比して少なくてよくなる。つまり、大規模な問題を少量のメモリを用いて演算可能になる。
たとえば、イジングモデルのビット数がn個である場合、非圧縮時の結合係数はn×nになるが、上記の圧縮手法によって、圧縮係数データに含まれる結合係数の数は、n((n/2)+1)に削減でき、非圧縮時のほぼ50%程度に圧縮可能である。
また、行列解析部21aが係数行列を解析して、対称性を有さない係数行列を非圧縮とすることで、圧縮に適さない係数行列が圧縮されてしまうことを防げる。言い換えると、最適化装置20は、様々な問題に対応した係数行列のうち、圧縮に適した係数行列(第2の実施の形態では対称性を有する係数行列)を選択して、圧縮を行うことができる。
なお、係数行列が対称行列であることが予めわかっている場合には、行列解析部21aや圧縮判別部23aはなくてもよい。また、その場合、図4に示したステップS11,S12,S15,S17の処理は、実行されなくてもよい。
(第3の実施の形態)
たとえば、巡回セールスマン問題で用いられる係数行列では、対角線上に同じパターンで結合係数が並ぶ。以下に示す第3の実施の形態の最適化装置は、係数行列のパターン性を利用して係数行列を圧縮するものである。
図5は、第3の実施の形態の最適化装置の一例を示す図である。図5において、図2に示した第2の実施の形態の最適化装置20と同じ要素については同一符号が付されている。
第3の実施の形態の最適化装置30は、第2の実施の形態の最適化装置20と同様に、圧縮部31と復号部32を有する。ただし、圧縮部31は、係数行列のパターン性に基づいて係数行列を圧縮した圧縮係数データを出力する機能を有し、復号部32はその圧縮係数データから結合係数を復号する機能を有する。
図6は、パターン性を有する係数行列の一例を示す図である。
図6中で、“A”、“B”、“C”と表記されているブロック(以下サブブロックA,B,Cという)は、それぞれm×m個(たとえば、32×32個)の結合係数が配列された行列である。複数のサブブロックAは、それぞれ同じ行列である。同様に、複数のサブブロックBもそれぞれ同じ行列であり、複数のサブブロックCもそれぞれ同じ行列である。図6の例では、全体の係数行列(たとえば、1024×1024個の結合係数からなる)は、3種類のサブブロックA~Cからなっている。
圧縮部31の行列解析部31aは、係数行列を受信し、受信した係数行列を解析し、係数行列がパターン性を有するか否かを判定する。
たとえば、行列解析部31aは、まず係数行列の左上のm×m個の結合係数をサブブロックAとし、係数行列全体から同じサブブロックAを検出する。たとえば、行列解析部31aは、ラスタスキャンの順番で左上から右下までm×m個の結合係数とサブブロックAのm×m個の結合係数とを比較し、全て一致していれば、そのm×m個の結合係数をサブブロックAと判定する。行列解析部31aは、同様の処理を、他のサブブロックについても行う。なお、係数行列全体を3種類のサブブロックA~Cでは表せない場合には、行列解析部31aは、サブブロックの種類を増やして、同様の処理を行う。
そして、行列解析部31aは、たとえば、係数行列全体が、所定の閾値(たとえば、3)以下の種類のサブブロックで表される場合に、係数行列がパターン性を有すると判定する。係数行列に多数の種類のサブブロックが含まれる場合、以下に示す圧縮によるデータ量削減効果が低いため、行列解析部31aは、係数行列全体が所定の閾値より多くの種類のサブブロックで表される場合、パターン性を有さないと判定する。
行列解析部31aは、係数行列がパターン性を有すると判定した場合には、係数行列を、行列圧縮部31bに入力し、係数行列がパターン性を有さないと判定した場合には、係数行列を、記憶部22に記憶する。また、行列解析部31aは、係数行列がパターン性を有すると判定した場合には、圧縮を行うことを示すフラグを復号部32に入力する。
行列圧縮部31bは、係数行列のパターン性に基づいて、係数行列を圧縮した圧縮係数データを出力する。たとえば、行列圧縮部31bは、サブブロックA~Cのそれぞれに含まれる結合係数、係数行列の各行におけるサブブロックの並び順を示すビットパターンを含む圧縮係数データを出力し、記憶部22に記憶する。
図7は、圧縮係数データの記憶例を示す図である。
記憶部22の記憶領域L1には、係数行列サイズや、サブブロックの種類(図6の例では3)などが記憶される。記憶領域L2には、サブブロックAの結合係数、記憶領域L3には、サブブロックBの結合係数、記憶領域L4には、サブブロックCの結合係数が記憶される。そして、記憶領域L5~L1028には、係数行列の各行におけるサブブロックの並び順を示すビットパターンが記憶される。
たとえば、サブブロックの種類がサブブロックA~Cの3つである場合、サブブロックA~Cのそれぞれは、2ビットで表せる。サブブロックAを00、サブブロックBを01、サブブロックCを10で表す場合、たとえば、サブブロックA,B,C,C,C,Cというサブブロックの並び順は、00,01,10,10,10,10というビットパターンで表せる。
なお、たとえば、1024×1024個の結合係数による係数行列が、32×32のサブブロックで表せる場合、係数行列の1行目から、32行分ずつのビットパターンは同じであるため、必ずしも図7に示すように1~1024行目のビットパターンをそれぞれ記憶部22に記憶しなくてもよい。
復号部32は、圧縮判別部32a、行列復号部32bを有する。
圧縮判別部32aは、行列解析部31aが出力するフラグが、圧縮を行うことを示す値である場合、記憶部22に記憶されている圧縮係数データを、行列復号部32bに入力する。圧縮判別部32aは、フラグが圧縮を行うことを示す値ではない場合、記憶部22に記憶されている非圧縮の係数行列の結合係数を焼き鈍し部24に入力する。
行列復号部32bは、入力された圧縮係数データから結合係数を復号する。たとえば、焼き鈍し部24によるi番目のビットに関する結合係数の読み出し要求発生時、行列復号部32bは、係数行列のi行目のビットパターンと、そのビットパターンで表される並び順で配列されたサブブロックの結合係数を用いて復号を行う。たとえば、行列復号部32bは、i行目のビットパターンがサブブロックA,B,C,Cという並び順を表す場合、サブブロックA~Cにおいて係数行列のi行目に対応する行の結合係数を、サブブロックA,B,C,Cの順で復号結果として出力する。
第1の実施の形態の最適化装置10の圧縮部11や復号部13と同様に、圧縮部31や復号部32は、たとえば、ASICやFPGAなどの特定用途の電子回路で実現できる。また、圧縮部31や復号部32は、CPUやDSPなどのプロセッサであってもよい。圧縮部31や復号部32がプロセッサである場合、プロセッサが、たとえば、記憶部22に記憶されているプログラムを実行することで、上記の処理が実現される。
以下、第3の実施の形態の最適化装置20の動作例を説明する。
図8は、第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
行列解析部31aは、係数行列を受信すると(ステップS30)、受信した係数行列を解析し(ステップS31)、係数行列がパターン性を有するか否かを判定する(ステップS32)。行列解析部31aは、係数行列がパターン性を有すると判定した場合には、係数行列を、行列圧縮部31bに入力し、行列圧縮部31bは、係数行列のパターン性に基づいて、係数行列を圧縮する(ステップS33)。なお、行列解析部31aは、係数行列がパターン性を有すると判定した場合には、圧縮を行うことを示すフラグを復号部32に入力する。
ステップS34~S37の処理は、図4に示したステップS14~S17の処理と同じである。
圧縮判別部32aは、係数行列がパターン性に基づいて圧縮されていると判定した場合、圧縮係数データを、行列復号部32bに入力する。そして、行列復号部32bは、入力された圧縮係数データから結合係数を復号する(ステップS38)。復号された結合係数は、焼き鈍し部24に入力される。
以下のステップS39~41の処理は、図4に示したステップS19~S21の処理と同じである。
以上のような第3の実施の形態の最適化装置30によれば、係数行列をそのパターン性に基づいて圧縮して記憶部22に記憶することで、記憶部22の記憶容量が問題の規模に比して少なくてよくなる。つまり、大規模な問題を少量のメモリを用いて演算可能になる。
たとえば、巡回セールスマン問題において、都市数を32とすると、結合係数は、1024×1024個となる。係数行列全体が、図6に示したように3種類のサブブロックA~C(それぞれ32×32個の結合係数を含む)の繰り返しで表せ、1つの結合係数が16ビットであるとする。係数行列全体は32×32個のサブブロックで表せ、3種類のサブブロックは2ビットで表せるため、圧縮係数データ(3種類のサブブロックの結合係数とビットパターン)の情報量は、16×32×32×3+2×32×32=51200ビットである。
一方、非圧縮時の結合係数の情報量は、16×32×32×32×32=16777216ビットである。そのため、この例では、非圧縮時の0.3%程度に圧縮可能であり、第2の実施の形態の最適化装置20よりも、圧縮効果が高い。
なお、実際にはサブブロックが3種類より多い場合もあるが、たとえば、サブブロックが10種類の場合でも、圧縮係数データの情報量は、16×32×32×10+4×32×32=167936ビットとなり、非圧縮時の1%程度に圧縮可能である。
また、行列解析部31aが係数行列を解析して、パターン性を有さない係数行列を非圧縮とすることで、圧縮に適さない係数行列が圧縮されてしまうことを防げる。言い換えると、最適化装置30は、様々な問題に対応した係数行列のうち、圧縮に適した係数行列(第3の実施の形態ではパターン性を有する係数行列)を選択して、圧縮を行うことができる。
(第4の実施の形態)
前述のように焼き鈍し部24で用いられる焼き鈍しパラメータには、バイアス係数が含まれている。バイアス係数は、イジングモデルに含まれるビットごとに設定され、焼き鈍し部24内の図示しないレジスタまたはメモリに記憶される。しかし、イジングモデルに含まれるビットの数が増え、バイアス係数の数も多くなる場合、レジスタまたはメモリの記憶容量を大きくしなければならなくなる。この問題を解決するために、第4の実施の形態の最適化装置40は、係数行列以外に、バイアス係数についても圧縮する機能を有する。
図9は、第4の実施の形態の最適化装置の一例を示す図である。図9において、図2に示した第2の実施の形態の最適化装置20と同じ要素については同一符号が付されている。
第4の実施の形態の最適化装置40は、第2の実施の形態の最適化装置20と同様に、圧縮部41と復号部42を有する。ただし、圧縮部41は、係数行列の対称性またはパターン性に基づいて係数行列を圧縮した圧縮係数データを出力するとともに、バイアス係数を圧縮した圧縮バイアス係数データを出力する機能も有する。また、復号部42は圧縮係数データから結合係数を復号する機能を有するとともに、圧縮バイアス係数データからバイアス係数を復号する機能を有する。
イジングモデルに含まれる各ビットのバイアス係数は、計算対象の問題に応じて変わるが、全て異なる値ではなく、その多くが同じ値となる場合が多い。圧縮部41は、その性質を利用して、バイアス係数を圧縮する。
圧縮部41の行列解析部41aは、係数行列を受信し、受信した係数行列を解析し、係数行列が対称性またはパターン性を有するか否かを判定する。さらに、行列解析部41aは、各ビットのバイアス係数を受信し、バイアス係数がとる値の種類の数が、所定の閾値以下の場合に、バイアス係数が、パターン性を有すると判定する。
たとえば、n個のビットのバイアス係数b~bが、16301,6520,6520,16301,16301,6520,…,16301となる場合、バイアス係数b~bは2種類の値しかとらない。所定の閾値が2以上の場合、この例では、バイアス係数がパターン性を有すると判定される。
バイアス係数が多数の種類の値をとる場合、以下に示す圧縮によるデータ量削減効果が低いため、行列解析部41aは、バイアス係数がとる値の種類の数が所定の閾値より多い場合、パターン性を有さないと判定する。
行列解析部41aは、係数行列が対称性またはパターン性を有すると判定した場合には、係数行列を、行列圧縮部41bに入力し、係数行列が対称性またはパターン性を有さないと判定した場合には、係数行列を、記憶部22に記憶する。また、行列解析部41aは、係数行列が対称性またはパターン性を有すると判定した場合には、係数行列に対する圧縮を行うことを示すフラグを復号部42に入力する。
さらに、行列解析部41aは、バイアス係数がパターン性を有すると判定した場合には、バイアス係数を、行列圧縮部41bに入力し、バイアス係数がパターン性を有さないと判定した場合には、バイアス係数を、記憶部22に記憶する。また、行列解析部41aは、バイアス係数がパターン性を有すると判定した場合には、バイアス係数に対する圧縮を行うことを示すフラグを復号部42に入力する。
行列圧縮部41bは、係数行列の対称性またはパターン性に基づいて、係数行列を圧縮した圧縮係数データを出力し、記憶部22に記憶する。さらに、行列圧縮部41bは、バイアス係数のパターン性に基づいて、バイアス係数を圧縮した圧縮バイアス係数データを出力し、記憶部22に記憶する。
たとえば、バイアス係数が、上記の例のように2種類の値しかとらない場合、行列圧縮部41bは、各値を1ビットで表したビットパターンである圧縮係数データを出力する。たとえば、上記のように、n個のビットのバイアス係数b~bが、16301,6520,6520,16301,16301,6520,…,16301である場合、ビットパターンは、0,1,0,0,1,…,0となる。なお、バイアス係数がとる値の種類が3か4の場合には、各バイアス係数の値は、2ビットで表される。
復号部42は、圧縮判別部42a、行列復号部42bを有する。
圧縮判別部42aは、係数行列に対する圧縮をするか否かを示すフラグが、圧縮を行うことを示す値である場合、記憶部22に記憶されている圧縮係数データを、行列復号部42bに入力する。圧縮判別部42aは、そのフラグが圧縮を行うことを示す値ではない場合、記憶部22に記憶されている非圧縮の係数行列の結合係数を焼き鈍し部24に入力する。
さらに、圧縮判別部42aは、バイアス係数に対する圧縮をするか否かを示すフラグが、圧縮を行うことを示す値である場合、記憶部22に記憶されている圧縮バイアス係数データを、行列復号部42bに入力する。圧縮判別部42aは、そのフラグが圧縮を行うことを示す値ではない場合、記憶部22に記憶されている非圧縮のバイアス係数を焼き鈍し部24に入力する。
行列復号部42bは、入力された圧縮係数データから結合係数を復号する。さらに、行列復号部42bは、入力された圧縮バイアス係数データからバイアス係数を復号する。たとえば、行列復号部42bは、焼き鈍し部24によるi番目のビットのバイアス係数bの読み出し要求時には、上記ビットパターンのi番目の値(上記の例では0か1)から、バイアス係数bを復号する。たとえば、i番目の値が、0である場合、上記の例では、16301が、復号されたバイアス係数bとなる。
第1の実施の形態の最適化装置10の圧縮部11や復号部13と同様に、圧縮部41や復号部42は、たとえば、ASICやFPGAなどの特定用途の電子回路で実現できる。また、圧縮部41や復号部42は、CPUやDSPなどのプロセッサであってもよい。圧縮部41や復号部42がプロセッサである場合、プロセッサが、たとえば、記憶部22に記憶されているプログラムを実行することで、上記の処理が実現される。
以下、第4の実施の形態の最適化装置40の動作例を説明する。
図10は、第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
なお、係数行列を圧縮、復号する処理については、図4または図8に示した処理と同じであるので、説明を省略する。
行列解析部41aは、バイアス係数を受信すると(ステップS50)、受信したバイアス係数を解析し(ステップS51)、バイアス係数の種類が閾値以下であるか否かを判定する(ステップS52)。行列解析部41aは、バイアス係数の種類が閾値以下であると判定した場合には、バイアス係数を、行列圧縮部41bに入力する。そして、行列圧縮部41bは、前述のようにバイアス係数を圧縮する(ステップS53)。なお、行列解析部41aは、バイアス係数の種類が閾値以下であると判定した場合には、圧縮を行うことを示すフラグを復号部42に入力する。
そして、記憶部22は、圧縮バイアス係数データを記憶する(ステップS54)。
一方、行列解析部41aは、バイアス係数の種類が閾値より多いと判定した場合には、バイアス係数を、記憶部22に記憶する(ステップS55)。
ステップS54またはステップS55の処理後、焼き鈍し部24は、疑似焼き鈍し動作に用いるバイアス係数を取得するために、記憶部22に対して読み出しアドレスの指定を行い、バイアス係数の読み出し要求を行う(ステップS56)。これにより、記憶部22から読み出しアドレスに対応する圧縮バイアス係数データまたは非圧縮のバイアス係数が読み出される。
その後、圧縮判別部42aは、行列解析部41aが出力するフラグが、バイアス係数に対する圧縮を行うことを示す値であるか否かに基づいて、バイアス係数が圧縮されているか否かを判定する(ステップS57)。
圧縮判別部42aは、バイアス係数が圧縮されていると判定した場合、圧縮バイアス係数データを、行列復号部42bに入力する。そして、行列復号部42bは、入力された圧縮バイアス係数データからバイアス係数を復号する(ステップS58)。復号されたバイアス係数は、焼き鈍し部24に入力される。
そして、焼き鈍し部24は、入力されたバイアス係数(及び図4または図8に示した処理により入力された結合係数)を用いて、擬似焼き鈍し動作を実行する(ステップS59)。なお、圧縮判別部42aは、バイアス係数が圧縮されていないと判定された場合、記憶部22から読み出された非圧縮のバイアス係数を焼き鈍し部24に入力し、焼き鈍し部24はそのバイアス係数を用いて擬似焼き鈍し動作を実行する。
ステップS59の処理後、たとえば、焼き鈍し部24内の図示しない制御回路は、擬似焼き鈍し動作が終了したか否かを判定する(ステップS60)。たとえば、上記所定回数の繰り返し処理後が終了した場合に、擬似焼き鈍し動作が終了したと判定される。
擬似焼き鈍し動作が終了していないと判定された場合、ステップS56からの処理が繰り返され、擬似焼き鈍し動作が終了したと判定された場合、焼き鈍し部24は、各ビットの値を、問題に対する解(計算結果)として出力する(ステップS61)。
以上のような第4の実施の形態の最適化装置40によれば、係数行列を圧縮するとともに、バイアス係数についても圧縮して記憶部22に記憶することで、最適化装置40の焼き鈍し部24の図示しないレジスタまたはメモリの記憶容量を小さくすることができる。
以上、実施の形態に基づき、本発明の最適化装置及びその制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11 圧縮部
12 記憶部
13 復号部
14 焼き鈍し部
15a 対角成分
15b,15c 対称成分

Claims (9)

  1. 計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、前記係数行列を圧縮した圧縮係数データを出力する圧縮部と、
    前記圧縮部が出力する前記圧縮係数データを記憶する記憶部と、
    前記記憶部が記憶する前記圧縮係数データから前記結合係数を復号する復号部と、
    前記復号部が復号した前記結合係数を用いて、擬似焼き鈍し動作を実行する焼き鈍し部と、
    を有し、
    前記係数行列は対称行列であり、対角成分と第1の対称成分と第2の対称成分とを含み、
    前記圧縮部は、前記係数行列のうち、前記第1の対称成分と前記第2の対称成分の何れか一方と、前記対角成分とを含む前記圧縮係数データを出力し、
    前記復号部は、前記記憶部が記憶する前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方から、前記第1の対称成分と前記第2の対称成分の何れか他方を復号し、
    前記焼き鈍し部は、前記対角成分と、前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方と、前記復号部が復号する前記第1の対称成分と前記第2の対称成分の何れか他方と、を用いて前記擬似焼き鈍し動作を実行し、
    前記圧縮部は、前記対角成分と、前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方とに含まれる少なくとも一部の前記結合係数を、前記圧縮係数データに含まれない前記第1の対称成分と前記第2の対称成分の何れか他方に割り当てられた前記記憶部の記憶領域に記憶させる、
    最適化装置。
  2. 前記圧縮部は、前記係数行列の対称性に基づいて前記係数行列を圧縮する場合、前記係数行列の対称性の有無を判定し、前記係数行列に対称性がない場合、前記係数行列を圧縮せずに前記記憶部に記憶させる、請求項1に記載の最適化装置。
  3. 計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、前記係数行列を圧縮した圧縮係数データを出力する圧縮部と、
    前記圧縮部が出力する前記圧縮係数データを記憶する記憶部と、
    前記記憶部が記憶する前記圧縮係数データから前記結合係数を復号する復号部と、
    前記復号部が復号した前記結合係数を用いて、擬似焼き鈍し動作を実行する焼き鈍し部と、
    を有し、
    前記圧縮部は、前記係数行列において、それぞれ同じ行列となる複数のサブブロックの種類が複数ある場合、各種類のサブブロックを表す情報と、前記複数のサブブロックの並び順を示す情報とを含む前記圧縮係数データを出力する、
    適化装置。
  4. 前記圧縮部は、前記複数のサブブロックの種類が、所定の閾値よりも多い場合、前記係数行列を圧縮せずに、前記記憶部に記憶させる、請求項に記載の最適化装置。
  5. 前記圧縮部は、前記擬似焼き鈍し動作において前記各ビットに設定されるバイアス係数がとる値の種類が複数あり、前記バイアス係数がとる値の種類が閾値以下の場合に、前記バイアス係数を、前記バイアス係数がとる値の種類を示す情報で表した圧縮バイアス係数データを出力し、
    前記記憶部は、前記圧縮部が出力する前記圧縮バイアス係数データを記憶し、
    前記復号部は、前記記憶部が記憶する前記圧縮バイアス係数データから前記バイアス係数を復号し、
    前記焼き鈍し部は、前記復号部が復号した前記バイアス係数を用いて、前記擬似焼き鈍し動作を実行する、
    請求項1乃至の何れか一項に記載の最適化装置。
  6. 最適化装置が有する圧縮部が、計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、前記係数行列を圧縮した圧縮係数データを出力し、
    前記最適化装置が有する記憶部が、前記圧縮部が出力する前記圧縮係数データを記憶し、
    前記最適化装置が有する復号部が、前記記憶部が記憶する前記圧縮係数データから前記結合係数を復号し、
    前記最適化装置が有する焼き鈍し部が、前記復号部が復号した前記結合係数を用いて、擬似焼き鈍し動作を実行し、
    前記係数行列は対称行列であり、対角成分と第1の対称成分と第2の対称成分とを含み、
    前記圧縮部は、前記係数行列のうち、前記第1の対称成分と前記第2の対称成分の何れか一方と、前記対角成分とを含む前記圧縮係数データを出力し、
    前記復号部は、前記記憶部が記憶する前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方から、前記第1の対称成分と前記第2の対称成分の何れか他方を復号し、
    前記焼き鈍し部は、前記対角成分と、前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方と、前記復号部が復号する前記第1の対称成分と前記第2の対称成分の何れか他方と、を用いて前記擬似焼き鈍し動作を実行し、
    前記圧縮部は、前記対角成分と、前記圧縮係数データに含まれる前記第1の対称成分と前記第2の対称成分の何れか一方とに含まれる少なくとも一部の前記結合係数を、前記圧縮係数データに含まれない前記第1の対称成分と前記第2の対称成分の何れか他方に割り当てられた前記記憶部の記憶領域に記憶させる、
    最適化装置の制御方法。
  7. 最適化装置が有する圧縮部が、計算対象の問題を変換したイジングモデルの各ビット間の結合の強さを示す結合係数を含む係数行列の対称性またはパターン性に基づいて、前記係数行列を圧縮した圧縮係数データを出力し、
    前記最適化装置が有する記憶部が、前記圧縮部が出力する前記圧縮係数データを記憶し、
    前記最適化装置が有する復号部が、前記記憶部が記憶する前記圧縮係数データから前記結合係数を復号し、
    前記最適化装置が有する焼き鈍し部が、前記復号部が復号した前記結合係数を用いて、擬似焼き鈍し動作を実行し、
    前記圧縮部は、前記係数行列において、それぞれ同じ行列となる複数のサブブロックの種類が複数ある場合、各種類のサブブロックを表す情報と、前記複数のサブブロックの並び順を示す情報とを含む前記圧縮係数データを出力する、
    最適化装置の制御方法。
  8. 前記記憶部は複数ラインの記憶領域を有し、前記圧縮係数データに含まれる複数の結合係数の各々が前記複数のラインの何れかに記憶される、請求項1に記載の最適化装置。
  9. 前記記憶部は複数ラインの記憶領域を有し、前記圧縮係数データに含まれる複数の結合係数の各々が前記複数のラインの何れかに記憶される、請求項6に記載の最適化装置の制御方法。
JP2018078524A 2018-04-16 2018-04-16 最適化装置及び最適化装置の制御方法 Active JP7053995B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018078524A JP7053995B2 (ja) 2018-04-16 2018-04-16 最適化装置及び最適化装置の制御方法
US16/287,051 US11748645B2 (en) 2018-04-16 2019-02-27 Optimization apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018078524A JP7053995B2 (ja) 2018-04-16 2018-04-16 最適化装置及び最適化装置の制御方法

Publications (2)

Publication Number Publication Date
JP2019185602A JP2019185602A (ja) 2019-10-24
JP7053995B2 true JP7053995B2 (ja) 2022-04-13

Family

ID=68160379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018078524A Active JP7053995B2 (ja) 2018-04-16 2018-04-16 最適化装置及び最適化装置の制御方法

Country Status (2)

Country Link
US (1) US11748645B2 (ja)
JP (1) JP7053995B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022022876A (ja) * 2020-07-09 2022-02-07 キヤノン株式会社 畳み込みニューラルネットワーク処理装置
JP2022109807A (ja) 2021-01-15 2022-07-28 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2022165250A (ja) 2021-04-19 2022-10-31 富士通株式会社 プログラム、データ処理方法及びデータ処理装置
CN113407976B (zh) * 2021-07-20 2022-08-02 北京百度网讯科技有限公司 数字签名方法、签名信息的验证方法、相关装置及电子设备
WO2024042606A1 (ja) * 2022-08-23 2024-02-29 日本電信電話株式会社 イジングモデル変換装置、イジングモデル変換方法、プログラム
CN115858999B (zh) * 2023-02-07 2023-04-25 华南理工大学 一种基于改进模拟退火算法的组合优化问题处理电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224227A (ja) 2016-06-17 2017-12-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969097A (en) * 1985-09-18 1990-11-06 Levin Leonid D Method of rapid entering of text into computer equipment
JPH02287670A (ja) * 1989-04-27 1990-11-27 Mitsubishi Electric Corp 半導体神経回路網
JPH05282159A (ja) * 1992-03-31 1993-10-29 Toshiba Corp 配列圧縮方式
JPH07334625A (ja) * 1994-06-06 1995-12-22 Nec Corp 文字列入力装置
US6321158B1 (en) * 1994-06-24 2001-11-20 Delorme Publishing Company Integrated routing/mapping information
US5805159A (en) * 1996-08-22 1998-09-08 International Business Machines Corporation Mobile client computer interdependent display data fields
US5864340A (en) * 1996-08-22 1999-01-26 International Business Machines Corporation Mobile client computer programmed to predict input
JP3889466B2 (ja) * 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
JPH10154144A (ja) * 1996-11-25 1998-06-09 Sony Corp 文章入力装置及び方法
US8479122B2 (en) * 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
JP3651550B2 (ja) * 1998-02-23 2005-05-25 三菱電機株式会社 属性圧縮装置および方法
US6263362B1 (en) * 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US6337698B1 (en) * 1998-11-20 2002-01-08 Microsoft Corporation Pen-based interface for a notepad computer
US7881936B2 (en) * 1998-12-04 2011-02-01 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
US7293231B1 (en) * 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US6675169B1 (en) * 1999-09-07 2004-01-06 Microsoft Corporation Method and system for attaching information to words of a trie
US20020024506A1 (en) * 1999-11-09 2002-02-28 Flack James F. Motion detection and tracking system to control navigation and display of object viewers
US6922810B1 (en) * 2000-03-07 2005-07-26 Microsoft Corporation Grammar-based automatic data completion and suggestion for user input
US20020049795A1 (en) * 2000-05-15 2002-04-25 Freeman Alfred Boyd Computer assisted text input system
US20020156864A1 (en) * 2000-06-06 2002-10-24 Kniest James Newton System for wireless exchange of data with hand held devices
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7194404B1 (en) * 2000-08-31 2007-03-20 Semantic Compaction Systems Linguistic retrieval system and method
US8373660B2 (en) * 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable multimedia client
US7447627B2 (en) * 2003-10-23 2008-11-04 Microsoft Corporation Compound word breaker and spell checker
US20050195221A1 (en) * 2004-03-04 2005-09-08 Adam Berger System and method for facilitating the presentation of content via device displays
US20060020904A1 (en) * 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
US8381135B2 (en) * 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
US7653883B2 (en) * 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
US7387457B2 (en) * 2004-08-13 2008-06-17 5 Examples, Inc. One-row keyboard and approximate typing
US7949642B2 (en) * 2004-10-12 2011-05-24 Wendy W Yang System and method for managing and presenting entity information
US20060095842A1 (en) * 2004-11-01 2006-05-04 Nokia Corporation Word completion dictionary
US7886233B2 (en) * 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US8015482B2 (en) * 2005-09-14 2011-09-06 Microsoft Corporation Dynamic anchoring of annotations to editable content
JP6524933B2 (ja) 2016-02-03 2019-06-05 富士通株式会社 ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置
US11042811B2 (en) * 2016-10-05 2021-06-22 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
JP2018163495A (ja) * 2017-03-24 2018-10-18 東芝メモリ株式会社 情報処理装置、情報処理システムおよび情報処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224227A (ja) 2016-06-17 2017-12-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
US20190318258A1 (en) 2019-10-17
US11748645B2 (en) 2023-09-05
JP2019185602A (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
JP7053995B2 (ja) 最適化装置及び最適化装置の制御方法
CN110826719B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
JP7068575B2 (ja) 最適化システム、最適化装置及び最適化システムの制御方法
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US6480832B2 (en) Method and apparatus to model the variables of a data set
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
CN107016571A (zh) 数据预测方法及其系统
JP7197789B2 (ja) 最適化装置及び最適化装置の制御方法
JP2020086821A (ja) 最適化装置および最適化装置の制御方法
Vasicek et al. Automated circuit approximation method driven by data distribution
JP7323777B2 (ja) 最適化装置および最適化方法
US20220188604A1 (en) Method and Apparatus for Performing a Neural Network Operation
JP7232122B2 (ja) 物性予測装置及び物性予測方法
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JPWO2019053835A1 (ja) 演算回路、演算方法、およびプログラム
JP2001290796A (ja) 行列リオーダリング方法及び装置並びに電子回路シミュレーション方法及び装置
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
Dupačová et al. Comparison of multistage stochastic programs with recourse and stochastic dynamic programs with discrete time
JP2020079991A (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
CN110288444B (zh) 实现用户相关推荐的方法和系统
Nguyen et al. Strategic capacity portfolio planning under demand uncertainty and technological change
JP7251354B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
Núñez Ares et al. Blocking OMARS designs and definitive screening designs
JP6663875B2 (ja) 問題解決装置、方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210113

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220314

R150 Certificate of patent or registration of utility model

Ref document number: 7053995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150