비 물리 전공을위한 양자 컴퓨터 프로그래밍


43

나는 비 물리적 배경을 가지고 있으며 Quantum Computing을 추구하는 데 특히 관심이 있습니다-특히 프로그래밍 방법. 시작하는 방법에 대한 지침은 매우 도움이 될 것입니다.


고전적인 프로그래머는 전자의 작용을 이해할 필요가 없습니다. 이것은 QED에도 적용됩니다.
tgm1024

그건 그렇고, 여기에서의 포맷 메커니즘은 다른 스택 교환 사이트와 비교할 때 끔찍하게 부서진 것처럼 보입니다. 나는 실제 답변을 만들려고 노력하고 포기해야하므로 매우 간단한 의견에 의지했습니다. 여기에있는 목록은 따옴표 내에서 작동하지 않습니다. 모든 스택 교환 사이트가 동일한 UI 코드를 공유한다고 생각했습니다.
tgm1024

@ tgm1024 정확히 무엇을 말하는거야? 어떤 형식이 여기서 작동하지 않지만 다른 사이트에서는 작동합니까? 따옴표 안의 목록은 저에게 완벽하게 작동합니다
glS

답변:


22

Voxxed Days Vienna 2018의 양자 컴퓨터에 대한 소개로 시작할 수 있습니다 . 프로그래밍 배경은 있지만 양자 역학에 대한 사전 지식이 거의 또는 전혀없는 사람들을 대상으로합니다. 그런 다음 IBM Quantum Experience 또는 Microsoft Quantum Development Kit에 대한 안내서를 확인할 수 있습니다 .

또한 YouTube에는 주제를 더 깊이 이해하는 데 도움이되는 많은 비디오가 있습니다.


17

양자 프로그래머가 양자 물리와 선형 대수에 대해 알아야 할 필요는 없다고 생각합니다. 이것들은 양자 프로그래머 지식을 넓히는 데 도움이 될 것들이지만, 전제 조건으로 간주되어서는 안됩니다.

그럼에도 불구하고, 신진 양자 프로그래머를 돕는 대부분의 자원은 선형 대수의 가정으로 시작합니다. IBM의 양자 장치 용 SDK 인 QISKit에 중점을 두지 않는 것들 (그리고 일부는 저에 의해 작성되었습니다).

가장 간단한 프로그램은 "Hello World"입니다. 양자 컴퓨터를 위해 어떻게합니까? 내 제안은 이모티콘중첩입니다 .

양자 프로그래밍에서 "Hello World"를 넘어 서면 더 복잡한 것을 원할 것입니다. 사람들은 종종 간단한 게임을합니다. 양자 컴퓨터로 그렇게하겠습니다. 전함을 만들었습니다 .

QISKit 튜토리얼 에서 퀀텀 프로그래밍에 대한 더 많은 예제를 찾을 수 있습니다 . 아마도 새로운 양자 프로그래머가 할 수있는 일과 수행 방법을 볼 수있는 최고의 장소라고 생각합니다.


5

pyQuil 은 Python의 오픈 소스 양자 프로그래밍 라이브러리입니다. 이 문서에는 프로그래밍으로 배우는 양자 컴퓨팅에 대한 실습이 포함되어 있습니다. 물리학 배경을 가정하지 않습니다.

주요 주제에 대한 링크는 다음과 같습니다.


5

QC의 이론을 이해하기 위해 Quantum Mechanics를 완전히 이해할 필요는 없습니다. 저는 수학 BSc / 프로그래머 이고이 주제에 대해 읽었으며 이전 edX QC 과정을 수행했습니다 (불행히도 이용할 수는 없지만 다른 것들도 있습니다). QC의 요점을 이해한다고 말할 수 있지만 Quantum Mechanics에 대해서는 아무것도 모른다.

핵심 부분은 Quantum Computing이 주로 선형 대수학을 사용한다는 것인데, 이는 주로 공학 / 컴퓨터 과학 학부 연구에서 가르치는 수학을 기반으로합니다. 이것은 무한 차원 공간을 사용 하는 실제 양자 역학 (또는 원하는 경우 기능 분석)과 대조 됩니다.

이러한 학부 수학 주제에 익숙하다고 생각되면 Susskind의 Quantum Mechanics : Theorytical Minimum을 확인할 수 있습니다 . 실제로 '실제'양자 역학에 관한 것이 아니라 QC에 유용한 것들입니다. BTW 전체 이론적 최소 도서 시리즈는 컴퓨터 과학 자나 공학 전공과 같이 일부 수학을 알고 있고 물리학에 대해 더 많이 알고 싶은 사람들을 대상으로합니다. 온라인에는 많은 코스가 있습니다. 예를 들어, edX에 새로운 코스가 있지만 아무 것도하지 않았으므로 추천 할 수 없습니다.


4

Q # , pyQuilQISKit 과 같은 다양한 양자 프로그래밍 프레임 워크에서 양자 회로를 작성하는 방법을 배우고 싶다면 Los Alamos National Laboratory의 초보자위한 Quantum Algorithm Implementations 라는 제목의 최신 논문 을 적극 권장 합니다 . IBM Q Experience를 사용하여 다양한 양자 알고리즘뿐만 아니라 오라클과 특정 서브 루틴을 양자 회로로 컴파일하고 구현하는 방법을 이해하는 데 유용한 리소스입니다. 앞에서 언급 한 프로그래밍 프레임 워크에서 구현하고 원하는대로 세부 사항을 익히는 것이 좋습니다.


4

양자 컴퓨터는 소위 양자 회로에 의해 (프로그래밍 언어를 나타내는) 프로그래밍된다. 이들은 일련의 양자 게이트와 이들이 작동하는 양자 비트 (qubit)에 대한 정보입니다.

양자 게이트에 대해 정말로 알아야 할 것은 회전을 나타냅니다 (고차원 공간, 이른바 힐버트 공간). 따라서 가역적입니다. Quantum 컴퓨터는 가역적 로직으로 프로그래밍됩니다.

양자 게이트는 무엇을 회전 시키는가? 표면 큐빗 상태가 사는 초구입니다. 계산 기준의 각 상태 ( , , ,|00|01|10|11일반적인 Dirac 표기법에서 2 큐 비트 시스템의 경우)는 복소수를 계수 또는 소위 확률 진폭으로 가져옵니다. 기본 벡터는 직교하며 상태의 힐버트 공간에 걸쳐 있으며, 확률 진폭은 그 좌표로 볼 수 있습니다. 이것은 양자 게이트가 회전에 영향을 미치는 그림입니다. 물리학 자들은 종종 양자 게이트가 회전을 일으키는 단일 큐 비트 시스템에 대해 다른 그림 인 블로크 구체를 사용한다는 것을 알 수 있습니다.

모든 종래의 논리는 양자 컴퓨터에 의해 가역적 논리 (비극 기 비트를 요구할 수 있음)로 먼저 표현함으로써 양자 컴퓨터에 의해 구현 될 수있다. 고전적인 NOT 게이트는 X 양자 게이트에 해당하지만 1 비트 가역 게이트 만 동일성 및 NOT 게이트 인 고전적인 경우와 달리 양자 컴퓨터는 회전에 따라 4 개의 해당 게이트 (X, Y, Z)를 갖습니다 블로흐 구체와 정체성). 또한이 게이트가 얼마나 멀리 회전하는지에 대한 비율만큼만 회전 할 수 있습니다. 특히 흥미로운 몇 가지는 Hadamard gate 또는 H gate와 같은 특수한 이름과 약어를 가지고있어 모든 주에서 동일한 중첩을 만듭니다.

불행히도 초기 양자 소프트웨어 엔지니어들은 아마도 그들이 사용할 양자 컴퓨터 하드웨어에 대해 조금 알아야 할 것입니다. 양자 게이트의 효과적인 회전 각도를 임의로 연속적으로 선택하기 때문에 양자 컴퓨터에는 일종의 아날로그 요소가 있습니다. 반드시 오류를 생성합니다 (물리적 양자 컴퓨터에는 그 이상의 오류 소스가 있습니다). 이를 처리하는 방법, 오류를 이산화시키고 오류가 가장 많은 이산화를 수정하여 바운드 오류로 (이상적으로) 임의로 복잡한 계산을 수행하는 양자 오류 수정 방법이 있습니다. 그러나 최적화는 하나의 양자 오류 수정 옵션을 가진 하나의 양자 컴퓨터가 특정 양자 게이트 또는 다른 알고리즘보다 알고리즘에 더 적합하다는 것을 의미 할 것입니다.


양자 알고리즘을 쉽게 작성하는 방법을 이해하는 사람 만이 자기 진화 양자 AI인지 궁금해하는 사람이 있습니까?
tgm1024
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.