Grådig algoritme

I denne vejledning lærer du, hvad en grådig algoritme er. Du vil også finde et eksempel på en grådig tilgang.

En grådig algoritme er en fremgangsmåde til løsning af et problem ved at vælge den bedste tilgængelige løsning i øjeblikket uden at bekymre sig om det fremtidige resultat, det ville bringe. Med andre ord sigter de lokalt bedste valg mod at producere de bedste resultater globalt.

Denne algoritme er muligvis ikke den bedste mulighed for alle problemerne. Det kan i nogle tilfælde give forkerte resultater.

Denne algoritme går aldrig tilbage for at vende beslutningen. Denne algoritme fungerer i en top-down tilgang.

Den største fordel ved denne algoritme er:

  1. Algoritmen er lettere at beskrive .
  2. Denne algoritme kan fungere bedre end andre algoritmer (men ikke i alle tilfælde).

Mulig løsning

En mulig løsning er den løsning, der giver den optimale løsning på problemet.

Grådig algoritme

  1. Til at begynde med er løsningssættet (indeholdende svar) tomt.
  2. Ved hvert trin tilføjes et element i løsningssættet.
  3. Hvis løsningssættet er muligt, bevares den aktuelle vare.
  4. Ellers afvises varen og overvejes aldrig igen.

Eksempel - Grådig tilgang

 Problem: Du skal foretage en ændring af et beløb ved hjælp af det mindst mulige antal mønter. Beløb: $ 28 Tilgængelige mønter: $ 5 mønt $ 2 mønt $ 1 mønt

Løsning:

  1. Opret et tomt løsningssæt = ().
  2. mønter = (5, 2, 1)
  3. sum = 0
  4. Mens sum ≠ 28, gør følgende.
  5. Vælg en mønt C fra mønter sådan, at summen + C <28.
  6. Hvis C + sum> 28, returneres ingen løsning.
  7. Ellers sum = sum + C.
  8. Føj C til løsningssættet.

Op til de første 5 iterationer indeholder løsningssættet 5 $ 5 mønter. Derefter får vi 1 $ 2 mønt og endelig 1 $ 1 mønt.

Grådige algoritme applikationer

  • Valg af sortering
  • Rygsækproblem
  • Minimum spændende træ
  • Enkeltkildes korteste sti-problem
  • Jobplanlægningsproblem
  • Prims minimale spændende træalgoritme
  • Kruskals minimale spændende træalgoritme
  • Dijkstras minimale spændende træalgoritme
  • Huffman-kodning
  • Ford-Fulkerson algoritme

Interessante artikler...