와 양자 컴퓨터 프로그래밍 이번 주 나는 시드니에서 열린 내무부 개발자 컨퍼런스에 참석했다. 여기있는 동안,나는 존 아자 리아,질문#프로그래밍 언어의 창조자에 의해 실행 큐#를 사용하여 양자 컴퓨터 프로그래밍에 대한 워크숍에 참석했다.
큐#최근에 출시 된 마이크로 소프트 언어는 특히 고전적인 컴퓨터에서 양자 컴퓨터 작업을 프로그래밍하기 위해 개발. 그것은 맥,윈도우,리눅스에서 지원됩니다.
질문#에 대해 매우 흥미로운 점은 새로운 의미 론적 수준에서 양자 컴퓨팅의 추상화라는 것입니다. 복잡한 아이디어를 간결하게 표현할 수 있습니다(씨 대 어셈블리 언어를 생각해보십시오). 새로운 수준의 의미 적 추상화는 새로운 패러다임의 출현을 허용합니다.
그러나 큐#은 이전의 친숙한 추상화에 비해 단순히 새로운 수준의 추상화가 아닙니다. 큐#은 여전히 물리적으로 구현되고있는 혁신적인 하드웨어(양자 컴퓨터)에 대한 의미 론적 추상화입니다.
당신은 단순히 고전적인 컴퓨터 언어로 표현할 수없는 것들을 큐#로 표현할 수 있습니다.
큐#은 캡슐화하는 프리미티브 측면에서 양자 컴퓨터의 어셈블리 언어에 더 가깝습니다. 우리는 기본적으로 40 대 후반/50 대 초반에 클래식 컴퓨터를 사용하는 양자 컴퓨터를 사용하고 있습니다.
큐#프로그래밍 모델
큐#프로그래밍 모델은 양자 컴퓨터를 보조 프로세서로 취급하는 것입니다. 그것은 당신의 컴퓨터의 비디오 카드에 그래픽 처리 장치 작업 비슷합니다. 더 많은 스레드는 더 빠른 성능과 더 나은 멀티태스킹을 가능하게 합니다 비트코인 채굴은 비트코인 채굴에 필요한 숫자 크런칭의 종류에도 좋기 때문에 사람들은 이를 위해 사용합니다. 예를 들어,도메인 특정 언어를 사용하여 명령어를 조합한 다음 컴퓨터의 주 프로세서에서 실행하도록 명령어로 보냅니다.
Q#를 작성하는 양 운영 도메인에서 특정 언어 Q#는 무국적자,기능성 언어,그리고 그들에게 보내는 양자 컴퓨터에서 작성된 프로그램에서는 C#에서 실행되는 클래식 CPU 도를 받을 수 있는 곳이 최종 출력에서 양자 컴퓨터입니다.
예제 큐#코드
워크숍이 끝난 후,나는 고전적인 컴퓨터의 동작과 구별되는 간단한 양자 동작을 보여주는 큐#프로그램을 작성했다.
하이게이트 프로그램은 시스템의 중간 상태 관찰이 시스템의 동작에 영향을 미치는 유명한 이중 슬릿 실험의 특별한 경우를 보여줍니다.
“하나님은 주사위를 재생되지 않습니다…”—알버트 아인슈타인
이 프로그램에 의해 표시되는 동작을 이해하기:동전을 복용하고 머리 위로 시작 상상,다음을 뒤집기. 그것은 머리 또는 꼬리를 오는 50%의 기회가있다. 당신은 그것이 무엇인지 확인한 다음 다시 뒤집습니다. 그것은 다시 머리 또는 꼬리를 오는 50%의 기회가있다.
꽤 똑바로 앞으로. 자,여기 양자 이상한 점이 있습니다. 양자 영역에서 동전이 양자 효과의 대상이되는 입자라면,하다마드 게이트라는 양자 논리 회로를 통해 동전을 보내 뒤집습니다. 첫 번째 플립 후 보면,당신은 그 플립과 두 번째 플립에 50/50 머리/꼬리를 얻을. 그러나,첫 번째 플립 후 그것을 보지 않는 경우,두 번째 플립 머리—매 시간을 온다.
양자역학을 처음 발견한 알버트 아인슈타인은 우주가 이렇게 작동할 수 있다는 것을 믿을 수 없었다. 그럼에도 불구하고,그렇지 않으면 우리는 아이폰과 다른 현대 전자 제품을 갖지 않을 것입니다.이 전자 제품은 매우 작은 규모로 작동하며 이와 같은 많은 양자 행동을 이용합니다. 아인슈타인은 그가 발견 한 양자 이상한 일이 아니라는 것을 증명하기 위해 자신의 인생의 나머지 부분을 보냈다,실패. 그리고 그것이 그가 그것에 대한 신용을 얻지 못하는 이유입니다. 하지만 그래,그는 동시에 세 개의 논문을 발표—하나는 원자의 존재의 증거였다,두 번째는 상대성이었고,세 번째는 양자 기계적 현상 인 흑체 방사선에 대해이었다.
이 특정 양자 행동이 발생하는 이유에 대해 조금 더 읽으려면 다음을 참조하십시오 README.md 예제 프로그램의 파일.
큐#퀀텀 연산
다음은 위에 링크 된 예제 프로그램에서 가져온 큐#에 작성된 양자 연산의 예입니다:그리고 파이썬(특히for in
)에서 몇 가지 아이디어를 이끌어 낸다.
이것은 상태 비저장 언어입니다—퀀텀 연산 간에 상태를 유지할 수 있는 방법이 없으며,연산의 값을 반환하기 위한 상태 측정은 퀀텀 상태를 단일 실제 상태로 축소합니다. 변수가 없지만 상수 불변성의 바인딩을 사용합니다.
유형은 임의의 배열로 튜플 기반입니다. 카레가 아닌 부분 응용 프로그램 지원이 있으며 제네릭과 펑터가 있습니다. 펑터를 사용하면 연산 시퀀스를 표현하고 추론 할 수 있습니다.
큐#컴파일러는 전체 프로그램 분석을 수행하고 코드를 통해 작업을 양자 컴퓨터로 보내기 전에 최적화를 수행 할 수 있습니다. 이것은 특히 큐 비트 상태가 현재 및 가능성이 높은(단기)미래의 양자 컴퓨터와 일관된 시간의 작은 조각을 감안할 때 운영 비용 때문에 중요합니다.
양자 컴퓨터는 어떤 문제를 해결할 수 있습니까?
클래식 컴퓨터는 1 또는 0 의 두 가지 상태 중 하나를 가질 수있는 비트를 사용합니다. 양자 컴퓨터 비트 또는 큐 비트는 두 가지 상태 중 하나만 볼 수 있지만 양자 컴퓨터 내부에서는 확률 적 상태를 가질 수 있습니다. 이를 통해 많은 상태,특히 입자의 확률 적 상태 파형을 모델링 할 수 있습니다. 이 유용한 계산을 어떻게합니까? 음,물리적 시스템을 모델링하는 데 좋습니다.
1911 년에 우리는 암모니아를 만드는 방법을 알아 냈습니다. 질소를 5000 도까지 가열하고 50 기압으로 압축해야합니다. 이 암모니아는 화약과 비료에 사용되며,이 비료는 60 년대의 녹색 혁명을 허용하여 전 세계 인구를 두 배로 늘릴 수있었습니다. 세계 에너지 예산의 4%는 암모니아 생산에 사용됩니다.
니트로 게나 제는 콩의 뿌리에 기생 결절에 사는 박테리아의 효소입니다. 당신이 들판에서 콩을 재배 할 때,이 효소는 대기에서 질소를 땅에 고정시켜 토양을 비옥하게합니다. 따라서 농부들은 토양을 비옥하게 유지하기 위해 밀,콩,밀을 재배하는 작물을 회전시킵니다.
세균이 하는 방식대로 암모니아를 생산하는 방법을 이해하려면—대기로부터 물+엔 을 사용하여 실온에서-170 전자의 상호 작용을 해결해야합니다. 질소 분해 효소는 촉매 역할을하는 두 가지 전이 금속,즉 철과 몰리브덴을 가지고 있습니다. 즉,우리는 전자의 파형을 모델링하기 위해 21.5 센티미터의 복소수가 필요하다는 것을 의미합니다. 지구에는 단지 21 밀리그램의 원자가 있기 때문에 문제 정의를 저장하려면 1,000,000 개의 지구가 필요합니다.
200 큐 비트의 양자 컴퓨터는 많은 상태를 모델링 할 수 있습니다.
그 컴퓨터로 우리는 시뮬레이션을 실행하여 박테리아처럼 어떻게 할 수 있는지 이해할 수 있습니다. 새로운 약물 화합물이 생산되어야하는 것처럼,우리가 그것을 할 수있는 것을 구축 할 수있는 솔루션을 갖게되면 추가 엔지니어링이 이루어질 것입니다. 그리고 그 작업이 완료되면 농업의 농업 생산량이 상당히 높아질 것입니다.
양자 컴퓨터 구성
양자 컴퓨터에는 큐비트의 두 가지 구성 요소,즉 양자 상태를 유지하는 물리적 구성 요소와 물리적 구성 요소에 대한 작업을 수행하는 구성 요소가 있습니다.
큐 비트-적어도 우리가 지금 접근하는 방식-은 15 밀리 켈빈에서 작동합니다. 액체 헬륨은 4 켈빈입니다.
양자 컴퓨팅의 모델은 고전 컴퓨팅의 일반화이다. 그것은 수학적으로 선형 대수입니다. 수학적으로 큐 비트는 고차원 선형 공간(힐베르트 공간)의 벡터입니다.
그 공간에서 큐비트는 관찰할 수 없지만 시스템에 회전 변환을 적용하도록 요청하면 큐비트에서 작동할 수 있습니다.
현재 양자 컴퓨터는 10^-6 초 동안 물리적 큐 비트를 생성 할 수 있습니다. 그 기간이 지나면 붕괴되므로 오류 수정이 필요합니다.
양자 컴퓨팅의 두 가지 모델이 있습니다:
- 게이트 모델—행렬 곱셈을 사용하여 양자 상태의 시간 진화. 이 모델은 다음과 같습니다.
- 양자 어닐링-문제를 해결하는 가장 낮은 에너지 상태를 찾습니다. 드와브 컴퓨터는 이 방법을 사용합니다.
클래식 컴퓨팅은 양자 컴퓨팅의 특별한 경우입니다. 따라서 양자 컴퓨팅의 발전과 발견은 고전 컴퓨팅에 대한 통찰력을 유발합니다.
퀀텀 컴퓨팅 영향
퀀텀 컴퓨팅의 미래 영향 가능성에 대한 표제 포스터 아이는 현재의 암호화 체계를 깨뜨릴 수 있다. 그러나 그 전에 더 많은 영향력있는 변화가있을 가능성이 있습니다.
최신 암호화를 깨려면 5000 큐 비트의 양자 컴퓨터가 필요합니다.
마이크로소프트는 이미 격자 기반 암호화를 포함한 포스트 퀀텀 컴퓨팅 내성 암호화를 출시하고 있다. 현대 암호화는 해결하기가 고전적으로 비싸지 만 양자 컴퓨터에서는 사소한 큰 소수를 인수 분해하는 것을 기반으로합니다.
우리가 양자 컴퓨터를 온라인으로 얻을 때,그들이 우리를 도울 것 중 하나는 우리가보다 효율적인 양자 컴퓨터를 만드는 데 사용할 수있는 물리적 시스템을 모델링하는 것입니다.
질소 분해 효소와 같은 문제 해결,또는 엽록소가 대기로부터 이산화탄소를 포획하여 탄수화물로 바꾸는 방법—온실 효과를 역전시키고 우리가 얇은 공기(그리고 햇빛)로 음식을 만들 수있게 해주는 것—은 양자 컴퓨터를 사용하여 초전도체를 개발하는 것과 마찬가지로 지평선에 더 가깝고 큰 영향을 미칠 것입니다.
그리고 그들은 또한 우리가 지금 고려조차하지 않는 문제와 기회를 열어 줄 것입니다. 아인슈타인은 흑체 방사선에 관한 논문을 발표했을 때 아이폰이나 인터넷에 대해 생각하지 않았습니다.
우리는 지금 미래에 살고 있습니다.
많은 수학없이 양자 물리학을 소개하는 몇 권의 훌륭한 책을 추천합니다:
“슈뢰딩거의 고양이 찾기: 양자 물리학과 현실—-20 세기를 통해 생각과 발견의 진화를 추적 양자 역학의 발전의 인기있는 역사.
“현실의 구조-평행 우주의 과학,그리고 그 의미”-양자 컴퓨팅의 선구자 인 데이비드 도이치의 책. 이 책은 과학 철학(특히 인식론)에서 시작하여 양자 역학의 철학적 의미를 조사합니다.
당신이 바로 그것으로 얻고 싶은 경우에,체크 아웃”컴퓨터 과학자를위한 양자 컴퓨팅”. 이 책은 존이 추천하는 책이다.
이 공간에는 선행 기술이 있습니다-예를 들어 하스켈에서 구현 된 퀴퍼. 그러나 큐#은 3 큐 비트 로컬 시뮬레이터와 40 큐 비트 클라우드 기반 시뮬레이터에 대한 액세스를 포함하는 양자 컴퓨팅으로 제공됩니다. 이 언어에는 스크래치 같은 시각적 편집기와 클라우드 기반(실제)양자 컴퓨터 플랫폼이 있습니다. 질문#유형 및 제어 흐름이있는 상위 수준의 언어입니다.