Skip to content

Latest commit

ย 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

README.md

Chapter01

IBM QX setup

์ฑ…์— ์žˆ๋Š”๋Œ€๋กœ IBM QX(Quantum Experience) ์‚ฌ์ดํŠธ์—์„œ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  Composer๋ฅผ ์‹คํ–‰ํ•ด ๋ณธ๋‹ค. ํ˜„ ์‹œ์ ์—์„œ๋Š” Circuit Composer๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฉ”๋‰ด๋กœ ๋˜์–ด ์žˆ๋‹ค.

IBMQX Circuit Composer

์ฑ…์˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๋‹ค๋ฅธ ์ ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • Gates ๋ฐฐ์น˜๊ฐ€ ์šฐ์ธก์ด ์•„๋‹Œ ์ƒ๋‹จ์— ์žˆ๋‹ค.
  • ์ตœ์ดˆ qubit ๊ฐœ์ˆ˜๋Š” 3๊ฐœ์—ฌ์„œ composer ์ƒ์— + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ qubit 2๊ฐœ๋ฅผ ๋” ์ถ”๊ฐ€ํ•ด์•ผ 5 qubit test๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • QASM ๋ฐ Qiskit ์ฝ”๋“œ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋˜๋ฉฐ composer์™€ ๋™๊ธฐํ™”๊ฐ€ ๋˜๋ฏ€๋กœ visual coding์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Histogram ์™ธ์— Q-sphere๊ฐ€ ์ถ”๊ฐ€๋˜์„œ ๋” ์ง๊ด€์ ์œผ๋กœ ์‹œ๊ฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฒ˜์Œ์— backend๊ฐ€ simulator๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ backend ์„ธํŒ…์„ ๋ฐ”๊พผ ํ›„์— ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

API ํ‚ค

์ฑ…์€ ์Šคํฌ๋ฆฐ์ƒท ์—†์ด ๊ธ€๋กœ ์„ค๋ช…๋˜์–ด ์žˆ๋Š”๋ฐ ์šฐ์ธก ์ƒ๋‹จ์˜ my account๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด ๋ฐ”๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๊ณ  ๋‹ค๋ฅธ ๋ฉ”๋‰ด๋ฅผ ์ฐพ์•„ ํ—ค๋ฉ”์ผ ํ•„์š” ์—†์ด Qiskit in local environment ํ•ญ๋ชฉ์—์„œ ๋ฐ”๋กœ API token์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

MyAccount_APIToken

Qiskit ์˜ˆ์ œ ์„ค์ •๊ณผ ์‹คํ–‰

์ฑ…์ด ์ถœํŒ๋œ ์‹œ์ ๊ณผ ํ˜„์žฌ ์‹œ์ ์—์„œ์˜ qiskit์˜ ๋ฒ„์ „์€ ๊ฝค ๋‹ค๋ฅด๋ฏ€๋กœ ์‚ฌ์‹ค ๊ทธ๋Œ€๋กœ ์‹คํ–‰์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๊ฑด ํ˜„ ์‹œ์ ์—์„œ qiskit 0.23.0 ๊ธฐ์ค€์˜ ์„ค๋ช…์ด๋‹ค.

ํŠน๋ณ„ํžˆ ์ฑ…์— ์žˆ๋Š” ๋‚ด์šฉ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ˆ˜์ •๋œ ์ ๋งŒ ์„ค๋ช…ํ•œ๋‹ค.

jupyter notebook์˜ update๋Š” Origin ์ฃผ์†Œ์—์„œ fork ํ•ด์˜จ Forked ์ฃผ์†Œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

Chapter01์˜ ๋ถ€๋ถ„๋งŒ ํ™•์ธํ•ด ๋ณด๊ณ ์ž ํ•˜๋ฉด ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

Jupyter notebook troubleshooting

โš ๏ธ jupyter notebook ํ™˜๊ฒฝ ์„ค์ •์ด ์ž˜ ์•ˆ๋˜๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ปค๋„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„ ํŒจํ‚ค์ง€ ์„ค์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š”๋ฐ uninstall ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ install ํ•ด์ฃผ๋ฉด ๊ฑฐ์ง“๋ง ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค.

๋‚˜์˜ ๊ฒฝ์šฐ๋Š” numpy, pywin32, Pillow ๋“ฑ์˜ ํŒจํ‚ค์ง€๋ฅผ ์žฌ์„ค์น˜ ํ•ด์คฌ๋‹ค.

์ฐจ์ด์ 

IBMQ.backends() ํ•จ์ˆ˜๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฒ€์ƒ‰ํ•ด ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋งํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

https://quantumcomputing.stackexchange.com/questions/9161/how-to-fix-an-error-attributeerror-ibmqfactory-object-has-no-attribute-get

IBMQ์—์„œ ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ provider์—์„œ backend๋ฅผ ์–ป๋Š” ํ˜•ํƒœ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. backends()์™€ get_backend() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

provider = IBMQ.get_provider()
print(provider.backends())
backend  = provider.get_backend('ibmq_qasm_simulator')