IBM QX로 배우는 양자 컴퓨팅 (양자 컴포저와 키스킷을 활용한 양자 컴퓨팅의 이해)

IBM QX로 배우는 양자 컴퓨팅 (양자 컴포저와 키스킷을 활용한 양자 컴퓨팅의 이해)

$30.00
Description
양자 컴퓨팅의 원리부터 양자 컴퓨팅을 실제로 적용할 수 있는 영역까지 다룬다. 양자 컴포저와 키스킷을 이용해 양자 개발 환경을 제공하는 IBM 생태계를 살펴본다. 더 나아가 양자 프로세서에서 알고리즘을 구현하고, 양자 계산을 실제로 실행하는 방법을 배운다. 이 책을 읽고 나면 자신의 양자 프로그램을 작성하는 방법, 산업에 양자 컴퓨팅이 미칠 영향, 미래의 프로그래밍 직업에 양자 컴퓨팅을 적용하는 방법 등을 완전히 이해할 수 있을 것이다.
선정 및 수상내역
2020년 대한민국학술원 우수학술도서 선정도서
저자

크리스틴콜벳모란

(Dr.ChristineCorbettMoran)
나사제트추진연구소(NASAJPL)사이버보안전문연구원이자엔지니어다.칼텍(Caltech)에서천체물리학을전공한방문연구원이기도하며,기초물리학,컴퓨터공학에기반해연구를진행하고있다.천체물리학,천문학,인공지능,양자컴퓨팅에관련해동료심사평가된논문을게재한후지금까지수천번넘게인용이됐다.직접개발한소프트웨어제품은iOS앱부터양자컴퓨팅시뮬레이터까지다양하며백만번넘게다운로드됐다.취리히대학교천체물리학박사와석사학위를취득했고,MIT에서컴퓨터공학과물리학석사학위를보유하고있다.트위터(@corbett)에서만날수있다.

목차

1장.양자컴퓨팅이란무엇인가?
__기술적인필요사항
__양자컴퓨터란무엇인가?
____양자컴퓨터의사용
____전문가의견?왜양자컴퓨터가중요한가?
__양자컴퓨팅의역사,현재그리고미래
____양자컴퓨팅의역사
____양자컴퓨팅의현재상황
____양자컴퓨팅의미래
__파이썬코드예제설정과실행
____책에서사용된코드다운로드하기
____주피터노트북설정
__IBMQX예제설정과실행
____헬로양자월드
____API키
__키스킷예제설정과실행
__요약
__연습문제

2장.큐비트
__기술적인필요조건
__큐비트
____큐비트저장하기
__큐비트시뮬레이션
____|“0”〉과|“1”〉
____|“0”〉과|“1”〉의조합
____큐비트의세가지다른형태의표현
____0과1기초?추가적인설명
____플러스마이너스기초
____시계방향과반시계방향기초
__블로흐구
____블로흐구에표현된|“0”〉과|“1”〉그리고다른기초
____큐비트에서블록좌표
__블로흐구에블록좌표나타내기
____큐비트의중첩과측정
____큐비트의양자중첩
____큐비트의양자측정
____블로흐구에서하나의큐비트측정
__요약
__연습문제

3장.양자상태,양자레지스터그리고측정
__기술적인필요조건
__양자상태와레지스터
__분리가능한상태
__얽힘
__양자측정과얽힘
____파이썬에서양자측정시뮬레이션하는알고리즘
__결잃음,T1그리고T2
____결잃음
____T1과T2
__요약
__연습문제

4장.양자게이트로양자상태전개하기
__기술적인필요조건
__게이트
____전통적인게이트
____양자게이트
__상태에대한게이트동작
__하나의큐비트게이트
____하다마드게이트(H)
____폴리(Pauli)게이트(X,Y,Z)
____페이즈게이트(S)와π/8게이트(T)
__다수큐비트게이트
____CNOT게이트
__요약
__연습문제

5장.양자회로
__기술적인필요조건
__양자회로와양자회로도표
__양자회로를만들기위해키스킷사용하기
____키스킷에서하나의큐비트회로
____키스킷의양자회로클래스와보편적인게이트메소드
____키스킷에서다수큐비트게이트
____키스킷회로에서전통적인레지스터
____키스킷회로에서측정
__되돌릴수있는계산
__유용한양자회로
____2진입력을준비하기위해X게이트사용하기
____두개의큐비트바꾸기
__요약
__연습문제

6장.양자컴포저
__기술적인필요조건
__양자컴포저
____하드웨어
____게이트,작업,장벽
__양자회로를양자컴포저로옮기기
__양자컴포저에서시뮬레이션이나하드웨어로구동하기
____시뮬레이션에서양자회로실행하기
____양자컴퓨팅하드웨어에서양자회로실행하기
__요약
__연습문제

7장.OpenQASM다루기
__기술적인필요조건
__OpenQASM
__OpenQASM프로그램을양자스코어로변환하기
____하나의큐비트를부정하는OpenQASM
____두개의큐비트에게이트를적용하고,첫번째큐비트를측정하는OpenQASM
__OpenQASM2.0프로그램에서양자스코어나타내기
__IBMQX와인터페이스하는OpenQASM사용하기
__고급OpenQASM사용법
____큐비트초기화
____if문
____사용자정의게이트와프리미티브게이트
____프리미티브게이트CX와U
____불투명한게이트
__요약
__연습문제

8장.키스킷과양자컴퓨터시뮬레이션
__기술적인필요조건
__키스킷설치와사용법
____키스킷설치테스트
____키스킷으로OpenQASM사용하기
____키스킷아쿠아소개와설치
__키스킷테라?기준프로젝트
____MIDI명세의간단한소개
____MIDI로양자컴퓨팅살펴보기
__요약
__연습문제

9장.양자AND(토폴리)게이트와양자OR게이트
__기술적인필요조건
__2진충족가능문제
____3SAT전통적인구현
____3SAT?왜이문제가흥미로운가?
__양자AND와OR
____토폴리게이트?양자AND게이트
____양자OR게이트
____여러큐비트의양자AND와OR
__3SAT양자회로구현
__요약
__연습문제

10장.그로버의알고리즘
__기술적인필요조건
__그로버알고리즘의개요와예제
____그로버알고리즘단계
__그로버알고리즘체커로써의3SAT
____키스킷에서2개-큐비트그리고3개-큐비트양자AND(토폴리)
____키스킷에서2개-큐비트그리고3개-큐비트양자OR
____게이트와되돌리기테스트하기
__그로버알고리즘으로3SAT문제해결
____키스킷에서오라클구현
_____3sat_mystery_3함수테스트
____무버단계구현
____전체알고리즘설정
____키스킷에서알고리즘실행
__요약
__연습문제

11장.양자푸리에변환
__전통적인푸리에변환
____사인파동
__실질적인푸리에변환
__양자푸리에변환
__양자푸리에변환구현
____파이썬에서제어된회전게이트Rk구현
____QFT회로
__IBMQX에서QFT회로구현
____IBMQX에서REV게이트구현
____IBMQX에서Rk게이트구현
____IBMQX에서1-큐비트QFT
____IBMQX에서2-큐비트QFT
____IBMQX에서3-큐비트QFT
____일반화
__요약
__연습문제

12장.쇼어알고리즘
__쇼어알고리즘
____큰정수를효과적으로인수분해하는것은현대암호화기법에영향을미침
__쇼어알고리즘개요
____쇼어알고리즘설명
____기호/수학으로쇼어알고리즘설명
__쇼어알고리즘예제
____N이소수N=7인예제
____N이두소수의곱이고,N은작고,N=15인예제
____N이두소수의곱이고,N은크고,N=2257인예제
____N이소수와소수가아닌수의곱이고,N=837인예제
__쇼어알고리즘파이썬구현
____쇼어알고리즘?전통적인구현
____쇼어알고리즘?양자구현
____N=15,a=2로양자컴퓨터에서구현하는예제
____양자컴퓨터에서주기를찾은이후동작확인
____양자컴퓨터에서N=35,a=8인예제구현
__요약
__연습문제

13장.양자오류정정
__양자오류
____하드웨어오류,비트반전오류설명
____시뮬레이터에서모델링오류
__양자오류정정
____하나의비트반전오류정정
____하나의위상반전에대한양자오류정정
____쇼어코드?하나의비트와/또는위상반전
__요약
__연습문제

14장.결론?양자컴퓨팅의미래
__양자컴퓨팅의중요개념
__양자컴퓨팅이유용할분야
__양자컴퓨팅에대한비관론
__양자컴퓨팅에관한낙관론
__양자컴퓨팅에대한마지막생각

부록
__유용한수학기법
____합
____복소수
____선형대수
__행렬의큐비트,상태,게이트
____큐비트
____게이트
____양자측정

출판사 서평

★이책에서다루는내용★

■양자컴퓨팅의핵심개념과원리
■양자원리를적용할수있는영역
■양자논리로프로그램디자인
■양자컴퓨터가계산하는방법과원리
■쇼어와그로버의알고리즘을포함한중요한양자계산알고리즘
■산업영역에서의양자컴퓨팅잠재성분석

★이책의대상독자★

양자컴퓨팅을배우길원하는개발자나데이터과학자에게좋은참고서가될것이다.이책을읽기전에파이썬언어를기본적으로이해하고있어야하지만물리학,양자역학,고급수학관련지식이꼭필요한것은아니다.

★이책의구성★

1장,‘양자컴퓨팅이란무엇인가?’에서는전통적인컴퓨팅방식의컴퓨터와비교했을때양자컴퓨터의잠재적인장점을무엇인지설명한다.전통적인컴퓨팅과양자컴퓨팅의역사를을알아보고,컴퓨팅의최신기술을살펴본다.
2장,‘큐비트’에서는블로흐스피어(Blochsphere)를소개하고개별큐비트의중첩과측정을설명한다.큐비트가왜양자컴퓨팅의기본개념이되는지알아보고,파이썬에서시뮬레이션해직접코드를살펴본다.여기서중첩(superposition)에관해논의하고,하나의큐비트가나타내는세개의다른표현을살펴보는파이썬코드를사용한다.
3장,‘양자상태,양자레지스터그리고측정’에서는전통적인레지스터의양자버전인양자레지스터와양자상태를보관하는방법을알아본다.나아가분리가능한상태와얽힘(entanglement)에관해논의하고,얽혀있는여러개의큐비트에대한양자를측정하고,파이썬으로구현해봄으로써집중적으로다룬다.
4장,‘양자게이트로양자상태전개하기’에서는양자컴퓨팅을실행하기위해합쳐질수있는일반적인게이트집합을형성하고가장흔하게사용되는게이트인I,X,Y,Z,H,S,S†,T,T†,CNOT를설명한다.또한이렇게사용되는양자게이트의파이썬구현을제공하고,지금껏살펴본양자상태에적용되는게이트의파이썬예제를살펴본다.
5장,‘양자회로’에서는전통적인회로와같은양자회로를소개하기위해양자게이트의개념을확장한다.이장에서는어떻게전통적인게이트가양자회로에서재생산될수있는지확인하고,복잡한수학이나프로그래밍언어를사용하지않고양자회로를쉽게정의하는데사용할수있는양자회로를시각적으로표현한다.
6장,‘양자컴포저’에서는양자회로를시각적으로보여주는양자스코어(scores)를통해양자회로를만드는데사용되는IBMQX의사용자인터페이스를알아본다.양자컴포저로IBMQX하드웨어나소프트웨어시뮬레이터에구현할자신의양자회로를정의할수있다.더불어이전에사용한파이썬코드를양자컴포저표현으로변환하고,이를IBMQX하드웨어에서구동할기회를제공한다.
7장,‘OpenQASM다루기’에서는오픈양자어셈블리언어(OpenQuantumAssemblyLanguage)를설명한다.줄여서오픈카즘(openkazm)으로발음한다.이언어는IBMQX내에서사용될수있다.이장에서는이전에정의한양자회로를다시확인하고,OpenQASM언어에서다시정의한다.이렇게OpenQASM으로재정의된양자회로는IBMQX에서실행할기회를제공한다.
8장,‘키스킷과양자컴퓨터시뮬레이션’에서는키스킷(QuantumInformationSoftwareKit)을소개한다.클라우드를통해IBMQX에서키스킷으로프로그램을구동하는방법과양자시뮬레이션의기능에초점을두고설명한다.양자회로,측정,키스킷사용개념을키스킷을사용하는프로젝트에서확인하면서양자컴퓨터를사용해음악화음을표현하는유용한데모를만든다.
9장,‘양자AND(토폴리)게이트와양자OR게이트’에서는양자컴퓨터로그로버(Grover)나다른알고리즘의논리적인문제를해결하기위해,이진논리게이트와동일한양자게이트를살펴본다.
10장,‘그로버알고리즘’에서는전통적인구현과양자구현을비교해그로버의알고리즘을설명한다.이후해당알고리즘을OpenQASM,키스킷,양자스코어로구현한다.
11장,‘양자푸리에변환’에서는양자푸리에변환을설명한다.이는쇼어(Shor)의알고리즘을포함한많은중요한양자알고리즘의하위루틴이된다.이에비교해전통적인컴퓨터에서표현되는신호의푸리에변환이되는불연속형푸리에변환을계산하는전통적인알고리즘을보여준다.마지막으로양자푸리에변환알고리즘을OpenQASM,키스킷,양자스코어로구현한다.
12장,‘쇼어알고리즘’에서는쇼어알고리즘을설명하고소인수분해를사용하는전통적인알고리즘구현과비교해살펴본다.그리고키스킷에서쇼어알고리즘을구현한다.
13장,‘양자오류정정’에서는양자오류전파문제를설명하고,양자오류정정(QEC,QuantumErrorCorrection)의필요성을알아본뒤간단한QEC알고리즘을구현한다.
14장,‘결론?양자컴퓨터의미래’에서는배운내용을다시살펴보고양자컴퓨팅의명확한이해를돕는다.그리고양자계산과양자컴퓨팅프로그램능력이필요한곳을검토해본다.또한왜양자물리학자가아닌일반기업가,프로그래머,기술자등이양자컴퓨팅에관심을가질가능성이높은지알아본다.

★옮긴이의말★

현재여러분야에서사용하고있는컴퓨터의구조는0과1로나타내는비트조합을레지스터라는하드웨어를기초로해컴퓨팅에사용하고있다.지금까지는컴퓨터하나의계산능력,즉컴퓨팅의한계를극복하기위해병렬처리,분산처리,슈퍼컴퓨팅,그래픽프로세싱유닛등의방법을점증적으로발전시켜왔다.하지만머신러닝이나암호학과같이현재의방법으로는단시간내에처리할수없는새로운컴퓨팅에대한요구가계속되고있다.이에대한대안으로양자컴퓨팅이떠오르고있는것이다.
이론적인관점에서양자컴퓨터는잠재된컴퓨팅계산능력에있어서근본적인변화를제시한다.하지만현재양자컴퓨팅전문가들은전통적인컴퓨터에비해양자컴퓨터가더낫다는것을증명하기위해복잡한컴퓨팅문제를찾고있는중이다.과학자들의이런노력은양자컴퓨터의발전을이끌것이다.머지않은미래에상용화된양자컴퓨터를만날수있기를기대해본다.
양자컴퓨팅은물리적으로여러방식으로실행할수있다.개발방식에따라양자가열냉각컴퓨터(Quantumannealingcomputers)와보편적인게이트양자컴퓨팅(universalgatequantumcomputing)이대표적인예다.예를들어전자의양자컴퓨터는디-웨이브(D-Wave)컴퓨터가있고,후자는IBM과리게티(Rigetti)의양자컴퓨터가있다.이책은보편적인게이트양자컴퓨팅에초점을맞춘다.게이트양자컴퓨팅은모든양자연산을수행할수있고,전통적인컴퓨터의개념인비트,게이트,회로와동일한개념의가장일반적인형태의양자연산형태다.일반목적의양자컴퓨터는안정적으로디자인하기더욱어렵지만,양자가열냉각컴퓨터와같은특수목적의양자컴퓨터는결국사용이제한될수밖에없을것이다.
IBM연구소는세계최초로양자컴퓨팅을일반인에공개해누구나데스크톱이나모바일기기로클라우드에접속해사용할수있게했다.이책은최첨단의실제시나리오를완성해실세계에적합한프로그래밍을통해양자컴퓨팅의강력함을이해할수있게도울것이다.그리고양자컴포저(Composer)와키스킷(Qiskit)과같은사용자툴의도움으로양자개발을용이하게하는IBM의생태계를살펴볼것이다.이책을끝까지읽는다면자신의양자프로그램을만드는방법을알고,자신이속한사업과미래경력에서양자컴퓨터가가진영향력을가늠해볼수있을것이다.
물리학이아닌컴퓨터공학의관점에서보면양자컴퓨팅은이제한걸음뗀것이나다름없다.양자프로그래밍은아직완전히정의된것도아니고계속발전중이다.양자컴퓨팅전문가들은양자컴퓨터가머지않은미래에특별한분야에사용되기시작해,점점개인이사용할수준까지도달할것으로내다보기도한다.지금부터양자컴퓨팅에관심을갖고서적을읽어두는것은분명미래에도움이될것이다.이책에나오는기본개념과적용예제는현재의양자컴퓨팅을이해하기에충분한학습이될것이다.이책을통해독자여러분이양자컴퓨팅에관한개념을완전히이해하고기본적인사용법을익히길바란다.