“순전히 CS 배경”에서 시작하여“새로운 양자 프로그래밍 언어 만들기”로 나아가는 학습 안내서가 있습니까?


12

저는 컴퓨터 과학 배경을 가지고 있으며 읽기 / 감상이 너무 많기 때문에 양자 컴퓨팅을 배우면서 집중해야 할 리소스를 결정하기가 어렵다는 것을 알게되었습니다. 나의 궁극적 인 목표는 C가 만들어 졌을 때 1972 년과 비슷한 사람과 양자 컴퓨터 사이의 인터페이스 역할을하는 프로그래밍 언어를 만드는 것입니다. 현실적인 중간 단계로서 IBM의 QISKit에서 프로그램을 작성하고 싶습니다.

이를 위해서는 물리학에서 필요한 배경과 양자 컴퓨팅 분야로 다이빙하는 데 필요한 관련 분야를 확보하기 위해 개략적 인 연구 가이드가 필요합니다. 이것이 이미 존재 하는가 : 가능한 경우 마스터 할 필수 개념 및 능력의 순서화 된 목록 .

고등학교 수준의 물리 지식을 가정하십시오. 학습 가이드, 즉 초보자부터 전문가 가이드까지 제공하십시오. 양자 컴퓨팅 분야의 전문가가되기 위해 연대순으로 따라야하는 비디오 / 도서 리소스를 목록으로 작성해보십시오. .



3
Quantum Computing SE에 오신 것을 환영합니다! 현재이 질문의 제목은 광범위하고 의견을 바탕으로 한 질문 (SE Q & A 형식이 설계되지 않은 것)을 요구 하는 것처럼 보이지만 질문의 본문은 이것이 실제로는 자원 요청 (허용됨). 따라서 질문 제목을 편집 하여 알고 싶은 내용에 대해보다 구체적으로 작성 하면 가장 도움이됩니다 . 또한 의견에 연결된 질문에 대한 답변이 누락 된 내용을 정확하게 포함하면 도움이 될 수 있습니다. 감사!
Mithrandir24601

1
특히 자원 요청 질문 에 대한 정책을 참조하십시오 . 이것은 너무 광범위합니다.
헤더

1
nand2tetris와 같은 것이지만 양자를 생각하고 있습니까? 아니면 "컴퓨터 과학자를위한 양자 컴퓨팅"책과 같은 것이 있습니까?
James Wootton

1
수정 한 내용 덕분에 이제 리소스 요청 요구 사항이 충족되어 다시 열었습니다.
헤더

답변:


11

필요한 지식을 모두 제공 할 수 있는 하나의 황금 자원 이 없다고 생각 합니다. 그러나 나는 경로를 제안 할 수 있습니다 (또는 당신의 말로 개략적 인 학습 안내서 ).

새로운 양자 프로그래밍 언어 를 만드는 것이 목표 라면 물리학과 컴퓨터 과학 측면에서 양자 컴퓨팅의 기본 개념과 함께 기존 양자 프로그래밍 언어를 먼저 배워야한다고 말하고 싶습니다. 측면!).

  • Microsoft는 Q # ( Quantum Development Kit 의 일부) 이라는 양자 프로그래밍 언어를 가지고 있습니다 . 전체 설명서 준비 지침은 해당 웹 사이트 ( https://docs.microsoft.com/en-us/quantum)에 있습니다. 당신은 CS 측에서하는 경우, 당신이 이미 가지고있는 희망 일부 벡터, 행렬 및 일반적으로 선형 대수의 지식을. 그렇다면 기사별로 가이드를 직접 읽을 수 있습니다. 처음에는 행렬, 벡터 등의 간단한 개정으로 시작한 다음 qubits에 대해 간략하게 소개합니다. 물리학에 대한 최소한의 이해로 기본적인 양자 프로그램 작성을 시작하기에 충분합니다. 그건 그렇고, 선형 대수 개념이 약하면 항상 시도 할 수 있습니다칸 아카데미 의 강의도 마찬가지입니다.

  • 다음으로, 최소한 양자 역학의 기초를 배우고 싶을 것입니다. 저는 현재 유튜브에있는 바지 라니 교수의 강의를 개인적으로 좋아 합니다. 약 60 회의 10 분 강의에서 그는 양자 역학 및 양자 계산 알고리즘의 모든 필수 기초를 다룹니다. 그 후에는 새로운 알고리즘을 스스로 선택할 수있는 좋은 모양이 될 것입니다.

  • 세 번째 단계로, " Isaac Chuang과 Michael Nielsen의 양자 계산 및 양자 정보 "와 Mirco A. Mannucci와 Noson S. Yanofsky의 컴퓨터 과학자를위한 양자 계산 "을 선택하여 중요한 주제를 다루는 것이 좋습니다. 놓쳤다.

자신 만의 양자 프로그래밍 언어를 작성하기 시작하면 탄탄한 접지를 얻을 수있을 것입니다. 양자 프로그램을 작성하고 양자 프로그래밍 언어를 설계하는 방법에 대한 아이디어를 얻기 위해 다른 일반적인 양자 컴퓨팅 언어 에 대한 자습서를 살펴볼 수도 있습니다.


6

"새로운 양자 프로그래밍 언어를 만드는 것"이라는 목표가이 시점에서 양자 계산 개발에 적합한 지 여부를 생각해 보길 권한다. 가장 일반적인 접근 방식은 아닙니다. 대부분 기계 언어라는 측면에서 여전히 생각 단계에 있기 때문입니다. 우리가 알고리즘을 만들 때, 이것이 수행되는 수준은 논리 게이트 ( 곱셈의 예) 와 같은 고전적인 알고리즘을 표현하는 것과 유사합니다 . QISKit과 같은 퀀텀 SDK는 본질적으로 퀀텀 하드웨어 또는 시뮬레이터로 전송 될 작업을 생성하는 방법입니다. 여기에는 시뮬레이션 수행, 런타임 또는 노이즈 수준 최적화 등의 도구가 포함됩니다. 실제로 고전적인 계산에 사용되는 고급 수준의 언어는 아닙니다.

이 수준의 양자 스택에서 진행되는 작업에 대한 소개를 위해 Terry Rudolph의 Q is for Quantum 이 도움이 될 수 있습니다.

QISKit으로 프로그램을 작성하려는 중간 목표를 위해 QISKit 튜토리얼을 권장합니다 . 그것은 짧은 양자 프로그램을 구현하는 많은 사례를 가지고 있습니다. 또한 튜토리얼의 일부 내용에 대해 자세히 설명하는 매체 에 대한 QISKit 발행물 이 있습니다 . QISKit에 대한 게임 화 된 튜토리얼 도 있습니다.이 튜토리얼은 QISKit 전체 튜토리얼을위한 워밍업으로 유용 할 수 있습니다.

완전 파기 : 나는 마지막 단락에서 언급 된 모든 것들에 기여했습니다.


3
나는 이것에 동의하지 않습니다. FORTRAN이 개발되 자마자 (디지털 컴퓨터가 여전히 원시적이었을 때) 사람들은 기계 언어 대신이 언어를 사용하기 시작했으며 이는 아마도 고전 컴퓨터의 역사에서 프로그래밍 언어에서 가장 큰 도약이었습니다. 양자 컴퓨터를 위해 사람들이 기계 언어로 프로그래밍하도록 강요해야하는 이유는 무엇입니까? (나는 그들이 효율성을 위해 확신하지만 강요해서는 안된다.)
Peter Shor

1
좋은 지적입니다! 나는 현재 하드웨어가 기계어 이상의 것을 생각하지 않는다고 말하고 싶다. 그러나 틀린 것으로 판명되면 좋을 것입니다.
제임스 우튼

나는 내 대답을 약간 수정하여 부정성을 낮추었 고, 그것이 현재의 일을하는 일반적인 방법이 아니라고 지적합니다 (그렇지 않다는 것을 의미하지는 않습니다)
James Wootton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.