Характарыстыкі квантавых кампутараў

Магутнасць квантавага кампутара вымяраецца ў кубітах, базавай адзінцы вымярэння ў квантавым кампутары. Крыніца.

Я раблю фэйспалм пасля кожнага чытання падобнай фразы. Да дабра гэта не давяло, пачаў садзіцца зрок; хутка давядзецца звяртацца да Meklon.

Думаю, сітавіна некалькі сістэматызаваць асноўныя параметры квантавага кампутара. Іх некалькі:

  1. Колькасць кубітаў
  2. Час утрымання кагерэнтнасці (час дэкагерэнцыі)
  3. Узровень памылак
  4. Архітэктура працэсара
  5. Кошт, даступнасць, умовы зместу, час амартызацыі, інструменты праграмавання, і г.д.

Колькасць кубітаў

Тут усё відавочна, чым больш, тым лепей. На справе ж, за кубіты трэба плаціць, і ў ідэале трэба купляць роўна столькі кубітаў, колькі патрабуецца для выканання задачы. Для распрацоўніка эксклюзіўных гульнявых аўтаматаў дастаткова аднаго кубіта на аўтамат (для генерацыі рандома). Для «брутфорса» RSA-2048 як мінімум 2048 кубітаў.

Самыя распіяраныя квантавыя алгарытмы носяць імёны Гровера і Шора. Гровер дазваляе "хакаць" хешы. Для краху біткоіна патрэбныя кампутары з як мінімум 256 кубітамі на борце (можна пашаманіць са складанасцю біткоіна, але давайце спынімся на гэтай круглай лічбе). Шор дазваляе факторызаваць лікі. Для факторызацыі ліку даўжынёй n двайковых разрадаў трэба прынамсі n кубітаў.

Бягучы максімум: 50 кубітаў (ужо 72?). І насамрэч, 50 кубітаў гэта мяжа. Мяжа сімуляцыі квантавага кампутара. У тэорыі, мы можам сімуляваць любую колькасць кубітаў на класічных вылічальніка. На практыцы даданне аднаго кубіта ў сімуляцыю патрабуе падваення класічных вылічальнікаў. Дадайце сюды чуткі аб падваенні кубітаў кожны год, і задайце сабе пытанне: як дэбажыць алгарытмы для 25651210242048 кубітаў? Сімулятара няма, на квантавым працэсары брэйк-поінт не паставіш.

Час утрымання кагерэнтнасці (час дэкагерэнцыі)

Кагерэнцыя і кагерэнтнасць - гэта не адно і тое ж. Я аддаю перавагу параўноўваць кагерэнтнасць з рэгенерацыяй аператыўнай памяці. На планцы RAM мільярды вочак, на кожнай вісіць зарад, нулявы або адзінкавы. У гэтага зарада ёсць вельмі цікавая ўласцівасць - ён сцякае. Першапачаткова «адзінкавая» вочка становіцца вочкам на 0.99, затым 0.98, і гэтак далей. Адпаведна, на нулявы назапашваецца 0.01, 0.02, 0.03… Прыходзіцца гэты зарад абнаўляць, "рэгенераваць". Усё, што менш за палову, скідаецца да нуля, усё астатняе дабіваецца да адзінкі.

Квантавыя працэсары рэгенераваць не атрымаецца. Адпаведна, на ўсе вылічэнні ёсць адзін цыкл, да першага «патэклага» кубіта. Час да першага «падцёк» і называецца часам дэкагерэнцыі. Кагерэнтнасць жа гэты стан, калі кубіты яшчэ не "працяклі". Тут можна паглядзець крыху больш за дарослыя тлумачэнні.

Дэкагерэнцыя звязана з лікам кубітаў: чым больш кубітаў, тым складаней утрымліваць кагерэнтнасць. З іншага боку, пры наяўнасці вялікай колькасці кубітаў можна пусціць частку з іх на карэкцыю памылак, злучаных з дэкагерэнцыяй. Адсюль выцякае, Што колькасць кубітаў само па сабе нічога не вырашае. Можна падвоіць колькасць кубітаў, і патраціць 90% з іх на фіксацыю дэкагерэнцыі.

Прыблізна тут узнікае паняцце лагічнага кубіта. Грубіянска кажучы, калі ў вас ёсць працэсар на 100 кубітаў, але 40 з іх накіраваны на фіксацыю дэкагерэнтнасці - у вас застаюцца 60 лагічных кубітаў. Тых, на якіх вы выконваеце ваш алгарытм. Канцэпт лагічных кубітаў зараз хутчэй тэарэтычны, пра практычныя рэалізацыі асабіста я не чуў.

Памылкі і іх карэкцыя

Яшчэ адзін бізун квантавых працэсараў. Калі вы инвертируете кубіт, з верагоднасцю ў 2% аперацыя скончыцца памылкай. Калі вы заблытваеце 2 кубіты, верагоднасць памылкі дасягае 8%. Вазьміце лік у 256 бітаў, захешуйце яго на SHA-256, палічыце колькасць аперацый, палічыце верагоднасць выканаць УСЕ гэтыя аперацыі беспамылкова.

Матэматыкі падаюць рашэнне: карэкцыя памылак. Алгарытмы ёсць. Рэалізацыя аднаго заблытвання 2 лагічных кубітаў патрабуе 100.000 фізічных кубітаў. Бітко-капец наступіць няхутка.

Архітэктура працэсара

Строга кажучы, квантавых кампутараў няма. Ёсць толькі квантавыя працэсары. Навошта патрэбная аператыўка, калі час на працу абмяжоўваецца мілісекундамі? Я праграмую на Q#, але гэта мова высокага ўзроўню. Вылучыў сабе 15 кубітаў, і рабі з імі што хочаш. Захацеў, заблытаў першы кубіт з дзесятым. Захацеў - заблытаў першыя шэсць.

На рэальным працэсары такой свабоды няма. Папрасіў заблытаць першы кубіт з 15 - кампілятар згенеруе 26 дадатковых аперацый. Калі павязе. Калі не пашанцуе - згенеруе сотню. Справа ў тым, што кубіт можа заблытвацца толькі з суседзямі. Больш за 6 суседзяў на кубіт я не бачыў. У прынцыпе, ёсць якія аптымізуюць квантавыя праграмы кампілятары, але яны пакуль хутчэй тэарэтычныя.

У кожнага працэсара свой набор інструкцый, і сувязі паміж кубітамі адрозніваюцца. У ідэальным свеце ў нас ёсць адвольныя Rx, Ry, Rz, і іх камбінацыі, плюс свабоднае заблытванне па дзясятку прыкмет, плюс Swap: паглядзіце на аператары ў Мудрагелістасць. У рэале ж у нас ёсць некалькі пар кубітаў, і заблытванне CNOT (q[0], q[1]) абыходзіцца ў адну аперацыю, а CNOT(q[1], q[0]) - ужо ў 7. А кагерэнтнасць растае …

Кошт, даступнасць, умовы зместу, час амартызацыі, інструменты праграмавання…

Кошты не афішуюцца, даступнасць радавому грамадзяніну околонулевая, час амартызацыі на практыку не палічана, прылады праграмавання толькі зараджаюцца. Дакументацыя на arxiv.org.

Дык якую ж інфармацыя патрабаваць ад экспертаў пры выпуску новага квантавага кампутара?

Апроч спісу зверху, мне падабаюцца варыянты ад PerlPower и Змяніць2:

Вось бы кожны артыкул пра новы квантавы кампутар пачынаўся з двух характарыстык. адначасовага зблытаных кубітаў, і часу ўтрымання кубітаў.

Або яшчэ лепш — з часу выканання найпрасцейшага бенчмарку, напрыклад знаходжання простых множнікаў ліку 91.

Крыніца: habr.com

Дадаць каментар