greedy algorithm

Üdvözlöm, Ön a greedy algorithm szó jelentését keresi. A DICTIOUS-ban nem csak a greedy algorithm szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a greedy algorithm szót egyes és többes számban mondani. Minden, amit a greedy algorithm szóról tudni kell, itt található. A greedy algorithm szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Agreedy algorithm és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

greedy algorithm (tsz. greedy algorithms)

  1. (informatika) mohó algoritmus

A greedy algorithm (mohó algoritmus) egy egyszerű és hatékony megközelítés optimalizálási problémák megoldására, amely minden lépésben az aktuálisan legjobbnak tűnő döntést választja – abban a reményben, hogy ezzel a globálisan legjobb megoldást is megtalálja.



🧠 1. Alapelv

Egy mohó algoritmus lépésről lépésre építi a megoldást, mindig az aktuálisan legnagyobb (vagy legkisebb) nyereséggel járó döntést választva, visszalépés vagy újratervezés nélkül.


⚙️ 2. Működés lépései

  1. Inicializálás: kezdő állapot létrehozása.
  2. Lépésválasztás: válaszd az aktuálisan legjobb lehetőséget.
  3. Érvényesség ellenőrzése: a döntés érvényes-e (pl. nem sért szabályt).
  4. Megállási feltétel: ha nem lehet új lépést választani, az algoritmus véget ér.



✅ 3. Mohó algoritmus akkor működik jól, ha:

  • A probléma optimális alegységekre bontható (→ greedy-choice property),
  • Az optimális részmegoldások kombinálásával kapjuk a globális optimumot (→ optimal substructure).

Ha ezek nem teljesülnek, a mohó megoldás nem garantálja az optimálist.



📚 4. Klasszikus példák

Probléma Leírás
Activity selection Válassz maximum számú nem átfedő intervallumot
Hátizsák (fractional) Válassz a legjobb érték/tömeg arány szerint
Prim algoritmus Minimális feszítőfa építése gráfban
Kruskal algoritmus Minimális feszítőfa élhozzáadásos módon
Dijkstra algoritmus Legrövidebb út nem negatív súlyokkal
Huffman-kódolás Minimális hosszú prefixkód-fát épít



🧮 5. Példa – Fractional Knapsack

  • Minden tárgynak van értéke és súlya
  • Céltömeg:
  • Mohó választás: válasszuk a legjobb arányú tárgyakat

Python kód:

def fractional_knapsack(values, weights, capacity):
    ratio = 
    ratio.sort(reverse=True)
    
    total_value = 0
    for r, v, w in ratio:
        if capacity >= w:
            capacity -= w
            total_value += v
        else:
            total_value += r * capacity
            break
    return total_value

values = 
weights = 
capacity = 50

print("Max value:", fractional_knapsack(values, weights, capacity))

📈 6. Előnyök és hátrányok

✅ Előnyök ❌ Hátrányok
Egyszerű implementáció Nem mindig optimális
Gyors (általában ) Néha nagyon rossz megoldást ad
Kevés memóriaigény Problémafüggő, működése nem univerzális



⚠️ 7. Mikor nem működik jól?

Példa: 0-1 hátizsákprobléma

  • Nem lehet egy tárgyat „darabolni”
  • Mohó választás nem garantál optimálist



🧾 8. Összefoglalás

Fogalom Leírás
Greedy algoritmus Mindig a helyileg legjobb lépést választja
Működése Egyszerű, gyors, determinisztikus
Előnye Hatékony, ha a probléma szerkezete engedi
Korlátozása Nem mindig globálisan optimális
Példák Prim, Kruskal, Dijkstra, Huffman, aktivitásválasztás