Qiskit - це програмний фреймворк з відкритим кодом для квантових обчислень. Він надає інструменти для створення та керування квантовими програмами та запуску їх на прототипі квантових пристроїв на IBM Q Experience або на симуляторах на локальному комп'ютері. Він слідує моделі квантової схеми для універсальних квантових обчислень і може бути використаний для будь-якої реалізації квантового комп'ютера (на даний момент [коли?] підтримує надпровідний квантовий комп'ютер та квантовий комп'ютер на йонних пастках[2]), які відповідають цій моделі.

Qiskit
Тип програмний каркас і бібліотека Pythond
Автор IBM Researchd
Версії 0.44.0 (27 липня 2023)[1]
Мова програмування Python і Rust
Ліцензія Apache License
Репозиторій https://github.com/Qiskit/qiskit, https://github.com/Qiskit/qiskit
Вебсайт qiskit.org

Qiskit був заснований IBM Research, щоб дозволити розробку програмного забезпечення для їх послуги хмарних квантових обчислень[en], IBM Q Experience.[3][4] Також наявні внески від сторонніх учасників, як правило, з академічних установ.[5]

Первинна версія Qiskit використовує мову програмування Python. Версії для Swift[6] та JavaScript[7] були спочатку вивчені, хоча розробка цих версій зупинена.

Приклади використовуваних квантових обчислень забезпечуються набором Jupyter notebooks.[8] Приклади включають вихідний код наукових досліджень, які використовують Qiskit,[9] а також набір вправ, які допоможуть людям засвоїти ази квантового програмування. Підручник з відкритим кодом, заснований на Qiskit, доступний як допомога у квантових алгоритмах університетського рівня або як доповнення до курсу квантових обчислень.[10]

Компоненти ред.

Qiskit надає можливість розробляти квантове програмне забезпечення як на рівні машинного коду OpenQASM, так і на абстрактних рівнях, придатних для кінцевих користувачів без досвіду квантових обчислень. Ця функціональність забезпечується такими окремими компонентами.[11]

Terra ред.

Qiskit Terra надає інструменти для створення квантової схеми на рівні квантового машинного коду або близького до нього.[12]

Це дозволяє будувати процеси, що працюють на квантовому обладнанні, виключно з точки зору квантових вентилів. Він також надає інструменти, що дозволяють оптимізувати квантові схеми для певного пристрою, а також керувати партіями завдань та запускати їх на квантових пристроях та тренажерах з віддаленим доступом.

Далі наведено простий приклад Qiskit Terra. При цьому квантова схема, яка створюється для двох кубітів, складається з квантових вентилів, необхідних для створення стану Белла[en]. Потім квантова схема закінчується квантовими вимірюваннями, які витягують біт з кожного кубіта.

from qiskit import QuantumCircuit, Aer, execute

qc = QuantumCircuit(2, 2)

qc.h(0)
qc.cx(0, 1)
qc.measure([0,1], [0,1])

Після створення квантової схеми її можна запускати на серверній системі (або квантовому обладнанні, або симуляторі). У наступному прикладі використовується локальний симулятор.

backend = Aer.get_backend("qasm_simulator")
job_sim = execute(qc, backend)
sim_result = job_sim.result()
print(sim_result.get_counts(qc))

Остаточний оператор print покаже результати, повернуті серверною базою. Це словник Python, який описує бітові рядки, отримані в результаті декількох прогонів квантової схеми. У квантовій схемі, що використовується в цьому прикладі, бітові рядки '00' та '11' повинні бути єдино можливими результатами і повинні відбуватися з однаковою ймовірністю. Тому для повних результатів вибірки, як правило, розділяються приблизно порівну між ними, наприклад {'00':519, '11':505} .

Експерименти, проведені на квантовому обладнанні за допомогою Qiskit Terra, використовувались у багатьох наукових роботах,[13] наприклад, в тестах на квантову корекцію помилок[14],[15] генерацію заплутанності[16] та моделювання динаміки, далекої від рівноваги[17].

Aqua ред.

Qiskit Aqua пропонує інструменти, якими можна користуватися без явного квантового програмування, які потрібні самому користувачу.[18] На даний момент підтримує застосування в хімії, ШІ, оптимізації та фінансах. Користувачі можуть створювати проблеми та отримувати результати, визначені за допомогою стандартних інструментів у цих доменах, таких як PySCF[en] для хімії. Потім Qiskit Aqua реалізує відповідний квантовий алгоритм.

Aer ред.

Найближчим часом розробка квантового програмного забезпечення в основному залежатиме від моделювання малих квантових пристроїв. Для Qiskit це забезпечується компонентом Aer. Це забезпечує симулятори, розміщені локально на пристрої користувача, а також ресурси високопродуктивних обчислень, доступні через хмару.[19] Симулятори можуть також імітувати вплив шуму для простих і складних моделей шуму.[20]

Ignis ред.

Ignis - це компонент, який містить інструменти для характеристики шуму в короткострокових пристроях, а також дозволяє проводити обчислення в присутності шуму. Сюди входять інструменти для порівняльного оцінювання короткочасних пристроїв, зменшення помилок та виправлення помилок.[21]

Примітки ред.

  1. Release 0.44.0 — 2023.
  2. Qiskit - Write once, target multiple architectures. IBM Research Blog (амер.). 5 листопада 2019. Архів оригіналу за 26 листопада 2020. Процитовано 20 грудня 2019.
  3. Magee, Tamlim (24 серпня 2018). What is Qiskit, IBM's open source quantum computing framework. Computerworld UK. Архів оригіналу за 6 березня 2019. Процитовано 11 грудня 2018.
  4. Hemsoth, Nicole (7 серпня 2018). QISKit Developments Key to IBM Quantum Engagement. The Next Platform. Архів оригіналу за 6 березня 2019. Процитовано 11 грудня 2018.
  5. Qiskit Github page. Архів оригіналу за 4 лютого 2021. Процитовано 15 січня 2021.
  6. Qiskit in swift. GitHub. Процитовано 24 вересня 2019.
  7. Qiskit (Quantum Information Science Kit) for JavaScript. GitHub. Архів оригіналу за 14 серпня 2018. Процитовано 24 вересня 2019.
  8. A collection of Jupyter notebooks showing how to use Qiskit that is synced with the IBM Q Experience. GitHub. Архів оригіналу за 7 липня 2018. Процитовано 24 вересня 2019.
  9. Celebrating the IBM Q Experience community, and their research. IBM. IBM Research Editorial Staff. 8 березня 2018. Архів оригіналу за 10 жовтня 2019. Процитовано 24 вересня 2019.
  10. Learn Quantum Computing using Qiskit. Архів оригіналу за 20 грудня 2019. Процитовано 20 грудня 2019.
  11. Javadi-Abhari, Ali; Gambetta, Jay M. (13 липня 2018). Qiskit and its Fundamental Elements. Medium. Архів оригіналу за 8 січня 2019. Процитовано 10 січня 2019.
  12. Qiskit Terra. Qiskit. Архів оригіналу за 10 жовтня 2019. Процитовано 24 вересня 2019.
  13. Community papers. IBM Q Experience. Архів оригіналу за 6 березня 2019. Процитовано 15 січня 2021.
  14. Wootton, James R.; Loss, Daniel (2018). Repetition code of 15 qubits. Physical Review A. 97 (5). arXiv:1709.00990. doi:10.1103/PhysRevA.97.052313. ISSN 2469-9926.
  15. Roffe, Joschka; Headley, David; Chancellor, Nicholas; Horsman, Dominic; Kendon, Viv (2018). Protecting quantum memories using coherent parity check codes. Quantum Science and Technology. 3 (3): 035010. arXiv:1709.01866. doi:10.1088/2058-9565/aac64e. ISSN 2058-9565.
  16. Wang, Yuanhao; Li, Ying; Yin, Zhang-qi; Zeng, Bei (2018). 16-qubit IBM universal quantum computer can be fully entangled. npj Quantum Information. 4 (1). doi:10.1038/s41534-018-0095-x. ISSN 2056-6387.
  17. Zhukov, A. A.; Remizov, S. V.; Pogosov, W. V.; Lozovik, Yu. E. (2018). Algorithmic simulation of far-from-equilibrium dynamics using quantum computer. Quantum Information Processing. 17 (9). arXiv:1807.10149. doi:10.1007/s11128-018-2002-y. ISSN 1570-0755.
  18. Qiskit Aqua website. Архів оригіналу за 10 жовтня 2019. Процитовано 5 листопада 2018.
  19. An Open High-Performance Simulator for Quantum Circuits. IBM. IBM Research Editorial Staff. 1 травня 2018. Архів оригіналу за 14 червня 2019. Процитовано 24 вересня 2019.
  20. Wood, Christopher J. (19 грудня 2018). Introducing Qiskit Aer: A high performance simulator framework for quantum circuits. Medium. Архів оригіналу за 1 листопада 2019. Процитовано 24 вересня 2019.
  21. Ignis provides tools for quantum hardware verification, noise characterization, and error correction. GitHub. Архів оригіналу за 25 березня 2019. Процитовано 24 вересня 2019.