https://github.com/artiomn/qsdk
Quantum SDK Prototype
https://github.com/artiomn/qsdk
dwave ising quantum-computing qubo sdk
Last synced: over 1 year ago
JSON representation
Quantum SDK Prototype
- Host: GitHub
- URL: https://github.com/artiomn/qsdk
- Owner: artiomn
- Created: 2020-10-13T01:01:09.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-14T00:05:55.000Z (over 5 years ago)
- Last Synced: 2025-01-20T18:42:24.153Z (over 1 year ago)
- Topics: dwave, ising, quantum-computing, qubo, sdk
- Language: Python
- Homepage:
- Size: 111 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Прототип квантового SDK
=======================
## Требования
### Предложить метод трансляции входных задач в базис QUBO
[Примеры от D-Wave](https://docs.dwavesys.com/docs/latest/c_handbook_1.html).
### Предоставить возможность решения квадратичной оптимизационной задачи
- В базисе [QUBO](https://en.wikipedia.org/wiki/Quadratic_unconstrained_binary_optimization): `argmin_s(s^T * Q * s)`. `s_i = {0, 1}`
- В базисе [Ising](https://en.wikipedia.org/wiki/Ising_model): `argmin_s(s^T * J * s + s^T * h)`. `s_i = {-1; 1}`
- Для базиса QUBO:
* Трансляция входных задач в базис QUBO.
* Учёт ограничений для QUBO: `sA <= b`.
- Для базиса Ising:
* Конвертация между в базис QUBO.
### Реализовать поддержку бэк-эндов
- Адиабатический КК. Доступ через удалённое API. [Dwave-leap SDK](https://www.dwavesys.com/take-leap).
- Квантовый симулятор. Локальный, либо удалённый. [Квантовый симулятор РКЦ](https://qml.rqc.ru/products/simulator).
- Оптимизационный пакет. Локальный.
## Компоновка
quantum-sdk:
- solvers - солверы для различных типов базисов.
* **QSolver** - интерфейс солвера.
- basis - работа с базисами:
* **convert** - процедуры для конвертации между базисами. Переделаны из того, что есть в D-Wave.dimod.
- backends - вычислительные бэк-энды. Каждый - наследник класса `Backend`.
* **dwave** - квантовый бэкэнд. Удалённый доступ по сети.
* **qsim** - квантовый симулятор РКЦ. Локальный или удалённый доступ по сети.
* **optim** - локальный оптимизационный пакет. Локальный запуск на классическом железе, доступ через импорт.
- examples - каталог с примерами.
### Диаграмма классов

## Пример использования
```python
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]
```