Qiskit

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Qiskit
Типпрограмний каркас і бібліотека Pythond
АвторIBM Researchd
Версії0.44.0 (27 липня 2023)_—_2023.-1">[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]

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].

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

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

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

Примітки

[ред. | ред. код]
_1-0">↑ Release 0.44.0 — 2023.
  • Qiskit - Write once, target multiple architectures. IBM Research Blog (амер.). 5 листопада 2019. Архів оригіналу за 26 листопада 2020. Процитовано 20 грудня 2019.
  • Magee, Tamlim (24 серпня 2018). What is Qiskit, IBM's open source quantum computing framework. Computerworld UK. Архів оригіналу за 6 березня 2019. Процитовано 11 грудня 2018.
  • Hemsoth, Nicole (7 серпня 2018). QISKit Developments Key to IBM Quantum Engagement. The Next Platform. Архів оригіналу за 6 березня 2019. Процитовано 11 грудня 2018.
  • Qiskit Github page. Архів оригіналу за 4 лютого 2021. Процитовано 15 січня 2021.
  • Qiskit in swift. GitHub. Процитовано 24 вересня 2019.
  • Qiskit (Quantum Information Science Kit) for JavaScript. GitHub. Архів оригіналу за 14 серпня 2018. Процитовано 24 вересня 2019.
  • A collection of Jupyter notebooks showing how to use Qiskit that is synced with the IBM Q Experience. GitHub. Архів оригіналу за 7 липня 2018. Процитовано 24 вересня 2019.
  • Celebrating the IBM Q Experience community, and their research. IBM. IBM Research Editorial Staff. 8 березня 2018. Архів оригіналу за 10 жовтня 2019. Процитовано 24 вересня 2019.
  • Learn Quantum Computing using Qiskit. Архів оригіналу за 20 грудня 2019. Процитовано 20 грудня 2019.
  • Javadi-Abhari, Ali; Gambetta, Jay M. (13 липня 2018). Qiskit and its Fundamental Elements. Medium. Архів оригіналу за 8 січня 2019. Процитовано 10 січня 2019.
  • Qiskit Terra. Qiskit. Архів оригіналу за 10 жовтня 2019. Процитовано 24 вересня 2019.
  • Community papers. IBM Q Experience. Архів оригіналу за 6 березня 2019. Процитовано 15 січня 2021.
  • 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.
  • 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.
  • 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.
  • 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.
  • Qiskit Aqua website. Архів оригіналу за 10 жовтня 2019. Процитовано 5 листопада 2018.
  • An Open High-Performance Simulator for Quantum Circuits. IBM. IBM Research Editorial Staff. 1 травня 2018. Архів оригіналу за 14 червня 2019. Процитовано 24 вересня 2019.
  • Wood, Christopher J. (19 грудня 2018). Introducing Qiskit Aer: A high performance simulator framework for quantum circuits. Medium. Архів оригіналу за 1 листопада 2019. Процитовано 24 вересня 2019.
  • Ignis provides tools for quantum hardware verification, noise characterization, and error correction. GitHub. Архів оригіналу за 25 березня 2019. Процитовано 24 вересня 2019.