Заключение Верховного суда
Верховный суд единогласно отменил решение по мнению судьи Кларенса Томаса.
Исчерпание и связанные с ним патенты
Компания LGE не оспаривала утверждение о том, что предполагаемое и разумное использование микропроцессорной продукции заключалось в ее включении в компьютеры, но она утверждала, что существуют некоторые виды использования, не нарушающие авторские права: их можно продавать за границу, в качестве запасных частей или путем отключения особенности, благодаря которым они были запатентованы. Суд отклонил эти доводы. Что касается отключения, Суд заявил, что отключенные аспекты устройства («функции»), а не оставшееся устройство, должны использоваться без нарушения авторских прав, так что их отключение приведет к тому, что они «не будут иметь реального использования». Что касается использования за рубежом или замены, юридическим критерием, на который следует обратить внимание, было то, будет ли продукт выполнять запатентованный метод или воплощать запатентованный продукт, а не то, приведет ли использование к ответственности за нарушение авторских прав.
Лицензирование ограниченной области
Суд, судя по всему, утверждает, что LGE просто предоставила Intel лицензию на производство, использование и продажу микропроцессорной продукции. L GE прямо заявила, что никакой третьей стороне не предоставлялась лицензия на объединение лицензионных продуктов с другими продуктами; а LGE заставила Intel сообщить своим клиентам об отсутствии лицензии. Но LGE не сообщила Intel, что LGE лицензировала Intel на производство, использование и продажу микропроцессорной продукции только в области микропроцессорной продукции в сочетании с другими продуктами, лицензированными LGE (так называемыми продуктами Intel). Не было никаких явных ограничений на область использования прав Intel на производство, использование и продажу – никаких «волшебных слов». Компания LGE была близка к этому – она заявила, что не лицензирует третьи лица для объединения лицензионного продукта с другими продуктами, и требует от Intel уведомлять об этом клиентов – но LGE не смогла перейти сразу к делу и прямо отказать Intel в любой лицензии на производство микропроцессоров. продукты, которые будут сочетаться с другими продуктами. Более того, по какой-то необъяснимой причине стороны, что привело к фатальным последствиям, отметили факт существования доктрины исчерпания прав: «Несмотря на какие-либо положения об обратном, содержащиеся в настоящем Соглашении, стороны соглашаются, что ничто в нем никоим образом не ограничивает и не изменяет эффект исчерпания патентов, который в противном случае применялся бы, когда сторона по настоящему Соглашению продает любую из своих Лицензионных продуктов».
То, что это была критическая ошибка (для LGE), подтверждается окончательными заявлениями Суда в его заключении:
Таким образом, доктрина исчерпания ресурсов определяла, что Quanta могла законно делать с тем, что она купила у Intel. Непредоставление третьим лицам лицензии на объединение микропроцессорной продукции Intel с другими продуктами не имело юридического значения, поскольку доктрина исчерпания прав устраняла необходимость в такой лицензии. Купив продукцию у официального продавца, Quanta не нуждалась в лицензии.
Никаких проблем с контрактом
Суд добавил заключительное примечание, указав, что дело не поднималось и Суд не выносил решения о том, могла ли LGE обеспечить соблюдение договорных ограничений. В сноске 7 Суд прокомментировал:
Мы отмечаем, что санкционированный характер продажи компании Quanta не обязательно ограничивает другие договорные права LGE. L Жалоба GE не включает в себя иск о нарушении контракта, и мы не выражаем мнения о том, возможно ли возмещение убытков по контракту, даже если исчерпание действует для устранения патентных убытков.
Точно так же Суд ничего не сказал относительно конкретного исполнения или того, могут ли права по контракту, если таковые имеются, быть принудительно применены к Quanta.
Как работает квантовый компьютер
Он работает иначе — в результате непонятной логики. Как и обычно, он осуществляет вычисления, но в его основе лежат законы квантовой механики.
Классический мир и классическая механика детерминистичны. Это значит, что значение любого регистра памяти в компьютере всегда 0 или 1, а тарелка всегда либо целая, либо разбита.
В квантово-механической системе нет такой четкости, а есть факторы, определяющие ее суть. Правильный вопрос здесь — какова вероятность, что тарелки разбились или целы, какова вероятность, какое значение регистра 0 или 1?
Вероятность — первый важный принцип в квантовой механике. С точки зрения квантовой механики «тарелки Шредингера» одновременно и целые, и разбитые. Есть некая опасность того, что они целые, и не какая-то опасность, что разбитые. Эта неопределенность и отражение реального физического мира.
На классическом уровне неопределенность маскирует наше незнание. Например, когда мы покупаем лотерейный билет «Спортлото», у нас возникает вероятность выигрыша, потому что мы не знаем выигрышный номер.
Для классической физики лотерея — это маловероятностный процесс. Всегда можно описать движение руки, которая запускает барабан, скорость и траекторию каждого шарика. Теоретически, можно угадать выигрышный номер (хотя практически — сложно). В квантовой механике даже теоретически нельзя угадать, что произойдет в следующую секунду. Мы можем только предсказать это с точки зрения вероятности.
Второе понятие — принцип суперпозиции. Обычный бит находится только в значениях 0 или 1. В квантовых компьютерах нет обычных битов, а есть квантовые — кубиты. Квантовый бит находится в состоянии 0 или 1 с какой-то вероятностью. Кубит может находиться одновременно в этих состояниях, притом в разных комбинациях — в суперпозиции этих состояний.
Когда система (кубит) находится одновременно в состоянии 0 или 1, можно говорить только о вероятностях. Если состояний много, система одновременно находится во всех возможных состояниях, но с меньшей вероятностью для каждого. Это принципиально важно.
В классической программе в каждый конкретный момент времени каждая строка программы работает с определенной ячейкой памяти. В квантовой механике можно работать со всеми ячейками памяти одновременно.
«Память» квантового компьютера
В чем основная разница между квантовой и классической памятью компьютера? В обычном компьютере мы записываем числа в двоичном коде. Например, число 8 в двоичной системе выглядит как 00001000, и для его записи достаточно 4 битов.
В квантовых компьютерах кубиты находятся в состоянии 0 или 1 с какой-то вероятностью. Вероятность — это число. Чтобы записать одно число с бесконечной точностью, нужно бесконечное количество битов. Поэтому, в теории, один кубит — это физическая система с бесконечным количеством памяти.
На практике у методов измерения ограниченная точность. Будем считать, что она соответствует обычной машинной (float). Получается, что кубит содержит два числа: вероятности, что кубит в состоянии 0 и в состоянии 1.
Примечание: для упрощения мы игнорируем, что сумма вероятностей кубита в состоянии 0 и 1 должна равняться единице. Основной вывод не зависит от упрощения.
Один кубит соответствует двум вещественным числам (float). Это большой выигрыш, потому что для двух вещественных чисел на обычном компьютере нужно два машинных слова — 128 обычных битов, а мы обошлись одним квантовым. Может показаться, что квантовый компьютер в 128 раз лучше обычного. Но это не так.
Квантовый компьютер экспоненциально лучше обычного.
Один кубит это 2 вещественных числа. Два кубита — 4 вещественных числа. Но восемь кубитов это 256 потенциальных конфигураций восьми нулей и единиц — два в восьмой степени.
Для одного кубита выигрыш в 128 раз, а для восьми кубитов он существенно больше — 256*128. Система n кубитов в памяти эквивалентна
Емкость квантовой памяти растет в геометрической прогрессии.
Память обычного ноутбука эквивалентна 15 кубитам, 40 кубитов равны памяти самых мощных вычислительных центров, а 50-60 кубитов превышают суммарную память всех вычислительных центров всего мира.
Три-четыре кубита эквивалентны увеличению обычной классической памяти в 10-20 раз. Квантовая память значительно более емкая, чем любые другие классические способы записи информации. В этом главный потенциал квантовых вычислений.
Но экспоненциальный рост емкости квантовой памяти вызывает проблему размерности. Из-за проклятия размерности сложно описать такую квантовую систему на классическом компьютере — требуется все больше и больше памяти.
Какие задачи может решить квантовый компьютер
Если квантовый мир работает на уровне неопределенности, как вообще возможно что-то посчитать? У квантовой механики вероятностная природа, а нам нужен точный ответ. Как все будет работать, если нужно просто перемножить два числа?
Объясню на примере задач класса NP, то есть задач разрешимости, решение которых невозможно найти за полиномиальное время — во всяком случае, в предположении
. Однако, правильность решения за полиномиальное время проверить можно. Это похоже на взлом закрытого замка: мы не умеем пользоваться отмычками, но можем быстро проверить любой ключ, если он есть.
Благодаря принципу суперпозиции квантовая система находится сразу во всех состояниях и ищет лучший вариант. Однозначного ответа система не дает, но повышает вероятность того, что лучший вариант является решением. Когда система остановится на каком-то решении, мы сможем довольно быстро проверить его на правильность.
Если окажется, что ответ неверен, запустим квантовый компьютер еще раз. Вероятность получения правильного ответа больше 50%, а часто гораздо больше. Значит, за 2-4 запуска квантового алгоритма мы получим правильный ответ.
У нас не будет однозначного ответа, а только вероятность получить правильный ответ. Но эта вероятность весьма высока. Фактически, мы гадаем, но не на кофейной гуще, а на научной. За несколько итераций мы найдем ответ и проверим, что он правильный.
Параметры квантового компьютера
У классического компьютера два параметра качества: объем памяти и количество операций. С обычным компьютером мы по умолчанию предполагаем, что у нас есть доступ ко всем ячейкам памяти для записи и чтения.
В квантовом случае есть три параметра.
Объем памяти или количество кубит. Чем больше памяти, тем лучше? Для квантового компьютера нет — когда мы увеличиваем количество кубит, растет сложность квантовой системы. Систему становится тяжело поддерживать в изолированном состоянии.
Время работы или количество последовательных операций (когерентность). Систему обязательно требуется поддерживать в изолированном состоянии — в физике это называется когерентность. Если позволить квантовой системе взаимодействовать с окружающей средой, то это разрушит состояние ячеек квантовой памяти. Вместо нулей и единиц будет просто шум.
Мы пытаемся поддерживать систему изолированной как можно дольше. Но чем больше квантовых операций проводим, тем больше времени на них уходит, а значит все сложнее поддерживать систему в изолированном состоянии.
Примечание: здесь количество операций не в секунду, а за все время работы системы.
Возникает парадокс: чем больше кубитов, тем меньше операций доступно. Поэтому время, в течении которого можно держать систему изолированной и произвести некоторое количество операций, это важный параметр.
Представьте обычный компьютер, в котором нет охлаждения. Пока компьютер не перегреется, у него есть время что-то посчитать, а потом он отключается. Примерно то же самое происходит в квантовом компьютере. В нем нет «вентилятора»: чем больше работает, тем больше нагревается, пока не разрушится. Поэтому есть ограничение на количество операций.
Универсальность. В классическом компьютере доступны любые операции: умножение, деление, вычитание. Теоретически, в квантовом тоже. Но на практике, существенно проще проводить операции только с соседними кубитами, которые расположены на прямой, в прямоугольном или квадратном массиве. Для работы со всеми кубитами требуется очень сложная архитектура — на практике пока так не умеют.
Все три направления конфликтуют друг с другом. Мы можем улучшить одно, но это произойдет за счет ухудшения двух других. Сейчас, когда технология в зачаточном состоянии, можно выделить несколько прототипных платформ, и каждая из них пытается улучшить показатели одного направления за счет двух других.
Проблемы квантовых компьютеров
При проектировании и эксплуатации квантовых компьютеров перед учеными и инженерами возникает огромное количество проблем, которые на сегодняшний день решаются с переменным успехом. Согласно исследованию (и еще вот тут) можно выделить следующий ряд проблем:
Давайте организуем все основные проблемы в три большие группы и рассмотрим поподробнее каждую из них:
Квантовые алгоритмы
Как уже говорилось, обычные алгоритмы, основанные на бинарной логике, неприменимы к квантовому компьютеру, использующему квантовую логику (квантовые вентили). Для него пришлось придумывать новые, в полной мере использующие потенциал, заложенный в квантовую природу вычислений.
Наиболее известные на сегодняшний день алгоритмы это:
В отличие от классических, квантовые компьютеры не универсальны.
До сих пор найдено лишь небольшое число квантовых алгоритмов.(С)
Спасибо oxoron за ссылку на Quantum Algorithm Zoo, место, где, по уверениям автора (“Stephen Jordan”), собраны и продолжают собираться лучшие представители квантово-алгоритмического мира.
В данной статье мы не будем подробно разбирать квантовые алгоритмы, в Сети много прекрасных материалов на любой уровень сложности, но кратко пробежаться по трем самым известным все-таки надо.
Архитектура процессора
В теории мы строим и оперируем схемами из десятков запутанных кубитов, в реальности же все сложнее. Все существующие квантовые чипы (процессоры) построены таким образом, что обеспечивают безболезненное запутывание одного кубита только со своими соседями, которых не больше шести.
Если же нам надо запутать 1-й кубит, скажем, с 12-м, то нам придется строить цепочку дополнительных квантовых операций, задействовать дополнительные кубиты и прочее, что увеличивает общий уровень ошибок. Да, и не забывайте про время декогеренции, возможно к тому моменту, когда вы закончите связывать кубиты в нужную вам схему, время закончится и вся схема превратится в симпатичный генератор белого шума.
Также не забывайте, что архитектура у всех квантовых процессоров разная, и программу, написанную в эмуляторе в режиме “связность всех со всеми” нужно будет “перекомпилировать” в архитектуру конкретного чипа. Есть даже специальные программы оптимизаторы для выполнения этой операции.
Максимальная связность и максимальное количество кубитов для тех же топовых чипов:
И, для сравнения, таблица с данными предыдущего поколения процессоров. Сравните количество кубитов, время декогеренции и процент ошибок с тем, что мы имеем сейчас у нового поколения. Все-таки прогресс потихоньку, но движется.
Алгоритм Гровера
Алгоритм Гровера — квантовый алгоритм решения задачи перебора, то есть нахождения решения уравнения F(X) = 1, где F — есть булева функция от n переменных. Был предложен американским математиком Ловом Гровером в 1996 году.
Алгоритм Гровера может быть использован для нахождения медианы и среднего арифметического числового ряда. Кроме того, он может применяться для решения NP-полных задач путем исчерпывающего поиска среди множества возможных решений. Это может повлечь значительный прирост скорости по сравнению с классическими алгоритмами, хотя и не предоставляя «полиномиального решения» в общем виде.(С)
Подробнее можно почитать вот тут, или тут. Еще вот тут есть хорошее объяснение алгоритма на примере ящиков и мяча, но, к сожалению, по независящим ни от кого причинам, данный сайт у меня из России не открывается. Если у вас этот сайт тоже заблокирован, то вот краткая выжимка:
Алгоритм Гровера. Представьте, что у вас имеется N штук пронумерованных закрытых коробок. Они все пустые кроме одной, в которой находится мячик. Ваша задача: узнать номер коробки, в которой находится мячик (этот неизвестный номер часто обозначают буквой w).
Как решать эту задачу? Самым тупым способом, по очереди открывать коробки, и рано или поздно вы наткнетесь на коробку с мячиком. А сколько в среднем коробок нужно проверить до того, как будет обнаружена коробка с мячиком? В среднем нужно открыть примерно половину коробок N/2. Главное здесь то, что если мы увеличим число коробок в 100 раз, то в те же 100 раз увеличится и среднее число коробок, которые нужно открыть до того, как будет найдена коробка с мячиком.
Теперь сделаем ещё одно уточнение. Пусть мы не сами открываем коробки руками и проверяем наличие мячика в каждой, а имеется некий посредник, назовем его Оракул (Oracle). Мы говорим Оракулу — «проверь коробку номер 732», и Оракул честно проверяет и отвечает «в коробке номер 732 мячика нет». Теперь вместо слов о том, сколько коробок нам нужно в среднем открыть, мы говорим «сколько раз в среднем мы должны обратиться к Оракулу для того, чтобы найти номер коробки с мячиком»
Оказывается, что если перевести эту задачу с коробками, мячиком и Оракулом на квантовый язык, то выходит замечательный результат: для поиска номера коробки с мячиком среди N коробок нам нужно потревожить Оракула всего примерно SQRT(N) раз!
То есть сложность задачи перебора используя алгоритм Гровера снижается в квадратный корень раз.
Quanta Shanghai Manufacturing City (QSMC)
Shanghai, China (QSMC)
This was the first mainland China plant built by Quanta Computer in December 2000 to focus on OEM and ODM production and currently employs nearly 30,000 people. Huangjian Tang, Quanta’s Chairman for China, manages seven major plants, F1 to F7, two large warehouses, H1 and H2, and the Q-BUS Research and Development facility.
Chongqing, China (QCMC)
Constructed in April 2010. Quanta Computer invested and built a plant in Chongqing, China, the third plant built by Quanta Computer in China.
Алгоритм Дойча-Йожи
Еще можно почитать тут. Более простое объяснение:
Алгоритм Дойча (Дойча — Йожи) основан на переборе, но позволяет делать его быстрее обычного. Представьте, что на столе лежит монета и необходимо узнать фальшивая ли она или нет. Для этого нужно дважды посмотреть на монету и определить: «орел» и «решка» – настоящая, два «орла», две «решки» — фальшивая. Так вот, если использовать квантовый алгоритм Дойча, то это определение можно сделать одним взглядом – измерением. ( С)
Компания также производит устройство Steam Deck
Резюме
Квантовые компьютеры и квантовые вычисления — очень многообещающая, очень молодая и пока малоприменимая в промышленном плане область информационных технологий.
Развитие квантовых вычислений позволит (когда-нибудь) решать задачи:
Основные проблемы при создании и эксплуатации квантовых компьютеров:
Состояние дел на текущий момент:
Что может помочь:
На мой взгляд (исключительно личное мнение), в текущей научной парадигме знаний мы не добьемся значительных успехов в развитии квантовых технологий, тут нужен качественный прорыв в какой-либо области фундаментальной или прикладной науки, который даст толчок новым идеям и методам.
Ну а пока — нарабатываем опыт в квантовом программировании, собираем и создаем квантовые алгоритмы, тестируем идеи и прочее и прочее. Ждем прорыва.
Пути решения проблем
Для решения вышеуказанных проблем, в настоящее время используют следующие подходы и методы:
Также проводятся исследования, направленные на увеличение времени декогеренции, на поиск новых (и доработку известных) физических реализаций квантовых объектов, на оптимизацию схем коррекции и прочее и прочее. Прогресс есть (посмотрите выше на характеристики более ранних и топовых на сегодняшний день чипов), но пока идет медленно, очень очень медленно.
Сравнение квантового компьютера и обычного
Давайте теперь сравним обычный компьютер и квантовый.
В обычном компьютере это бит. Хорошо нам знакомый насквозь детерминированный бит. Может принимать значения либо 0 либо 1. Он прекрасно справляется с ролью логической единицы для обычного компьютера, но совершенно не подходит для описания состояния квантового объекта, который, как мы уже говорили, в дикой природе находится в суперпозиции своих граничных состояний.
На текущем технологическом уровне развития физической реализацией бита для обычного компьютера выступает полупроводниковый транзистор, для квантового, как мы уже говорили, любой квантовый объект. В следующем разделе мы поговорим о том, что сейчас используется в качестве физических носителей кубитов.
Для обычного компьютера это электрический ток — уровни напряжения, наличие или отсутствие тока, и т.д., для квантового — то самое состояние квантового объекта (направление поляризации, спин, и т.д.), которое может находится в состоянии суперпозиции.
Для реализации логических схем на обычном компьютере используются всем нам хорошо известные логические операции, для операций над кубитами пришлось придумывать совершенно иную систему операций, называемую квантовыми вентилями. Вентили бывают однокубитные и двухкубитные, в зависимости от того, над сколькими кубитами производится преобразование.
Примеры квантовых вентилей:
Есть понятие универсального набора вентилей, которых достаточно для выполнения любого квантового вычисления. Например, универсальным является набор, включающий вентиль Адамара, вентиль фазового сдвига, вентиль CNOT и вентиль π⁄8. С их помощью можно выполнить любое квантовое вычисление на произвольном наборе кубитов.
В этой статье мы не будем детально останавливаться на системе квантовых вентилей, более подробно про них и логические операции над кубитами можно почитать, например, вот тут. Главное, что надо запомнить:
Один транзистор нам совершенно бесполезен, чтобы производить вычисления нам надо соединить много транзисторов между собой, то есть создать полупроводниковый чип из миллионов транзисторов, на которых уже строить логические схемы, АЛУ и, в конечном счете, получить современный процессор в его классическом виде.
Один кубит нам тоже совершенно бесполезен (ну если только в академическом плане),
чтобы производить вычисления нам нужна система кубитов (квантовых объектов)
которая, как мы уже говорили, создается при помощи запутывания кубитов между собой так, чтобы изменения в их состояниях происходили согласованно.
Стандартные алгоритмы, которые накопило человечество к текущему моменту, совершенно не подходят для реализации на квантовом компьютере. Да в общем-то и незачем. Квантовые компьютеры, основанные на вентильной логике над кубитами, требуют создания совершенно иных алгоритмов, квантовых алгоритмов. Из наиболее известных квантовых алгоритмов можно выделить три:
И самое главное отличие — это принцип работы. У стандартного компьютера это цифровой, жестко детерминированный принцип, основанный на том, что если мы задали какое-то начальное состояние системы и пропустили его через заданный алгоритм, то результат вычислений будет один и тот же, сколько бы раз мы это вычисление не запускали. Собственно, такое поведение это именно то, что мы от компьютера и ждем.
Квантовый компьютер работает на аналоговом, вероятностном принципе. Результат работы заданного алгоритма на заданном начальном состоянии представляет собой выборку из вероятностного распределения конечных реализаций алгоритма плюс возможные ошибки.
Такая вероятностная природа квантовых вычислений обусловлена самой вероятностной сутью квантового мира. “ Бог не играет в кости со вселенной”, — говорил старик Эйнштейн, но все эксперименты и наблюдения пока (в текущей научной парадигме) подтверждают обратное.
Физические реализации кубитов
Как мы уже говорили, кубит может быть представлен квантовым объектом, то есть таким физическим объектом, который реализует описанные выше квантовые свойства. То есть грубо говоря, любой физический объект, в котором есть два состояния и эти два состояния находятся в состоянии суперпозиции можно использовать для построения квантового компьютера.
“Если мы умеем помещать атом в два разных уровня и управлять ими, то вот вам и кубит. Если мы можем это сделать с ионом, — кубит. С током то же самое. Если мы запускаем его по часовой стрелке и против часовой стрелки одновременно, вот вам кубит.” (С)
Из всего этого многообразия наиболее проработанным является первый метод получения кубитов, основанный на сверхпроводниках. Google, IBM, Intel и прочие ведущие игроки используют именно его для построения своих систем.
Ну и еще почитайте обзор возможных физических реализаций кубитов от Andrew Daley,2014.
Ошибки
Как мы уже говорили, квантовые процессы и квантовые вычисления имеют вероятностную природу, мы не можем быть уверены на 100% ни в чем, а только с какой-то вероятностью. Ситуация усугубляется еще и тем, что квантовые вычисления подвержены ошибкам. Основные типы ошибок при квантовых вычислениях это:
Ошибки, связанные с декогерентностью, возникают сразу же, как только мы запутали наши кубиты и начали производить вычисления. Чем больше кубитов мы запутали, тем сложнее система, и тем легче ее разрушить. Низкотемпературные саркофаги, защищенные камеры, все эти технологические ухищрения как раз направлены на то, чтобы снизить число ошибок и продлить время декогеренции.
Вычислительные ошибки гейтов — любая операция (вентиль) над кубитами может с некоторой вероятностью завершиться с ошибкой, а нам для реализации алгоритма нужно выполнить сотни вентилей, вот и представьте, что мы получим в конце выполнения нашего алгоритма. Классический вариант ответа на вопрос — “Какова вероятность встретить динозавра в лифте?” — 50х50, или встретишь или нет.
Проблема еще усугубляется тем, что стандартные методы коррекции ошибок (дублирование вычислений и усреднение) в квантовом мире не работают из-за теоремы о запрете клонирования. Для коррекции ошибок в квантовых вычислениях пришлось придумать квантовые же методы коррекции. Грубо говоря мы берем N обычных кубитов и делаем из них 1 логический кубит с меньшим уровнем ошибок.
Но тут возникает другая проблема — общее количество кубитов. Смотрите, допустим у нас есть процессор со 100 кубитами, из которых 80 кубитов заняты коррекцией ошибок, тогда нам для вычислений остается только 20.
Ошибки считывания финального результата — как мы помним, результат квантовых вычислений нам представлен в виде вероятностного распределения ответов. Но считывание финального состояния тоже может завершиться с ошибкой.
На том же сайте есть сравнительные таблицы процессоров по уровням ошибок. Для сравнения возьмем те же процессоры, что и в предыдущем примере — IBM IBM Q System One и Google Sycamore:
Здесь фиделити — мера схожести двух квантовых состояний. Величину ошибки можно грубо представить как 1-Fidelity. Как мы видим, ошибки на 2-х кубитных гейтах и ошибки считывания являются главным препятствием к выполнению сложных и длинных алгоритмов на существующих квантовых компьютерах.
Еще можно почитать роадмап от 2016 года от NQIT по решению задачи коррекции ошибок.
Что значит квантовая революция для IT-индустрии
Пока что ничего. Мы находимся в так называемой эре NISQ — Noisy Intermediate-Scale Quantum technology. Это значит, что сейчас нет таких квантовых устройств, которые могли бы соперничать с классическими компьютерами. Пока нельзя создать квантовую систему, которая по всем параметрам превзойдет классическую: достаточно небольшую, универсальную и изолированную. Пока получаются только системы, которые выполняют узкоспециальные задачи определенного сорта лучше, чем вычислительный кластер. Квантовые технологии пока непрактичны. Хотелось бы использовать этот огромный потенциал для своих ежедневных задач, но неизвестно, как это сделать.
У квантовых технологий огромный «подрывной потенциал». Если научиться хорошо решать хотя бы одну из оптимизационных задач, о которых говорилось выше, это изменит одну конкретную индустрию, как минимум. Надеюсь, что через 5-10 лет в некоторых направлениях ситуация изменится.
Многие компании создают прообразы настоящих квантовых компьютеров — они уже что-то умеют делать, но пока этого недостаточно.
В Сколтехе мы пытаемся ответить на главный вопрос — как и для чего можно использовать квантовый компьютер. С моими коллегами Владимиром Антоновым и Олегом Астафьевым трудимся над проектом, в рамках которого работаем над маленьким квантовым компьютером. К сожалению, часть архитектурных и дизайнерских вопросов еще не решены, потому что мы все еще не уверены, какие именно задачи должен будет решать этот компьютер. Если этот вопрос вам интересен, приглашаю его обсудить.
То, с каким интересом участники HighLoad++ восприняли доклад о квантовых компьютерах и АЭС, натолкнуло нас на мысль уделить большее внимание подобным темам на наших конференциях. Поэтому на РИТ++ в мае в онлайне у нас будут секции научпопа и применения IT в смежных областях. И это только малая часть новинок фестиваля «Российские интернет-технологии» — подробнее смотрите на сайте и в рассылке.
Ведущие игроки
Слайды для этого раздела взяты из статьи Квантовый компьютер: большая игра на повышение. Лекция в Яндексе, от научного сотрудника Российского квантового центра Алексея Фёдорова. Позволю себе прямые цитаты:
Все технологически успешные страны в данный момент активно занимаются развитием квантовых технологий. В эти исследования вкладывается огромное количество средств, создаются специальные программы поддержки квантовых технологий.
В квантовой гонке участвуют не только государства, но и частные компании. Суммарно Google, IBM, Intel и Microsoft вложили около 0,5 млрд долларов в развитие квантовых компьютеров за последнее время, создали крупные лаборатории и исследовательские центры.
На Хабре и в Сети есть множество статей, например, вот, вот и вот, в которых текущее состояние дел с развитием квантовых технологий в разных странах рассматривается более подробно. Для нас сейчас главное, что все ведущие технологически развитые страны и игроки вкладывают огромные средства в исследования в этом направлении, что дает надежду на выход из текущего технологического тупика.
Дисклеймер
Автор не является специалистом в квантовых вычислениях, и целевая аудитория статьи — такие же ИТ-шники, не квантовые специалисты, которые тоже хотят собрать в голове картинку под названием “Как работают квантовые компьютеры”. Из-за этого многие понятия в статье сознательно упрощены для лучшего понимания квантовых технологий на “базовом” уровне, но без совсем уж сильного упрощения с потерей информативности и адекватности.
В статье, в некоторых местах используются материалы из других источников, список которых приведен в конце статьи. Везде где это было возможно, вставлены прямые ссылки и указания на оригинал текста, таблицы или рисунка. Если где-то что-то (или кого-то) забыл, пишите — поправлю.
Направления развития
На текущий момент (могу ошибаться, поправьте) основные усилия (и более-менее значимые результаты) у всех ведущих игроков сосредоточены на двух направлениях:
Прочие же вектора развития, которые дает нам квантовая физика, такие как:
безусловно тоже в списке направлений для исследований, но каких-то более-менее значимых результатов в настоящее время вроде как еще нет.
Дополнительно можно почитать дорожную карту развития квантовых технологий, ну и гуглите “развитие квантовых технологий”, например, вот, вот и вот.
Алгоритм Шора.
Наиболее известным квантовым алгоритмом является алгоритм Шора (придумал в 1994 году английский математик Питер Шор), который нацелен на решение задачи разложения чисел на простые множители (задача факторизации, дискретного логарифма).
Именно этот алгоритм приводят в пример, когда пишут о том, что ваши банковские системы и пароли скоро будут взломаны. Учитывая, что длина используемых на сегодняшний день ключей не менее чем 2048 бит, время для шапочки еще не пришло.
На сегодняшний день результаты более чем скромные. Лучшие результаты факторизации с помощью алгоритма Шора — числа 15 и 21, что сильно меньше, чем 2048 бит. Для остальных результатов из таблицы применялся иной алгоритм расчетов, но даже лучший по этому алгоритму результат (291311) сильно далек от реального применения.
Подробнее про алгоритм Шора можно почитать, например, вот тут. Про практическую реализацию — тут.
Одна из текущих оценок сложности и необходимой мощности для факторизации числа из 2048 бит это компьютер с 20 миллионами кубитов. Спим спокойно.
Немного об эмуляции квантовых компьютеров
Квантовые вычисления можно эмулировать на обычном компьютере. Ведь действительно, смотрите:
Для сравнения, Summit (Top-1 из Top-500) несет на себе всего 2.8 Петабайт памяти.
Текущий рекорд симуляций — 49 кубит поставленный в прошлом году на крупнейшем китайском суперкомпьютере (Sunway Taihu Light)
Предел симуляции квантового компьютера на классических системах обусловлен количеством оперативной памяти необходимой для хранения состояния кубитов.
По операциям — для точной эмуляции схемы на 49 кубитов из каких-то 39 “тактов” (независимых слоев вентилей) потребовалось 2^63 комплексных умножений — 4 Пфлопс суперкомпьютера на протяжении 4 часов
Эмуляция квантового компьютера из 50+ кубит на классических системах считается невыполнимой за разумное время. В том числе из-за этого факта Google использовал для своего эксперимента с квантовым превосходством процессор с 53-мя кубитами.
Прототипы
Выделю три прототипа, над которыми работают крупные компании. Google, IBM, Intel, Microsoft вкладываются в развитие квантовых компьютеров. Все вместе они вложили больше 500 млн долларов в разработку, лаборатории и исследовательские центры.
Первые классические компьютеры занимали целые комнаты, работали на вакуумных лампах и так нагревались, что для них требовалось отдельное мощное охлаждение. Квантовые компьютеры на них очень похожи — это шкафы высотой по 3 метра, большую часть которых занимают системы охлаждения. Компьютеры охлаждают до температуры близкой к абсолютному нулю, чтобы квантовые системы могли выполнять свои вычислительные функции.
Универсальные квантовые компьютеры
Это универсальные машины от Google и IBM с памятью примерно 20 кубит. Они выполняют любые операции, потому что полная универсальность доступна с относительно небольшим числом кубитов, дальше возникает практическое ограничение. Возможно, через год люди научатся работать с 30-40 кубитами.
Универсальные квантовые компьютеры способны реализовать произвольные квантовые алгоритмы, например, алгоритмы Шора и Гровера.
Современная криптография основана на разложении чисел на простые множители. В настоящее время неизвестно, существует ли полиномиальный не квантовый алгоритм для задачи факторизации. Однако 25 лет назад Питер Шор опубликовал статью, в которой объяснил, как квантовый компьютер может разложить очень большое целое число на простые множители.
Квантовый алгоритм компьютера работает не детерминистически, а угадывает простые множители с вероятностью правильного ответа больше 50% и находит простые множители экспоненциально быстрее, чем обычный.
С распространением квантовых компьютеров все современные методы шифрования окажутся уязвимы, и это основная мотивация в разработке квантовых алгоритмов последние 25 лет. Но пока применить метод Шора пока сложно, потому что алгоритм требует большой квантовый компьютер. Маленькие решают задачу только для небольших чисел.
Другим примером, демонстрирующим потенциал квантовых вычислений, является Алгоритм Гровера для задачи перебора или поиска решения уравнения
какая-то сложная функция.
Кроме упомянутых выше алгоритмов Шора и Гравера есть большое количество других квантовых алгоритмов. Любая физическая система хочет перейти в состояние равновесия — квантовая не исключение. С научной точки зрения правильнее говорить не о равновесии, а об основном состоянии системы. Классический аналог — состояние покоя. Система всегда стремится перейти в состояние покоя с минимальной энергией. В терминах вычислительных задач — это оптимизационная задача минимизации энергии. Квантовый компьютер как раз может решать подобные задачи.
Вся область применимости квантовых алгоритмов и компьютеров пока не понятна. Но уже есть десятки различных оптимизационных задач, с которыми квантовые компьютеры и алгоритмы могут справиться, и находятся новые.
Квантовые симуляторы ограниченной универсальности
Это другое направление: универсальность ограничивается, но поддерживается изоляция (когерентность). Это компьютеры на рубеже в 50-70 кубитов, что в смысле памяти уже больше, чем любой суперкомпьютер.
На этой границе возможности специализированного квантового компьютера превосходят возможности классического — возникает квантовое превосходство. Это значит, что квантовые компьютеры могут решать некоторые задачи, на которые у обычных (даже суперкомпьютеров) уйдут десятки, сотни или тысячи лет.
В октябре 2019 Google заявил, что достиг квантового превосходства. Новость появилась во всех ведущих газетах и журналах, соответствующая научная статья была опубликована в Nature. Тематические статьи выпустили многие газеты, даже New York Times и Wall Street Journal, которые далеки от науки.
В реальности Google разработал квантовый процессор с ограниченной универсальностью. У него достаточно большое количество кубитов, и он может выполнять некоторые узкие задачи лучше, чем любой классический компьютер. Другой вопрос, что это очень узкие и искусственные задачи.
Некогерентные процессоры с числом кубитов от 2 тысяч
Если забыть про универсальность и когерентность, можно добавлять 2 или даже 3-4 тысячи кубитов. Этим направлением занимается компания D-Wave из Канады. У них есть процессоры с тысячей кубитов, но без когерентности.
Возможные области применения квантовых компьютеров
Одна большая потенциальная область применения — это криптография. Вторая — оптимизационные задачи, которые возникают в самых разных областях.
Наука. Квантовые вычисления могут помочь предсказывать поведение элементарных частиц, моделировать молекулы ДНК или разрабатывать новые лекарственные препараты. Например, квантовые вычисления пытаются применять в фармакологии. Для этого нужно понимать, какую форму принимают разные протеины (про которые можно думать, как про микроскопические квантовые объекты). Мы не знаем, как они себя будут вести, но самый простой способ это понять — симулировать их поведение на квантовом компьютере. У этой научной задачи огромный бизнес-потенциал: новые лекарства, добавки, антибиотики.
Новые материалы. В науке о материалах главное — понять взаимодействие атомов, что можно смоделировать на квантовых компьютерах. Это тоже научная задача, но создав новый материал, его уже можно продавать.
Машинное обучение и искусственный интеллект. Машинное обучение — сложный процесс, который требует огромного количества вычислений. Пока здесь нет практической пользы от квантовых компьютеров, потому что они сейчас не на том уровне развития. Но в перспективе, квантовые компьютеры могут ускорить стандартные алгоритмы. В некоторых случаях это выглядит революционно, потому что можно в десятки раз сократить время обучения нейросети.
Транспорт, энергетика, логистика. В этих сферах много оптимизационных задач. Например, в энергетике главная проблема — распределение электрической энергии по стране. Цена на электричество в разных регионах отличается, при этом во время передачи часть энергии теряется, а с ней и прибыль. Чтобы заработать больше денег, бизнес пытается оптимизировать передачу. Это одна из тех задач, которая находится в классе NP. Сложно найти правильное решение, но квантовый компьютер может помочь.
Бизнес-приложения. В бизнесе квантовыми вычислениями занимаются только большие компании, корпорации. У гигантов есть деньги и ресурсы, например, у Google, D-Wave или IBM (лидер области с большими наработками).
На сайте компании D-Wave написано, что уже в 150 бизнес-приложениях используются квантовые вычисления. I BM выпустил брошюру, в которой обсуждается, что можно сделать с помощью квантового компьютера. Это десятки различных индустрий и потенциально сотни бизнес-решений. Так все выглядит на бумаге.
В реальности все немного иначе. Развитие технологий сейчас пока не на том уровне, чтобы применять их на практике.
Quantum information processing
Computer engineers typically describe a modern computer’s operation in terms of classical electrodynamics.
Within these “classical” computers, some components (such as semiconductors and random number generators) may rely on quantum behavior, but these components are not isolated from their environment, so any quantum information quickly decoheres.
While programmers may depend on probability theory when designing a randomized algorithm, quantum mechanical notions like superposition and interference are largely irrelevant for program analysis.
Quantum programs, in contrast, rely on precise control of coherent quantum systems. Physicists describe these systems mathematically using linear algebra. Complex numbers model probability amplitudes, vectors model quantum states, and matrices model the operations that can be performed on these states. Programming a quantum computer is then a matter of composing operations in such a way that the resulting program computes a useful result in theory and is implementable in practice.
The state of this one-qubit quantum memory can be manipulated by applying quantum logic gates, analogous to how classical memory can be manipulated with classical logic gates. Одним из важных вентилей как для классических, так и для квантовых вычислений является вентиль НЕ, который может быть представлен матрицей
Математически применение такого логического элемента к вектору квантового состояния моделируется с помощью матричного умножения. Таким образом
Математика однокубитных вентилей может быть расширена для работы с многокубитной квантовой памятью двумя важными способами. Один из способов — просто выбрать кубит и применить этот вентиль к целевому кубиту, оставив остальную часть памяти незатронутой. Другой способ — применить гейт к цели, только если другая часть памяти находится в желаемом состоянии. Эти два варианта можно проиллюстрировать на другом примере. Возможные состояния двухкубитной квантовой памяти:
Как математическое следствие этого определения, , , , и . Другими словами, CNOT применяет вентиль НЕ (как раньше) ко второму кубиту тогда и только тогда, когда первый кубит находится в состоянии . Если первый кубит равен , ни с одним кубитом ничего не делается.
Подводя итог, квантовые вычисления можно описать как сеть квантовых логических элементов и измерений. Однако любое измерение можно отложить до конца квантовых вычислений, хотя эта отсрочка может потребовать вычислительных затрат, поэтому большинство квантовых схем изображают сеть, состоящую только из квантовых логических элементов и без каких-либо измерений.
Существует ряд моделей вычислений для квантовых вычислений, отличающихся основными элементами, на которые разлагаются вычисления.
Квантовая схема, реализующая вентиль Тоффоли из более примитивных вентилей
Массив квантовых вентилей разбивает вычисления на последовательность квантовых вентилей размером в несколько кубитов. Квантовые вычисления можно описать как сеть квантовых логических элементов и измерений. Однако любое измерение можно отложить до конца квантовых вычислений, хотя эта отсрочка может потребовать вычислительных затрат, поэтому большинство квантовых схем изображают сеть, состоящую только из квантовых логических элементов и без каких-либо измерений.
Любое квантовое вычисление (которое в приведенном выше формализме представляет собой любую унитарную матрицу размера по кубитам) может быть представлено как сеть квантовых логических элементов из довольно небольшого семейства элементов. Выбор семейства вентилей, обеспечивающий такую конструкцию, известен как универсальный набор вентилей, поскольку компьютер, который может запускать такие схемы, является универсальным квантовым компьютером. Один общий такой набор включает в себя все однокубитные вентили, а также вентиль CNOT сверху. Это означает, что любые квантовые вычисления могут быть выполнены путем выполнения последовательности однокубитных вентилей вместе с вентилями CNOT. Хотя этот набор вентилей бесконечен, его можно заменить конечным набором вентилей, обратившись к теореме Соловея-Китаева.
Квантовые вычисления на основе измерений
Квантовый компьютер, основанный на измерениях, разлагает вычисления на последовательность измерений состояния Белла и однокубитных квантовых вентилей, применяемых к сильно запутанному начальному состоянию (состоянию кластера), используя метод, называемый телепортацией квантовых вентилей.