Sırt Çantası Problemi

Kısaca: Sırt çantası problemi (İngilizce: "knapsack problem") bir klasik yöneylem araştırması ve matematiksel olarak "kombinatorik optimizasyon" problemidir. Çözüm algoritması bakımından ''sırt çantası problemi'' en ünlü NP-hard problemleri arasındadır. ...devamı ☟

Sırt çantası problemi
Sırt çantası Problemi

Sırt çantası problemi (İngilizce: "knapsack problem") bir klasik yöneylem araştırması ve matematiksel olarak "kombinatorik optimizasyon" problemidir. Çözüm algoritması bakımından sırt çantası problemi en ünlü NP-hard problemleri arasındadır. Tanımlanma "Sırt çantası problemi"nin tanımlanması için şu notasyon kullanılmaktadır: İsimleri 1 ile n arasında sayı ile ifade edilen n değişik madde bulunur. Her bir madde i için değerin vi ve ağırlığın wi olduğu bilinmektedir. Genel olarak her bir değer ve her bir ağırlık negatif olamazlar. Çanta içinde taşınabilecek tüm maddelerin toplam ağırlığının en çok W olup, bunun bir üst sınır olup aşalamıyacağı bilinir. Bu problem tipi değişik sınırlama koşullarına göre değişik problem tipi şekilini alabilir. Bunlardan bazıları şöyle tanımlanabilir: * "

0-1 sırt çantası problemi

": "Sirt çantası problem" tipleri arasında en iyi bilinen problem "

0-1 sırt çantası problemi

"dir. Bu tip problemde mevcut n maddeden her biri ya 1 birim olarak çantaya konulur yahut çantaya konulmaz, yani 0 birim çantaya koyulur. Her bir madde tek birim olarak çantaya konulur ya koyulmaz. Çantaya konulup konulmama, sadece 1 ve 0 değerleri alan "çantada mevcut olup olmama" adı verilebilen iki kategorili değer alan bir karar değişkeni olur. Böylece karar değiskeni olan xi ya 0 ya da 1 değeri alan iki kategorili "tamsayı değişkeni" olur. Matematik formulasyon şöyle verilir: ::maksimumu bulunacak objektif fonksiyon: \qquad \sum_^n v_ix_i ::sınırlamalar: \qquad \sum_^n w_ix_i \leqslant W, \quad \quad x_i \in \ * "Sınırlı sırt çantası problemi": Bu tür problemde sırt çantası içine her maddeden birden fazla yerleştirilebilmek imkanı olduğu kabul edilir. Ama her bir madde için mevcut madde adedi sınırlıdır; i maddesi için mevcut sayı olan x_i, 0 ile tam sayı olan c_i arasında olabilir. Bu tür "sınırlı sırt çantası problemi"nin matematik formülasyonu şöyledir: . ::maksimum bulunacak objektif fonksiyon: \qquad \sum_^n v_ix_i ::sınırlamalar: \qquad \sum_^n w_ix_i \leqslant W, \quad \quad x_i \in \ * "Sınırsız sırt çantası problemi": Bu tür problemde her madde sıfırdan sınırsız sayıya kadar sırt çantası içine yerleştirilebilir. i maddesi için sırt çantasına yerleştirilen sayı, yani x_i, 0 ile tam sayı olan +∞ arasında olabilir. * İlgi çeken başka iki özel sırt-çantası problemi şu özellikleri ile tanımlanır: ** Bu bir karar verme problemidir. ** Bu problem için karar değişkeni sadece 0-1 değerleri alabilir; ** Her bir madde için ağırlık o maddenin değerine eşittir; yani w_i=v_i. Bu şekildeki özel problem şu değişik şekilde de ifade edilebilir: bir negatif olmayan sayılar seti verilmiş ise, bunun herhangi bir altsetinin toplamı W toplam ağırlık/değer sınırına eşit olabilir mi? Buna benzer diğer bir özel problem, eğer her bir madde için negatif olan ağırlık mümkünse (yani −∞ < wi < +∞ ise) ve toplam ağırlık sınırı en çok W sıfıra eşit ise (yani W=0 olursa) ortaya çıkar. Problem şu olur: bir tamsayılar veri seti verilirse, bunun herhangi bir alt-seti tam olarak 0a eşit olabilir mi? Buna "alt-set toplamı problemi" adı verilir. Kriptografi alanında sırt-çantası problemi" ismi sadece bu çok özel "alt-set toplam∞ problemi" olarak görülür. Eğer tek bir değil ama birden fazla sırt-çantası yüklemek mümkün ise, bu yeni tip probleme "kutu paketleme" problemi adı verilir. Çözüm hesaplanmanın karmaşıklığı Konu bilgisayar bilimi bakış açısından ele alınırsa "sırt-çantası problemi" şu nedenler dolayısıyla ilgi çekmektedir: * Dinamik programlama kullanarak "sözde-polinomsal zamanda" çözüm sağlayan algoritma bulunmaktadır. * "Sözde-polinomsal zamanda" çözümü sağlayan algoritmaları bir alt-program olarak kullanan "FPTAS yaklaşık tam polinomsal zaman kullanma" yordamı ile çözüm bulunmak imkan dahilindedir. * Tam olarak çözüm için problem NP-tam karakterlidir ve her türlü halde hem hatasız hem de hızlı polinomsal zamanda çözme algoritması bulmak imkansızdır. * Pratikte, buna rağmen birçok halde ve bazı dağılımlardan bazı rastgele haller verileri kullanılarak pekçok sayıda problem için tam şekilde çözüm yapma için kullanma imkanı bulunmaktadır Problemin polinomsal zamanda çözümü ispatlanabilirse P = NP savı da ispatlanmış olacaktır. "Alt-set toplamı" verziyonu şekildeki sırt-çantası problemi, genellikle, "Karp'in 21 NP-tam problemler"inden biri olduğu bilinmektedir. Araştırma kaynaklarında ilgi çeken bir konu sırt-çantası probleminin "zor" şekillerinin nasıl görünüş alacağını tesbit etmeye çalışmak olmuştur. Bu yaklaşımla NP-tam tavırlı en-fena halleri tesbit edip bunları daha kolay uygulanır şekillere koyma imkanları araştırılmıştır. Sırt-çantası problemlerini çözümlemek için parasız kullanılmaları imkanı olan birkaç tane algoritma yazılımı hazır bulunmaktadır. Bunlardan seçilmişleri şu listede verilir: * Dinamik programlama yaklaşımına dayanan algoritma kullanma: * Dallandırma-ve-sınırlama (branch-and-bound) algoritması kullanma: * Bu iki yaklaşımın bir melez bileşimini kullanma: Dipnotlar == == Ayrıca bakınız == * Sırt çantası problemleri listesi * Paketleme problemi * Elbiselik kumaş kesim problemi * Sürekli sırt çantası problemi == Dış kaynaklar == * Ingilizce Wikpedia "Knapsack_problem" maddesi (Erişim:5.6.2010). * PYAsUKP: Sinirsiz Sirt Cantasi Problemi Icin Bir Diger Cozucu, yazilim kodlari, sinama sonuclar ve bazi onemli makaleler. (Erişim:5.6.2010). * Home page of David Pisinger with downloadable copies of some papers on the publication list (including "Where are the hard knapsack problems?") (Erişim:5.6.2010). * Cesitli dillerde sirt-cantasi problem cozum algaroritmasi Kaynak: Rosetta Code (Erişim:5.6.2010). * 0-1 sirt-cantasi problem cozum cozumu icin dinamik programlama algoritmasi (Erişim:5.6.2010). * Python yazilimli 0-1 sirt-cantasi problem cozum algaroritmasi (Erişim:5.6.2010). * Interactive JavaScript branch-and-bound solver (Erişim:5.6.2010).

Kaynaklar

Vikipedi

Bu konuda henüz görüş yok.
Görüş/mesaj gerekli.
Markdown kullanılabilir.