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