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:2S→RS
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:
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;
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
Mereka memberikan karakterisasi yang tepat dari fungsi tujuan mana (di luar yang linier) dioptimalkan oleh algoritma serakah pada pernikahan matroid.