Birden çok gün için atama sorunu


10

Bir görev sorununa indirgenebilecek bir sorunum var. (Önceki bir soruda bunun nasıl yapılacağını öğrendim.)

Bu, bir dizi ajanımız ve bir dizi T görevimiz olduğu gibi bir maliyet fonksiyonu c ( i , j ) var demektir . Toplam maliyetin minimum olması için bir ödev bulmamız gerekiyor.ATc(i,j)

Macar algoritması en azından optimal çözüm bulmak için . Bu bana iyi geliyor.O(n4)

Yeni Sorunum: Belirli sayıda gün var. Her gün görevlendirme problemini çözmek zorundayım, böylece her görev her gün yapılır ve hiçbir temsilci aynı görevi iki kez yapmaz .

Ne denedim: Macar algoritmasını her gün ayrı ayrı çalıştırabilir ve önceki günün sonucuna göre olası kombinasyon sayısını sınırlayabiliriz. Ancak bu, sonraki günlerin bazılarında sıkıntıya yol açacak ve büyük olasılıkla uygulanabilir bir çözüm bulmak imkansız olacaktır.

Başka bir fikir, önceki gün alınan kararları değiştirmek için bir şekilde yerel aramayı entegre etmektir. Ama bence buna güvenemeyiz.

|A|=|T|=500C(i,j)

Bazı fikirleri duymaktan memnuniyet duyarım veya soruna nasıl iyi bir çözüm bulacağınızı tavsiye ederim. Şimdiden teşekkürler.


1
Bu harika bir soru! Minimum maliyet akışı, Hall'un evlilik teoremi ve maksimum iki taraflı eşleşmeyi kullanmanızı öneririm.
Peter Shor

Yanıtlar:


6

Polinom zamanında bunun bir yolu var. Algoritmayı çizeceğim (ters sırada ... önce 2. adımı ve 1. adımı yapın).

  1. nk(i,j)kkknk

  2. nkstk0k0ij1c(i,j)01(i,j)1

Minimum maliyet akışını çözebilecek birçok algoritma vardır ; bu doğrusal programlama için özel bir durumdur. Boyut probleminiz için, çizdiğim algoritma sadece polinom zamanı değil, aynı zamanda pratik olmalıdır.


Son bir soru: 2. adımdaki minimum maliyet akış algoritması (başlangıç ​​için döngü iptal etmeyi seçtim) en uygun çözümü sunar. Adım 1'deki maksimum eşleme algoritması bunu yapar. Bu mutlaka tüm çözümün optimal olduğu anlamına mı geliyor? Çünkü tahminim sorunun NP-Complete olmasıydı.
Patrick Schmidt

1
Bütün çözüm en uygunudur. Kombinatoryal bir optimizasyon kursuna atamak iyi bir soru olacaktır, çünkü bunu yapabilmeniz şaşırtıcıdır.
Peter Shor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.