По-перше, a класичний комп'ютер виконує основні математики на апаратному рівні в арифметичній та логічній одиниці (АЛУ). Логічні ворота приймають низькі та високі вхідні напруги та використовують CMOS для реалізації логічних воріт, що дозволяють виконувати окремі ворота та створювати їх для виконання великих, складніших операцій. У цьому сенсі введення на клавіатурі - це відправлення електричних сигналів, які в кінцевому підсумку закінчуються командою (у вигляді більшої кількості електричних сигналів), що надсилається до АЛУ, виконуються правильні операції та надсилається більше сигналів назад, який перетворюється на відображати пікселі у формі цифри на екрані.
Що з квантовим комп'ютером?
Існує два можливі способи використання квантових процесорів: самостійно або спільно з класичним процесором. Однак більшість (включаючи ваш приклад надпровідних) квантових процесорів насправді не використовують електричні сигнали, хоча це все одно, як миша, клавіатура та монітор тощо передають та отримують інформацію. Отже, повинен бути спосіб перетворити електричний сигнал у будь-який сигнал, який використовує квантовий процесор (про який я отримаю згодом), а також певний спосіб сказати процесору, що ви хочете зробити. Обидві ці проблеми можуть бути вирішені одразу класичними методами попередньої та після обробки, як, наприклад, у QISKit IBM . Корпорація Microsoft трохи більше застосовує підхід зверху вниз у Q # , де програми для квантового процесора записуються більше як "класична" програма, на відміну від сценарію, потім компілюються та потенційно оптимізуються.для обладнання. Тобто, якщо у вас є функція, вона може виконувати класичні операції, а також здійснювати дзвінки в квантовий процесор для виконання будь-яких необхідних квантових операцій. Це призводить мене до першого пункту:
Якщо ви збираєтеся попросити комп'ютер з доступом до квантового процесора, щоб обчислити щось таке, як2+3 , одне дуже вірним рішенням буде просто обчислити його на класичному процесорі, як зазвичай.
Добре, скажімо, ви змушуєте класичний процесор використовувати квантовий процесор, який в даному випадку є однією з надпровідних мікросхем IBM, використовуючи кубики транскому, скажімо, IBM QX4 . Це занадто мало, щоб виправити помилки, тому давайте ігнорувати це. Існує три частини використання процесорної моделі процесора: ініціалізація, унітарна еволюція та вимірювання, які більш докладно пояснюються нижче. До цього,
Що таке трансон?
EJ=IcΦ0/2π Φ0=h/2eIcVgCgEC=(2e)2/2CС
Н= ЕС( n - nг)2- ЕJcosϕ ,
нϕнг= СгVг/ 2е| п ⟩ = | 0 ⟩|n⟩=|1⟩E0=ℏω0 and
E1=ℏω1 and qubit frequency
ω=ω1−ω0, describing the computational basis of a qubit. A typical charge qubit could have
EC=5EJ. Adding a large shunting capacitance and increasing the gate capacitance switches this ratio, so that
EJ≫EC and we have a
transmon. This has the advantage of longer coherence times, at a cost of reduced anharmonicity (where energy levels beyond the first two are closer together, potentially causing leakage).
Finally, we get to the main question:
How do we initialise, evolve and measure a transmon?
Adding 2 and 3 is now a 'simple' matter of initialising the qubits, performing the gates equivalent to a classical reversible adder and measuring the result, all implemented automatically. The measurement result is then returned by a classical computer as per usual.
As a bonus, it seems a little pointless to go through all that in order to implement gates that could be done on a classical computer anyway, so it turns out that it's possible to approximately implement a quantum adder, which adds two quantum (as opposed to classical) states, with some error, on one of IBM's processors.