Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 10. 05. 2013 17:51

Akcope
Příspěvky: 109
Reputace:   
 

Hladový algoritmus (Zavazadlový problém)

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

  • (téma jako vyřešené označil(a) Akcope)

#2 10. 05. 2013 19:52

check_drummer
Příspěvky: 5577
Reputace:   106 
 

Re: Hladový algoritmus (Zavazadlový problém)

↑ 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.


"Máte úhel beta." "No to nemám."

Offline

 

#3 10. 05. 2013 20:43

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Hladový algoritmus (Zavazadlový problém)

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

 

#4 10. 05. 2013 22:41

Akcope
Příspěvky: 109
Reputace:   
 

Re: Hladový algoritmus (Zavazadlový problém)

↑ Stýv:
Díky :)

Offline

 

#5 11. 05. 2013 20:23 — Editoval check_drummer (11. 05. 2013 20:29)

check_drummer
Příspěvky: 5577
Reputace:   106 
 

Re: Hladový algoritmus (Zavazadlový problém)

↑ 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.


"Máte úhel beta." "No to nemám."

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson