Квантовый компьютер — это тип компьютера, в котором используются принципы квантовой механики, поэтому он может выполнять определенные виды вычислений эффективнее, чем обычный компьютер.
Чтобы объяснить, что такое квантовый компьютер, сначала надо немного рассказать об обычных (не квантовых) компьютерах.
Обычный компьютер хранит различные виды информации, текст, картинки, числа, в виде последовательности нулей и единиц.
Единица информации в последовательности нулей и единиц называется битом. Таким образом, бит может быть обозначаться 0 или 1.
А что квантовые компьютеры?
Квантовый компьютер не использует биты для хранения информации. Вместо этого, он использует кубиты.
Это некая логическая единица, которая может принимать два значения: ноль и единица.
Простая задача
Допустим, что менеджеру турфирмы нужно организовать трансфер группы людей.
Пусть это будут Анна, Борис и Константин, для которых заказано 2 автомобиля. Необходимо распределить людей по машинам с учетом взаимоотношений между ними.
Вот исходная информация:
- Анна и Борис друзья
- Анна и Константин не дружат
- Борис и Константин не дружат
Задача менеджера распределить группу из 3 человек в два автомобиля, чтобы:
- Увеличить количество пар друзей, в одной машине.
- Минимизировать количество пар врагов, в одной машине
Решение задачи с помощью обычного компьютера
Чтобы решить эту проблему с помощью обычного неквантового компьютера, вам нужно сначала выяснить, как хранить соответствующую информацию с помощью битов.
Назовем машины Авто 1 и Авто 0.
Чтобы понять, кто садится в какой автомобиль достаточно 3 битов.
Например, можно определить три бита: 0, 0 и 1, чтобы представить:
- Анна садится в машину №0
- Борис садится в машину №0
- Константин садится в машину №1
Так как у каждого человека есть два варианта, существует 2*2*2= 8 способов разделить эту группу людей на две машины.
Вот список всех возможных конфигураций:
А | Б | К
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1 | 1
Определение оценки для каждой конфигурации
Как можно определить, какая конфигурация будет лучшим решением задачи?
Проще всего оценить варианты так:
(оценка конфигурации) = (количество пар друзей в одной машине) - (количество пар врагов в одной машине)
Допустим, что Анна, Борис и Константин садятся в машину №1. С тремя битами это может быть выражено как 111.
В этом случае в машине находится одна пара друзей — Анна и Борис.
Однако в той же машине едут две пары врагов — Анна и Константин, а также Борис и Константин.
Таким образом, оценка этой конфигурации 1–2 = -1.
Решение проблемы
На обычном компьютере, чтобы найти наилучший вариант, нужно просмотреть все конфигурации, и выбрать, какая из них набирает наивысшую оценку.
Можно сформировать таблицу следующим образом:
А | Б | К| Оценка
0 | 0 | 0 | -1
0 | 0 | 1 | 1 <- одно из лучших решений
0 | 1 | 0 | -1
0 | 1 | 1 | -1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- другое лучшее решение
1 | 1 | 1 | -1
То есть, у задачи два правильных решения — 001 и 110, оба набирают 1 балл.
Но простой задача кажется только в первом приближении, как только количество людей начинает увеличиваться сложность решения растет с астрономической быстротой.
В ситуации с 3 людьми нужно просчитать 8 возможных вариантов.
- Для 4 человек, это 2*2*2*2 = 16 вариантов. А если их 100? Количество вариантов вырастает до 1267650600228229401496703205376. Это 1 нониллион 267 октильонов 650 септиллионов 600 секстиллионов 228 квинтиллионов 229 квадриллионов 401 триллион 496 миллиардов 703 миллиона 205 тысяч 376.
Классический компьютер не справится с этой задачей в разумные сроки.
Решение задачи с помощью квантового компьютера
Как мы определили ранее, было 8 возможных решений этой задачи:
А | Б | К
0 | 0 | 0
0 | 0 | 1
0 | 1 | 0
0 | 1 | 1
1 | 0 | 0
1 | 0 | 1
1 | 1 | 0
1 | 1 | 1
На обычном компьютере, используя 3 бита, мы могли представить только одно из этих решений за один раз — например, 001.
С помощью квантового компьютера, использующего 3 кубита, мы можем представить все 8 этих решений одновременно.
Сначала рассмотрите первый кубит из 3. Когда вы определяете его как 0 и как 1, это похоже на создание двух параллельных миров. Это странно, но просто поверьте.
В одном из этих параллельных миров кубит установлен на 0. В другом он установлен на 1.
А что, если второй кубит тоже установить в 0 и 1? Тогда мы получим 4 параллельных мира.
В первом мире два кубита установлены на 00. Во втором — на 01. В третьем — на 10. В четвертом — на 11.
Точно так же, если установить для трех кубитов значения 0 и 1, вы создадите 8 параллельных миров — 000, 001, 010, 011, 100, 101, 110 и 111.
Это странно и необычно для понимания, но это один из правильных способов понять поведение кубитов в реальном мире.
Теперь, когда какие-то вычисления применяются к этим трем кубитам, фактически применяете одни и те же вычисления во всех этих 8 параллельных мирах одновременно.
Вместо того чтобы последовательно рассматривать каждое из потенциальных решений, мы можем вычислить оценки всех решений одновременно.
Теоретически в этом конкретном примере квантовый компьютер сможет найти одно из лучших решений за несколько миллисекунд. Опять же, это 001 или 110, как мы видели ранее:
А | Б | К | Оценка
0 | 0 | 0 | -1
0 | 0 | 1 | 1 <- одно лучшее решений 0
| 1 | 0 | -1
0 | 1 | 1 | -1
1 | 0 | 0 | -1
1 | 0 | 1 | -1
1 | 1 | 0 | 1 <- другое лучшее решение
1 | 1 | 1 | -1
Чтобы решить эту проблему, квантовому компьютеру нужны две вещи:
- Все потенциальные решения представлены кубитами.
- Функция, которая превращает каждое потенциальное решение в оценку. В нашем случае это функция, которая подсчитывает количество пар друзей и врагов, использующих одну и ту же машину.
Учитывая эти две вещи, ваш квантовый компьютер выдаст одно из лучших решений за несколько миллисекунд.
Теоретически квантовый компьютер способен находить одно из лучших решений при каждом запуске.
Однако при работе квантового компьютера случаются ошибки. Вместо того чтобы найти один оптимальный вариант, он может найти два, три, а то и больше решений задачи.
Эти ошибки становятся более заметными по мере того, как проблема становится все более и более сложной.
Скорее всего, на практике вы, захотите выполнить одну и ту же операцию на квантовом компьютере десятки или сотни раз. А затем выбрать лучший результат из множества результатов, которые вы получите.
Как масштабируется квантовый компьютер
Даже с упомянутыми ошибками у квантового компьютера нет такой проблемы с масштабированием, от которой страдает обычный компьютер.
Когда необходимо распределить 3 человек на две машины, количество операций, выполняемых на квантовом компьютере, равно 1. Потому что квантовый компьютер вычисляет оценку всех конфигураций одновременно.
Для 4 человек, количество операций по-прежнему равно 1, даже для 100 человек, тоже потребуется 1 операция. Квантовый компьютер вычисляет сумасшедшее количество конфигураций одновременно.
В реальности лучше всего запускать квантовый компьютер десятки или сотни раз и выбирать наилучший результат из множества полученных. И это будет намного эффективнее, чем повторять одни и те же вычисления миллионы, миллиарды, триллионы раз.
#квантовый компьютер #технологии