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ğerinin vi ve ağırlığını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şılamayacağı bilinir.
Bu problem tipi değişik sınırlama koşullarına göre değişik problem tipi şeklini alabilir. Bunlardan bazıları şöyle tanımlanabilir:
- "0-1 sırt çantası problemi": "Sırt çantası problem" tipleri arasında en iyi bilinen problem "0-1 sırt çantası problemi"dır. 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 "tam sayı değişkeni" olur. Matematik formülasyon şöyle verilir:
- maksimumu bulunacak objektif fonksiyon:
- sınırlamalar:
- "Sınırlı sırt çantası problemi": Bu tür problemde sırt çantası içine her maddeden birden fazla yerleştirilebilmek imkânı 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 , 0 ile tam sayı olan arasında olabilir. Bu tür "sınırlı sırt çantası problemi"nin matematik formülasyonu şöyledir: .
- maksimum bulunacak objektif fonksiyon:
- sınırlamalar:
- "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 , 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 .
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 tam sayı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 imkân 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 imkânsı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 imkânı bulunmaktadır
Problemin polinomsal zamanda çözümü ispatlanabilirse P = NP savı da ispatlanmış olacaktır.
"Alt-set toplamı" versiyonu ş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ı tespit etmeye çalışmak olmuştur. Bu yaklaşımla NP-tam tavırlı en-fena halleri tespit edip bunları daha kolay uygulanır şekillere koyma imkânları araştırılmıştır.
Sırt-çantası problemlerini çözümlemek için parasız kullanılmaları imkânı 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
- ^ Pisinger, D. 2003. Where are the hard knapsack problems? Technical Report 2003/08, Department of Computer Science, University of Copenhagen, Copenhagen, Denmark.
- ^ L. Caccetta, A. Kulanoot, Computational Aspects of Hard Knapsack Problems, Nonlinear Analysis 47 (2001) 5547–5558.
- ^ Rumen Andonov, Vincent Poirriez, Sanjay Rajopadhye (2000) Unbounded Knapsack Problem : dynamic programming revisited European Journal of Operational Research 123: 2. 168-181 http://dx.doi.org/10.1016/S0377-2217(99)00265-9
- ^ S. Martello, P. Toth, Knapsack Problems: Algorithms and Computer Implementation, John Wiley and Sons, 1990
- ^ S. Martello, D. Pisinger, P. Toth, Dynamic programming and strong bounds for the 0-1 knapsack problem, Manag. Sci., 45:414-424, 1999.
- ^ Vincent Poirriez, Nicola Yanev, Rumen Andonov (2009) A Hybrid Algorithm for the Unbounded Knapsack Problem Discrete Optimization http://dx.doi.org/10.1016/j.disopt.2008.09.004
- ^ G. Plateau, M. Elkihel, A hybrid algorithm for the 0-1 knapsack problem, Methods of Oper. Res., 49:277-293, 1985.
- ^ S. Martello, P. Toth, A mixture of dynamic programming and branch-and-bound for the subset-sum problem, Manag. Sci., 30:765-771
Ayrıca bakınız
Dış bağlantılar
- Ingilizce Wikipedia "Knapsack_problem" maddesi14 Şubat 2010 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce) (Erişim:5.6.2010).
- (İngilizce) (Erişim:5.6.2010).
- Home page of David Pisinger2 Ocak 2009 tarihinde Wayback Machine sitesinde . with downloadable copies of some papers on the publication list (including "Where are the hard knapsack problems?") (İngilizce) (Erişim:5.6.2010).
- Cesitli dillerde sirt-cantasi problem çözüm algaroritmasi28 Mart 2010 tarihinde Wayback Machine sitesinde . Kaynak: (İngilizce) (Erişim:5.6.2010).
- 0-1 sirt-cantasi problem çözüm çözümu icin dinamik programlama algoritması25 Mayıs 2010 tarihinde Wayback Machine sitesinde . (İngilizce) (Erişim:5.6.2010).
- Python yazilimli 0-1 sirt-cantasi problem çözüm algaroritmasi10 Ocak 2010 tarihinde Wayback Machine sitesinde . (İngilizce) (Erişim:5.6.2010).
- (İngilizce) (Erişim:5.6.2010).
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Sirt cantasi problemi Ingilizce knapsack problem bir klasik yoneylem arastirmasi ve matematiksel olarak kombinatorik optimizasyon problemidir Cozum algoritmasi bakimindan sirt cantasi problemi en unlu NP hard problemleri arasindadir Sirt cantasi problemi Elde bulunan cesitli birim agirlikli ve birim degerli kitaplarin en degerli olanlari en fazla 15kg tasiyabilen bir sirt cantasina yerlestirilmeli Tanimlanma Sirt cantasi problemi nin tanimlanmasi icin su notasyon kullanilmaktadir Isimleri 1 ile n arasinda sayi ile ifade edilen n degisik madde bulunur Her bir madde i icin degerinin vi ve agirliginin wi oldugu bilinmektedir Genel olarak her bir deger ve her bir agirlik negatif olamazlar Canta icinde tasinabilecek tum maddelerin toplam agirliginin en cok W olup bunun bir ust sinir olup asilamayacagi bilinir Bu problem tipi degisik sinirlama kosullarina gore degisik problem tipi seklini alabilir Bunlardan bazilari soyle tanimlanabilir 0 1 sirt cantasi problemi Sirt cantasi problem tipleri arasinda en iyi bilinen problem 0 1 sirt cantasi problemi dir Bu tip problemde mevcut n maddeden her biri ya 1 birim olarak cantaya konulur yahut cantaya konulmaz yani 0 birim cantaya koyulur Her bir madde tek birim olarak cantaya konulur ya koyulmaz Cantaya konulup konulmama sadece 1 ve 0 degerleri alan cantada mevcut olup olmama adi verilebilen iki kategorili deger alan bir karar degiskeni olur Boylece karar degiskeni olan xi ya 0 ya da 1 degeri alan iki kategorili tam sayi degiskeni olur Matematik formulasyon soyle verilir maksimumu bulunacak objektif fonksiyon i 1nvixi displaystyle qquad sum i 1 n v i x i sinirlamalar i 1nwixi W xi 0 1 displaystyle qquad sum i 1 n w i x i leqslant W quad quad x i in 0 1 dd Sinirli sirt cantasi problemi Bu tur problemde sirt cantasi icine her maddeden birden fazla yerlestirilebilmek imkani oldugu kabul edilir Ama her bir madde icin mevcut madde adedi sinirlidir i maddesi icin mevcut sayi olan xi displaystyle x i 0 ile tam sayi olan ci displaystyle c i arasinda olabilir Bu tur sinirli sirt cantasi problemi nin matematik formulasyonu soyledir maksimum bulunacak objektif fonksiyon i 1nvixi displaystyle qquad sum i 1 n v i x i sinirlamalar i 1nwixi W xi 0 1 ci displaystyle qquad sum i 1 n w i x i leqslant W quad quad x i in 0 1 ldots c i dd Sinirsiz sirt cantasi problemi Bu tur problemde her madde sifirdan sinirsiz sayiya kadar sirt cantasi icine yerlestirilebilir i maddesi icin sirt cantasina yerlestirilen sayi yani xi displaystyle x i 0 ile tam sayi olan arasinda olabilir Ilgi ceken baska iki ozel sirt cantasi problemi su ozellikleri ile tanimlanir Bu bir karar verme problemidir Bu problem icin karar degiskeni sadece 0 1 degerleri alabilir Her bir madde icin agirlik o maddenin degerine esittir yani wi vi displaystyle w i v i Bu sekildeki ozel problem su degisik sekilde de ifade edilebilir bir negatif olmayan sayilar seti verilmis ise bunun herhangi bir altsetinin toplami W toplam agirlik deger sinirina esit olabilir mi Buna benzer diger bir ozel problem eger her bir madde icin negatif olan agirlik mumkunse yani lt wi lt ise ve toplam agirlik siniri en cok W sifira esit ise yani W 0 olursa ortaya cikar Problem su olur bir tam sayilar veri seti verilirse bunun herhangi bir alt seti tam olarak 0a esit olabilir mi Buna alt set toplami problemi adi verilir Kriptografi alaninda sirt cantasi problemi ismi sadece bu cok ozel alt set toplam problemi olarak gorulur Eger tek bir degil ama birden fazla sirt cantasi yuklemek mumkun ise bu yeni tip probleme kutu paketleme problemi adi verilir Cozum hesaplanmanin karmasikligiKonu bilgisayar bilimi bakis acisindan ele alinirsa sirt cantasi problemi su nedenler dolayisiyla ilgi cekmektedir Dinamik programlama kullanarak sozde polinomsal zamanda cozum saglayan algoritma bulunmaktadir Sozde polinomsal zamanda cozumu saglayan algoritmalari bir alt program olarak kullanan FPTAS yaklasik tam polinomsal zaman kullanma yordami ile cozum bulunmak imkan dahilindedir Tam olarak cozum icin problem NP tam karakterlidir ve her turlu halde hem hatasiz hem de hizli polinomsal zamanda cozme algoritmasi bulmak imkansizdir Pratikte buna ragmen bircok halde ve bazi dagilimlardan bazi rastgele haller verileri kullanilarak pek cok sayida problem icin tam sekilde cozum yapma icin kullanma imkani bulunmaktadir Problemin polinomsal zamanda cozumu ispatlanabilirse P NP savi da ispatlanmis olacaktir Alt set toplami versiyonu sekildeki sirt cantasi problemi genellikle Karp in 21 NP tam problemler inden biri oldugu bilinmektedir Arastirma kaynaklarinda ilgi ceken bir konu sirt cantasi probleminin zor sekillerinin nasil gorunus alacagini tespit etmeye calismak olmustur Bu yaklasimla NP tam tavirli en fena halleri tespit edip bunlari daha kolay uygulanir sekillere koyma imkanlari arastirilmistir Sirt cantasi problemlerini cozumlemek icin parasiz kullanilmalari imkani olan birkac tane algoritma yazilimi hazir bulunmaktadir Bunlardan secilmisleri su listede verilir Dinamik programlama yaklasimina dayanan algoritma kullanma Dallandirma ve sinirlama branch and bound algoritmasi kullanma Bu iki yaklasimin bir melez bilesimini kullanma Dipnotlar Pisinger D 2003 Where are the hard knapsack problems Technical Report 2003 08 Department of Computer Science University of Copenhagen Copenhagen Denmark L Caccetta A Kulanoot Computational Aspects of Hard Knapsack Problems Nonlinear Analysis 47 2001 5547 5558 Rumen Andonov Vincent Poirriez Sanjay Rajopadhye 2000 Unbounded Knapsack Problem dynamic programming revisited European Journal of Operational Research 123 2 168 181 http dx doi org 10 1016 S0377 2217 99 00265 9 S Martello P Toth Knapsack Problems Algorithms and Computer Implementation John Wiley and Sons 1990 S Martello D Pisinger P Toth Dynamic programming and strong bounds for the 0 1 knapsack problem Manag Sci 45 414 424 1999 Vincent Poirriez Nicola Yanev Rumen Andonov 2009 A Hybrid Algorithm for the Unbounded Knapsack Problem Discrete Optimization http dx doi org 10 1016 j disopt 2008 09 004 G Plateau M Elkihel A hybrid algorithm for the 0 1 knapsack problem Methods of Oper Res 49 277 293 1985 S Martello P Toth A mixture of dynamic programming and branch and bound for the subset sum problem Manag Sci 30 765 771Ayrica bakinizDis baglantilarIngilizce Wikipedia Knapsack problem maddesi14 Subat 2010 tarihinde Wayback Machine sitesinde arsivlendi Ingilizce Erisim 5 6 2010 Ingilizce Erisim 5 6 2010 Home page of David Pisinger2 Ocak 2009 tarihinde Wayback Machine sitesinde with downloadable copies of some papers on the publication list including Where are the hard knapsack problems Ingilizce Erisim 5 6 2010 Cesitli dillerde sirt cantasi problem cozum algaroritmasi28 Mart 2010 tarihinde Wayback Machine sitesinde Kaynak Ingilizce Erisim 5 6 2010 0 1 sirt cantasi problem cozum cozumu icin dinamik programlama algoritmasi25 Mayis 2010 tarihinde Wayback Machine sitesinde Ingilizce Erisim 5 6 2010 Python yazilimli 0 1 sirt cantasi problem cozum algaroritmasi10 Ocak 2010 tarihinde Wayback Machine sitesinde Ingilizce Erisim 5 6 2010 Ingilizce Erisim 5 6 2010