Luca, sejak satu tahun berlalu, Anda mungkin telah meneliti jawaban Anda sendiri. Saya menjawab beberapa pertanyaan Anda di sini hanya untuk catatan. Saya meninjau beberapa algoritma relaksasi Lagrangian untuk masalah yang Anda sebutkan, dan membuat sketsa koneksi ke pembelajaran (khususnya, mengikuti saran ahli). Saya tidak berkomentar di sini tentang algoritma SDP.
Perhatikan bahwa algoritma tertentu yang Anda sebutkan tidak berjalan dalam waktu yang hampir linier. (Ada algoritme waktu yang hampir linier untuk
pengemasan yang diberikan secara eksplisit atau mengatasi masalah. Lihat
Mengalahkan Simpleks untuk Pengemasan Pecahan dan Menutupi Program Linear .) Algoritma yang ada dalam pikiran Anda biasanya memiliki varian yang berjalan dalam jumlah iterasi yang hampir linier , tetapi masing-masing iterasi biasanya memerlukan setidaknya waktu linier juga. Saya membahas beberapa algoritma di bawah ini.
Beberapa fungsi yang bermanfaat
Sebelum kita mulai, berikut adalah beberapa fungsi yang akan kita gunakan dalam sketsa bukti. (Jika Anda tertarik pada algoritme, tetapi bukan perincian buktinya, Anda dapat langsung beralih.) Untuk setiap vektor , tentukan sebagai . Fungsi ini merupakan batas atas pada :
Secara analog, tentukan sebagai , batas bawah pada .yLmax(y)ln∑iexp(yi)maxiyimaxiyi ≤ Lmax(y) ≤ maxiyi+lnm.
- Lmax ( - y ) min i y iLmin(y)−Lmax(−y)miniyi
Untuk kenyamanan dalam apa yang berikut, kami menggunakan untuk menunjukkan gradien dari Lmin. Kami menggunakan untuk menunjukkan gradien dari Lmax.g(y)∇Lmin(y)G(y)∇Lmax(y)
Secara eksplisit, adalah
sedangkan adalah .gi(y)exp(−yi)/∑i′exp(−yi′)Gi(y)exp(yi)/∑i′exp(yi′)
Lmin dan Lmax halus dalam arti berikut: untuk setiap vektor dan ,
dan
d∈[0,ε]ny∈RnLmin(y+d) ≥ Lmin(y) + (1−O(ε))d⋅g(y)
Lmax(y+d) ≤ Lmax(y) + (1+O(ε))d⋅G(y).
Perhatikan bahwa kedua gradien memiliki 1-norma sama dengan 1:
. (Sepanjang kami menggunakan untuk menunjukkan 1-norma.)|G(y)|=|g(y)|=1|z|
Perhatikan juga bahwa, untuk matriks , gradien fungsi sehubungan dengan
adalah (dengan aturan rantai) . Lebih eksplisit, turunan parsial dari fungsi sehubungan dengan
adalah . Demikian juga, turunan parsial Lmax
sehubungan dengan adalah .Ax↦Lmin(Ax)x(g(Ax))TAxj∑sayaSEBUAHsaya jexp( - Asayax ) / ∑sayaexp( - Asayax )( A x )xj∑sayaSEBUAHsaya jexp( Asayax ) / ∑sayaexp( Asayax )
Penutup Set Pecahan
Perbaiki contoh Set-Cover. Biarkan menunjukkan matriks elemen / set kejadian. Dengan demikian, jika , 0, dan adalah sejauh mana penutup fraksional mencakup elemen .SEBUAHSEBUAHe s= 1e ∈ sSEBUAHexxe
LP adalah . Diberikan , algoritmenya adalahmin { | x | : A x ≥ 1 ; x ≥ 0 }ε ∈ ( 0 , 1 )
- Inisialisasi semua . Biarkan . xs= 0N= log( n ) / ε
Ulangi sampai : mineSEBUAHex ≥ N
2.1. Pilih memaksimalkan turunan parsial Lmin wrt .
(Secara eksplisit, pilih memaksimalkan .) s( A x )xs s ¢ e ∈ s exp ( - ∑ s ′ ∋ e x s ′ )
s∑e ∈ sexp( - ∑s′∋ exs′)
2.2. Tambah oleh . xsε
Kembalikan .x / mnteSEBUAHex
Algoritma mengembalikan solusi perkiraan di iterasi, di mana adalah jumlah elemen dan adalah optimal set penutup fraksional (sepele ). (Algoritma serupa muncul di kertas yang disebutkan Chandra . Vertex Cover tentu saja merupakan kasus khusus.)( 1 + O ( ε ) )O ( | x∗| log( n ) / ε2)nx∗| x∗| ≤n
( Catatan: Perhatikan bahwa batas iterasi tidak tergantung pada jumlah set, hanya jumlah elemen. Dengan demikian, algoritma dapat digunakan dengan sistem set yang ditentukan secara implisit, asalkan diberi bobot pada elemen, kita dapat secara efisien menemukan satu set berat total maksimum (atau hampir maksimum). Jenis oracle ini sama dengan oracle yang diperlukan untuk menerapkan algoritma ellipsoid pada masalah ganda . Untuk masalah pengemasan seperti mengatur pengemasan, Anda memerlukan oracle yang, diberi bobot pada elemen, mengembalikan set yang meminimalkan bobot total. Untuk masalah seperti aliran multi-komoditas, Anda mungkin, misalnya, perlu menemukan jalur yang meminimalkan jumlah beberapa bobot tepi tertentu.)
Berikut ini sketsa bukti jaminan kinerja. Dalam setiap iterasi, turunan parsial wr dipilih
setidaknya, di mana adalah penutup set pecahan optimal.s1 / | x∗|x∗
(Untuk mengetahui alasannya, ingatlah bahwa gradien Lmin berkenaan dengan adalah . Jika kita memilih himpunan secara acak dari distribusi , nilai yang diharapkan dari turunan parsial sehubungan dengan
dengan demikian akan menjadi . Sejak , ini setidaknya . Karena , ini setidaknya . Dengan demikian, harus ada beberapa memberikan turunan parsial setidaknya . Karena algoritma memilih( A x )x( g( A x ) )TSEBUAHs′x∗/ | x∗|xs′( g( A x ) )TA x∗/ | x∗|A x∗≥ 1| g( A x ) | / | x∗|| g( A x ) | = 11 / | x∗|s1 / | x∗|xsdalam setiap iterasi untuk memaksimalkan
turunan parsial, ia mencapai turunan parsial setidaknya.) 1 / | x ∗ |1 / | x∗|
Kemudian, ukuran langkah dipilih cukup kecil sehingga tidak ada koordinat meningkat lebih dari . Dengan demikian, karena kehalusan Lmin, meningkatkan
ke meningkat dengan setidaknya
.εA xεxsxs+ εLmin (Ax)( 1 - O ( ε ) ) ε / | x∗|
Dengan cara ini, algoritma mempertahankan invarian
(Perhatikan bahwa Lmin sama dengan .)Lmin(Ax)≥(1−O(ε))|x|/|x∗|−lnn.
(0¯¯¯)lnn
Pada saat terminasi, pada invarian, istilah adalah dikali sisi kiri, sehingga dengan perhitungan kita mendapat. Setelah normalisasi pada baris terakhir dari algoritma, ini menyiratkan.lnnO(ε)mineAex≥(1−O(ε))|x|/|x∗||x|≤(1+O(ε))|x∗|
FWIW, ketidaksetaraan yang terlibat dalam membuktikan invarian pada dasarnya sama dengan yang terlibat dalam membuktikan ikatan Chernoff. (Pada kenyataannya, algoritma ini dapat diturunkan dengan menerapkan metode probabilitas bersyarat ke skema pembulatan acak yang berulang kali menetapkan sampel dari distribusi
(dengan penggantian), meningkatkan untuk setiap set sampel Ini derandomisasi yang memberikan algoritma: invarian yang mendasari hanya bahwa estimator pesimis tetap di bawah 1. Denda eksponensial dalam estimator pesimis berasal dari penggunaan Chernoff terikat dalam analisis skema pembulatan. Ide dasar ini dijelaskan lebih lanjut di koran yang disebutkan Chandra .)x∗/|x∗|xss
Penutup Set Berbobot Pecahan (dan Penutupan fraksional umum)
Untuk menangani masalah seperti Weighted Set Cover secara efisien , kami memodifikasi algoritme untuk menggunakan peningkatan yang tidak seragam (ide karena Garg dan Konemann ).
LP adalah , di mana rentang atas unsur-unsur, rentang atas set, dan semua variabel yang non -negatif. Untuk menyajikan algoritme, tulis ulang masalah sebagai masalah penutup umum. Biarkan untuk dan sebaliknya. Kemudian (dengan perubahan variabel, setiap skala oleh ), LP adalah , yang dapat kita lihat sebagai LP umum yang meliputi. Berikut algoritanya:min{c⋅x:(∀e)∑s∋exs≥1}esAes=1/cse∈sAes=0xscsmin{|x|:Ax≥1;x≥0}
Inisialisasi semua . Biarkan .xs=0N=log(n)/ε
Ulangi sampai semua batasan yang menutupi telah dihapus:
2.1. Pilih memaksimalkan turunan parsial Lmin wrt .
(Secara eksplisit, pilih memaksimalkan .)s(Ax)xs s ∑ e ∈ s exp ( - ∑ s ′ ∋ e x s ′ ) / c s
s∑e∈sexp(−∑s′∋exs′)/cs
2.2. Tingkatkan oleh , di mana dipilih secara maksimal sehingga, untuk setiap batasan tersisa , peningkatan paling banyak .xsδδeAe⋅xε
2.3 Hapus semua kendala yang meliputi sehingga .eAe⋅x≥N
Kembalikan .x/mineAe⋅x
Algoritme mengembalikan solusi -roksimasi dalam iterasi , di mana adalah jumlah batasan yang meliputi. (Setiap iterasi meningkatkan beberapa tersisa dengan ; ini hanya dapat terjadi kali terhadap kendala sebelum dihapus.) Bukti kebenarannya adalah pada dasarnya invarian yang sama seperti pada Set Cover.(1+O(ε))O(nlog(n)/ε2)nAexεN/ε
Penutup Vertex Berbobot adalah kasus khusus.
Pencocokan Bipartit Pecahan Maksimum
Diberikan grafik , LP alami untuk masalahnya adalah .G=(U,W,E)max{|x|:∀v.∑e∋vxe≤1}
Dalam representasi matriks, ini adalah LP pengemasan
dengan koefisien 0-1 ( jika ). Masalah seperti itu tidak memerlukan kenaikan yang tidak seragam, jadi algoritma sederhana yang dianalogikan dengan algoritma Set Cover tidak berbobot (tetapi untuk pengemasan) akan dilakukan:max{|x|:Ax≤1;x≥0}Ave=1v∈e
- Inisialisasi semua . Biarkan .xe=0N=log(n)/ε
Sementara :Ax<N
2.1. Pilih meminimalkan turunan parsial Lmax wrt .
(Secara eksplisit, pilih untuk meminimalkan .)e(Ax)xe e ∑ v ∈ e exp ( ∑ e ′ ∋ v x e ′ )
e∑v∈eexp(∑e′∋vxe′)
2.2. Tambah dengan . xeε
Kembalikan .x/maxvAvx
Algoritme mengembalikan solusi -roksimasi dalam iterasi . (Ini karena setiap iterasi meningkat oleh , dan akhirnya, sebelum normalisasi, .)(1−O(ε))O(nlog(n)/ε2)|x|ε|x|=O(Nn)
Hanya untuk bersenang-senang, berikut adalah algoritma alternatif yang aneh untuk Pencocokan Bipartit Sempurna. Ingat bahwa . Biarkan.G=(U,W,E)n=|U|=|W|
- Inisialisasi semua . Misalkan . xe=0N=4ln(n)/ε
Ulangi kali:nN
2.1. Pilih seragam secara acak dari .
2.2. Pilih sedemikian rupa sehingga meminimalkan .
2.3. Tambah oleh . uUw ( u , w ) ∈ E ∑ e ∋ w x e x u w ε
w(u,w)∈E∑e∋wxe
xuwε
Kembali .x/N
Jika memiliki pencocokan sempurna, algoritme mengembalikan sedemikian rupa sehingga , dan, dengan probabilitas tinggi, untuk semua simpul , , dan untuk semua simpul , . Jika Anda tertarik dengan perincian buktinya, silakan tanyakan ...Gx|x|=nu∈U1−O(ε)≤∑e∋uxe≤1+O(ε)w∈W∑e∋wxe≤1+O(ε)
Kemasan campuran dan penutup
Anda mungkin telah bertanya tentang pencocokan bipartit dengan harapan untuk contoh pengemasan campuran dan masalah penutup, yaitu, salah satu bentuk
Inilah salah satu algoritma untuk masalah seperti itu. Pertama, normalkan sehingga dan .∃x? Px≤p;Cx≥c;x≥0.
p=1¯¯¯c=1¯¯¯
Biarkan menjadi jumlah kendala (baris dalam ditambah baris dalam ).mPC
- Inisialisasi semua . Misalkan .xj=0N=2ln(m)/ε
Sedangkan :Px<N
2.1. Pilih sehingga turunan parsial dari Lmax sehubungan dengan paling banyak merupakan turunan parsial dari Lmin sehubungan dengan . (Secara eksplisit, pilih sedemikian sehinggaj(Px)xj(Cx)xjj∑iPijexp(Pix)∑iexp(Pix)≤∑iCijexp(−Cix)∑iexp(−Cix).)
2.2. Tambah oleh , di mana dipilih secara maksimal sehingga tidak ada batasan atau batasan yang tersisa bertambah lebih dari .xjδδPixCixε
2.3. Hapus semua kendala yang meliputi seperti yang .iCix≥N
Kembalikan .x/maxiPix
Dengan asumsi masalah yang diberikan adalah layak, algoritma mengembalikan sehingga
dan . Jumlah iterasi adalah , karena setiap iterasi meningkatkan beberapa kendala oleh , dan ini dapat terjadi untuk setiap kendala paling banyak kali.xPx≤1Cx≥1−O(ε)O(mln(m)/ε2)εN
Bukti kebenaran adalah melalui invarian
Invariannya menyiratkan
Pada penghentian sisi kiri adalah , membuktikan jaminan kinerja.Lmax(Px)≤2ln(m)+(1+O(ε))Lmin(Cx).
maxPx≤2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)
Pada Langkah 2.1, diinginkan harus ada selama masalah aslinya layak. (Hal ini karena, untuk setiap layak , dan setiap , jika kita memilih secara acak dari distribusi , nilai yang diharapkan dari turunan parsial dari Lmax sehubungan dengan
akan paling banyak (lihat sketsa bukti sebelumnya untuk Set Cover). Demikian juga, nilai yang diharapkan dari turunan parsial Lmin sehubungan dengan
akan menjadi setidaknya . Jadi, adajx ∗ x j ′ x ∗ / | x ∗ | ( P x ) x j ′ 1 / | x∗xj′x∗/|x∗|(Px)xj′1/|x∗|(Cx)xj′1/|x∗|jsedemikian rupa sehingga turunan parsial Lmax sehubungan dengan
paling banyak merupakan turunan parsial dari Lmin .)(Px)xj′(Cx)
Kemudian invarian dipertahankan dalam setiap iterasi karena, dengan pilihan dan , dan kehalusan Lmin dan Lmax, meningkatkan ke
meningkatkan paling banyak Lmax
paling banyak
kali peningkatan Lmin .xjδxjxj+δ(Px)1+O(ε)(Cx)
Belajar (mengikuti pakar / meningkatkan)
Salah satu referensi untuk memahami koneksi ini adalah
permainan Adaptive dengan menggunakan bobot multiplikatif , oleh Freund dan Schapire. Berikut ini ringkasan singkat untuk memberikan ide teknis.
Pertimbangkan permainan berulang berikut ini. Di setiap putaran : t
- Anda memilih distribusi probabilitas pada (yang disebut ahli ). pt[n]n
- Mengetahui , musuh kemudian memilih vektor hasil . ptat∈[0,1]n
- Anda menerima hasil untuk putaran itu. pt⋅at
Permainan berhenti setelah beberapa putaran. Tujuan Anda adalah untuk meminimalkan penyesalan Anda dibandingkan dengan seorang ahli tunggal (yaitu, strategi murni) . Yaitu, tujuan Anda adalah meminimalkan .i(maxi∑tati)−∑tpt⋅at
Perbaiki . Biarkan vektor menyatakan , yaitu,
dikalikan jumlah vektor vektor hasil hingga waktu . Ingatlah bahwa adalah gradien Lmax .ε>0ytε∑s≤tasεtG(y)(y)
Inilah strategi dasar yang akan kami analisis:
Pada putaran , pilih menjadi .tptG(yt−1)
Dengan inspeksi, ini memberi Anda hasil di babak .at⋅G(yt−1)t
Karena properti smoothness dari ,
Yaitu, di setiap babak, tidak dapat meningkat lebih dari dikali hasil Anda. Karena , ini menyatakan bahwa
paling banyak adalah total waktu pembayaran Anda , plus . Di sisi lain, penyesalan Anda dibandingkan dengan pakar terbaik
adalah , yaitu,FLmax(yt)≤Lmax(yt−1)+(1+O(ε))εat⋅G(yt−1).
Lmax(yt)ε(1+O(ε))Lmax(0¯¯¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxi∑tatiε−1maxiyti ε - 1 Lmax ( y t ), yang pada gilirannya paling banyak .ε−1Lmax(yt)
Dengan demikian, penyesalan Anda paling banyak , ditambah dikali pembayaran total Anda.ε−1ln(n)O(ε)
Catatan: Saya pikir, seperti yang ditunjukkan Freund dan Schapire, algoritma "meningkatkan" (dalam teori pembelajaran) juga tersirat dalam analisis ini. Lihat kertas mereka untuk lebih jelasnya.
Meminimalkan hasil total
Anda dapat memperoleh strategi serupa untuk pengaturan di mana tujuannya adalah untuk meminimalkan , bukannya memaksimalkan, hasil total. Penyesalan Anda, yang masih ingin Anda kurangi, adalah . Dalam hal itu, strategi yang sesuai adalah memilih untuk menjadi gradien dari . Dengan strategi ini, penyesalan Anda sekali lagi paling banyak
plus dikalikan jumlah total pembayaran Anda.∑tpt⋅at−miniatiptLmin(yt)ε−1lnnO(ε)
Koneksi ke algoritma relaksasi Lagrangian
Untuk melihat koneksi ke algoritma relaksasi Lagrangian, perbaiki instance Set-Cover. Pertimbangkan jenis permainan yang terakhir (dengan tujuan meminimalkan hasil), di mana para ahli sesuai dengan elemen dari sistem yang Anda tetapkan. Dalam setiap putaran, pilih distribusi probabilitas
untuk menjadi gradien Lmin seperti di atas, dan minta musuh memilih vektor hasil sebagai fungsi sebagai berikut:
pilih set memaksimalkan , lalu biarkan jika , dan sebaliknya.ept(yt)atpts t Σ e ∈st∑e∈spteate=1e∈state=0
Mengingat kondisi berhenti yang benar (dibahas di bawah), proses ini memberi Anda tepat algoritma Set-Cover yang dibahas di awal.
Jaminan kinerja algoritma mengikuti dari batas penyesalan sebagai berikut. Biarkan menjadi berapa kali musuh memilih set selama bermain. Biarkan menjadi penutup set pecahan optimal. Biarkanmenjadi jumlah putaran yang dimainkan. Batas penyesalan menyiratkan
Xssx∗T=|Xs|∑tat⋅pt≤ε−1ln(m)+mine∑tate.
Menggunakan definisi dari , yang th hasil (yang jangka th dalam jumlah di sebelah kiri) sama dengan . Musuh memilih untuk meminimalkan hasil ini. Jika musuh memilih secara acak dari distribusi, harapan imbalannya adalah
(Di atas kita gunakan itu untuk semua , dan ) Karena setiap hadiah setidaknyaattt∑e∈stpteststx∗/|x∗|∑sx∗s|x∗|∑e∈spte = 1|x∗|∑epte∑s∋ex∗s ≥ 1|x∗|∑epte = 1|x∗|.
∑s∋ex∗s≥1e|pt|=11/|x∗|, batas penyesalan menyiratkan
Dengan definisi , kita memiliki (setiap putaran memilih satu set), dan , memberikan
Kami menghentikan proses ketika , jadi (mengatur ulang istilah)
Yaitu, menormalkan memberikan penutup fraksi set ukuran paling banyak waktu optimal.T|x∗|≤ε−1ln(m)+mine∑tate.
X|X|=T∑tate=∑e[e∈st]=∑s∋eXs|X||x∗|≤ε−1ln(m)+mine∑s∋eXs.
mine∑s∋eXs=Ω(ε−2lnm)|X|mine∑s∋eXs ≤ (1+O(ε)|x∗|.
X(1+O(ε))
Catatan: Dalam arti tertentu, penafsiran teori pembelajaran ini menggeneralisasikan penafsiran algoritmik. Namun, beberapa teknik algoritmik yang diperlukan untuk efisiensi (seperti kenaikan yang tidak seragam dan menjatuhkan batasan yang memuaskan) tampaknya tidak terbawa ke dalam pengaturan teori pembelajaran secara alami. Demikian juga, algoritma untuk
pengemasan campuran dan mencakup piringan hitam (misalnya ini ) tampaknya tidak memiliki analog alami dalam pengaturan teori pembelajaran.