Memahami Algoritma Optimalisasi Pemimpin Kelompok

8

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 {V,Z,S,V} . Kami membatasi diri hingga maksimal 5 gerbang dan mengizinkan diri kami untuk hanya menggunakan gerbang dari gerbang yang ditetapkan {V,Z,S,V} . Sekarang kami menghasilkan 25 grup dengan 15 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 V=1,Z=2,S=3,Z=4 ), angka terakhir adalah nilai sudut dalam [0,2π] dan bilangan bulat tengah adalah qubit target dan qubit kontrol masing-masing. Akan ada 374 string lain yang dihasilkan secara acak.

masukkan deskripsi gambar di sini

n=25p=15F=1N|Tr(UaUt)|UaUtF

Setelah kami memiliki grup, kami akan mengikuti algoritma:

masukkan deskripsi gambar di sini

Persamaan. (4) yang disebutkan dalam gambar pada dasarnya adalah:

new string[i]=r1×old string[i]+r2×leader string[i]+r3×random string[i]
1i20r1+r2+r3=1[i]i1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.063r1=0.8r2,r3=0.2375

Bahkan,

4×maxgates21

Pertanyaan:

  1. {V,Z,S,V}{X,Z,Rx,Rzz,V}520

  2. Setelah bagian (dalam "Konteks") membahas pemilihan set gerbang dan jumlah gerbang, apakah penjelasan / pemahaman saya (paragraf 3 dan seterusnya) dari algoritma tersebut benar?

  3. 4×maxgates2maxgates520

  4. 0.99

Sanchayan Dutta
sumber
Saya menerapkan algoritma yang sama dengan python. Sudahkah Anda menerapkannya sepenuhnya? Saya terjebak di beberapa titik yang telah saya jelaskan di posting saya .
Santa
@ Santa Tidak, tapi mungkin ada orang lain di sini. Anda dapat memigrasikan pertanyaan Stack Overflow ke Quantum Computing . Tandai sebagai moderator yang menyebutkan masalah tersebut.
Sanchayan Dutta
1
@Santa Anda dapat menemukan implementasi versi modifikasi dari algoritma GLOA di sini . Perlu diketahui bahwa: 1. ini adalah versi modifikasi dari algoritma asli (saya mencoba membuatnya lebih fleksibel), 2. kode ini cukup umum dan menggunakan banyak struktur data yang dibagi dengan algoritma lain dan 3. lisensi bukan GPL, lihat itu jika Anda berencana untuk membagikan versi kode yang mungkin diubah.
Awal

Jawaban:

2

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.

masukkan deskripsi gambar di sini

t14×maxgates52080

Untuk visualisasi Anda, lihat contoh string yang Anda berikan:

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

maxgates55245×4=20

1 3 2 0.0V320.0V

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.

cnada
sumber
1
Terima kasih atas jawabannya! Saya menambahkan snapshot pseudo-code pada Gambar 2, untuk membuatnya lebih jelas. Namun, jangan ragu untuk menghapusnya, jika Anda mau. :)
Sanchayan Dutta
1
HH