Що таке квантовий комп'ютер? Пояснено на простому прикладі.

Привіт всім!

Днями я відвідав D-Wave Systems у Ванкувері, Канада. Це компанія, яка виробляє передові квантові комп’ютери.

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

Мета цієї статті - дати вам точне уявлення про те, що використовує квантовий комп’ютер на простому прикладі.

Ця стаття не вимагатиме від вас попередніх знань ні з квантової фізики, ні з інформатики, щоб зрозуміти це.

Гаразд, давайте почнемо.

Редагувати (26 лютого 2019 р.): Нещодавно я опублікував відео на цю ж тему на своєму каналі YouTube. Я б порекомендував переглянути його (натисніть тут) до або після прочитання цієї статті, тому що я додав кілька додаткових, більш тонких аргументів у відео.

Що таке квантовий комп'ютер?

Ось короткий зміст того, що таке квантовий комп’ютер:

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

У цьому реченні є що розпакувати, тож дозвольте мені простежити вас, що це саме, на простому прикладі.

Щоб пояснити, що таке квантовий комп’ютер, мені потрібно спочатку трохи пояснити про звичайні (неквантові) комп’ютери.

Як звичайний комп’ютер зберігає інформацію

Зараз звичайний комп’ютер зберігає інформацію в рядах 0 і 1.

Різні види інформації, такі як цифри, текст та зображення, можуть бути представлені таким чином.

Кожна одиниця в цій серії 0 і 1 називається бітом. Отже, біт може бути встановлений як 0, так і 1.

А як щодо квантових комп’ютерів?

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

Для кожного кубіта можна встановити не лише значення 1 або 0, але його також можна встановити як значення 1 і 0. Але що це точно означає?

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

Простий приклад для розуміння того, як працюють квантові комп’ютери

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

Щоб зробити це простим, скажімо, що наразі вам потрібно переселити лише 3 людей - Алісу, Беккі та Кріса.

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

Крім того, припустимо, що тут вам дають інформацію про те, хто з ким дружить, а хто з ким вороги.

Ось, скажімо так:

  • Аліса та Беккі - друзі
  • Аліса і Кріс - вороги
  • Беккі та Кріс - вороги

І припустимо, що ваша мета тут - розділити цю групу з 3 осіб на два таксі для досягнення наступних двох цілей:

  • Максимально збільште кількість пар друзів, які мають спільний автомобіль
  • Зведіть до мінімуму кількість пар ворогів, які мають спільний автомобіль

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

Вирішення цієї проблеми за допомогою звичайного комп’ютера

Щоб вирішити цю проблему за допомогою звичайного неквантового комп’ютера, спочатку потрібно з’ясувати, як зберігати відповідну інформацію за допомогою бітів.

Давайте позначимо два таксі Таксі №1 та Таксі №0.

Потім ви можете вказати, хто сідає в яку машину, 3 біти.

Наприклад, ми можемо встановити для трьох бітів значення 0 , 0 ,і 1 для представлення:

  • Аліса потрапляє в таксі №0
  • Беккі потрапляє в таксі №0
  • Кріс потрапляє в таксі №1

Оскільки для кожної людини є два варіанти, існує 2 * 2 * 2 = 8 способів розділити цю групу людей на дві машини.

Ось список усіх можливих конфігурацій:

A | B | C.

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

Використовуючи 3 біти, ви можете представити будь-яку з цих комбінацій.

Обчислення оцінки для кожної конфігурації

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

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

  • Максимально збільште кількість пар друзів, які мають спільний автомобіль
  • Зведіть до мінімуму кількість пар ворогів, які мають спільний автомобіль

Давайте просто визначимо нашу оцінку наступним чином:

(оцінка заданої конфігурації) = (# пари подружжя, що діляться однією машиною) - (# пари ворогів, що обмінюються однією машиною)

Наприклад, припустимо, що всі Аліса, Беккі та Кріс потрапляють у Таксі №1. З трьома бітами це можна виразити як 111 .

У цьому випадку є лише одна пара друзів, яка ділиться одним автомобілем - Аліса та Беккі.

Однак є дві пари ворогів, які діляться однією машиною - Аліса і Кріс, а Беккі і Кріс.

Отже, загальний бал цієї конфігурації становить 1-2 = -1.

Вирішення проблеми

З усім цим налаштуванням ми можемо нарешті вирішити цю проблему.

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

Отже, ви можете подумати про побудову такої таблиці:

A | B | C | Оцінка

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- одне з найкращих рішень

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- інше найкраще рішення

1 | 1 | 1 | -1

Як бачите, тут є два правильних рішення - 001 та 110, обидва досягнувши оцінки 1.

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

Ми побачили, що з 3 людьми нам потрібно пройти 8 можливих конфігурацій.

Що робити, якщо є 4 людини? У цьому випадку нам потрібно буде пройти 2 * 2 * 2 * 2 = 16 конфігурацій.

З n людьми нам потрібно буде пройти (від 2 до n) конфігурації, щоб знайти найкраще рішення.

Отже, якщо там 100 людей, нам потрібно пройти:

  • 2¹⁰⁰ ~ = 10³⁰ = мільйон мільйонів мільйонів мільйонів конфігурацій.

Це просто неможливо вирішити за допомогою звичайного комп’ютера.

Вирішення цієї проблеми за допомогою квантового комп’ютера

Як би ми вирішили цю проблему за допомогою квантового комп’ютера?

Щоб подумати про це, повернімось до випадку поділу 3 людей на два таксі.

Як ми бачили раніше, було 8 можливих рішень цієї проблеми:

A | B | C.

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

За допомогою звичайного комп’ютера, який використовував 3 біти, ми змогли одночасно представити лише одне з цих рішень - наприклад, 001.

Однак за допомогою квантового комп’ютера, використовуючи 3 кубіти , ми можемо представити всі 8 цих рішень одночасно .

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

Спочатку вивчіть перший кубіт із цих 3 кубітів. Коли ви встановлюєте для обох0 і 1, це як би створення двох паралельних світів. (Так, це дивно, але просто слідкуйте тут).

В одному з цих паралельних світів кубіт встановлюється на 0. В іншому - на 1.

А що, якщо ви також встановите для другого кубіта значення 0 і 1? Потім це як би створення 4 паралельних світів.

У першому світі для двох кубітів встановлено значення 00. У другому вони становлять 01. У третьому вони мають 10. У четвертому вони мають 11.

Подібним чином, якщо ви встановите для всіх трьох кубітів значення 0 і 1, ви створили б 8 паралельних світів - 000, 001, 010, 011, 100, 101, 110 і 111.

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

Тепер, коли ви застосовуєте якесь обчислення до цих трьох кубітів, ви фактично застосовуєте одне і те ж обчислення у всіх цих 8 паралельних світах одночасно.

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

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

A | B | C | Оцінка

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- один з кращих Soluti доповнень

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- інше найкраще рішення

1 | 1 | 1 | -1

Насправді, щоб вирішити цю проблему, вам потрібно буде дати своєму квантовому комп'ютеру дві речі:

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

Враховуючи ці дві речі, ваш квантовий комп’ютер виплюне одне з найкращих рішень за кілька мілісекунд. У цьому випадку це 001 або 110 з оцінкою 1.

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

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

Ці помилки стають все більш помітними, оскільки проблема стає дедалі складнішою.

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

Як масштабується квантовий комп’ютер

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

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

Коли є 4 людини, кількість операцій досі становить 1.

Коли 100 людей, кількість операцій все ще дорівнює 1. За одну операцію квантовий комп’ютер одночасно обчислює бали всіх 2¹⁰⁰ ~ = 10³⁰ = мільйон мільйонів мільйонів мільйонів конфігурацій.

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

Однак це все-таки набагато краще, ніж запускати одну і ту ж проблему на звичайному комп’ютері і повторювати той самий тип обчислень мільйон мільйонів мільйонів мільйонів разів.

Підведенню

Особлива подяка усім у D-Wave Systems за те, що терпляче мені все це пояснили.

Нещодавно D-Wave запустила хмарне середовище для взаємодії з квантовим комп’ютером.

Якщо ви розробник і хочете насправді спробувати використовувати квантовий комп’ютер, це, мабуть, найпростіший спосіб це зробити.

Вона називається Leap, і вона знаходиться на //cloud.dwavesys.com/leap. Ви можете безкоштовно використовувати його для вирішення тисяч проблем, а також вони мають прості у навчанні посібники з початку роботи з квантовими комп’ютерами після реєстрації.

Виноска:

  • У цій статті я використовував термін „звичайний комп’ютер” для позначення неквантового комп’ютера. Однак у галузі квантових обчислень неквантові комп’ютери зазвичай називають класичними комп’ютерами.