Contoh Toy untuk pemecah Plotkin-Shmoys-Tardos dan Arora-Kale


34

Saya ingin memahami bagaimana pemecah Arora-Kale SDP mendekati relaksasi Goemans-Williamson dalam waktu yang hampir linier, bagaimana pemecah Plotkin-Shmoys-Tardos mendekati masalah pecahan "pengepakan" dan "menutupi" dalam waktu yang hampir linear, dan bagaimana algoritme adalah contoh kerangka abstrak "belajar dari para ahli".

Tesis Kale memiliki presentasi yang sangat baik, tetapi saya merasa sangat sulit untuk langsung terjun ke kerangka abstrak, dan saya lebih suka mulai dari contoh masalah sederhana yang jelas-jelas jelas apa yang harus dilakukan, dan kemudian pindah ke masalah yang lebih umum , semakin menambahkan "fitur" ke algoritme dan analisisnya.

Sebagai contoh:

Bagaimana Plotkin-Shmoys menyelesaikan relaksasi pemrograman linear dari penutup vertex tanpa bobot? Penutup vertex tertimbang? Pasang penutup? Pencocokan bipartit?

Apa contoh paling sederhana di mana algoritma Arora-Kale melakukan sesuatu yang menarik? Bagaimana cara menghitung nilai eigen terbesar dari Laplacian grafik?

(Menghitung nilai eigen terbesar Laplacian setara dengan masalah penyelesaian versi yang lebih lemah dari relaksasi SDP Goemans-Williamson dari Max Cut, di mana, alih-alih membutuhkan setiap vektor dengan panjang satu, Anda ingin jumlah kuadrat norma menjadi | V |.)


2
Itu pertanyaan yang bagus.
Suresh Venkat

4
Untuk memahami algoritma gaya PST untuk masalah pengemasan, ada baiknya untuk melihat algoritma untuk memecahkan masalah aliran multikommoditas yang merupakan tempat PST berevolusi. Kertas Neal Young menjelaskan set penutup secara detail. Ihttp: //www.cs.ucr.edu/~neal/non_arxiv/SODA_1995_170.pdf. Saya pikir survei Arora-Kale-Hazan juga membuat hubungan antara kerangka kerja para ahli dan pengemasan / peliput yang eksplisit.
Chandra Chekuri

1
@ChandraChekuri: Agak tertunda, tapi saya ingin tahu apakah Anda harus menjawabnya?
Suresh Venkat

2
FWIW, untuk beberapa catatan yang berkembang di kertas SODA @ChandraChekuri yang disebutkan, lihat greedyalgs.info/blog/about .
Neal Young

Tautan yang diperbarui: algnotes.info/on/obliv
Neal Young

Jawaban:


26

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)lniexp(yi)maxiyi

maxiyi  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)/iexp(yi)Gi(y)exp(yi)/iexp(yi)

Lmin dan Lmax halus dalam arti berikut: untuk setiap vektor dan , dan d[0,ε]nyRn

Lmin(y+d)  Lmin(y) + (1O(ε))dg(y)
Lmax(y+d)  Lmax(y) + (1+O(ε))dG(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 .AxLmin(Ax)x(g(Ax))TAxjiAijexp(Aix)/iexp(Aix)(Ax)xjiAijexp(Aix)/iexp(Aix)

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 .AAes=1esAexxe

LP adalah . Diberikan , algoritmenya adalahmin{|x|:Ax1;x0}ε(0,1)


  1. Inisialisasi semua . Biarkan . xs=0N=log(n)/ε
  2. Ulangi sampai : mineAexN

    2.1. Pilih memaksimalkan turunan parsial Lmin wrt . (Secara eksplisit, pilih memaksimalkan .) s(Ax)xs s ¢ e s exp ( - s e x s )
    sesexp(sexs)

    2.2. Tambah oleh . xsε

  3. Kembalikan .x/mineAex


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(Ax)x(g(Ax))TAsx/|x|xs(g(Ax))TAx/|x|Ax1|g(Ax)|/|x||g(Ax)|=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 .εAxεxsxs+εLmin(Ax)(1O(ε))ε/|x|

Dengan cara ini, algoritma mempertahankan invarian (Perhatikan bahwa Lmin sama dengan .)

Lmin(Ax)(1O(ε))|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(1O(ε))|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{cx:(e)sexs1}esAes=1/csesAes=0xscsmin{|x|:Ax1;x0}


  1. Inisialisasi semua . Biarkan .xs=0N=log(n)/ε

  2. 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
    sesexp(sexs)/cs

    2.2. Tingkatkan oleh , di mana dipilih secara maksimal sehingga, untuk setiap batasan tersisa , peningkatan paling banyak .xsδδeAexε

    2.3 Hapus semua kendala yang meliputi sehingga .eAexN

  3. Kembalikan .x/mineAex


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.evxe1}

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|:Ax1;x0}Ave=1ve


  1. Inisialisasi semua . Biarkan .xe=0N=log(n)/ε
  2. 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 )
    eveexp(evxe)

    2.2. Tambah dengan . xeε

  3. Kembalikan .x/maxvAvx


Algoritme mengembalikan solusi -roksimasi dalam iterasi . (Ini karena setiap iterasi meningkat oleh , dan akhirnya, sebelum normalisasi, .)(1O(ε))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|


  1. Inisialisasi semua . Misalkan . xe=0N=4ln(n)/ε
  2. 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)Eewxe
    xuwε

  3. 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|=nuU1O(ε)euxe1+O(ε)wWewxe1+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? Pxp;Cxc;x0.
p=1¯c=1¯

Biarkan menjadi jumlah kendala (baris dalam ditambah baris dalam ).mPC


  1. Inisialisasi semua . Misalkan .xj=0N=2ln(m)/ε
  2. 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 .iCixN

  3. 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.xPx1Cx1O(ε)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).
maxPx2ln(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 / | xxjx/|x|(Px)xj1/|x|(Cx)xj1/|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

  1. Anda memilih distribusi probabilitas pada (yang disebut ahli ). pt[n]n
  2. Mengetahui , musuh kemudian memilih vektor hasil . ptat[0,1]n
  3. Anda menerima hasil untuk putaran itu. ptat

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(maxitait)tptat

Perbaiki . Biarkan vektor menyatakan , yaitu, dikalikan jumlah vektor vektor hasil hingga waktu . Ingatlah bahwa adalah gradien Lmax .ε>0ytεstasεtG(y)(y)

Inilah strategi dasar yang akan kami analisis: Pada putaran , pilih menjadi .tptG(yt1)

Dengan inspeksi, ini memberi Anda hasil di babak .atG(yt1)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,F

Lmax(yt)Lmax(yt1)+(1+O(ε))εatG(yt1).
Lmax(yt)ε(1+O(ε))Lmax(0¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxitaitε1maxiyit ε - 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.tptatminiaitptLmin(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 stespetaet=1estaet=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 XssxT=|Xs|

tatptε1ln(m)+minetaet.

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 setidaknyaatttestpetststx/|x|

sxs|x|espet = 1|x|epetsexs  1|x|epet = 1|x|.
sexs1e|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)+minetaet.
X|X|=Ttaet=e[est]=seXs
|X||x|ε1ln(m)+mineseXs.
mineseXs=Ω(ε2lnm)
|X|mineseXs  (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.


8
Itulah jawabannya !!
Suresh Venkat

1
Terima kasih. Mungkin overdid. Saya tertarik dengan umpan balik: bagaimana menyajikan ide-ide ini secara mudah diakses, apa lagi yang harus disertakan ...
Neal Young
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.