「量子(35)アニーリングの基礎」を読む 第４日

「量子アニーリングの基礎」西森秀稔, 大関真之, 共立出版, 2018 を読む
![4184JBeEEZL._SX350_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51423/d8f26d54-030c-d8aa-6053-3b1fcc37e7c3.jpeg)
https://qiita.com/kaizen_nagoya/items/29580dc526e142cb64e9

『量子アニーリングの基礎』正誤表 (西森秀稔・大関真之 著)　2019年6月20日更新
https://www.kyoritsu-pub.co.jp/app/file/goods_contents/3037.pdf

量子アニーリングの数理　東京工業大学 大学院理工学研究科 物性物理学専攻 西森 秀稔
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/189516/1/bussei_el_033203.pdf

本は、
１ 量子力学
２　熱力学、統計力学
がわかっている人にとっての丁寧

ここでは、どちらもわかっていないことを前提として資料を整理する。

「量子アニーリングの基礎」を読む 第１日
https://qiita.com/kaizen_nagoya/items/2bc284faaf0f61278778

「量子アニーリングの基礎」を読む 第２日
https://qiita.com/kaizen_nagoya/items/749043f4f8ae026ec5e5

「量子アニーリングの基礎」を読む 第3日
https://qiita.com/kaizen_nagoya/items/3f3d67d841075e8c867a

量子コンピュータ：量子力学にたどり着くための三つの方法
https://qiita.com/kaizen_nagoya/items/cfc35e62c81a978cc2fc

プログラマが量子力学を勉強するときの７つの道
https://qiita.com/kaizen_nagoya/items/7061f62b3629eee395f2

スピングラス理論と情報統計力学　西森秀稔　参考文献
https://qiita.com/kaizen_nagoya/items/702c08becfcca98fa9d8
p.183
>このプロセスを計算機上で数値的に実現して最適化空間の解を近似的に求める方法をシミュレテッドアニーリング(模擬徐冷)という。無限の時間をかけてTをゆっくり下げていくと現実に最適化に到達するが、実際にはほどほどの速さで温度を下げ、しかも適当なところで打ち切る。この意味で近似解法なのである。

<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
# 第7章
半正定値
正定値
の違い。

固有値がすべてゼロより大きい　正定値
固有値がすべてゼロ以上　半正定値

7.2 
鈴木・トロッタ分解
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/94585/1/KJ00004788834.pdf
http://www.shutanaka.com/papers_files/ShuTanaka_DEXSMI_10.pdf

量子モンテカルロ法
https://www-np.acs.i.kyoto-u.ac.jp/~harada/misc/qmc.pdf

ギブス・ボルツマン分布
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/56986/1/inaba.pdf

非一様マルコフ過程
http://www.ccn.yamanashi.ac.jp/~munehisa/kenkyuu/soturon_2007/suzuki.pdf

量子アニーリングの収束定理
https://www.smapip.is.tohoku.ac.jp/~dex-smi/2006/Workshop200612/ExtendedAbstracts/HidetoshiNishimori.pdf

シュミレーテッド・アニーリング

シミュレーテッドアニーリング概説
http://mikilab.doshisha.ac.jp/dia/monthly/monthly00/20000415/ikeuchi_kubota.pdf
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=2ahUKEwiE8cXngKXlAhXYa94KHWReBVcQFjAEegQIBRAC&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D17103%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AOvVaw1JQ8jWMxRUDUMXxZpKfFVT

# 第8章
経路積分
量子力学と経路積分 リチャード・P・ファインマン, アルバート・R・ヒッブス
https://researchmap.jp/jo0jlfrwe-49935/#_49935
https://ja.wikipedia.org/wiki/数学記号の表
|| ノルム
https://mathtrain.jp/lpnorm
http://proofcafe.org/k27c8/math/math/liner_algebraI/page/inner_product_and_norm/

量子ゲート模型

時間順序積

直積の線形結合

行列を知らない人のための線形代数学入門 松本 眞1 2
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/TEACH/senkei-daisuu.pdf

外積
https://mathtrain.jp/gaiseki
https://mathwords.net/gaiseki

tensor積
https://ja.wikipedia.org/wiki/テンソル積

射影演算子
http://www.f-denshi.com/000TokiwaJPN/05unitr/090unt.html

U 
https://ja.wikipedia.org/wiki/和集合

p.80 ６行目 U 右上の 十字架
ダガー
https://ja.wikipedia.org/wiki/随伴行列

数式
https://www.cybernet.co.jp/maple/documents/pdf/support/documents/Maple14_UserManual_J.pdf

藤井 啓祐
https://researchmap.jp/7000009401/

# 道具類
「maxima 入門」入門(Windows編)
https://qiita.com/kaizen_nagoya/items/77cfe874c73d8eae92fc

# 背景知識
伏見康治・確率論及統計論輪講
https://researchmap.jp/josgkrcbv-2087795/#_2087795

# 作業記録

```shell-session:macOS
$ brew cask install anaconda
$ pip install matplotlib
$ pip install cmake
$ pip install openjij
$ python openjijch1.py

h_i:  {0: -1, 1: -1, 2: -1, 3: -1, 4: -1}
Jij:  {(0, 1): -1, (0, 2): -1, (0, 3): -1, (0, 4): -1, (1, 2): -1, (1, 3): -1, (1, 4): -1, (2, 3): -1, (2, 4): -1, (3, 4): -1}
[[1, 1, 1, 1, 1]]
[{0: 1, 1: 1, 2: 1, 3: 1, 4: 1}]
[[1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1], [1, -1, 1]]
[-4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0]
['a', 'c', 'b']
[{'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}, {'a': 1, 'c': -1, 'b': 1}]
{'states': array([[ 1, -1,  1]]), 'num_occurrences': array([10]), 'min_energy': -4.0}
[[1, 1, 0], [1, 1, 0], [1, 1, 0]]
[-46.04283667268458, -45.40319673739635, -45.43927510769896, -45.8420452385678, -44.69211986420642]
{'states': array([[1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1,
        1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0,
        1, 1, 1, 0, 0, 0]]), 'num_occurrences': array([28]), 'min_energy': -46.04283667268458}
```

実行

```python:openjijch1.py
import openjij as oj
#https://openjij.github.io/OpenJijTutorial/_build/html/ja/index.html
import random
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.use('Agg')

# 問題を表す縦磁場と相互作用を作ります。OpenJijでは辞書型で問題を受け付けます。
N = 5
h = {i: -1 for i in range(N)}
J = {(i, j): -1 for i in range(N) for j in range(i+1, N)}

print('h_i: ', h)
print('Jij: ', J)

# まず問題を解いてくれるSamplerのインスタンスを作ります。このインスタンスの選択で問題を解くアルゴリズムを選択できます。
sampler = oj.SASampler()
# samplerのメソッドに問題(h, J)を投げて問題を解きます。
response = sampler.sample_ising(h, J)

# 計算した結果(状態)は result.states に入っています。
print(response.states)

# もしくは添字付きでみるには samples を見ます。
print(response.samples)

# 実は h, J の添字を示す、辞書のkeyは数値以外も扱えます。
h = {'a': -1, 'b': -1}
J = {('a', 'b'): -1, ('b', 'c'): 1}
sampler = oj.SASampler(iteration=10)  # 10回 SAで解いてみる. iteration という引数で10回分一気に解くことができます。
response = sampler.sample_ising(h, J)
print(response.states)

print(response.energies)

print(response.indices)

print(response.samples)

print(response.min_samples)

# Q_ij を辞書型でつくります。
Q = {(0, 0): -1, (0, 1): -1, (1, 2): 1, (2, 2): 1}
sampler = oj.SASampler(iteration=3)
# QUBOを解く時は .sample_qubo を使いましょう
response = sampler.sample_qubo(Q)
print(response.states)

N = 50
# ランダムにQij を作る
Q = {(i, j): random.uniform(-1, 1) for i in range(N) for j in range(i+1, N)}

# OpenJijで解く
sampler = oj.SASampler(iteration=100)
response = sampler.sample_qubo(Q)

# エネルギーを少しみてみます。
print(response.energies[:5])

fig=plt.figure()
plt.hist(response.energies, bins=15)
plt.xlabel('Energy', fontsize=15)
plt.ylabel('Frequency', fontsize=15)
#plt.show()
fig.savefig('ch1.png')


min_samples = response.min_samples

print(min_samples)
```

ファイル
![ch1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51423/09b4aea9-5ee9-341f-4b1e-dcb569d40b03.png)

#参考資料(reference)

量子計算機1６の疑問　「量子アニーリングの基礎」編
https://qiita.com/kaizen_nagoya/items/683961f9e747e144413d

docker(28) Openjij チュートリアルをdockerで
https://qiita.com/kaizen_nagoya/items/09a52b25d54091c8db6f

今日のpythonエラー(macOS)
https://qiita.com/kaizen_nagoya/items/bb79e96104b5ff536de8

Windows(M.S.)にPython3 (Anaconda3) を導入する（7つの罠）
https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679

Windows(M.S.) にAnaconda3(python3)を　2019年版
https://qiita.com/kaizen_nagoya/items/c05c0d690fcfd3402534

## 一覧
物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学 
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

Qiita(0)Qiita関連記事一覧（自分）
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道（０）鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

官公庁・学校・公的団体（NPOを含む）システムの課題、官（０）
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ　 ベクタージャパン　
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧　
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧（０）
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧　
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
#### 文書履歴(document history)
ver. 0.01 初稿 20191018
ver. 0.02 加筆 20191019
ver. 0.03 参考資料追記 20191020
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.