Skip to content

Commit

Permalink
updated but todo items remain
Browse files Browse the repository at this point in the history
  • Loading branch information
yiiyama committed Mar 31, 2023
1 parent cb06dc3 commit 7033274
Show file tree
Hide file tree
Showing 9 changed files with 116 additions and 151 deletions.
29 changes: 11 additions & 18 deletions source/ja/grover.md
Expand Up @@ -5,7 +5,7 @@ jupytext:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.11.5
jupytext_version: 1.14.5
kernelspec:
display_name: Python 3 (ipykernel)
language: python
Expand All @@ -19,7 +19,7 @@ language_info:
name: python
nbconvert_exporter: python
pygments_lexer: ipython3
version: 3.8.10
version: 3.10.6
---

+++ {"pycharm": {"name": "#%% md\n"}}
Expand Down Expand Up @@ -324,11 +324,13 @@ import matplotlib.pyplot as plt
import numpy as np
# Qiskit関連のパッケージをインポート
from qiskit import IBMQ, Aer, QuantumCircuit, ClassicalRegister, QuantumRegister, transpile
from qiskit.providers.ibmq import least_busy, IBMQAccountCredentialsNotFound
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister, transpile
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_histogram
from qiskit.tools.monitor import job_monitor
from qiskit_aer import AerSimulator
from qiskit_ibm_provider import IBMProvider, least_busy
from qiskit_ibm_provider.accounts import AccountNotFoundError
# ワークブック独自のモジュール
from qc_workbook.utils import operational_backend
Expand Down Expand Up @@ -501,7 +503,7 @@ pycharm:
'
tags: [remove-output]
---
simulator = Aer.get_backend('qasm_simulator')
simulator = AerSimulator()
grover_circuit = transpile(grover_circuit, backend=simulator)
results = simulator.run(grover_circuit, shots=1024).result()
answer = results.get_counts()
Expand Down Expand Up @@ -550,12 +552,12 @@ pycharm:
tags: [raises-exception, remove-output]
---
# 量子コンピュータで実行する場合
instance = 'ibm-q/open/main'
try:
IBMQ.load_account()
provider = IBMProvider(instance=instance)
except IBMQAccountCredentialsNotFound:
IBMQ.enable_account('__paste_your_token_here__')
provider = IBMQ.get_provider(hub='ibm-q', group='open', project='main')
provider = IBMProvider(token='__paste_your_token_here__', instance=instance)
backend_list = provider.backends(filters=operational_backend(min_qubits=6))
backend = least_busy(backend_list)
Expand Down Expand Up @@ -650,7 +652,6 @@ pycharm:
name: '#%%
'
tags: []
---
x = []
y = []
Expand Down Expand Up @@ -761,11 +762,3 @@ plt.show()
+++ {"pycharm": {"name": "#%% md\n"}}

複数解の場合、確率が最大になる反復回数が単一解の場合より減っていますね。予想と合っているでしょうか?

+++

## 参考文献

```{bibliography}
:filter: docname in docnames
```
23 changes: 17 additions & 6 deletions source/ja/grover_number_light.md
Expand Up @@ -5,7 +5,7 @@ jupytext:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.11.5
jupytext_version: 1.14.5
kernelspec:
display_name: Python 3 (ipykernel)
language: python
Expand All @@ -19,7 +19,7 @@ language_info:
name: python
nbconvert_exporter: python
pygments_lexer: ipython3
version: 3.8.10
version: 3.10.6
---

# 【課題】ビット反転ボードの操作を見つける
Expand Down Expand Up @@ -84,9 +84,19 @@ pycharm:
'
---
# Tested with python 3.8.12, qiskit 0.34.2, numpy 1.22.2
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit import IBMQ, Aer, execute
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister, transpile
from qiskit_aer import AerSimulator
```

```{code-cell} ipython3
---
jupyter:
outputs_hidden: false
pycharm:
name: '#%%
'
---
# 6量子ビットの探索問題を考える
n = 6 # 量子ビット数
Expand Down Expand Up @@ -138,8 +148,9 @@ pycharm:
tags: [raises-exception, remove-output]
---
# シミュレータで実行
backend = Aer.get_backend('qasm_simulator')
job = execute(qc, backend=backend, shots=8000, seed_simulator=12345)
backend = AerSimulator()
qc_tr = transpile(qc, backend=backend)
job = backend.run(qc_tr, shots=8000)
result = job.result()
count = result.get_counts()
Expand Down
31 changes: 6 additions & 25 deletions source/ja/qkc_machine_learning.md
Expand Up @@ -5,7 +5,7 @@ jupytext:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.11.5
jupytext_version: 1.14.5
kernelspec:
display_name: Python 3 (ipykernel)
language: python
Expand All @@ -19,7 +19,7 @@ language_info:
name: python
nbconvert_exporter: python
pygments_lexer: ipython3
version: 3.8.10
version: 3.10.6
---

+++ {"pycharm": {"name": "#%% md\n"}}
Expand Down Expand Up @@ -139,11 +139,12 @@ from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# Qiskit imports
from qiskit import QuantumCircuit, Aer, transpile
from qiskit import QuantumCircuit, transpile
from qiskit.circuit import QuantumCircuit, Parameter, ParameterVector
from qiskit.circuit.library import PauliFeatureMap, ZFeatureMap, ZZFeatureMap
from qiskit.circuit.library import TwoLocal, NLocal, RealAmplitudes, EfficientSU2
from qiskit.circuit.library import HGate, RXGate, RYGate, RZGate, CXGate, CRXGate, CRZGate
from qiskit_aer import AerSimulator
from qiskit_machine_learning.kernels import QuantumKernel
```

Expand Down Expand Up @@ -276,7 +277,7 @@ pycharm:
'
tags: [raises-exception, remove-output]
---
backend = Aer.get_backend('qasm_simulator')
backend = AerSimulator()
qc_circuit = transpile(qc_circuit, backend=backend, seed_transpiler=random_seed)
job = backend.run(qc_circuit, shots=8192, seed_simulator=random_seed)
Expand All @@ -298,7 +299,7 @@ pycharm:
'
tags: [raises-exception, remove-output]
---
q_kernel = QuantumKernel(feature_map=feature_map, quantum_instance=Aer.get_backend('statevector_simulator'))
q_kernel = QuantumKernel(feature_map=feature_map, quantum_instance=AerSimulator(method='statevector'))
qc_circuit = q_kernel.construct_circuit(norm_train_data[0], norm_train_data[1])
qc_circuit.decompose().decompose().draw('mpl')
Expand Down Expand Up @@ -361,23 +362,3 @@ print(f'Precomputed kernel: Classification Test score: {test_score*100}%')
- この{doc}`ワークブック <vqc_machine_learning>`にある変分量子回路を使った量子機械学習との比較
- 二つの方法を同じ条件(特徴量の変数、データサンプルのサイズ、特徴量マップ)で比較した時に、分類性能に対して何か系統的な違いは見えるでしょうか。特徴量やサンプルサイズを変えて比較するなどして、その振る舞いを自分なりに考察してみてください。
- 一方が他方に比べて系統的に分類性能が悪くなっている場合、どうすれば悪い方を改善できるでしょうか。サンプルサイズが小さい時には、どちらの方法でも過学習(テストデータでの分類性能が訓練データでの分類性能より悪くなる)の傾向が見えていると思います。過学習をできるだけ抑えながら、分類性能を改善する方法がないか、考察してみてください。

+++ {"pycharm": {"name": "#%% md\n"}}

## 参考文献

```{bibliography}
:filter: docname in docnames
```

```{code-cell} ipython3
---
jupyter:
outputs_hidden: false
pycharm:
name: '#%%
'
---
```
31 changes: 12 additions & 19 deletions source/ja/shor.md
Expand Up @@ -5,7 +5,7 @@ jupytext:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.11.5
jupytext_version: 1.14.5
kernelspec:
display_name: Python 3 (ipykernel)
language: python
Expand All @@ -19,7 +19,7 @@ language_info:
name: python
nbconvert_exporter: python
pygments_lexer: ipython3
version: 3.8.10
version: 3.10.6
---

+++ {"pycharm": {"name": "#%% md\n"}}
Expand Down Expand Up @@ -150,10 +150,12 @@ from fractions import Fraction
import matplotlib.pyplot as plt
import numpy as np
from qiskit import IBMQ, QuantumRegister, ClassicalRegister, QuantumCircuit, Aer, transpile
from qiskit.providers.ibmq import least_busy, IBMQAccountCredentialsNotFound
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit, transpile
from qiskit.tools.monitor import job_monitor
from qiskit.visualization import plot_histogram
from qiskit_aer import AerSimulator
from qiskit_ibm_provider import IBMProvider, least_busy
from qiskit_ibm_provider.accounts import AccountNotFoundError
# ワークブック独自のモジュール
from qc_workbook.utils import operational_backend
Expand Down Expand Up @@ -319,9 +321,8 @@ pycharm:
name: '#%%
'
tags: []
---
simulator = Aer.get_backend('aer_simulator')
simulator = AerSimulator()
shots = 2048
qc_tr = transpile(qc, backend=simulator)
results = simulator.run(qc_tr, shots=shots).result()
Expand Down Expand Up @@ -374,12 +375,12 @@ pycharm:
tags: [raises-exception, remove-output]
---
# 量子コンピュータで実行する場合
instance = 'ibm-q/open/main'
try:
IBMQ.load_account()
provider = IBMProvider(instance=instance)
except IBMQAccountCredentialsNotFound:
IBMQ.enable_account('__paste_your_token_here__')
provider = IBMQ.get_provider(hub='ibm-q', group='open', project='main')
provider = IBMProvider(token='__paste_your_token_here__', instance=instance)
backend_list = provider.backends(filters=operational_backend(min_qubits=4))
backend = least_busy(backend_list)
Expand Down Expand Up @@ -624,7 +625,7 @@ $n$量子ビットQPEの{ref}`回路 <qpe_nqubit_fig>`と比較すれば、こ

まず最初に、繰り返しの位数(周期)を発見するアルゴリズムを見てみます。

$N$を正の整数として、関数$f(x) = a^x \bmod N$の振る舞いを考えます。[ショアのアルゴリズム](#shor_algo_fig)に立ち返ってみると、
$N$を正の整数として、関数$f(x) = a^x \bmod N$の振る舞いを考えます。[ショアのアルゴリズム](shor_algo_fig)に立ち返ってみると、
ここで$a$は$N$と互いに素な$N$未満の正の整数で、位数$r$は$\modequiv{a^r}{1}{N}$を満たす非ゼロの最小の整数でした。
以下のグラフにこの関数の例を示します。 ポイント間の線は周期性を確認するためのものです。

Expand Down Expand Up @@ -999,11 +1000,3 @@ for row in rows:
`limit_denominator`メソッドを使って、分母が特定の値(ここでは15)を下回る分数で、最も位相の値に近いものを得ています。

測定された結果のうち、2つ(64と192)が正しい答えである$r=4$を与えたことが分かります。

+++

## 参考文献

```{bibliography}
:filter: docname in docnames
```

0 comments on commit 7033274

Please sign in to comment.