Comments 21
Ну а если серьезно, мне, допустим, сложновато воспринимать штуки, которые непонятно как визуализировать. Все эти комплексные числа, n-мерные тензорные пространства и вот это вот все. Те же множества и операции с ними вполне можно объяснить ученику начальных классов, используя стандартные рисунки с окружностями. Вполне можно было добавить к этой статье сферу Блоха, которая упоминается в статье Аниты. Хотя визуальное представление кубита все равно не слишком упрощает понимание, что делать с целой коробкой этих «шариков» =)
Возможно, заблуждаюсь, но… Что общего в понятиях "квантовое программирование", "линейное программирование" и "объектно-ориентированное программирование"? Правильный ответ — в их названиях есть слово "программирование" =) Думаю, в шутке таки есть щепотка истины.
Есть достаточно много открытых и не только материалов для приобщения к квантовому миру, но от себя хочу порекомендовать замечательный русскоязычный курс от СПбГУ "Квантовые вычисления" (Coursera, Stepic) и онлайн-редактор квантовых схем Quirk — курс даёт начальное представление о том, что вообще происходит и зачем мы всё это делаем, а редактор позволяет вдоволь поиграться с вентилями и реализовать простые квантовые схемы и алгоритмы.
Спойлер: бам, это всё линейная алгебра и жонглирование операторами, а эти ваши модные "квантовые" языки программирования — всего лишь синтаксический сахар над матричными операциями!
Справедливо, не спорю :) Просто, как мне кажется, на волне зарождающегося хайпа на "квантовую" тему далеко не все и не сразу понимают (а после выпада "сложнаа" — и не поймут), что же лежит в основе пресловутых квантовых вычислений — а ведь это банально последовательность унитарных преобразований над векторами гильбертова пространства (именно так, матан-концентрат), со всеми вытекающими последствиями: линейность, обратимость, экспоненциальный рост размерности и т.п.
К сожалению (или к счастью?), да, квантовую "чуйку" развить с нуля простому смертному будет довольно трудно — нужен сильный царь мат. аппарат в голове и соответствующие навыки линейной алгебры. Увы, все мы в детстве складывали кубики и делили яблоки, а не эволюционировали волновые функции и не вращали вектора состояний в 2n-мерном пространстве — по этому поводу весьма занятно высказался К.Мухин в потрясающей книге «Занимательная ядерная физика»: "квантовую механику — младенцам!"
Было такое забавное иследование: перед маленькими детьми ставили две коробки, на их глазах в одну из них клали мячик, после чего просили этот мячик достать.
Дети постарше, разумеется, сразу же лезли в ту коробку, в которую клали мячик. А вот совсем мелкие (кажется, до года) искали мячик в обеих коробках.
В одной из шутливых интерпретаций такого результата говорилось, что в возрасте года дети теряют врожденные способности к квантовой механике.
Спасибо за ссылки на репозиторий и блог)
Задача:
Сравнить скорость разложения на множители стандартным алгоритмом и квантовым алгоритмом. Грубо говоря, сколько элементарных операций потребуется на обычном компьютере и на квантовом, потом умножаем их на длительность по реальным характеристикам существующего железа и… проверяем профит.
Нельзя просто взять и "покопаться" :)
Во-первых, как было осторожно предположено выше, квантовое "программирование" крайне далеко от повседневного понятия программирования (будь то разработка ядер Linux на C, дизайн железа на VHDL/Verilog, или тем более это ваше модное смуззи-based web/front-/back-end). UPD: хотя вот как раз к проектированию схем на VHDL/Verilog это всё же довольно близко, похоже.
Во-вторых, экосистема ещё только начинает осторожно выходить в свет:
- прикладное направление (физическая реализация кубитов, гейтов, оракулов, все эти адиабатические шкафы, лазеры и платы при абсолютном нуле);
- теоретическое (разработка алгоритмов, пример — разрекламированные алгоритмы Гровера, Шора, и ещё несколько десятков более специфичных и менее известных простым смертным);
- … и такое вот "прикладное", которое про реализацию и оптимизацию (!) квантовых схем (вот это как раз про языки, схемы и эмуляцию — то, что уже сейчас можно потрогать).
В первые два направления, очевидно, нельзя просто взять и прийти (нужна серьёзная подготовка в соответствующих учебных заведениях и на соответствующих кафедрах). Однако, определенную минимальную базу можно получить, изучая открытые источники. Крайне рекомендую курс от СПбГУ "Квантовые вычисления" (ссылки в посте выше) и онлайн-редактор квантовых схем Quirk — очень наглядный и удобный инструмент.
Квантовые вычисления и язык Q# для начинающих