Какво представлява квантовият компютър? Обяснено с прост пример.

Здравейте всички!

Онзи ден посетих D-Wave Systems във Ванкувър, Канада. Това е компания, която произвежда авангардни квантови компютри.

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

Целта на тази статия е да ви даде точна интуиция за това, което квантовият компютър използва прост пример.

Тази статия няма да изисква от вас да имате предварителни познания или по квантова физика, или по компютърни науки, за да можете да я разберете.

Добре, да започнем.

Редактиране (26 февруари 2019 г.): Наскоро публикувах видеоклип за същата тема в канала си в YouTube. Бих препоръчал да го гледате (щракнете тук) преди или след четенето на тази статия, защото съм добавил някои допълнителни, по-нюансирани аргументи във видеото.

Какво представлява квантовият компютър?

Ето едно резюме на едно изречение за това какво представлява квантовият компютър:

Квантовият компютър е вид компютър, който използва квантова механика, така че да може да извършва определени видове изчисления по-ефективно от обикновения компютър.

В това изречение има много неща за разопаковане, така че позволете ми да ви преведа какво точно представлява, като използвам прост пример.

За да обясня какво представлява квантовият компютър, първо трябва да обясня малко за обикновените (неквантови) компютри.

Как обикновеният компютър съхранява информация

Сега обикновеният компютър съхранява информация в поредица от 0 и 1.

По този начин могат да бъдат представени различни видове информация, като числа, текст и изображения.

Всяка единица от тази поредица от 0 и 1 се нарича малко. Така че, малко може да бъде зададено на 0 или 1.

Ами квантовите компютри?

Квантовият компютър не използва битове за съхраняване на информация. Вместо това използва нещо, наречено qubits.

Всеки кубит може не само да бъде зададен на 1 или 0, но може да бъде настроен и на 1 и 0. Но какво означава това точно?

Позволете ми да обясня това с прост пример. Това ще бъде донякъде изкуствен пример. Но все пак ще бъде полезно при разбирането на това как работят квантовите компютри.

Един прост пример за разбиране как работят квантовите компютри

Сега, да предположим, че управлявате туристическа агенция и трябва да преместите група хора от едно място на друго.

За да бъде това просто, нека кажем, че засега трябва да преместите само 3 души - Алис, Беки и Крис.

И да предположим, че сте резервирали 2 таксита за тази цел и искате да разберете кой влиза в кое такси.

Също така, да предположим, че тук ви е дадена информация за това кой с кого е приятел и кой с кого е враг.

Ето, да кажем, че:

  • Алис и Беки са приятелки
  • Алис и Крис са врагове
  • Беки и Крис са врагове

И да предположим, че целта ви тук е да разделите тази група от 3 души на двете таксита, за да постигнете следните две цели:

  • Увеличете броя на двойките приятели, които споделят една и съща кола
  • Намалете до минимум броя вражески двойки, които споделят една и съща кола

Добре, така че това е основната предпоставка на този проблем. Нека първо помислим как бихме решили този проблем с помощта на обикновен компютър.

Решаване на този проблем с обикновен компютър

За да разрешите този проблем с обикновен неквантов компютър, първо ще трябва да разберете как да съхранявате съответната информация с битове.

Нека обозначим двете таксита Такси # 1 и Такси # 0.

След това можете да представите кой се качва в коя кола с 3 бита.

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

  • Алис влиза в Такси # 0
  • Беки влиза в Такси # 0
  • Крис влиза в Такси №1

Тъй като има два избора за всеки човек, има 2 * 2 * 2 = 8 начина да разделите тази група хора на две коли.

Ето списък на всички възможни конфигурации:

A | B | ° С

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 | ° С

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, това е нещо като създаването на два паралелни свята. (Да, странно е, но просто следвайте тук.)

В един от тези паралелни светове qubit е зададен на 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. Можете да го използвате безплатно за решаване на хиляди проблеми и те също така имат лесни за следване уроци за започване на работа с квантови компютри, след като се регистрирате.

Бележка под линия:

  • В тази статия използвах термина „обикновен компютър“ за означаване на неквантов компютър. Въпреки това в квантовата изчислителна индустрия неквантовите компютри обикновено се наричат ​​класически компютри.