Перейти до основного вмісту

Моделювання природи

Подивись це відео від Олівії Лейнс про моделювання природи за допомогою квантових комп'ютерів або відкрий відео в окремому вікні на YouTube.

Цей урок використовує матеріали з цього туторіалу:

Utility-scale error mitigation with probabilistic error amplification tutorial

Вступ

Одне з найпереконливіших застосувань квантових комп'ютерів — їхня здатність моделювати природні явища. У цьому уроці ми розглянемо, як квантові комп'ютери використовуються для розв'язання задач квантової динаміки — зокрема, як вони допомагають нам зрозуміти часову еволюцію квантової системи.

Спочатку ми загально розглянемо основні кроки, що входять до проведення таких симуляцій. Потім вивчимо конкретний приклад: експеримент, який IBM представила у 2023 році та який продемонстрував концепцію квантової корисності. Цей експеримент є чудовим прикладом для розуміння практичних кроків та наслідків моделювання квантової динаміки на реальному квантовому обладнанні. Наприкінці у вас буде чіткіше уявлення про те, як дослідники підходять до цих задач і чому квантове моделювання є настільки перспективним для поглиблення нашого розуміння природного світу.

Річард Фейнман прочитав надзвичайно впливову лекцію в Калтеху у 1959 році. Вона мала знамениту назву «There's Plenty of Room at the Bottom» («Там унизу ще багато місця»), жартівливо натякаючи на величезні, недосліджені можливості на мікроскопічному рівні. Фейнман стверджував, що велика частина фізики на атомному та субатомному рівнях ще не була відкрита.

Значення цієї доповіді зросло у 1980-х роках із прогресом технологій. У цей період Фейнман повернувся до цих ідей в іншій важливій лекції в Калтеху, представивши статтю під назвою «Simulating Nature with Computers» («Моделювання природи за допомогою комп'ютерів»). Там він поставив сміливе запитання: чи можна використати комп'ютери для виконання точних симуляцій, які відтворюють поведінку природи на квантовому рівні? Фейнман запропонував, що замість використання грубих наближень для моделювання атомних процесів ми могли б використовувати комп'ютери, які використовують закони квантової механіки — не просто моделювати природу, а емулювати її.

Саме цей тип фізичного моделювання ми розглянемо в цьому уроці.

Пригадаймо цю часову шкалу, представлену в попередньому епізоді. На одному кінці спектру ми бачимо задачі, які легко розв'язати і не потребують підвищеної швидкості, яку можуть забезпечити квантові обчислення.

A diagram showing the spread of possible problems from easy to hard, needing no quantum computer to needing a fault-tolerant one, and indicating that we are focused on problems in the middle.

На протилежному кінці — надзвичайно складні задачі, що вимагають повністю стійких до помилок квантових машин — технології, яка поки що недоступна. На щастя, вважається, що багато задач моделювання потрапляють кудись посередині цієї шкали, у діапазон, де сьогоднішні квантові комп'ютери вже можуть бути ефективно застосовані. Є багато причин захоплюватися цією перспективою, оскільки моделювання природи формує основу для широкого спектру перспективних застосувань.

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

Загальний робочий процес

Перш ніж хтось зможе застосувати квантові обчислення до цих захопливих галузей, важливо спочатку зрозуміти основні кроки типового робочого процесу моделювання:

  1. Визначити гамільтоніан системи
  2. Кодування гамільтоніана
  3. Підготовка стану
  4. Часова еволюція стану
  5. Оптимізація схеми
  6. Виконання схеми
  7. Постобробка

Процес починається з визначення квантової системи, що цікавить. Це допомагає визначити гамільтоніан, який керує її часовою еволюцією, а також змістовний опис початкових властивостей системи, або її стану. Далі потрібно обрати відповідний метод реалізації часової еволюції цього стану. Зверніть увагу, що перші чотири кроки цього робочого процесу є частиною кроку Відображення (Mapping) у фреймворку Qiskit patterns.

Після налаштування схеми часової еволюції наступні етапи включають проведення власне експерименту. Зазвичай це включає оптимізацію квантової схеми, що реалізує алгоритм часової еволюції, виконання схеми на квантовому обладнанні та постобробку результатів. Це ті самі останні три кроки фреймворку Qiskit patterns.

Далі ми обговоримо, що означають ці кроки, перш ніж перейти до кодування.

1. Визначити гамільтоніан системи

Першим необхідним кроком при проведенні експерименту з моделювання є визначення гамільтоніана, що описує систему. У багатьох випадках гамільтоніан є добре відомим. Проте ми часто конструюємо його, підсумовуючи енергетичні внески від менших частин системи. Зазвичай це виражається як сума доданків:

H=iNHiH=\sum_i^N {H_i}

де кожен доданок HiH_i діє на одну з NN локальних підсистем (наприклад, окрему частинку або невелику групу частинок) повного гамільтоніана HH. У випадку нерозрізнюваних елементарних частинок важливо визначити, чи система включає ферміони чи бозони, де ферміони підкоряються принципу виключення Паулі, що означає, що два ідентичні ферміони не можуть займати однакові квантові стани, як електрони. На відміну від ферміонів, кілька бозонів можуть існувати в одному квантовому стані, і ця різниця впливає на статистику системи та на те, як її потрібно моделювати.

На практиці дослідників часто цікавлять фізичні системи, в яких елементи вважаються добре розділеними або маркованими, а отже, розрізнюваними, як спіни на решітці.

A lattice with spins and a molecule which is bonded together using electrons which are fermions.

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

H=iNHi=J<i,j>ZiZj+hi=0NXiH = \sum_i^N {H_i} = J \sum_{<i,j>}Z_iZ_j + h\sum_{i=0}^N X_i

Тут перший доданок представляє енергію взаємодії між сусідніми спінами. Позначення <i,j><i,j> вказує, що ми підсумовуємо по всіх парах спінів, безпосередньо з'єднаних на решітці, ZiZ_i та ZjZ_j — матриці Паулі-Z, що представляють стан спінів у вузлах ii та jj, а JJ — константа зв'язку, що визначає силу цієї взаємодії. Другий доданок представляє вплив зовнішнього магнітного поля, прикладеного до всієї системи. Тут XiX_i — матриця Паулі-X, що діє на окремий спін у вузлі ii, а hh вказує на силу цього зовнішнього поля.

2. Кодування гамільтоніана

Наступний крок — перекласти гамільтоніан у форму, яку може обробити квантовий комп'ютер, що ми називаємо кодуванням. Цей процес кодування критично залежить від типу частинок у системі: розрізнювані чи нерозрізнювані, і ферміони чи бозони, якщо частинки нерозрізнювані.

A flow chart showing different potential types of mappings for different system types including bosons, fermions, and distinguishable particles like spins on a lattice.

Якщо у вас система з розрізнюваними частинками, як спіни 1/21/2, закріплені на решітці, які ми розглянули вище, гамільтоніан часто вже записаний мовою, сумісною з кубітами. Оператор Паулі-Z, наприклад, природно описує спін вгору або вниз, і спеціальне кодування не потрібне.

При моделюванні нерозрізнюваних частинок — ферміонів або бозонів — необхідно застосувати перетворення кодування. Ці частинки описуються у спеціальному математичному фреймворку, що називається вторинним квантуванням, який відстежує число заповнення кожного квантового стану шляхом введення операторів народження та знищення, де оператор народження a^i\hat{a}_i^\dagger додає одну частинку до стану ii, а оператор знищення a^i\hat{a}_i видаляє одну частинку зі стану ii. На основі фреймворку вторинного квантування ферміони можуть бути перетворені за допомогою Бравого–Кітаєва та Жордана–Вігнера. Перетворення Жордана–Вігнера визначає ферміонний оператор народження f^j=(k<j(Zk))(Xj+iYj2)\hat{f}_j^\dagger = \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j + i Y_j}{2} \Bigr), який заповнює jj-й квантовий стан ферміоном, та ферміонний оператор знищення f^j=(k<j(Zk))(XjiYj2)\hat{f}_j= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j - i Y_j}{2} \Bigr), який звільняє ферміон із jj-го стану. Більше деталей про перетворення Жордана–Вігнера можна знайти в Quantum Computing in Practice, episode 5 - Mapping. Аналогічно, бозони також потребують власних методів кодування, таких як перетворення Гольштейна–Прімакова, для представлення кубітами.

Зрештою, незалежно від того, чи шлях прямий, чи потребує перекладу, мета однакова: виразити гамільтоніан системи у формі спінових операторів Паулі, які квантовий комп'ютер може зрозуміти та виконати.

3. Підготовка стану

Після кодування бажаного гамільтоніана у набір гейтів квантового комп'ютера наступним важливим кроком є вибір відповідного початкового квантового стану для початку моделювання. Вибір початкового стану впливає не лише на збіжність варіаційних алгоритмів, таких як Варіаційний квантовий солвер власних значень (VQE), а й на точність та ефективність часової еволюції та семплювання. По суті, початковий стан слугує відправною точкою обчислення, закладаючи основу для отримання корисних спостережуваних від модельованої квантової системи. В ідеалі цей стан повинен представляти фізично значущу конфігурацію досліджуваної системи.

Для багатьох квантово-хімічних моделювань стан Гартрі–Фока може бути хорошою відправною точкою. Мовою вторинного квантування, стан Гартрі–Фока (ϕHF|\phi\rangle_{HF}) створюється шляхом застосування операторів народження (a^i\hat{a}_i^\dagger) для кожної з найнижчих енергетичних орбіталей до вакуумного стану (vac=01...0k...0N=0N|vac\rangle = |0_1 ... 0_k ... 0_N\rangle = |0\rangle ^{\otimes N}), стану без електронів.

ϕHF=i=1ka^i0N=a^1...a^k01...0k...0N|\phi\rangle_{HF} = \prod\limits_{i=1}^k \hat{a}_i^\dagger |0\rangle ^{\otimes N} = \hat{a}_1^\dagger ... \hat{a}_k^\dagger |0_1 ... 0_k ... 0_N\rangle

Крім того, легко підготовлений ансатц зі значним перекриттям з істинним основним станом може слугувати хорошим початковим станом для задач хімії, таких як знаходження енергії основного стану.

Більш загально, ми можемо записати довільний nn-кубітний стан як суперпозицію обчислювальних базисних станів ci∣c_i\rangle з коефіцієнтами aia_i, що задовольняють умови нормування. Підготовка такого стану зазвичай може бути здійснена шляхом застосування специфічного оператора O^\hat{O} до початкового стану, яким за угодою є стандартний базисний стан з усіма нулями.

ψ=i=02n1aici=O^0nwithi=02n1ai2=1|\psi\rangle = \sum_{i=0}^{2^n-1}{a_i |c_i\rangle}=\hat{O}|0\rangle^{\otimes n}\\ \text{with} \qquad \sum_{i=0}^{2^n-1}{|a_i^2|}=1

Однак цей процес часто вимагає експоненційної кількості CNOT-гейтів, що робить його загалом ресурсоємним. Ми часто зосереджуємося на підготовці початкових станів, для яких вимоги до ресурсів реалізації є більш помірними. З цієї причини ми часто зосереджуємося на підготовці менш складних початкових станів. Поширеним та практичним вибором є продуктовий стан, де кубіти не заплутані, який можна підготувати лише за допомогою однокубітних операцій, значно зменшуючи ресурсні вимоги до підготовки стану та складність. 4. Часова еволюція стану

Тепер, коли початковий стан встановлено, ми нарешті можемо розпочати власне моделювання — дослідити, як стан системи ϕ(t=0)|\phi(t=0)\rangle змінився на ϕ(t)|\phi(t)\rangle через деякий час tt. У квантовій механіці ця еволюція описується єдиною математичною операцією, що називається оператором часової еволюції:

U(t)=eiHtU(t) = e^{-iHt}

де ми покладаємо =1\hbar=1 за угодою. Застосування цього оператора до нашого початкового стану дає нам кінцевий стан: ϕ(t)=eiHtϕ(t=0)|\phi(t)\rangle = e^{-iHt}|\phi(t=0)\rangle

Однак побудова квантової схеми, яка безпосередньо реалізує повний оператор eiHte^{-iHt}, зазвичай неможлива, коли наш гамільтоніан є сумою різних частин. Тому нам потрібна троттеризація.

Простими словами, троттеризація — це техніка наближення експоненціювання матриці (тут — гамільтоніана HH), особливо коли показник степеня містить некомутуючі оператори ([HA,HB]0[H_A, H_B] \neq 0). Часто гамільтоніан HH складається з кількох операторів, що не комутують. У цьому випадку їхні експоненти не можна розділити:

ei(HA+HB)teiHAteiHBte^{-i(H_A + H_B)t} \neq e^{-iH_A t}e^{-iH_B t}

Корисний підхід — почергово застосовувати експоненти їхньої часової еволюції протягом малих інтервалів t/nt/n загалом nn разів. У випадку цих двох некомутуючих доданків ми запишемо

eiHt(eiHAt/neiHBt/n)ne^{−i H t}\approx \left(e^{−i H_A t/n}e^{−i H_B t/n}\right)^n

A quantum circuit showing Trotterized time-evolution operators: operators split into small pieces.

Похибка, що вноситься цим наближенням, називається похибкою Троттера. Ми можемо зменшити цю похибку, збільшуючи nn, але це має свою ціну. Також існують більш просунуті формули вищих порядків (другого порядку та інші варіанти). Наприклад, формула другого порядку забезпечує кращу точність шляхом застосування кроків у симетричному порядку.

First order:eiHt(jeiHit/n)nSecond order:eiHt(j=1NeiHjt/2n)n(k=N1eiHkt/2n)n\begin{aligned} \text{First order:} & \qquad e^{-iHt}\approx \left(\prod_j{e^{-iH_i t/n}}\right)^n\\ \text{Second order:} & \qquad e^{-iHt}\approx \left(\prod_{j=1}^N{e^{-iH_j t/2n}}\right)^n\left(\prod_{k=N}^1{e^{-iH_k t/2n}}\right)^n \end{aligned}

Тут NN — це кількість некомутуючих доданків HjH_j у гамільтоніані, що розбивається таким чином, а nn — кількість малих часових кроків, на які розбивається еволюція. Зверніть увагу на зворотний порядок операторів у другому добутку у формулі другого порядку.

Дивись розділ про троттеризацію в курсі Квантові алгоритми діагоналізації для отримання додаткових деталей. 5. Оптимізація схеми

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

  • Встановити розкладку кубітів, що відображає абстрактні кубіти схеми на фізичні кубіти обладнання. Цей крок необхідний, оскільки архітектура обладнання часто має специфічні обмеження зв'язності, тоді як проєктування квантових схем зазвичай припускає, що будь-який кубіт може взаємодіяти з будь-яким іншим.
  • Вставити swap-гейти за потребою, щоб забезпечити взаємодію між кубітами, які не з'єднані безпосередньо на пристрої.
  • Перекласти гейти схеми в інструкції архітектури набору команд (ISA), які обладнання може виконати безпосередньо.
  • Виконати оптимізації схеми для зменшення глибини схеми та кількості гейтів. Ця оптимізація також може бути застосована раніше, до віртуальної схеми, перш ніж кубіти будуть призначені на конкретні з'єднання обладнання.

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

6. Виконання схеми

Після завершення кроку оптимізації ми готові виконати схему за допомогою примітиву. Ми розглядаємо експеримент моделювання, в якому метою є зрозуміти, як певні властивості системи змінюються з часом. Для цієї мети примітив Estimator є найбільш доречним вибором, оскільки він дозволяє вимірювати очікувані значення спостережуваних, що відповідають цим властивостям.

Далі ми використовуємо опції, включаючи техніки придушення та пом'якшення помилок, для покращення точності Estimator. Нарешті, ми запускаємо експеримент для збору результатів.

7. Постобробка

Останній крок — постобробка зібраних даних. Це включає витягнення виміряних очікуваних значень або, якщо використовувався примітив Sampler, вибраного розподілу ймовірностей в обчислювальному базисі. Коли потрібні лише очікувані значення відповідних спостережуваних, їх можна безпосередньо отримати від примітиву Estimator, доступні як необроблені результати, так і з застосованим пом'якшенням помилок. Часто ці виміряні очікувані значення слугують відправною точкою для додаткових обчислень, що включають інші величини, що цікавлять. Такі додаткові обчислення зазвичай не потребують квантових обчислень і можуть бути ефективно виконані на класичному комп'ютері.

Відтворення статті «Utility»

примітка

Ця частина є високорівневим оглядом туторіалу Utility-scale error mitigation with probabilistic error amplification, який відтворює результати статті Evidence for the Utility of Quantum Computing Before Fault Tolerance. Ми настійно рекомендуємо відкрити вказаний туторіал разом із цією сесією.

Тепер ми розглянемо конкретний приклад із надзвичайно впливової статті, опублікованої IBM у 2023 році, під назвою Evidence for the Utility of Quantum Computing Before Fault Tolerance, яку часто називають «статтею про корисність» (Utility paper).

The cover art of the article we call the utility paper, published in the journal Nature.

Після публікації ця робота швидко стала знаковим дослідженням у спільноті квантових обчислень. Її центральна теза полягає в тому, що зашумлений квантовий комп'ютер, що використовує 127 кубітів та 2880 гейтів, може видавати точні очікувані значення для квантових схем, які виходять за межі можливостей методів класичного моделювання грубою силою, що намагаються виконати точне моделювання тих самих схем.

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

Ще одним важливим аспектом цієї роботи є те, що вона була широко відтворена: дослідники та користувачі тепер мають можливість відтворити та перевірити експеримент за допомогою хмарних квантових систем IBM та програмного фреймворку Qiskit. Далі ми проведемо вас через кроки для виконання цього відтворення самостійно, розглядаючи туторіал IBM крок за кроком.

У цьому уроці ми обговорюємо конкретні кроки, необхідні для перетворення задачі на вхідні дані, які може обробити квантовий пристрій. Ми зосереджуємося на моделюванні динаміки повної намагніченості системи магнітних дипольних спінів, розташованих на решітці та підданих зовнішньому магнітному полю. Ця система може бути описана моделлю Ізінга з поперечним магнітним полем. Ми представляємо її за допомогою параметризованої квантової схеми, де параметри відповідають налаштовуваним значенням спін-спінових (ZZZZ) взаємодій та силі зовнішнього поперечного магнітного поля (BxB_x, параметризованого за допомогою XX).

Spins on a lattice that point either up or down.

Оскільки ця серія називається «Квантові обчислення на практиці», ми розглянемо додаткові деталі експериментальних технік, використаних для покращення якості результатів. Одна важлива процедура включає ідентифікацію та видалення «поганих» кубітів — тих, що мають низьку вірність гейтів або короткі часи декогеренції — які можуть суттєво вплинути на результат експерименту. Такі проблемні кубіти можуть виникати через погане калібрування або взаємодію з дворівневими системами (TLS). Видалення цих кубітів змінює нативну топологію обладнання, фактично змінюючи решітку, на якій моделюється система.

Крім того, ми обговоримо, як побудувати параметризовану квантову схему, що реалізує часову еволюцію системи за допомогою троттеризації. Ключовою частиною цього процесу є ідентифікація заплутуючих шарів у схемі, які відіграють вирішальну роль в основній техніці пом'якшення помилок.

Qiskit patterns крок 1: Відображення

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

  • Створює параметризовану схему моделі Ізінга
  • Створює заплутуючі шари та видаляє погані кубіти
  • Генерує троттеризовану версію схеми

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

  • Видалення зв'язків між кубітами
  • Визначення зв'язків між кубітами
  • Побудова шарових зв'язків
  • Побудова заплутуючого шару
  • Визначення троттеризованої схеми

Тут давайте розглянемо теми, пов'язані з цими функціями, трохи детальніше. Шарові зв'язки

Шарові зв'язки визначають, як кубіти взаємодіють зі своїми сусідами під час моделювання. Наші квантові пристрої використовують топологію heavy-hexagonal — характерний шаблон з'єднання кубітів. У межах цієї топології з'єднання між кубітами — відомі як «ребра» — можуть бути розділені на три окремі набори. Важливо, що жодні два з'єднання в одному наборі не мають спільного кубіта. Ця організація вирішує ключове обмеження обладнання: на реальному квантовому комп'ютері кубіт може брати участь лише в одному двокубітному гейті в будь-який момент часу.

A color-coded map showing layers of couplings. The emphasizes that two-qubit gates can be executed across the entire quantum computer, even though only one two-qubit gate can be executed simultaneously on a given qubit.

Структуруючи всі з'єднання у три окремі шари, двокубітні гейти можуть бути застосовані по всьому пристрою у три послідовні раунди. Це гарантує, що жоден кубіт не бере участь більш ніж в одному гейті на шар. Ці гейти реалізують ZZ-взаємодію в моделі Ізінга, і вони повторюються на кожному часовому кроці моделювання (кожному кроці Троттера).

Крім того, використовується техніка, що називається twirling, для зміни характеристик шуму в пристрої. Twirling перетворює шум таким чином, що навіть прості моделі шуму стають більш точними представленнями фізичних помилок. Це вдосконалення дозволяє точніше характеризувати шум, що потім можна використати для покращення стратегій пом'якшення помилок. Видалення «поганих» кубітів

Наступний крок включає видалення «поганих» кубітів зі списку фізичних кубітів, доступних для експерименту. Кубіт може стати «поганим» з різних причин. Іноді це просто питання поганого калібрування, яке можна виправити повторним калібруванням. В інших випадках проблема є складнішою і пов'язана з так званим дефектом дворівневої системи (TLS). Ці дефекти TLS спричиняють флуктуації параметрів кубіта та релаксацію. Вирішення цього часто вимагає нагрівання всієї системи з подальшим охолодженням — процес, який може зайняти деякий час і не є можливим при віддаленому доступі до квантового обладнання через хмару.

Наразі найпростіший підхід — виключити ці проблемні кубіти з пулу фізичних кубітів, що будуть використані в експерименті. IBM Quantum Platform® дозволяє легко визначити, які кубіти працюють незадовільно на QPU. Ви можете або відкрити QPU та візуалізувати їхні характеристики безпосередньо на платформі, або завантажити дані з платформи як CSV-файл. Далі створіть список кубітів для виключення та видаліть їх із загального набору фізичних кубітів на пристрої.

The layout of a quantum computer is shown with a low-performing qubit indicated in pink.

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

Настав час побудувати нашу троттеризовану схему. Як обговорювалося раніше, троттеризація розбиває часову еволюцію на дискретні кроки, тому нам потрібно обрати, скільки кроків використовувати. Для цього прикладу ми оберемо шість кроків. Загалом підхід включає балансування похибки Троттера — похибки наближення, що вноситься алгоритмом — з помилками, спричиненими декогеренцією. Збільшення кількості кроків Троттера зменшує похибку наближення, але вимагає глибших квантових схем, які більш чутливі до шуму декогеренції.

Схема буде визначена за допомогою кількох параметрів: параметр theta, що представляє силу зовнішнього магнітного поля, зв'язки між шарами, кількість кроків, кількість кубітів і, звичайно, вибір бекенду пристрою. Оскільки намагніченість системи залежить від сили зовнішнього магнітного поля, корисно запустити моделювання при різних значеннях магнітного поля. Ця варіація відповідає різним кутам обертання для гейта RX у схемі.

from qiskit.circuit import Parameter

num_steps = 6 #Trotter steps
theta = Parameter("theta")
circuit = trotter_circuit(
theta, layer_couplings, num_steps, qubits = good_qubits, backend = backend
)
num_params = 12

# 12 parameter values for Rx between [0,p/2].
#Reshape to outer product broadcast with observables

parameter_values = np.linespace(0,np.pi/2,num_params).reshape((num_params,1))
num_params = parameter_values.size

Qiskit patterns крок 2: Оптимізація

Тепер, коли ми згенерували нашу схему, наступний крок — оптимізувати її. Перша частина цього процесу включає визначення pass manager. У контексті Qiskit SDK транспіляція — це процес перетворення вхідної схеми у форму, придатну для виконання на квантовому пристрої. Це перетворення відбувається через послідовність кроків, відомих як transpiler passes. Pass manager — це об'єкт, що містить список цих transpiler passes і може застосовувати їх до схеми. Для створення pass manager ви ініціалізуєте PassManager із бажаним списком transpiler passes. Зрештою, pass manager створює ISA-схему — схему, виражену в термінах архітектури набору команд (ISA) бекенду. Це означає, що схема представлена за допомогою гейтів, нативних для обладнання бекенду, хоча вона ще не містить інформації про тайминг, необхідної для запуску схеми на пристрої.

Qiskit patterns крок 3: Виконання за допомогою примітивів

Настав час запустити нашу схему. Ми використаємо Estimator як основний інструмент для цього експерименту, оскільки наша мета — виміряти повну намагніченість системи. Estimator спеціально розроблений для оцінки очікуваних значень спостережуваних, що робить його ідеальним вибором тут. На цьому етапі також важливо налаштувати наші параметри пом'якшення помилок. Ми застосуємо Zero Noise Extrapolation (ZNE) для покращення точності наших результатів. У туторіалі ви побачите, що ми вказуємо два або більше значень шумових факторів, при яких оцінюються екстрапольовані моделі, і обираємо «Probabilistic Error Amplification» (PEA) як метод підсилення. PEA є кращим для цього експерименту, оскільки він масштабується значно краще, ніж інші варіанти, що є критичним при роботі з системами зі 100 або більше кубітів.

Це все, що потрібно для запуску експерименту.

Інтерлюдія про пом'якшення помилок

Перш ніж перейти до постобробки, давайте коротко пояснимо, що мається на увазі під Zero Noise Extrapolation (ZNE). Ми вже торкалися цієї концепції в попередніх епізодах, але варто коротко повторити. ZNE — це техніка пом'якшення помилок, призначена для зменшення впливу невідомого шуму, що виникає під час виконання квантових схем, за умови, що цей шум можна контрольовано масштабувати. Метод спирається на припущення, що очікувані значення масштабуються з шумом відповідно до відомої функції:

A(λ)=A(0)+k=0makλk+R,\langle A(\lambda)\rangle = \langle A(0)\rangle + \sum_{k=0}^m {a_k \lambda^k}+R,

де λλ представляє силу шуму, яку можна навмисно підсилити.

Процес реалізації ZNE складається з наступних кроків:

  1. Підсилити шум схеми для різних шумових факторів λ1λ_1, λ2λ_2, … .
  2. Виконати кожну шумопідсилену схему для вимірювання відповідних очікуваних значень A(λ1)\langle A(\lambda_1)\rangle, A(λ2)\langle A(\lambda_2)\rangle, ….
  3. Екстраполювати ці результати назад до границі нульового шуму \langle A(λ0)A(\lambda_0)\rangle.

Plots are shown of an expectation value, that same expectation value with noise amplified, and then the value extrapolated back to the case of zero noise.

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

Основна проблема ефективної реалізації ZNE полягає в розробці точної моделі шуму для очікуваного значення та контрольованому й зрозумілому підсиленні шуму. Поширені техніки підсилення помилок у ZNE включають масштабування тривалості імпульсу через калібрування, повторення гейтів за допомогою тотожних циклів та додавання шуму через семплювання каналів Паулі — метод, відомий як Probabilistic Error Amplification (PEA).

Серед них PEA часто є кращим вибором з кількох причин:

  • Розтягування імпульсу має високу обчислювальну вартість.
  • Згортання гейтів, яке використовує тотожні вставки, не має надійних теоретичних гарантій збереження зсуву шуму.
  • PEA застосовний до будь-якої схеми, що виконується з нативним шумовим фактором, хоча потребує попереднього навчання моделі шуму.

Three methods of amplifying noise for ZNE are shown: pulse stretching, gate folding, and probabilistic error amplification.

PEA працює за припущення послідовної моделі шуму, подібної до тієї, що використовується в ймовірнісному усуненні помилок (PEC). Однак, на відміну від PEC, він уникає експоненційних накладних витрат на семплювання, які зазвичай зростають із шумом схеми. Ця ефективність робить PEA практичним і надійним підходом до підсилення шуму в ZNE, сприяючи більш надійному пом'якшенню квантових помилок. Для характеризації моделі шуму спочатку потрібно визначити окремі шари двокубітних операцій у схемі. Для кожного з цих шарів ми застосовуємо процедуру Pauli twirling до двокубітних гейтів, що допомагає забезпечити точний опис шуму за допомогою моделі затухаючого шуму. Далі ми повторюємо пари тотожних шарів на різних глибинах і, нарешті, підгоняємо значення вірності для визначення рівнів помилок для кожного шумового каналу.

Хоча розуміння цього методу концептуально корисне, його реалізація в Qiskit набагато простіша, як показано у супровідному туторіалі.

Steps are shown in learning a sparse Pauli-Lindblad noise model

Qiskit patterns крок 4: Постобробка

Після завершення експерименту ви можете переглянути результат, виконавши постобробку. Пунктирна сіра лінія на графіку представляє результати, отримані за допомогою наближених класичних методів, з похибкою наближення, зменшеною до низького порогу. Необроблені точки даних для різних шумових факторів, обраних на початку, явно зміщені від цієї пунктирної лінії. Натомість суцільна синя лінія показує дані після застосування нашої ZNE-обробки, яка помітно наближає результати до точних значень. Підсумовуючи, значення, отримані за нормальних умов шуму (шумовий фактор nf=1.0), показують значне відхилення від точних результатів. Тим часом значення з пом'якшенням добре узгоджуються з точними, демонструючи ефективність техніки пом'якшення шуму на основі PEA.

A plot of exact solutions, unmitigated solutions, and mitigated solutions to the problem solved in the utility paper.

Підсумок

Коротко підсумуємо, що ми вивчили:

  • Квантове моделювання є однією з найперспективніших галузей застосування в короткостроковій та середньостроковій перспективі.
  • Воно має широкий спектр застосувань — від фармацевтики до фізики високих енергій, матеріалознавства та інших галузей.
  • Стаття Utility від IBM, опублікована у 2023 році, вказала шлях до можливості використання квантових комп'ютерів для наукових відкриттів, і ми розглянули пов'язаний туторіал, що супроводжує цю статтю.
  • Кроки для проходження задачі моделювання від початку до кінця є відносно простими, і ми сподіваємося, що ви тепер зможете використовувати це відео та туторіал як посібник для ще більшої кількості задач моделювання.

Опитування після завершення курсу

Congratulations on completing this course! Please take a moment to help us improve our course by filling out the following quick survey. Your feedback will be used to enhance our content offering and user experience. Thank you!