-
Azure Quantum 도큐먼트에서 소개된 내용입니다.
자기주도적 학습을 할 수 있게 만들어져 있습니다.
각 주제별로 Jupyter Notebook으로 구성되어 있고 빈 칸을 채워나가면서 함수를 만들어 나가면서 학습을 할 수 있습니다.
재미있어서 시간 날 때 하나씩 해결해 나가려고 합니다.
환경세팅
기본적으로 Python3 버전이 설치되어 있거나 설치하실 수 있어야 진행이 가능합니다.
Azure Quantum 공식문서에는 Conda로 양자컴퓨팅에 필요한 패키지를 설치하는 것을 권장합니다.
우선 Quantum Katas 공식 Github로 이동합니다.
https://github.com/Microsoft/QuantumKatas/#kata-locally
step.1
github에 보면 아래 부분을 순서대로 따라하변 환경세팅을 할 수 있습니다.
If you want to run the katas and tutorials locally as Jupyter Notebooks:
- Follow the steps in the QDK install guide for Python and the QDK install guide for Jupyter Notebooks.
- Several tutorials require installing additional Python packages:
- "Complex arithmetic" and "Linear algebra" require the pytest package.
- "Exploring Grover's search algorithm" requires the matplotlib package.
- "Quantum classification" requires matplotlib and numpy packages.
step.2
이어서 해당 Git을 로컬에 다운로드 받습니다.
$ git clone https://github.com/Microsoft/QuantumKatas.git
커리큘럼
뭔지 모르지만 하나씩 해보면 되지 않을까요?
복소수, 선형대수 익숙한 녀석들이네요.
퀀텀 컴퓨팅 개념 소개
복소수 이 자습서에서는 퀀텀 컴퓨팅으로 작업하는 데 필요한 몇 가지 수학적 배경(예: 허수 및 복소수)을 설명합니다. 선형 대수 선형 대수학은 퀀텀 컴퓨팅에서 퀀텀 상태와 연산을 나타내기 위해 사용됩니다. 이 자습서는 행렬과 벡터를 포함한 기본 내용을 다룹니다. 큐비트의 개념 퀀텀 컴퓨팅의 핵심 개념 중 하나인 큐비트에 대해 알아보세요. 단일 큐비트 퀀텀 게이트 이 자습서에서는 퀀텀 알고리즘의 기본 구성 요소 역할을 하고 퀀텀 큐비트 상태를 다양한 방식으로 변환하는 단일 큐비트 퀀텀 게이트를 소개합니다. 다중 큐비트 시스템 이 자습서에서는 다중 큐비트 시스템, 이것의 수학적 표기법과 Q# 코드로의 표현 그리고 얽힘 개념을 소개합니다. 다중 큐비트 퀀텀 게이트 이 자습서는 단일 퀀텀 게이트 자습서를 따르며 다중 큐비트 시스템에 다중 퀀텀 게이트를 적용하는 데 초점을 두고 있습니다. 퀀텀 컴퓨팅 기본 사항
퀀텀 게이트 인식 Q#의 기본 양자 게이트에 익숙해지도록 고안된 일련의 연습입니다. 기본 단일 큐비트 및 다중 큐비트 게이트, 수반 및 제어된 게이트, 게이트를 사용하여 큐비트 상태를 수정하는 방법을 포함합니다. 퀀텀 중첩 만들기 Q#에서 중첩과 프로그래밍의 개념을 숙지하기 위해 이 연습을 활용합니다. Q#에서 기본 단일 큐비트 및 멀티 큐비트 게이트, 중첩 및 흐름 제어 및 재귀 연습을 포함합니다. 측정값을 사용하여 퀀텀 상태 구별 퀀텀 측정과 직교 및 비직교 상태에 대해 배우면서 이들 연습 과제를 해결합니다. 공동 측정값 조인트 패리티 측정 및 Measure 연산을 사용하여 퀀텀 상태를 구분하는 방법에 대해 알아봅니다. 알고리즘
퀀텀 순간 이동 이 kata는 기존 전용 통신과 이전에 공유된 퀀텀 얽힘만을 사용하여 퀀텀 상태를 전달할 수 있는 프로토콜인 퀀텀 순간 이동을 살펴봅니다. 초고밀도 코딩 슈퍼덴스 코딩은 기존에 공유된 퀀텀 얽힘을 사용하여 단 하나의 큐비트를 전송하여 2비트의 클래식 정보를 전송할 수 있는 프로토콜입니다. 도이치–조사 알고리즘 이 알고리즘은 결정적 기존 알고리즘보다 상당히 빠른 퀀텀 알고리즘의 첫 번째 예 중 하나입니다. Grover 검색 알고리즘의 상위 수준 속성 살펴보기 퀀텀 컴퓨팅에서 가장 유명한 알고리즘 중 하나에 대한 개략적인 소개입니다. 특정 출력을 생성하는 블랙 박스(oracle)에 입력을 찾는 문제를 해결합니다. Grover 검색 알고리즘 구현 이 kata는 Grover의 검색 알고리즘에 더 자세히 알아보며, oracles 쓰기, 알고리즘 단계 수행 및 마지막으로 이를 모두 종합합니다. Grover 알고리즘을 사용하여 실제 문제 해결: SAT 문제 Grover 알고리즘을 사용하여 부울 만족도 문제(SAT)를 예로 들어 현실적인 문제를 해결하는 일련의 연습입니다. Grover 알고리즘을 사용하여 실제 문제 해결: 그래프 색 지정 문제 이 kata는 Grover의 알고리즘을 좀 더 살펴보고, 이번에는 그래프 색 지정 문제를 예로 들어 제약 조건 만족 문제를 해결합니다. 프로토콜 및 라이브러리
퀀텀 키 배포용 BB84 프로토콜 큐비트를 사용하여 암호 키를 교환하는 퀀텀 키 배포 프로토콜 BB84에 대해 알아보고 구현합니다. 비트 대칭 이동 오류 수정 코드 가장 간단한 QEC(퀀텀 오류 수정) 코드인 3큐비트 대칭 이동 코드를 사용하여 퀀텀 오류 수정에 대해 살펴봅니다. 단계 예측 위상 추정 알고리즘은 퀀텀 컴퓨팅의 가장 기본적인 구성 요소의 일부입니다. 양자 위상 추정을 다루는 이러한 연습을 통한 위상 추적과 Q#에서 위상 추정 루틴을 준비하고 실행하는 방법에 대해 알아봅니다. 퀀텀 산술: 리플 캐리 가산기 만들기 퀀텀 컴퓨터에서 리플 캐리 추가에 대해 살펴보는 일련의 심층 연습입니다. 인플레이스 퀀텀 가산기를 만들고 다른 알고리즘으로 확장한 다음, 마지막으로 인플레이스 퀀텀 감산기를 만듭니다. 얽힘 게임
CHSH 게임 CHSH 게임을 구현하여 퀀텀 얽힘에 대해 살펴봅니다. 이 비로컬 게임은 퀀텀 얽힘을 사용하여 단순한 고전적인 전략만으로도 플레이어의 승률을 높이는 방법을 보여줍니다. GHZ 게임 GHZ 게임은 또 다른 비로컬 게임이지만 3명의 플레이어가 참여할 수 있습니다. 머민-페레스 매직 스퀘어 게임 마법의 정사각형 게임을 통해 퀀텀 의사 텔레파시에 대해 살펴보는 일련의 연습입니다. '양자컴퓨팅(Quantum Computing) > Azure' 카테고리의 다른 글
[Quantum Katas] 1. 복소수 (0) 2022.01.09 댓글