๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ WISET Qiskit Dev certificate/Main Lecture

< Lecture 1 - 0 - 0 >

by A Lim Han 2022. 8. 23.

1 - 0 - 0. ๊ฒŒ์ดํŠธ์™€ ์–‘์ž ํšŒ๋กœ_A. ๋‹จ์ผ ํ๋น„ํŠธ ๊ฒŒ์ดํŠธ - ํŒŒ์šธ๋ฆฌ ๊ฒŒ์ดํŠธ (Pauli Gates)

 

 

 

# ๋‹จ์ผ ํ๋น„ํŠธ ๊ฒŒ์ดํŠธ - ํŒŒ์šธ๋ฆฌ ๊ฒŒ์ดํŠธ (Pauli Gates)

- ํŒŒ์šธ๋ฆฌ ๊ฒŒ์ดํŠธ (Pauli Gates)์˜ ๊ฒŒ์ดํŠธ๋“ค

x-๊ฒŒ์ดํŠธ y-๊ฒŒ์ดํŠธ z-๊ฒŒ์ดํŠธ
- ๋น„ํŠธ ํ”Œ๋ฆฝ ๊ฒŒ์ดํŠธ
(๋น„ํŠธ๋ฅผ ๋’ค์ง‘์–ด์ฃผ๋Š” ๊ฒŒ์ดํŠธ)
- ๋น„ํŠธ ํ”Œ๋ฆฝ ๊ฒŒ์ดํŠธ์ด์ž
์œ„์ƒ ํ”Œ๋ฆฝ ๊ฒŒ์ดํŠธ
(์œ„์ƒ์„ ๋ฐ”๊พธ์–ด์ฃผ๊ณ  ๋น„ํŠธ๋ฅผ ๋’ค์ง‘๋Š” ๊ฒŒ์ดํŠธ)
- ์œ„์ƒ ํ”Œ๋ฆฝ ๊ฒŒ์ดํŠธ
(์œ„์ƒ์„ ๋ฐ”๊พธ์–ด ์คŒ)

 

Qiskit ์—์„œ ๊ฒŒ์ดํŠธ๋ฅผ ์–‘์ž ํšŒ๋กœ์— ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ
qc.x(qubit) qc.y(qubit) qc.z(qubit)

 

 

 

- X ๊ฒŒ์ดํŠธ

: X์ถ•์„ ๊ธฐ์ค€์œผ๋กœ π๋งŒํผ ํšŒ์ „. ์œ„์ƒ ๋ณ€ํ™”๋Š” ์—†๊ณ  ์˜ค์ง ๋น„ํŠธ์˜ ๋ณ€ํ™”๋งŒ ์กด์žฌ

 

a. ํ˜„์žฌ ์ƒํƒœ๊ฐ€ 0์ธ ํ๋น„ํŠธ์— X ๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋น„ํŠธ๊ฐ€ ํ”Œ๋ฆฝ๋˜์–ด ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ 1์ด ๋จ

ํ๋น„ํŠธ์— ์–ด๋–ค ๊ฒŒ์ดํŠธ๋„ ๋†“์•„์ฃผ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ดˆ๊ธฐ๊ฐ’ ์ƒํƒœ๋Š” ํ•ญ์ƒ 0

 

 

b. ์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ์— X๊ฒŒ์ดํŠธ ์ถ”๊ฐ€  -->  ์ƒํƒœ๊ฐ€ 1์ด์˜€๋˜ ํ๋น„ํŠธ๊ฐ€ ๋‹ค์‹œ 0์œผ๋กœ ๋Œ์•„๊ฐ

์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ

 

์ƒํƒœ๊ฐ€ ๋‹ค์‹œ 0์ด ๋œ ํ๋น„ํŠธ

 

 

 

 

- Z ๊ฒŒ์ดํŠธ

: Z์ถ•์„ ๊ธฐ์ค€์œผ๋กœ π๋งŒํผ ํšŒ์ „ํ•จ. ์ƒํƒœ์—๋Š” ๋ณ€ํ™”๋ฅผ ์ฃผ์ง€ ์•Š๊ณ  ์œ„์ƒ์—๋งŒ ๋ณ€ํ™”๋ฅผ ์คŒ

 

a. ํ˜„์žฌ ์ƒํƒœ๊ฐ€ 0์ธ ํ๋น„ํŠธ์— z ๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€  -->  Q-sphere ์— ๋น„ํŠธ์˜ ํ”Œ๋ฆฝ์ด ์ผ์–ด๋‚˜์ง€ X + ์œ„์ƒ ๋ณ€ํ™”๋„ X

 

 

b. ์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ์— z ๊ฒŒ์ดํŠธ ์ถ”๊ฐ€  -->  ๋น„ํŠธ ํ”Œ๋ฆฝ์€ ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ , ์œ„์ƒ์€ π ๋งŒํผ ๋ณ€ํ™”๋จ

์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ

 

z ๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ชจ์Šต

 

+ ์™œ z ๊ฒŒ์ดํŠธ๋Š” ์ƒํƒœ๊ฐ€ 0์ธ ํ๋น„ํŠธ์—์„œ๋Š” ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๋ฅผ ์ฃผ์ง€ ๋ชปํ• ๊นŒ?

-->  Z ๊ฒŒ์ดํŠธ์˜ ์ˆ˜ํ•™์  ํ‘œํ˜„(ํ–‰๋ ฌ)๊ณผ ๊ด€๋ จ์ด ์žˆ์Œ

์ฒซ ํ๋น„ํŠธ์—์„œ๋Š” ์–ด๋–ค ๋ณ€ํ™”๋„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์—†์ง€๋งŒ, ๋‘ ๋ฒˆ์งธ์—์„œ๋ถ€ํ„ฐ๋Š” - ๊ฐ€ ๋ถ™์–ด ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ์˜ ํšŒ์ „์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ!

 

 

 

 

 

- Y ๊ฒŒ์ดํŠธ

: Y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ π๋งŒํผ ํšŒ์ „ํ•จ. ์ƒํƒœ์™€ ์œ„์ƒ์„ ๋ชจ๋‘ ๋ณ€ํ™”์‹œํ‚จ๋‹ค.

 

a. ํ˜„์žฌ ์ƒํƒœ๊ฐ€ 0์ธ ํ๋น„ํŠธ์— y ๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€  -->  ์ƒํƒœ, ์œ„์ƒ์ด ๋ชจ๋‘ 0์ด์˜€๋‹ค๊ฐ€ ์œ„์ƒ์ด ใ… /2, ์ƒํƒœ๊ฐ€ 1์ธ ์ƒํ™ฉ์ด ๋จ

 

 

b. ํ˜„์žฌ ์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ์— Y ๊ฒŒ์ดํŠธ ์ถ”๊ฐ€  -->  ์œ„์ƒ์€ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ”๋€Œ์–ด 3ใ… /2๊ฐ€ ๋˜๊ณ , ์ƒํƒœ๋Š” 0์ด ๋จ

์ƒํƒœ๊ฐ€ 1์ธ ํ๋น„ํŠธ

 

y ๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ

 

 

 

 

# ๊ณตํ†ต์ ์œผ๋กœ ์“ฐ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ

1. 

 
+ << from qiskit import * >>
: qiskit์˜  ์ „์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ
 
+ << from qiskit.providers.aer import StatevectorSimulator >>
: StatevectorSimulator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–‘์žํšŒ๋กœ์˜ ์ตœ์ข… ์–‘์ž์ธ statevector์„ ๊ตฌํ• ์ˆ˜ ์žˆ์Œ
 

+ << from
math import pi, sqrt >>
: math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ pi์™€ sqrt์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ
 
+ << from qiskit.visualization import * >>
: ์–‘์ž์ƒํƒœ๋ฅผ ์‹œ๊ฐํ™” ํ•˜๊ธฐ ์œ„ํ•ด qiskit.visualization์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ฝ”๋“œ

 

 

 

2. 

+ << qc1.draw(output="mpl") >>
: 1๊ฐœ์˜ ํ๋น„ํŠธ๋ฅผ ๊ฐ€์ง„ ์–‘์ž ํšŒ๋กœ๋ฅผ qc1์— ์ง€์ •ํ•ด์ฃผ๋Š” ์ฝ”๋“œ
 

+ << qc1.draw(output="mpl") >>

: mpl ์˜ ํ˜•ํƒœ๋กœ ์–‘์žํšŒ๋กœ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์ฝ”๋“œ

 

+ << qc1.x(0) >>

: qc1์ด๋ผ๋Š” ์–‘์ž ํšŒ๋กœ์˜ 0๋ฒˆ์งธ ํ๋น„ํŠธ์— X ๊ฒŒ์ดํŠธ ์ถ”๊ฐ€

 

 

 

3. ์ƒ์„ฑํ•œ ์–‘์ž ํšŒ๋กœ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋“ค

+ << state1 = execute(qc1, StatevectorSimulator()).result().get_statevector() >>
: StatevectorSimulator()์—์„œ qc1 ์–‘์ž ํšŒ๋กœ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์–ป์€ ๊ฒฐ๊ณผ๋“ค ์ค‘, ์ƒํƒœ ๋ฒกํ„ฐ๋ฅผ ๊ณจ๋ผ state1์— ์ง€์ •ํ•ด์ฃผ๋Š” ์ฝ”๋“œ
 
+ << plot_bloch_multivector(state1) >>
: ์œ„์˜ ์ฝ”๋“œ์—์„œ ์–ป์—ˆ๋˜ ์ƒํƒœ ๋ฒกํ„ฐ state1์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ธ”๋กœํ ๊ตฌ์˜ ํ˜•ํƒœ๋กœ ๊ทธ๋ฆฌ๊ฒŒ ํ•จ
์ƒํƒœ๊ฐ€ 1์ธ ๋ธ”๋กœํ ๊ตฌ

 

 
 
 
 
 
# ์–‘์žํšŒ๋กœ ์ƒ์„ฑ ์‹ค์Šต
1. ์–‘์žํšŒ๋กœ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ๋น„ํŠธ์˜ ๊ฐœ์ˆ˜๋ฅผ 1๊ฐœ๋กœ ์ง€์ •


+ ํฐ ์‚ฌ์ง„์˜ q๋Š” ํ๋น„ํŠธ๋ฅผ ์˜๋ฏธํ•จ

 

 

 

2. ์•„๋ฌด ๊ฒŒ์ดํŠธ๋„ ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ์œ„์˜ ํ๋น„ํŠธ์˜ ๋ธ”๋กœํ ๊ตฌ๋ฅผ qiskit์„ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„

+ [4]์˜ ์ฝ”๋“œ

: StatevectorSimulator()์—์„œ qc1 ์–‘์ž ํšŒ๋กœ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์–ป์€ ๊ฒฐ๊ณผ๋“ค ์ค‘, ์ƒํƒœ ๋ฒกํ„ฐ๋ฅผ ๊ณจ๋ผ state0์— ์ง€์ •ํ•ด์ฃผ๋Š” ์ฝ”๋“œ

 

+ [5]์˜ ์ฝ”๋“œ๋Š” ๋ธ”๋กœํ ๊ตฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰

 

 

 

3. ์œ„์˜ ๋นˆ ๊ฒŒ์ดํŠธ์— X๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , X๊ฒŒ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ ํ๋น„ํŠธ์˜ ๋ธ”๋กœํ ๊ตฌ ๊ทธ๋ฆฌ๊ธฐ

+ [6]์˜ ์ฝ”๋“œ

: qc1์ด๋ผ๋Š” ์–‘์žํšŒ๋กœ์˜ 0๋ฒˆ์งธ ํ๋น„ํŠธ์— X๊ฒŒ์ดํŠธ ์ถ”๊ฐ€

 

 

 

4. ํ๋น„ํŠธ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ์ค‘๊ฐ„ ๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถœ๋ ฅํ•˜๊ธฐ

+ visualize_transition(qc1)

: ๋ณ€ํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ฝ”๋“œ

 

 

'โœ’๏ธ WISET Qiskit Dev certificate > Main Lecture' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

< Lecture 1 - 2 - 0 >  (0) 2022.08.29
< Lecture 1 - 1 >  (0) 2022.08.28
< Lecture 1 - 0 - 1 >  (0) 2022.08.24