SORU
4 ŞUBAT 2011, Cuma


Sorun: Bob'un Satışı

Not: bu gerçek bir sorun, Flash Player sipariş kayıtları ile ilgili bir özet uygun sözcükler kullanmak. Bir çözüm bana açık kaynak kodlu bir uygulama geliştirmemize yardımcı olacaktır.

Bob bir mağaza var, ve bir satış yapmak istiyor. Onun mağaza ürün numarası taşır ve stokta her ürünün adet tam sayı belli bir miktar var. Ayrıca raf-monte fiyat etiketleri (ürün sayısı kadar) bir numara, fiyatlar zaten üzerlerinde. O yerde herhangi bir fiyat etiketi üzerinde herhangi bir ürün (üniter bir fiyata tek bir madde için, onun bütün stok ürün), ancak bazı ürünler var ek bir kısıtlama - böyle bir ürün olmayabilir daha ucuz belli bir diğer ürün.

Fiyat etiketleri, mümkün olduğu kadar düşük olduğunu, toplam maliyet gibi düzenlemek için nasıl bulmak gerekir. Toplam maliyet her ürünün atanan fiyat etiket stokta olan ürün miktarı ile çarpımı toplamına eşittir.


Verilen:

  • N-ürün sayısı ve fiyat etiketleri
  • Sben, 0-No.ben&; N-indeksi ile ürünün stok miktarı ltben(integer)
  • Pj, 0-No.j&; N-fiyatı üzerinde fiyat endeksi ile etiket ltj(integer)
  • K & - ek kısıtlama çiftleri sayısı
  • BirkBk, 0-No.k<K-ürün endeksleri ek kısıtlaması için
    • Herhangi bir ürün, endeks bir kez B. en çok bu Nedenle, bu grafik, bu bitişiklik listesi oluşturduğu aslında yönetmen ağaçları bir dizi görünebilir.

Programı bulmak gerekir:

  • Mben, 0-No.ben<N-Etiket fiyat endeksi (P . ürün dizinden eşleme ^alt>Mbenürünün fiyatıben)

Şartları karşılamak için:

  1. PMBirkNo. PMBk, 0-No. içink&; K) lt
  2. K = (Sben× PMben) 0-No. içinben&; N minimal lt

İlk koşul için değil, çözüm sadece miktar fiyat ve ürün etiketleri sıralama ve doğrudan hem eşleştirme olacağını unutmayın.

Giriş için tipik değerler N,K&; 10000 lt olacak. Gerçek hayattaki sorun, sadece birkaç farklı fiyat etiketleri (1,2,3,4) vardır.


Burada en basit çözüm (topolojik sıralama dahil) çalışmaz neden bir örnek:

Fiyatları $10 ile $1 ile 10 ve 10 fiyat etiketleri ile miktarları 1 ile 10 öğe var. Tek bir şartım var: 10 miktar 1 öğe daha ucuz olmalı değil miktar madde.

En uygun çözüm:

Price, $   1  2  3  4  5  6  7  8  9 10
Qty        9  8  7  6  1 10  5  4  3  2

$249 toplam maliyeti ile birlikte. Eğer ya aşırı yakın 1,10 çifti koyarsanız, toplam maliyeti daha yüksek olacaktır.

CEVAP
16 ŞUBAT 2011, ÇARŞAMBA


Sorun genel durum için NP-tamamlandı. Bu 3-Bölüm azalma bin paketleme hala güçlü NP-tam sürüm () gösterilebilir.

İzin verinw1, ..., wn3-Bölüm örneği, izin nesnelerin ağırlıklarıbbin boyutta olması, vek = n/3doldurulması için izin verilen kutuları sayısı. Eğer nesneleri bölümlenmiş olabilir, bu yüzden, orada 3-Bölüm tam olarak başına 3 bin nesneler vardır.

Azaltılması için, N= kurdukkbve her bin tarafından temsil edilirbaynı fiyat fiyat etiketleri (P düşünbenher artıyorbetiket th). İzin verintben, 1-No.benNo.kBu etiket fiyatıyla ilgilibeninci kutusu. Her biri içinwbenbir ürün varjmiktarwben1(arama sağlar kök ürün buwbenve başka birwben- 1S daha ucuz olması için gerekli olan miktar 1 ürünj(bu terk ürünleri aramak).

İçintben= (2b / 1)ben, 1-No.benNo.k3-Bölüm Bob için satmak olabilir ve vardır2bF1 No.benNo.ktben:

  • 3-bölüm için bir çözüm, daha sonra ise oradabürün nesnelere karşılık gelenwben,wj,wlaynı bin atanan kısıtlamaları ihlal etmeden aynı fiyat ile etiketlenmiş olabilir. Böylece, çözümün bir maliyeti vardır2bF1 No.benNo.ktben(fiyat ile ürünlerin toplam miktarı beritben2b).
  • Bob'un Satış optimal bir çözüm düşünün. İlk izlediğimiz herhangi bir çözümü vardı daha 3 kök ürünlerinin payı aynı fiyat etiketi, her kök ürün bu "çok fazla" orada daha ucuz bir fiyat etiketi olan sopa üzerinde en az 3 kök ürünleri. Bu herhangi bir çözüm, tam 3 fiyat etiketi mevcut ise) başına kök ürün var daha da kötü.
    Şimdi hala başı fiyatı 3 kök etiketleri ile Bob satıldığı bir çözüm olabilir, ama bırakın kendi ürünlerini aynı fiyat etiketleri (bidonları tür akış üzerinden) giymeyin. En pahalı fiyat bir kök ürün etiketleri etiket söylüyorlarwbendaha ucuz etiketli bırakacak bir ürüne sahip. Bu 3 Etiketler kök anlamına gelirwben,wj,wlen pahalı fiyat ile etiketlenmiş eklemeyinb. Dolayısıyla, bu ürünlerin fiyatı ile etiketli toplam maliyeti en az2b 1.
    Dolayısıyla, böyle bir çözüm maliyeti vardırtk(2b / 1)başka bir atama maliyeti. Bir mevcut için en uygun maliyetli beri 3-Bölüm2bF1 No.benNo.ktbensadece kabul durum daha kötü olduğunu göstermek zorundayız. Bu durumdatkF1 No.benNo.k-1tben(bu notk-1toplamı). Ayartben= (2b / 1)ben, 1-No.benNo.kbu böyledir. Bu ise en pahalı fiyat etiketi "" bir, ama başka.kötü ise bu da tutar

Eğer farklı fiyat etiketleri sayısı sabit ise, bu yıkıcı bir parçasıdır ;-) Ancak, dinamik programlama polinom zaman çözmek için kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • bmarian22

    bmarian22

    22 Aralık 2007
  • CNNMoney

    CNNMoney

    16 Kasım 2006