Açgözlü formel olmayan bir terimdir, ancak bazı problemler için açgözlülüğün matematiksel olarak formüle edilebileceği ve bu nedenle optimal açgözlü algoritmanın olmadığı kanıtlanabilir (emin değilim, bu yüzden soruyorum). Mümkün mü?
Açgözlü formel olmayan bir terimdir, ancak bazı problemler için açgözlülüğün matematiksel olarak formüle edilebileceği ve bu nedenle optimal açgözlü algoritmanın olmadığı kanıtlanabilir (emin değilim, bu yüzden soruyorum). Mümkün mü?
Yanıtlar:
Yapılacak en basit şey, problem için açgözlü algoritma kurmak ve daha sonra bir karşı örnek aramak olacaktır. Birini bulursan, cevabını alırsın. Aksi takdirde açgözlülüğün işe yaradığını kanıtlamanın birçok yolu vardır . Bununla ilgili bazı sorunlar var elbette (açgözlü algoritmanın nasıl spesifik olarak formüle edileceği gibi). Hangi problemlerin açgözlülükle çözülemeyeceğini ve hangi problemlerin açgözlülükle çözülemeyeceğini belirlemeye gelince, bunun da genel bir cevabı vardır.
Aslında, “Açgözlü Yapıların Kesin Karakterizasyonu” başlıklı makalelerinde ( SIAM J. Discrete Math . 6 , s. 274-283), Helman, Moret ve Shapiro sadece bunun ( genel olarak matroid gömme adı verilen) hem matroidler hem de greedoidler). Özetden: “Yazarlar, açgözlü algoritmanın optimal çözümler ürettiği yapıların kesin karakterizasyonlarını sunarlar.”
Genel olarak, açgözlü algoritma ağırlıklı set sistemleri açısından formüle edilebilir . Bir setin var (örneğin, minimum yayılan ağaçlar durumunda kenarlar) ve bir setiniz var alt kümelerinin (minimum yayılan ağaçlar problemi için kısmi yayılan ormanları düşünün). aşağıdaki elemanların birleştirilmesiyle oluşturulan geçerli kısmi çözümleri temsil eder . Ağırlık fonksiyonu da var,içindeki herhangi bir öğenin ağırlığını veya maliyetini verir. . Genellikle bunun doğrusal olduğunu varsayıyoruz - yani,bir ağırlığa sahiptir ve (kısmi) çözeltilerin ağırlıkları sadece eleman ağırlıklarının toplamıdır. (Örneğin, genişleyen bir ağacın ağırlığı, kenar ağırlıklarının toplamıdır.) Bu bağlamda, Helman ve ark. aşağıdakilerin eşdeğer olduğunu gösterdi:
Her doğrusal hedef işlev için, optimal bir temele sahiptir.
bir matroid gömmedir.
Her doğrusal objektif fonksiyon için, tam olarak optimum temelleridir.
Başka bir deyişle: Bunlar gibi yapılar için (temel olarak açgözlülükle çalışırken genellikle düşünülen yapıları içerir), tam olarak matroid düğün seti açgözlü bir şekilde çözülebilir.
Bir matroid gömmenin tanımı o kadar da zor değildir, bu nedenle belirli bir problemin matroid gömmenin olduğunu veya olmadığını kanıtlamak kesinlikle mümkündür. Vikipedi girişi çok net tanımını verir. (Bunların açgözlülükle çözülebilecek kesin yapıların neden olduğunun kanıtını anlamak - bu tamamen başka bir konudur…)
Sorununuz doğrusal bir objektif fonksiyona sahip ağırlıklı bir set sisteminden seçim açısından formüle edilebilirse ve bunun bir matroid gömme olmadığını gösterebiliyorsanız , o zaman bile, Karşı bir örnek bulamadık. (Bir karşı örnek bulmaktan şüphelenmeme rağmen biraz daha kolay olurdu.)
Sanırım bu yaklaşım tamamen sorunsuz değil. Söylediğiniz gibi, genel açgözlülük fikri oldukça gayri resmi ve doğrusal ağırlıklı set sistemlerinin formalizmi geçerli olmayacak şekilde ince ayar yapmak mümkün olabilir.
Evet, böyle bir iş var. Yazarlar ile birlikte Allan Borodin, açgözlülük kavramını resmileştirdikleri ve onlarla yaklaşık oranlara ulaşılabilecek sonuçlar elde ettikleri bir teori geliştirdiler. Açgözlü algoritmaları genelleyen bir öncelik algoritması sınıfı sunarlar. Bu konudaki ilk çalışmaları " (Artımlı) Öncelik Algoritmaları " makalesidir .
PS Önceki paragraf farklı bir soruya cevap veriyor: Belirli bir problem için, tahmin oranının bazılarından daha az olan açgözlü algoritmaların olmadığını kanıtlamak mümkün mü? ? Sanırım soruyla ilgili soru, optimalin kesin olduğu varsayılmaktadır, bu yüzden soru P'deki problemlerle ilgilidir (açgözlü algoritmaların polinom karmaşıklığına sahip olduğunu varsayıyorum, ancak bu gerekli değildir) . Ve bu sorunun cevabını bilmiyorum.
İvotron'a: ilk yorumumu kastetmediysen bu cevabı sileceğim.
Ayrıca bakınız: http://en.wikipedia.org/wiki/Greedoid