Квантові комп’ютери могли б вирішувати завдання, недоступні класичним, якби могли повноцінно працювати. Одна з перешкод – переведення квантових алгоритмів з абстрактних математичних понять у код, зрозумілий квантовій машині. Фахівці зі США розібралися, чому так складно змусити квантові комп’ютери виконувати алгоритми і представили квантовий аналог віртуальної обчислювальної машини.
Тоді як для програмування на звичайних комп’ютерах існує маса мов, квантові позбавлені такої розкоші. Мов квантового програмування поки що дуже мало, і вони відносно складні в застосуванні. Це, як пише MIT News, відбувається тому, що квантові комп’ютери не дотримуються класичних правил виконання кроків у певному порядку – важливого процесу, що називається керуючою логікою.
Фахівці з Лабораторії інформації та штучного інтелекту (CSAIL) Массачусетського технологічного інституту описали нову концептуальну модель для квантових комп’ютерів – квантову контрольну машину, завдяки якій написання програмного коду для квантових комп’ютерів стане трохи простішим.
На думку розробників, квантові комп’ютери не зобов’язані бути загадковими апаратами, використовувати які можуть тільки фізики та математики.
Логіка управління класичних комп’ютерів проста і заснована на бінарній опозиції нулів і одиниць, які складають інструкції для обчислювальної архітектури. У квантового комп’ютера основний елемент – це кубіт, біт інформації, що існує одночасно як нуль і одиниця. Квантовий алгоритм може виконати суперпозицію з двох інструкцій одночасно: це називають квантовою керуючою логікою.
Проблема в тому, що наявні типи квантових комп’ютерів не мають аналога лічильника команд, як у класичних комп’ютерів, який визначає, яку дію виконувати наступною. Програмістам доводиться вручну розставляти логічні вентилі. На це йде багато часу і легко помилитися. Для вирішення цієї проблеми було розроблено квантову контрольну машину – набір інструкцій, що діє так само, як віртуальна обчислювальна машина.
Характерною рисою квантової контрольної машини стало те, що вона містить у собі оборотні інструкції, які необхідні квантовим алгоритмам, щоб обробляти інформацію, не порушуючи випадковим чином її суперпозиції.