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

Algoritmer: Computer kostnader og følgende heuristics - dummies

Innholdsfortegnelse:

Video: Week 7, continued 2024

Video: Week 7, continued 2024
Anonim

Ofte finner du at en heuristisk tilnærming, en som stoler på på selvoppdagelse og gir tilstrekkelig nyttige resultater (ikke nødvendigvis optimal, men god nok) er metoden du faktisk trenger for å løse et problem. Å få algoritmen til å utføre noe av det nødvendige arbeidet for deg, sparer tid og krefter fordi du kan lage algoritmer som ser mønstre bedre enn mennesker gjør.

Selvfunn er derfor prosessen med å la algoritmen vise deg en potensielt nyttig måte å løse på (men du må fortsatt stole på menneskelig intuisjon og forståelse for å vite om løsningen er den rette). Følgende avsnitt beskriver teknikker du kan bruke til å beregne kostnaden for en algoritme ved hjelp av heuristikk som en metode for å oppdage den faktiske nytte av en gitt løsning.

Representerer problemet som et mellomrom

A Problemrom er et miljø der et søk etter en løsning finner sted. Et sett med stater og operatørene som brukes til å endre disse statene representerer problemrommet. For eksempel, vurder et flis spill som har åtte fliser i en 3-x-3 ramme. Hver flis viser en del av et bilde, og flisene starter i en tilfeldig rekkefølge slik at bildet er forvrengt. Målet er å flytte en flis om gangen for å plassere alle flisene i riktig rekkefølge og avsløre bildet.

Kombinasjonen av starttilstanden, de randomiserte fliser og måltilstanden - flisene i en bestemt rekkefølge - er -problemet. Du kan representere puslespillet grafisk ved hjelp av en problemromgrafikk. Hver knutepunkt i problemrommet viser en tilstand (de åtte fliser i en bestemt posisjon). Kantene representerer operasjoner, for eksempel å flytte flis nummer åtte opp. Når du flytter flis åtte opp, endres bildet - det beveger seg til en annen stat.

Å vinne spillet ved å flytte fra starttilstand til måltilstand er ikke det eneste hensynet. For å løse spillet effektivt må du utføre oppgaven i minst mulig antall trekk, noe som betyr at du bruker det minste antallet operatører. Minste antall trekk som brukes til å løse puslespillet er problemdybde.

Du må vurdere flere faktorer når du representerer et problem som et mellomrom. For eksempel må du vurdere det maksimale antall noder som passer inn i minnet, som representerer plasskompleksitet. Når du ikke kan passe alle noder i minnet om gangen, må datamaskinen lagre noen noder på andre steder, for eksempel harddisken, som kan senke algoritmen betydelig.For å avgjøre om nodene passer inn i minnet, må du vurdere tidskompleksiteten, som er det maksimale antall noder som er opprettet for å løse problemet. I tillegg er det viktig å vurdere forgreningsfaktoren, som er det gjennomsnittlige antall noder som er opprettet i problemrommet for å løse et problem.

Går tilfeldig og blir velsignet av flaks

Løsning av et søkeproblem ved bruk av brute force-teknikker er mulig. Fordelen med denne tilnærmingen er at du ikke trenger noen domenespesifikke kunnskaper for å bruke en av disse algoritmer. En brute-force-algoritme har en tendens til å bruke den enkleste mulige tilnærmingen til å løse problemet. Ulempen er at en brute-force tilnærming fungerer bra bare for et lite antall noder. Her er noen av de vanlige brute-force søkealgoritmene:

  • Bredde-første søk: Denne teknikken begynner ved rotnoden, undersøker hver av barnnoderne først, og beveger seg bare ned til neste nivå. Den utvikler seg nivå etter nivå til det finner en løsning. Ulempen med denne algoritmen er at den må lagre hver node i minnet, noe som betyr at den bruker en betydelig mengde minne for et stort antall noder. Denne teknikken kan sjekke for dupliserte noder, noe som sparer tid, og det kommer alltid opp med en løsning.
  • Dybde-første søk: Denne teknikken starter ved rotnoden og undersøker et sett med tilkoblede barnnoder til det når en bladknutepunkt. Den utvikler grenen etter grenen til den finner en løsning. Ulempen med denne algoritmen er at den ikke kan se etter dupliserte noder, noe som betyr at den kan krysse de samme nodebanene mer enn en gang. Faktisk kan denne algoritmen kanskje ikke finne en løsning i det hele tatt, noe som betyr at du må definere et cutoff-punkt for å holde algoritmen fra å søke uendelig. En fordel ved denne tilnærmingen er at den er minneeffektiv.
  • Toveiset søk: Denne teknikken søker samtidig fra rotnoden og målnoden til de to søkeveiene møtes i midten. En fordel ved denne tilnærmingen er at det er tidseffektivt fordi det finner løsningen raskere enn mange andre brute-force løsninger. I tillegg bruker det minne mer effektivt enn andre tilnærminger, og finner alltid en løsning. Den største ulempen er implementeringens kompleksitet, noe som oversetter til en lengre utviklingssyklus.

Bruke en heuristisk og en kostnadsfunksjon

For noen mennesker lyder ordet heuristic bare komplisert. Det ville være like lett å si at algoritmen gjør et utdannet gjetning og deretter prøver igjen når det feiler. I motsetning til brute-force metoder lærer heuristiske algoritmer. De bruker også kostnadsfunksjoner for å gjøre bedre valg. Følgelig er heuristiske algoritmer mer komplekse, men de har en klar fordel i å løse komplekse problemer. Som med brute-force algoritmer, er det mange heuristiske algoritmer, og hver kommer med sitt eget sett med fordeler, ulemper og spesielle krav. Følgende liste beskriver noen av de vanligste heuristiske algoritmene:

  • Pure heuristic search: Algoritmen utvider nodene i rekkefølge av kostnadene.Den opprettholder to lister. Den lukkede listen inneholder noder den allerede har utforsket; Den åpne listen inneholder noder den må undersøke. I hver iterasjon utvider algoritmen node med lavest mulig pris. Alle dens barnnoder er plassert i den lukkede listen, og de individuelle barneknutekostnadene beregnes. Algoritmen sender barnnoder med lav pris tilbake til den åpne listen og sletter barnnoder med høy pris. Algoritmen utfører derfor en intelligent, kostnadsbasert søk etter løsningen.
  • A * søk: Algoritmen sporer kostnadene for noder da den utforsker dem ved bruk av ligningen: f (n) = g (n) + h (n), hvor
    • n er nodens identifikator.
    • g (n) er kostnaden for å nå noden så langt.
    • h (n) er den anslåtte kostnaden for å nå målet fra noden.
    • f (n) er den anslåtte kostnaden for banen fra n til målet.

Tanken er å søke de mest lovende stiene først og unngå dyre stier.

  • Greedy best-first search: Algoritmen velger alltid banen som er nærmest målet ved å bruke ligningen: f (n) = h
Algoritmer: Computer kostnader og følgende heuristics - dummies

Redaktørens valg

Hvordan du lager Spotify-snarveier for å få tilgang til musikk - dummies

Hvordan du lager Spotify-snarveier for å få tilgang til musikk - dummies

Når det gjelder å organisere musikken din, unik adresser levert av spotify kan være en stor hjelp. Ved å opprette en datask snarvei - et ikon på datamaskinen din som du kan dobbeltklikke for å starte riktig musikk - du kan ha rask og enkel tilgang til album, artister, spor og spillelister. Du kan lage snarveier og sette ...

Hvordan du laster ned Spotify for Mac - dummies

Hvordan du laster ned Spotify for Mac - dummies

Etter å ha registrert deg for en Spotify-konto, blir du ledet til en side Det skal automatisk starte installasjonsfilen for Mac-en. For å laste ned programvaren, følg disse trinnene: Hvis installasjonsfilen ikke starter automatisk, går du til Spotify og klikker Last ned nå. Enten filen starter automatisk eller du manuelt laster den ned, vil nettleseren din ...

Redaktørens valg

Hvordan man bruker argumenter for å forbedre forholdet ditt - dummier

Hvordan man bruker argumenter for å forbedre forholdet ditt - dummier

Hvert forhold har konflikt - argumenter og uenigheter går hånd i hånd med kjærlighet og hengivenhet. Men med Dr. Kate's Make-A-Deal-teknikk, kan du avgjøre uenigheter og vokse nærmere i prosessen. Bare følg disse trinnene: Lag en date for å snakke om problemet, og velg optimal tid og sted. Spør spørsmål om kompisens tanker og følelser ...

Hvordan flirte å vise interesse i noen - dummier

Hvordan flirte å vise interesse i noen - dummier

Det er mange subtile flørteknikker for å vise noen du er interessert i dem. Enten du er tiltrukket av en fremmed på toget, en kollega eller en av vennene dine, er det et signal for enhver anledning. Start med ikke-risikable, mer subtile signaler for å bygge din selvtillit og hjelpe deg med å bevege deg mot å starte en samtale. ...

Redaktørens valg

URL Manipuleringshack i webprogrammer - dummies

URL Manipuleringshack i webprogrammer - dummies

En automatisert inngangshakk manipulerer en URL og sender den tilbake til serveren , fortelle webapplikasjonen å gjøre forskjellige ting, for eksempel omdirigering til tredjepartsnettsteder, last sensitive filer fra serveren og så videre. Lokal filoppføring er et slikt sårbarhet. Dette er når webprogrammet aksepterer nettbasert innføring og returnerer ...

Nyttige nettsteder for nettverksinformasjon - dummies

Nyttige nettsteder for nettverksinformasjon - dummies

Som nettverksadministrator, er Internett din beste venn for nettverksressurser, løsninger , nyheter og veiledning. Her er noen nettsteder for deg å besøke ofte. For å registrere domener: InterNIC Network Solutions register. com Slik kontrollerer du TCP / IP-konfigurasjonen: DNSstuff For å se om e-postserveren din er svartlistet: DNSBL. info For å holde deg oppdatert i bransjen, ...

Nyttige nettsteder for nettverksinformasjon - dummies

Nyttige nettsteder for nettverksinformasjon - dummies

Som nettverksadministrator kan Internett din beste venn tilby alle slags god informasjon for å hjelpe deg med å administrere nettverket ditt. Her er noen nettsteder for deg å besøke ofte. For å registrere domener: InterNIC: www. internic. nettverksløsninger: www. Network. com register. com: www. registrere. com For å sjekke TCP / IP-konfigurasjonen din: DNSstuff: www. dnsstuff. com For å se om e-postserveren din har vært ...