책 소개
2021년 대한민국학술원 우수학술도서 선정도서
요약
기본적인 수학 배경지식을 갖춘 독자를 대상으로 양자 컴퓨터의 기본 원리를 설명하는 이론서다. 얽힘, 중첩 등 양자 컴퓨터의 바탕이 되는 양자역학적 개념의 수학적 모델을 가급적 단순화해서 설명하므로, 고등학교 수준의 수학 지식이 있으면 내용을 따라갈 수 있다. 양자 컴퓨터의 수학적 기초를 쌓고자 하는 독자에게 좋은 입문서 혹은 보조 교재다.
추천의 글
“최근 들어 언론이 양자 컴퓨팅 혁명이 도래한 것에 관해 수많은 기사를 쏟아내고 있습니다. 이 책의 저자인 크리스 베른하트는 매력적인 양자 컴퓨팅 분야에 관심 있는 모든 이에게 기초를 가르칠 수 있는 책을 놀랄 만한 솜씨로 간결하게 완성했습니다. 독자들은 고등학교 수준의 수학만 알고 있으면 됩니다. 그러면 양자 컴퓨터의 많은 부분으로 아주 친절한 안내를 받게 될 것입니다.”
- 노손 S. 야노프스키(Noson S. Yanofsky)/ 브루클린대학교 컴퓨터 및 정보과학과 교수, 『Quantum Computing for Computer Scientists』 공동 저자이자 『The Outer Limits of Reason』 저자
“베른하트는 양자 컴퓨팅에 관한 명료하고 정확한 개론서를 썼습니다. 초심자는 이 책을 읽고 양자 순간이동, 벨의 부등식, 사이먼의 알고리즘 등을 제대로 이해할 수 있습니다. 초심자가 나에게 적당한 양자 컴퓨팅 책을 묻는다면, 단연 이 책을 추천할 것입니다”
- 스콧 애론슨(Scott Aaronson)/ 텍사스대학교 데이비드 제이 브루톤 센테니얼 컴퓨터과학과 교수이자 양자정보센터 디렉터, 『Quantum Computing since Democritus』 저자
“비트는 큐비트로 대체될 것인가? 양자 컴퓨터는 기술의 수평선에서 떠오르고 있습니다. 이 책은 IT 리더들이 양자 효과를 구경하기만 하는 것을 넘어 양자 컴퓨팅의 기초에 도달하는 길을 터줍니다.”
- 알렉산더 키와틴 듀드니(Alexander Keewatin Dewdney)/ 웨스턴온타리오대학교 컴퓨터과학 교수
이 책의 대상 독자
이 책의 목적은 고등학생 수준의 수학에 익숙한 독자에게 양자 컴퓨팅을 소개하는 것이다. 특히 큐비트, 얽힘, 양자 순간 이동, 주요 양자 알고리즘을 공부하며 각 개념을 모호하게 아는 데 그치지 않고 명확하게 이해하는 것을 목표로 한다.
이 책의 구성
1장. 스핀
고전적인 컴퓨팅의 기본 단위는 비트다. 비트는 2개의 상태 중에서 하나의 상태를 가질 수 있는 것이라면 무엇으로든 표현될 수 있다. 가장 흔한 예가 on 또는 off 상태일 수 있는 전기 스위치다. 양자 컴퓨팅의 기본 단위는 ‘큐비트’다. 큐비트는 전자의 스핀 또는 광자의 편광으로 표현될 수 있다. 하지만 스핀과 편광의 성질은 on 또는 off 상태일 수 있는 스위치만큼 우리에게 친숙하지 않다.
우리는 원자의 자기적 성질을 연구했던 오토 슈테른(Otto Stern)과 발터 게를라흐(Walther Gerlach)의 실험을 시작으로 스핀의 기본 특성을 알아볼 것이다. 다양한 방향에서 스핀을 측정할 때 무슨 일이 일어나는지 살펴보고, 측정 행위가 큐비트의 상태에 영향을 줄 수 있음을 배운다. 측정에는 본질적인 무작위성이 관련돼 있음도 설명할 것이다. 그리고 편광 필터와 빛을 사용해 전자 스핀 실험과 유사한 실험을 할 수 있음을 보여주면서 1장을 마무리한다.
2장. 선형대수학
양자 컴퓨팅은 선형대수학이라고 부르는 수학을 바탕으로 한다. 다행히 그 가운데 몇 개의 개념만 알아도 된다. 독자에게 필요한 선형대수학을 소개하고, 이 책에서 어떻게 사용할 것인지 예제를 통해 보여준다.
벡터와 행렬을 소개한 뒤 벡터의 길이를 계산하는 방법, 2개의 벡터가 서로 수직인지 여부를 판단하는 방법을 선보인다. 처음에는 벡터의 기초 연산만 고려하지만, 행렬을 사용함으로써 다수의 벡터 연산을 동시에 계산할 수 있는 단순한 방법을 보여줄 것이다.
2장의 내용을 처음 배울 때는 선형대수학 공부가 얼마나 쓸모 있을지 느끼기 어려울 수 있다. 하지만 선형대수학은 정말로 유용하다. 양자 컴퓨팅의 토대를 형성하기 때문이다. 3장 이후의 내용은 2장에서 소개한 수학을 사용하므로 2장을 주의 깊게 읽어둬야 한다.
3장. 스핀과 큐비트
1장과 2장의 내용이 어떻게 연결되는지 3장에서 볼 수 있다. 스핀 또는 편광의 수학적 모형이 선형대수학으로 주어질 것이다. 우리는 이를 통해서 큐비트를 정의하고, 큐비트를 측정할 때 무슨 일이 일어나는지 설명할 수 있다.
다양한 방향에서 큐비트를 측정하는 예제가 제시된다. 그런 다음 BB84 프로토콜이라는 양자 암호화에 대한 소개로 3장을 마무리한다.
4장. 얽힘
2개의 큐비트가 서로 얽힌다는 것의 의미가 무엇인지 설명한다. 얽힘은 말로 설명하기 어렵지만 수학적으로는 쉽게 표현할 수 있다. 또한 새로운 수학 개념인 텐서곱을 소개한다. 텐서곱은 개별 큐비트의 수학적 모형을 결합해 큐비트의 집합을 기술하는 1개의 모형을 제공하기 위한 가장 단순한 방법이다.
얽힘은 수학적으로 간단히 나타낼 수는 있지만 우리가 일상생활에서 경험할 수 없는 현상이다. 서로 얽힌 큐비트 중 하나를 측정하면, 다른 큐비트가 영향을 받는다. 이것은 과학자 아인슈타인이 “도깨비 같은 원격 작용”이라고 불렀던 현상이다. 이에 관한 몇 가지 예제를 살펴볼 것이다. 얽힘을 사용해 빛보다 빠른 속도의 통신을 구현할 수는 없음을 보여주는 것으로 4장을 마무리한다.
5장. 벨의 부등식
얽힘에 관한 아인슈타인의 관심을 살펴보고, 숨은 변수 이론이 국소적 실재론을 지킬 수 있을지 알아본다. 벨의 부등식을 수학적으로 검토하는데, 이 식을 사용하면 아인슈타인 주장의 정당성을 실험적으로 판단할 수 있다. 훗날 아인슈타인의 주장은 틀린 것으로 드러났다. 하지만 벨조차도 아인슈타인이 옳다고 증명될 것이라 생각했었다.
아르투르 에커트(Artur Ekert)는 벨의 부등식을 검증하는 실험이 암호화를 위한 키 생성 및 도청자 확인 용도로 쓰일 수 있음을 알았다. 이 암호화 프로토콜에 관한 설명으로 5장을 마무리한다.
6장. 고전적 논리, 게이트, 회로
우선 컴퓨팅의 기본 주제인 비트, 게이트, 논리를 설명하고, 가역적 컴퓨팅과 에드 프레드킨(Ed Fredkin)의 아이디어를 간단히 살펴볼 것이다. 또, 프레드킨 게이트와 토폴리 게이트가 범용 게이트임을 증명한다. 다시 말해 프레드킨 게이트(혹은 토폴리 게이트)만을 사용해서 완전한 컴퓨터를 제작할 수 있다. 끝으로, 프레드킨의 당구공 컴퓨터를 소개한다. 당구공 컴퓨터는 이 책의 주제와 직접 관련되지는 않지만, 매우 독창적인 개념이기에 이 책에 포함했다.
당구공 컴퓨터는 벽에 부딪히고 서로 충돌하는 공으로 구성된다. 상호작용하는 입자들의 이미지를 떠올리면 된다. 또한 리처드 파인만이 양자 컴퓨터에 흥미를 갖게 만든 개념 중 하나이기도 하다. 파인만은 당구공 컴퓨터에 관한 초기 논문을 작성했다.
7장. 양자 게이트와 양자 회로
양자 회로를 사용해 양자 컴퓨팅을 알아보는 것으로 시작한다. 먼저, 양자 게이트를 정의한다. 그리고 양자 게이트가 큐비트에 어떻게 작용하는지 살펴보고, 사실은 양자 게이트의 개념을 이미 사용해왔음을 알게 된다. 단지 관점의 차이일 뿐이다. 직교행렬이 측정 장치가 아니라 큐비트에 대해 작용한다고 생각하는 것이다. 초고밀도 코딩, 양자 순간 이동, 복제, 에러 정정에 관한 놀라운 결과들을 증명한다.
8장. 양자 알고리즘
아마도 가장 어려운 장일 것이다. 몇 개의 양자 알고리즘을 살펴보고 이 알고리즘들이 고전적 알고리즘에 비해 얼마나 빨리 계산할 수 있는지 보여준다. 알고리즘의 속도를 논의하기 위해서는 복잡도 이론의 개념을 소개할 필요가 있다. 먼저 쿼리 복잡도(query complexity)를 정의한 뒤, 3개의 양자 알고리즘을 소개하고 이 알고리즘들이 쿼리 복잡도의 관점에서 고전적 알고리즘보다 얼마나 빠른지 보여준다.
양자 알고리즘은 해결하고자 하는 문제의 근본에 존재하는 구조를 파고든다. 단순히 양자 병렬성, 즉 입력값들을 모든 가능한 상태들의 중첩으로 만들 수 있음을 이용하는 것이 아니다. 이 책에서 소개하는 수학적 도구들의 마지막으로 행렬의 크로네커곱을 소개한다. 8장의 내용이 어려운 것은 새로운 수학적 도구가 도입되기 때문이 아니라, 우리가 완전히 새로운 방법으로 계산하고 있으며 이런 새로운 개념을 사용해 문제를 푼 경험이 없다는 사실 때문이다.
9장. 양자 컴퓨팅의 영향력
마지막 장인 9장은 양자 컴퓨팅이 우리의 삶에 미칠 영향을 살펴본다. 먼저 피터 쇼어(Peter Shor)와 로브 그로버(Lov Grover)가 고안한 2개의 중요한 알고리즘을 간단히 설명한다. 각각의 알고리즘 소개를 끝낸 뒤, 양자 컴퓨팅이 양자적 프로세스를 시뮬레이션하는 데 어떻게 사용될 수 있는지 알아본다. 화학의 근본 바탕은 양자역학이다. 고전적인 전산화학은 양자역학 방정식을 고전적 컴퓨터를 사용해 시뮬레이션하고 있지만, 시뮬레이션은 근삿값일 뿐이며 세부 사항이 무시되곤 했다. 대체로 근삿값만으로 충분하지만, 어떤 경우에는 세부 사항이 고려돼야 하는데, 이때 양자 컴퓨터가 해결책을 제시할 수 있다.
9장은 실제 양자 컴퓨터의 제작에 관해서도 간단히 소개한다. 이 분야는 매우 빠르게 발전하고 있다. 이미 시중에 판매 중인 기계도 있다. 또, 모든 사람이 사용할 수 있도록 클라우드에서 서비스되는 것도 있다. 우리는 조만간 양자 우위(quantum supremacy)의 시대에 접어들 가능성이 높다.
마지막으로 양자 컴퓨팅이 새로운 유형의 컴퓨팅이 아니며 컴퓨팅의 진정한 본질에 대한 발견이라는 깨달음으로 이 책을 마무리한다.
목차
목차
- 1장. 스핀
- 양자 시계
- 동일 방향으로 반복 측정
- 서로 다른 방향으로 반복 측정
- 측정
- 무작위성
- 광자와 편광
- 결론
- 2장. 선형대수학
- 복소수 대 실수
- 벡터
- 벡터의 다이어그램
- 벡터의 길이
- 실수배(혹은 스칼라 곱셈)
- 벡터 덧셈
- 직교 벡터
- 브라에 켓 곱하기
- 브라켓과 길이
- 브라켓과 직교
- 정규직교 기저
- 기저 벡터들의 선형 조합으로서의 벡터
- 순서 기저
- 벡터의 길이
- 행렬
- 행렬 계산
- 직교행렬과 유니타리행렬
- 선형대수학 도구 상자
- 3장. 스핀과 큐비트
- 확률
- 양자 스핀을 위한 수학
- 동치 상태 벡터
- 특정 스핀 방향의 기저
- 608만큼 장치 회전
- 광자 편광을 위한 수학 모델
- 특정 편광 방향의 기저
- 편광 필터 실험
- 큐비트
- 앨리스, 밥, 이브
- 확률 진폭과 간섭
- 앨리스, 밥, 이브 그리고 BB84 프로토콜
- 4장. 얽힘
- 앨리스와 밥의 큐비트가 서로 얽혀 있지 않은 경우
- 큐비트가 얽히지 않은 경우
- 큐비트가 얽혀 있는 경우
- 초광속 통신
- 텐서곱의 표준 기저
- 큐비트를 얽는 방법
- CNOT 게이트를 사용해 큐비트 얽기
- 얽힌 양자 시계
- 5장. 벨의 부등식
- 다른 기저로 얽힌 큐비트 측정
- 아인슈타인과 국소적 실재론
- 아인슈타인과 숨은 변수
- 얽힘에 대한 고전 물리학적 설명
- 벨의 부등식
- 양자역학의 답
- 고전적 모델의 답
- 측정
- 양자 키 배포를 위한 에커트 프로토콜
- 6장. 고전적 논리, 게이트, 회로
- 논리
- 부울 대수
- 함수 완전성
- 게이트
- 회로
- NAND는 범용 게이트다
- 게이트와 컴퓨팅
- 메모리
- 가역 컴퓨팅
- 당구공 컴퓨팅
- 7장. 양자 게이트와 양자 회로
- 큐비트
- CNOT 게이트
- 양자 게이트
- 1개의 큐비트에 대해서 동작하는 양자 게이트
- 아마다르 게이트
- 범용 양자 게이트가 존재하는가?
- 복제 불가 정리
- 양자 컴퓨팅 대 고전적 컴퓨팅
- 벨 회로
- 초고밀도 코딩
- 양자 순간 이동
- 오류 정정
- 8장. 양자 알고리즘
- 복잡도 클래스 P와 NP
- 양자 알고리즘은 고전적 알고리즘보다 빠른가?
- 쿼리 복잡도
- 도이치 알고리즘
- 하다마드 행렬의 크로네커곱
- 도이치-조사 알고리즘
- 사이먼의 알고리즘
- 복잡도 클래스
- 양자 알고리즘
- 9장. 양자 컴퓨팅의 영향력
- 쇼어 알고리즘과 암호 해석
- 그로버의 알고리즘과 데이터 검색
- 화학 및 시뮬레이션
- 하드웨어
- 양자 우위와 평행 우주
- 컴퓨팅
도서 오류 신고
정오표
정오표
[p.30 : 2행]
기술하는 빙밥은
->
기술하는 방법은
[p.30 : 아래서 8행]
그레서 바늘이
->
그래서 바늘이
[p.34 : 3행]
대상이 되는 상호작용 해야 하며,
->
대상이 되는 입자와 상호작용 해야 하며,
[p.54 : 1행]
x2 = <|b2> | v>
->
x2 = <b2 | v>
[p.129 : 그림 6.8]
->
[p.135 : CNOT 진리표 1행 4열]
1
->
0
[p.149 : 첫 번째 CNOT 표 x⊕y 1행]
1
->
0
[p.149 : 두 번째 CNOT 표 x⊕y 1행]
1
->
0
[p.170 : 회로도 그림 좌측 상단]
ǀ0> + bǀ1>
->
aǀ0> + bǀ1>
[p.195 : 3행]
열 00과 01을
->
열 00과 10을
[p.214 : 7행 아래]