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