Эта способность делать две вещи сразу присуща именно квантовой механике. В двухщелевом эксперименте фотон может пройти через обе щели сразу; кубит может хранить 0 и 1 в одно и то же время; квантовый компьютер может выполнять две разных задачи одновременно. Способность делать две вещи сразу является результатом волновой природы квантовой механики. Каждое возможное состояние квантовой системы соответствует волне, а волны могут накладываться друг на друга.
Мы все знакомы с ситуациями, где наложение волн приводит к качественно новым и более богатым явлениям. Рассмотрим звуковые волны. Волна, колеблющаяся вверх и вниз на определенной частоте, соответствует чистому тону. Звуковая волна, колеблющаяся вверх и вниз 440 раз в секунду, соответствует звуку ноты «ля» первой октавы. Звуковая волна, колеблющаяся вверх и вниз 330 раз в секунду, дает звук ноты «ми» первой октавы. Суперпозиция этих двух волн соответствует аккорду, который обладает качественно иным, более богатым звуком, чем звук любого чистого тона, взятого отдельно. Богатство звука возникает благодаря интерференции, наложению этих двух чистых тонов.
Классическое вычисление похоже на сольную партию – отдельные строки чистых тонов, следующие друг за другом. Квантовое вычисление похоже на симфонию, состоящую из множества строк тонов, интерферирующих друг с другом. Именно это явление интерференции придает квантовому вычислению его особые качества и дополнительную мощь.
Квантовые вычисления не ограничиваются всего двумя «партиями». Как и симфония, квантовое вычисление становится богаче и сильнее, создавая сложные последовательности аккордов. Например, предположим, что на вход компьютера подается «кутрит» с тремя возможными состояниями: 0, 1 и 2. Состояние 0 инструктирует квантовый компьютер «делать это», состояние 1 инструктирует его «делать то», а состояние 2 инструктирует его «делать что-то еще». Если «это» означает «прибавить 2 к 2», а «то» означает «прибавить 3 к 1», то «что-то другое» может означать «прибавить 4 к 0». Когда квантовому компьютеру на вход подают суперпозицию всех трех инструкций, он начинает делать «это», «то» и «что-то другое» сразу. В нашем примере компьютер одновременно исследует все возможные способы получить 4 как сумму неотрицательных целых чисел. Такое квантовое вычисление похоже на трио, где три волны интерферируют, накладываются друг на друга, а три вычисляющих «голоса» сотрудничают над разложением числа 4 на слагаемые и делают это быстрее, чем мог бы сделать один вычисляющий «голос».
Количество вещей, которые одновременно может делать квантовый компьютер – число голосов в симфонии квантового вычисления – быстро растет с увеличением числа входных битов. Даже небольшое количество кубитов может создать чрезвычайно богатую фактуру интерферирующих волн в ходе вычисления. Квантовый компьютер, получивший на входе 10 кубитов, может делать 1024 (210) вещей сразу. Квантовый компьютер, получивший 20 кубитов, может сделать 1 048 576 (220) вещей сразу. При 300 кубитах на входе он может одновременно сделать больше вещей, чем элементарных частиц во всей Вселенной. Квантовый параллелизм позволяет даже относительно маленькому квантовому компьютеру, содержащему всего несколько сотен кубитов, одновременно исследовать огромное количество возможностей.
И снова проблема измерения
Но что происходит, когда мы берем квантовый компьютер, делающий несколько вещей сразу, и спрашиваем его, что он делает? Возможно ли провести измерения, чтобы определить, делает ли он «это», «то» или «что-то другое»? Как и с любой квантовой системой, когда мы проводим измерения в суперпозиции нескольких возможных состояний, результат измерения дает случайным образом одну из этих возможностей. Так, если квантовый компьютер исследует все способы получить цифру 4 как сумму положительных целых чисел, то когда мы начнем его опрашивать, он скажет, например: «О, я прибавляю 3 к 1», или: «Я прибавляю 2 к 2».
Следуя метафоре квантового вычисления как симфонии: если мы измеряем квантовый компьютер, в то время как он вычисляет, мы не слышим всего оркестра; мы слышим только один голос, выбранный случайным образом.
Вспомним двухщелевой эксперимент. В этой модели электрон делает две вещи сразу: он проходит через обе щели одновременно. Когда мы проводим измерения, чтобы выяснить, через какую щель проходит электрон, он обнаружится в одной или во второй щели, случайным образом. Точно так же, если мы возьмем квантовый компьютер, делающий две вещи сразу, и измерим его, чтобы выяснить, что он делает, то окажется, что он делает одну или другую из этих вещей, случайным образом. Если мы хотим увидеть интерференционную картину в эксперименте с двойной щелью, нам нужно подождать, пока электрон достигнет экрана, чтобы две волны – одна от одной щели, вторая от другой – смогли проинтерферировать друг с другом. Картина интерференции возникает из «дуэта» этих двух волн. В квантовом вычислении, если мы хотим получить от него максимальную пользу, не следует наблюдать за вычислением, когда оно происходит. Чтобы получить полный симфонический эффект квантового вычисления, нужно позволить всем волнам в этом вычислении интерферировать друг с другом. Нужно позволить «голосам» вычисления сливаться и перекликаться так, как они хотят.
Одна возможная точка зрения на это явление состоит в том, что измерение квантового компьютера, делающего несколько вещей сразу, приводит к «коллапсу волновой функции компьютера», и в результате он начинает делать только что-то одно. Другой способ описать эффект такого измерения – это сказать, что оно делает вычисление декогерентным. Как мы уже говорили, декогерентность не означает, что альтернативные возможности ушли навсегда. Они все еще существуют, но больше не оказывают влияния на состояние системы.
Обратите внимание, что полноценное измерение не является необходимым для того, чтобы внести декогерентность в квантовое вычисление. Любой пролетающий мимо электрон или атом, который взаимодействует с квантовым компьютером и получает при этом информацию о том, что делает квантовый компьютер, может привести к декогерентности столь же эффективно, как и полноценное измерение с помощью макроскопического измерительного прибора. Когда квантовые компьютеры выполняют квантовые вычисления, нужно с величайшей заботой изолировать от их окружения.
Разложение на множители
Квантовый параллелизм делает квантовые компьютеры потенциально очень мощными. Квантовый компьютер может одновременно исследовать все возможные решения той или иной проблемы, даже самой сложной. Пример такой проблемы – разложение на множители. Число раскладывается на множители, если его можно представить как произведение двух или более целых чисел, бóльших единицы. Например, число 15 можно разложить на множители, потому что его можно записать как произведение 3 и 5. А число 7 нельзя разложить на множители, потому что единственный способ записать его как произведение двух положительных целых чисел – это 7 раз по 1. Числа, которые нельзя разложить на множители, называют простыми. Вот несколько первых простых чисел – 2, 3, 5, 7, 11, 13… Нетрудно показать, что существует бесконечное число простых чисел.
Возьмем два больших простых числа, состоящих из 200 цифр каждое, и перемножим их. Мы получим число из 400 цифр. Перемножать два числа из 200 цифр – утомительная, но вполне посильная задача для цифрового компьютера, классического или квантового. Возьмем получившееся произведение из 400 цифр, покажем его кому-нибудь, кто не знает, какими были два первоначальных простых числа, и попросим разложить его на множители. Наше число из 400 цифр, очевидно, можно разложить на множители, и если нам известны оба первоначальных числа из 200 цифр, то очень легко проверить, что их произведение действительно дает наше число из 400 цифр. Но поиск этих двух множителей, если мы не знаем их заранее, оказывается сложным. По существу, единственный известный способ найти эти множители – перебирать все возможные числа из 200 цифр по очереди до тех пор, пока мы не найдем то одно, на которое делится наше число из 400 цифр. (Разумеется, существуют уловки, позволяющие быстро исключить некоторые числа, но они не слишком помогают.) К сожалению, чисел из 200 цифр очень много. Используя наш любимый пример, чисел из 200 цифр намного больше, чем элементарных частиц во всей Вселенной.