Apakah setiap algoritma serakah memiliki struktur matroid?


13

Hal ini juga ditetapkan bahwa untuk setiap matroid M dan fungsi berat badan w , ada keluar algoritma GreedyBasis(M,w) yang mengembalikan secara berat maksimum M . Jadi, apakah arah sebaliknya juga benar? Artinya, jika ada beberapa algoritma serakah, maka harus ada beberapa struktur matroid juga.


Algoritma Dijkstra sering dianggap sebagai algoritma serakah (misalnya lihat Bagian 4.4 dari "Algoritma Desain" oleh Kleinberg dan Tardos). Saya tidak tahu tentang interpretasi matroid dari jalur terpendek sumber tunggal.
Neal Young

Mempartisi sekumpulan interval nyata ke dalam jumlah minimum himpunan-himpunan berpasangan berpasangan memiliki algoritma serakah alami (sebutkan interval dengan waktu mulai, untuk masing-masing menambahkannya ke subset yang ada jika memungkinkan, jika tidak, memulai subset baru; lihat Bab 4 dari Kleinberg dan Tardos). Bisakah masalah ini dipahami sebagai matroid?
Neal Young

Jawaban:


11

Algoritma serakah bukanlah konsep yang didefinisikan secara formal. Ada berbagai model yang mencoba menangkap gagasan intuitif ini tetapi tidak ada konsensus tentang apa yang dimaksud dengan algoritma serakah. Kecuali Anda menentukan definisi formal tentang apa yang Anda maksud dengan algoritma serakah, pertanyaan tidak dapat dijawab sebagai ya atau tidak.

Ada generalisasi dari matroid yang disebut greedoid yang terinspirasi oleh algoritma serakah yang mungkin ingin Anda lihat.


Definisi formal tidak diperlukan jika kami menyetujui beberapa properti dari kelas algoritma serakah. Jika, misalnya, kami sepakat bahwa setiap algoritma serakah memiliki (didefinisikan secara formal) properti P, dan kami menunjukkan bahwa setiap algoritma yang memenuhi P dapat didefinisikan pada matroid, yang akan memberikan jawaban positif untuk pertanyaan OP. Demikian pula, jika kami sepakat bahwa algoritma tertentu serakah dan kami menunjukkan bahwa itu bukan algoritma serakah dari sebuah matroid, itu akan menghasilkan jawaban negatif.
Detached Laconian

11

Sebenarnya, deskripsi lengkap dan umum dari masalah yang dapat diselesaikan dengan algoritma serakah adalah embedding matroid , yang menggeneralisasi baik konsep matroid maupun greedoid . Jawabannya adalah tidak - masalah yang dipecahkan oleh algoritma serakah tidak perlu memiliki struktur matroid, tetapi akan memiliki struktur embedding matroid (yang, sayangnya, jauh lebih rumit).

Model mental untuk beberapa hal ini mungkin menemukan pohon rentang minimum. Struktur yang digunakan oleh algoritma Kruskal adalah matroid, tetapi yang digunakan oleh algoritma Prim (yang membutuhkan simpul awal) tidak. (Namun demikian, ini adalah greedoid — dan embrio matroid.)

(S,C)SCS f:2SRS

Algoritma serakah, didefinisikan dalam istilah formalisme ini, cukup sederhana: Anda mulai dengan set kosong, dan berturut-turut menambahkan satu elemen hingga Anda mencapai basis, selalu memastikan bahwa (i) set Anda layak pada setiap langkah, dan ( ii) elemen yang Anda tambahkan memaksimalkan fungsi objektif dari hasil yang dihasilkan, wrt. semua elemen alternatif yang bisa Anda tambahkan. (Yaitu, secara konseptual, Anda mencoba menambahkan semua alternatif yang layak, dan memilih yang menghasilkan nilai objektif tertinggi.)

Anda bisa, mungkin, berpendapat bahwa mungkin ada bentuk lain dari algoritma serakah, tetapi ada beberapa buku teks pada algoritma dan optimasi kombinatorial yang menggambarkan set-sistem algoritma berbasis sebagai yang algoritma serakah. Itu tidak menghalangi Anda untuk menggambarkan sesuatu yang tidak cocok, tetapi masih bisa disebut serakah, saya kira. (Namun, ini tidak mencakup apa pun yang berpotensi memiliki struktur matroid, misalnya, meskipun jauh lebih umum.)

Apa Helman et al. lakukan adalah mereka menggambarkan kapan algoritma ini akan bekerja. Lebih spesifik:

  1. Mereka menunjukkan bahwa untuk fungsi objektif linier (di mana nilai obyektif adalah jumlah bobot elemen), algoritma serakah akan bekerja tepat pada struktur yang mereka definisikan sebagai penanaman matroid;

  2. Mereka memberikan karakterisasi yang sama untuk apa yang disebut tujuan bottleneck (di mana nilai obyektif set adalah sama dengan minimum di atas bobot elemen individu); dan

  3. Mereka memberikan karakterisasi yang tepat dari fungsi tujuan mana (di luar yang linier) dioptimalkan oleh algoritma serakah pada pernikahan matroid.


2
Bisakah Anda menjelaskan apa definisi mereka tentang algoritma serakah?
Kaveh

1
Perluas jawaban saya untuk menjelaskan apa itu formalisme mereka.
Magnus Lie Hetland

2

Pertimbangkan masalah-masalah berikut: EURO-CHAIN-CHAINING: Dengan jumlah tak terbatas 1,2,5,10 euro, bayar X euro menggunakan sesedikit mungkin note. Ini dapat diatasi dengan menggunakan algoritma serakah, yang mengambil catatan sebesar mungkin. Tetapi tidak ada struktur matroid dalam masalah ini.

CAKUPAN LUBANG: Ada lubang di posisi x_1, x_2, ..., x_n. Anda memiliki panjang 10 cm. Menambal lubang menggunakan patch sesedikit mungkin. Sekali lagi ini dapat diselesaikan dengan cara serakah (cukup tambal sulam setepat mungkin), tetapi tidak ada struktur matroid.


terima kasih, saya curiga tetapi tidak yakin. Jadi bagaimanapun kita harus mencari algoritma serakah bahkan jika struktur matroid tidak ada.

1
@ user3373748 Saya biasanya hanya mencari program yang dinamis. Serakah adalah DP yang merosot.

1
(Jangan pilih-pilih, tetapi tidak ada uang kertas 1 atau 2 euro; Anda mungkin ingin mengubah set nilai Anda menjadi {5, 10, 20, 50, 100, 200} atau ulangi ;-))
Anthony Labarre

Perhatikan bahwa algoritme pengubah koin yang dijelaskan bekerja untuk {1,2,5,10} tetapi mungkin tidak menghitung hasil optimal untuk nilai lain. Contoh: Dengan {1,3,4} solusi optimal untuk 6 adalah [3,3] tetapi algoritma akan kembali [4,1,1].
Socowi

1
Ada struktur matroid untuk masalah perubahan koin - gauss.ececs.uc.edu/Courses/C671/html/Homework/hw5_sol.html
Tushant Mittal
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.