diff --git a/README.md b/README.md
index 6198f61..da9375d 100644
--- a/README.md
+++ b/README.md
@@ -3,15 +3,15 @@
### Day 1
- [量子コンピューティング入門](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day1/20240730_Intro.pdf)
- [量子ゲート基礎 IBM Quantum Composer](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day1/20240730_Composer.pdf)
-- [Qiskit入門演習](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day1/20240730_qiskit.ipynb)
+- Qiskit入門演習([コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day1/20240730_qiskit.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/solutions/day1/20240730_qiskit_solution.ipynb))
### Day 2
-- 量子ハードウェア入門([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_1_Hardware.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_hardware.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_hardware_solution.ipynb))
-- 量子テレポーテーション([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_2_Telepo.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_teleportation.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_teleportation_solution.ipynb))
-- 量子機械学習 ([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_3_QML.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/qml/20240731_qml.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/qml/20240731_qml_solution.ipynb))
+- 量子ハードウェア入門([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_1_Hardware.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_hardware.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/solutions/day2/20240731_hardware_solution.ipynb))
+- 量子テレポーテーション([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_2_Telepo.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_teleportation.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/solutions/day2/20240731_teleportation_solution.ipynb))
+- 量子機械学習 ([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/20240731_3_QML.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day2/qml/20240731_qml.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/solutions/day2/20240731_qml_solution.ipynb))
### Day 3
-- 量子化学で薬の開発([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/20240801_Nature.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/nature/20240801_nature.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/nature/20240801_nature_solution.ipynb))
+- 量子化学で薬の開発([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/20240801_Nature.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/nature/20240801_nature.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/solutions/day3/20240801_nature_solution.ipynb))
- 量子最適化([解説](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/20240801_optimization.pdf)・[コード](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/20240801_optimization.ipynb)・[解答例](https://github.com/quantum-tokyo/kawasaki-quantum-camp/blob/main/day3/20240801_optimization_solution.ipynb))
### Day 4
@@ -20,9 +20,9 @@
## Camp期間のあとにQiskitコードを動かす場合
JupyterHub環境が動かなくなりますが、以下のいずれかの方法でコードを実行することができます。
1. [qBraid](https://www.qbraid.com)上で実行する
- こちらのブログ[「qBraid LabでQiskitを使う手順」](https://qiita.com/kifumi/items/0bf725b9686c15201f27)を参照ください。
+ [「qBraid LabでQiskitを使う手順」](https://quantum-tokyo.github.io/introduction/get_started/qbraid.html)を参照ください。
2. [Google Colabratory](https://colab.research.google.com/) 上で実行する
- 毎回、以下のコマンドをjupyter notebook上で最初に実行する必要があります。([参考ブログ](https://qiita.com/kifumi/private/51a5d2a420e6318f78fb))
+ 毎回、以下のコマンドをjupyter notebook上で最初に実行する必要があります。([「Google コラボ を使う手順」](https://quantum-tokyo.github.io/introduction/get_started/colab.html)を参照ください。)
```
!pip install qiskit qiskit[visualization] qiskit-ibm-runtime qiskit-aer
!pip install qiskit-algorithms qiskit-nature scikit-learn
diff --git a/day3/nature/20240801_nature.ipynb b/day3/nature/20240801_nature.ipynb
index 8941cf0..ee8988c 100644
--- a/day3/nature/20240801_nature.ipynb
+++ b/day3/nature/20240801_nature.ipynb
@@ -12,6 +12,45 @@
"Honomi Kashihara, Kifumi Numata, IBM Quantum (Aug 01, 2024)"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "d89cfabd-06ff-4e9c-b2cb-a236918cc3c1",
+ "metadata": {},
+ "source": [
+ "Google Colab で行う場合は、次のセルの「#」を削除して実行します。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f2b47f20-4d8c-4bb7-850d-b51cb373981e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#!pip install qiskit qiskit-ibm-runtime qiskit-aer qiskit[visualization]\n",
+ "#!pip install qiskit-algorithms qiskit-nature\n",
+ "#!pip install --prefer-binary pyscf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "bee604e1-7b32-4c91-8456-125dc00f49a5",
+ "metadata": {},
+ "source": [
+ "qBraid で行う場合は、右上の「Python 3[Default]」をクリックして「Python 3[QDC24]」を選択し、次のセルの「#」を削除して実行したあと、上部の「Kernel」→「Restart Kernel...」からカーネルをリスタートしてください。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f14312e5-33e9-4711-a72d-2639af37378a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#!pip install pylatexenc qiskit-algorithms qiskit-nature\n",
+ "#!pip install --prefer-binary pyscf"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -41,7 +80,7 @@
"## Step 1: 水素分子の構造を定義する\n",
"このチュートリアルでは、水素分子(H$_2$)を使います。\n",
"\n",
- "
\n",
+ "\n",
"\n",
"\n",
"まず最初に行うことは、各原子核の位置を固定します。pythonの原子核のリストとして指定し、各原子核(リスト)には、原子の種類に対応した文字列とその3次元座標(別のリスト)が含まれます。また、全体の電荷を指定すると、その電荷を生成するために必要な電子の数をQiskitが自動的に計算します。"
@@ -174,7 +213,7 @@
"source": [
"さて、分子とその量子コンピューターへのマッピングを定義したところで、基底エネルギー問題を解くためのアルゴリズムとして、変分量子固有値ソルバー(VQE)を使います。VQEは、短い量子回路を用いた量子-古典ハイブリッドアルゴリズムであり、現在のノイズのある量子コンピューターに適しています。現在の量子コンピューターは、ノイズによって結果が完全にかき消されてしまう前にしか、つまり、短時間しか計算が実行できません。\n",
"\n",
- "
"
+ ""
]
},
{
@@ -444,7 +483,7 @@
"\n",
"[IBM Quantum Challenge Africa](https://github.com/qiskit-community/ibm-quantum-challenge-africa-2021) より\n",
"\n",
- "
"
+ ""
]
},
{
@@ -484,7 +523,7 @@
"\n",
"実際のプロテアーゼ分子は、約100個のアミノ酸からなる2本のポリペプチド鎖で構成されており(2本の鎖は折りたたまれています)、隣り合うアミノ酸同士はいわゆる*ペプチド結合*で結ばれています。\n",
"\n",
- "
\n",
+ "\n",
"\n",
"私たちのプロテアーゼ分子のトイモデルは、このペプチド結合からヒントを得ることにしました。ペプチド結合は、多数のアミノ酸を結合しタンパク質を作る基本的な構造です。ペプチド結合は、一般的なタンパク質の折り畳みや、HIVプロテアーゼの切断能力など、タンパク質の化学的性質を決定する最も重要な要素の1つです。\n",
"\n",
@@ -493,7 +532,7 @@
"O=C-Nをプロテアーゼ分子のトイモデルにすること、非常に単純化されてはいますが、それでも生物学的に動機付けされています。\n",
"これがそのプロテアーゼのトイモデルです:\n",
"\n",
- "
\n",
+ "
\n",
"\n",
"```\n",
"\"O\": (1.1280, 0.2091, 0.0000)\n",
@@ -506,7 +545,7 @@
"\n",
"この分子をハサミに見立てて、HIVウイルスのコピーを作る過程で、HIVのマスタータンパク質(Gag-Pol高タンパク質)を切ることができると想像してみてください:\n",
"\n",
- "
"
+ "
"
]
},
{
@@ -518,7 +557,7 @@
"\n",
"抗レトロウイルス剤とは、プロテアーゼと結合して、その**切断機構を阻害する**分子のことです。今回のチャレンジでは、1個の炭素原子(C)を抗レトロウイルス分子の代用とします。\n",
"\n",
- "
\n",
+ "
\n",
"\n",
"### マクロ分子\n",
"2つの分子は私たちの頭の中では別々になっていますが、接近すると、外側の電子がすべての原子の周りに分子軌道を形成して、1つのマクロ分子になります。\n",
@@ -536,7 +575,7 @@
"## Step 1: マクロ分子の分子定義\n",
"\n",
"抗レトロウイルス剤が「刃」の間にある窒素原子(N)に接近する様子を表現するために、分子定義と分子変化を構築します:\n",
- "
\n",
+ "
\n",
" ```\n",
" \"C\": (-0.1805, 1.3955, 0.0000)\n",
" ```"
@@ -788,14 +827,6 @@
"import qiskit\n",
"qiskit.version.get_version_info()"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "68949b4a-b941-4593-8a55-9efa2ebe5ea1",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/day3/nature/20240801_nature_solution.ipynb b/solutions/day3/20240801_nature_solution.ipynb
similarity index 99%
rename from day3/nature/20240801_nature_solution.ipynb
rename to solutions/day3/20240801_nature_solution.ipynb
index fb24171..1c2c93d 100644
--- a/day3/nature/20240801_nature_solution.ipynb
+++ b/solutions/day3/20240801_nature_solution.ipynb
@@ -12,6 +12,45 @@
"Honomi Kashihara, Kifumi Numata, IBM Quantum (Aug 01, 2024)"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "1193adbb-ab0b-4f12-9a2f-e8d98fff7f83",
+ "metadata": {},
+ "source": [
+ "Google Colab で行う場合は、次のセルの「#」を削除して実行します。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "43b5c46c-e28a-4e6f-acf4-c5201cc755d4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#!pip install qiskit qiskit-ibm-runtime qiskit-aer qiskit[visualization]\n",
+ "#!pip install qiskit-algorithms qiskit-nature\n",
+ "#!pip install --prefer-binary pyscf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8443d649-2907-4524-a46c-9caa45f8f4c8",
+ "metadata": {},
+ "source": [
+ "qBraid で行う場合は、右上の「Python 3[Default]」をクリックして「Python 3[QDC24]」を選択し、次のセルの「#」を削除して実行したあと、上部の「Kernel」→「Restart Kernel...」からカーネルをリスタートしてください。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "49b2baad-b650-46d1-9037-b1da055396f1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#!pip install pylatexenc qiskit-algorithms qiskit-nature\n",
+ "#!pip install --prefer-binary pyscf"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 1,
@@ -41,8 +80,7 @@
"## Step 1: 水素分子の構造を定義する\n",
"このチュートリアルでは、水素分子(H$_2$)を使います。\n",
"\n",
- "
\n",
- "\n",
+ "\n",
"\n",
"まず最初に行うことは、各原子核の位置を固定します。pythonの原子核のリストとして指定し、各原子核(リスト)には、原子の種類に対応した文字列とその3次元座標(別のリスト)が含まれます。また、全体の電荷を指定すると、その電荷を生成するために必要な電子の数をQiskitが自動的に計算します。"
]
@@ -247,7 +285,7 @@
"source": [
"さて、分子とその量子コンピューターへのマッピングを定義したところで、基底エネルギー問題を解くためのアルゴリズムとして、変分量子固有値ソルバー(VQE)を使います。VQEは、短い量子回路を用いた量子-古典ハイブリッドアルゴリズムであり、現在のノイズのある量子コンピューターに適しています。現在の量子コンピューターは、ノイズによって結果が完全にかき消されてしまう前にしか、つまり、短時間しか計算が実行できません。\n",
"\n",
- "
"
+ ""
]
},
{
@@ -618,7 +656,7 @@
"\n",
"[IBM Quantum Challenge Africa](https://github.com/qiskit-community/ibm-quantum-challenge-africa-2021) より\n",
"\n",
- "
"
+ ""
]
},
{
@@ -658,7 +696,7 @@
"\n",
"実際のプロテアーゼ分子は、約100個のアミノ酸からなる2本のポリペプチド鎖で構成されており(2本の鎖は折りたたまれています)、隣り合うアミノ酸同士はいわゆる*ペプチド結合*で結ばれています。\n",
"\n",
- "
\n",
+ "\n",
"\n",
"私たちのプロテアーゼ分子のトイモデルは、このペプチド結合からヒントを得ることにしました。ペプチド結合は、多数のアミノ酸を結合しタンパク質を作る基本的な構造です。ペプチド結合は、一般的なタンパク質の折り畳みや、HIVプロテアーゼの切断能力など、タンパク質の化学的性質を決定する最も重要な要素の1つです。\n",
"\n",
@@ -667,7 +705,7 @@
"O=C-Nをプロテアーゼ分子のトイモデルにすること、非常に単純化されてはいますが、それでも生物学的に動機付けされています。\n",
"これがそのプロテアーゼのトイモデルです:\n",
"\n",
- "
\n",
+ "
\n",
"\n",
"```\n",
"\"O\": (1.1280, 0.2091, 0.0000)\n",
@@ -680,7 +718,7 @@
"\n",
"この分子をハサミに見立てて、HIVウイルスのコピーを作る過程で、HIVのマスタータンパク質(Gag-Pol高タンパク質)を切ることができると想像してみてください:\n",
"\n",
- "
"
+ "
"
]
},
{
@@ -692,7 +730,7 @@
"\n",
"抗レトロウイルス剤とは、プロテアーゼと結合して、その**切断機構を阻害する**分子のことです。今回のチャレンジでは、1個の炭素原子(C)を抗レトロウイルス分子の代用とします。\n",
"\n",
- "
\n",
+ "
\n",
"\n",
"### マクロ分子\n",
"2つの分子は私たちの頭の中では別々になっていますが、接近すると、外側の電子がすべての原子の周りに分子軌道を形成して、1つのマクロ分子になります。\n",
@@ -710,7 +748,9 @@
"## Step 1: マクロ分子の分子定義\n",
"\n",
"抗レトロウイルス剤が「刃」の間にある窒素原子(N)に接近する様子を表現するために、分子定義と分子変化を構築します:\n",
- "
\n",
+ "\n",
+ "
\n",
+ "\n",
" ```\n",
" \"C\": (-0.1805, 1.3955, 0.0000)\n",
" ```"
@@ -1040,22 +1080,6 @@
"import qiskit\n",
"qiskit.version.get_version_info()"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "68949b4a-b941-4593-8a55-9efa2ebe5ea1",
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "8d5e4aa7-5934-44e3-92d5-ccd8b6e20c4d",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {