Grådig algoritme

I denne opplæringen vil du lære hva en grådig algoritme er. Du vil også finne et eksempel på en grådig tilnærming.

En grådig algoritme er en tilnærming for å løse et problem ved å velge det beste alternativet tilgjengelig for øyeblikket, uten å bekymre deg for det fremtidige resultatet det vil bringe. Med andre ord tar de lokalt beste valgene sikte på å gi de beste resultatene globalt.

Denne algoritmen er kanskje ikke det beste alternativet for alle problemene. I noen tilfeller kan det gi gale resultater.

Denne algoritmen går aldri tilbake for å reversere beslutningen. Denne algoritmen fungerer i en top-down-tilnærming.

Den største fordelen med denne algoritmen er:

  1. Algoritmen er lettere å beskrive .
  2. Denne algoritmen kan fungere bedre enn andre algoritmer (men ikke i alle tilfeller).

Gjennomførbar løsning

En gjennomførbar løsning er den som gir den optimale løsningen på problemet.

Grådig algoritme

  1. Til å begynne med er løsningssettet (som inneholder svar) tomt.
  2. Ved hvert trinn legges et element til i løsningssettet.
  3. Hvis løsningssettet er gjennomførbart, beholdes den nåværende varen.
  4. Ellers avvises varen og blir aldri vurdert på nytt.

Eksempel - Grådig tilnærming

 Problem: Du må endre et beløp ved å bruke minst mulig antall mynter. Beløp: $ 28 Tilgjengelige mynter: $ 5 mynt $ 2 mynt $ 1 mynt

Løsning:

  1. Lag et tomt løsningssett = ().
  2. mynter = (5, 2, 1)
  3. sum = 0
  4. Mens sum ≠ 28, gjør du følgende.
  5. Velg en mynt C fra mynter slik at summen + C <28.
  6. Hvis C + sum> 28, returner ingen løsning.
  7. Else, sum = sum + C.
  8. Legg C til løsningssettet.

Opp til de fem første iterasjonene inneholder løsningssettet 5 $ 5 mynter. Etter det får vi 1 $ 2 mynt og til slutt 1 $ 1 mynt.

Grådige algoritmeapplikasjoner

  • Valg Sorter
  • Ryggsekkproblem
  • Minimum spennende tre
  • Enkeltkildes problem med korteste vei
  • Jobbplanlegging Problem
  • Prim's Minimal Spanning Tree Algorithm
  • Kruskals Minimal Spanning Tree Algorithm
  • Dijkstra's Minimal Spanning Tree Algorithm
  • Huffman Coding
  • Ford-Fulkerson algoritme

Interessante artikler...