Любой квантовый алгоритм построен как последовательность квантовых вентилей — операторов, которые как-то преобразуют входящий сигнал. Входящий сигнал — это состояние конкретного кубита. Вентиль должен изменить его в соответствии с тем, какую логическую операцию он реализует. По сравнению с классическими операциями, которые в современных машинах реализуют транзисторы и выполняют преобразования входного сигнала в форме операций над отдельными битами, у квантовых вентилей инструментарий шире. Кроме линейных преобразований (которые выполняют, например, вентили отрицания или сдвига фазы), однокубитные вентили еще могут переводить кубиты в состояние суперпозиции, а многокубитные — запутывать кубиты между собой.
Однозначно оценить число вентилей, которое нужно квантовому компьютеру для исполнения той или иной логической схемы, тяжело — она будет видоизменяться в зависимости от числа доступных кубитов. Глубина логической цепочки (то есть, количество вентилей в ней) растет с увеличением числа кубитов, но чем больше логических вентилей, тем сложнее их сделать.
Квантовые вычисления имеют вероятностный характер: любой из вентилей возвращает значение 0 или 1 с определенной вероятностью. Из мира вероятностей и распределений кубиты возвращаются в границы жесткого детерминизма после измерения: им заканчивается любая квантово-логическая цепочка. Если вентиль не идеальный, то на выходе получается много ошибок, поэтому часто нужную задачу вовсе не удается решить.
С ошибками можно бороться с помощью кодов коррекции, как и в классическом компьютере, но для этого нужны дополнительные кубиты. А это роскошь для нынешних квантовых технологий. Увеличение квантового вычислителя даже на один кубит — сложная техническая задача. Из рекордсменов по числу кубитов — 53-кубитный вычислитель Sycamore, на котором Google продемонстрировал квантовое превосходство.
Первый способ облегчить поиск основного состояния — перекинуть на обычный компьютер часть задачи. Такие объединенные вычислители выполняют гибридные квантово-классические алгоритмы. Вся логическая нагрузка здесь ложится на классический вычислитель. Квантовая часть просто готовит нужное квантовое состояние, чтобы можно было провести его измерение, а все задачи решают обычные транзисторы. Вычисления по такой схеме называют квантовым машинным обучением, а к названию алгоритмов добавляют уточнение «вариационные».
Другой подход — делать наоборот: зафиксировать какое-то одно квантовое состояние и крутить вокруг него энергетический ландшафт, чтобы выяснить, в каком окружении его минимальная энергия по-настоящему минимальна. Реализовать его можно тоже с помощью гибридной схемы, в которой классическая часть готовит параметры, а квантовая часть даже не вычисляет, а просто ищет на заданном рельефе выгодное для себя положение. Квантовая часть в этом случае — это система из нескольких тысяч связанных сверхпроводящих кубитов.
Такой метод называют адиабатической эволюцией, пионерами в его реализации стала компания D-Wave из Канады. Несмотря на то, что их подход ставят под сомнение многие ученые (стоит ли считать его по-настоящему квантовым?) машины D-Wave используют, а бизнес канадцев процветает.