Memprogram komputer kuantum untuk jurusan non-fisika


44

Saya berasal dari latar belakang non-fisika dan saya sangat tertarik untuk mengejar Quantum Computing - terutama cara memprogramnya. Setiap panduan tentang cara memulai akan sangat membantu.


Seorang programmer klasik tidak perlu memahami cara kerja elektron. Ini juga berlaku untuk QED.
tgm1024

Omong-omong, mekanisme pemformatan di sini tampak sangat buruk dibandingkan dengan situs pertukaran stackex lainnya. Saya mencoba untuk membuat jawaban nyata dan harus menyerah, sehingga beralih ke komentar yang sangat sederhana. Daftar di sini tidak berlaku di dalam tanda kutip. Saya berpikir bahwa semua situs stackexchange berbagi kode UI yang sama.
tgm1024

@ tgm1024 apa yang Anda maksud tepatnya? Format apa yang tidak berfungsi di sini tetapi berfungsi di situs lain? Daftar dalam tanda kutip bekerja dengan sangat baik untuk saya
glS

Jawaban:



17

Saya pikir bahwa pemrogram kuantum tidak perlu perlu tahu tentang fisika kuantum dan aljabar linier. Ini tentu saja hal-hal yang akan membantu memperluas pengetahuan programmer kuantum, tetapi mereka tidak boleh dianggap sebagai prasyarat.

Meski begitu, sebagian besar sumber daya untuk membantu seorang programmer kuantum pemula mulai dengan asumsi aljabar linier. Yang sebagian besar tidak fokus pada QISKit, SDK untuk perangkat kuantum IBM (dan beberapa di antaranya ditulis oleh saya).

Program paling sederhana yang dapat Anda buat adalah "Hello World". Bagaimana Anda melakukannya untuk komputer kuantum? Proposal saya adalah superposisi dari emotikon .

Setelah Anda melampaui "Hello World" dalam pemrograman kuantum, Anda ingin melakukan sesuatu yang lebih kompleks. Seringkali orang membuat game sederhana. Jadi mari kita lakukan itu dengan komputer kuantum. Saya membuat Kapal Perang .

Anda akan menemukan ini dan banyak lagi contoh pemrograman kuantum di tutorial QISKit . Saya pikir itu mungkin tempat terbaik bagi pemrogram kuantum baru untuk melihat apa yang bisa dilakukan, dan bagaimana melakukannya.


5

pyQuil adalah perpustakaan pemrograman kuantum open source dalam Python. Dokumentasi ini mencakup pengenalan langsung ke komputasi kuantum tempat Anda belajar dengan pemrograman. Itu tidak menganggap latar belakang fisika.

Berikut ini beberapa tautan ke topik utama:


5

Tidak perlu memahami Mekanika Quantum untuk memahami teori di balik QC. Saya seorang BSc / programmer matematika dan saya membaca tentang topik dan juga melakukan kursus edX QC lama (sayangnya itu tidak tersedia, tetapi ada yang lain). Saya pikir saya dapat mengatakan bahwa saya memahami inti dari QC, tetapi saya tidak tahu apa-apa tentang Mekanika Quantum.

Bagian kuncinya adalah bahwa Quantum Computing sebagian besar menggunakan aljabar linier, yang didasarkan pada matematika yang umumnya diajarkan di studi sarjana teknik / ilmu komputer. Bandingkan ini dengan Mekanika Quantum nyata yang menggunakan ruang dimensi tak terbatas (atau analisis fungsional, jika Anda mau).

Jika Anda merasa nyaman dengan topik matematika sarjana ini, Anda dapat memeriksa Mekanika Kuantum Susskind : Minimum Teoritis - ini sebenarnya bukan tentang mekanika kuantum 'nyata', sebagian besar hal-hal yang berguna untuk QC. BTW seluruh buku seri Theoretical Minimum ditujukan untuk orang yang tahu matematika (seperti ilmuwan komputer, atau jurusan teknik), dan ingin tahu lebih banyak tentang fisika. Ada juga banyak kursus online, misalnya, ada kursus baru di edX, tapi saya tidak melakukannya, jadi saya tidak bisa merekomendasikannya.


4

Jika Anda ingin melampaui belajar bagaimana menulis sirkuit kuantum dalam berbagai kerangka pemrograman kuantum seperti Q # , pyQuil dan QISKit , saya sangat merekomendasikan makalah ini dengan judul Implementasi Algoritma Quantum untuk Pemula dari Laboratorium Nasional Los Alamos. Ini adalah sumber yang bagus untuk memahami bagaimana menyusun dan mengimplementasikan berbagai algoritma kuantum serta nubuatnya dan subrutin khusus sebagai sirkuit kuantum dengan IBM Q Experience. Saya akan merekomendasikan Anda untuk mengimplementasikannya di salah satu kerangka kerja pemrograman yang disebutkan di atas dan mempelajari rincian seluk-beluk saat Anda pergi.


4

Komputer kuantum diprogram oleh (evolusi bahasa pemrograman yang mewakili) yang disebut sirkuit kuantum. Ini adalah urutan gerbang kuantum plus informasi yang digunakan bit kuantum (qubit).

Satu-satunya hal yang benar-benar perlu Anda ketahui tentang gerbang kuantum adalah bahwa mereka mewakili rotasi (dalam ruang dimensi yang lebih tinggi, yang disebut ruang Hilbert). Karena itu mereka reversibel: Komputer kuantum diprogram dengan logika reversibel.

|00|01|10|11untuk sistem 2-qubit dalam notasi Dirac biasa) mendapatkan bilangan kompleks sebagai koefisien atau sebagai yang disebut probabilitas amplitudo. Basis vektor adalah ortogonal dan merentang ruang Hilbert negara, amplitudo probabilitas dapat dilihat sebagai koordinat di dalamnya. Ini adalah gambar di mana gerbang kuantum mempengaruhi rotasi. Anda akan menemukan bahwa fisikawan sering menggunakan gambar yang berbeda, bola Bloch, untuk sistem qubit tunggal, di mana gerbang kuantum juga menyebabkan rotasi (tetapi kadang-kadang dengan sudut yang lebih besar atau dengan yang dihilangkan dalam gambar itu sama sekali).

Semua logika konvensional dapat diimplementasikan oleh komputer kuantum dengan terlebih dahulu menyatakannya dalam logika yang dapat dibalik (yang mungkin memerlukan bit ancilla). Gerbang NOT klasik berkaitan dengan gerbang kuantum X, tetapi tidak seperti kasus klasik di mana satu-satunya gerbang yang dapat dibalik adalah identitas dan Gerbang NOT, komputer kuantum memiliki empat gerbang yang sesuai (X, Y, Z sesuai dengan rotasi pada Bola Bloch, ditambah identitas). Selanjutnya, Anda dapat memiliki rotasi yang berputar hanya dengan sebagian kecil dari seberapa jauh gerbang ini berputar; beberapa yang sangat menarik memiliki nama dan singkatan khusus seperti gerbang Hadamard atau gerbang H yang menciptakan superposisi yang sama dari semua negara.

Sayangnya, insinyur perangkat lunak kuantum awal mungkin harus tahu sedikit tentang perangkat keras komputer kuantum yang akan mereka gunakan: Karena sudut yang dipilih secara sewenang-wenang dan terus-menerus dari rotasi efektif gerbang kuantum, ada semacam elemen analog ke komputer kuantum yang tentu menciptakan kesalahan (dan komputer kuantum fisik memiliki sumber kesalahan lebih dari itu). Ada cara untuk mengatasinya, koreksi kesalahan kuantum yang mendiskritasikan kesalahan dan mengoreksi diskretisasi yang paling mungkin dari mereka untuk mencapai (idealnya) perhitungan kompleks yang sewenang-wenang dengan kesalahan terikat. Tetapi optimasi kemungkinan akan berarti bahwa satu komputer kuantum dengan satu pilihan koreksi kesalahan kuantum akan lebih tepat di gerbang kuantum tertentu atau bahkan algoritma daripada yang lain,


Adakah orang lain yang bertanya-tanya apakah satu-satunya yang akan memahami cara mudah menulis algoritma kuantum adalah AI kuantum yang dikembangkan sendiri?
tgm1024
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.