- PVSM.RU - https://www.pvsm.ru -
В 2000 году учёные Книлл, Лафламм и Милбурн разработали метод выполнения квантовых вычислений, который позднее был назван протоколом KLM. По сути, они обнаружили возможность выполнения любых теоретических квантовых вычислений с помощью просто грамотно выстроенной оптики, в частности, зеркал.
Используя квантовые свойства света и протокол KLM, мы можем быстро и недорого создавать кубиты с помощью готовых оптических компонентов и электроники. Лучевые делители доступны всего по ~$20 [1], что делает протокол KLM самым дешёвым методом реализации устройства для квантовых вычислений. Такая доступность позволила мне заняться изучением этой технологии прямо у себя дома.
Для нас действия квантовых систем выглядят «естественно» случайными. Фактическое действие субатомной частицы определяется вероятностью возникновения этого действия при его наблюдении, что делает эту технологию отлично подходящей для генерации случайности и энтропии.
В связи с этим первая собранная мной квантовая схема представляла простой генератор случайных чисел, основанный на протоколе KLM. С помощью лучевого делителя можно создавать два различных оптических пути или состояния фотона на основе его поляризации. Определяет эту возможность то, что светоделитель отражает горизонтально поляризованный свет, не препятствуя протеканию вертикально поляризованного.
Само по себе это не особо интересно, но свет обладает и ещё одной особенностью, известной как суперпозиция, когда фотон может выступать либо как частица, перемещающаяся по одному из двух путей, либо как волна, перемещающаяся одновременно по обоим. Этот эффект впервые пронаблюдал Томас Юнг в своём известном двухщелевом эксперименте [2].
И именно здесь возникает странное явление. Если фотон при прохождении светоделителя не окажется идеально поляризован горизонтально или вертикально, то одновременно и отразится, и пройдёт через щель. И только когда фотон оказывается обнаружен, он «коллапсирует» из волнообразного состояния обратно в частицу, оказываясь случайно в одном из состояний.
Запутал? Рекомендую приведённое ниже видео физика Евгения Хуторянского, в котором всё это объясняется намного нагляднее и интереснее.
Если вооружиться описанными выше знаниями, то создать квантовое устройство окажется несложно. Мы будем пропускать луч света через светоделитель и измерять его. Но как измерить свет?
Ответ прост. Несмотря на существование высокотехнологического (и дорогого) оборудования для измерения фотонов, проще всего вести измерение света с помощью фоторезистора.
Суть фоторезистора в том, что он позволяет изменять сопротивление цепи на основе того, сколько фотонов с ним проконтактировало. Когда фотоны достигают его поверхности, сопротивление цепи снижается, и напряжение в цепи растёт.
Фоторезисторы стоят наравне с транзисторами и светодиодами, что делает их очень доступным компонентом для самодельных квантовых устройств.
В нашем квантовом компьютере в качестве кубитов будут использоваться линейно поляризованные фотоны. Это даёт два возможных состояния кубита: горизонтально поляризованный и вертикально поляризованный, а также суперпозицию, которая может быть любым углом между 0 и 90°. Вкратце эти состояния продемонстрированы ниже в текстовом виде:
|
__
/
При разработке квантовых компьютеров всё начинается с алгоритма. Вам нужно знать, какие именно действия должна выполнять квантовая схема, прежде чем вы сможете манипулировать частицами для получения желаемого.
Для нашей же первой квантовой схемы алгоритм будет очень прост:
Теперь можно перейти к созданию нашего квантового генератора случайных чисел.
/* Annotated QRNGv1 Firmware V1.1
* Author: Noah G. Wood
*
* Copyright (c) 2019 Spooky Manufacturing, LLC
* License: GPLv3.0
*
*/
int triggerPin = 2; // Этот пин будет создавать импульс в квантовой схеме
int hPin = A0; // Этот пин измеряет горизонтально поляризованные фотоны
int vPin = A1; // Этот пин измеряет вертикально поляризованные фотоны
float H = 0;
float V = 0;
void setup() {
// Установка triggerPin и последовательного подключения
pinMode(13, OUTPUT);
pinMode(triggerPin, OUTPUT);
Serial.begin(9600);
}
int Random() {
// Подача импульса на лазер
digitalWrite(triggerPin, HIGH);
delay(3);
digitalWrite(triggerPin, LOW);
// Считывание фоторезисторов
H = analogRead(hPin);
V = analogRead(vPin);
// Определение случайного бита
if(H>V) { // Если фотонов больше в состоянии H, вернуть 0
return 0;
} if(H < V) { // Если фотонов больше в состоянии V, вернуть 1
return 1;
} else {
/* Одинаковое число фотонов в обоих режимах.
На самом деле нередкий случай. Для наших целей мы просто
будем выполнять функцию рекурсивно, пока не сгенерируется случайный бит
*/
Random();
}
}
void loop() {
// Основная программа
// Запуск программы и вывод случайного бита на последовательный порт
Serial.print(Random());
}
Оптическая схема: лазерный диод, направленный на лучевой делитель. Каждый выходной путь делителя направлен на отдельный фоторезистор, характеристики которых замеряются с помощью Arduino Uno
Если вы захотите собрать всё это сами, то вот список того, что вам потребуется (я использовал именно эти компоненты):
О доставке лучевых делителей:
Доставка светоделителей может затянуться, так как идут они из Китая. Я бы посоветовал заказывать эти компоненты в Edmund [3], но у нас нет необходимости использовать в домашних экспериментах столь дорогостоящее оборудование лабораторного уровня – пока.
Советы:
Для этого проекта можно использовать импульс лазера, состоящий из триллионов фотонов. Просто измеряя оба «состояния» и сравнивая сдвиг напряжения, можно легко определить, какое значение должен дать коллапсировавший кубит. Однако для более продвинутых проектов, включающих квантовую запутанность (в которой и заключается вся мощь квантового вычисления), необходимо использовать — так называемые источники одного фотона.
К сожалению, реализовать надёжную генерацию одного фотона не так просто. Та же квантовая случайность, которая обещает нам потенциал, далеко выходящий за возможности цифровых компьютеров, правит и созданием фотонов. И именно поэтому на рынке пока не существует идеального источника, генерирующего их по одному, хотя уже проводились многообещающие исследования с нано-алмазами, которые могут привести к созданию доступных коммерческих квантовых компьютеров.
Тем не менее путём ослабления лазерного луча и любитель вполне может создать достаточно надёжный источник одиночных фотонов для собственного использования, но это решение не идеально и несёт свои собственные сложности.
Запутанность представляет собой ещё одну большую проблему при создании собственных оптических квантовых схем. В конце концов, фотоны же не взаимодействуют друг с другом – как они могут запутаться? Но те же гении (серьёзно, гении), которые разработали протокол KLM, также нашли способ использовать простые оптические компоненты для запутывания фотонов с помощью нелинейных гейтов, вводящих сдвиг фаз, и, знаю, прозвучит как научная фантастика: телепортации.
Честно скажу, ни тот ни другой принцип я до конца не понимаю. Если вам интересно побольше узнать об этом, то лучше обратиться к странице Википедии (англ.) [4], посвящённой протоколу KLM. Я сам лично работаю над этим в своей домашней мастерской, но пока ничего особого не добился.
Моё восхищение квантовыми вычислениями, которое привело меня к сборке собственного квантового компьютера, также подтолкнуло меня к запуску Spooky Manufacturing, опенсорсного стартапа квантовых вычислений.
На данный момент мы ведём репозиторий на GitHub [5], где приведены полноценные инструкции, схемы и ПО для экспериментирующих с этой технологией (всё под открытой лицензией GPLv3).
Приглашаю желающих также ознакомиться и с другими проектами. Сейчас в разработке у нас находятся два инструмента:
Мы надеемся, что эти инструменты сделают проектирование, сборку и программирование самодельных квантовых компьютеров таким же простым и увлекательным занятием, как работа с Arduino или Raspberry Pi.
Эта статья написана в меру компетентности знаний автора. Все её содержание предназначено исключительно в качестве информационных или развлекательных целей и не является личным советом или профессиональной рекомендацией для применения в финансовых, юридических, технических вопросах или бизнесе.
Автор: Дмитрий Брайт
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy/376596
Ссылки в тексте:
[1] доступны всего по ~$20: https://aliexpress.ru/item/4000699476610.html?sku_id=10000006191026998
[2] двухщелевом эксперименте: https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%8B%D1%82_%D0%AE%D0%BD%D0%B3%D0%B0#:~:text=%D0%9E%D0%BF%D1%8B%D1%82%20%D0%AE%D0%BD%D0%B3%D0%B0%20(%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%82%20%D0%BD%D0%B0%20%D0%B4%D0%B2%D1%83%D1%85,%D0%B4%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%D0%BC%20%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B5%D0%B4%D0%BB%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D0%B8%20%D0%B2%D0%BE%D0%BB%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9%20%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8%20%D1%81%D0%B2%D0%B5%D1%82%D0%B0.
[3] Edmund: https://www.edmundoptics.com/c/laser-electronics/984/
[4] странице Википедии (англ.): https://en.wikipedia.org/wiki/KLM_protocol
[5] репозиторий на GitHub: https://turbofuture.com/computers/build-quantum-computer
[6] Источник: https://habr.com/ru/post/674048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674048
Нажмите здесь для печати.