1 - 1. ๊ฒ์ดํธ์ ์์ ํ๋ก_B. ๋ค์ค ํ๋นํธ ๊ฒ์ดํธ
# ๋ค์ค ํ๋นํธ ์ํ
- ํ ๊ฐ์ ํ๋นํธ๊ฐ ์๋ค๋ฉด 0๊ณผ 1 ๋ ๊ฐ์ง์ ์ํ๋ก ๋ํ๋ผ ์ ์๋ค.
--> ๊ฐ์ ์๋ฆฌ๋ก 2๊ฐ์ ํ๋นํธ๋ 4๊ฐ์ง, 3๊ฐ์ ํ๋นํธ๋ 8๊ฐ์ง์ ์ํ๋ฅผ ๋ํ๋ผ ์ ์์
- ํฌ๋ก๋ค์ปค ๊ณฑ( Kronecker Product )
: 2๊ฐ ์ด์์ ํ๋นํธ๊ฐ ๋ถ๋ฆฌ๋์ด ํํ๋ ์ํฉ์์ ์ด ํ๋นํธ๋ค์ ์ํ๋ฅผ ํํํ๋๋ฐ ์ฐ์
ex) a, b๋ผ๋ 2๊ฐ์ ํ๋นํธ๊ฐ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ์๋ ๋ ํ๋นํธ์ ์ํ๋ฅผ ํฌ๋ก๋ค์ปค ๊ณฑ์ ํตํด ํํํด๋ณด๊ธฐ
- ๋ค์ค ํ๋นํธ ์ํ์ Qiskit์์์ ํํ๋ฒ
: ๋ค์ค ํ๋นํธ์ ์ํ๋ฅผ ํํํ ๋ Qiskit์์๋ ๊ฐ์ฅ ์ผ์ชฝ์ ์ต์์ ๋ฐ์ดํธ( MSB = Most Significant Bit ), ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์ตํ์ ๋ฐ์ดํธ( LSB = Least SIgnificant Bit )๋ก ํํํ๋ค.
# ๋ค์ค ํ๋นํธ ๊ฒ์ดํธ์ ์์ ํ๋ก ๊ทธ๋ฆฌ๊ธฐ ์ค์ต
1. ์๋์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Qiskit ๋ถ๋ฌ์ค๊ธฐ
2. 2๊ฐ์ ํ๋นํธ๋ฅผ ์ง๋ ์์ํ๋ก qc ์์ฑํ๊ธฐ --> X ๊ฒ์ดํธ๋ฅผ 0๋ฒ์งธ ํ๋นํธ์ ๋ฃ๊ธฐ --> ์์ ํ๋ก ๊ทธ๋ฆฌ๊ธฐ
3. ์์์ ์์ฑํ ๋ค์ค ํ๋นํธ ์์ํ๋ก๋ฅผ Statevector Simulator์ ์คํ์์ผ ๋ฒกํฐ ์ ๋ณด๋ฅผ state0์ด๋ผ๊ณ ์ง์ --> ์ด ์ํ๋ฅผ latex(๋ ์ดํ ์ค) ํํ๋ก ์ถ๋ ฅ
+ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์์นํ๋ 0๋ฒ์งธ ํ๋นํธ๋ ์ถ๊ฐ๋ X ๊ฒ์ดํธ์ ์ํด ์ํ๊ฐ 1์ด ๋จ
+ ๊ฐ์ฅ ์ผ์ชฝ์ ์์นํ ์ฒซ ๋ฒ์งธ ํ๋นํธ์ ๊ฒฝ์ฐ ์๋ฌด๋ฐ ๊ฒ์ดํธ์ ์ํฅ์ ๋ฐ์ง ๋ชปํด 0 ์ํ ๊ทธ๋๋ก ์ ์ง
4. ์์ ๋ค์ค ํ๋นํธ ์ํ๋ฅผ ๋ธ๋กํ ๊ตฌ๋ก ์ถ๋ ฅ
+ ์ค๋ฅธ์ชฝ ๋ธ๋กํ ๊ตฌ : 0๋ฒ์งธ ํ๋นํธ๋ก, 1์ ๊ฐ๋ฆฌํด
+ ์ผ์ชฝ ๋ธ๋กํ ๊ตฌ : 1๋ฒ์จฐ ํ๋นํธ๋ก, 0์ ๊ฐ๋ฆฌํด
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - CX ๊ฒ์ดํธ
: Control ํ๋นํธ์ ์ํ๊ฐ 1์ผ ๊ฒฝ์ฐ target ํ๋นํธ์ X ๊ฒ์ดํธ๋ฅผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
+ Qiskit ์์ ์ ๊ฒ์ดํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ control ์ด ๋๋ ํ๋นํธ์ target์ด ๋๋ ํ๋นํธ๋ฅผ ๊ฐ๊ฐ ์ง์ ํด์ผ ํจ
ex 1) Control ํ๋นํธ์ ์ํ๊ฐ 0์ผ ๋์ CX ๊ฒ์ดํธ ์ค์ต
+ ์์ ์ ์ผ๋ก ํ์๋ ํ๋นํธ = control ํ๋นํธ
+ X ๊ฒ์ดํธ๊ฐ ๊ทธ๋ ค์ง ํ๋นํธ = target ํ๋นํธ
+ ์ ์ฌ์ง์ ์์ ํ๋ก์ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ํ๋นํธ์ X ๊ฒ์ดํธ๊ฐ ์คํ๋์ง ์์ ์ถ๋ ฅ ๊ฐ๋ฅํ ์ํ๊ฐ "00"์ด ๋จ
--> ๋ ํ๋นํธ์ ์ด๊ธฐ ์ํ๊ฐ ๋ชจ๋ 0์ด์๊ณ , control ํ๋นํธ์ ์ํ ๋ํ 0์ด์๊ธฐ ๋๋ฌธ
ex 2) Conrtol ํ๋นํธ์ ์ํ๊ฐ 1์ผ ๋ CX ๊ฒ์ดํธ ์ค์ต
1. " ex 1 ์ ์ฌ์ง์ฒด์ X ๊ฒ์ดํธ๋ฅผ 0๋ฒ์งธ ํ๋นํธ์ ๊ฐ์ฅ ์์ ์ถ๊ฐ
2. control ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉฐ ์ํ๊ฐ 0์ด์๋ target ํ๋นํธ์ X ๊ฒ์ดํธ๊ฐ ์ ์ฉ๋จ --> ์์ ์ฌ์ง์ฒ๋ผ ์ต์ข ์ํ๊ฐ "11"์ด ๋จ
+ ๋จ, control ํ๋นํธ์ ์ํ๋ CX ๊ฒ์ดํธ์ ์ํด ๋ณํ๋์ง ์์
ex 3) Control , target ํ๋นํธ์ ์ํ๊ฐ ๋ชจ๋ 1์ธ ๊ฒฝ์ฐ
+ control ํ๋นํธ์ ์ํ๊ฐ 1์ --> 1์ธ target ํ๋นํธ์ ์ํ์ X ๊ฒ์ดํธ ์คํ --> target ํ๋นํธ์ ์ํ๋ฅผ 0์ผ๋ก, ์ต์ข ์ํ๋กค "01"๋ก ๋ณํ
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - CY ๊ฒ์ดํธ
: Control ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉด target ํ๋นํธ์ Y ๊ฒ์ดํธ๋ฅผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - CZ ๊ฒ์ดํธ
: Control ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉด target ํ๋นํธ์ Z ๊ฒ์ดํธ๋ฅผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ์ด์ ๋์นญ์ ์ธ(Symmetric) ๊ฒ์ดํธ
+ Symmectric Gate
: Control, Target ์ด ๊ตฌ๋ถ๋์ง ์๋ ๊ฒ์ดํธ
- Control ํ๋นํธ์ ์ํ๊ฐ ๊ฐ๊ฐ 0, 1 ์ธ ๊ฒฝ์ฐ ๋น๊ต
- Control, target ํ๋นํธ ๊ตํํด๋ณด๊ธฐ
--> control, target ํ๋นํธ๋ฅผ ๊ตฌ๋ถํ์ง ์์์ ํ์ธ ๊ฐ๋ฅ
- Control, Target ํ๋นํธ์ ์ด๊ธฐ ์ํ๊ฐ ๋ชจ๋ 1์ผ ๊ฒฝ์ฐ
+ target ๊ฒ์ดํธ์ Z ๊ฒ์ดํธ๊ฐ ์คํ --> ์์์ด π ๋งํผ ๋ณํํจ
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - CRX, CRY, CRZ ๊ฒ์ดํธ
- CRX ๊ฒ์ดํธ
: Conrtol ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉด target ํ๋นํธ์ RX ๊ฒ์ดํธ๋ฅผ θ๋งํผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
- CRY ๊ฒ์ดํธ
: Conrtol ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉด target ํ๋นํธ์ RY ๊ฒ์ดํธ๋ฅผ θ๋งํผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
- CRZ ๊ฒ์ดํธ
: Conrtol ํ๋นํธ์ ์ํ๊ฐ 1์ด ๋๋ฉด target ํ๋นํธ์ RZ ๊ฒ์ดํธ๋ฅผ θ๋งํผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - CH ๊ฒ์ดํธ, CP ๊ฒ์ดํธ
- CH ๊ฒ์ดํธ
: control ํ๋นํธ์ ์ํ๊ฐ 1์ผ ๋ target ํ๋นํธ์ H ๊ฒ์ดํธ๋ฅผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
- CP ๊ฒ์ดํธ
: control ํ๋นํธ์ ์ํ๊ฐ 1์ผ ๋ target ํ๋นํธ์ P ๊ฒ์ดํธ๋ฅผ θ๋งํผ ์คํํ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ์ด์ ๋์นญ์ ์ธ ๊ฒ์ดํธ
ex) CH ๊ฒ์ดํธ ์ค์ต
--> ํ ํ๋นํธ์ ์ํ์ ๋ฐ๋ผ ๊ทธ ํ๋นํธ๋ฅผ ์ค์ฒฉ ์ํ๋ก ๋ง๋ค ์ O
# ๋ค์ค 2 ํ๋นํธ ๊ฒ์ดํธ - SWAP ๊ฒ์ดํธ
: ๋ ๊ฐ์ง ํ๋นํธ qubit0, qubit1์ ์ง์ ํด์ ์ฌ์ฉํ๋ฉฐ, qubit0 ํ๋นํธ์ ์ํ์ qubit1 ํ๋นํธ์ ์ํ๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ๋์นญ์ ์ธ ๊ฒ์ดํธ
- SWAP ๊ฒ์ดํธ ์ค์ต
1. 0๋ฒ์งธ ํ๋นํธ์ X ๊ฒ์ดํธ ์ถ๊ฐ --> ์ํ๊ฐ "01"์ด ๋จ
2. ์ ์ฌ์ง์ ์ํ์์ SWAP ๊ฒ์ดํธ ์ถ๊ฐ --> 0๋ฒ์งธ์ ์ฒซ ๋ฒ์งธ ํ๋นํธ์ ์ํ๋ฅผ ๋ฐ๊พธ์ด ์ํ๊ฐ "10"์ด ๋จ
3. ๋ฉด๋ฐํ ๊ด์ฐฐ์ ์ํด ํ๋นํธ์ ์ด ๊ฐ์๋ฅผ 5๊ฐ๋ก ๋๋ฆผ --> ์ต์ข ์ํ๊ฐ "00001"์ด ๋จ
4. 3๋ฒ ์ํ์์ SWAP ๊ฒ์ดํธ๋ฅผ 0๋ฒ์งธ, ๋ ๋ฒ์งธ ํ๋นํธ์ ์คํ์ํค๊ธฐ --> 0๋ฒ์งธ, ๋ ๋ฒ์งธ ํ๋นํธ์ ์ํ๊ฐ ์๋ก ๋ฐ๋๋ฉฐ ์ต์ข ์ํ๊ฐ "00100"์ด ๋จ
# ๋ค์ค 3 ํ๋นํธ ๊ฒ์ดํธ - Toffoli ๊ฒ์ดํธ( = CCX ๊ฒ์ดํธ )
: control_0 ํ๋นํธ์ ์ํ์ control_1 ํ๋นํธ์ ์ํ๊ฐ ๋ชจ๋ 1์ธ ๊ฒฝ์ฐ target ํ๋นํธ์ X ๊ฒ์ดํธ๋ฅผ ์คํํด์ฃผ๋ ์กฐ๊ฑด๋ถ ๊ฒ์ดํธ
- CCX ๊ฒ์ดํธ ์ค์ต
Case 1) control0 ์ํ๊ฐ 1์ธ ๊ฒฝ์ฐ target ํ๋นํธ์ ์ํ๊ฐ ๋ณํ์ง ์์
Case 2) control0 ์ํ๊ฐ 0์ด๊ณ control1์ ์ํ๊ฐ 1์ธ ๊ฒฝ์ฐ target ํ๋นํธ์ X ๊ฒ์ดํธ๊ฐ ์คํ๋์ง X
Case 3) control0 ์ํ๊ฐ 1์ด๊ณ control1์ ์ํ๊ฐ 1์ธ ๊ฒฝ์ฐ target ํ๋นํธ์ X ๊ฒ์ดํธ ์คํ --> "011" ์ด์๋ ์ด๊ธฐ ์ํ์ ์์ ํ๋ก๊ฐ "111"์ด ๋จ
# ์ฐธ๊ณ ์๋ฃ
: Qiskit-Dev-Cert-lectures + ์ฃผํผํฐ ๋ ธํธ๋ถ ์๋ฃ ( https://github.com/QuantumComputingKorea/Qiskit-Dev-Cert-lectures )
'โ๏ธ WISET Qiskit Dev certificate > Main Lecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
< Lecture 1 - 2 - 0 > (0) | 2022.08.29 |
---|---|
< Lecture 1 - 0 - 1 > (0) | 2022.08.24 |
< Lecture 1 - 0 - 0 > (0) | 2022.08.23 |