გაეცანით თქვენს კვანტურ პროცესორს

კვანტური კომპიუტერები აშენებულია კუბიტიდან. მაგრამ უბრალოდ უამრავი ქუბიტი არ არის საკმარისი.

სრული იზოლაციით მომუშავე მილიარდი ქუბიტი ვერაფერს მიაღწევს. მათ უნდა ესაუბრონ ერთმანეთთან. ეს ნიშნავს, რომ საჭიროა დაკავშირება ე.წ. კონტროლირებადი ოპერაციებით. ყველა მოწყობილობას აქვს საკუთარი წესები, რომელთა მიხედვითაც შესაძლებელია წყვილი ქუბიტების დაკავშირება ამ გზით. რაც უფრო უკეთესია მოწყობილობის კავშირი, უფრო სწრაფი და ადვილი იქნება ჩვენთვის ძლიერი კვანტური ალგორითმების განხორციელება.

შეცდომების ბუნება ასევე მნიშვნელოვანი ფაქტორია. კვანტური გამოთვლის უახლოეს ხანაში, არაფერი იქნება სრულყოფილი. ასე რომ, ჩვენ უნდა ვიცოდეთ, რა სახის შეცდომები მოხდება, რამდენად სავარაუდოა ისინი და რამდენად შესაძლებელია მათი ეფექტების შემცირება აპლიკაციებზე, რომლებზედაც ჩვენ ვიზრუნებთ.

ეს არის კვანტური მოწყობილობის სამი ყველაზე მნიშვნელოვანი ასპექტი: qubit ნომერი, კავშირი და ხმაურის დონე. იმისთვის რომ გქონდეთ წარმოდგენა იმაზე, თუ რა შეუძლია გააკეთოს კვანტურ კომპიუტერს, თქვენ უნდა იცოდეთ ეს ყველაფერი.

მოდით, გავაკეთოთ თამაში, რომელიც კვანტურ აპარატზე გადის და ამ ყველაფერს პირდაპირ გვიჩვენებს. თამაშის თამაშით მხოლოდ მოთამაშე დაინახავს, ​​რამდენად დიდია დაკავშირებული და დაკავშირებული მოწყობილობა. შედარებისას რეალურ მოწყობილობაზე და სიმულატორთან შედარებით, ისინი დაინახავენ რამდენად ძლიერია ხმაური. შემდეგ, შეცდომით შემსუბუქებული შეცდომით, კვლავ მიიღებენ იდეას, თუ რამდენად სასარგებლო ინფორმაციის გადარჩენა შესაძლებელია ოდნავ ხმაურიანი კვანტური კომპიუტერების ეპოქაშიც კი. ჩვენ ამ თამაშს Quantum Awesomeness დავარქმევთ და მას IBM მოწყობილობაზე დავარქმევთ. ”Ibmq_16_melbourne”.

ზემოთ მოყვანილი სურათი იძლევა სწრაფ სახელმძღვანელოს იმის შესახებ, თუ რა ხდება მელბურნის მოწყობილობაში. აქ არის 14 კუბიტი, დათვლილია 0 – დან 13 – მდე, ნაჩვენებია ფერადი წრეებით. ის ქუბიტები, რომლებსაც შეუძლიათ ერთმანეთთან საუბარი გააკონტროლონ ოპერაციით, ნაჩვენებია ხაზებით, რომლებიც თითოეულ მათგანს მიენიჭა ასო სახელისთვის.

ყველაზე სასარგებლო რამ, რაც შეგიძლიათ გააკეთოთ კონტროლირებად ოპერაციებთან, არის ინტელექტის შექმნა და მანიპულირება. მხოლოდ ამის საშუალებით შეგვიძლია გამოვიკვლიოთ შესაძლებლობების სრული სივრცე, რომელიც ღიაა ჩვენი კუბიტებისთვის და ვიმედოვნოთ, რომ გავაკეთოთ ისეთი რამ, რაც კლასიკური კომპიუტერებისთვის პრაქტიკულად შეუძლებელია.

ჩახლართვის უმარტივესი სახეობა მოიცავს მხოლოდ ორ კუბიტს. ეს გამოიწვევს თითოეულ შედეგს, რომ იყოს შემთხვევითი, მაგრამ მათ შორის კორელაციები. მაგალითად, განვიხილოთ შემდეგი პროგრამა რამდენიმე კუბიტაზე.

ეს არის მიკროსქემის დიაგრამა: ჩვენს პროგრამაში ქუბიტების ისტორია მარცხნიდან მარჯვნივ.

აქ ჩვენ ვასრულებთ rx ოპერაციას კუთხეში π / 2, რის შედეგადაც რას წარმოადგენს არსებითად X- კარიბჭე. ეს არის მაგალითი იმისა, რომ ჩვენ საბრძოლო გემებში „ნაწილობრივ NOT“ ვუწოდეთ, ნაწილობრივი NOT Gates თამაშით. იმის ნაცვლად, რომ შეცვალოს qubit ყველა გზა | 0⟩– დან | 1⟩– მდე, ის პარკავს მას კვანტურ სუპერპოზიციურ მდგომარეობაში.

ოპერაცია, რომელიც მოქმედებს ორივე კუბიტზე, არის კონტროლირებადი-NOT, რომელიც ეხება NOT ქვედა ყუბიტზე მხოლოდ მაშინ, როდესაც ტოპ სახელმწიფოში მდგომარეობს | 1⟩. გამომდინარე იქიდან, რომ პირველ რიგში ორივე შესაძლებლობის სუპერპოზიციაა, კონტროლირებადი (NOT) მოქმედება არის სუპერპოზიციის გავრცელება ქვედა ყუბიტზე: ასევე | 0⟩ და ორივეს ერთობლივი სუპერპოზიცია | 1⟩.

მიკროსქემის დასკვნითი ნაწილი არის თითოეული ბუბურიდან მარტივი ბიტის ამოღება: | 0⟩ ხდება 0, | 0⟩ ხდება 1, ხოლო სუპერპოზიცია ხდება ერთი ან მეორის შემთხვევითი არჩევანი. მიუხედავად იმისა, რომ ორივე ქუბიტი ამ შემთხვევაში შემთხვევით შედეგს მისცემს, ისინი დარწმუნებული არიან, რომ ყოველთვის შეთანხმდნენ.

ამის დასამოწმებლად, მოდით გავუშვათ. შედეგი მივიღე,

'11': 503, '00': 521

1024 ნიმუშიდან, რომლითაც პროგრამა იყო გამოყენებული, ყველა შედეგი გამოვიდა ან `00` ან` 11`. და თითოეული ჩვენთვის გვაქვს დაახლოებით თანაბარი რაოდენობის ნიმუშები. ყველაფერი, როგორც წინასწარ იყო განსაზღვრული.

Π / 2 მნიშვნელობის შეცვლით შეგვიძლია შეცვალოთ სუპერპოზიციის ბუნება. უფრო დაბალი ღირებულება გამოიღებს შედეგებს უფრო არაობიექტური 0-ების შედეგებამდე, ხოლო π- ზე უფრო ახლოს მყოფი ღირებულება გამოიწვევს მიკერძოებას 1-ების მიმართ. ეს ნიშნავს, რომ ჩვენ შეიძლება განსხვავდებოდეს ალბათობა, რომლითაც თითოეულ გამომავალს მისცემს 1. მაგრამ რაც არ უნდა აირჩიოს მნიშვნელობა, ამ ფორმის წრიული ფორმა უზრუნველყოფს, რომ ორი ქუბიტის შედეგები ყოველთვის თანხმდება.

ამ თამაშში ჩვენ უამრავ ამ წყვილს გადავურჩებით აპარატის მასშტაბით. ამისათვის პირველ რიგში უნდა შევარჩიოთ ქუბების ერთფეროვნად შედგენა (შესაძლოა, დარჩენილი სათადარიგო ნაწილების დატოვება). ეს დაწყვილება შეირჩევა შემთხვევით, ხოლო თამაშის მთელი აზრი იმისთვის არის, რომ მოთამაშემ გამოიცნოს როგორი იყო ეს წყვილი.

მას შემდეგ, რაც შემთხვევითი დაწყვილება შეგვეძლება, ჩვენ, ძირითადად, კვანტურ პროგრამას დავასრულებთ თითოეულ დამოუკიდებელ წყვილზე. თუმცა, ჩვენ წარმოგიდგენთ ერთ განსხვავებას: თითოეული წყვილისთვის შემთხვევით შევარჩევთ სხვა მნიშვნელობას rx ოპერაციისთვის, ამიტომ დაწყვილებული ქუბიტების მიერ გაზიარებული შემთხვევითობის ხარისხი განსხვავდება წყვილისგან.

როდესაც ჩვენ ჩართავთ წრედს, შედეგი იქნება 14 ბიტის სტრიქონი: თითოეულ ბიტთან ერთად აღწერილია თითოეული კუბიტის გამომავალი. მას შემდეგ, რაც ჩვენ ბევრ ნიმუშს ვუშვებთ სტატისტიკის აღებას, სრული შედეგი იქნება ყველა იმ სიმწრის სიმებიანი სიიდან, რომელიც გამოვიდა, თითოეული იმ დროის იმ რიცხვებთან ერთად.

იმის გამო, რომ თამაშის მიზანია მოთამაშეს გამოყოს დაწყვილება წყვილიდან, ჩვენ შეგვიძლია უბრალოდ გადავდოთ ყველა ეს მონაცემი მათზე. მაგრამ ეს ალბათ არ იქნება ძალიან სახალისო. ამის ნაცვლად, ჩვენ შეგვიძლია მხოლოდ მნიშვნელოვან წერტილებზე გავაკეთოთ ყურადღება:

  • რა არის ალბათობა თითოეული კუბიტის 0-ის ნაცვლად გამოშვების 1-დან?
  • რა არის ალბათობა, რომ თითოეულ წყვილთან დაკავშირებულ ქუბიტს ერთი და იგივე მნიშვნელობა მისცეს?

ამის შემდეგ ჩვენ შეგვიძლია მოვათავსოთ ეს ინფორმაცია მოწყობილობის ჩვენი გამოსახულების შესახებ. მაგალითად, აქ მოცემულია რამდენიმე პერსპექტივა.

თითოეულ კუბიტზე გამოსახული რიცხვი არის ნიმუშების პროცენტი, რისთვისაც შედეგი იყო 1. თითოეული კავშირი არის ნიმუშების პროცენტული მაჩვენებელი, რომლისთვისაც შესაბამის წყვილების qubits– ს ჰქონდა შედეგები, რომლებიც არ ეთანხმებოდნენ. ამ ინფორმაციის საშუალებით, ჩვენ მარტივად შეგვიძლია მოვიძიოთ ქუბიტების წყვილი, რომლებიც გადაშლილ იქნა: ან მოძებნონ ქუბები, რომლებიც იცავენ 1-ს გამოყოფის ერთ ალბათობას, ან იპოვნებენ წყვილებს, რომლებიც არასდროს ეთანხმებოდნენ.

ზემოთ მოყვანილი მონაცემები ამოღებულია სიმულატორიდან. ახლა მოდით ვცადოთ ის რეალურ კვანტურ მოწყობილობაზე.

აქ შედეგები ისეთი მკაფიო არ არის, როგორც სიმულატორისთვის. ხმაურის შედეგები ბევრად უფრო ძლიერია, რაც გაცილებით რთავს წყვილების იდენტიფიცირებას.

მაგრამ ყველაფერი არ არის დაკარგული! შეცდომის შემსუბუქება შეგვიძლია. ჩვენ ვიცით, რომ გამომავალს უნდა ჰქონდეს გარკვეული სტრუქტურა, ამიტომ შეგვიძლია მოძებნოთ ის სტრუქტურა და გამოიყენოთ იგი შედეგის გასასუფთავებლად.

აქ არის ძალიან მარტივი, ამის გაკეთება. პირველი, თითოეული ყუბი შეხედავს თავის მეზობლებს და დაინახავს რომელთან ყველაზე მეტად ეთანხმება მას. შემდეგ დავუშვებთ, რომ ეს ყველაზე მეტად სასურველია მისი პარტნიორი. მისი შედეგების შეცდომების გამოსაცნობად და ჩვენ შეცვლის ამ qubit– ის 1 – ის გამოშვების ალბათობას და მათგან საშუალო.

თუმცა ყველაფერი გაუმჯობესდა, მაგრამ ისინი სრულყოფილად არ დასრულებულა. ეს არის იმის გამო, რომ ჩვენი შეცდომების შემსუბუქებული სქემა საკმაოდ მარტივია და პროცესის დასრულების შემდეგ უბრალოდ ჩაქრება. შეცდომის შემცირებამ შეიძლება ძლიერი გავლენა მოახდინოს, მაგრამ ეს ყველაზე ეფექტურია კვანტურ პროგრამაში შესასვლელად (რამე ექსპერიმენტი რომ შეეცადოთ საკუთარ თავს, თუ გსურთ ამ პროექტის გაფართოება).

ახლა, მოდით, უბრალოდ შევადგინოთ თამაში ამ შერბილებული შედეგების გამოყენებით.

ჩვენი საქმეა, გადავხედოთ ქუბიტებზე არსებულ რიცხვებს და შევეცადოთ იპოვოთ წყვილი, რომლებსაც ან აქვთ ერთი და იგივე ნომერი, ან მინიმუმ ჰქონდეთ ისეთი რიცხვები, რაც შეიძლება ახლოს. მარცხენა მხრიდან ორი 48 წუთი კარგი დასაწყისია. მოდით წავიდეთ წყვილი A– სთვის, როგორც ერთი, ვფიქრობთ, ჩარეული.

H 46 წყვილი წყვილი H ერთნაირია და ერთმანეთისგან საკმაოდ განსხვავდება. ასე რომ, ჩვენც გადავალთ ამისათვის.

შემდეგ წყვილი E საკმაოდ გარკვეულია.

და წყვილი C.

ახლა ჩვენ მივაღწიეთ წერტილს, როდესაც ხმაური ცოტა ართულებს მას. 42 უნდა დაწყვილებული იყოს 55-ით, ან 56-ით? ვინაიდან 55 უფრო ახლოს არის მნიშვნელობით, ჩვენ წავიდეთ წყვილი O– ზე.

დაბოლოს, ჩვენ ორი კუბიტი დაგვრჩა, რომლებმაც არაფერი უნდა დაწყვილებული. ეს ყოველთვის მოხდება ამ მოწყობილობაში, მისი კავშირის გრაფიკის სტრუქტურის შესაბამისად. ასე რომ, ჩვენ მივაღწიეთ გამოსავალს! მაგრამ ეს იყო სწორი?

მოდით, კვლავ გადავხედოთ ხმაურიან სიმულაციას, სადაც სწორი დაწყვილება უფრო ადვილი ჩანახატი იყო.

წყვილი, რომელიც აქ სრულყოფილ შეთანხმებას აჩვენებს, ზუსტად არის ის, რაც ჩვენ უბრალოდ ავირჩიეთ. ასე რომ, ჩვენ მართალი ვიყავით. თამაში კვანტურ კომპიუტერზე ვითამაშეთ და მოვიგეთ!

Შემდეგი რა არის?

თუ გსურთ დაიწყოთ კვანტური პროგრამირების პროგრამა, რატომ არ უნდა გადახედოთ ამ თამაშის წყაროს კოდი, რომელიც ხელმისაწვდომია Qiskit სამეურვეო პროგრამაზე.

ჩვენ კიდევ რამდენიმე იდეა შევიკრიბეთ იმაზე, თუ როგორ შეგიძლიათ მისი გაფართოება

  • ჩაწერეთ ალგორითმი, რომ ითამაშოს თამაში. ეს გამოიცანით წყვილებს რაც შეიძლება სწორად, მონაცემების ანალიზის ჭკვიანურად გაანალიზებით.
  • თავსატეხი ძალიან მარტივია მოსაგვარებლად, როდესაც ხმაური არ არის. თქვენ შეგიძლიათ დანერგოთ სხვადასხვა სირთულის დონე.
  • აქ გამოყენებული შეცდომის შემსუბუქება ძალიან მარტივია. შეგიძლიათ შეეცადოთ შეასრულოთ რაღაც უფრო დახვეწილი, მაგალითად, ამ მოხსენებაში აღწერილი 'ძლიერი ფაზის შეფასება'.
  • შეიძლება გამოყენებულ იქნეს უფრო რთული ჩახლართული სახელმწიფოები, მაგალითად, სამი ხუბიტის მქონე სახელმწიფოები, რათა არ მოხდეს მოწყობილობისთვის ქუბიტების დატოვება გართობისგან?

გაერთეთ, ამ და ჩვენი სხვა კვანტური თამაშებით!