Skip to content

artiomn/qsdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Прототип квантового SDK

Требования

Предложить метод трансляции входных задач в базис QUBO

Примеры от D-Wave.

Предоставить возможность решения квадратичной оптимизационной задачи

  • В базисе QUBO: argmin_s(s^T * Q * s). s_i = {0, 1}
  • В базисе Ising: argmin_s(s^T * J * s + s^T * h). s_i = {-1; 1}
  • Для базиса QUBO:
    • Трансляция входных задач в базис QUBO.
    • Учёт ограничений для QUBO: sA <= b.
  • Для базиса Ising:
    • Конвертация между в базис QUBO.

Реализовать поддержку бэк-эндов

  • Адиабатический КК. Доступ через удалённое API. Dwave-leap SDK.
  • Квантовый симулятор. Локальный, либо удалённый. Квантовый симулятор РКЦ.
  • Оптимизационный пакет. Локальный.

Компоновка

quantum-sdk:

  • solvers - солверы для различных типов базисов.
    • QSolver - интерфейс солвера.
  • basis - работа с базисами:
    • convert - процедуры для конвертации между базисами. Переделаны из того, что есть в D-Wave.dimod.
  • backends - вычислительные бэк-энды. Каждый - наследник класса Backend.
    • dwave - квантовый бэкэнд. Удалённый доступ по сети.
    • qsim - квантовый симулятор РКЦ. Локальный или удалённый доступ по сети.
    • optim - локальный оптимизационный пакет. Локальный запуск на классическом железе, доступ через импорт.
  • examples - каталог с примерами.

Диаграмма классов

Classes diagram

Пример использования

from quantum_sdk import QSolver

qsolver = QSolver(backend=quantum”)
Q = np.random.rand(5, 5)
s = qsolver.solve_qubo(Q)

>> s = [1,0,0,1,1]

Releases

No releases published

Packages

No packages published

Languages