Hjem Personlig finansiering Algoritmer: Computer omkostninger og følgende heuristics - dummies

Algoritmer: Computer omkostninger og følgende heuristics - dummies

Indholdsfortegnelse:

Video: Week 7, continued 2024

Video: Week 7, continued 2024
Anonim

Ofte finder du, at en heuristisk tilgang, på selvopdagelse og producerer tilstrækkeligt nyttige resultater (ikke nødvendigvis optimalt, men godt nok) er den metode, du rent faktisk har brug for at løse et problem. At få algoritmen til at udføre nogle af de nødvendige arbejder for dig sparer tid og kræfter, fordi du kan oprette algoritmer, der ser mønstre bedre end mennesker gør.

Selvopdagelse er derfor processen med at lade algoritmen vise dig en potentielt nyttig vej til en løsning (men du skal stadig regne med menneskets intuition og forståelse for at vide, om løsningen er den rigtige). De følgende afsnit beskriver teknikker, du kan bruge til at beregne prisen på en algoritme ved hjælp af heuristics som en metode til at opdage den faktiske anvendelighed af en given løsning.

Representerer problemet som et mellemrum

A Problemrum er et miljø, hvor en søgning efter en løsning finder sted. Et sæt stater og operatørerne, der bruges til at ændre disse stater, repræsenterer problemrummet. For eksempel overveje et fliser spil, der har otte fliser i en 3-x-3 ramme. Hver flise viser en del af et billede, og fliserne starter i en tilfældig rækkefølge, så billedet er forvrengt. Målet er at flytte en flise ad gangen for at placere alle fliserne i den rigtige rækkefølge og afsløre billedet.

Kombinationen af ​​starttilstanden, de randomiserede fliser og måltilstanden - fliserne i en bestemt rækkefølge - er problemet. Du kunne repræsentere puslespillet grafisk ved hjælp af en problemrumgraf. Hver knude på problemrummet viser en tilstand (de otte fliser i en bestemt position). Kanterne repræsenterer operationer, såsom at flytte flise nummer otte op. Når du flytter flise otte op, ændres billedet - det flytter til en anden tilstand.

At vinde spillet ved at flytte fra starttilstand til måltilstand er ikke den eneste overvejelse. For at løse spillet effektivt skal du udføre opgaven i det mindste antal mulige træk, hvilket betyder at bruge det mindste antal operatører. Det mindste antal træk, der bruges til at løse puslespillet, er problemdybde.

Du skal overveje flere faktorer, når du repræsenterer et problem som et rum. For eksempel skal du overveje det maksimale antal noder, der passer til hukommelsen, hvilket repræsenterer rumkompleksiteten. Når du ikke kan passe alle noderne i hukommelsen ad gangen, skal computeren gemme nogle noder på andre steder, f.eks. Harddisken, som kan bremse algoritmen betydeligt.For at afgøre, om noderne passer til hukommelsen, skal du overveje tidskompleksiteten,, hvilket er det maksimale antal noder, der oprettes for at løse problemet. Derudover er det vigtigt at overveje forgreningsfaktoren,, som er det gennemsnitlige antal noder, der er oprettet i problemrumgrafen for at løse et problem.

Går tilfældigt og bliver velsignet af held

Det er muligt at løse et søgeproblem ved brug af brute-force-teknikker. Fordelen med denne tilgang er, at du ikke har brug for nogen domæne-specifik viden til at bruge en af ​​disse algoritmer. En brute-force algoritme har tendens til at bruge den enkleste mulige tilgang til at løse problemet. Ulempen er, at en brute-force-tilgang fungerer kun godt for et lille antal noder. Her er nogle af de almindelige brute-force search-algoritmer:

  • Bredde-første søgning: Denne teknik begynder ved rodnoden, undersøger hver af børnelederne først og går først derefter ned til næste niveau. Den skrider frem efter niveau, indtil den finder en løsning. Ulempen ved denne algoritme er, at den skal lagre hver node i hukommelsen, hvilket betyder at den bruger en betydelig mængde hukommelse til et stort antal noder. Denne teknik kan tjekke for dubletter, hvilket sparer tid, og det kommer altid op med en løsning.
  • Dybde-første søgning: Denne teknik begynder ved rodknuden og udforsker et sæt tilsluttede børne noder, indtil det når en bladnode. Det skrider frem til filialen, indtil den finder en løsning. Ulempen ved denne algoritme er, at den ikke kan tjekke for dubletter, hvilket betyder at det kan krydse de samme nodeveje mere end én gang. Faktisk kan denne algoritme slet ikke finde en løsning, hvilket betyder at du skal definere et cutoff-punkt for at holde algoritmen fra at søge uendeligt. En fordel ved denne tilgang er, at den er hukommelseseffektiv.
  • Tovejsøgning: Denne teknik søger samtidigt fra rodknuden og målnoden, indtil de to søgestier møder i midten. En fordel ved denne tilgang er, at den er tidseffektiv, fordi den finder løsningen hurtigere end mange andre brute-force løsninger. Derudover bruger hukommelsen mere effektivt end andre tilgange og finder altid en løsning. Den største ulempe er implementeringens kompleksitet, der overskrider en længere udviklingscyklus.

Brug af en heuristisk og en omkostningsfunktion

For nogle mennesker lyder ordet heuristic bare kompliceret. Det ville være lige så nemt at sige, at algoritmen gør et uddannet gæt og derefter forsøger igen, når det fejler. I modsætning til brute-force metoder lærer heuristiske algoritmer. De bruger også omkostningsfunktioner til at træffe bedre valg. Derfor er heuristiske algoritmer mere komplekse, men de har en klar fordel ved løsning af komplekse problemer. Som med brute-force algoritmer er der mange heuristiske algoritmer, og hver kommer med sit eget sæt fordele, ulemper og særlige krav. Følgende liste beskriver nogle få af de mest almindelige heuristiske algoritmer:

  • Ren heuristisk søgning: Algoritmen udvider knuder i rækkefølge af deres omkostninger.Den opretholder to lister. Den lukkede liste indeholder de noder, den allerede har udforsket; Den åbne liste indeholder de noder, den endnu må undersøge. I hver iteration udvider algoritmen knuden med den lavest mulige pris. Alle dens børne noder er placeret i den lukkede liste, og de individuelle barneknutekostnader beregnes. Algoritmen sender barnetoderne med en lav pris tilbage til den åbne liste og sletter børnelodene med en høj pris. Algoritmen udfører derfor en intelligent, omkostningsbaseret søgning efter løsningen.
  • A * søgning: Algoritmen sporer omkostningerne ved noder, da den udforsker dem ved hjælp af ligningen: f (n) = g n) + h (n), hvor
    • n er nodens identifikator.
    • g (n) er omkostningerne ved at nå noden hidtil.
    • h (n) er den anslåede pris for at nå målet fra noden.
    • f (n) er den anslåede pris for stien fra n til målet.

Ideen er at søge de mest lovende stier først og undgå dyre stier.

  • Greedy bedste første søgning: Algoritmen vælger altid den sti, der er tættest på målet ved hjælp af ligningen: f (n) = h
Algoritmer: Computer omkostninger og følgende heuristics - dummies

Valg af editor

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Test din kode med Dreamweavers webstedrapporteringsfunktioner - dummies

Hvis du har brugt Dreamweaver til bygg din mobilwebsite, du kan tjekke dit arbejde ved hjælp af Dreamweaver Site Reporting funktionerne. Det lader dig oprette en række rapporter og endda tilpasse dem til at identificere problemer med eksterne links, overflødige og tomme tags, untitled dokumenter og manglende alternativ tekst. Du kan nemt gå glip af problemer - især ...

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Sådan bruger du dit eget domæne til dit Squarespace-websted - dummier

Når du underskriver op for din Squarespace-konto, får du en unik Squarespace-URL, der ser sådan ud: http: // dit kontonavn. Squarespace. com. Hvis du vil have fuldstændig kontrol over branding af dit websted eller blot ønsker en unik webadresse, kan du kortlægge eller pege på et brugerdefineret domæne på din Squarespace-konto. Du har tre muligheder for indstilling ...

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Fordelene ved at bruge Markdown på din Squarespace Website - dummies

Markdown er en plain- tekst skriftformat, der gør det muligt hurtigt at anvende tekst styling baseret på hvordan du formaterer din Squarespace 6 websteds tekst. Markdown er en af ​​Du bruger to typer blokke, du kan bruge til at tilføje tekst. Du tilføjer indhold til dine Squarespace-sidesider ved at bruge indholdsblokke i Site Manager → Indhold ...

Valg af editor

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca og Witchcraft For Dummies Cheat Sheet - dummies

Wicca, en heksekunst, er centreret i rituelle Wiccans udfører til specifikke formål, såsom at kommunikere med eller ære guddom. Sabbats er wiccan sol helligdage fokuseret på jordens sti omkring solen, nogle gange omtalt som Årets hjul. Esbats er wiccan månens ferie, der fokuserer på månens cyklus. ...

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Sammenhængende trosretninger: almindelige erfaringer i skrifterne - dummies

Interessant de tre Abrahams trosretninger - jødedom, kristendom , og islam - deler meget til fælles, herunder en række af ædle profeter sendt af Gud. På grund af commonality ligger en dyb forbindelse til arv fra profeten Abraham og en tro på en Gud. Koranen finder fælles sted med kristne og jøder (kendt ...

Charmerende din vej til effektiv magi - dummies

Charmerende din vej til effektiv magi - dummies

En firkløver for held. Den jakkesæt, som du altid bærer til jobsamtaler for succes. Ringen du tager aldrig af, fordi den repræsenterer din kærlighed til en anden person. Den hængende du bærer rundt om halsen hver dag for beskyttelse. Den lille statue hængende fra bilens bagspejl til sikker rejse. ...

Valg af editor

Vælger skråninger, kanter og ansigter i blender - dummies

Vælger skråninger, kanter og ansigter i blender - dummies

I Blender's Edit-tilstand, kuben ændrer farve og prikker danner i hver af kubens hjørner. Hver prik er et vertex. Linjen der dannes mellem to hjørner er en kant. Et ansigt i Blender er en polygon, der er dannet af tre eller flere forbindelseskanter. Tidligere er ansigter i Blender ...