Kapzsi algoritmus

Ebben az oktatóanyagban megtudhatja, mi az a Kapzsi algoritmus. Ezenkívül talál egy mohó megközelítés példáját.

A kapzsi algoritmus megközelítést jelent a probléma megoldásához azáltal, hogy kiválasztja a jelenleg elérhető legjobb lehetőséget, anélkül, hogy aggódna a jövőbeni eredmény miatt. Más szavakkal, a helyben legjobb választások célja a világszerte legjobb eredmények elérése.

Lehet, hogy ez az algoritmus nem a legjobb megoldás az összes probléma megoldására. Bizonyos esetekben rossz eredményeket hozhat.

Ez az algoritmus soha nem tér vissza a meghozott döntés megfordításához. Ez az algoritmus felülről lefelé irányuló megközelítésben működik.

Az algoritmus fő előnye:

  1. Az algoritmust könnyebb leírni .
  2. Ez az algoritmus jobban képes teljesíteni, mint más algoritmusok (de nem minden esetben).

Megvalósítható megoldás

Megvalósítható megoldás az, amely optimális megoldást kínál a problémára.

Kapzsi algoritmus

  1. Először is, a (válaszokat tartalmazó) megoldáskészlet üres.
  2. Minden lépésben egy elem kerül a megoldáskészletbe.
  3. Ha a megoldáskészlet megvalósítható, az aktuális elem megmarad.
  4. Egyébként az elemet elutasítják, és soha többé nem fontolják meg.

Példa - kapzsi megközelítés

 Probléma: A lehető legkisebb számú érme felhasználásával kell módosítania egy összeget. Összeg: 28 dollár Rendelkezésre álló érmék: 5 dollár érme 2 dollár érme 1 dollár érme

Megoldás:

  1. Hozzon létre egy üres megoldáskészletet = ().
  2. érmék = (5, 2, 1)
  3. összeg = 0
  4. Miközben összege ≠ 28, tegye a következőket.
  5. Válasszon egy C érmét olyan érmékből, amelyek összege + C <28.
  6. Ha C + összeg> 28, akkor ne adjon megoldást.
  7. Egyébként összeg = összeg + C.
  8. Adjunk C-t az oldathoz.

Az első 5 iterációig a megoldáskészlet 5 $ 5 érmét tartalmaz. Ezt követően 1 $ 2 érmét kapunk, végül 1 $ 1 érmét.

Kapzsi algoritmus alkalmazások

  • Válogatás rendezése
  • Hátizsák probléma
  • Minimális átfogó fa
  • Egyforrású legrövidebb út probléma
  • Munkaütemezési probléma
  • Prim minimális átívelő fa algoritmusa
  • Kruskal minimális átívelő fa algoritmusa
  • Dijkstra minimális átívelő fa algoritmusa
  • Huffman Coding
  • Ford-Fulkerson algoritmus

érdekes cikkek...