Квантова частина алгоритму Шора - це, по суті, єдина модульна експоненція, проведена під суперпозицією з подальшим перетворенням Фур'є, а потім вимірюванням. Модульна експоненція - це, безумовно, найдорожча частина.
Припустимо, що [...] кожна елементарна логічна операція математичної факторизації однаково затратна за часом у класичній та в квантовій факторингах
Якщо припустити, що модульна експонентація займає рівно стільки часу, як на квантовому комп'ютері, як і на класичному комп'ютері, то перехід, де квантові обчислення стали кращими, відбудеться при дуже низькому числі. Обчислення модульних експоненцій відбувається дуже швидко, класично, тому що ви можете використовувати повторні квадрати. Я б дико оцінив, що кросовер станеться ще до того, як ви навіть отримаєте 30-бітові числа (цифри понад мільярд).
Але квантові комп'ютери не збираються займатися математикою майже так швидко, як класичні комп’ютери . Наприклад, на своєму ноутбуці я можу виконати 1000-бітну модульну експоненцію в пітоні за частку секунди. Але на передбачуваних квантових комп’ютерах це займе години чи дні. Проблема полягає у величезній ( масовій ) різниці у вартості ворота AND.
На класичній машині виконання ІН настільки малоефективне, що ми навіть не дуже думаємо про це при програмуванні. Це набагато більш імовірно, що ви визначаєте вартість підрахунку 64-бітових доповнень, ніж підрахунок І ворота, коли визначаєте вартість вашого алгоритму. Але на квантовому комп'ютері, виправленому помилками, виконання ІН (як правило, тимчасово, через Toffoli), як правило, коштує дорого. Наприклад, ви можете це зробити, відігнавши чотири високоякісні стану. Я не буду входити в цифри ... достатньо сказати, що на ранніх машинах, виправлених помилками, ви були б дуже раді отримати мільйон T станів в секунду.|T⟩
Отже, припустимо, що ми отримуємо мільйон T станів в секунду, і ми хочемо перетворити це в швидкість 64-бітних доповнень для порівняння з класичною машиною. Для 64-розрядного додатку потрібні ворота 64 AND, кожна з яких потребує 4 Т-воріт. 1 мільйон, поділений на 4, поділений на 64, дає ... приблизно 4 кГц. На відміну від цього, класична машина легко зробить мільярд доповнень в секунду. Квантові добавки в мільйон разів повільніше, ніж класичні добавки (знову ж таки, дико оцінюючи, і пам’ятайте, що ця кількість повинна з часом покращуватися).
Іншим фактором, який варто враховувати, є різні витрати на квантові та класичні комп’ютери. Якщо у вас сто мільйонів доларів, і ви вибираєте між одним квантовим комп'ютером і тисячею класичних комп'ютерів, цей коефіцієнт 1000 потрібно враховувати. У цьому сенсі можна сказати, що квантові добавки в мільярд разів менш ефективні, ніж класичні добавки (у FLOPS / $).
Постійний факторний штраф у мільярд, як правило, є негайним порушенням угоди. А щодо квантових алгоритмів із просто квадратичною перевагою (як Grover) я стверджую, що це насправді переривник угод. Але алгоритм Шор стає експоненціально кращим порівняно з класичною стратегією, оскільки ви збільшуєте кількість бітів від числа до множника. Скільки шматочків, перш ніж ми з'їмо цю «потворну» 10 ^ 9 константу з нашим експоненціальним зростанням на користь?
Врахуйте, що RSA-640 був розроблений у 2005 році, використовуючи ~ 33 CPU років. Квантовий комп'ютер повинен мати можливість робити це число за день. Якщо у вас є тисяча класичних комп'ютерів, які працюють над проблемою, вони закінчать приблизно через два тижні. Тож здається, що квантовий виграє 640 біт, але лише на порядок чи три. То, може, обрізання трапиться десь близько 500 біт?
У будь-якому випадку, я знаю, що це не важка і швидка відповідь. Але, сподіваюсь, я передав певне відчуття кількості, про яку я б подумав, порівнюючи класичне та квантове. Насправді ще ніхто не знає про постійні чинники, які були пов'язані, тому я буду здивований, якби хтось міг дати тобі належну оцінку краще, ніж "десь у сотні біт".