К ленте · Россия

РоссияСтатьяИсследования

СПОСОБ ОПТИМИЗАЦИИ РАБОТЫ КВАНТОВЫХ ВЫЧИСЛИТЕЛЕЙ

[389] Заявленное решение относится к области квантовых вычислений. Способ оптимизации работы квантового вычислителя содержит этапы, на которых: a) получают запрос на решение NP-сложной задачи, b) преобразуют ее в форму, для решения на квантовом вычислителе, c) подбирают тестовую NP-задачу, эквивалентную преобразованной сложной задаче, d) выполняют тестовую задачу на квантовом вычислителе, e) проверяют правильность выполнения тестовой задачи на квантовом вычислителе, находя проверочное решение тестовой задачи на классическом вычислителе и сравнивают результаты вычислений, f) оценивают эффективность выполнения тестовой задачи в соответствии с критериями качества, g) корректируют управляющие параметры квантового вычислителя при оценке эффективности ниже порогового значения, повторяют этапы d)-f) до получения оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой задачи превышает пороговое значение, h) выполняют сложную задачу на квантовом вычислителе с применением оптимальных значений управляющих параметров квантового вычислителя. Технический результат - проверка правильности решения сложных задач, оптимизация по точности и скорости вычислений. 7 з.п. ф-лы, 3 ил.

СПОСОБ ОПТИМИЗАЦИИ РАБОТЫ КВАНТОВЫХ ВЫЧИСЛИТЕЛЕЙ

Выданный патент: RU2870265C1 Дата публикации: 2026-09-18 Заявитель / патентообладатель: Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") (RU) Классификация: G06N10/60 G06N10/60

Реферат [389] Заявленное решение относится к области квантовых вычислений. Способ оптимизации работы квантового вычислителя содержит этапы, на которых: a) получают запрос на решение NP-сложной задачи, b) преобразуют ее в форму, для решения на квантовом вычислителе, c) подбирают тестовую NP-задачу, эквивалентную преобразованной сложной задаче, d) выполняют тестовую задачу на квантовом вычислителе, e) проверяют правильность выполнения тестовой задачи на квантовом вычислителе, находя проверочное решение тестовой задачи на классическом вычислителе и сравнивают результаты вычислений, f) оценивают эффективность выполнения тестовой задачи в соответствии с критериями качества, g) корректируют управляющие параметры квантового вычислителя при оценке эффективности ниже порогового значения, повторяют этапы d)-f) до получения оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой задачи превышает пороговое значение, h) выполняют сложную задачу на квантовом вычислителе с применением оптимальных значений управляющих параметров квантового вычислителя. Технический результат - проверка правильности решения сложных задач, оптимизация по точности и скорости вычислений. 7 з.п. ф-лы, 3 ил.

Описание [1] ОБЛАСТЬ ТЕХНИКИ [2] [0001] Заявленное решение относится к области квантовых вычислений, а именно к тестированию и калибровке квантовых вычислителей с помощью тестовых задач. [3] УРОВЕНЬ ТЕХНИКИ [4] [0002] Современные квантовые вычислители обладают значительным потенциалом для эффективного решения вычислительных задач повышенной сложности, в частности NP-сложных задач. Такие задачи характеризуются высокой степенью вычислительной трудности, обусловленной необходимостью перебора огромного количества вариантов для нахождения оптимального решения. [5] [0003] Однако успешное применение специализированных вычислительных устройств, использующих принципы квантовой механики, сопряжено с рядом серьезных технических трудностей. Одной из важнейших проблем является необходимость тщательной настройки многочисленных управляющих параметров квантовых вычислителей, влияющих на точность, скорость и надежность получаемого решения. [6] [0004] Из предшествующего уровня техники известен патент US 10872021 B1 (Rigetti & Со, Inc., 22.12.2020), раскрывающий технологию управления квантовой вычислительной системой, включающую одновременное выполнение пользовательской программы на квантовом вычислителе и программы аппаратного тестирования. Тестирование осуществляется путем пошаговой реализации набора действий - выделения тестовой области (тестового набора кубитов) в системе квантовых вычислений, определения целевого распределения по измеренным битовым шаблонам для тестовой области (которые задаются несколькими измеренными битовыми последовательностями, полученными для запутанного состояния типа Гринбергера-Хорна-Зейлингера (GHZ) для тестового набора кубитов), генерации управляющих последовательностей для создания целевых распределений битовых шаблонов, многократного выполнения и записи выходных битовых последовательностей на наборе кубитов и классическом управляющем оборудовании, анализа корреляций между полученными данными для вычисления показателей эффективности (например, сравнение с идеальным распределением или эталонной системой) и оценки качества работы системы: выявления дефектов, автоматической калибровки, аннулирования некорректных данных или подтверждения их точности. При обнаружении неисправностей система может повторно калибровать оборудование, сегментировать тестовую область для локализации дефекта или удалять данные, полученные до момента тестирования. Программа тестирования выполняется параллельно или интегрируется в пользовательскую задачу, что обеспечивает непрерывный мониторинг работоспособности системы. Изобретение также включает квантовую вычислительную систему с классическим управляющим оборудованием, реализующим описанный метод для повышения надежности и точности квантовых вычислений. [7] [0005] Однако целью реализации данной системы является решение проблемы с контролем рабочего состояния (запутанности) системы квантовых вычислений, для защиты от внешних воздействий (шумов) и снижения ошибок вычисления, связанных с воздействиями. Известный способ не учитывает контекст и сложность самой решаемой задачи и, несмотря на возможность проведения калибровки системы квантовых вычислений, не дает возможность оценивать оптимальность и точность полученных результатов решения задачи. В качестве тестового алгоритма в данном изобретении используется создание состояния Гринбергера-Хорна-Зейлингера, что не учитывает сложность решаемых пользовательских задач. В нашем же подходе в качестве тестового алгоритма используется адаптивный алгоритм подбора задач, эквивалентных по сложности с пользовательскими. [8] [0006] Из уровня техники известна система и способ тестирования точности вычисления основной вычислительной задачи оптимизации, выполняющейся на квантовом компьютере и использующей т.н. квантовый отжиг, за счет выполнения уменьшенной/сокращенной вычислительной задачи, раскрытые в патенте US 11250334 В2 (Accenture Global Solutions Limited, 15.02.2022). В известном решении сокращение задачи достигается за счет конфигурации вычислительных ресурсов системы на разделение вычислительной задачи на подзадачи, например, применяются алгоритмы уменьшения размерности (например, анализ главных компонент) и оптимизации схем (минимизация квантовых вентилей, логическая оптимизация). Упрощенная задача решается классическими или квантовыми ресурсами с меньшими затратами, давая приближенное решение исходной задачи. Система автоматически адаптирует вычислительный процесс, обеспечивая эффективное использование доступных ресурсов. [9] [0007] Несмотря на то, что система оперирует контекстом задачи, алгоритмически сокращая ее сложность, возникает риск того, что основная задача будет решаться с потерей точности результата и/или с многократным ростом времени вычисления. Т.е. недостатком известного подхода является использование задачи усеченной размерности для тестирования квантового вычислителя. [10] [0008] Из уровня техники известен патент US 10044638 В2 (1QB INFORMATION TECHNOLOGIES INC., 07.08.2018), раскрывающий способ и систему для преобразования, с помощью цифрового компьютера, заданной проблемы программирования в эквивалентную форму, пригодную для решения квантовым компьютером. Для этого проблема извлекается из памяти, затем с использованием процессора проводится ее преобразование - например, выполняются процедуры целочисленного кодирования, перевод переменных в линейные функции двоичных переменных с ограниченными коэффициентами, понижение степени полинома до не более двух, что позволяет сформировать гамильтонову функцию, являющуюся эквивалентом исходной задачи. Полученный запрос направляется через сеть (например, через облачный интерфейс или локальную сеть) на квантовый вычислительный ресурс, где квантовый компьютер применяет один или несколько квантовых алгоритмов для решения задачи программирования. [11] [0009] Недостатком известного подхода и системы является то, что, несмотря на комплексный подход, дающий преимущество сокращение времени вычисления на длинной дистанции для общего решения глобальной задачи, с задействованием всех средств и методов, имеющих преимущества на тех или иных этапах, этот способ и система не дает ответа на вопрос о точности вычисления квантовой части глобальной задачи. Оптимизация алгоритма вычисления здесь сводится к категоризации той или иной задачи/подзадачи и предопределенному отнесению ее к квантовому или неквантовому алгоритму для последующего использования соответствующего подходящего вычислителя, поэтапному упрощению математической сложности вычисления, например, уменьшению степени многочлена количества решений задачи до получения многочлена степени не более двух, и прочие этапы и без анализа точности алгоритма самой задачи и точности результатов итоговых вычислений. [12] [0010] Из уровня техники патент US 11366741 В2 (Microsoft Technology Licensing, LLC, 21.01.2022), раскрывающий способ и систему для моделирования и проверки квантовых программ на классическом компьютере, позволяющие на основе квантовой программы, написанной на специализированном языке, эмулировать выполнение квантовых операций на классическом компьютере и одновременно проверять состояние моделируемых кубитов. Способ включает вставку в квантовую программу команд, утверждающих, что вероятность текущего состояния кубитов соответствует ожидаемым значениям (например, что кубит находится в заданном собственном состоянии оператора Паули Z или представлен комплексным вектором), после чего классическая симуляция выполняет проверку истинности этих утверждений. Результаты проверки отображаются в графическом интерфейсе, что позволяет пользователю видеть, соответствует ли состояние кубитов заданным требованиям, а также обеспечиваются возможности модификации программы и установки точек останова для детальной отладки. Такой подход обеспечивает инструмент для верификации квантовых состояний без непосредственного доступа к квантовому аппаратному обеспечению. [13] [0011] Недостатком данного способа является то, что он направлен на решение проблемы контроля когерентности состояния самой квантовой системы, модификации квантовой программы и ее отладки, но не дает ответа на вопрос о точности вычисления задачи, решаемой на квантовом вычислителе. В известном патенте используется классический компьютер для имитации выполнения квантового алгоритма на квантовом компьютере. В заявленном решении классический компьютер используется для получения точного ответа по тестовой задаче и субоптимального решения на квантовом компьютере. [14] [0012] Проблема заключается в том, что, при решении NP-сложной задачи вычислителем квантового типа, нет возможности проверить точность ее решения. Вычислитель квантового типа обладает множеством управляющих параметров, от правильности установки которых зависит точность вычислений и/или скорость получения решений и/или получение решения с заданной погрешностью, их настройка позволяет говорить о корректном решении исходной NP-сложной задачи. При этом известные уровни техники направлены, в основном, на решение проблемы контроля и мониторинга состояния декогеренции квантовых вычислителей, что опосредованно решает проблему контроля точности решений, или на оптимизацию самой задачи с потерей точности на этапе оптимизации, или на подбор типа вычислителя, в зависимости от сложности задачи, но без влияния на управляющие настройки квантового вычислителя. [15] СУЩНОСТЬ ИЗОБРЕТЕНИЯ [16] [0013] Для решения указанной проблемы необходимо выполнить ряд задач: [17] 1) осуществить подготовительную работу с контекстом исходной решаемой NP-сложной задачи на квантовом вычислителе - ее преобразование в тестовую NP-задачу без потери общей сложности и без разделения на составные части, для сохранения тождественности с исходной (например, в терминах матрицы QUBO, под это преобразование подходит класс задач, частным примером которой является задача коммивояжера), [18] 2) решить тестовую NP-задачу на квантовом вычислителе и проверить ее точность на классическом вычислителе, [19] 3) реализовать систему с возможностью автоматизированной записи-чтения значений (состояния) управляющих параметров квантового компьютера, анализа результатов вычисления тестовой задачи на квантовом компьютере на соответствие критериям и применения итоговых управляющих параметров на квантовом компьютере для получения субоптимального решения и с последующим получением итогового решения исходной NP-сложной задачи. [20] [0014] Заявленное изобретение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники, а также позволяет решить техническую проблему в части обеспечения проверки решения NP-сложной задач на квантовом вычислителе. [21] [0015] Техническим результатом, объективно проявляющимся при использовании заявленного изобретения, является обеспечение возможности проверки правильности решения NP-сложных задач на квантовых вычислителях с их одновременной оптимизацией по точности и скорости вычислений. [22] [0016] Заявленный технический результат достигается за счет выполнения способа оптимизации работы по меньшей мере одного квантового вычислителя, содержащего этапы, на которых: [23] a) получают запрос на решение NP-сложной задачи, [24] b) преобразуют NP-сложную задачу в форму, пригодную для решения на квантовом вычислителе, [25] c) подбирают тестовую NP-задачу, эквивалентную по сложности преобразованной NP-сложной задаче, [26] d) выполняют тестовую NP-задачу на квантовом вычислителе, [27] e) проверяют правильность выполнения тестовой NP-задачи на квантовом вычислителе путем нахождения проверочного решения тестовой NP-задачи на классическом вычислителе и сравнения результатов вычислений, [28] f) оценивают эффективность выполнения тестовой NP-задачи на квантовом вычислителе в соответствии с заданными критериями качества, [29] g) корректируют значения управляющих параметров квантового вычислителя при оценке эффективности выполнения тестовой NP-задачи ниже порогового значения путем повторения этапов d)-f) до получения оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой NP-задачи превышает пороговое значение, [30] h) выполняют NP-сложную задачу на квантовом вычислителе с применением оптимальных значений управляющих параметров квантового вычислителя. [31] [0017] В одном из частных примеров реализации форма, пригодная для решения на квантовом вычислителе, является QUBO-задачей. [32] [0018] В другом частном примере реализации форма, пригодная для решения на квантовом вычислителе, является моделью Изинга. [33] [0019] В другом частном примере реализации подбор тестовой NP-задачи, эквивалентной по сложности преобразованной NP-сложной задаче, включает: [34] • вычисление разреженности QUBO-матрицы преобразованной NP-сложной задачи, [35] • выбор тестовой NP-задачи в зависимости от близости разреженности QUBO-матрицы преобразованной NP-сложной задачи к разреженности QUBO-матрицы тестовой NP-задачи. [36] [0020] В другом частном примере реализации к заданным критериям качества, используемым при оценке эффективности выполнения тестовой NP-задачи на квантовом вычислителе, относятся: точность вычисления и/или скорость вычисления. [37] [0021] В другом частном примере реализации пороговое значение оценки эффективности выполнения тестовой NP-задачи извлекают из запроса на решение NP-сложной задачи. [38] [0022] В другом частном примере реализации корректировка значений управляющих параметров квантового вычислителя осуществляется при помощи алгоритмов оптимизации, минимизирующих функцию ошибок. [39] [0023] В другом частном примере реализации способ дополнительно содержит этап сохранения оптимальных значений управляющих параметров квантового вычислителя, включающий: [40] • ассоциацию оптимальных значений управляющих параметров квантового вычислителя со сложной NP-задачей и/или эквивалентной по сложности тестовой NP-задачей, [41] • сохранение оптимальных значений управляющих параметров квантового вычислителя для дальнейшего использования в эквивалентных по сложности NP-задачах. [42] КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ [43] [0024] На Фиг. 1 представлена блок-схема способа оптимизации работы по меньшей мере одного квантового вычислителя. [44] [0025] На Фиг. 2 представлена компонентная схема системы оптимизации работы по меньшей мере одного квантового вычислителя. [45] [0026] На Фиг. 3 представлена общая схема классического вычислителя. [46] ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ [47] [0027] Ниже будут описаны понятия и термины, необходимые для понимания настоящего изобретения. [48] [0028] NP-сложные задачи (Non-deterministic Polynomial-time hard problems) - это класс задач, решение которых на обычном компьютере не может быть получено за обозримое время и проверка решения также сложна и находится, как правило, за полиномиальное или более длительное время. Сюда же можно отнести класс задач еще большей сложности, для которых нахождение решения и проверка его корректности могут потребовать экспоненциального времени, в том числе NP-полные задачи. Примерами таких задач могут служить: [49] • Задача коммивояжера (общий случай): Найти самый короткий путь, проходящий через заданные города один раз и возвращающийся в исходный город. Оптимальное решение требует экспоненциального времени, в зависимости от заданного числа городов, и проверка оптимальности маршрута также может быть сложной. [50] • Задача о числе Рамсея: Определение минимального числа вершин графа, при котором определенные свойства возникают неизбежно. Это задача, для которой не известны эффективные алгоритмы проверки решений. [51] [0029] NP задачи (NP problems) - это задачи, решение которых на классическом компьютере нельзя получить за обозримое время, но проверить решение за обозримое полиномиальное время возможно. Примером такой задачи может служить: [52] • Задача о выполнимости булевых формул (SAT): Определить, существует ли набор значений переменных, при котором булева формула становится истинной. Нахождение такого набора сложно, но, если набор известен, проверить его корректность можно быстро. [53] • Задача факторизации больших чисел: Разложение большого числа на простые множители. Найти множители сложно, но проверить, что произведение множителей дает исходное число, можно быстро. [54] [0030] Экспоненциальная сложность - это сложность алгоритма или задачи, при которой время выполнения растет экспоненциально, с увеличением размера входных данных. [55] [0031] Полиномиальная сложность - это сложность алгоритма или задачи, при которой время выполнения алгоритма растет как полином от размера входных данных. [56] [0032] Классический вычислитель - это устройство, реализующее алгоритмы обработки информации с использованием традиционных принципов классической физики, где данные кодируются битами, принимающими значения 0 или 1. Он использует последовательную или параллельную обработку инструкций посредством центрального процессора (CPU) и других компонентов, реализующих дискретную логику и стандартные алгоритмы вычислений. [57] [0033] Квантовый вычислитель (также известный как квантовый компьютер или вычислитель квантового типа) - это вычислительное устройство, которое использует принципы квантовой механики для выполнения вычислений. В отличие от классических вычислителей, которые оперируют битами (0 и 1), квантовые вычислители работают с квантовыми битами, или кубитами. [58] [0034] Ключевые особенности квантового вычислителя: [59] • Суперпозиция: Кубит может находиться одновременно в нескольких состояниях, то есть представлять одновременно 0 и 1. Это позволяет квантовому компьютеру обрабатывать большое количество состояний параллельно. [60] • Запутанность: Кубиты могут быть квантово связаны друг с другом таким образом, что состояние одного кубита напрямую зависит от состояния другого, независимо от расстояния между ними. Это свойство используется для ускорения вычислений и передачи информации. [61] • Интерференция: Квантовые состояния могут интерферировать друг с другом, усиливая или ослабляя вероятности определенных результатов. Это используется для разработки алгоритмов с высокой эффективностью. [62] [0035] Облачный эмулятор квантового вычислителя - это программное обеспечение или сервис, предоставляемый через облачную инфраструктуру, который имитирует работу настоящего квантового компьютера. Эмуляторы позволяют пользователям разрабатывать, тестировать и отлаживать квантовые алгоритмы и программы без необходимости иметь доступ к реальному квантовому оборудованию. Они воспроизводят поведение квантовых кубитов, квантовых вентилей и других аспектов квантовых вычислений, позволяя исследователям и разработчикам экспериментировать с различными сценариями и задачами, такими как квантовая оптимизация, квантовое машинное обучение и другие приложения квантовых технологий. [63] [0036] Декогеренция квантовых вычислителей - это процесс утраты квантовой когерентности, когда квантовая система, находящаяся в суперпозиции состояний или обладающая запутанностью, начинает взаимодействовать с внешней средой. В результате этого взаимодействия квантовые свойства (например, суперпозиция и запутанность) постепенно размываются, что приводит к переходу системы в классическое состояние и возникновению ошибок в квантовых вычислениях. Это является одной из главных проблем при создании стабильных и масштабируемых квантовых вычислительных устройств. [64] [0037] Обозримое время получения решения - это способность какого-либо вычислителя решить определенную вычислительную задачу за время, которое является практическим и приемлемым для наблюдения и использования. Для квантового вычислителя это время существенно меньше по сравнению с тем временем, которое потребовалось бы классическому компьютеру для решения той же задачи, и находится в пределах, позволяющих применить полученное решение на практике. [65] [0038] Точное решение - это набор параметров (х) при котором достигается самая высокая возможная эффективность (минимум целевой функции). [66] [0039] Субоптимальное решение - это набор параметров (х) при котором достигается эффективность не самая высокая из возможных, но обычно практически приемлемая. [67] [0040] Проверочное решение - это решение задачи из класса NP, где проверка проста, даже если решение сложно найти. [68] [0041] QUBO задача (англ. Quadratic Unconstrained Binary Optimization) - это комбинационно-оптимизационная задача, которая заключается в том, что нужно найти такой бинарный вектор х, при котором целевая функция [69] [70] принимает наименьшее значение. [71] [0042] QUBO матрица (матрица Q) - в сущности, это таблица, в которой записаны коэффициенты целевой функции QUBO-задачи. [72] [0043] Классическая модель Изинга - это математическая модель, описывающая систему взаимодействующих «спинов», где каждый спин может принимать одно из двух состояний: «вверх» (+1) или «вниз» (-1). Энергия системы, называемая Гамильтонианом, определяется взаимодействием между соседними спинами и их взаимодействием с внешним магнитным полем. Цель классической модели Изинга - найти конфигурацию спинов, которая минимизирует энергию системы. Многие NP-сложные задачи можно свести к проблеме минимизации энергии в модели Изинга. [73] [0044] Кубит - это базовая единица информации в квантовых вычислениях, аналогичная классическому биту в обычном компьютере. Однако в отличие от классического бита, который может быть только 0 или 1, кубит благодаря квантовым свойствам (суперпозиция и запутанность) может одновременно находиться в состоянии, представляющем как 0, так и 1. Это позволяет квантовым компьютерам выполнять определенные вычисления намного быстрее, чем классические, за счет параллельной обработки информации. [74] [0045] В настоящий момент на рынке существуют разные виды вычислителей, которые используют квантовые технологии для решения сложных вычислительных задач. Эти устройства открывают новые горизонты в области вычислений и предлагают инновационные подходы к решениям, недоступным для классических компьютеров. Ниже представлены примеры таких вычислителей квантового типа. [75] [0046] Адиабатический квантовый тип вычислителя, реализующий, например, квантовый отжиг (quantum annealing). Он предназначен для решения задач оптимизации посредством поиска глобального минимума функции стоимости (энергии). Используя квантовые эффекты туннелирования и суперпозиции, квантовый отжиг способен преодолевать локальные минимумы, что особенно ценно в сложных ландшафтах оптимизации. Передовым игроком в этой области стала компания D-Wave Systems. Они первыми представили коммерческие квантовые компьютеры на основе квантового отжига. Их системы, такие как D-Wave One, D-Wave Two, D-Wave 2000Q и D-Wave Advantage, содержат тысячи кубитов. [76] [0047] Универсальные квантовые компьютеры (Universal Quantum Computer). Эти устройства способны выполнять широкий спектр квантовых алгоритмов, таких как алгоритм Шора для факторизации чисел или алгоритм Гровера для поиска. Компании IBM, Google, Rigetti Computing и IonQ активно развивают эту технологию. [77] [0048] Облачные эмуляторы квантовых вычислителей. Эмуляция квантовых вычислений на традиционных суперкомпьютерах возможна благодаря прямому хранению и обработке вектора состояния квантовой системы, размерности 2 ∧ n (для n кубитов) которых хранятся в оперативной памяти, а квантовые гейты (операции) представляются матрицами, которые умножаются на вектор состояния. Процесс эмуляции заключается в том, чтобы смоделировать квантовые состояния и операции, которые выполняются на реальных квантовых компьютерах, используя классические вычислительные ресурсы. К таким облачным эмуляторам можно отнести, например, Microsoft Azure Quantum [1], Amazon Braket [2], IBM Quantum [3], D-Wave Leap [4] и SimCIM [5]. [78] [0049] Прочие сложные вычислители, относящиеся к вычислителям квантового типа, таким как, например, суперпроводящие квантовые компьютеры, ионные ловушки, квантовые вычислители на основе фотонов, полупроводниковые квантовые вычислители, топологические квантовые компьютеры и т.д., объединенные общим принципом использования квантовой механики для выполнения вычислений [6], в будущем смогут решать множество различных NP-сложных задач, решения которых пока неизвестны. [79] [0050] Однако, для разработки алгоритмов квантовых вычислителей, эмуляторов квантовых вычислителей, а также их тестирования - требуется понимание того, насколько точным является получаемое в обозримое время решение таких задач. Проблема заключается в том, что даже если квантовый компьютер возвращает решение NP-сложной задачи, нет известного способа проверить правильность решения такой задачи на классическом компьютере за обозримое время. Следовательно, нет способа убедиться в правильности работы квантового компьютера. [80] [0051] Вместе с тем известно, что различные виды квантовых вычислителей имеют управляющие настройки, которые влияют на точность, скорость и погрешность выдаваемых ими решений. [81] [0052] К таким настройкам, например, для адиабатического квантового компьютера, относятся: [82] • Расписание квантового отжига (Total Annealing Time): определяет выбор времени отжига и форму зависимости параметров от времени (линейная, нелинейная). Например, более медленное изменение (увеличение времени отжига) увеличивает вероятность достижения глобального минимума, но замедляет вычисление. Нелинейные расписания могут помочь преодолеть энергетические барьеры и улучшить качество решения. [83] • Форма расписания отжига (Annealing Schedule): определяет зависимость параметров системы от времени. Расписания могут быть линейными или нелинейными. Линейное расписание предполагает равномерное изменение параметров со временем, тогда как нелинейные расписания могут предусматривать ускорение или замедление в определенные моменты времени. Нелинейные расписания помогают преодолевать локальные минимумы и улучшать качество решения. [84] • Коэффициенты копланарных связей (Coupling Strengths): для настройки силы взаимодействия между кубитами. Они позволяют моделировать различные структуры проблемы оптимизации. [85] • Начальная температура (Initial Temperature): начальное состояние системы, которое влияет на амплитуду квантовых флуктуаций. Высокая начальная температура способствует быстрому поиску глобального минимума, но может привести к пропуску некоторых важных состояний. [86] • Финальная температура (Final Temperature): температура, которую система достигает в конце процесса отжига. Низкая финальная температура уменьшает влияние классических тепловых эффектов, но требует более строгого контроля над условиями охлаждения. [87] • Частота квантовых колебаний (Quantum Oscillation Frequency): Частота, с которой происходят квантовые колебания в системе. Эта частота влияет на динамику системы и может использоваться для ускорения процесса отжига. [88] • Амплитуды квантовых осцилляторов (Oscillator Amplitudes): параметры, определяющие амплитуды квантовых осцилляторов, которые участвуют в процессе отжига. Эти параметры могут влиять на скорость и точность нахождения решения. [89] • Шумовые параметры (Noise Parameters): управление уровнем шума в системе, который может возникать из-за внешних факторов или внутренних процессов. Шум может мешать процессу отжига, поэтому важно минимизировать его влияние. [90] [0053] В свою очередь, для прочих типов квантовых вычислителей имеются свои наборы управляющих параметров, которые необходимо тщательно настраивать для эффективной работы. [91] [0054] Например, для универсального квантового компьютера (с архитектурой на ионах в ловушке), который работает по принципу выполнения последовательности квантовых логических вентилей, существует свой комплекс параметров и настроек. Эти настройки управляют не глобальным процессом отжига, а точностью выполнения отдельных элементарных операций, из которых состоит квантовая программа (квантовый алгоритм). Их точная калибровка напрямую влияет на общую производительность и возможность подавления ошибок. [92] • Частоты лазерных импульсов (Laser Frequencies): должны быть точно настроены на резонансные частоты ионных переходов для выполнения конкретных квантовых вентилей (например, одно- и двух-кубитных операций). Малейшее отклонение частоты приводит к ошибкам во вращении кубита. [93] Пример: для выполнения вентиля Адамара (H-gate) на кубите, частота лазера должна соответствовать частоте перехода между основным и возбужденным состояниями иона с высочайшей точностью. [94] • Длительность и форма лазерных импульсов (Pulse Duration and Shape): определяют, какой именно вентиль применяется к кубиту и насколько он точен. Короткие импульсы позволяют ускорить вычисления, но могут снижать точность из-за эффектов от широкой полосы частот. Форма импульса (например, прямоугольная или Gaussian) используется для подавления ошибок и декогеренции. [95] Пример: для реализации двух-кубитного вентиля (например, гейта Энтанглера), требуется сложный импульс с точно контролируемой огибающей, который запутывает ионы через их коллективное движение. [96] • Напряжения на электродах ловушки (Trap Voltages): управляют конфигурацией ловушки, частотой колебаний ионов и их взаимным положением. Стабильность этих напряжений критична для удержания ионов и минимизации декогеренции из-за движения. [97] Пример: изменяя напряжения, можно управлять силой взаимодействия между ионами, что необходимо для выполнения двух-кубитных операций. Нестабильность напряжений приводит к нагреву ионов и потере информации. [98] • Скорость и последовательность считывания (Readout Fidelity and Timing): процедура измерения состояния кубита в конце вычисления требует точной настройки. Это включает в себя мощность и длительность считывающего лазерного импульса, а также эффективность детектирования флуоресцентных фотонов. Низкая эффективность считывания приводит к ошибкам измерения. [99] Пример: слишком короткий импульс считывания может не отличить состояние |0>от |1>, а слишком долгий - увеличивает шанс ошибки из-за декогеренции во время самого процесса измерения. [100] • Калибровка коррекции ошибок (Error Correction Calibration): если используется протокол квантовой коррекции ошибок (например, поверхностный код), необходимо калибровать дополнительные кубиты и последовательности вентилей для синдромного считывания. Это включает в себя настройку порогов и алгоритмов декодирования. [101] Пример: для работы кода с исправлением ошибок необходимо постоянно измерять синдромы, т.е. результаты диагностических измерений, которые показывают, произошла ли ошибка и какого типа, но не раскрывают само квантовое состояние, что требует точнейшей калибровки множества дополнительных двух-кубитных вентилей между основными и вспомогательными кубитами. [102] [0055] Для гейтовых квантовых вычислителей (для вариационных алгоритмов) такими из параметров могут служить: [103] • число итераций алгоритма (для алгоритма Гровера - число итераций Гровера), [104] • выбор анзаца (Анзац - определенная квантовая цепь с множеством вариационных параметров). [105] [0056] Также существуют так называемые NP задачи, для которых решение заранее известно, путем вычисления его на классическом компьютере за обозримое время или может быть проверено за полиномиальное время. NP задачи можно решать как на классическом компьютере, так и на квантовом вычислителе. Следовательно, точность, скорость и погрешность решения можно сличать с результатами, полученными на различных видах вычислителей квантового типа и на классическом вычислителе. Например, для проверки полученного решения в качестве такой эквивалентно-сложной тестовой NP задачи можно использовать криптографические несимметричные алгоритмы: в качестве референсного значения используется закрытый ключ, из него получается открытый ключ обычными методами. Увеличение длины ключа в битах (например, в RSA) экспоненциально увеличивает сложность факторизации модуля. Алгоритм трансформации открытого ключа в закрытый ключ является NP-сложной задачей для квантового вычислителя. Решение тестируется при помощи сравнения закрытого ключа с полученным решением. [106] [0057] Работу заявленного способа можно проиллюстрировать на примере решения NP-сложной задачи логистики, такой как задача коммивояжера. [107] [0058] На Фиг. 1 представлен способ (100) оптимизации работы по меньшей мере одного квантового вычислителя в виде блок-схемы, иллюстрирующей последовательность этапов способа. [108] [0059] Задача коммивояжера является NP-сложной задачей. Ее можно сформулировать следующим образом: "Заданы координаты N городов на карте. Задача заключается в поиске самого короткого пути, который должен пройти агент, побывав в каждом пункте назначения однократно". Иными словами, имеются координаты N пунктов назначения (xi, yi) на плоскости. Необходимо найти кратчайший путь, который агент должен пройти, обойдя все пункты назначения. [109] [0060] Далее будем рассматривать в качестве примера осуществления квантовый вычислитель, реализующий квантовый отжиг (адиабатический квантовый компьютер). [110] [0061] На первом этапе (101) получают запрос на решение NP-сложной задачи. В частном варианте реализации пользователь обращается к облачному провайдеру для получения услуги «Квантовые вычисления как сервис» (Quantum Computing as a Service, QCaaS). Такая модель предоставления квантовых вычислений позволяет организациям и отдельным пользователям получать доступ к мощным квантовым вычислительным ресурсам через облачную инфраструктуру, минуя необходимость приобретения и обслуживания собственного дорогостоящего оборудования. Система, реализующая заявленный способ (100), получает от пользователя запрос на решение NP-сложной задачи, в рассматриваемом примере реализации - это задача коммивояжера. [111] [0062] В одном из вариантов осуществления заявленного изобретения запрос дополнительно содержит требования к точности и/или скорости решения NP-сложной задачи, т.е. в процессе отправки запроса на решение NP-сложной задачи пользователь может задать желаемые требования по точности и/или скорости решения NP-сложной задачи. В дальнейшем указанные требования анализируются и на основе их анализа формируется пороговое значение оценки эффективности выполнения тестовой NP-задачи. [112] [0063] На этапе (102) преобразуют NP-сложную задачу в форму, пригодную для решения на квантовом вычислителе. В рамках этапа (102) преобразования многие NP-сложные задачи можно выразить в формате задачи квадратичной неограниченной бинарной оптимизации (QUBO), формате модели Изинга или гейтовой модели, использующей последовательность унитарных преобразований (квантовых гейтов) для подготовки квантового состояния, в котором закодировано решение задачи. [113] [0064] В качестве предпочтительного примера реализации заявленного изобретения будет рассмотрен процесс перевода NP-сложной задачи в форму, пригодную для решения на квантовом вычислителе, а именно в QUBO задачу. Современные квантовые компьютеры, например, использующие принцип квантового отжига, работают непосредственно с задачей, представленной в виде квадратичных бинарных моделей оптимизации (QUBO). Это делает необходимым предварительное преобразование любой задачи в соответствующую QUBO-модель перед ее решением на таком устройстве. [114] [0065] В предпочтительном варианте реализации заявленного изобретения в процессе осуществления этапа (102) используют алгоритм формулировки задачи в терминах матрицы QUBO [7]. С помощью этого алгоритма преобразуют задачу маршрутизации (например, задачу коммивояжера) в формат, понятный для квантового компьютера, где элементы матрицы кодируют целевые функции и ограничения исходной задачи. Ключевая особенность заключается в том, что для нетривиального решения матрица должна содержать как положительные, так и отрицательные элементы, создавая конфликт между минимизацией энергии и выполнением всех условий задачи. [115] [0066] В задаче коммивояжера элементы QUBO-матрицы обозначают стоимости перехода между городами. Вычислитель пытается минимизировать функцию стоимости. Таким образом находится кратчайший путь. Также QUBO-матрица содержит штрафные элементы: если агент в задаче коммивояжера не посещает город или посещает его два раза, к функции стоимости прибавляется значительное число. [116] [0067] В общем случае QUBO-матрица, которая получается после преобразования, согласно методологии, может быть любой, но отличительная особенность получаемой матрицы - она квадратная. Дополнительные условия возникают из свойств QUBO задачи: если все элементы больше нуля, то решение будет тривиальным: все х=0; если все элементы будут отрицательными, то все х=1. Отсюда следует, что матрица должна также иметь как положительные, так и отрицательные элементы. [117] [0068] Постановка задачи далее преобразуется из QUBO в модель Изинга, т.е. необходимо задать коэффициенты функции энергии: [118] [119] где в первой сумме i≠j, J ij и h j - коэффициенты функции энергии, [120] σ j ={-1; 1}. [121] [0069] Вычислитель находит такие σ j , при котором функция энергии Н(σ) будет наименьшей. [122] [0070] Процесс преобразования NP-сложных задач в QUBO задачи играет ключевую роль в применении квантовых вычислений для решения трудных оптимизационных проблем. Автоматизация этого процесса позволяет существенно сократить временные затраты и повысить точность решений. [123] [0071] Современный рынок предлагает целый ряд мощных инструментов и библиотек, позволяющих автоматизировать преобразование NP-сложных задач в QUBO-формат. Ниже приведены инструменты, которые могут быть использованы в заявленном способе (100) при реализации этапа (102). [124] [0072] D-Wave's Ocean SDK - один из наиболее популярных пакетов для работы с квантовыми компьютерами D-Wave, предоставляющий широкий спектр инструментов для автоматической конвертации различных типов задач в QUBO-формат, совместимый с аппаратурой D-Wave. [125] [0073] PyQUBO - библиотека для создания моделей QUBO и Изига (Ising) из гибких математических выражений. Позволяет формулировать оптимизационные задачи с помощью естественной математической нотации и автоматически компилировать их в форматы, подходящие для квантовых и классических решателей. [126] [0074] dimod - универсальная библиотека для работы с бинарными квадратичными моделями (BQMs), включающими QUBO и Ising-модели. Используется совместно с другими инструментами D-Wave. [127] [0075] QUBO-NN - проект, основанный на использовании нейронных сетей для классификации и восстановления параметров QUBO-матриц. Полезен для анализа и обратной инженерии QUBO-задач. [128] [0076] На этапе (103) подбирают тестовую NP-задачу, эквивалентную по сложности преобразованной NP-сложной задаче. Автоматическая система подбора и реализации тестового алгоритма подбирает соответствующий несимметричный алгоритм исходя из эквивалентного числа кубитов, их связности и масштабов коэффициентов. Ниже приведен пример такого автоматического подбора. [129] [0077] Алгоритм подбора тестовой задачи может быть реализован следующим образом. [130] [0078] На вход классического вычислителя автоматической системы подается QUBO матрица Q основной задачи. Вычисляется разреженность QUBO-матрицы Q основной задачи. Разреженность матрицы показывает, какая доля ее элементов не равна нулю. Предположим, матрица Q имеет размер 4×4, таким образом общее число элементов n 2 =16. Пусть в ней ненулевых элементов Nnz=6. Тогда разреженность вычисляется как: а =Nnz/n 2 =6/16=0,375 (37,5%). Т.е. разреженность матрицы а определяется как отношение количества ненулевых элементов (Nnz) к общему числу элементов матрицы (n 2 ). На самом деле матрица Q имеет гораздо большую размерность, ввиду NP-сложности, однако расчет разреженности не представляется сложной вычислительной задачей для текущего уровня техники классических вычислителей. [131] [0079] В зависимости от разреженности Q выбирается подходящая тестовая задача (генерируется QUBO-матрица тестовой задачи). Тестовая задача характеризуется меньшей размерностью QUBO-матрицы, но при этом разреженность QUBO-матрицы тестовой задачи наиболее близкая к разреженности QUBO-матрицы основной задачи. [132] [0080] В базе данных тестовых задач на классическом вычислителе содержатся QUBO-задачи с различной разреженностью а . Таким образом, тестовая задача подбирается так, чтобы разреженность выбранной тестовой задачи (разреженность QUBO-матрицы) была наиболее близка к разреженности основной задачи. Таким образом, вне зависимости от сложности и размерности QUBO-матрицы основной (исходной) NP-сложной задачи - будет подобрана эквивалентная основной по разреженности тестовая NP-задача (QUBO-матрица тестовой задачи эквивалентной разреженности). [133] [0081] Для определенности будем считать, что наиболее близкой по разреженности матрицы является задача о факторизации числа N=p*q, где p и q - простые числа. [134] [0082] Представление чисел в виде битовых регистров. [135] [0083] Создают регистр - набор бинарных (0 или 1) переменных, его длина равна l 1 +l 2 -2, где: первые l 1 бит представляют число р в двоичном виде; следующие l 2 бит представляют число q. [136] [0084] Определяют регистр из l 1 +l 2 -2 бинарных переменных х для хранения простых чисел р и q: p=(x l1-1 ,x l1-2 ,…,x l ,1) 2 , q=(x l1 + l2-2 ,x l1 + l2-3 ,…,x l ,1) 2 , где нижний индекс 2. означает двоичную систему. Размеры регистра l 1 и l 2 подбираются так, чтобы величина L=(l 1 -1)+(l 2 -1)+l 1 *(l 1 -1)/2+l 2 *(l 2 -1)/2 была максимально приближена к n - числу переменных (размеру регистра) основной задачи. Подобрать размеры регистра можно следующим образом. Пусть l 1 =l 2 =l, тогда L=(l+2)*(l-1). Размеры регистра можно выразить по следующей формуле l 1 =l 2 =l=Round((-1+sqrt(1+4*(n+2)))/2). [137] [0085] Выбор простых чисел. [138] [0086] Выбирают простые числа р и q: р выбирается как простое число в диапазоне от 1 до p max , p max =2 l+2 -1, q - в диапазоне от 1 до q max , q max =2 l+2 -1. Процесс выбора простого числа в диапазоне может выглядеть следующим образом. Выбирается случайное число в заданном диапазоне. Проводится проверка, является ли оно простым. Если не является, то число увеличивается на единицу или уменьшается. Проводится проверка полученного числа. Цикл повторяется до тех пор, кока не будет найдено простое число. [139] [0087] Формирование функции минимизации. [140] [0088] Из найденных простых чисел р и q вычисляется число N=p*q, которое в тестовой задаче будет разложено на множители. [141] [0089] Генерируется функция минимизации ƒ(x 1 ,…,x l1+l2-2 )=(N-p*q) 2 =(N-(x l1 -1,x l1-2 ,…,x 1 ,1) 2 *(x l1 + l2-2 ,x l1 + l2-3 ,…,x l ,1) 2 ) 2 . Цель тестовой задачи - найти такие значения р и q (записанные в виде набора битов), чтобы выражение ƒ(x 1 ,…,x l1+l2-2 )=(N-p*q) 2 было минимизировано. Это выражение зависит от всех бинарных переменных, которые представляют p и q. [142] [0090] Преобразование функции в QUBO-матрицу. [143] [0091] Генерация QUBO-матрицы тестовой задачи может быть реализована любым известным из уровня техники методом, например, методом преобразования произвольной задачи факторизации в исполняемую модель Изинга [8]. Кратко алгоритм преобразования можно сформулировать следующим образом. Раскрываются скобки в выражении (N-p*q) 2 . Во всех слагаемых степени старше, чем 2, производится замена переменных. Каждой замене соответствует введение одной дополнительной переменной x j . Количество дополнительных переменных составит l*(l-1). Затем во всех слагаемых с повторяющимися индексами ввиду бинарности переменных делается замена: x i x i =x i . Далее выражение преобразуется в QUBO-матрицу, значения ее элементов соответствует коэффициентам слагаемых, а индексы соответствуют индексам бинарных переменных. Следует отметить, что число кубитов тестовой задачи составит L=(l+2)*(l-1) и будет равным приблизительно числу кубитов основной задачи. [144] [0092] Рассмотрим пример реализации данного этапа (103). [145] [0093] Допустим, что есть две задачи: одна - классическая задача коммивояжера NP-сложная задача, а другая - задача факторизации числа (NP задача). Необходимо подобрать такую задачу факторизации, чтобы ее сложность (в терминах, например, числа кубитов, требуемых для решения, связности между кубитами и масштабов коэффициентов в функции энергии) была примерно такой же, как у задачи коммивояжера. [146] [0094] Предположим, что NP-сложная задача - это задача коммивояжера с 8 городами (для наглядности). Для ее представления в виде модели Изинга (одной из форм представления задач для квантовых компьютеров) используется 8×8=64 бинарных переменных. Каждая такая переменная означает, что в определенный момент времени посетили определенный город. Это значит, что для решения этой задачи на квантовом компьютере потребуется 64 кубита. [147] [0095] Цель - подобрать параметры тестовой задачи факторизации (числа кубитов, их связности и масштабов коэффициентов) так, чтобы при ее решении потребовалось примерно столько же кубитов (то есть около 64 кубитов). [148] [0096] Определяют число переменных для задачи факторизации. [149] [0097] Для факторизации числа N обычно выбирают два простых множителя р и q, которые записываются в двоичном виде с помощью набора бит. Чтобы число бит в задаче факторизации было похожим на 64 (как у задачи коммивояжера), рассчитывают параметр l по формуле: l=Round((-1+sqrt(1+4(n+2)))/2). [150] [0098] В данном случае n (количество кубитов для исходной задачи) равно 64, поэтому получаем: [151] l=Round((-1+sqrt(1+4(64+2)))/2)=8. [152] [0099] Определяют максимальные значения для р и q. [153] [0100] Обычно р и q выбираются так, чтобы их двоичная запись не была длиннее, чем позволяет l. Если применить формулу 2 ^ (l+2)-1, получается: [154] P max =q max =2 8+2 -1=1023. [155] [0101] Это значит, что р и q будут не больше 1023. [156] [0102] Определяют число кубитов, которое потребуется для задачи факторизации. [157] [0103] Если использовать выбранное значение l, число кубитов (или размер регистра) вычисляем по формуле: L=(l+2)×(l-1). [158] [0104] При l=8 получаем: L=(8+2)×(8-1)=10×7=70. Т.е. задача факторизации будет использовать 70 кубитов - это примерно сопоставимо с 64 (намного ближе, чем если бы кубитов было в разы больше). [159] [0105] Выбирают сами простые числа р и q автоматически, исходя из результата на предыдущем шаге, где число не должно быть больше 1023. [160] [0106] Например, можно взять р=1021 и q=607 (оба являются простыми числами и меньше 1023). Тогда число N=p⋅q=1021×607=619747. [161] [0107] Формируют функцию минимизации. [162] [0108] Чтобы решить задачу факторизации, нужно найти такие битовые представления чисел р и q, чтобы произведение получилось равным N. Это можно записать как функцию: ƒ(x 1 ,…,x 14 ). [163] [0109] В данном случае: ƒ(x 1 ,…,x 14 )=(619747-(х 7 ,…,х 1 ,1) 2 *(x 14 ,…,x 8 ,1) 2 ) 2 . [164] [0110] Здесь p(x 1 ,…,х 7 ) и q(x 8 ,…,х 14 ) - это числа, полученные из соответствующих битов (при этом «1» добавляется, чтобы получить правильное двоичное число, как например (х 7 , …, x 1 , 1)). Другими словами, функция измеряет, насколько далеко текущие значения битов (которые задают р и q) от того, чтобы их произведение дало точное число 619747. [165] [0111] Преобразуют выражения в тестовую QUBO-матрицу. [166] [0112] Следующим шагом происходит преобразование этого квадратного выражения в QUBO-матрицу. Это делается путем раскрытия скобок, приведения всех степеней выше 2 к квадратичным (при необходимости вводятся дополнительные переменные) и записи коэффициентов при каждом произведении переменных в виде матрицы. [167] [0113] На выходе получают вид матрицы размером (14×14) и разброс коэффициентов, обеспечивающих эквивалентное представление исходной задачи факторизации в формате QUBO. [168] [0114] Таким образом, получают задачу, которая решается методом квантового отжига или другим подходящим алгоритмом для QUBO-задач. [169] [0115] В случае, если не удается подобрать эквивалентные задачи, возможно использовать другую NP-сложную задачу, решение которой известно, либо проверка правильности решения не является NP-сложной. [170] [0116] Перед выполнением тестовой NP-задачи на квантовом вычислителе, необходимо загрузить тестовую NP-задачу (тестовую QUBO-матрицу) в квантовый вычислитель. Загрузка тестовой NP-задачи, представленной в виде QUBO-матрицы, в квантовый вычислитель может осуществляться известными способами (на примере квантового отжига D-Wave с использованием Ocean SDK): [171] 1) подготовить окружение, установив на классический вычислитель необходимые библиотеки (например, через pip): pip install dwave-ocean-sdk [172] 2) зарегистрироваться на платформе D-Wave (или другом квантовом сервисе), получить API-токен и настроить файл конфигурации (обычно в ~/.config/dwave.conf) [173] 3) подключиться к квантовому вычислителю с использованием библиотеки dwave.system для создания сэмплера, который отправит QUBO на квантовый вычислитель. [174] [0117] Пример QUBO-матрицы (гипотетическая, для демонстрации): [175] [176] [0118] Эта матрица Q «суммирует» все ограничения, которые налагаются на двоичные переменные так, чтобы минимальное значение целевой функции соответствовало корректному разложению N=619747 на простые множители 1021 и 607. [177] [0119] Подключение к квантовому отжигателю D-Wave происходит с использованием класса EmbeddingComposite для динамического свертывания логической QUBO-модели к реальной топологии квантового процессора. [178] [0120] Пример кода: [179] import dimod [180] from dwave.system import DWaveSampler, EmbeddingComposite [181] from dwave.system import DWaveSampler, EmbeddingComposite [182] # Создаем сэмплер квантового компьютера D-Wave. EmbeddingComposite помогает свести логическую QUBO к топологии QPU. [183] sampler=EmbeddingComposite(DWaveSampler()) [184] [0121] Отправка, с заданным числом повторений: [185] sampleset=sampler.sample_qubo(Q, num_reads=100) [186] [0122] На этапе (104) выполняют тестовую NP-задачу (подобранную на предыдущем этапе (103)) на квантовом вычислителе. В частном варианте реализации под решением тестовой NP-задачи на квантовом вычислителе понимаем разложение числа N. [187] [0123] После выполнения запроса квантовый отжигатель возвращает набор выборок, каждая из которых - это потенциальное решение исходной задачи факторизации. [188] Интерпретация решения включает извлечение бинарного вектора и последующее декодирование, которое позволяет получить значения множителей р и q. [189] [0124] Далее выбирают лучшее найденное решение (с минимальной энергией): [190] best_sample=sampleset.first. sample [191] best_energy=sampleset.first.energy [192] print ("Лучшее найденное решение:", best_sample) [193] print ("Энергия решения:", best_energy) [194] [0125] При корректно построенной QUBO-модели минимальное значение целевой функции (энергии) будет соответствовать тому разложению N=619747, которое удовлетворяет условию р×q=619747 (то есть р=1021 и q=607). [195] [0126] На этапе (105) проверяют правильность выполнения тестовой NP-задачи на квантовом вычислителе путем нахождения проверочного решения тестовой NP-задачи на классическом вычислителе и сравнения результатов вычислений. [196] [0127] В одном из примеров реализации заявленного изобретения на этапе (105) производится сравнение результатов вычислений эквивалентной тестовой NP задачи по нахождению р и q на квантовом и классическом вычислителе. [197] [0128] После получения решения от квантового вычислителя необходимо убедиться, что найденное решение действительно удовлетворяет исходным ограничениям NP-задачи. Этот этап выполняется на классическом компьютере с использованием двух подходов. [198] [0129] 1. Нахождение проверочного решения. [199] • Идея: Полученное квантовое решение представляет собой набор бинарных значений, который после декодирования должен дать искомые переменные задачи (например, множители pnq для задачи факторизации). [200] • Процесс: [201] Декодирование: на основе заданной схемы (например, какая часть бинарного вектора соответствует р, а какая - q) производится преобразование полученного битового вектора в числовые значения, [202] Обратное вычисление: после того, как получены кандидатные значения, их перемножают или вводят в обратную формулу, зависящую от конкретной задачи. [203] • Пример (задача факторизации): [204] Допустим, после декодирования мы получили кандидаты p' и q'. [205] На классическом компьютере производится умножение: проверяется, равняется ли р'×q' исходному значению N (в нашем примере N=619747). [206] Если произведение совпадает, решение считается валидным, [207] Если нет - решение отвергается или используется в качестве базиса для дальнейших уточнений. [208] [0130] 2. Использование проверочных (валидационных) функций. [209] • Идея: помимо обратного расчета, можно реализовать набор функций, которые напрямую проверяют выполнение всех ограничений исходной задачи. [210] • Процесс: [211] Каждое ограничение или условие формулируется в виде функции, принимающей на вход компонентное представление решения. [212] Функции возвращают бинарный индикатор (например, 1 - условие выполнено, 0 - не выполнено) или «штраф», который указывает на ошибку в решении. [213] Все результаты суммируются для получения итоговой проверки «значимости» решения. [214] • Пример (задача факторизации): [215] Функция check_factors(p, q, N) принимает найденные кандидатные множители и возвращает True, если р×q=N, и False в противном случае. [216] Дополнительно возможно добавление функции, проверяющей, что р и q являются простыми числами, если эта проверка необходима в рамках задачи. [217] Если все проверочные функции возвращают положительный результат, решение считается корректным. [218] [0131] Таким образом, технически процесс проверки решения на классическом компьютере состоит из: [219] 1) Декодирования бинарного решения квантового компьютера в конкретные значения переменных. [220] 2) Нахождения проверочного решения (например, перемножение полученных факторов) для проверки, удовлетворяет ли решение исходной математической задаче. [221] 3) (Опционально) Вызова набора проверочных функций, каждая из которых гарантирует соблюдение отдельного ограничения исходной задачи. [222] [0132] На этапе (106) оценивают эффективность выполнения тестовой NP-задачи на квантовом вычислителе в соответствии с заданными критериями качества. В частном варианте реализации к заданным критериям качества, используемым при оценке эффективности выполнения тестовой NP-задачи на квантовом вычислителе, относятся: точность вычисления и/или скорость вычисления. [223] [0133] На данном этапе (106) производится детальное сравнительное исследование полученных решений по заранее определенным критериям. То есть, сравниваются не только сами результаты, но и характеристики процесса их получения. Рассмотрим, как можно структурировать этот этап в практическом сценарии. [224] [0134] 1. Определение критериев сравнения: [225] a. Точность вычислений. Например, насколько найденное решение приближено к теоретическому оптимуму или известному эталону (например, в задаче факторизации - насколько точно произведение найденных множителей дает исходное число N). [226] b. Скорость получения решения. Время, затраченное на выполнение вычислений или на получение выборки решения с квантового устройства, а также время последующего декодирования и проверки на классическом компьютере. [227] c. Погрешность решения. Если требование задано в терминах допустимой ошибки, то сравнивается относительная или абсолютная ошибка результата, например, |решение - эталон |/эталон. [228] [0135] 2. Подготовка экспериментальной среды. [229] • Задаются тестовые наборы данных или конкретные входные параметры (например, число N для задачи факторизации). [230] • Определяются эталонные (reference) решения, рассчитанные классическими методами или известные аналитически. [231] • Настраиваются таймеры и логирование для фиксации времени выполнения каждого этапа (как для квантового вычислителя, так и для классического решения). [232] [0136] 3. Сбор результатов. [233] a. Выполнение задачи на квантовом отжигателе и получение выборки решений. [234] b. Параллельное или последовательное получение решения классическими алгоритмами (или использование оптимизирующих модулей), чтобы сравнить как точность, так и время вычислений. [235] c. Применение проверочных функций и обратного расчета для оценки корректности каждого решения. [236] [0137] 4. Сравнение по точности вычислений. [237] • Если есть заранее известное оптимальное решение (или эталонное значение), вычисляется разница между полученными значениями и эталоном. Например, если в задаче факторизации полученные множители р' и q' должны дать N=619747, то вычисляем: [238] Ошибка=|р'×q'-N|. [239] • Кроме того, можно использовать относительную погрешность, чтобы учесть масштаб задачи. [240] [0138] 5. Сравнение по скорости получения решений. [241] • Фиксируется время от момента отправки задачи на квантовый отжигатель до получения результата, а также время на декодирование и выполнение проверочных функций. [242] • Аналогичным образом измеряются временные затраты классических методов для получения решения. [243] • Сравнение позволяет выявить, в каких случаях квантовое решение дает выигрыш по времени даже при наличии дополнительного этапа декодирования. [244] [0139] 6. Сравнение решения с заданной погрешностью. [245] • Если задача требует получения результата с определенной точностью (например, погрешность не более 5%), то проводится оценка каждого решения по этому критерию. [246] • Вычисляется доля решений (из набора выборок), удовлетворяющих условию: [247] Погрешность ≤ заданное значение. [248] • Такой подход помогает оценить надежность и воспроизводимость метода в условиях ограничений по ошибке. [249] [0140] 7. Итоговый анализ и выбор оптимальной конфигурации. [250] • Собирается статистика по каждому из критериев (точность, время, погрешность) для решений, полученных разными способами (на квантовом отжигателе и классическими методами). [251] • Определяется компромисс между скоростью и точностью: например, можно заметить, что квантовый метод быстрее на 20%, но имеет слегка большую погрешность (на 3%), что может быть приемлемо в зависимости от бизнес-требований. [252] • Если есть возможность настройки параметров (например, число повторов квантового запроса, параметры декодирования), то на основе проведенного сравнения выбирается оптимальная конфигурация. [253] [0141] Далее описан пример практической реализации этапа (106). [254] [0142] Задача: факторизация числа N=619747. [255] [0143] Эталон: классический алгоритм выдает множители 1021 и 607 за 3,5 секунды с нулевой погрешностью. Квантовый вычислитель (при num_reads=100) дает 80% выборок, удовлетворяющих условию p×q=619747, за время 5 секунд, при этом остаточные погрешности в 20% выборок составляют от 1% до 5%. [256] [0144] Сравнительный анализ показывает, что квантовый подход потенциально быстрее при масштабировании (увеличении числа N или другого параметра, в контексте задачи), но требует доработок для повышения стабильности точности при фиксированной погрешности. [257] [0145] Таким образом, этап сравнения получает оценку по всем ключевым метрикам, что позволяет принять обоснованное решение о применимости метода в зависимости от приоритетов: расстояния до эталона (точность), время получения решения или допустимая погрешность. [258] [0146] В одном из примеров реализации заявленного решения способ (100) дополнительно содержит этап сохранения значений управляющих параметров квантового вычислителя на классическом вычислителе. [259] [0147] Этап сохранения значений управляющих параметров квантового вычислителя на классическом компьютере реализуется путем идентификации ключевых параметров, извлечения их из API квантового устройства, а затем их записи в долговременное хранилище, будь то файлы или базы данных, с дополнительными метаданными для контекстного анализа. В память классического вычислителя сохраняют значения управляющих параметров квантового вычислителя, например, расписание квантового отжига, включая, но не ограничиваясь. [260] [0148] Далее представлена пошаговая реализация данного этапа. [261] [0149] 1) Определение набора управляющих параметров. Прежде всего необходимо определить, какие именно параметры квантового вычислителя влияют на качество и скорость решения. Обычно такие параметры включают, например: [262] • Время отжига (anneal time), [263] • Число запусков (num_reads), [264] • Параметры встраивания (embedding parameters), например, сила связи цепей (chain strength), [265] • Масштабирующие коэффициенты для QUBO-матрицы, [266] • Другие настройки, зависящие от конкретного устройства или программного интерфейса API. [267] [0150] Этот список может дополняться дополнительными метаданными: временная метка, идентификатор задачи, версия модели и пр. [268] [0151] 2) Извлечение значений параметров во время запуска. При выполнении запроса к квантовому устройству через SDK (например, D-Wave Ocean) извлекаются не только решения, но и служебная информация о выполнении: [269] • Информация о конфигурации запроса (как указано в вызове samplequbo или аналогичном методе) [270] • Логи и статистика работы устройства [271] [0152] Эти данные могут быть получены в виде словаря или объекта, который содержит все необходимые параметры текущего запуска. [272] [0153] 3) Сохранение параметров на классическом компьютере. На классическом этапе необходимо записать полученные управляющие параметры в постоянное хранилище, например: [273] • Сохранение в текстовый или JSON-файл вместе с результатами эксперимента, [274] • Запись в базу данных (SQL, NoSQL) для дальнейшей обработки и анализа, [275] • Логирование с помощью специализированных систем (например, InfluxDB для временных рядов или ELK-стека). [276] [0154] Например, используя Python, можно сериализовать словарь с параметрами в файл: [277] import json [278] # Предположим, что config - это словарь с ключевыми управляющими параметрами [279] config={ [280] "anneal_time": 20, # время отжига в микросекундах [281] "num_reads": 100, # число запусков [282] "chain_strength": 2.5, # сила связи для встраивания [283] "scaling_factor": 2 # масштабирующий коэффициент для QUBO [284] } [285] # Добавляем идентификатор задачи и временную метку import time [286] config["task_id"]="factorization_N_619747" [287] config["timestamp"]=time.strftime("%Y-%m-%d%H:%M:%S") [288] # Запись в JSON-файл [289] with open("kk_control_params.json", "w")asf: [290] json.dump(config, f, indent=4) [291] [0155] Такой подход позволяет в дальнейшем сравнивать изменения параметров, связывать их с качеством полученных решений и проводить оптимизацию. [292] [0156] Сохраненный набор параметров становится основой для проведения ретроспективного анализа: [293] • Сравнение нескольких запусков для выявления оптимальных значений [294] • Построение графиков зависимости качества решений (например, точность, скорость) от выбранных параметров [295] • Повторное использование удачных конфигураций при аналогичных задачах [296] [0157] Например, если при увеличении времени отжига наблюдается уменьшение погрешности решения, данные используются для определения минимально необходимой конфигурации для конкретного типа задачи. [297] [0158] Рассмотрим в качестве примера такой управляющий параметр квантового вычислителя, как расписание отжига [9]. [298] [0159] В расписание отжига входит, например, время отжига. Чем дольше время отжига, тем меньше вероятность выхода системы из основного состояния. С другой стороны, время отжига ограничено временем когерентности кубитов. Таким образом, необходимо подобрать компромиссный вариант: не слишком долгий отжиг и не слишком быстрый. [299] [0160] Другой параметр отжига - это характер функции изменения энергии. Она может быть линейной или иметь изогнутую форму. Для минимизации вероятности выхода системы из основного состояния нужно также подобрать функцию определенной формы. [300] [0161] На этапе (107) корректируют значения управляющих параметров квантового вычислителя при оценке эффективности выполнения тестовой NP-задачи ниже порогового значения путем повторения этапов (104)-(106) до получения оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой NP-задачи превышает пороговое значение. [301] [0162] В частном примере реализации заявленного способа (100) из запроса на решение NP-сложной задачи извлекают пороговое значение оценки эффективности выполнения тестовой NP-задачи. В другом варианте реализации пороговое значение оценки эффективности выполнения тестовой NP-задачи получают на этапе (103) подбора тестовой NP-задачи. Например, в упомянутой ранее базе данных тестовых задач, для каждой тестовой задачи могут хранится сведения, характеризующие эффективность ее выполнения. Из этих сведений, путем предварительного анализа и обработки, формируется пороговое значение оценки эффективности выполнения тестовой NP-задачи. [302] [0163] В предпочтительном варианте реализации заявленного изобретения корректировка значений управляющих параметров квантового вычислителя осуществляется при помощи алгоритмов оптимизации, минимизирующих функцию ошибок. [303] [0164] Если результат решения на квантовом вычислителе по критериям (скорость получения решения и/или точности) не является удовлетворительным, то производится корректировка управляющих параметров. Для этого введена функция ошибок, в данном случае - целевые значения это p и q. Запуск тестовой задачи производится несколько раз, и, при помощи градиентного спуска или безградиентных методов, следующие параметры выбираются так, чтобы минимизировать функцию ошибок и минимизировать время решения. Корректировка управляющих параметров может проводиться автоматически при помощи алгоритмов оптимизации, например, при помощи алгоритма стохастического градиентного спуска [10]. [304] [0165] Анализ результатов и оценка по критериям. После каждого запуска тестовой задачи (например, факторизации с целевыми значениями множителей p и q) производится оценка результата по двум основным критериям: [305] • Скорость получения решения (время выполнения квантового отжига и декодирования). [306] • Качество решения, которое определяется в терминах точности найденных значений p и q. [307] [0166] Если, например, найденные множители не соответствуют ожидаемым значениям, или их точность ниже заданного порога, это фиксируется как ошибка. [308] [0167] Для количественной оценки ошибок вводится функция ошибок, которая вычисляет отклонение найденных значений р' и q' от целевых р и q. Функция ошибок может включать также вклад времени решения. [309] [0168] Коррекция параметров при несоответствии целевым критериям. Если по итогам запуска квантового вычислителя по критериям скорости получения решения или точности (функция ошибок выше допустимого порога) результаты не являются удовлетворительными, производится корректировка управляющих параметров. Управляющие параметры могут включать время отжига, силу цепей при embedding, масштабирование коэффициентов QUBO и число повторов (num_reads). [310] [0169] Использование методов оптимизации. Запуск тестовой задачи производится несколько раз, при каждом ходе фиксируются значения управляющих параметров, время решения и вычисленная функция ошибок. На основе собранных данных оптимизация происходит автоматически, с использованием алгоритмов оптимизации, например: [311] • при помощи градиентного спуска (стохастического градиентного спуска, в частности, согласно методу Роббинса и Монро, 1951), если можно вычислить или аппроксимировать градиент функции ошибок по управляющим параметрам; [312] • при помощи безградиентных методов (например, алгоритмов оптимизации на основе эволюционных стратегий или методов случайного поиска), если градиент затруднительно вычислить. [313] [0170] Цель оптимизации - минимизировать функцию ошибок (то есть разницу между найденными и целевыми значениями р и q) и одновременно минимизировать время решения. [314] [0171] Автоматизация корректирующего цикла. Коррекция параметров производится автоматически: алгоритм оптимизации принимает текущие значения управляющих параметров и обновляет их на основании результатов предыдущих запусков. Система ведет логирование всех изменений: фиксируются начальные значения параметров, изменения, величины функции ошибок и время решения для каждого запуска. Такой автоматизированный корректирующий цикл позволяет постепенно адаптировать настройки квантового вычислителя для достижения оптимального баланса между скоростью получения результата и точностью решения целевой задачи. [315] [0172] Адиабатический квантовый вычислитель работает путем настройки системы на определенный гамильтониан, соответствующий целевой функции энергии, и позволяет системе эволюционировать к состоянию минимальной энергии. Например, при решении задачи коммивояжера на D-Wave можно экспериментировать с различными временами отжига (например, 20 μs, 100 μs, 1000 μs), чтобы определить оптимальное для задачи. [316] [0173] Результатом осуществления этапа (107) является получение оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой NP-задачи превышает пороговое значение. [317] [0174] В одном из воплощений заявленного изобретения способ (100) дополнительно содержит этап сохранения оптимальных значений управляющих параметров квантового вычислителя, включающий: [318] • ассоциацию оптимальных значений управляющих параметров квантового вычислителя со сложной NP-задачей и/или эквивалентной по сложности тестовой NP-задачей, [319] • сохранение оптимальных значений управляющих параметров квантового вычислителя для дальнейшего использования в эквивалентных по сложности NP-задачах. [320] [0175] Оптимальные значения управляющих параметров квантового вычислителя сохраняют на классическом вычислителе по аналогии с этапом сохранения значений управляющих параметров квантового вычислителя на классическом вычислителе. В частном примере реализации оптимальные значения управляющих параметров квантового вычислителя хранятся базе знаний на классическом вычислителе, причем указанная база знаний обновляется. [321] [0176] Например, при наличии сохраненных оптимальных значений управляющих параметров квантового вычислителя, на этапе (104) тестовая NP-задача может выполняться на квантовом вычислителе с применением оптимальных значений управляющих параметров (ранее полученных при решении такой же или эквивалентной по сложности тестовой NP-задачи и сохраненных на классическом вычислителе). Если оценка эффективности выполнения тестовой NP-задачи будет выше порогового значения (поскольку квантовый вычислитель изначально выполняет тестовую NP-задачу с применением сохраненных оптимальных значений управляющих параметров), то это повысит скорость выполнения способа (100) в связи с отсутствием необходимости повторять этапы (104)-(106) до получения оптимальных значений управляющих параметров квантового вычислителя, т.к. оптимальные значения управляющих параметров уже были получены при решении такой же или эквивалентной по сложности тестовой NP-задачи. [322] [0177] На этапе (108) выполняют NP-сложную задачу на квантовом вычислителе с применением оптимальных значений управляющих параметров квантового вычислителя. [323] [0178] На данном этапе (108) производится решение NP-сложной задачи коммивояжера с примененными оптимальными значениями управляющих параметров на квантовом вычислителе, т.е. поиск такого бинарного вектора х*, для которого функция Е(х) достигает минимального значения, что соответствует оптимальному (или приближенному оптимальному) решению исходной NP-задачи. После получения параметров, например, расписания квантового отжига, решается актуальная задача коммивояжера. Выполнение вышеуказанного алгоритма позволит получить наиболее точное решение задачи коммивояжера или другой задачи, проверка решения которой также является NP-сложной задачей. [324] [0179] На Фиг. 2 представлена компонентная схема системы (200) оптимизации работы по меньшей мере одного квантового вычислителя. [325] [0180] Система (200), реализующая заявленный способ оптимизации работы по меньшей мере одного квантового вычислителя, состоит из по меньшей мере: [326] • модуля вычисления разреженности и подбора (220) тестовой задачи в терминах QUBO-матрицы; [327] • модуля загрузки (230) тестовой задачи в квантовый вычислитель; [328] • модуля анализа и сравнения (240) решений и характеристик получения решений; [329] • классического вычислителя (201), выполняющего решение выбранной тестовой NP-задачи и предоставляющий результаты для последующего анализа на соответствие критериям качества; [330] • квантового вычислителя (202), выполняющего решение выбранной тестовой NP-задачи и основной (исходной) NP-сложной задачи. [331] [0181] В предпочтительном варианте реализации заявленного изобретения модули (220)-(240) являются частью классического вычислителя (201). [332] [0182] В альтернативном варианте воплощения заявленного изобретения в качестве решателя NP-сложных задач может выступать специализированное вычислительное устройство. Помимо квантовых вычислителей существует ряд специализированных вычислительных устройств, предназначенных для эффективного решения NP-сложных задач. [333] [0183] 1. Оптические вычислители. [334] [0184] Оптические вычислители используют световые волны для передачи и обработки информации. Их ключевые особенности: [335] • Параллельная обработка: световые сигналы могут обрабатываться параллельно, значительно ускоряя выполнение операций. [336] • Высокая энергоэффективность: использование фотонов снижает энергопотребление по сравнению с электронными устройствами. [337] • Применение: особенно эффективны в задачах линейной алгебры, распознавания образов и некоторых классах оптимизационных задач. [338] [0185] Примером успешного применения являются оптические нейронные сети, демонстрирующие высокую производительность в задачах глубокого обучения и классификации изображений. [339] [0186] 2. Биологические вычислители (ДНК-вычисления). [340] [0187] Биологические вычислители базируются на молекулярных взаимодействиях, чаще всего использующих ДНК-молекулы. Их достоинства: [341] • Массово-параллельные вычисления: огромное количество молекул способно одновременно осуществлять вычисления. [342] • Компактность хранения данных: молекулярные структуры позволяют хранить колоссальное количество информации в малых объемах. [343] • Энергопотребление: минимально возможное потребление энергии на уровне биологической клетки. [344] [0188] Однако сложность программирования и управления этими системами затрудняет их широкое распространение, несмотря на теоретическую привлекательность. [345] [0189] 3. Нейроморфные вычислители. [346] [0190] Нейроморфные чипы имитируют работу человеческого мозга, реализуя принципы нейронных сетей непосредственно на аппаратном уровне. Их преимущества: [347] • Эффективность в обучении и обработке данных: идеальны для задач машинного обучения и анализа больших объемов данных. [348] • Низкое энергопотребление: потребляют гораздо меньше энергии, чем традиционные электронные схемы. [349] • Реализация алгоритмов аппроксимации: позволяют находить близкие к оптимальным решения NP-трудных задач за разумное время. [350] [0191] Такие устройства успешно используются в робототехнике, автономных системах и интеллектуальных сенсорах. [351] [0192] 4. Аналоговые вычислители и физические симуляторы. [352] [0193] Физические симуляторы решают задачи путем прямого моделирования физических явлений, таких как тепловые процессы, механические колебания или электрические цепи. Ключевые аспекты: [353] • Быстрое получение приближенных решений: часто подходят для быстрого нахождения удовлетворительных решений вместо идеальных. [354] • Простота реализации: некоторые виды симуляторов относительно легко реализовать физически. [355] • Методы Монте-Карло и статистическая физика: эффективны для стохастического моделирования и оценки вероятностных характеристик сложных систем. [356] [0194] Они широко применяются в инженерных расчетах, физике конденсированных [357] сред и финансовой математике. [358] [0195] 5. Мемристоры и мемристорные сети [359] [0196] Мемристоры - это компоненты памяти, сохраняющие значение сопротивления даже при отключении питания. Сети на их основе демонстрируют эффективность в решении ряда NP-задач: [360] • Комбинаторная оптимизация: способны быстро искать локальные минимумы в пространствах большой размерности. [361] • Аппаратная реализация нейронных сетей: упрощают реализацию глубоких нейронных моделей на аппаратном уровне. [362] • Экономичность: требуют меньших энергозатрат по сравнению с традиционными схемами. [363] [0197] Активно исследуются в рамках разработки энергонезависимой памяти нового поколения и специализированных процессоров. [364] [0198] NP-сложные задачи характеризуются тем, что для их точного решения требуются ресурсы, растущие экспоненциально с увеличением размера входных данных. Такие задачи считаются практически нерешаемыми для традиционных компьютерных архитектур за реалистичное время, если размер задачи становится значительным. [365] [0199] Классические вычислительные архитектуры, включая ASIC (Application-Specific Integrated Circuit), основаны на стандартных цифровых логиках и операциях, которые подчиняются законам классической физики и информатики. Эти законы накладывают принципиальные ограничения на возможность эффективного решения NP-сложных задач. [366] [0200] Даже самые высокооптимизированные ASIC не смогут обойти фундаментальные сложности, присущие таким задачам. Однако, ASIC могут быть использованы для ускорения приближенных или эвристических методов решения NP-сложных задач, обеспечивая значительное повышение производительности по сравнению с универсальными процессорами. [367] [0201] Хотя ASIC не способны эффективно решить NP-сложные задачи в общем виде, однако они могут ускорить приближенное решение отдельных экземпляров таких задач за счет специализированной аппаратной оптимизации. Таким образом, в частном примере реализации ASIC могут выступать в качестве специализированных вычислительных устройств. [368] [0202] На Фиг. 3 представлен общий вид вычислительного устройства (300), на базе которого может быть реализован классический вычислитель (201). [369] [0203] В общем случае вычислительное устройство содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (305), и средство для сетевого взаимодействия (306). [370] [0204] Процессор (301) (или несколько процессоров, многоядерный процессор) может выбираться из ассортимента устройств, широко применяемых в текущее время, например, компаний Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. В качестве процессора (301) может также применяться графический процессор, например, Nvidia, AMD, Graphcore и пр. Процессор (301) имеет иерархию из нескольких уровней кэша (L1, L2, L3). [371] [0205] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). [372] [0206] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, Blu-Ray Disc, MD) и др. [373] [0207] Для организации работы компонентов устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, они могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п. [374] [0208] Для обеспечения взаимодействия пользователя с вычислительным устройством (200) применяются различные устройства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тачпад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п. [375] [0209] Средство сетевого взаимодействия (306) обеспечивает передачу данных устройством (300) посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [376] [0210] Дополнительно в составе устройства (300) могут также применяться средства спутниковой навигации, например, GPS, ГЛОНАСС, BeiDou, Galileo. [377] [0211] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. [378] [0212] Источники информации [379] [1] Microsoft Quantum | Microsoft Quantum Solutions, https://quantum.microsoft.com/en-us/solutions/microsoft-quantum-solutions [380] [2] Сервис квантовых облачных вычислений - Amazon Braket - AWS. https://aws. amazon. com/ru/braket [381] [3] IBM Quantum Computing | Home, https://www.ibm.com/quantum [382] [4] The Leap™ Quantum Cloud Service | D-Wave. https://www.dwavequantum.com/solutions-and-products/cloud-platform [383] [5] Программный эмулятор квантовых вычислений "SimCIM". https://new.fips.ru/registers-doc-view/fips_servlet?DB=EVM&DocNumber=2020662549 [384] [6] Как работают квантовые компьютеры. Собираем паззл / Хабр. https://habr.eom/ru/articles/480480/#R13 [385] [7] S. Harwood et al. "Formulating and Solving Routing Problems on Quantum Computers" in IEEE Transactions on Quantum Engineering, vol. 2, pp. 1-17, 2021. https://www.researchgate.net/publication/348665432_Formulating_and_Solving_Routing_Problems_on_Quantum_Computers [386] [8] S. Jiang et al. "Quantum Annealing for Prime Factorization", published 05.12.2018. https://www.nature.com/articles/s41598-018-36058-z [387] [9] S. Morita "Faster Annealing Schedules for Quantum Annealing", published 25.09.2007. https://journals.jps.jp/doi/abs/10.1143/JPSJ.76.104001 [388] [10] H. Robbins et al. "A Stochastic Approximation Method" in Annals of Mathematical Statistics, September, 1951. https://projecteuclid.org/journals/annals-of-mathematical-statistics/volume-22/issue-3/A-Stochastic-Approximation-Method/10.1214/aoms/1177729586.full

Формула 1. Способ оптимизации работы по меньшей мере одного квантового вычислителя, содержащий этапы, на которых: a) получают запрос на решение NP-сложной задачи, b) преобразуют NP-сложную задачу в форму, пригодную для решения на квантовом вычислителе, c) подбирают тестовую NP-задачу, эквивалентную по сложности преобразованной NP-сложной задаче, d) выполняют тестовую NP-задачу на квантовом вычислителе, e) проверяют правильность выполнения тестовой NP-задачи на квантовом вычислителе путем нахождения проверочного решения тестовой NP-задачи на классическом вычислителе и сравнения результатов вычислений, f) оценивают эффективность выполнения тестовой NP-задачи на квантовом вычислителе в соответствии с заданными критериями качества, g) корректируют значения управляющих параметров квантового вычислителя при оценке эффективности выполнения тестовой NP-задачи ниже порогового значения и повторяют этапы d)-f) до получения оптимальных значений управляющих параметров квантового вычислителя, при которых оценка эффективности выполнения тестовой NP-задачи превышает пороговое значение, h) выполняют NP-сложную задачу на квантовом вычислителе с применением оптимальных значений управляющих параметров квантового вычислителя. 2. Способ по п. 1, характеризующийся тем, что форма, пригодная для решения на квантовом вычислителе, является QUBO-задачей. 3. Способ по п. 1, характеризующийся тем, что форма, пригодная для решения на квантовом вычислителе, является моделью Изинга. 4. Способ по п. 2, характеризующийся тем, что подбор тестовой NP-задачи, эквивалентной по сложности преобразованной NP-сложной задаче, включает: • вычисление разреженности QUBO-матрицы преобразованной NP-сложной задачи, • выбор тестовой NP-задачи в зависимости от близости разреженности QUBO-матрицы преобразованной NP-сложной задачи к разреженности QUBO-матрицы тестовой NP-задачи. 5. Способ по п. 1, характеризующийся тем, что к заданным критериям качества, используемым при оценке эффективности выполнения тестовой NP-задачи на квантовом вычислителе, относятся: точность вычисления и/или скорость вычисления. 6. Способ по п. 1, характеризующийся тем, что пороговое значение оценки эффективности выполнения тестовой NP-задачи извлекают из запроса на решение NP-сложной задачи. 7. Способ по п. 1, характеризующийся тем, что корректировка значений управляющих параметров квантового вычислителя осуществляется при помощи алгоритмов оптимизации, минимизирующих функцию ошибок. 8. Способ по п. 1, характеризующийся тем, что дополнительно содержит этап сохранения оптимальных значений управляющих параметров квантового вычислителя, включающий: • ассоциацию оптимальных значений управляющих параметров квантового вычислителя со сложной NP-задачей и/или эквивалентной по сложности тестовой NP-задачей, • сохранение оптимальных значений управляющих параметров квантового вычислителя для дальнейшего использования в эквивалентных по сложности NP-задачах.

Источник: Роспатент / ФИПСПубликуется с разрешения правообладателя, подтверждённого редакцией.Оригинал: СПОСОБ ОПТИМИЗАЦИИ РАБОТЫ КВАНТОВЫХ ВЫЧИСЛИТЕЛЕЙ ↗

Есть кому отправить?

Скопируется постоянная ссылка на этот материал.

Комментарии

Обсуждайте статью, отвечайте и оценивайте комментарии. Вход — через ваш Яндекс ID.

Загружаем обсуждение…