서브메뉴

본문

IBM QX로 배우는 양자 컴퓨팅 (양자 컴포저와 키스킷을 활용한 양자 컴퓨팅의 이해)
IBM QX로 배우는 양자 컴퓨팅 (양자 컴포저와 키스킷을 활용한 양자 컴퓨팅의 이해)
저자 : 크리스틴 콜벳 모란
출판사 : 에이콘출판
출판년 : 2019
ISBN : 9791161753799

책소개

양자 컴퓨팅의 원리부터 양자 컴퓨팅을 실제로 적용할 수 있는 영역까지 다룬다. 양자 컴포저와 키스킷을 이용해 양자 개발 환경을 제공하는 IBM 생태계를 살펴본다. 더 나아가 양자 프로세서에서 알고리즘을 구현하고, 양자 계산을 실제로 실행하는 방법을 배운다. 이 책을 읽고 나면 자신의 양자 프로그램을 작성하는 방법, 산업에 양자 컴퓨팅이 미칠 영향, 미래의 프로그래밍 직업에 양자 컴퓨팅을 적용하는 방법 등을 완전히 이해할 수 있을 것이다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

★ 이 책에서 다루는 내용 ★

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

★ 이 책의 대상 독자 ★

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

★ 이 책의 구성 ★

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의 생태계를 살펴볼 것이다. 이 책을 끝까지 읽는다면 자신의 양자 프로그램을 만드는 방법을 알고, 자신이 속한 사업과 미래 경력에서 양자 컴퓨터가 가진 영향력을 가늠해볼 수 있을 것이다.

물리학이 아닌 컴퓨터 공학의 관점에서 보면 양자 컴퓨팅은 이제 한걸음 뗀 것이나 다름없다. 양자 프로그래밍은 아직 완전히 정의된 것도 아니고 계속 발전 중이다. 양자 컴퓨팅 전문가들은 양자 컴퓨터가 머지않은 미래에 특별한 분야에 사용되기 시작해, 점점 개인이 사용할 수준까지 도달할 것으로 내다보기도 한다. 지금부터 양자 컴퓨팅에 관심을 갖고 서적을 읽어 두는 것은 분명 미래에 도움이 될 것이다. 이 책에 나오는 기본 개념과 적용 예제는 현재의 양자 컴퓨팅을 이해하기에 충분한 학습이 될 것이다. 이 책을 통해 독자 여러분이 양자 컴퓨팅에 관한 개념을 완전히 이해하고 기본적인 사용법을 익히길 바란다.
[예스24에서 제공한 정보입니다.]

목차정보

1장. 양자 컴퓨팅이란 무엇인가?

__기술적인 필요 사항

__양자 컴퓨터란 무엇인가?

____양자 컴퓨터의 사용

____전문가 의견-왜 양자 컴퓨터가 중요한가?

__양자 컴퓨팅의 역사, 현재 그리고 미래

____양자 컴퓨팅의 역사

____양자 컴퓨팅의 현재 상황

____양자 컴퓨팅의 미래

__파이썬 코드 예제 설정과 실행

____책에서 사용된 코드 다운로드하기

____주피터 노트북 설정

__IBM QX 예제 설정과 실행

____헬로 양자 월드

____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

__OpenQASM 2.0 프로그램에서 양자 스코어 나타내기

__IBM QX와 인터페이스하는 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 회로

__IBM QX에서 QFT 회로 구현

____IBM QX에서 REV 게이트 구현

____IBM QX에서 Rk 게이트 구현

____IBM QX에서 1-큐비트 QFT

____IBM QX에서 2-큐비트 QFT

____IBM QX에서 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장. 결론-양자 컴퓨팅의 미래

__양자 컴퓨팅의 중요 개념

__양자 컴퓨팅이 유용할 분야

__양자 컴퓨팅에 대한 비관론

__양자 컴퓨팅에 관한 낙관론

__양자 컴퓨팅에 대한 마지막 생각





부록

__유용한 수학 기법

____합

____복소수

____선형대수

__행렬의 큐비트, 상태, 게이트

____큐비트

____게이트

____양자 측정
[알라딘에서 제공한 정보입니다.]