Naivní Hladový Algoritmus (Naive Greedy)
Princip algoritmu
Jedná se o nejjednodušší možný deterministický přístup. Algoritmus "hltavě" bere vše, co se mu vejde pod ruku, bez jakéhokoliv rozmýšlení.
- Algoritmus prochází seznam předmětů přesně v tom pořadí, v jakém jsou zadány (např. v databázi nebo poli).
- Vezme první předmět. Vejde se? Šup tam s ním. Nevejde? Jdeme dál.
- Vezme druhý předmět. Vejde se (k tomu prvnímu)? Šup tam s ním.
- Atd.
Klíčové vlastnosti
- Rychlost: Extrémně rychlý. Jeho složitost je – stačí jeden jediný průchod seznamem.
- Kvalita: Obvykle velmi špatná.
- Algoritmus ignoruje cenu i váhu předmětů.
- Výsledek závisí čistě na náhodě (v jakém pořadí jsou data seřazena na vstupu).
- Riziko: Může se stát, že jako první vezme velký, těžký a levný předmět, který zaplní batoh a znemožní vložení menších a cennějších věcí.
Příklad kódu (JavaScript)
javascript
for (const item of items) {
if (aktualni_vaha + item.weight <= kapacita) {
pridejDoBatohu(item);
}
}