(57)【要約】【課題】計算時間を短縮する。【解決手段】計算回路３が、ノイズ幅が互いに異なるように設定され、複数のニューロンの間の接続状態が互いに等しいイジング装置２ａ１〜２ａＮのそれぞれの総エネルギーを表すエネルギー値を算出する。交換制御回路４は、隣接したノイズ幅の値が設定される第１のイジング装置と第２のイジング装置（たとえば、イジング装置２ａ１，２ａ２）のエネルギー値の差に基づく交換確率で、第１のイジング装置と第２のイジング装置との間で、複数のニューロンの出力値、または、ノイズ幅の値を交換する。【選択図】図１
2018005541.tif 000002
【特許請求の範囲】
【請求項１】
複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、
前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しく、前記ノイズ値の上限と下限との幅を示すノイズ幅が互いに異なるように設定される複数のイジング装置と、
前記複数の第１のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第２のエネルギー値を算出する計算回路と、
前記ノイズ幅として第１の幅が設定される第１のイジング装置と、前記複数のイジング装置のうち、前記第１の幅に対して隣接する値をもつ第２の幅が前記ノイズ幅として設定される第２のイジング装置との間の前記複数の第２のエネルギー値の差に基づく交換確率で、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、
前記ノイズ幅を、前記複数のイジング装置に設定する制御装置と、
を有することを特徴とする情報処理装置。
【請求項２】
前記計算回路は、前記複数の第１のエネルギー値と前記複数の出力値の積和演算を行い、積和演算結果を、前記複数の第２のエネルギー値の１つとして出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記交換制御回路は、前記第１の幅よりも前記第２の幅が大きく、且つ、前記複数の第２のエネルギー値のうち、前記第１のイジング装置の前記総エネルギーを表す第３のエネルギー値よりも、前記第１のイジング装置の前記総エネルギーを表す第４のエネルギー値が小さい場合、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記交換制御回路は、前記第１の幅よりも前記第２の幅が大きく、且つ、前記第４のエネルギー値が、前記第３のエネルギー値よりも大きい場合、０より大きく１より小さい範囲でランダムに変化する乱数値よりも前記交換確率が小さくなると、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、
前記複数の第１のエネルギー値と前記複数の出力値に基づき、自身のイジング装置の総エネルギーを表す第２のエネルギー値を算出する計算回路と、
前記自身のイジング装置に設定される、前記ノイズ値の上限と下限との幅を示すノイズ幅である第１の幅に対して、隣接する値をもつ第２の幅が前記ノイズ幅として設定される他のイジング装置から、前記第２のエネルギー値に相当する前記他のイジング装置の総エネルギーを表す第３のエネルギー値を取得し、前記第２のエネルギー値と前記第３のエネルギー値との差に基づく交換確率で、前記自身のイジング装置と前記他のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、
を有することを特徴とするイジング装置。
【請求項６】
複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と、閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部を備え、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しい複数のイジング装置を有する情報処理装置の制御方法において、
前記情報処理装置が有する制御装置が、前記ノイズ値の上限と下限との幅を示すノイズ幅が前記複数のイジング装置において互いに異なるように、前記ノイズ幅を設定し、
前記情報処理装置が有する計算回路が、前記複数の第１のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第２のエネルギー値を算出し、
前記情報処理装置が有する交換制御回路が、前記ノイズ幅として第１の幅が設定される第１のイジング装置と、前記複数のイジング装置のうち、前記第１の幅に対して隣接する値をもつ第２の幅が前記ノイズ幅として設定される第２のイジング装置との間の前記複数の第２のエネルギー値の差に基づく交換確率で、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する、
ことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、イジング装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いたシミュレーテッド・アニーリングを行うイジング装置（ボルツマンマシンと呼ばれる場合もある）がある。イジング装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
【０００３】
また、複数のイジング装置をハードウェアで実現して並列処理させる手法や、各イジング装置で得られる評価値の優劣比較を行い、劣勢の評価値を更新し、同じ評価値が得られたときにその評価値を最適解とする手法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２５０３４６号公報
【特許文献２】特開平８−２７２７６０号公報
【非特許文献】
【０００５】
【非特許文献１】C. R. Schneider and H. C. Card, "Analog CMOS Deterministic Boltzmann Circuits", Journal of Solid-State Circuits, pp.907-914, 1993
【非特許文献２】A. DeGloria et al., "Efficient Implementation of the Boltzmann Machine Algorithm", IEEE Trans of NN, pp.159-163, 1993
【非特許文献３】A. DeGloria et al., "Design and Performance Evaluation of a Parallel Architecture for the Boltzmann Machine", EuroMICRO, pp.629-636, 1994
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ハードウェアで実現する従来のイジング装置でも、最適解を得るためには、逐次的な処理が多数回繰り返されるため、計算時間が長くなるという問題があった。
１つの側面では、本発明は、計算時間を短縮する情報処理装置、イジング装置及び情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と、閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しく、前記ノイズ値の上限と下限との幅を示すノイズ幅が互いに異なるように設定される複数のイジング装置と、前記複数の第１のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第２のエネルギー値を算出する計算回路と、前記ノイズ幅として第１の幅が設定される第１のイジング装置と、前記複数のイジング装置のうち、前記第１の幅に対して隣接する値をもつ第２の幅が前記ノイズ幅として設定される第２のイジング装置との間の前記複数の第２のエネルギー値の差に基づく交換確率で、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、前記ノイズ幅を、前記複数のイジング装置に設定する制御装置と、を有する情報処理装置が提供される。
【０００８】
また、１つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、前記複数の第１のエネルギー値と前記複数の出力値に基づき、自身のイジング装置の総エネルギーを表す第２のエネルギー値を算出する計算回路と、前記自身のイジング装置に設定される、前記ノイズ値の上限と下限との幅を示すノイズ幅である第１の幅に対して、隣接する値をもつ第２の幅が前記ノイズ幅として設定される他のイジング装置から、前記第２のエネルギー値に相当する前記他のイジング装置の総エネルギーを表す第３のエネルギー値を取得し、前記第２のエネルギー値と前記第３のエネルギー値との差に基づく交換確率で、前記自身のイジング装置と前記他のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、を有するイジング装置が提供される。
【０００９】
また、１つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第１のエネルギー値を算出し、前記複数の第１のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第１の値と、閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部を備え、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しい複数のイジング装置を有する情報処理装置の制御方法において、前記情報処理装置が有する制御装置が、前記ノイズ値の上限と下限との幅を示すノイズ幅が前記複数のイジング装置において互いに異なるように、前記ノイズ幅を設定し、前記情報処理装置が有する計算回路が、前記複数の第１のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第２のエネルギー値を算出し、前記情報処理装置が有する交換制御回路が、前記ノイズ幅として第１の幅が設定される第１のイジング装置と、前記複数のイジング装置のうち、前記第１の幅に対して隣接する値をもつ第２の幅が前記ノイズ幅として設定される第２のイジング装置との間の前記複数の第２のエネルギー値の差に基づく交換確率で、前記第１のイジング装置と前記第２のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する、情報処理装置の制御方法が提供される。
【発明の効果】
【００１０】
開示の情報処理装置、イジング装置及び情報処理装置の制御方法では、計算時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の情報処理装置の一例を示す図である。
【図２】異なる温度が設定される複数のアンサンブルのノード状態の交換の様子を示す図である。
【図３】異なる温度が設定される複数のアンサンブルのエネルギー関数の様子を示す図である。
【図４】第２の実施の形態の情報処理装置の一例を示す図である。
【図５】出力値ｘiが１となる確率Ｐi（ｈi）の一例を示す図である。
【図６】計算回路の一例を示す図である。
【図７】交換制御回路の一例を示す図である。
【図８】フラグ生成回路の一例を示す図である。
【図９】フラグ生成回路の他の例を示す図である。
【図１０】交換回路の一例を示す図である。
【図１１】選択信号生成回路の入出力信号の一例の関係を示す真理値表である。
【図１２】状態選択回路の入出力信号の一例の関係を示す真理値表である。
【図１３】第２の実施の形態の情報処理装置の動作の一例を示すフローチャートである。（その１）
【図１４】第２の実施の形態の情報処理装置の動作の一例を示すフローチャートである。（その２）
【図１５】第３の実施の形態の情報処理装置の一例を示す図である。
【図１６】交換制御回路の一例を示す図である。
【図１７】温度生成回路の一例を示す図である。
【図１８】温度生成回路の入出力信号の一例の関係を示す真理値表である。
【図１９】第３の実施の形態の情報処理装置の動作の一例を示すフローチャートである。
【図２０】情報処理装置の動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置の一例を示す図である。
【００１３】
情報処理装置１は、イジング装置２ａ１〜２ａＮと、計算回路３と、交換制御回路４と、制御装置５とを有している。制御装置５により、エネルギー関数を用いた最適化問題がイジング装置２ａ１〜２ａＮにマッピングされる。
【００１４】
たとえば、イジング装置２ａ１〜２ａＮのそれぞれは、１つの半導体集積回路（チップ）で実現される。
イジング装置２ａ１〜２ａＮのそれぞれは同様の要素を有している。たとえば、イジング装置２ａｋは、ニューロン回路部１０ａｋと、制御回路１０ｂｋとを有している。
【００１５】
ニューロン回路部１０ａｋは、複数のニューロンの間の接続の強さを示す複数の重み値と、複数のニューロンから出力される複数の出力値とに基づき、複数のニューロンの数に対応した数の複数のエネルギー値（以下ローカルフィールド値という）を算出する。
【００１６】
なお、複数の重み値は、計算対象の最適化問題に応じて、たとえば、制御装置５によって設定される。複数の重み値が、制御装置５によりイジング装置２ａ１〜２ａＮに書き込まれることで、最適化問題がイジング装置２ａ１〜２ａＮにマッピングされる。
【００１７】
さらに、ニューロン回路部１０ａｋは、複数のローカルフィールド値のそれぞれにノイズ値を加算して得られる複数の値と、閾値との比較結果に基づき、上記複数の出力値を決定し出力する。以下では、ニューロンの数をｎ個とする。
【００１８】
図１の例では、ニューロン回路部１０ａｋは、ｎ個のニューロンの機能を実現するｎ個のニューロン回路１１ｋ１，１１ｋ２，…，１１ｋｎを有している。ニューロン回路１１ｋ１〜１１ｋｎのそれぞれにおいて、上記のようなローカルフィールド値の算出や、ニューロンの１ビットの出力値を決定し出力する処理が行われる。また、ニューロン回路１１ｋ１〜１１ｋｎは、ｎビットの出力値のうち何れか１ビットの出力値の変化時に更新信号を受け、更新信号に基づいてローカルフィールド値を更新する機能を有する。
【００１９】
制御回路１０ｂｋは、ｎビットの出力値のうち何れか１ビットの出力値の変化時に、変化後の出力値に基づく上記更新信号を、ニューロン回路１１ｋ１〜１１ｋｎに供給する。たとえば、更新信号は、変化後の出力値や、出力値が変化したニューロンの識別情報に基づく重み値の選択信号を含む。
【００２０】
上記のような動作を行う制御回路１０ｂｋは、たとえば、比較回路や選択回路などで実現できる。なお、制御回路１０ｂｋは、プロセッサであってもよい。プロセッサは、たとえば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサは、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２１】
上記のような要素を含むイジング装置２ａ１〜２ａＮは、複数の重み値に基づく複数のニューロンの間の接続状態が互いに等しい。つまり、イジング装置２ａ１〜２ａＮに含まれるニューロン回路部１０ａ１，１０ａ２，…，１０ａｋ，…，１０ａＮ内の複数のニューロン回路の接続状態は互いに等しい。このため、複数の重み値に基づく複数のニューロンの間の接続状態が互いに等しいイジング装置２ａ１〜２ａＮのそれぞれでは、同一の最適化問題が独立に計算される。
【００２２】
また、イジング装置２ａ１〜２ａＮには、ノイズ値の上限と下限との幅を示すノイズ幅が異なるように設定されている。
計算回路３は、複数のローカルフィールド値と、ｎビットの出力値とに基づき、イジング装置２ａ１〜２ａＮのそれぞれの総エネルギーを表す複数のエネルギー値（Ｅ１，Ｅ２，…，Ｅｋ，…，ＥＮ）を算出する。計算回路３は、たとえば、ニューロン回路１１ｋ１で得られるローカルフィールド値とニューロン回路１１ｋ１の出力値とを乗算する。計算回路３は、ニューロン回路１１ｋ２〜１１ｋｎで得られるローカルフィールド値とニューロン回路１１ｋ２〜１１ｋｎの出力値に対しても同様の乗算を行う。そして、計算回路３は、それらの乗算結果を積算することで、イジング装置２ａｋのエネルギー値Ｅｋを算出する。つまり、計算回路３は、ニューロン回路１１ｋ１〜１１ｋｎで得られるローカルフィールド値と出力値の積和演算によって、エネルギー値Ｅｋを算出する。
【００２３】
交換制御回路４は、後述する拡張アンサンブル法を実現するために、イジング装置２ａ１〜２ａＮのうち、ノイズ幅の値が隣接して設定されている２つのイジング装置間で、上記エネルギー値の差に基づく交換確率でｎビットの出力値、またはノイズ幅を交換する。
【００２４】
なお、ノイズ幅は、後述する式（５）の実効温度Ｔに相当する。ノイズ幅を大きくすることは、実効温度Ｔを大きくすることに相当する。図１では、イジング装置２ａ１〜２ａＮにおいて、イジング装置２ａ１から順に、実効温度ＴとしてＴ1，Ｔ2，…，Ｔk，…，ＴNが設定されている例が示されている。
【００２５】
たとえば、Ｔ1＞Ｔ2＞…＞Ｔk＞…＞ＴNであるとき、ノイズ幅として実効温度Ｔ1に相当する第１の幅が設定されているイジング装置２ａ１と、ノイズ幅として実効温度Ｔ2に相当する第２の幅が設定されているイジング装置２ａ２では、ノイズ幅の値が隣接する。そのため、交換制御回路４は、イジング装置２ａ１のエネルギー値Ｅ１とイジング装置２ａ２のエネルギー値Ｅ２との差に基づく交換確率で、イジング装置２ａ１，２ａ２のそれぞれにおけるｎビットの出力値、またはそれぞれに設定されたノイズ幅を交換する。
【００２６】
なお、図１では、計算回路３及び交換制御回路４が、イジング装置２ａ１〜２ａＮの外部に備えられている場合が例示されているが、何れか一方または両方がイジング装置２ａ１〜２ａＮ内に設けられていてもよい。
【００２７】
制御装置５は、互いに異なるノイズ幅を、イジング装置２ａ１〜２ａＮに設定する。制御装置５は、たとえば外部から起動信号が入力されると、実効温度ＴがＴ1＞Ｔ2＞…＞Ｔk＞…＞ＴNとなるように、ノイズ幅をイジング装置２ａ１〜２ａＮに設定する。
【００２８】
また、制御装置５は、イジング装置２ａ１〜２ａＮの何れかからｎビットの出力値の変化が収束したことを表すニューロン収束信号を受け付けると、計算処理の終了を表す終了信号を出力する。
【００２９】
ここで、情報処理装置１が実現する拡張アンサンブル法（交換モンテカルロ法またはアンサンブル交換法と呼ばれる場合もある）について、図２及び図３を用いて説明する。
拡張アンサンブル法は、温度の異なる複数のネットワーク（以下アンサンブルと呼ぶ）で確率的探索を行いながら、温度が隣接して設定されているアンサンブル間で各アンサンブルのエネルギーの差分に応じ、各アンサンブルのノードの状態を交換する方法である。この方法により、局所解に陥ることが防止され、より高速に最適値に収束させることが可能となる。
【００３０】
図２は、異なる温度が設定される複数のアンサンブルのノード状態の交換の様子を示す図である。
たとえば、図２では、複数（４つ）のアンサンブルが用意されており、各アンサンブルの温度はＴ１〜Ｔ４（Ｔ４＞Ｔ３＞Ｔ２＞Ｔ１）であるとする。拡張アンサンブル法では、温度が隣接して設定されているアンサンブル同士で、所定の交換確率に基づき、ノード状態が交換される。交換確率はｍｉｎ（１，Ｒ）とすることができ、Ｒは以下の式（１）で表される。
【００３１】
【数１】
2018005541.tif 000003
【００３２】
なお、式（１）において、Ｔq，Ｔq+1は、温度が隣接して設定されているｑ番目のアンサンブルとｑ＋１番目のアンサンブルにおける温度をそれぞれ表している。また、Ｅtotal（Ｘq），Ｅtotal（Ｘq+1）は、上記２つのアンサンブルのそれぞれの総エネルギーを表している。また、Ｘq，Ｘq+1は、それぞれ、ｑ番目及びｑ＋１番目のアンサンブルのノード状態をすべて含んでいるものとする。
【００３３】
このような交換確率では、Ｔq＜Ｔq+1で、且つ、Ｅtotal（Ｘq）＞Ｅtotal（Ｘq+1）であるとき、Ｒは１を超えるので、式（１）より、交換確率は１となり、ノード状態の交換が行われる。たとえば、温度がＴ１のアンサンブルと温度がＴ２のアンサンブル間では、温度がＴ２のアンサンブルのエネルギーが、温度がＴ１のアンサンブルのエネルギーよりも小さいときには、ノード状態の交換が行われる。
【００３４】
一方、Ｔq＜Ｔq+1で、且つ、Ｅtotal（Ｘq）＜Ｅtotal（Ｘq+1）であるとき、確率Ｒで、ノード状態の交換が行われる。
たとえば、温度がＴ１のアンサンブルと温度がＴ２のアンサンブル間では、温度がＴ２のアンサンブルのエネルギーが、温度がＴ１のアンサンブルのエネルギーよりも大きいときには、確率Ｒでノード状態の交換が行われる。
【００３５】
図３は、異なる温度が設定される複数のアンサンブルのエネルギー関数の様子を示す図である。なお、図３には、エネルギー関数を表す曲線（（１）〜（６））が示されており、上方の曲線（（１）側）ほど、下方の曲線（（６）側）よりも高い温度が設定されるアンサンブルのエネルギー関数を示し、また、曲線のカーブが緩やかになっている。
【００３６】
たとえば、曲線（１）は、曲線（６）よりも曲線が緩やかであるために、曲線（６）の場合よりも局所解に陥りにくい。
拡張アンサンブル法では、温度が隣接して設定されているアンサンブル間でノード状態が上記のように交換される。このため、たとえば、曲線（６）のエネルギー関数となるアンサンブルのノード状態が局所解に陥っても、そのアンサンブルのノード状態を、上記の交換確率で、曲線（５）のエネルギー関数となる温度が高いアンサンブルのノード状態に遷移させることができる。これにより、簡単に局所解から脱出でき、シミュレーテッド・アニーリングよりも高速に最適値に収束させることが可能となる。
【００３７】
なお、上記の説明では、ノード状態を交換するとしたが、温度を交換するようにしても同様の効果が得られる。
本実施の形態の情報処理装置１では、上記のような拡張アンサンブル法をハードウェアで実現している。
【００３８】
上記の複数のアンサンブルは、イジング装置２ａ１〜２ａＮに相当し、ノード状態は、ニューロン回路部１０ａ１〜１０ａＮのそれぞれのｎビットの出力値に相当する。また、温度は、実効温度Ｔ1〜ＴN（またはノイズ幅）に相当する。
【００３９】
また、式（６）に含まれるＥtotal（Ｘq），Ｅtotal（Ｘq+1）を算出するために、計算回路３は、複数のローカルフィールド値と、ｎビットの出力値とに基づき、イジング装置２ａ１〜２ａＮのそれぞれの総エネルギーを表す複数のエネルギー値を算出する。
【００４０】
交換制御回路４は、イジング装置２ａ１〜２ａＮのうち、ノイズ幅の値が隣接して設定されている２つのイジング装置間で、上記エネルギー値の差に基づく交換確率ｍｉｎ（１，Ｒ）で、ｎビットの出力値、またはノイズ幅を交換する。
【００４１】
以上のように、本実施の形態の情報処理装置１によれば、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
【００４２】
また、交換確率を算出する際に用いられるエネルギー値は、各ニューロンのローカルフィールド値と出力値との積和演算で求められるので、簡単な回路構成の計算回路３でエネルギー値を算出できる。
【００４３】
［第２の実施の形態］
図４は、第２の実施の形態の情報処理装置の一例を示す図である。なお、図４において、図１に示した要素と同一の要素については同一符号が付されている。
【００４４】
情報処理装置１ａは、イジング装置２ｂ１〜２ｂＮと、制御装置５と、ランダム信号生成回路６とを有している。なお、図４では、イジング装置２ｂ１〜２ｂＮにおいて、イジング装置２ｂ１から順に、実効温度ＴとしてＴ1，Ｔ2，…，ＴNが設定されている例が示されている。以下では、Ｔ1＞Ｔ2＞…＞ＴNであるとする。
【００４５】
イジング装置２ｂ１〜２ｂＮは、それぞれ同様の要素を成している。以下では、イジング装置２ｂ１〜２ｂＮのうち、イジング装置２ｂ１を例にして説明する。
イジング装置２ｂ１は、ニューロン回路部１０ａ１、制御回路１０ｂ１、計算回路１０ｃ１、交換制御回路１０ｄ１を有している。また、イジング装置２ｂ１は、図１では図示を省略したが、ノイズ発生回路１０ｅ１と、ランダム信号生成回路１０ｆ１とを有している。なお、計算回路１０ｃ１及び交換制御回路１０ｄ１は、第１の実施の形態の計算回路３及び交換制御回路４と同様の機能を有している。
【００４６】
ニューロン回路部１０ａ１は、ｎ個のニューロン回路１１１１〜１１１ｎを有している。図４の例では、ＤｅＧｌｏｒｉａアルゴリズムと呼ばれるアルゴリズムに基づく処理を行うニューロン回路１１１１〜１１１ｎの例が示されている。
【００４７】
（ニューロン回路の一例）
図４では、ニューロン回路１１１１〜１１１ｎのうち、ニューロン回路１１１１，１１１ｎが一例として示されている。ニューロン回路１１１１〜１１１ｎのうち、ニューロン回路１１１１，１１１ｎ以外のニューロン回路も同様の回路となっている。
【００４８】
ニューロン回路１１１１，１１１ｎは、レジスタ２０ａ１，２０ａｎと、選択回路２１ａ１，２１ａｎ，２２ａ１，２２ａｎと、乗算回路２３ａ１，２３ａｎとを有している。さらにニューロン回路１１１１，１１１ｎは、加算回路２４ａ１，２４ａｎと、レジスタ２５ａ１，２５ａｎと、加算回路２６ａ１，２６ａｎとを有している。さらに、ニューロン回路１１１１，１１１ｎは、比較回路２７ａ１，２７ａｎと、ＸＯＲ（Exclusive OR）回路２８ａ１，２８ａｎと、レジスタ２９ａ１，２９ａｎとを有している。
【００４９】
レジスタ２０ａ１は、ｎ個の重み値Ｗ12，Ｗ13，…，Ｗ1nを格納し、レジスタ２０ａｎは、ｎ個の重み値Ｗn1，Ｗn2，…，Ｗnnを格納する。
なお、上記のような重み値は、制御装置５により、計算対象の問題に応じて設定され、レジスタ２０ａ１〜２０ａｎに記憶される。なお、上記のような重み値は、ＲＡＭ（Random Access Memory）などのメモリに記憶されてもよい。
【００５０】
選択回路２１ａ１は、制御回路１０ｂ１から供給される選択信号に基づき、レジスタ２０ａ１に格納されている重み値Ｗ12〜Ｗ1nのうち１つを選択して出力する。選択回路２１ａｎは、選択信号に基づき、レジスタ２０ａｎに格納されている重み値Ｗn1〜Ｗnnのうち１つを選択して出力する。
【００５１】
たとえば、ニューロン回路１１１１の出力値が変化したとき、選択信号に基づき、ニューロン回路１１１ｎの選択回路２１ａｎは、重み値Ｗn1を選択する。
選択回路２２ａ１〜２２ａｎのそれぞれは、制御回路１０ｂ１から出力される、出力値が更新されるニューロン回路の出力値の変化後の値（０か１）に基づき、１または−１を選択して出力する。変化後の値が０のときには、選択回路２２ａ１〜２２ａｎは、−１を選択して出力し、変化後の値が１のときには、選択回路２２ａ１〜２２ａｎは、１を選択して出力する。この理由については後述する。
【００５２】
乗算回路２３ａ１は、選択回路２１ａ１から出力される値と、選択回路２２ａ１から出力される値との積を出力する。乗算回路２３ａｎは、選択回路２１ａｎから出力される値と、選択回路２２ａｎから出力される値との積を出力する。
【００５３】
加算回路２４ａ１は、乗算回路２３ａ１から出力される値と、レジスタ２５ａ１に格納されている値とを加算して出力する。加算回路２４ａｎは、乗算回路２３ａｎから出力される値と、レジスタ２５ａｎに格納されている値とを加算して出力する。
【００５４】
レジスタ２５ａ１は、図示しないクロック信号に同期して、加算回路２４ａ１から出力される値を取り込む。レジスタ２５ａｎは、図示しないクロック信号に同期して、加算回路２４ａｎから出力される値を取り込む。レジスタ２５ａ１〜２５ａｎは、たとえば、フリップフロップである。なお、初期値は後述するバイアス値である。
【００５５】
なお、レジスタ２５ａ１〜２５ａｎに取り込まれた値が、前述したローカルフィールド値であり、図４では、ｈ1，ｈnと表記されている。
加算回路２６ａ１は、レジスタ２５ａ１から出力される値に、ノイズ発生回路１０ｅ１から出力されるノイズ値を加算して出力する。加算回路２６ａｎは、レジスタ２５ａｎから出力される値に、ノイズ発生回路１０ｅ１から出力されるノイズ値を加算して出力する。ノイズ値の例については後述する。
【００５６】
なお、ノイズ発生回路１０ｅ１は、制御装置５の制御のもと、ノイズ値を出力する。また、ノイズ発生回路１０ｅ１は、たとえば、増幅回路を有している。制御装置５が増幅回路の増幅率を変化させることで、実効温度に対応するノイズ幅が制御可能である。
【００５７】
比較回路２７ａ１は、加算回路２６ａ１から出力される値が、閾値よりも大きいときには１を出力し、閾値以下のときには０を出力する。比較回路２７ａｎは、加算回路２６ａｎから出力される値が、閾値よりも大きいときには１を出力し、閾値以下のときには０を出力する。
【００５８】
なお、イジング装置２ｂ１において同時に複数のニューロン回路の出力値が更新されないように、比較回路２７ａ１〜２７ａｎは、ランダム信号生成回路１０ｆ１から出力される乱数値によって、ランダムに１つが有効になり、他は無効になる。ランダム信号生成回路１０ｆ１としては、ＬＦＳＲ（Linear Feedback Shift Registers）などを用いることができる。なお、ノイズ発生回路１０ｅ１も、ランダム信号生成回路１０ｆ１と同様に、たとえば、ＬＦＳＲを用いて実現可能である。
【００５９】
ＸＯＲ回路２８ａ１は、比較回路２７ａ１から出力される値または交換制御回路１０ｄ１から供給される値と、レジスタ２９ａ１に格納されている値とが、一致しているときは０を出力し、異なるときは１を出力する。ＸＯＲ回路２８ａｎは、比較回路２７ａｎから出力される値または交換制御回路１０ｄ１から供給される値と、レジスタ２９ａｎに格納されている値とが、一致しているときは０を出力し、異なるときは１を出力する。
【００６０】
図示を省略しているが、たとえば、各比較回路２７ａ１〜２７ａｎの出力側には、交換制御回路１０ｄ１が出力するｎビットの出力値Ｘ1newのうちの１ビットの値を選択するか、比較回路２７ａ１〜２７ａｎから出力される値を選択する比較回路が設けられる。このｎ個の比較回路は、それぞれ、交換制御回路１０ｄ１がｎビットの出力値を出力するときにはその出力値の１ビットの値を選択し、比較回路２７ａ１〜２７ａｎの出力値の代わりに、ＸＯＲ回路２８ａ１〜２８ａｎ及びレジスタ２９ａ１〜２９ａｎに供給する。
【００６１】
なお、交換制御回路１０ｄ１が出力するｎビットの出力値Ｘ1newは、ニューロン回路部１０ａ１のｎビットの出力値または、イジング装置２ｂ２のニューロン回路部（図示せず）のｎビットの出力値である。ｎビットの出力値Ｘ1newのうち、たとえば、ＸＯＲ回路２８ａ１には、１ビット目の値が供給され、ＸＯＲ回路２８ａｎには、ｎビット目の値が供給される。
【００６２】
レジスタ２９ａ１は、ＸＯＲ回路２８ａ１から出力される値が１となると、比較回路２７ａ１または交換制御回路１０ｄ１から供給される値を取り込む。これにより、ニューロン回路１１１１の出力値ｘ1が変化する（更新される）。レジスタ２９ａｎは、ＸＯＲ回路２８ａｎから出力される値が１となると、比較回路２７ａｎまたは交換制御回路１０ｄ１から供給される値を取り込む。これにより、ニューロン回路１１１ｎの出力値ｘnが変化する。
【００６３】
以上のような、ニューロン回路１１１１〜１１１ｎは、イジング型のエネルギー関数の演算を比較的小規模なハードウェアで実現するものである。なお、イジング型のエネルギー関数Ｅ（ｘ）は、たとえば、以下の式（２）で定義される。
【００６４】
【数２】
2018005541.tif 000004
【００６５】
右辺の１項目は、全ニューロン回路から選択可能な２つのニューロン回路の全組み合わせについて、漏れと重複なく、２つのニューロン回路の出力値と重み値との積を積算したものである。なお、Ｗij＝Ｗji、Ｗii＝０である。
【００６６】
右辺の２項目は、全ニューロン回路のそれぞれのバイアス値と出力値との積を積算したものである。ｂiは、ｉ番目のニューロン回路のバイアス値を示している。
上記のようなエネルギー関数Ｅ（ｘ）をハードウェアで表現するため、図４に示したニューロン回路１１１１〜１１１ｎのそれぞれは、ローカルフィールド値ｈ1〜ｈnを演算する。たとえば、ニューロン回路１１１１〜１１１ｎのうち、ｉ（１≦ｉ≦ｎ）番目のニューロン回路におけるローカルフィールド値ｈiは以下の式（３）で表される。
【００６７】
【数３】
2018005541.tif 000005
【００６８】
右辺の１項目は、ｉ番目のニューロン回路と、イジング装置２ｂ１内の他のニューロン回路のそれぞれとの間の接続の強さを示す複数の重み値と、ニューロン回路１１１１〜１１１ｎのそれぞれの出力値との積を積算したものである。
【００６９】
イジング装置２ｂ１のニューロン回路１１１１〜１１１ｎのうち、一度に出力値が更新されるニューロン回路の数を１つとすると、そのニューロン回路の接続先では、元のローカルフィールド値に対して、その更新による変化分を加算または減算すればよい。
【００７０】
たとえば、ｉ番目のニューロン回路に接続されているｊ（１≦ｊ≦ｎ）番目のニューロン回路の出力値ｘj（０または１）が、１−ｘjに変化したとき、ｉ番目のニューロン回路のローカルフィールド値の変化分Δｈiは、以下の式（４）で表される。
【００７１】
【数４】
2018005541.tif 000006
【００７２】
式（４）において、１−２ｘjは、出力値ｘjが、０から１に変化したときには、＋１となり、１から０に変化したときには、−１となる。
このような１−２ｘjの演算は、図４に示した、選択回路２２ａ１〜２２ａｎで実現できる。
【００７３】
また、既述の通り、図４に示したようなニューロン回路１１１１〜１１１ｎでは、ローカルフィールド値ｈ1〜ｈnにノイズ値を加えた値に対して、比較回路２７ａ１〜２７ａｎで閾値との比較が行われる。
【００７４】
たとえば、比較回路２７ａ１〜２７ａｎの出力値（ニューロン回路１１１１〜１１１ｎの出力値ｘ1〜ｘn）が１となる確率が、シグモイド関数に従うようにノイズ値が加えられる。たとえば、ｉ番目のニューロン回路の出力値ｘiが１となる確率Ｐi（ｈi）が、以下の式（５）の関係になるように、ノイズ値が加えられる。
【００７５】
【数５】
2018005541.tif 000007
【００７６】
式（５）において、Ｔは、実効温度である。
式（５）に示すような確率Ｐi（ｈi）を得るために、加算するノイズ値ｎｓの確率密度関数ｐ（ｎｓ）は、以下の式（６）のようになる。
【００７７】
【数６】
2018005541.tif 000008
【００７８】
図５は、出力値ｘiが１となる確率Ｐi（ｈi）の一例を示す図である。
横軸は、ローカルフィールド値ｈiにノイズ値ｎｓを加算した値を示し、縦軸は、出力値ｘiが１となる確率を示している。
【００７９】
波形３０は、ローカルフィールド値ｈiに、式（６）に示すような確率密度関数ｐ（ｎｓ）に従うノイズ値ｎｓを加算した値が、ｉ番目のニューロン回路の比較回路に入力されたときに、出力値ｘiが１となる確率Ｐi（ｈi）を示す。波形３１は、ローカルフィールド値ｈiが、ｉ番目のニューロン回路の比較回路に入力されたときに、出力値ｘiが１となる確率Ｐi（ｈi）を示す。
【００８０】
波形３１に示すように、ノイズ値ｎｓがローカルフィールド値ｈiに加算されないときは、ローカルフィールド値ｈiが、閾値Ｖｔｈ以下では、Ｐi（ｈi）＝０、閾値Ｖｔｈを超えると、Ｐi（ｈi）＝１となる。
【００８１】
これに対して、ノイズ値ｎｓがローカルフィールド値ｈiに加算されるときは、波形３０に示すように、シグモイド関数にしたがって確率Ｐi（ｈi）が変化する。
以上で、ニューロン回路１１１１〜１１１ｎの説明を終える。
【００８２】
（計算回路）
図６は、計算回路の一例を示す図である。
計算回路１０ｃ１は、乗算回路４０、加算回路４１、レジスタ４２を有する。
【００８３】
乗算回路４０は、ニューロン回路部１０ａ１のｎビットの出力値Ｘ1のうち、ｉ番目のビットの値である出力値ｘiと、ニューロン回路１１１１〜１１１ｎのうち、ｉ番目のニューロン回路で得られるローカルフィールド値ｈiとの積を出力する。
【００８４】
加算回路４１は、レジスタ４２に記憶されている値と、乗算回路４０から出力される値とを加算する。
レジスタ４２は、図示しないクロック信号に同期して、加算回路４１から出力される値を取り込み出力する。
【００８５】
このような計算回路１０ｃ１は、ｉ＝１〜ｎである出力値ｘi及びローカルフィールド値ｈiを取得して、上記の回路構成により、出力値ｘ1〜ｘnと、ローカルフィールド値ｈ1〜ｈnとの積和演算を行う。そして、計算回路１０ｃ１は、積和演算結果を、イジング装置２ａ１の総エネルギーを表すエネルギー値Ｅtotal（Ｘ1）として出力する。
【００８６】
（交換制御回路）
交換制御回路１０ｄ１は、前述した拡張アンサンブル法を実現するために、イジング装置２ｂ１，２ｂ２間で、上記エネルギー値の差に基づく交換確率で、ｎビットの出力値を交換する。
【００８７】
図７は、交換制御回路の一例を示す図である。
なお、図７の交換制御回路１０ｄｑは、交換制御回路１０ｄ１〜１０ｄＮのうち、イジング装置２ｂ１〜２ｂＮにおいて、ｑ（１≦ｑ≦Ｎ）番目のイジング装置に含まれている交換制御回路を示している。
【００８８】
交換制御回路１０ｄｑは、フラグ生成回路５０，５１と、ＡＮＤ回路５２と、交換回路５３とを有している。
フラグ生成回路５０は、ｑ番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq）と、ｑ番目のイジング装置よりも高い実効温度Ｔq+1が設定されたｑ＋１番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq+1）を受ける。また、フラグ生成回路５０は、ランダム信号生成回路６から出力される乱数値を受ける。フラグ生成回路５０は、エネルギー値Ｅtotal（Ｘq），Ｅtotal（Ｘq+1）及び乱数値に基づき、ｑ番目のイジング装置とｑ＋１番目のイジング装置のニューロン回路部のｎビットの出力値Ｘq，Ｘq+1を交換するか否かを示すフラグ信号Ｆｌｇｄを出力する。フラグ信号Ｆｌｇｄが１のときは、出力値Ｘq，Ｘq+1を交換することを示し、フラグ信号Ｆｌｇｄが０のときは、出力値Ｘq，Ｘq+1を交換しないことを示す。
【００８９】
フラグ生成回路５１は、ｑ番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq）と、ｑ番目のイジング装置よりも低い実効温度Ｔq-1が設定されたｑ−１番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq-1）を受ける。また、フラグ生成回路５１は、ランダム信号生成回路６から出力される乱数値を受ける。フラグ生成回路５１は、エネルギー値Ｅtotal（Ｘq），Ｅtotal（Ｘq-1）及び乱数値に基づき、ｑ番目のイジング装置とｑ−１番目のイジング装置のニューロン回路部のｎビットの出力値Ｘq，Ｘq-1を交換するか否かを示すフラグ信号Ｆｌｇｕを出力する。フラグ信号Ｆｌｇｕが１のときは、出力値Ｘq，Ｘq-1を交換することを示し、フラグ信号Ｆｌｇｕが０のときは、出力値Ｘq，Ｘq-1を交換しないことを示す。
【００９０】
図８は、フラグ生成回路の一例を示す図である。
なお、図８では、フラグ生成回路５０の一例を示している。
フラグ生成回路５０として、Ｍｅｔｒｏｐｏｌｉｓ−Ｈａｓｔｉｎｇｓアルゴリズムと呼ばれるアルゴリズムに基づいて動作する回路を用いることができる。
【００９１】
フラグ生成回路５０は、エネルギー比較回路６０と、確率演算回路６１と、確率比較回路６２と、ＯＲ回路６３とを有している。
エネルギー比較回路６０は、エネルギー値Ｅtotal（Ｘq），Ｅtotal（Ｘq+1）を比較する。そして、エネルギー比較回路６０は、エネルギー値Ｅtotal（Ｘq）がエネルギー値Ｅtotal（Ｘq+1）よりも大きい場合には１を出力し、エネルギー値Ｅtotal（Ｘq）がエネルギー値Ｅtotal（Ｘq+1）よりも小さい場合には０を出力する。
【００９２】
確率演算回路６１は、式（１）に示した確率Ｒを算出する。確率演算回路６１は、減算回路６１ａ、乗算回路６１ｂ、ｅｘｐ計算回路６１ｃを有している。
減算回路６１ａは、エネルギー値Ｅtotal（Ｘq）とエネルギー値Ｅtotal（Ｘq+1）の差を演算する。
【００９３】
乗算回路６１ｂは、減算回路６１ａでの減算結果と定数Ｋとの積を出力する。定数Ｋは、（１／Ｔq）−（１／Ｔq+1）であり、たとえば、制御装置５によって予め計算され、図示しないレジスタに記憶されている。
【００９４】
ｅｘｐ計算回路６１ｃは、乗算回路６１ｂから出力される値のｅｘｐ演算結果を確率Ｒとして出力する。
確率比較回路６２は、確率Ｒと、ランダム信号生成回路６が出力する乱数値とを比較する。なお、ランダム信号生成回路６が出力する乱数値は０より大きく、１よりも小さいものとする。確率比較回路６２は、乱数値が確率Ｒよりも大きい場合には、１を出力し、乱数値が確率Ｒよりも小さい場合には、０を出力する。
【００９５】
ＯＲ回路６３は、エネルギー比較回路６０から出力される値と、確率比較回路６２から出力される値のＯＲ論理演算結果を、フラグ信号Ｆｌｇｄとして出力する。
なお、フラグ生成回路５１もフラグ生成回路５０と同様の回路で実現できる。
【００９６】
フラグ生成回路５１では、図８において、エネルギー値Ｅtotal（Ｘq）として、エネルギー値Ｅtotal（Ｘq-1）が用いられ、エネルギー値Ｅtotal（Ｘq+1）として、エネルギー値Ｅtotal（Ｘq）が用いられる。また、フラグ信号Ｆｌｇｄの代わりにフラグ信号Ｆｌｇｕが出力される。
【００９７】
図９は、フラグ生成回路の他の例を示す図である。
図９では、図７に示したフラグ生成回路５０の他の例として、Ｈｅａｔ−Ｂａｔｈアルゴリズムと呼ばれるアルゴリズムに基づいて動作するフラグ生成回路５０ａが示されている。なお、図７に示したフラグ生成回路５１についても、フラグ生成回路５０ａと同様の回路で実現できる。
【００９８】
フラグ生成回路５０ａは、確率演算回路７１と、確率比較回路７２とを有している。
確率演算回路７１は、以下の式（７）で表される確率Ｒを算出する。確率演算回路７１は、減算回路７１ａ、乗算回路７１ｂ、ｅｘｐ計算回路７１ｃ、加算回路７１ｄ、除算回路７１ｅを有している。
【００９９】
【数７】
2018005541.tif 000009
【０１００】
減算回路７１ａ、乗算回路７１ｂ、ｅｘｐ計算回路７１ｃは、図８に示した減算回路６１ａ、乗算回路６１ｂ，ｅｘｐ計算回路６１ｃと同様の演算を行う。
加算回路７１ｄは、ｅｘｐ計算回路６１ｃでの演算結果に１を加算する。除算回路７１ｅは、１を加算回路７１ｄでの加算結果で割り、その結果を確率Ｒとして出力する。
【０１０１】
確率比較回路７２は、確率Ｒと、ランダム信号生成回路６が出力する乱数値とを比較する。なお、ランダム信号生成回路６が出力する乱数値は０より大きく、１よりも小さいものとする。確率比較回路７２は、乱数値が確率Ｒよりも大きい場合には、１をフラグ信号Ｆｌｇｄとして出力し、乱数値が確率Ｒよりも小さい場合には、０をフラグ信号Ｆｌｇｄとして出力する。
【０１０２】
図７の説明に戻る。
ＡＮＤ回路５２は、フラグ生成回路５０，５１が出力するフラグ信号Ｆｌｇｄ，ＦｌｇｕのＡＮＤ論理演算結果を、調停信号Ａｒｂｉとして出力する。すなわち、ＡＮＤ回路５２は、フラグ信号Ｆｌｇｄ，Ｆｌｇｕがともに１の場合には、調停信号Ａｒｂｉとして１を出力し、それ以外の場合には、調停信号Ａｒｂｉとして０を出力する。
【０１０３】
交換回路５３は、フラグ生成回路５０，５１が出力するフラグ信号Ｆｌｇｄ，Ｆｌｇｕと、ＡＮＤ回路５２が出力する調停信号Ａｒｂｉと、ｑ−１，ｑ，ｑ＋１番目のイジング装置のニューロン回路部のｎビットの出力値Ｘq-1，Ｘq，Ｘq+1とを受ける。交換回路５３は、これらに基づき、ｑ番目のイジング装置のニューロン回路部のｎビットの新たな出力値Ｘqnewを出力する。
【０１０４】
図１０は、交換回路の一例を示す図である。
交換回路５３は、選択信号生成回路８０、状態選択回路８１を有している。
選択信号生成回路８０は、フラグ信号Ｆｌｇｄ，Ｆｌｇｕと、ＡＮＤ回路５２が出力する調停信号Ａｒｂｉとに基づき、以下の図１１に示す真理値表にしたがって、選択信号Ｓｅｌｕ，Ｓｅｌｄを出力する。
【０１０５】
図１１は、選択信号生成回路の入出力信号の一例の関係を示す真理値表である。
図１１の真理値表に示されているように、選択信号生成回路８０は、フラグ信号Ｆｌｇｕの値が１、フラグ信号Ｆｌｇｄの値が０、調停信号Ａｒｂｉの値が０のとき、選択信号Ｓｅｌｕとして１、選択信号Ｓｅｌｄとして０を出力する。
【０１０６】
また、選択信号生成回路８０は、フラグ信号Ｆｌｇｕの値が０、フラグ信号Ｆｌｇｄの値が１、調停信号Ａｒｂｉの値が０のとき、選択信号Ｓｅｌｕとして０、選択信号Ｓｅｌｄとして１を出力する。
【０１０７】
また、選択信号生成回路８０は、フラグ信号Ｆｌｇｕ，Ｆｌｇｄの値が０、調停信号Ａｒｂｉの値が０のとき、選択信号Ｓｅｌｕ，Ｓｅｌｄとして０を出力する。
また、選択信号生成回路８０は、フラグ信号Ｆｌｇｕ，Ｆｌｇｄの値が１、調停信号Ａｒｂｉの値が１のとき、選択信号Ｓｅｌｕとして１、選択信号Ｓｅｌｄとして０、または選択信号Ｓｅｌｕとして０、選択信号Ｓｅｌｄとして１を出力する。
【０１０８】
状態選択回路８１は、選択信号生成回路８０が出力する選択信号Ｓｅｌｕ，Ｓｅｌｄに基づき、以下の図１２に示す真理値表にしたがって、ｑ番目のイジング装置のニューロン回路部のｎビットの新たな出力値Ｘqnewを出力する。
【０１０９】
図１２は、状態選択回路の入出力信号の一例の関係を示す真理値表である。
図１２の真理値表に示されているように、状態選択回路８１は、選択信号Ｓｅｌｕの値が１、選択信号Ｓｅｌｄの値が０のとき、出力値Ｘqnewとして、ｑ−１番目のイジング装置の出力値Ｘq-1を出力する。このとき、ｑ番目のイジング装置の出力値Ｘqとｑ−１番目のイジング装置の出力値Ｘq-1との交換が行われる。
【０１１０】
また、状態選択回路８１は、選択信号Ｓｅｌｕの値が０、選択信号Ｓｅｌｄの値が１のとき、出力値Ｘqnewとして、ｑ＋１番目のイジング装置の出力値Ｘq+1を出力する。このとき、ｑ番目のイジング装置の出力値Ｘqとｑ＋１番目のイジング装置の出力値Ｘq+1との交換が行われる。
【０１１１】
また、状態選択回路８１は、選択信号Ｓｅｌｕ，Ｓｅｌｄの値が０のとき、出力値Ｘqnewとして、ｑ番目のイジング装置の出力値Ｘqを出力する。このときは、ｑ番目のイジング装置の出力値Ｘqとｑ−１番目またはｑ＋１番目のイジング装置の出力値Ｘq-1，Ｘq+1との交換は行われない。
【０１１２】
（第２の実施の形態の情報処理装置の動作例）
以下、制御装置５によって制御される図４の情報処理装置１ａの動作の一例を、フローチャートを用いて説明する
図１３及び図１４は、第２の実施の形態の情報処理装置の動作の一例を示すフローチャートである。
【０１１３】
［ステップＳ１］  制御装置５は、外部から起動信号を受けると、イジング装置２ｂ１〜２ｂＮに対して、異なる実効温度（ノイズ幅）を設定する。
［ステップＳ２］  イジング装置２ｂ１〜２ｂＮのそれぞれにおけるｎ個のニューロン回路（たとえば、ニューロン回路１１１１〜１１１ｎ）は、ローカルフィールド値ｈ1〜ｈnを算出する。
【０１１４】
［ステップＳ３］  イジング装置２ｂ１〜２ｂＮのそれぞれにおけるｎ個のニューロン回路は、ローカルフィールド値ｈ1〜ｈnにノイズ値を加算する。
［ステップＳ４］  イジング装置２ｂ１〜２ｂＮのそれぞれに含まれるランダム信号生成回路（たとえば、ランダム信号生成回路１０ｆ１）が出力する乱数値に応じて、ｎ個のニューロン回路の何れか１つが選択されて、その出力値の更新が許容される。そして、たとえば、イジング装置２ｂ１〜２ｂＮのそれぞれに含まれる制御回路（たとえば、制御回路１０ｂ１）が、ニューロン回路の選択回数を１つ増加する。
【０１１５】
［ステップＳ５］  イジング装置２ｂ１〜２ｂＮのそれぞれにおいて、選択されたニューロン回路は、自身のローカルフィールド値＋ノイズ値が閾値を超えるか否かを判定する。ローカルフィールド値＋ノイズ値が閾値を超えるときには、ステップＳ６の処理が実行され、閾値を超えない場合にはステップＳ７の処理が実行される。
【０１１６】
［ステップＳ６］  イジング装置２ｂ１〜２ｂＮのそれぞれに含まれる制御回路（たとえば、制御回路１０ｂ１）は、ｎ個のニューロン回路に対して、選択されたニューロン回路の更新後の出力値と、そのニューロン回路に対応付けられた重み値の選択信号とを供給する。
【０１１７】
［ステップＳ７］  イジング装置２ｂ１〜２ｂＮのそれぞれに含まれる各制御回路（たとえば、制御回路１０ｂ１）は、選択回数が規定回数に至ったか否かを判定する。
選択回数が規定回数に至った場合には、ステップＳ８の処理が実行されて、規定回数に至っていない場合には、再び、ステップＳ２の処理が実行される。
【０１１８】
［ステップＳ８］  イジング装置２ｂ１〜２ｂＮのそれぞれにおいて、計算回路（たとえば、計算回路１０ｃ１）は、ｎ個のニューロン回路からローカルフィールド値ｈ1〜ｈnと、ｎ個のニューロン回路の出力値とを取得する。そして、各計算回路は、イジング装置２ｂ１〜２ｂＮのそれぞれの総エネルギーを表すエネルギー値Ｅtotal（Ｘ1）〜Ｅtotal（ＸN）を算出する。
【０１１９】
［ステップＳ９］  交換制御回路１０ｄ１〜１０ｄＮによる交換判定処理が行われる。たとえば、交換制御回路１０ｄ１は、計算回路１０ｃ１からエネルギー値Ｅtotal（Ｘ1）と、制御回路１０ｂ１からｎビットの出力値Ｘ1と、を取得する。さらに、交換制御回路１０ｄ１は、イジング装置２ｂ２の交換制御回路１０ｄ２から、イジング装置２ｂ２の総エネルギーを表すエネルギー値Ｅtotal（Ｘ2）と、ｎビットの出力値Ｘ2とを取得する。そして、交換制御回路１０ｄ１は、エネルギー値Ｅtotal（Ｘ1）とエネルギー値Ｅtotal（Ｘ2）の差分をもとに算出される交換確率に基づいて、出力値Ｘ1と出力値Ｘ2とを交換するか否か判定する。
【０１２０】
［ステップＳ１０］  交換制御回路１０ｄ１〜１０ｄＮは、出力値Ｘ1〜ＸNの交換を行う場合には、ステップＳ１１の処理を実行し、交換しない場合には、ステップＳ１２の処理を実行する。
【０１２１】
［ステップＳ１１］  交換制御回路１０ｄ１〜１０ｄＮは、ステップＳ９の処理で交換対象となった隣接するイジング装置のニューロン回路部のｎビットの出力値を、自身のイジング装置のニューロン回路部のｎビットの出力値と交換する。
【０１２２】
たとえば、交換制御回路１０ｄ１，１０ｄ２は、イジング装置２ｂ１のニューロン回路部１０ａ１のｎビットの出力値Ｘ1と、イジング装置２ｂ２の図示しないニューロン回路部のｎビットの出力値Ｘ2とを交換する。これにより、交換制御回路１０ｄ１は、出力値Ｘ1newとして、出力値Ｘ2を、ニューロン回路１１１１〜１１１ｎに供給する。
【０１２３】
［ステップＳ１２］  イジング装置２ｂ１〜２ｂＮのそれぞれに含まれる制御回路（たとえば、制御回路１０ｂ１）は、自身のイジング装置内に含まれるニューロン回路部から、ｎビットの出力値を取得する。
【０１２４】
［ステップＳ１３］  そして各制御回路は、ステップＳ１２で取得したｎビットの出力値が変化するか否かを判定する。
ｎビットの出力値が変化しない場合には、ステップＳ１４の処理が実行され、ｎビットの出力値が変化する場合には、ステップＳ２からの処理が繰り返される。なお、各制御回路は、ｎビットの出力値が変化しない場合には、無変化回数を１つ増加する。
【０１２５】
［ステップＳ１４］  その後、各制御回路は、ｎビットの出力値の無変化回数が規定回数に至ったか否かを判定する。
ｎビットの出力値の無変化回数が規定回数に至った場合には、各制御回路は、制御装置５に対して計算が収束した旨を通知する。これにより、制御装置５は、計算が終了した旨を示す信号を出力する。ｎビットの出力値の無変化回数が、規定回数に至っていない場合には、再び、ステップＳ２からの処理が繰り返される。
【０１２６】
以上のように、第２の実施の形態の情報処理装置１ａによれば、交換制御回路１０ｄ１〜１０ｄＮによって、交換確率（１，Ｒ）で、設定されているノイズ幅の値（実効温度）が隣接するイジング装置間でｎビットの出力値の交換が行われる。これにより、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
【０１２７】
また、交換確率を算出する際に用いられるエネルギー値は、各ニューロン回路のローカルフィールド値と出力値との積和演算で求められるので、図６に示したような簡単な回路構成の計算回路１０ｃ１でエネルギー値Ｅtotal（Ｘ1）を算出できる。
【０１２８】
［第３の実施の形態］
図１５は、第３の実施の形態の情報処理装置の一例を示す図である。なお、図１５において、図４に示した情報処理装置１ａと同一の要素については同一符号が付されている。
【０１２９】
情報処理装置１ｂは、イジング装置２ｃ１〜２ｃＮと、制御装置５と、交換制御回路７とを有する。なお、図１５では、イジング装置２ｃ１〜２ｃＮにおいて、イジング装置２ｃ１から順に、実効温度Ｔの初期値としてＴ1，Ｔ2，…，ＴNが設定されている例が示されている。以下では、Ｔ1＞Ｔ2＞…＞ＴNであるとする。
【０１３０】
イジング装置２ｃ１〜２ｃＮは、それぞれ同様の要素を成している。以下では、イジング装置２ｃ１〜２ｃＮのうち、イジング装置２ｃ１を例にして説明する。
イジング装置２ｃ１は、図４に示したイジング装置２ｂ１と同様に、ニューロン回路部１０ａ１、制御回路１０ｂ１、計算回路１０ｃ１とを有しているが、交換制御回路１０ｄ１を有していない。図１５の例では、交換制御回路７が、イジング装置２ｃ１〜２ｃＮで共有されている。ただし、交換制御回路７が、イジング装置２ｃ１〜２ｃＮのそれぞれに、一部またはすべてが含まれていてもよい。
【０１３１】
（交換制御回路）
交換制御回路７は、前述した拡張アンサンブル法を実現するために、イジング装置２ｃ１〜２ｃＮのうち、ノイズ幅（実効温度）の値が隣接して設定されているイジング装置間で、上記エネルギー値の差に基づく交換確率で、ノイズ幅の値を交換する。
【０１３２】
図１６は、交換制御回路の一例を示す図である。
交換制御回路７は、ランダム信号生成回路９０と、フラグ生成回路９１ａ１，９１ａ２，…，９１ａｑ，９１ａ（ｑ＋１），…，９１ａ（Ｎ−１）と、温度生成回路９２とを有している。
【０１３３】
ランダム信号生成回路９０は、第２の実施の形態のランダム信号生成回路６と同様の機能を有しており、０よりも大きく、１よりも小さい乱数値を出力する。
フラグ生成回路９１ａ１〜９１ａ（Ｎ−１）は、図８，９に示した第２の実施の形態のフラグ生成回路５０，５０ａと同様の回路で実現できる。
【０１３４】
たとえば、フラグ生成回路９１ａｑは、ｑ番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq）と、ｑ＋１番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq+1）を受ける。また、フラグ生成回路９１ａｑは、ランダム信号生成回路６から出力される乱数値を受ける。そして、フラグ生成回路９１ａｑは、エネルギー値Ｅtotal（Ｘq），Ｅtotal（Ｘq+1）及び乱数値に基づき、ｑ番目とｑ＋１番目のイジング装置に設定されているノイズ幅（実効温度）を交換するか否かを示すフラグ信号Ｆｌｇｑを出力する。フラグ信号Ｆｌｇｑが１のときは、ノイズ幅を交換することを示し、フラグ信号Ｆｌｇｑが０のときは、ノイズ幅を交換しないことを示す。
【０１３５】
フラグ生成回路９１ａ（ｑ＋１）は、ｑ＋１番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq+1）と、ｑ＋２番目のイジング装置の総エネルギーを表すエネルギー値Ｅtotal（Ｘq+2）を受ける。また、フラグ生成回路９１ａ（ｑ＋１）は、ランダム信号生成回路６から出力される乱数値を受ける。そして、フラグ生成回路９１ａ（ｑ＋１）は、エネルギー値Ｅtotal（Ｘq+1），Ｅtotal（Ｘq+2）及び乱数値に基づき、ｑ＋１番目とｑ＋２番目のイジング装置に設定されているノイズ幅を交換するか否かを示すフラグ信号Ｆｌｇ（ｑ＋１）を出力する。フラグ信号Ｆｌｇ（ｑ＋１）が１のときは、ノイズ幅を交換することを示し、フラグ信号Ｆｌｇ（ｑ＋１）が０のときは、ノイズ幅を交換しないことを示す。
【０１３６】
温度生成回路９２は、イジング装置２ｃ１〜２ｃＮに含まれるノイズ発生回路（たとえば、ノイズ発生回路１０ｅ１）の増幅回路での増幅率を制御して実効温度に対応するノイズ幅を設定する温度設定信号ＴS1，ＴS2，…，ＴSq，ＴSq+1，…，ＴSNを出力する。たとえば、イジング装置２ｃ１に対するノイズ幅の設定は、温度設定信号ＴS1で行われ、イジング装置２ｃ２に対するノイズ幅の設定は、温度設定信号ＴS2で行われる。
【０１３７】
温度生成回路９２は、まず、制御装置５が出力する起動信号を受けると、温度設定信号ＴS1〜ＴSNにより、イジング装置２ｃ１〜２ｃＮに含まれるノイズ発生回路に、ノイズ幅の初期値を設定する。ノイズ幅の初期値は、予め制御装置５によって設定され、温度生成回路９２に格納されている。また、温度生成回路９２は、フラグ生成回路９１ａ１〜９１ａ（Ｎ−１）が出力するフラグ信号Ｆｌｇ１〜Ｆｌｇ（Ｎ−１）に基づき、イジング装置２ｃ１〜２ｃＮのうち、ノイズ幅の値が隣接して設定されるイジング装置間で、そのノイズ幅の値を交換する。
【０１３８】
図１７は、温度生成回路の一例を示す図である。
温度生成回路９２は、選択信号生成回路１００、初期値設定回路１０１、１パルス生成回路１０２、選択回路１０３ａ１，１０３ａ２，…，１０３ａｑ，１０３ａ（ｑ＋１），１０３ａＮを有している。さらに、温度生成回路９２は、レジスタ１０４ａ１，１０４ａ２，…，１０４ａｑ，１０４ａ（ｑ＋１），…，１０４ａＮ、温度切替回路１０５を有している。
【０１３９】
選択信号生成回路１００は、フラグ信号Ｆｌｇ１〜Ｆｌｇ（Ｎ−１）に基づき、以下の図１８に示す真理値表にしたがって、選択信号Ｓｅｌ１〜Ｓｅｌ（Ｎ−１）を出力する。
図１８は、温度生成回路の入出力信号の一例の関係を示す真理値表である。
【０１４０】
なお、真理値表に記載されている“ｄ”は、ドントケア（０でも１でもよいこと）を示している。
図１１の真理値表に示されているように、選択信号生成回路１００は、フラグ信号Ｆｌｇ１〜Ｆｌｇ（Ｎ−１）の値が全て０のとき、選択信号Ｓｅｌ１〜ＳｅｌＮとして０を出力する。
【０１４１】
また、選択信号生成回路１００は、フラグ信号Ｆｌｇ１〜Ｆｌｇ（Ｎ−１）のうち、フラグ信号Ｆｌｇ１の値が１のとき、その他のフラグ信号の値にかかわらず、選択信号Ｓｅｌ１として１を出力し、他の選択信号として０を出力する。
【０１４２】
また、選択信号生成回路１００は、フラグ信号Ｆｌｇ１〜Ｆｌｇｑまでの値が０で、フラグ信号Ｆｌｇ（ｑ＋１）の値が１のとき、その他のフラグ信号の値にかかわらず、選択信号Ｓｅｌ（ｑ＋１）として１を出力し、他の選択信号として０を出力する。
【０１４３】
初期値設定回路１０１は、イジング装置２ｂ１〜２ｂＮのそれぞれに設定する複数の異なるノイズ幅（実効温度）の初期値を保持している。初期値は、予め、制御装置５により設定され初期値設定回路１０１に記憶される。そして、初期値設定回路１０１は、初期値を設定するための温度設定信号を出力する。
【０１４４】
１パルス生成回路１０２は、制御装置５が出力する起動信号を受けると、選択回路１０３ａ１〜１０３ａＮに１パルスのパルス信号を出力する。
選択回路１０３ａ１〜１０３ａＮは、パルス信号を受けている間（たとえば、パルス信号の論理レベルがＨ（High）レベルの間）、初期値設定回路１０１から出力される初期値を設定するための温度設定信号を選択して出力する。パルス信号を受けていない場合（たとえば、パルス信号の論理レベルがＬ（Low）レベルの間）、選択回路１０３ａ１〜１０３ａＮは、温度切替回路１０５が出力する温度設定信号ＴS1〜ＴSNを選択して出力する。
【０１４５】
レジスタ１０４ａ１〜１０４ａＮは、選択回路１０３ａ１〜１０３ａＮが出力する温度設定信号を格納する。
温度切替回路１０５は、選択信号Ｓｅｌ１〜Ｓｅｌ（Ｎ−１）に基づき、温度設定信号ＴS1〜ＴSNを出力する。
【０１４６】
たとえば、パルス信号の論理レベルがＨレベルのとき、フラグ信号Ｆｌｇ１〜Ｆｌｇ（Ｎ−１）の値が０であるとする。このとき、選択信号Ｓｅｌ１〜Ｓｅｌ（Ｎ−１）は全て０になり、温度切替回路１０５は、初期値を設定するための温度設定信号ＴS1〜ＴSNを出力する。これにより、イジング装置２ｃ１〜２ｃＮにおいて、イジング装置２ｂ１から順に、実効温度Ｔの初期値としてＴ1，Ｔ2，…，ＴNが設定される。
【０１４７】
パルス信号の論理レベルがＬレベルになると、温度切替回路１０５は、図１８に示した真理値表にしたがって選択信号Ｓｅｌ１〜Ｓｅｌ（Ｎ−１）の何れかが１になると、イジング装置２ｃ１〜２ｃＮに設定するノイズ幅の交換を行う。
【０１４８】
たとえば、選択信号Ｓｅｌｑが１になると、温度切替回路１０５は、レジスタ１０４ａｑから出力される温度設定信号ＴSqを、イジング装置２ｃ１〜２ｃＮのうち、ｑ＋１番目のイジング装置のノイズ幅を設定するための温度設定信号ＴSq+1として出力する。また、温度切替回路１０５は、レジスタ１０４ａ（ｑ＋１）から出力される温度設定信号ＴSq+1を、イジング装置２ｃ１〜２ｃＮのうち、ｑ番目のイジング装置のノイズ幅を設定するための温度設定信号ＴSq+1として出力する。これにより、ｑ番目のイジング装置とｑ＋１番目のイジング装置に設定されるノイズ幅が交換される。
【０１４９】
（第３の実施の形態の情報処理装置の動作例）
以下、制御装置５によって制御される図１５の情報処理装置１ｂの動作の一例を、フローチャートを用いて説明する。
【０１５０】
図１９は、第３の実施の形態の情報処理装置の動作の一例を示すフローチャートである。
情報処理装置１ｂでも、第２の実施の形態と同様に、図１３，１４に示したステップＳ１〜Ｓ８の処理が実行される。
【０１５１】
以下、ステップＳ９ａ以降について説明する。
［ステップＳ９ａ］  交換制御回路７による交換判定処理が行われる。交換制御回路７は、イジング装置２ｃ１〜２ｃＮから、エネルギー値Ｅtotal（Ｘ1）〜Ｅtotal（ＸN）を取得する。そして、交換制御回路７は、隣接するイジング装置間のエネルギー値の差分をもとに算出される交換確率に基づいて、イジング装置２ｃ１〜２ｃＮのうち、隣接する２つのイジング装置に設定するノイズ幅を交換するか否か判定する。
【０１５２】
［ステップＳ１０ａ］  交換制御回路７は、設定するノイズ幅の交換を行う場合には、ステップＳ１１ａの処理を実行し、交換しない場合には、ステップＳ１２の処理を実行する。
【０１５３】
［ステップＳ１１ａ］  交換制御回路７は、ステップＳ９ａの処理で交換対象となった隣接する２つのイジング装置に設定するノイズ幅を交換する。
以下、第２の実施の形態と同様のステップＳ１２〜Ｓ１４が実行される。
【０１５４】
図２０は、情報処理装置の動作の一例を示すタイミングチャートである。
情報処理装置１ｂの電源がオンになると（タイミングｔ１）、制御装置５に供給されるリセット信号が解除される（タイミングｔ２）。
【０１５５】
これにより、制御装置５は、パラメータ（重み値やバイアス値）や実効温度（ノイズ幅）などの初期値設定を行う（タイミングｔ３〜ｔ４）。その後、制御装置５は、交換制御回路７に起動信号を送信する（起動信号の論理レベルをＨレベルとする）（タイミングｔ５）。これにより、前述したステップＳ２〜Ｓ１４の処理が行われる。
【０１５６】
制御装置５は、イジング装置２ｃ１〜２ｃＮの何れかからｎビットの出力値の変化が収束したことを表すニューロン収束信号を受けると（タイミングｔ６）、計算処理の終了を表す終了信号を出力し、起動信号の論理レベルをＬレベルとする（タイミングｔ７）。
【０１５７】
なお、第２の実施の形態の情報処理装置１ａでも、全体の動作の流れは、図２０に示した動作とほぼ同様となる。
以上のように、第３の実施の形態の情報処理装置１ｂによれば、交換制御回路７によって、交換確率（１，Ｒ）で、隣接するイジング装置間で、設定されているノイズ幅の値（実効温度）の交換が行われる。これにより、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
【０１５８】
また、第３の実施の形態の情報処理装置１ｂでは、ｎ個のニューロン回路の出力に対応したｎビットの出力値を交換する第２の実施の形態の情報処理装置１ａと比べて、交換する情報量を少なくすることができる。
【０１５９】
以上、実施の形態に基づき、本発明の情報処理装置、イジング装置及び情報処理装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【０１６０】
たとえば、ニューロン回路部は、図４などに示したＤｅＧｌｏｒｉａアルゴリズムに基づく処理を行うものに限定されない。ニューロン回路部は、重み値と、ｎビットのニューロンから出力されるｎビットの出力値とに基づき、各ニューロンのエネルギーを示すローカルフィールド値を算出する回路であればよい。
【符号の説明】
【０１６１】
１  情報処理装置
２ａ１〜２ａＮ  イジング装置
３  計算回路
４  交換制御回路
５  制御装置
１０ａ１〜１０ａＮ  ニューロン回路部
１１ｋ１〜１１ｋｎ  ニューロン回路
１０ｂｋ  制御回路
【図１】
2018005541.tif 000010
【図２】
2018005541.tif 000011
【図３】
2018005541.tif 000012
【図４】
2018005541.tif 000013
【図５】
2018005541.tif 000014
【図６】
2018005541.tif 000015
【図７】
2018005541.tif 000016
【図８】
2018005541.tif 000017
【図９】
2018005541.tif 000018
【図１０】
2018005541.tif 000019
【図１１】
2018005541.tif 000020
【図１２】
2018005541.tif 000021
【図１３】
2018005541.tif 000022
【図１４】
2018005541.tif 000023
【図１５】
2018005541.tif 000024
【図１６】
2018005541.tif 000025
【図１７】
2018005541.tif 000026
【図１８】
2018005541.tif 000027
【図１９】
2018005541.tif 000028
【図２０】
2018005541.tif 000029