Qiskit - це програмний фреймворк з відкритим кодом для квантових обчислень. Він надає інструменти для створення та керування квантовими програмами та запуску їх на прототипі квантових пристроїв на IBM Q Experience або на симуляторах на локальному комп'ютері. Він слідує моделі квантової схеми для універсальних квантових обчислень і може бути використаний для будь-якої реалізації квантового комп'ютера (на даний момент підтримує надпровідний квантовий комп'ютер та квантовий комп'ютер на йонних пастках), які відповідають цій моделі.
Qiskit був заснований IBM Research, щоб дозволити розробку програмного забезпечення для їх послуги , IBM Q Experience. Також наявні внески від сторонніх учасників, як правило, з академічних установ.
Первинна версія Qiskit використовує мову програмування Python. Версії для Swift та JavaScript були спочатку вивчені, хоча розробка цих версій зупинена.
Приклади використовуваних квантових обчислень забезпечуються набором Jupyter notebooks. Приклади включають вихідний код наукових досліджень, які використовують Qiskit, а також набір вправ, які допоможуть людям засвоїти ази квантового програмування. Підручник з відкритим кодом, заснований на Qiskit, доступний як допомога у квантових алгоритмах університетського рівня або як доповнення до курсу квантових обчислень.
Компоненти Qiskit надає можливість розробляти квантове програмне забезпечення як на рівні машинного коду OpenQASM, так і на абстрактних рівнях, придатних для кінцевих користувачів без досвіду квантових обчислень. Ця функціональність забезпечується такими окремими компонентами.
Terra Qiskit Terra надає інструменти для створення квантової схеми на рівні квантового машинного коду або близького до нього.
Це дозволяє будувати процеси, що працюють на квантовому обладнанні, виключно з точки зору квантових вентилів. Він також надає інструменти, що дозволяють оптимізувати квантові схеми для певного пристрою, а також керувати партіями завдань та запускати їх на квантових пристроях та тренажерах з віддаленим доступом.
Далі наведено простий приклад Qiskit Terra. При цьому квантова схема, яка створюється для двох кубітів, складається з квантових вентилів, необхідних для створення . Потім квантова схема закінчується квантовими вимірюваннями, які витягують біт з кожного кубіта.
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, використовувались у багатьох наукових роботах, наприклад, в тестах на квантову корекцію помилок, генерацію заплутанності та моделювання динаміки, далекої від рівноваги.
Aqua Qiskit Aqua пропонує інструменти, якими можна користуватися без явного квантового програмування, які потрібні самому користувачу. На даний момент підтримує застосування в хімії, ШІ, оптимізації та фінансах. Користувачі можуть створювати проблеми та отримувати результати, визначені за допомогою стандартних інструментів у цих доменах, таких як для хімії. Потім Qiskit Aqua реалізує відповідний квантовий алгоритм.
Aer Найближчим часом розробка квантового програмного забезпечення в основному залежатиме від моделювання малих квантових пристроїв. Для Qiskit це забезпечується компонентом Aer. Це забезпечує симулятори, розміщені локально на пристрої користувача, а також ресурси високопродуктивних обчислень, доступні через хмару. Симулятори можуть також імітувати вплив шуму для простих і складних моделей шуму.
Ignis Ignis - це компонент, який містить інструменти для характеристики шуму в короткострокових пристроях, а також дозволяє проводити обчислення в присутності шуму. Сюди входять інструменти для порівняльного оцінювання короткочасних пристроїв, зменшення помилок та виправлення помилок.
Примітки