Qiskit

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 17:26, 13 лютого 2022, створена TohaomgBot (обговорення | внесок) (Перекладено дати в примітках з англійської на українську)
Перейти до навігації Перейти до пошуку
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 Q Experience або на симуляторах на локальному комп'ютері. Він слідує моделі квантової схеми для універсальних квантових обчислень і може бути використаний для будь-якої реалізації квантового комп'ютера (на даний момент [коли?] підтримує надпровідний квантовий комп'ютер та квантовий комп'ютер на йонних пастках[2]), які відповідають цій моделі.

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. Процитовано 20 грудня 2019.
  3. Magee, Tamlim (24 серпня 2018). What is Qiskit, IBM's open source quantum computing framework. Computerworld UK. Процитовано 11 грудня 2018.
  4. Hemsoth, Nicole (7 серпня 2018). QISKit Developments Key to IBM Quantum Engagement. The Next Platform. Процитовано 11 грудня 2018.
  5. Qiskit Github page.
  6. Qiskit in swift. GitHub. Процитовано 24 вересня 2019.
  7. Qiskit (Quantum Information Science Kit) for JavaScript. GitHub. Процитовано 24 вересня 2019.
  8. A collection of Jupyter notebooks showing how to use Qiskit that is synced with the IBM Q Experience. GitHub. Процитовано 24 вересня 2019.
  9. Celebrating the IBM Q Experience community, and their research. IBM. IBM Research Editorial Staff. 8 березня 2018. Процитовано 24 вересня 2019.
  10. Learn Quantum Computing using Qiskit. Процитовано 20 грудня 2019.
  11. Javadi-Abhari, Ali; Gambetta, Jay M. (13 липня 2018). Qiskit and its Fundamental Elements. Medium. Процитовано 10 січня 2019.
  12. Qiskit Terra. Qiskit. Архів оригіналу за 10 жовтня 2019. Процитовано 24 вересня 2019.
  13. Community papers. IBM Q Experience.
  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. Процитовано 24 вересня 2019.
  20. Wood, Christopher J. (19 грудня 2018). Introducing Qiskit Aer: A high performance simulator framework for quantum circuits. Medium. Процитовано 24 вересня 2019.
  21. Ignis provides tools for quantum hardware verification, noise characterization, and error correction. GitHub. Процитовано 24 вересня 2019.