"Мен эч ким кванттык механиканы түшүнбөйт деп ишенимдүү айта алам деп ойлойм." - Ричард Фейнман
Кванттык эсептөө темасы дайыма технологиялык жазуучуларды жана журналисттерди кызыктырып келген. Анын эсептөө потенциалы жана татаалдыгы ага белгилүү бир мистикалык аура берди. Көбүнчө көркөм макалалар жана инфографика бул тармактын ар кандай келечегин деталдуу сүрөттөйт, ошол эле учурда анын практикалык колдонулушуна эптеп эле токтолбойт: бул азыраак көңүл бурган окурманды адаштырышы мүмкүн.
Популярдуу илимий макалалар кванттык системалардын сүрөттөлүшүн калтырып, төмөнкүдөй билдирүүлөрдү жасашат:
Кадимки бит 1 же 0 болушу мүмкүн, бирок кубит бир эле учурда 1 жана 0 болушу мүмкүн.
Эгерде сиз абдан бактылуу болсоңуз (мен анык эмес), сизге мындай деп айтылат:
Кубит "1" менен "0" ортосундагы суперпозицияда.
Бул түшүндүрмөлөрдүн бири да акылга сыярлык көрүнбөйт, анткени биз абдан салттуу дүйнөдө өнүккөн тилди колдонуу менен кванттык механикалык кубулушту түзүүгө аракет кылып жатабыз. Кванттык эсептөө принциптерин так түшүндүрүү үчүн башка тилди – математикалык тилди колдонуу зарыл.
Бул окуу куралында мен кванттык эсептөө системаларын моделдөө жана түшүнүү үчүн зарыл болгон математикалык куралдарды, ошондой эле кванттык эсептөөнүн логикасын кантип иллюстрациялоону жана колдонууну түшүндүрөм. Андан тышкары, мен кванттык алгоритмге мисал келтирем жана анын салттуу компьютерден артыкчылыгы эмнеде экенин айтып берем.
Мен мунун баарын ачык-айкын тил менен түшүндүрүү үчүн болгон күчүмдү жумшайм, бирок мен дагы эле бул макаланын окурмандары сызыктуу алгебра жана санариптик логика (сызыктуу алгебра камтылган) жөнүндө негизги түшүнүккө ээ деп үмүттөнөм.
Биринчиден, санариптик логиканын принциптерин карап көрөлү. Эсептөөлөрдү жүргүзүү үчүн электр чынжырларын колдонууга негизделген. Сүрөттөмөбүздү абстракттуураак кылуу үчүн, электр зымынын абалын "күйгүзүү" же "өчүрүү" абалына туура келген "1" же "0" абалына жөнөкөйлөтөлү. Транзисторлорду белгилүү бир ырааттуулукта жайгаштыруу менен, биз логикалык элементтер деп аталган элементтерди түзөбүз, алар бир же бир нече кириш сигналынын маанилерин алып, аларды буль логикасынын белгилүү эрежелеринин негизинде чыгуу сигналына айландырабыз.
Жалпы логикалык дарбазалар жана алардын штаттык таблицалары
Мындай негизги элементтердин чынжырларынын негизинде татаалыраак элементтер түзүлүшү мүмкүн, ал эми татаалыраак элементтердин чынжырларынын негизинде биз акыры чоң даражадагы абстракция менен борбордук процессордун аналогун алууну күтө алабыз.
Мен жогоруда айткандай, бизге санариптик логиканы математикалык түрдө көрсөтүүнүн жолу керек. Биринчиден, математикалык салттуу логиканы киргизели. Сызыктуу алгебраны колдонуп, "1" жана "0" маанилери бар классикалык биттерди эки мамычанын векторлору катары көрсөтсө болот:
сол жактагы сандар кайда
окшоштук | Identity transformation |
Терс | тануу |
Туруктуу-0 | "0" константасын эсептөө |
Туруктуу-1 | "1" константасын эсептөө |
Биттин биз сунуштаган жаңы репрезентациясынын негизинде вектордук трансформацияны колдонуу менен тиешелүү бит боюнча операцияларды аткаруу абдан оңой:
Андан ары өтүүдөн мурун, концепцияны карап көрөлү
Жардамы менен
Эми бизде дээрлик бардык керектүү математикалык түшүнүктөр бар, келгиле, биринчи кванттык логикалык дарбазабызга өтөбүз. Бул оператор
Бул оператор төмөнкү трансформация вектору катары көрсөтүлүшү мүмкүн:
Буга чейин биз камтыган нерселердин бардыгын көрсөтүү үчүн, мен сизге CNOT элементин бир нече битте кантип колдонууну көрсөтөм:
Буга чейин айтылгандарды жалпылоо үчүн: биринчи мисалда биз |10⟩ анын тензордук продуктунун бөлүктөрүнө ажыратабыз жана продуктунун жаңы тиешелүү абалын алуу үчүн CNOT матрицасын колдонобуз; андан кийин биз аны |11⟩ деп эсептейбиз, мурда берилген CNOT маанилеринин таблицасына ылайык.
Ошентип, биз салттуу эсептөөлөрдү жана кадимки биттерди түшүнүүгө жардам бере турган бардык математикалык эрежелерди эстедик жана акыры заманбап кванттык эсептөөлөргө жана кубиттерге өтө алабыз.
Эгер сиз ушул убакка чейин окуган болсоңуз, анда менде сизге жакшы жаңылык бар: кубиттерди математикалык түрдө оңой эле туюнтса болот. Жалпысынан, классикалык битти (кбит) |1⟩ же |0⟩ коюуга мүмкүн болсо, кубит жөн эле суперпозицияда жана өлчөөдөн мурун |0⟩ жана |1⟩ болушу мүмкүн. Өлчөөдөн кийин, ал |0⟩ же |1⟩ болуп кулайт. Башкача айтканда, кубит төмөнкү формула боюнча |0⟩ жана |1⟩ сызыктуу айкалышы катары көрсөтүлүшү мүмкүн:
кайда a₀ и a₁ тиешелүүлүгүнө жараша |0⟩ жана |1⟩ амплитудаларын билдирет. Булар кубиттин өлчөнгөндөн кийин абалдардын бирине кулап түшүү ыктымалдыгын билдирген "кванттык ыктымалдуулуктар" катары кароого болот, анткени кванттык механикада суперпозициядагы объект бекитилгенден кийин абалдардын бирине кулайт. Келгиле, бул туюнтманы кеңейтип, төмөнкүнү алалы:
Менин түшүндүрмөнү жөнөкөйлөтүү үчүн, мен бул макалада колдоном.
Бул кубит үчүн, мааниге чейин кулап кетүү мүмкүнчүлүгү a₀ өлчөөдөн кийин |a₀|², жана нарктын кулап кетүү мүмкүнчүлүгү a₁ |ге барабарa₁|². Мисалы, төмөнкү кубит үчүн:
“1ге” түшүү мүмкүнчүлүгү |1/ √2|², же ½, башкача айтканда, 50/50гө барабар.
Классикалык системада бардык ыктымалдуулуктар бирге чейин кошулушу керек болгондуктан (толук ыктымалдык бөлүштүрүү үчүн), |0⟩ жана |1⟩ амплитудаларынын абсолюттук маанилеринин квадраттары бирге чейин кошулушу керек деген тыянак чыгарууга болот. Бул маалыматтын негизинде биз төмөнкү теңдемени түзө алабыз:
Эгер сиз тригонометрия менен тааныш болсоңуз, анда бул теңдеме Пифагор теоремасына (a²+b²=c²) туура келерин байкайсыз, башкача айтканда, кубиттин мүмкүн болгон абалын графикалык түрдө бирдик чөйрөсүндөгү чекиттер катары көрсөтө алабыз, атап айтканда:
Логикалык операторлор жана элементтер кубиттерге классикалык биттердин абалындагыдай эле колдонулат - матрицалык трансформациянын негизинде. Биз буга чейин кайра чакырып алган бардык инвертивдик матрица операторлору, атап айтканда CNOT, кубиттер менен иштөө үчүн колдонулушу мүмкүн. Мындай матрицалык операторлор кубиттин ар бир амплитудасын өлчөп, кыйратпастан колдонууга мүмкүндүк берет. Кубитте жокко чыгаруу операторун колдонуунун мисалын берейин:
Улантуудан мурун, амплитуданын маанисин эске сала кетейин a₀ жана a₁ чынында
Бирок, түшүндүрүүнү жөнөкөйлөтүү үчүн, биз бул жерде чыныгы сандар менен чектелебиз.
Кванттык эсептөөлөрдүн контекстинде гана мааниси бар кээ бир логикалык элементтерди талкуулоого убакыт келди окшойт.
Эң маанилүү операторлордун бири - "Хадамард элементи": ал "0" же "1" абалында бир аз алат жана аны "50" же "1" 0% ыктымалдыгы менен тиешелүү суперпозицияга коет. өлчөөдөн кийин.
Hadamard операторунун төмөнкү оң жагында терс сан бар экенин байкаңыз. Бул операторду колдонуунун натыйжасы кириш сигналынын маанисинен көз каранды экендигине байланыштуу: - |1⟩ же |0⟩, демек, эсептөө кайра кайтарылат.
Hadamard элементи жөнүндө дагы бир маанилүү жагдай - анын инвербилдүүлүгү, башкача айтканда, ал тиешелүү суперпозицияда кубит алып, аны |0⟩ же |1⟩ге айланта алат.
Бул абдан маанилүү, анткени ал бизге кванттык абалдан кубиттин абалын аныктабастан - жана, демек, аны кыйратпастан өзгөртүү мүмкүнчүлүгүн берет. Ошентип, биз кванттык эсептөөнү ыктымалдык принципке эмес, детерминисттик принципке негиздей алабыз.
Чыныгы сандарды гана камтыган кванттык операторлор өзүнө карама-каршы келет, ошондуктан операторду кубитке колдонуунун натыйжасын бирдик чөйрөсүндөгү трансформация катары мамлекеттик машина түрүндө көрсөтө алабыз:
Ошентип, жогорудагы диаграммада көрсөтүлгөн кубит, Хадамард операциясын колдонгондон кийин, тиешелүү жебе менен көрсөтүлгөн абалга айланат. Ошо сыяктуу эле, биз төмөндө көрсөтүлгөндөй, жогоруда көрсөтүлгөндөй жокко чыгаруу операторун (ошондой эле Паули жокко чыгаруу оператору же бит инверсиясы катары белгилүү) колдонуп, кубиттин трансформациясын сүрөттөөчү башка мамлекеттик машинаны кура алабыз:
Кубитибизде татаалыраак операцияларды аткаруу үчүн, биз бир нече операторлорду чынжырлап же элементтерди бир нече жолу колдоно алабыз. негизинде сериялык трансформация мисалы
Башкача айтканда, биз |0⟩ битинен баштасак, бир аз инверсияны колдонсок, анан Хадамард операциясын, андан кийин дагы бир бит инверсиясын жана дагы Хадамард операциясын, андан кийин акыркы бит инверсиясын колдонсок, анда биз on тарабынан берилген вектор менен аяктайбыз. чынжырдын оң жагы. Ар кандай мамлекеттик машиналарды бири-биринин үстүнө коюу менен, биз |0⟩ дан баштайбыз жана анын баары кантип иштээрин түшүнүү үчүн ар бирине туура келген түстүү жебелерди байкай алабыз.
Биз ушуга чейин жеткендиктен, кванттык алгоритмдердин түрлөрүнүн бирин карап чыгууга убакыт келди, атап айтканда -
Сизде бир битте функцияны/операторду камтыган кара куту бар деп элестетип көрөлү (эсиңизде болсун - бир бит менен төрт гана операция аткарылышы мүмкүн: идентификацияны өзгөртүү, жокко чыгаруу, "0" константасын баалоо жана "1" константасын баалоо "). Кутучада так кандай функция аткарылат? Сиз кайсынысын билбейсиз, бирок сиз каалагандай киргизүү баалуулуктарынын көптөгөн варианттарынан өтүп, натыйжаларга баа бере аласыз.
Кайсы функция колдонулуп жатканын билүү үчүн кара кутудан канча киргизүү жана чыгарууну өткөрүшүңүз керек? бир секунда да бул жөнүндө ойлонуп көр.
Классикалык компьютерде, колдонула турган функцияны аныктоо үчүн 2 суроо талап кылынат. Мисалы, "1" киргизүүсү "0" чыгарууну чыгарса, же "0" туруктууну эсептөө функциясы же жокко чыгаруу функциясы колдонулары айкын болот, андан кийин кириш сигналынын маанисин өзгөртүүгө туура келет. "0" дегенге жана чыгууда эмне болорун көрүңүз.
Кванттык компьютерде эки суроо да талап кылынат, анткени киргизүү маанисине колдонуу функциясын так аныктоо үчүн дагы эле эки башка чыгаруу мааниси керек. Бирок, эгер суроону бир аз кайра түзсөк, кванттык компьютерлердин дагы эле олуттуу артыкчылыгы бар экен: эгер сиз колдонулуп жаткан функциянын туруктуу же өзгөрмө экенин билгиңиз келсе, кванттык компьютерлер артыкчылыкка ээ болмок.
Киргизүүчү сигналдын ар кандай маанилери чыгууда ар кандай натыйжаларды берсе (мисалы, идентификацияны өзгөртүү жана биттин инверсиясы) кутучада колдонулган функция өзгөрүлмө болуп саналат, ал эми чыгаруу мааниси киргизилген мааниге карабастан өзгөрбөсө, анда функция туруктуу (мисалы, «1» туруктууну эсептөө же «0» туруктууну эсептөө).
Кванттык алгоритмди колдонуу менен, бир эле суроонун негизинде кара кутудагы функциянын туруктуу же өзгөрүлмө экенин аныктай аласыз. Бирок муну кантип жасоону майда-чүйдөсүнө чейин карап чыгуудан мурун, биз кванттык компьютерде бул функциялардын ар бирин түзүүнүн жолун табышыбыз керек. Кандайдыр бир кванттык операторлор инверситивдүү болушу керек болгондуктан, биз дароо көйгөйгө туш болобуз: “1” жана “0” константаларын эсептөө функциялары жок.
Кванттык эсептөөдө колдонулган кеңири таралган чечим - бул функция кабыл алган кандай гана кириш маанисин кайтарып турган кошумча чыгаруу кубитин кошуу.
үчүн: | кийин: |
Мына ушундай жол менен, биз бир гана чыгаруу наркынын негизинде киргизүү баалуулуктарды аныктоого болот, жана функция инверситивдүү болуп калат. Кванттык схемалардын түзүлүшү кошумча киргизүү битине муктаждыкты жаратат. Тиешелүү операторлорду иштеп чыгуу үчүн биз кошумча киргизүү кубити |0⟩ болуп орнотулган деп ойлойбуз.
Биз мурда колдонгон кванттык схеманын сүрөттөлүшүн колдонуп, төрт элементтин ар бири (иденттикти трансформациялоо, жокко чыгаруу, «0» константасын баалоо жана «1» туруктууну баалоо) кванттык операторлор аркылуу кантип ишке ашырылса болорун карап көрөлү.
Мисалы, "0" туруктуулугун эсептөө функциясын ушундайча ишке ашырса болот:
"0" константасын эсептөө:
Бул жерде бизге операторлордун таптакыр кереги жок. Биринчи киргизүү кубити (биз |0⟩ деп ойлогонбуз) ошол эле мааниде кайтып келет, ал эми экинчи киргизүү мааниси адаттагыдай эле өзүнө кайтып келет.
Туруктуу "1" функциясын эсептөө менен абал бир аз башкача:
"1" константасын эсептөө:
Биз биринчи киргизүү кубити дайыма |0⟩ коюлат деп ойлогондуктан, бит инверсия операторун колдонуунун натыйжасы, ал ар дайым чыгууда бирди чыгарат. Ал эми адаттагыдай эле, экинчи кубит чыгарууда өзүнүн баасын берет.
Иденттикти трансформациялоо операторун картага түшүрүүдө тапшырма татаалдана баштайт. Муну кантип жасоо керек:
Окшош трансформация:
Бул жерде колдонулган символ CNOT элементин билдирет: жогорку сызык башкаруу битин билдирет, ал эми төмөнкү сызык башкаруу битин билдирет. Эске сала кетейин, CNOT операторун колдонууда башкаруу бити |1⟩ге барабар болсо башкаруу битинин мааниси өзгөрөт, ал эми башкаруу бити |0⟩ге барабар болсо өзгөрүүсүз калат. Биз жогорку саптын мааниси дайыма |0⟩ барабар деп ойлогондуктан, анын мааниси ар дайым төмөнкү сапка дайындалат.
Биз жокко чыгаруу оператору менен окшош жол менен иштейбиз:
тескериси:
Биз жөн гана чыгаруу линиясынын аягындагы битти тескери салабыз.
Эми биз бул алдын ала түшүнүктөн баш тарткандан кийин, келгиле, кара кутуга катылган функциянын туруктуулугун же өзгөрмөлүүлүгүн бир гана суроо аркылуу аныктоого келгенде, салттуу компьютерге караганда кванттык компьютердин өзгөчө артыкчылыктарын карап көрөлү.
Бул маселени бир суроодо кванттык эсептөөнү колдонуу менен чечүү үчүн, төмөндө көрсөтүлгөндөй, киргизүү кубиттерин функцияга өткөрүүдөн мурун суперпозицияга коюу керек:
Хадамард элементи кубиттерди суперпозициядан чыгаруу жана алгоритмди детерминисттик кылуу үчүн функциянын натыйжасына кайрадан колдонулат. Биз системаны |00⟩ абалында баштайбыз жана мен бир аздан кийин түшүндүрүп бере турган себептерден улам, колдонулган функция туруктуу болсо |11⟩ натыйжасын алыңыз. Эгерде кара кутучанын ичиндеги функция өзгөрүлмө болсо, анда өлчөөдөн кийин система |01⟩ натыйжасын кайтарат.
Макаланын калган бөлүгүн түшүнүү үчүн, келгиле, мен мурда көрсөткөн мисалды карап көрөлү:
Бит инверсия операторун колдонуу менен жана андан кийин |0⟩ ге барабар болгон эки эки мааниге Hadamard элементин колдонуу менен, биз алардын |0⟩ жана |1⟩ бирдей суперпозициясына төмөндөгүдөй которулушун камсыз кылабыз:
Бул маанини кара куту функциясына өткөрүү мисалын колдонуу менен, эки туруктуу маани функциясы тең |11⟩ чыгарарын көрсөтүү оңой.
"0" константасын эсептөө:
Ошо сыяктуу эле, биз «1» константасын эсептөө функциясы да |11⟩ чыгарылыш катары чыгара турганын көрөбүз, б.а.
"1" константасын эсептөө:
Чыгуу |1⟩ болоорун эске алыңыз, анткени -1² = 1.
Ушул эле принцип боюнча, биз эки өзгөрмөлүү функцияны тең колдонгондо, биз ар дайым |01⟩ чыга тургандыгыбызды далилдей алабыз (эгерде биз бир эле ыкманы колдонсок), бирок баары бир аз татаалыраак.
Окшош трансформация:
CNOT эки кубиттүү оператор болгондуктан, аны жөнөкөй мамлекеттик машина катары көрсөтүү мүмкүн эмес, андыктан кириш кубиттеринин тең тензордук продуктусунун жана мурда айтылгандай CNOT матрицасы менен көбөйтүүнүн негизинде эки чыгуу сигналын аныктоо керек:
Бул ыкма менен биз ошондой эле |01⟩ чыгаруу маанисин кара кутучада четке кагуу функциясы жашырылган болсо, кабыл алынарын ырастай алабыз:
тескериси:
Ошентип, биз азыр эле кванттык компьютер кадимки компьютерге караганда натыйжалуураак болгон жагдайды көрсөттүк.
Кийинкиси эмне?
Мен бул жерде бүтүрүүнү сунуштайм. Биз буга чейин эле мыкты иш жасадык. Эгерде сиз мен айтып өткөн нерселердин бардыгын түшүнгөн болсоңуз, анда сиз азыр кванттык эсептөөнүн жана кванттык логиканын негиздерин жакшы түшүндүңүз деп ойлойм жана эмне үчүн кванттык алгоритмдер белгилүү бир жагдайларда салттуу эсептөөлөргө караганда натыйжалуураак болушу мүмкүн.
Менин сүрөттөмөмдү кванттык эсептөөлөр жана алгоритмдер боюнча толук кандуу колдонмо деп атоого болбойт - тескерисинче, бул илимий-популярдуу булактар тарабынан таңууланган предмет жөнүндө окурмандардын идеяларын жокко чыгаруу үчүн иштелип чыккан математикага жана ноталарга кыскача киришүү (олуттуу, көптөр түшүнө албайт. абал!). сыяктуу көптөгөн маанилүү темаларды козгогонго үлгүрбөй калдым
Эгерде сиз кванттык компьютерлер жөнүндө билимиңизди системалаштырууну жана структуралаштырууну кааласаңыз, катуу Мен окууну сунуштайм
Source: www.habr.com