Problém s batohem

Autor: Randy Alexander
Datum Vytvoření: 23 Duben 2021
Datum Aktualizace: 26 Červen 2024
Anonim
Problém s batohem - Technologie
Problém s batohem - Technologie

Obsah

Definice - Co znamená problém Knapsack?

Problém batohu je problém optimalizace používaný k ilustraci problému i řešení. Název odvozuje ze scénáře, kde je omezen počet položek, které lze umístit do batohu s pevnou velikostí. Vzhledem k množině položek se specifickými hmotnostmi a hodnotami je cílem získat co nejvíce hodnoty do batohu s ohledem na omezení hmotnosti batohu.


Úvod do Microsoft Azure a Microsoft Cloud | V této příručce se dozvíte, o čem cloud computing je a jak vám může Microsoft Azure pomoci migrovat a řídit podnikání z cloudu.

Techopedia vysvětluje problém Knapsack

Problém batohu je příkladem problému kombinační optimalizace, tématem matematiky a informatiky o nalezení optimálního objektu v sadě objektů. Toto je problém, který byl studován více než století a je běžně používaným příkladem problému v kombinatorické optimalizaci, kde je potřeba optimálního objektu nebo konečného řešení, kde není možné vyčerpávající vyhledávání. Problém lze nalézt v reálných scénářích, jako je alokace zdrojů ve finančních omezeních nebo dokonce při výběru investic a portfolií. To lze také nalézt v oborech, jako je aplikovaná matematika, teorie složitosti, kryptografie, kombinatorika a informatika. Je to snadno nejdůležitější problém v logistice.


V problému s batohem mají dané položky minimálně dva atributy - hodnotu položky, která ovlivňuje její důležitost, a hmotnost nebo objem položky, což je její limitující aspekt. Protože vyčerpávající vyhledávání není možné, lze rozdělit problémy na menší dílčí problémy a spustit je rekurzivně. Tomu se říká optimální substruktura. To se týká pouze jedné položky najednou a aktuální hmotnosti, která je v batohu stále k dispozici. Řešitel problému se musí pouze rozhodnout, zda vezme předmět nebo ne na základě váhy, kterou lze stále přijmout. Pokud se však jedná o program, opětovné výpočty nejsou nezávislé a způsobily by problémy. Zde lze použít techniky dynamického programování. Řešení každého dílčího problému jsou uložena tak, aby se výpočet musel uskutečnit pouze jednou.