https://github.com/artiomn/qsdk
Quantum SDK Prototype
https://github.com/artiomn/qsdk
dwave ising quantum-computing qubo sdk
Last synced: about 1 month ago
JSON representation
Quantum SDK Prototype
- Host: GitHub
- URL: https://github.com/artiomn/qsdk
- Owner: artiomn
- Created: 2020-10-13T01:01:09.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-10-14T00:05:55.000Z (over 4 years ago)
- Last Synced: 2024-11-19T16:02:38.095Z (3 months 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 QSolverqsolver = QSolver(backend=”quantum”)
Q = np.random.rand(5, 5)
s = qsolver.solve_qubo(Q)>> s = [1,0,0,1,1]
```