Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahoj, jak bych měl obecněji řešit problém batohu?
Máme např. batoh, který unese 5 kg. Vstupní množina obsahuje předměty s hmotnostmi 4, 3 a 2 kg. A máme najít optimální řešení.
Když vezmeme vždy největší možný prvek - v tomto případě 4kg, nedospějeme k optimálnímu řešení (což je evidentně 3 a 2 kg).
Jak získat obecný algoritmus, kterým vždy dostaneme optimální řešení? Předem díky za odpověď.
Offline
↑ Akcope:
Ahoj, není to náhodou NP-úplný problém? Obecný algoritmus může být "výzkoušet všechny možnosti" - s případnými drobnými vylepšeními - jako: není nutné přidávat, pokud již je batoh přeplněn, apod.
Offline
viz http://kam.mff.cuni.cz/~perm/programova … slidy7.pdf
↑ check_drummer: pokud jsou všechny údaje celočíselný, tak to NP-úplný není
Offline
↑ Stýv:
Ahoj, to je známý trik. :-) Jedná se o tzv. pseudopolynomiální algoritmus (aspoň tuším, že se mu tak říká), který však je NP: na vstupu úlohy je totiž číslo m, které lze tedy vyjádřit pomocí log(m) "bitů". Tedy vstup má velikost log(m) - a nikoli m (plus hmotnosti předmětů a jejich ceny, to ponechme stranou) - ovšem doba běhu algoritmu má velikost m (opět krát výraz závislý na počtu předmětů, opět ponechme stranou), tedy je exponenciální vzhledem k velikosti vstupu (log(m)).
Ještě přidávám odkaz.
Offline
Stránky: 1