Apakah ada metode umum untuk mengungkapkan masalah optimisasi sebagai orang Hamilton?

9

Katakanlah, bahwa kami memiliki masalah pengoptimalan dalam bentuk:

minxf(x)gi(x)0,i=1,...,mhj(x)=0,j=1,...,p,

di mana f(x) adalah fungsi objektif, gsaya(x) adalah kendala ketimpangan dan hj(x) adalah kendala kesetaraan.

Baru-baru ini saya membaca tentang komputasi kuantum adiabatik . Wikipedia mengatakan:

Pertama, Hamiltonian (berpotensi rumit) ditemukan yang keadaan dasarnya menggambarkan solusi untuk masalah bunga. Selanjutnya, sebuah sistem dengan Hamiltonian sederhana disiapkan dan diinisialisasi ke keadaan dasar. Akhirnya, Hamiltonian sederhana secara adiabatik berevolusi menjadi Hamiltonian rumit yang diinginkan. Dengan teorema adiabatik, sistem tetap dalam kondisi dasar, sehingga pada akhirnya kondisi sistem menjelaskan solusi untuk masalah tersebut. Komputasi kuantum adiabatik telah terbukti setara secara polinomi dengan komputasi kuantum konvensional dalam model rangkaian.

Apakah ada beberapa metode umum untuk mengungkapkan masalah optimisasi (misalnya seperti yang disajikan di atas) dalam formalisme Hamilton yang digunakan dalam komputasi kuantum adiabatik ?

brzepkowski
sumber
1
Saya tidak yakin seberapa formal jawaban yang Anda inginkan, tetapi Anda biasanya menentukan fungsi biaya yang jauh dari solusi dan minimal pada solusinya. Kemudian Anda menerjemahkan fungsi biaya ini ke dalam bahasa spin Pauli (saya menganggap ini langkah yang ingin Anda klarifikasi?). Setelah fungsi biaya Anda dalam bahasa spin itu Hamiltonian Anda. Jika Anda mencari melalui string biner, misalnya, Anda dapat menggunakan fakta bahwa (I-Zi) / 2 akan mengembalikan nilai bit i. Jika ini yang Anda inginkan, saya bisa mencoba menulisnya besok jika ada waktu
bRost03
Bisakah Anda menunjukkan beberapa contoh sebagai jawaban? Itu akan luar biasa :)
brzepkowski
Lihat arxiv.org/abs/1302.5843 (Lucas Ising 2014) untuk banyak contoh.
Paradox

Jawaban:

6

Seperti yang diminta dalam komentar, berikut adalah contoh yang berhasil. Badan utama berurusan dengan meminimalkan untuk masalah tertentu. Di bagian bawah mengikuti diskusi singkat tentang kendala kemudian diskusi singkat tentang kasus umum.f(x)

Mari kita selesaikan masalah Cut Maximum Cut sejak ini

  1. Merupakan contoh yang relatif lurus ke depan
  2. Sulit secara klasik
  3. Merupakan contoh yang relatif umum dalam literatur (mis. Https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.90.067903 )
  4. Memiliki koneksi yang jelas ke Hamiltonian fisik (Ising spin-glasses)

Untuk memahami masalahnya, kita mulai dengan grafik simpul yang tidak diarahkan , di mana setiap simpul memiliki bobot dan setiap sisi yang menghubungkan dan memiliki bobot . Kami kemudian memotong grafik menjadi dua bagian. Potongannya tidak harus lurus tetapi tidak harus berpotongan sendiri dan tidak dapat memotong ujung dua kali. Lalu kami menghitung " pembayaran " untuk potongan kami. Pembayarannya adalah jumlah dari bobot tepi yang kami potong, ditambah jumlah bobot dari simpul di satu sisi potongan. n{V}vsayaVwsaya0vsayavjwsayaj0P 1P1

Sumbermasukkan deskripsi gambar di sini

Dalam gambar ini, pembayaran akan menjadi, untuk tepi ditambah untuk simpul (dengan asumsi jumlah di dalam setiap titik adalah beratnya) . Masalah optimasi adalah untuk memaksimalkan untuk grafik yang diberikan . 1+4+3+3+2=135+6+1=12P=25P 2P2

Untuk menulis ini secara matematis, kita dapat berpikir dalam bentuk bit string. Kami mendefinisikan dipotong dengan string mana tidak dihitung dalam jumlah dan adalah dihitung dalam jumlah. Untuk membuat matematika sedikit lebih bersih, jika grafik tidak sepenuhnya terhubung, buat grafik menjadi sepenuhnya terhubung dan atur untuk setiap pasangan yang tidak terhubung .s{0,1}nsi=0vi s i = 1 v i w i j = 0 v i , v jsi=1vi wij=0vi,vj

Sebagai contoh, melihat gambar di atas lagi, mari kita menafsirkan angka-angka di dalam simpul menjadi indeks simpul bukan bobot seperti yang kita asumsikan di atas. Kemudian potongan yang ditarik sesuai dengan . ada di sisi "baik" dari potongan dan dihitung, sementara berada di sisi "buruk" dari potongan dan tidak dihitung .s=100011s1=s5=s6=1v1,v5,v6s2=s3=s4=0

Ini kemudian memungkinkan kita untuk menulis

P(s)=sayassayawsaya+saya,jssaya(1-sj)wsayaj

Istilah pertama hanya menghitung bobot semua simpul pada sisi "baik" dari potongan. Istilah kedua menghitung berat tepi jika simpul yang disambungkan berada pada sisi yang berlawanan dari potongan. Perhatikan ini tidak menghitung ganda karena hanya menghitung tepi ketika dan tidak ketika .ssaya=1,sj=0ssaya=0,sj=1

Jadi sekarang masalah optimasi kami adalah menemukan string yang memaksimalkan . Idenya di sini adalah untuk menganggap sebagai ukuran energi suatu sistem dan sebagai keadaan sistem. Ini berarti kita bisa menghubungkan dengan Hamiltonian kita. Ada sedikit halus di sini bahwa kami mencoba untuk memaksimalkan tetapi kami biasanya berbicara tentang menemukan keadaan dasar seorang Hamilton. Ini bukan masalah tapi saya ingin menunjukkannya - kita bisa melihat keadaan tereksitasi energi tertinggi (keadaan anti-tanah jika Anda mau) atau menggunakan sebagai fungsi energi kita kemudian bekerja dengan keadaan dasar seperti biasa. Kerja Mari kita dengan tertinggi bersemangat negara dan memaksimalkan .sP(s)P(s)sP(s)P(s)-P(s)P

Kami ingin membuat Hamiltonian sehingga kondisi energi tertinggi adalah sehingga maksimal. Pada dasarnya kami ingin mengubah , fungsi energi, menjadi , operator energi. Kami melakukan ini dengan memperhatikan bahwa untuk kami memiliki|s0P(s0)P(s)H | s { | 0 , | 1 } I - ZH^|s{|0,|1}

IZ2|s=s|s define s^i=IZi2

Di mana adalah Pauli bertindak atas qubit . Sekarang kita dapatkan Hamiltonian kita dengan mengganti dengan (dan 1 dengan ) diZiZiss I Ps^IP

H=is^iwi+i,js^i(Is^j)wi,j=iIZi2wi+i,jIZi2(IIZj2)wi,j

Ini dapat dibersihkan dengan memperluas dan melihati,j(ZiZj)=0

H=iwi2(IZi)+i,jwij4(IZiZj)=iwi2(IZi)+i<jwij2(IZiZj)

Kita dapat membersihkan ini lebih jauh dengan mengalikannya dengan 2 dan menghapus pergeseran energi yang konstan (hapus istilah ). Hamiltonian baru dengan status eigen yang sama dengan nilai eigen yang diskalakan dan digeser (jelas energi maksimum tidak terpengaruh oleh transformasi ini)I

H=iwiZii<jwijZiZj

Jika Anda seorang ahli fisika benda terkondensasi Anda mungkin akan mengenali Hamiltonian ini sebagai gelas spin Ising. Tidak benar-benar relevan dengan masalah, tetapi saya pikir itu keren.

Jadi sekarang kita memiliki Hamiltonian yang (anti-) kondisi dasar mengkodekan bit string yang memaksimalkan dan menyelesaikan masalah.s0P(s)

Hal terakhir yang kita butuhkan adalah Hamiltonian awal , yang kita perlahan-lahan (secara adiabatis) berubah menjadi Hamiltonian terakhir kita sehingga kita dapat mendefinisikan Hamiltonian penuhH0H

HT(t)=(1f(t))H0+f(t)H:f(0)=0,f(tf)=1

Sebagai titik awal sering digunakan untuk kesederhanaan. Minimum ditentukan oleh akurasi yang diinginkan dan gap spektral . Kesenjangan spektral adalah perbedaan energi minimum, di atas semua , antara keadaan tanah (anti-) dan keadaan energi berikutnya. Analisis kesenjangan sangat non-sepele (lihat https://arxiv.org/abs/quant-ph/0509162 ) dan menentukan kompleksitas / efisiensi algoritma. Algoritma dengan 0 gap tidak dijamin berfungsi sama sekali.f(t)ttf3 t3t

Jadi kami ingin sedemikian rupaH0

  1. Kita dapat dengan mudah menemukan dan menyiapkan keadaan dasar (anti)
  2. Kesenjangan spektral tidak kecil dalam ukuran masalahH

Untuk masalah ini, Hamiltonian awal yang baik adalah karena keadaan energinya paling tinggi mudah ditemukan, ini . Mudah untuk dipersiapkan, cukup terapkan ke . Saya tidak punya waktu untuk masuk ke dalam analisis kesenjangan spektral tetapi Hamiltonian ini tidak mungkin ideal dalam hal itu (lihat https://arxiv.org/abs/1701.05584 ).H0=iXi|+nHn|0n

Dengan pilihan dan mengambil kita selesai. Hamiltonian kami adalahH0f(t)=t/tf

H(t)=(1f(t))iXif(t)[iwiZi+i<jwijZiZj]

Mulai dalam keadaan , berevolusi sesuai dengan Hamiltonian di atas untuk waktu (memilih sesuai , sekali lagi, umumnya sangat non-sepele ) kemudian mengukur dalam dasar komputasi harus mengembalikan (dengan probabilitas tinggi) string yang memaksimalkan .|ψ0=Hn|0ntftfs=s0P(s)

1 Ini ambigu karena secara simetri kedua pihak akan melakukannya. Kita dapat membuatnya dengan ketat, misalnya, membuat potongan diarahkan lalu mengambil simpul ke kiri potongan ketika berjalan di sepanjang arah potongan.

2 Saya telah mengatakan di komentar kami meminimalkan fungsi biaya, jika Anda suka ini lebih baik, ambil saja biaya pembayaran dan meminimalkan biaya.=

3 Saya menyapu beberapa perincian tentang apa arti "lambat" di bawah permadani tetapi dapat dikaitkan dengan skala energi dari masalah (yaitu mengalikan dengan konstanta akan mengubah kecepatan).H

Kendala

Katakanlah kita ingin memodifikasi masalah di atas untuk mensyaratkan bahwa tepat simpul berada di sisi "baik" dari potongan kita. Secara matematis ini adalah . Untuk menegakkan ini, kami menambahkan hukuman ke Hamiltonian kami untuk solusi yang melanggar batasan ini. Jadi kami menambahkan istilah seperti memilih cukup besar untuk memastikan negara yang melanggar batasan ini tidak bisa menjadi keadaan energi tertinggi.5isi5=0Hc=α(is^i5I)2α

Katakanlah sebaliknya kita ingin mensyaratkan bahwa tidak ada lebih dari simpul pada sisi "baik" dari potongan kita. Sepertinya ini agak sulit dilakukan. Dalam https://arxiv.org/abs/1702.06248 mereka menyatakan bahwa mendekati kendala ketidaksetaraan untuk memesan memerlukan spin kopling yang akan membutuhkan lebih banyak overhead untuk memecahnya menjadi kopling 2-qubit yang sering diperlukan pada arsitektur yang diberikan. Intinya strategi adalah untuk memperkirakan fungsi langkah menggunakan5k O ( N 2 k ) k k thkO(N2k) kkthmemesan polinomial. Ini sepertinya cara yang buruk untuk melakukannya - tetapi saya tidak bisa memikirkan cara yang lebih baik. Ini datang dari Troyer pada tahun 2017 sehingga relatif tidak mungkin, meskipun tentu mungkin, bahwa cara yang lebih baik saat ini diketahui.

Kasus umum

Pertanyaannya menanyakan tentang metode umum untuk penyandian masalah optimasi ke Hamiltonian. Secara khusus kami ingin meminimalkan dengan serangkaian kendala. Pada bagian di atas saya membahas menambahkan kendala ke Hamilton. Jadi untuk sepenuhnya umum , apakah ada cara untuk menyandikannya menjadi Hamiltonian? Metode umum untuk ini dalam literatur adalah mengasumsikan kita memiliki akses ke oracle kuantum efisien yang mengimplementasikan . Kita dapat menganggap ini sebagai operasi kotak hitam (yaitu oracle kuantum) sedemikian rupa sehingga . Maka kita dapat membangun Hamiltonian kita sebagai f(x)f(x)f(x)f^(x)f^(x)|x=f(x)|x

H=xf^(x)|xx|
Tentu saja ini hanya mendorong bagian yang sulit untuk menemukan / membangun . Faktanya, argumen penghitungan sederhana menunjukkan bahwa hampir semua (dalam arti matematika) oracle quantum secara eksponensial tidak efisien untuk diimplementasikan (lihat http://www.ar-tiste.com/imp-oracles/imps2.pdf ). Jadi, sementara ini adalah penyandian umum masalah optimasi ke Hamiltonian - itu tidak terlalu praktis. Tampaknya menjadi kasus bahwa jika Anda ingin menyandikan masalah optimisasi Anda menjadi Hamiltonian dengan cara yang bermanfaat - Anda perlu memanfaatkan beberapa struktur . Pemahaman saya adalah bahwa secara spesifik bagaimana melakukan ini dan bagaimana melakukan ini dengan yang terbaikf^(x)f(x) cara tidak sepenuhnya dipahami dan merupakan subjek penelitian aktif.

bRost03
sumber
Masalah maxcut dijelaskan dengan baik dalam jawaban ini. Namun masalah optimasi dinyatakan dengan cara yang sedikit menyimpang dari masalah max-cut mengenai kesetaraan dan kendala ketidaksetaraan.
Bram
Saya tidak melakukan terlalu banyak dengan optimasi dalam pekerjaan saya. Bisakah Anda memberikan contoh spesifik yang sesuai dengan formulir yang diberikan? Saya bisa mengambil
bikin
Saya telah mengedit jawaban untuk menyertakan batasan kesetaraan dan mendiskusikan kesulitan menerapkan batasan ketidaksetaraan
bRost03
Diedit lebih lanjut untuk menambahkan uraian tentang kasus umum
bRost03
Jawaban bagus! Saya terutama tertarik pada bagian yang menjelaskan transisi antara dan . ss^
brzepkowski