★ 이 책에서 다루는 내용 ★
■ 양자 컴퓨팅의 핵심 개념과 원리
■ 양자 원리를 적용할 수 있는 영역
■ 양자 논리로 프로그램 디자인
■ 양자 컴퓨터가 계산하는 방법과 원리
■ 쇼어와 그로버의 알고리즘을 포함한 중요한 양자 계산 알고리즘
■ 산업 영역에서의 양자 컴퓨팅 잠재성 분석
★ 이 책의 대상 독자 ★
양자 컴퓨팅을 배우길 원하는 개발자나 데이터 과학자에게 좋은 참고서가 될 것이다. 이 책을 읽기 전에 파이썬 언어를 기본적으로 이해하고 있어야 하지만 물리학, 양자역학, 고급 수학 관련 지식이 꼭 필요한 것은 아니다.
★ 이 책의 구성 ★
1장, ‘양자 컴퓨팅이란 무엇인가?’에서는 전통적인 컴퓨팅 방식의 컴퓨터와 비교했을 때 양자 컴퓨터의 잠재적인 장점을 무엇인지 설명한다. 전통적인 컴퓨팅과 양자 컴퓨팅의 역사를을 알아보고, 컴퓨팅의 최신 기술을 살펴본다.
2장, ‘큐비트’에서는 블로흐 스피어(Bloch sphere)를 소개하고 개별 큐비트의 중첩과 측정을 설명한다. 큐비트가 왜 양자 컴퓨팅의 기본 개념이 되는지 알아보고, 파이썬에서 시뮬레이션해 직접 코드를 살펴본다. 여기서 중첩(superposition)에 관해 논의하고, 하나의 큐비트가 나타내는 세 개의 다른 표현을 살펴보는 파이썬 코드를 사용한다.
3장, ‘양자 상태, 양자 레지스터 그리고 측정’에서는 전통적인 레지스터의 양자 버전인 양자 레지스터와 양자 상태를 보관하는 방법을 알아본다. 나아가 분리 가능한 상태와 얽힘(entanglement)에 관해 논의하고, 얽혀있는 여러 개의 큐비트에 대한 양자를 측정하고, 파이썬으로 구현해봄으로써 집중적으로 다룬다.
4장, ‘양자 게이트로 양자 상태 전개하기’에서는 양자 컴퓨팅을 실행하기 위해 합쳐질 수 있는 일반적인 게이트 집합을 형성하고 가장 흔하게 사용되는 게이트인 I, X, Y, Z, H, S, S†, T, T†, CNOT를 설명한다. 또한 이렇게 사용되는 양자 게이트의 파이썬 구현을 제공하고, 지금껏 살펴본 양자 상태에 적용되는 게이트의 파이썬 예제를 살펴본다.
5장, ‘양자 회로’에서는 전통적인 회로와 같은 양자 회로를 소개하기 위해 양자 게이트의 개념을 확장한다. 이 장에서는 어떻게 전통적인 게이트가 양자 회로에서 재생산될 수 있는지 확인하고, 복잡한 수학이나 프로그래밍 언어를 사용하지 않고 양자 회로를 쉽게 정의하 는데 사용할 수 있는 양자 회로를 시각적으로 표현한다.
6장, ‘양자 컴포저’에서는 양자 회로를 시각적으로 보여주는 양자 스코어(scores)를 통해 양자 회로를 만드는 데 사용되는 IBM QX의 사용자 인터페이스를 알아본다. 양자 컴포저로 IBM QX 하드웨어나 소프트웨어 시뮬레이터에 구현할 자신의 양자 회로를 정의할 수 있다. 더불어 이전에 사용한 파이썬 코드를 양자 컴포저 표현으로 변환하고, 이를 IBM QX 하드웨어에서 구동할 기회를 제공한다.
7장, ‘OpenQASM 다루기’에서는 오픈 양자 어셈블리 언어(Open Quantum Assembly Language)를 설명한다. 줄여서 오픈 카즘(open kazm)으로 발음한다. 이 언어는 IBM QX 내에서 사용될 수 있다. 이 장에서는 이전에 정의한 양자 회로를 다시 확인하고, OpenQASM 언어에서 다시 정의한다. 이렇게 OpenQASM으로 재정의된 양자 회로는 IBM QX에서 실행할 기회를 제공한다.
8장, ‘키스킷과 양자 컴퓨터 시뮬레이션’에서는 키스킷(Quantum Information Software Kit)을 소개한다. 클라우드를 통해 IBM QX에서 키스킷으로 프로그램을 구동하는 방법과 양자 시뮬레이션의 기능에 초점을 두고 설명한다. 양자 회로, 측정, 키스킷 사용 개념을 키스킷을 사용하는 프로젝트에서 확인하면서 양자 컴퓨터를 사용해 음악 화음을 표현하는 유용한 데모를 만든다.
9장, ‘양자 AND (토폴리) 게이트와 양자 OR 게이트’에서는 양자 컴퓨터로 그로버(Grover)나 다른 알고리즘의 논리적인 문제를 해결하기 위해, 이진 논리 게이트와 동일한 양자 게이트를 살펴본다.
10장, ‘그로버 알고리즘’에서는 전통적인 구현과 양자 구현을 비교해 그로버의 알고리즘을 설명한다. 이후 해당 알고리즘을 OpenQASM, 키스킷, 양자 스코어로 구현한다.
11장, ‘양자 푸리에 변환’에서는 양자 푸리에 변환을 설명한다. 이는 쇼어(Shor)의 알고리즘을 포함한 많은 중요한 양자 알고리즘의 하위 루틴이 된다. 이에 비교해 전통적인 컴퓨터에서 표현되는 신호의 푸리에 변환이 되는 불연속형 푸리에 변환을 계산하는 전통적인 알고리즘을 보여준다. 마지막으로 양자 푸리에 변환 알고리즘을 OpenQASM, 키스킷, 양자 스코어로 구현한다.
12장, ‘쇼어 알고리즘’에서는 쇼어 알고리즘을 설명하고 소인수분해를 사용하는 전통적인 알고리즘 구현과 비교해 살펴본다. 그리고 키스킷에서 쇼어 알고리즘을 구현한다.
13장, ‘양자 오류 정정’에서는 양자 오류 전파 문제를 설명하고, 양자 오류 정정(QEC, Quantum Error Correction)의 필요성을 알아본 뒤 간단한 QEC 알고리즘을 구현한다.
14장, ‘결론-양자 컴퓨터의 미래’에서는 배운 내용을 다시 살펴보고 양자 컴퓨팅의 명확한 이해를 돕는다. 그리고 양자 계산과 양자 컴퓨팅 프로그램 능력이 필요한 곳을 검토해본다. 또한 왜 양자 물리학자가 아닌 일반 기업가, 프로그래머, 기술자 등이 양자 컴퓨팅에 관심을 가질 가능성이 높은지 알아본다.
★ 지은이의 말 ★
양자 컴퓨터는 컴퓨팅 계산 능력의 잠재력에 대해 근본적인 변화를 제시한다. IBM 연구소는 세계 최초로 양자 컴퓨팅을 공개해 일반인이 데스크톱이나 모바일 기기로 클라우드에 접속해서 사용할 수 있도록 했다. 이 책은 최첨단의 실제 시나리오를 완성함으로써 실세계의 프로그래밍으로 양자 컴퓨팅의 강력함을 이해하도록 도울 것이다.
먼저 양자 컴퓨터의 개념, 양자 컴퓨팅의 원리, 양자 컴퓨팅을 적용할 수 있는 영역을 소개한다. 양자 컴퓨터가 어떻게 전통적인 컴퓨터 처리 방식을 개선하고, 전통적인 알고리즘을 양자 알고리즘으로 변환하는지 보게 될 것이다. 그리고 양자 컴포저(Composer)와 키스킷(Qiskit)으로 양자 개발을 용이하게 하는 IBM의 생태계를 살펴볼 것이다. 초반부를 넘어가면서 양자 프로세서에서 알고리즘을 구현하는 방법과 계산이 실제로 어떻게 실행되는지 배우게 될 것이다.
책을 끝까지 읽으면 양자 프로그램을 만드는 방법을 이해하고, 자신이 속한 사업과 미래 경력에서 양자 컴퓨터가 가진 영향력을 가늠해볼 수 있게 될 것이다.
★ 옮긴이의 말 ★
현재 여러 분야에서 사용하고 있는 컴퓨터의 구조는 0과 1로 나타내는 비트 조합을 레지스터라는 하드웨어를 기초로 해 컴퓨팅에 사용하고 있다. 지금까지는 컴퓨터 하나의 계산 능력, 즉 컴퓨팅의 한계를 극복하기 위해 병렬 처리, 분산 처리, 슈퍼 컴퓨팅, 그래픽 프로세싱 유닛 등의 방법을 점증적으로 발전시켜왔다. 하지만 머신러닝이나 암호학과 같이 현재의 방법으로는 단시간 내에 처리할 수 없는 새로운 컴퓨팅에 대한 요구가 계속되고 있다. 이에 대한 대안으로 양자 컴퓨팅이 떠오르고 있는 것이다.
이론적인 관점에서 양자 컴퓨터는 잠재된 컴퓨팅 계산 능력에 있어서 근본적인 변화를 제시한다. 하지만 현재 양자 컴퓨팅 전문가들은 전통적인 컴퓨터에 비해 양자 컴퓨터가 더 낫다는 것을 증명하기 위해 복잡한 컴퓨팅 문제를 찾고 있는 중이다. 과학자들의 이런 노력은 양자 컴퓨터의 발전을 이끌 것이다. 머지않은 미래에 상용화된 양자 컴퓨터를 만날 수 있기를 기대해본다.
양자 컴퓨팅은 물리적으로 여러 방식으로 실행할 수 있다. 개발 방식에 따라 양자 가열 냉각 컴퓨터(Quantum annealing computers)와 보편적인 게이트 양자 컴퓨팅(universal gate quantum computing)이 대표적인 예다. 예를 들어 전자의 양자 컴퓨터는 디-웨이브(D-Wave) 컴퓨터가 있고, 후자는 IBM과 리게티(Rigetti)의 양자 컴퓨터가 있다. 이 책은 보편적인 게이트 양자 컴퓨팅에 초점을 맞춘다. 게이트 양자 컴퓨팅은 모든 양자 연산을 수행할 수 있고, 전통적인 컴퓨터의 개념인 비트, 게이트, 회로와 동일한 개념의 가장 일반적인 형태의 양자 연산 형태다. 일반 목적의 양자 컴퓨터는 안정적으로 디자인하기 더욱 어렵지만, 양자 가열 냉각 컴퓨터와 같은 특수 목적의 양자 컴퓨터는 결국 사용이 제한될 수밖에 없을 것이다.
IBM 연구소는 세계 최초로 양자 컴퓨팅을 일반인에 공개해 누구나 데스크톱이나 모바일 기기로 클라우드에 접속해 사용할 수 있게 했다. 이 책은 최첨단의 실제 시나리오를 완성해 실세계에 적합한 프로그래밍을 통해 양자 컴퓨팅의 강력함을 이해할 수 있게 도울 것이다. 그리고 양자 컴포저(Composer)와 키스킷(Qiskit)과 같은 사용자 툴의 도움으로 양자 개발을 용이하게 하는 IBM의 생태계를 살펴볼 것이다. 이 책을 끝까지 읽는다면 자신의 양자 프로그램을 만드는 방법을 알고, 자신이 속한 사업과 미래 경력에서 양자 컴퓨터가 가진 영향력을 가늠해볼 수 있을 것이다.
물리학이 아닌 컴퓨터 공학의 관점에서 보면 양자 컴퓨팅은 이제 한걸음 뗀 것이나 다름없다. 양자 프로그래밍은 아직 완전히 정의된 것도 아니고 계속 발전 중이다. 양자 컴퓨팅 전문가들은 양자 컴퓨터가 머지않은 미래에 특별한 분야에 사용되기 시작해, 점점 개인이 사용할 수준까지 도달할 것으로 내다보기도 한다. 지금부터 양자 컴퓨팅에 관심을 갖고 서적을 읽어 두는 것은 분명 미래에 도움이 될 것이다. 이 책에 나오는 기본 개념과 적용 예제는 현재의 양자 컴퓨팅을 이해하기에 충분한 학습이 될 것이다. 이 책을 통해 독자 여러분이 양자 컴퓨팅에 관한 개념을 완전히 이해하고 기본적인 사용법을 익히길 바란다.