Video: Words at War: Headquarters Budapest / Nazis Go Underground / Simone 2024
Greedy redenering wordt vaak gebruikt als onderdeel van een optimalisatieproces. Het algoritme bekijkt het probleem stap voor stap en richt zich alleen op de stap die voorhanden is. Elk hebzuchtig algoritme doet twee aannames:
- Je kunt bij een bepaalde stap een optimale keuze maken.
- Door bij elke stap de optimale selectie te kiezen, kunt u een optimale oplossing voor het algehele probleem vinden.
U kunt vele hebzuchtige algoritmen vinden, elk geoptimaliseerd om bepaalde taken uit te voeren. Hier volgen enkele veelvoorkomende voorbeelden van hebzuchtige algoritmen die worden gebruikt voor grafiekanalyse en gegevenscompressie en de reden waarom u ze zou willen gebruiken:
- Kruskal's Minimale Spanning Tree (MST): Dit algoritme laat eigenlijk een van de principes zien van hebzuchtige algoritmen waar mensen misschien niet meteen aan denken. In dit geval kiest het algoritme de rand tussen twee knooppunten met de kleinste waarde, niet de grootste waarde zoals het woord hebzuchtig aanvankelijk zou kunnen overbrengen. Dit soort algoritmen kan u helpen om het kortste pad tussen twee locaties op een kaart te vinden of andere grafiekgerelateerde taken uit te voeren.
- Prim's MST: Dit algoritme splitst een niet-gerichte grafiek (een in welke richting niet wordt beschouwd) in twee. Vervolgens wordt de rand geselecteerd waarmee de twee helften worden verbonden, zodat het totale gewicht van de twee helften het kleinst is. Misschien vindt u dit algoritme in een doolhofspel om de kortste afstand tussen de start en de finish van het doolhof te vinden.
- Huffman-codering: Dit algoritme is vrij beroemd in computers omdat het de basis vormt voor veel technieken voor datacompressie. Het algoritme kent een code toe aan elke unieke gegevensinvoer in een stroom van vermeldingen, zodat de meest gebruikte gegevensinvoer de kortste code ontvangt. De letter E ontvangt bijvoorbeeld normaal gesproken de kortste code bij het comprimeren van Engelse tekst, omdat u deze vaker gebruikt dan elke andere letter in het alfabet. Door de coderingstechniek te veranderen, kunt u de tekst comprimeren en aanzienlijk verkleinen, waardoor de overdrachtstijd wordt verkort.