2010-03-06 13 views
7

Multiple Knapsack Problem (optimizasyon deyimi sayfa aşağı yarıya ise). Ben çözüm bulmak çok verimli ve kolay iyi olacağını hayata ziyade eğer optimum olması gerekmez böylece bu sorun NP Complete olduğunu düşünüyorum . Her zaman tamamlamak için farklı (ancak sabit ve bilinen) tutarını alarak, birçok iş çizelgesineAlgoritma tasarımı: Çoklu sırt çantası problemine bir çözüm sunabilir misiniz? Ben etkili olanlarla sözde kod çözüm arıyorum

  • :

    sorun budur.

  • Ben (ideal) grupların en küçük numarasına sahip şekilde çalışma öğelerinin her grup belirli bir toplam eşikten artık alarak, gruplar halinde bu çalışma öğeleri bölmek gerekir - 1 saat söylüyorlar.

Eşik konusunda esnekim - sıkı bir şekilde uygulanmasına gerek yok, ancak yakın olmalıdır. Fikrim, iş öğelerini her bir bölmenin eşiğin% 90'ını,% 80'ini,% 70'ini temsil ettiği çöp kutularına ayırmaktı. Daha sonra% 90 alanlara% 90 oranında sahip olan eşyaları eşleştirebilirim.

Daha iyi bir fikir?

+1

Vikipedi sayfasından bağlanan PDF'yi okumaya çalıştınız mı? http://www.diku.dk/hjemmesider/ansatte/pisinger/95-1.pdf (PDF) –

+0

yaptım evet, sorun 1w e n e ð dn gibi ifadelerin mantıklı var | y e dn o n e ð ó – MalcomTucker

+0

Tamam, bu hiç bir işe, ancak – MalcomTucker

cevap

5

Sen bölüm 6.6 "- Yaklaşık algoritmalar Çoklu knapscack sorunu", http://www.or.deis.unibo.it/knapsack.html gerekir. Metin ve Fortran uygulamalarında sözde kod (Pascal stili) var (evet, eski bir kitap) bir ZIP dosyası olarak.

+1

1 BTW Martello ve Toth hem benim profesörler Uni vardı bağlantıdan çok teşekkür ederim bu fikir olsun !!! –

1

Bildiğim kadarıyla, sorun NP tamamlandı (Wikipedia confirms), bu yüzden tam olarak çözmeyi denemede pek bir anlam ifade etmiyor. Ancak yaklaşımların herhangi bir sayıda sizin için yeterince iyi olabilir:, açgözlü, genetik algoritmalar benzetilmiş tavlama ... açgözlü muhtemelen uygulamak için en kolay:

while (time available in block greater than smallest task duration) 
    find the longest fitting task 
    add it 

... anladınız.

+0

Şu soruna sahibim - https://math.stackexchange.com/questions/2415617. Bunun için açgözlü yaklaşımlar var mı? – Royi

İlgili konular