En grådig algoritme er en algoritme, der består i at træffe lokalt optimale beslutninger på hvert trin, forudsat at den endelige løsning også viser sig at være optimal. Det er kendt, at hvis strukturen af problemet er givet af en matroide , så vil anvendelsen af den grådige algoritme give et globalt optimum.
Hvis den globale optimalitet af en algoritme næsten altid er tilfældet, foretrækkes den normalt frem for andre optimeringsteknikker såsom dynamisk programmering .
Der er ikke noget generelt kriterium for at vurdere anvendeligheden af en grådig algoritme til at løse et specifikt problem, men problemer, der løses af grådige algoritmer, har to funktioner: For det første er Greedy Choice-princippet anvendeligt på dem , og for det andet har de Optimality for subtasks ejendom .
Det grådige valg-princip siges at gælde for et optimeringsproblem, hvis rækkefølgen af lokalt optimale valg giver en globalt optimal løsning. I et typisk tilfælde følger beviset for optimalitet følgende skema:
Et problem siges at have optimalitetsegenskaben for delproblemer til at udlede et resultat , hvis den optimale løsning på problemet indeholder de optimale løsninger for alle dets delproblemer. For eksempel, i problemet med valget af krav , kan man bemærke, at hvis er det optimale sæt af krav, der indeholder krav nummer 1, så er det optimale sæt af krav for et mindre sæt af krav , bestående af de krav, for hvilke .
En opgave. Det monetære system i en bestemt stat består af mønter med en pålydende værdi på . Det er påkrævet at udstede beløbet med det mindst mulige antal mønter.
Den grådige algoritme til at løse dette problem er som følger. Det størst mulige antal pålydende mønter tages : . På samme måde får vi, hvor mange mønter af en mindre pålydende værdi, der skal til mv.
Til dette problem giver den grådige algoritme ikke altid den optimale løsning, men kun for nogle, kaldet kanoniske , monetære systemer, såsom dem, der bruges i USA (1, 5, 10, 25 cents). Ikke-kanoniske systemer har ikke denne egenskab. Så for eksempel mængden af 24 kopek med mønter på 1, 5 og 7 kopek. grådige algoritmeudvekslinger som denne: 7 kopek. - 3 stk., 1 kop. - 3 stk, mens den korrekte løsning er 7 kopek. - 2 stk., 5 kopek. - 2 stk. [en]
Formulering nr. 1. Ansøgninger om at lede undervisning i et bestemt publikum gives. I hver applikation er begyndelsen og slutningen af lektionen angivet ( og for den -. applikation). I tilfælde af skæring af anmodninger kan kun én af dem opfyldes. Ansøgninger med tal og er fælles, hvis intervallerne og ikke skærer (det vil sige eller ). Opgaven med at vælge ansøgninger er at indsamle det maksimale antal ansøgninger, der er fælles med hinanden.
Formulering nr. 2. På konferencen , for at afsætte mere tid til uformel kommunikation, blev forskellige sektioner smadret til forskellige målgrupper. En videnskabsmand med ekstremt brede interesser ønsker at deltage i flere foredrag i forskellige sektioner. Begyndelsen og slutningen af hver rapport er kendt. Bestem det maksimale antal rapporter, du kan deltage i.
Her er en grådig algoritme, der løser dette problem. Samtidig antager vi, at ansøgningerne er ordnet i rækkefølge efter stigende sluttid. Hvis dette ikke er tilfældet, så kan du sortere dem i tide ; ordrer med samme sluttidspunkt placeres i tilfældig rækkefølge.
Activity-Selector(s,f)
Arrays af begyndelsen og slutningen af klasser føres til input af denne algoritme. Sættet A består af numrene på de valgte anmodninger, og j er nummeret på den sidste anmodning. Den grådige algoritme søger efter en rækkefølge, der ikke starter tidligere end slutningen af j -th, og inkluderer derefter den fundne rækkefølge i A , og j tildeler dens nummer. Således vælger vi hver gang den (endnu ikke startet) lektion, indtil slutningen af hvilken der er mindst tid tilbage.
Algoritmen fungerer til , det vil sige sortering plus sampling. Ved hvert trin vælges den bedste løsning. Lad os vise, at vi i sidste ende får det optimale.
Bevis . Bemærk, at alle ordrer er sorteret i ikke-faldende sluttidspunkt. Ansøgning nummer 1 er naturligvis inkluderet i det optimale (hvis ikke, så erstatter vi den tidligste rækkefølge i det optimale med det, det vil ikke gøre det værre). Ved at smide alle applikationer ud, der modsiger den første, får vi det oprindelige problem med færre applikationer. Argumenterer vi ved induktion , når vi frem til den optimale løsning på samme måde.
En generalisering af grådige algoritmer er Rado-Edmonds algoritme .
For en række problemer, der tilhører NP-klassen , giver grådige algoritmer ikke en optimal løsning. Disse omfatter:
Ikke desto mindre giver grådige algoritmer i en række problemer gode omtrentlige løsninger.
Machine learning og data mining | |
---|---|
Opgaver | |
At lære med en lærer | |
klyngeanalyse | |
Dimensionalitetsreduktion | |
Strukturel prognose | |
Anomali detektion | |
Grafer sandsynlighedsmodeller | |
Neurale netværk | |
Forstærkende læring |
|
Teori | |
Tidsskrifter og konferencer |
|