Aşağıdaki sorunu düşünün,
- Bir dizi Verilen pozitif sayılar { a 1 , ... , bir n } hangi bir sabittir, biz içine setini bölümlere ayırmak istediğiniz boyutu alt kümelerine k böylece her toplamının ürün alt küme maksimize edilir.m
Sorun, her bir bölümdeki sayıların sayısında bir sınırımız olması dışında , iyi bilinen yönlü sayı bölümlemesine oldukça benzer . İçin k = 2 Aşağıdaki basit polinom algoritma önerilebilir,
- varsayalım sayılar yani sıralanır . Ardından için i ≤ m atama bir i alt kümesine i için i > m , alt kümesine atamak n - i + 1 .
Algoritmanın neden çalıştığını görmek zor değil. Sadece iki keyfi kutu seçin. Rakamlardaki herhangi bir değişiklik ürünün miktarını artırmaz.
Ama daha büyük 'lar için, sorunun polinom zamanında çözülüp çözülemeyeceğini merak ediyorum? Birisi bunun np-sertliğini gösterebilirse minnettar olurum.
Not: Kablosuz ağlarda bir zamanlama sorunu üzerinde çalışırken sorunla karşılaştım. Sorunu çözmek için iyi bir sezgisel algoritma buldum. Fakat bir süre sonra sorunun teorik olarak ilginç olabileceğini düşündüm.