Dressed-бокси
Фізичні механізми шуму, що виникають під час виконання квантових схем, є контекстними. Коли операції на неперетинних множинах кубітів застосовуються одночасно, профіль шуму всієї операції може відрізнятися від профілів шуму її складових, якщо застосовувати їх окремо. Так само для операцій, які в ідеалі комутують на тих самих кубітах, профіль шуму окремих операцій може не комутувати і взагалі бути іншим, якщо змінити порядок операцій. Тому протоколи придушення, пом'якшення та корекції шуму мають знати контекст, у якому він виникає.
Samplomatic використовує інструкції box, щоб міркувати про набори операцій схеми, які слід вважати такими, що мають стабільний контекст шуму, і використовує анотації на боксах, щоб дозволити користувачам оголошувати й налаштовувати цей намір. Кожен бокс є областю, що володіє набором кубітів, операціями, які діють на ці кубіти, і списком анотацій. Анотації Samplomatic задають директиви та dressings. Директиви визначають, що робити з боксом, наприклад, виконати twirl боксу. Dressings — це групи параметризованих вентилів, які додаються з лівого або правого боку бокса, наприклад, шар однокубітних вентилів. Вентилі в dressing містять вентилі з бокса та операції, потрібні для виконання директив, такі як:
-
Вентилі в боксі, які сумісні з параметризованими вентилями і розташовані з того ж боку.
-
Twirling-вентилі, вибрані з набору для рандомізації бокса.
-
Вентилі ін'єкції шуму, вибрані з мапи Паулі–Ліндблада.
-
Вентилі зміни базису, задані користувачем.
Зауваж, що директиви можуть змінювати dressings інших боксів.
Приклад
Припустімо, ми хочемо виконати twirl наступної схеми, додавши випадкові вентилі Паулі до і після паралельних вентилів заплутування, які не змінюють логічний вміст схеми, але змінюють ефективну модель шуму.
Схема для Pauli twirling.
Це досягається стратифікацією схеми на бокси та додаванням анотацій twirl.
Схема з директивами Pauli twirling. Символ @ використовується для задання директив, dressing за замовчуванням ліворуч.
Кожен dressed-бокс містить шар однокубітних вентилів і шар двокубітних вентилів заплутування на неперетинних парах кубітів. Шар вентилів заплутування оточений шарами випадкових вентилів Паулі так, що логічна дія бокса не змінюється. Ці випадкові шари Паулі є віртуальними так само, як віртуальний вентиль Z. Вони не додають операцій до схеми, а натомість діють як директива, що змінює спосіб реалізації сусідніх однокубітних вентилів.
Схема з dressings і вентилями з директив. Dressings — це пунктирні бокси. Шари Паулі, з'єднані стрілками, скасовують один одного. Останній шар Паулі буде застосовано як бітові фліпи до результатів вимірювань.
Випадковий шар Паулі між вентилями заплутування та однокубітними вентилями складається в шар однокубітних вентилів і реалізується в його dressing. Інший випадковий шар Паулі буде складено в dressing наступного dressed-бокса.
Підсумовуючи, ліва (або права) директива twirl реалізує випадковий Паулі в dressing цього бокса і застосовує Паулі, що його скасовує, в dressing наступного (або попереднього) бокса. Директиви inject noise і basis change працюють аналогічно.
Рандомізація схеми з віртуальними вентилями
Samplomatic використовує фреймворк віртуальних вентилів, щоб міркувати про схеми з dressed-боксами. Концептуально, і як це реалізовано в екземплярі Samplex, створеному процесом build(), віртуальні вентилі генеруються на межі бокса, протилежній його dressing. Ці віртуальні вентилі переміщуються схемою певним чином і мають бути складені в dressing. Якщо всі віртуальні вентилі можна скласти в dressing, рандомізації схеми можна будувати процедурно.
Схема з директивами twirl, basis change та inject noise.
Вентилі з боку dressing, сумісні з шаблонною параметризацією dressing, можна скласти в нього, зменшивши кількість фізичних вентилів. Їх називають easy-вентилями. Решта бокса називається hard і реалізується як є.
Приклади схем із висячими віртуальними вентилями. Віртуальним вентилям з протилежного боку dressing ніде реалізуватися.
Приклади схем, де всі віртуальні вентилі складено в dressings. Для вимірювань вентилі Паулі складаються з урахуванням бітового фліпа, який вони спричиняють.
Складний приклад, де зібрано всі віртуальні вентилі. Віртуальні вентилі, згенеровані одним боксом, можна скласти в різні dressings.
Це дозволяє будувати конструкції, де dressed-бокси не мусять мати однакову ширину.