Konteks:
Saya telah mencoba untuk memahami algoritma genetika yang dibahas dalam makalah. Dekomposisi matriks kesatuan untuk menemukan sirkuit kuantum: Aplikasi untuk Hamiltonians molekul (Daskin & Kais, 2011) (PDF di sini ) dan Algoritma Optimalisasi Pemimpin Kelompok (Daskin & Kais, 2010) . Saya akan mencoba meringkas apa yang saya mengerti sejauh ini, dan kemudian menyatakan pertanyaan saya.
Mari kita perhatikan contoh gerbang Toffoli di bagian III-A di makalah pertama. Kita tahu dari sumber lain seperti ini , bahwa sekitar 5 gerbang kuantum dua qubit diperlukan untuk mensimulasikan gerbang Toffoli. Jadi kita secara sewenang-wenang memilih satu set gerbang seperti . Kami membatasi diri hingga maksimal gerbang dan mengizinkan diri kami untuk hanya menggunakan gerbang dari gerbang yang ditetapkan . Sekarang kami menghasilkan grup dengan string acak seperti:
1 3 2 0,0; 2 3 1 0,0; 3 2 1 0,0; 4 3 2 0,0; 2 1 3 0.0
Dalam string angka di atas, angka pertama yang dicetak tebal adalah nomor indeks gerbang (yaitu ), angka terakhir adalah nilai sudut dalam dan bilangan bulat tengah adalah qubit target dan qubit kontrol masing-masing. Akan ada string lain yang dihasilkan secara acak.
Setelah kami memiliki grup, kami akan mengikuti algoritma:
Persamaan. (4) yang disebutkan dalam gambar pada dasarnya adalah:
1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.0
3
Bahkan,
Pertanyaan:
Setelah bagian (dalam "Konteks") membahas pemilihan set gerbang dan jumlah gerbang, apakah penjelasan / pemahaman saya (paragraf 3 dan seterusnya) dari algoritma tersebut benar?
sumber
Jawaban:
Saya sarankan melihat bagaimana algoritma genetika bekerja dalam konteks variabel diskrit untuk memahaminya. Mereka menyediakan metodologi tetapi Anda dapat menerapkan teknik mutasi / crossover lainnya.
Secara singkat, dalam masalah optimisasi sederhana di mana variabel-variabelnya terpisah, kita dapat menyelesaikan secara heuristik dengan algoritma genetika (yang termasuk dalam algoritma evolusi kelas). Kami menghasilkan populasi kandidat (secara acak) dan kami mengubah kandidat pada setiap iterasi untuk mencoba menemukan solusi yang baik meminimalkan / memaksimalkan fungsi tujuan (disebut kebugaran). Anda dapat mewakili kandidat dengan serangkaian nilai (disebut kromosom secara umum). Jika Anda memasukkan string nilai ini ke fungsi objektif, Anda mengevaluasi kandidat atau Anda menetapkan kebugaran. Operasi crossover / mutasi dimaksudkan untuk mengubah kandidat dan berharap untuk mencapai tujuan kita dengan cara yang terkait dengan apa yang terjadi dalam genetik.
GLOA hanyalah algoritma genetika lain tetapi dengan perbedaan memiliki kelompok populasi yang berbeda dengan optimum lokal (pemimpin sebagai kandidat terbaik jika Anda suka) untuk masing-masing dan tentu saja strategi yang sedikit berbeda untuk mutasi / crossover. Biasanya, kami memiliki satu kelompok kandidat dengan satu kandidat terbaik di setiap iterasi.
Sekarang untuk pertanyaan Anda:
1. Anda dapat memilih set gerbang apa pun yang Anda inginkan (seperti contoh set Anda). Ini juga berlaku untuk jumlah maksimum operasi gerbang yang Anda ingin membatasi dekomposisi Anda. Itu hanya parameter untuk algoritma. Saya akan mengatakan ini sepenuhnya sewenang-wenang (tidak begitu banyak logika tentu saja hanya heuristik) tapi mungkin apa yang mereka pilih lebih disesuaikan dengan contoh atau pengaturan kerja mereka. Dalam praktiknya, Anda harus mencoba banyak parameter.
2. Anda agak mengulangi penjelasan asli dan terutama diagram jadi saya pikir Anda menyimpulkan dengan baik.
Untuk visualisasi Anda, lihat contoh string yang Anda berikan:
1 3 2 0.0
4. Ini juga sewenang-wenang tergantung pada apa yang Anda inginkan. Ini bisa menjadi jumlah iterasi yang tetap, atau sampai Anda mencapai ambang / kriteria konvergensi.
sumber