Гамільтонове моделювання зі складними коефіцієнтами


12

Як частина варіативного алгоритму, я хотів би побудувати квантову схему (в ідеалі з pyQuil ), яка імітує гамільтонівський вигляд:

H=0.3Z3Z4+0.12Z1Z3+[...]+11.03Z310.92Z4+0.12iZ1Y5X4

Якщо мова йде про останній термін, проблема полягає в тому, що pyQuil видає таку помилку:

TypeError: PauliTerm coefficient must be real

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


1
Чи видає це помилку під час заміни цього i на ? Sj2(ХjSjХj)2
AHusain

3
Пам’ятайте, що гамільтонист повинен бути ермітовим. Це справедливо лише щодо коефіцієнтів.
DaftWullie

1
Я, можливо, використовую інше визначення для ніж ви. Але справа в тому, що ви можете знайти комбінацію, що призводить до i I d 2 . SiЯг2
AHusain

1
Невже у вас є інший термін десь у цих , це ермітський кон'югат? H = i A B - i B A Н=iАБ-iБА
AHusain

1
Чи всі умови форми такі, що вони скасовують?
AHusain

Відповіді:


10

Звичайний гамільтоніан - герміт. Отже, якщо він містить неермітський термін, він повинен або містити його ермітський кон'югат як інший термін, або мати 0 вагу. У цьому конкретному випадку, оскільки - сам ермітинець, коефіцієнт повинен був дорівнювати 0. Отже, якщо ви говорите про звичайних гамільтоніанів, ви, мабуть, помилилися у своєму розрахунку. Зауважте, що якщо ермітського сполучника терміна немає, ви не можете просто виправити речі, додавши його; це дасть вам зовсім інший результат.ZХY

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

Однак ви можете їх моделювати за рахунок недетермінованої реалізації. Існуватимуть більш досконалі методи, ніж цей (див. Посилання у цій відповіді ), але дозвольте мені описати особливо просто один: я припускаю, що є лише один неермітинський компонент, який є (тензорний добуток Пауліса ). Я буду називати це тензорний добуток Пауліс K . Інша частина гамільтоніана Н . Ви хочете створити еволюцію e - i H t + K t. Почнемо з тротирування еволюції, e - i H t + K t = Ni×КН

е-iНт+Кт
деNδt=t. Зараз ми працюємо над моделюванням окремого термінаe-iHδt+Kδte-iHδteKδt(який стає більш точним при великихN). Ви вже знаєте, як поводитися з ермітичною частиною, тому зосередьтеся наeKδt=
е-iНт+Кт=i=1Nе-iНδт+Кδт
Nδт=те-iНδт+Кδте-iНδтеКδтN
еКδт=кошовий(δт)Я+гріх(δт)К.

Ми впроваджуємо кубіт асілла в державі , і ми використовуємо це в якості контрольної кубите в контрольованому K ворота. Тоді вимірюємо ацилу в { | г | , | г | } базис (де г | | г | = 0 ). Якщо результат | г | , то на цільових кубітів ми здійснили операцію | α ||ψ=α|0+β|1К{|ψ,|ψ}ψ|ψ=0|ψ , до нормалізації. Отже, якщо ви виправите ( 1 - | α | 2 ) / | α | 2 = tanh ( δ t ) , ви прекрасно реалізували цю операцію. Якщо вимірювання не вдається, то вирішувати, чи хочете ви його відновити (це, можливо, не можливо), чи починати заново.|α|2Я+|β|2К(1-|α|2)/|α|2=тан(δт)


3

i0,12Z1Y2Х3

z=[1 0 ; 0 -1];
x=[0 1;  1  0];
y=[0 -1i; 1i 0];

z1 = kron(z,eye(4));
y2 = kron(kron(eye(2),y),eye(2));
x3 = kron(eye(4),x);

H=0.12*1i*z1*y2*x3

Вихід Н:

    0     0    0 0.12    0    0     0     0
    0     0 0.12    0    0    0     0     0
    0 -0.12    0    0    0    0     0     0
-0.12     0    0    0    0    0     0     0
    0     0    0    0    0    0     0 -0.12
    0     0    0    0    0    0 -0.12     0
    0     0    0    0    0 0.12     0     0
    0     0    0    0 0.12    0     0     0

Оскільки це справжня матриця, то Гермітій означає симетричний, але це не симетрично і, отже, не ермітичне. Правий верхній трикутник не дорівнює правому нижньому трикутнику.

Однак верхній правий трикутник є від’ємником правого нижнього трикутника, тому він є антигермітським.

Таким чином, за пропозицією Ахуссейна щодо додавання кон'югату транспоніруйте, призводить до 0. Просто запустіть цю команду:

H + H'

і ви отримаєте матрицю 8х8 0.

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


НМНМ+НМ'НМ

1
Ось чому коментар @ DaftWullie помиляється без додаткових припущень.
AHusain

1
@MarkFingerhuth: Вибачте за затримку в повторі. Я був надзвичайно зайнятий протягом днів і щодня повертаюся додому близько півночі. Якщо ви можете показати мені документ, звідки беруться рівняння, я можу подумати, як ваші результати принципово відрізняються. Я можу змінити свою відповідь, щоб сказати: "PyQuil не підтримує негермітські матриці, але це не означає, що інша програма не може".
користувач1271772

1
@MarkFingerhuth: ви кажете "Я створив це на основі рівнянь із теоретичної роботи", які рівняння, з яких теоретичний документ? Документ, пов'язаний у запитанні, становить 82 сторінки, чи не можете ви мені просто показати, які рівняння ви використовували для створення цього "гамільтоніана"?
користувач1271772

1
@MarkFingerhuth, так, ми можемо говорити в автономному режимі, однак я не отримаю там балів. Тут я отримав лише одну пропозицію за свої зусилля, тому стимул низький.
користувач1271772
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.