책 소개
가장 최신 버전의 소스 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/JackHidary/quantumcomputingbook한국어 GitHub 링크 (https://github.com/JackHidary/quantumcomputingbook/tree/master/korean)
요약
최근 떠오르는 분야인 양자 컴퓨팅의 기초 이론을 코딩 실습과 함께 설명한다. 동떨어져 있던 이론과 구현을 최신 내용에 맞게 한데 모아 설명하는 최초의 책이다. 대학에서 수업을 진행하는 데도 알맞고 회사에서 기술 교육에 사용하기에도 알맞은 책이다.
추천의 글
"양자 컴퓨팅은 세상을 예상치 못한 방식으로 변화시킬 겁니다. 이 책에는 양자 컴퓨팅이라는 새로운 플랫폼에서 프로그래밍하는 방법과 실습 코드를 비롯해 기술 리더, 엔지니어, 대학원생들에게 필요한 모든 것이 들어 있습니다."
- 에릭 슈미트(Eric Schmidt), 공학박사, 前 구글 회장 겸 CEO, 이노베이션 인데버스(Innovation Endeavors) 창립자
이 책의 구성
이 책은 3개의 부로 구성했다. 1부 ‘기초’에서는 양자 컴퓨터와 양자 회로를 설계하는 데 필요한 프레임워크를 다룬다. 또한 복잡도 계급을 다루면서 어떤 종류의 문제들을 양자 계산으로 처리할 수 있는지 살펴본다.
2부 ‘하드웨어와 응용’에서는 이러한 프로그래밍에 깊이 파고들어 새로운 기계를 움직이게 만들고 싶은 사람들을 위한 내용을 다룬다. 이미 양자역학과 양자 정보 이론, 컴퓨터 과학 이론에 대한 배경 지식이 있다면 2부로 바로 넘어가 코드를 파헤쳐도 좋다.
3부 ‘수학 도구 모음’에서는 양자 컴퓨팅을 정복하기 위한 여정에 쓰일 중요한 도구들을 다룬다. 선형 대수의 핵심 개념을 다지고 이것이 구체적으로 양자 컴퓨팅에서 어떻게 쓰이는지 연결 짓는다. 14장의 연산자와 회로 요소들을 정리한 표는 자신의 양자 컴퓨팅 프로토콜을 설계할 때 유용한 참고 자료가 될 것이다.
온라인에서 더 많은 예제와 코드 튜토리얼을 지속적으로 제공할 것이다.
이 책의 대상 독자
이 책을 가장 잘 활용하는 방법은 다음과 같다.
1. 대학 강사: 이 책의 내용으로 여러 가지 과정을 만들 수 있다. 이 책의 모든 코드는 책의 웹 사이트에 있다. 수학을 다루는 장에는 곳곳에 연습문제가 들어 있다. 그 외의 장에 관한 코딩 실습이나 각종 문제는 온라인 사이트를 참조하기 바란다.
(a) STEM1 전공자를 위한 양자 컴퓨팅 과정
(b) 물리학 대학원생을 위한 양자 컴퓨팅 과정
마이클 닐슨(Michael Nielsen)과 아이작 추앙(Isaac Chuang)의 『Quantum Computation and Quantum Information』 또는 이론 개념을 깊이 있게 다루는 알맞은 텍스트를 곁들여 이 책을 사용하기를 권장한다.
이 책은 『Quantum Computation and Quantum Information』을 다음의 몇 가지 측면에서 보완하려고 했다.
A. 이 책은 코딩에 더 중점을 둔다. 당연하게도 수년 전에 쓰여진 책에서는 지금 나와 있는 양자 컴퓨팅 개발 도구와 파이썬 기반 접근법을 다룰 수가 없었다.
B. 이 책에서는 『Quantum Computation and Quantum Information』만큼 정보 이론 개념에 깊이 들어가지 않는다.
C. 수학 도구를 다룬 절에는 본격적인 선형 대수 과정을 수강하지 않은 학생을 위해 더 자세한 보충 내용이 있다. 경험에 비춰 보면 양자역학 교과서에 나오는 선형 대수나 그 외의 필요한 수학 도구 내용이 짤막하게 요약된 내용만으로는 충분치 않은 경우가 많다.
(c) 컴퓨터 과학 대학원생을 위한 양자 컴퓨팅 과정
물리학자: 양자 컴퓨팅 분야를 빠르게 보충하고 싶은 물리학자라면 이 책에 나와 있는 양자 컴퓨팅의 간략한 역사가 일반적으로 다루는 내용보다 좀 더 자세하므로 이를 읽은 다음 2부에 나오는 양자 하드웨어 개관과 그 응용을 다루면 된다.
소프트웨어 공학자: 먼저 첫 두 장을 읽은 다음, 3부의 도구 모음을 살펴보기를 권장한다. 그런 다음 1부로 돌아와 큐비트와 유니타리 연산자를 다룬 다음 거기서부터 진행해 나가길 권한다.
공학 및 비즈니스 리더: 실습 코딩을 하지 않을 독자는 1~4장에 초점을 두는 편이 좋다. 일부 예시 코드를 따라가며 알고리즘에 대한 실질적인 감을 잡아도 좋다.
독학: 독학 교재로 사용하기 좋다. 이 책을 온라인 자료와 함께 활용하는 편이 좋다. 업데이트된 자료를 깃허브 사이트에서 참조하기 바란다.
깃허브 사이트에는 깃허브 사이트 한국어판도 함께 제공한다.
상세 이미지
목차
목차
- 1부. 기초
- 1장. 중첩, 얽힘, 가역성
- 2장. 양자 컴퓨팅의 간략한 역사
- 3장. 큐비트, 연산자, 측정
- 양자 회로도
- 양자 연산자
- 3.1 단항 연산자
- 이진 연산자
- 삼항 연산자
- 3.2 고전 게이트와의 비교
- 3.3 양자 연산자의 범용성
- 3.4 고테스만-닐과 솔로베이-키타예프
- 3.5 블로흐 구
- 3.6 측정 공준
- 3.7 인플레이스 계산
- 4장. 복잡도 이론
- 4.1 문제와 알고리즘
- 4.2 시간 복잡도
- 4.3 복잡도 클래스
- 4.4 양자 컴퓨팅과 처치-튜링 논제
- 2부. 하드웨어와 응용
- 5장. 양자 컴퓨터 구축
- 5.1 양자 컴퓨터 평가
- 5.2 중성 원자
- 5.3 NMR
- 5.4 다이아몬드 내 NV 중심
- 5.5 광자학
- 반도체 양자 트랜지스터
- 위상 광자 칩
- 5.6 스핀 큐비트
- 5.7 초전도 큐비트
- 5.8 위상학적 양자 계산
- 5.9 이온 트랩
- 5.10 요약
- 6장. 양자 컴퓨터 프로그래밍용 개발 라이브러리
- 6.1 양자 컴퓨터와 양자 컴퓨팅 시뮬레이터
- 6.2 서큐
- 6.3 키스킷
- 6.4 포레스트
- 6.5 QDK
- 6.6 개발 라이브러리 요약
- 라이브러리 사용
- 기타 개발 라이브러리
- 6.7 추가적인 양자 프로그램
- 벨 상태
- 파라미터를 갖는 게이트
- 7장. 양자 순간 이동, 초고밀도 코드화, 벨 부등식
- 7.1 양자 순간 이동
- 7.2 초밀집 부호화
- 7.3 양자 순간 이동과 초밀집 통신을 위한 코드
- 7.4 벨 부등식 테스트
- 7.5 요약
- 8장. 주요 양자 알고리즘: 코드로 알아보기
- 8.1 도이치-조사 알고리즘
- 8.2 번스타인-바지라니 알고리즘
- 번스타인-바지라니 알고리즘
- 8.3 사이먼의 문제
- 8.4 양자 푸리에 변환
- 8.5 쇼어 알고리즘
- RSA 암호화
- 함수의 주기
- 인수분해 알고리즘에 대한 입력으로서의 함수 주기
- 8.6 그로버의 검색 알고리즘
- 8.7 요약
- 9장. 다양한 양자 컴퓨팅 기법
- 9.1 변분 양자 고윳값 계산기
- 노이즈를 고려한 VQE
- 더 정교한 가설 풀이
- 9.2 양자 화학
- 9.3 양자 근사 최적화 알고리즘(QAOA)
- QAOA의 구현 예
- 9.4 양자 프로세서에서의 머신러닝
- 9.5 양자 위상 추정
- QPE 구현
- 9.6 선형계 풀이
- HHL 알고리즘 설명
- HHL 알고리즘의 구현 예
- 9.7 양자 난수 생성기
- 9.8 양자 보행
- 양자 보행의 구현
- 9.9 요약
- 10장. 응용과 양자 우위
- 10.1 응용
- 양자 시뮬레이션과 화학
- 확률 분포 샘플링
- 양자 컴퓨터를 이용한 선형 대수 속도 향상
- 최적화
- 텐서망
- 10.2 양자 우위
- 무작위 회로 샘플링
- 양자 우위를 보이는 기타 문제
- 양자 이점
- 10.3 향후 연구 방향
- 양자 오류 정정
- 양자 컴퓨터로 물리학하기
- 10.4 결론
- 3부. 수학 도구 모음
- 11장. 양자 컴퓨팅에 쓰이는 수학 I
- 11.1 서론, 자가 진단
- 11.2 선형 대수
- 벡터와 표기법
- 기초 벡터 연산
- 벡터의 노름
- 점곱
- 11.3 복소수와 내적
- 복소수
- 점곱을 확장한 내적
- 복소수의 극좌표 표현
- 11.4 행렬 기초
- 기초 행렬 연산
- 항등 행렬
- 전치, 켤레, 대각합
- 행렬의 지수 연산
- 11.5 외적과 텐서곱
- 행렬을 만드는 외적 수단으로서의 외적
- 텐서곱
- 11.6 집합론
- 집합론의 기초
- 데카르트 곱
- 관계와 함수
- 함수의 중요한 성질
- 11.7 선형 변환의 정의
- 11.8 사전 지식 없이 벡터 공간 만들기
- 군
- 체
- 벡터 공간의 정의
- 부분공간
- 11.9 생성 공간, 선형 독립, 기저, 차원
- 생성 공간
- 선형 독립
- 기저와 차원
- 정규직교 기저
- 12장. 양자 컴퓨팅에 쓰이는 수학 Ⅱ
- 12.1 행렬로서의 선형 변환
- 12.2 연산자로서의 행렬
- 행렬식에 대한 소개
- 행렬식의 기하학적 설명
- 행렬의 역변환
- 12.3 고유벡터와 고윳값
- 기저의 변경
- 12.4 내적 심층 탐구
- 내적으로서의 크로네커 델타 함수
- 12.5 에르미트 연산자
- 복소수로 측정하지 못하는 이유
- 에르미트 연산자는 고윳값이 실수다
- 12.6 유니타리 연산자
- 12.7 직합과 텐서곱
- 직합
- 텐서곱
- 12.8 힐베르트 공간
- 계량, 코시열, 완전성
- 내적의 공리적 정의
- 힐베르트 공간의 정의
- 12.9 힐베르트 공간으로서의 큐비트
- 13장. 양자 컴퓨팅에 쓰이는 수학 Ⅲ
- 13.1 불리언 함수
- 13.2 로그와 지수
- 13.3 오일러 공식
- 14장. 양자 연산자와 주요 회로 목록