Hem Personliga finanser Arbetar med algoritmiska funktioner - dummies

Arbetar med algoritmiska funktioner - dummies

Video: Kenneth Cukier: Big data is better data 2024

Video: Kenneth Cukier: Big data is better data 2024
Anonim

En funktion i matematik är helt enkelt ett sätt att kartlägga några ingångar till ett svar. Uttryckt på ett annat sätt är en -funktion en transformation (baserat på matematikoperationer) som omvandlar (kartlägger) inmatningen till ett svar.

För vissa värden för inmatning (vanligtvis betecknad med bokstäverna x eller n) har du ett motsvarande svar med matematiken som definierar funktionen. Exempelvis anger en funktion som f (n) = 2 n att när ditt ingång är ett tal n, är ditt svar är talet n multiplicerat med 2.

Med hjälp av storleken på inmatningen är det meningsfullt med tanke på att det här är en tidskritisk ålder och människors liv är proppade med en växande mängd data. Att göra allt en matematisk funktion är lite mindre intuitiv, men en funktion som beskriver hur en algoritm relaterar sin lösning till den mängd data den tar emot är något du kan analysera utan specifikt hårdvaru- eller mjukvaruunderstöd. Det är också lätt att jämföra med andra lösningar, med tanke på storleken på ditt problem. Analys av algoritmer är verkligen ett tankegångskoncept eftersom det reducerar en komplex serie av steg till en matematisk formel.

För det mesta är en analys av algoritmer inte ens intresserad av att definiera funktionen exakt. Vad du verkligen vill göra är att jämföra en målfunktion med en annan funktion. Dessa jämförelsefunktioner förekommer inom en uppsättning föreslagna funktioner som utför dåligt i motsats till målalgoritmen. På så sätt behöver du inte ansluta tal till funktioner med större eller mindre komplexitet. I stället handlar du om enkla, färdiga och välkända funktioner. Det kan låta grovt, men det är mer effektivt och liknar att klassificera algoritmens prestanda i kategorier, i stället för att få en exakt prestandamätning.

Satsen av generaliserade funktioner kallas Big O notation, och du stöter ofta på den här lilla uppsättningen funktioner (läggs i parentes och föregås av en huvudstad O >) används för att representera algoritmernas prestanda. Figuren visar analysen av en algoritm. Ett kartesiskt koordinatsystem kan representera sin funktion, mätt med RAM-simulering, där abscissa (x-koordinaten) är storleken på ingången och ordinate (y-koordinaten) är dess resulterande antal operationer. Du kan se tre kurvor representerade. Inmatningsstorlek betyder. Kvaliteten är dock också viktig (till exempel när du beställer problem är det snabbare att beställa en inmatning som redan är nästan beställd).Följaktligen visar analysen ett värsta fall, f 1 (n), ett genomsnittfall, f 2 (n) och ett bästa fall, f 3 (n). Även om det genomsnittliga fallet kan ge dig en allmän uppfattning, är det som du verkligen bryr dig om, det värsta fallet, eftersom det kan uppstå problem när din algoritm kämpar för att nå en lösning. Big O-funktionen är den som efter ett visst värde

n0 (tröskeln för att överväga en stor ingång) resulterar alltid i ett större antal operationer med samma ingång än värsta fallfunktionen > f1 . Således är Big O-funktionen ännu mer pessimistisk än den som representerar din algoritm, så oavsett kvaliteten på inmatningen kan du vara säker på att saker inte kan bli värre än det. Komplexiteten hos en algoritm vid bästa, genomsnittliga och värsta inmatningsfall. Många möjliga funktioner kan leda till sämre resultat, men valet av funktioner som erbjuds av Big O-notationen som du kan använda är begränsade eftersom dess syfte är att förenkla komplexitetsmätningen genom att föreslå en standard. Följaktligen innehåller detta avsnitt bara de få funktioner som ingår i Big O notationen. Följande lista beskriver dem i växande ordning av komplexitet:

Konstant komplexitet O (1):

Samma tid, oavsett hur mycket input du tillhandahåller. I slutändan är det ett konstant antal operationer, oavsett hur länge ingångsdata är. Denna nivå av komplexitet är ganska sällsynt i praktiken.

  • Logaritmisk komplexitet O (log n): Antalet operationer växer långsammare än ingången, vilket gör algoritmen mindre effektiv med små ingångar och effektivare med större. En typisk algoritm för denna klass är binärsökningen.
  • Linjär komplexitet O (n): Verksamheten växer med ingången i ett 1: 1-förhållande. En typisk algoritm är iteration, vilket är när du skannar inmatning en gång och tillämpar en operation på varje element av det.
  • Linearitmisk komplexitet O (n log n): Komplexitet är en blandning mellan logaritmisk och linjär komplexitet. Det är typiskt för vissa smarta algoritmer som används för att beställa data, till exempel Mergesort, Heapsort och Quicksort.
  • Kvadratisk komplexitet O (n 2
  • ): Verksamheten växer som en kvadrat av antalet ingångar. När du har en iteration inuti en annan iteration (kapslade iterationer, i datavetenskap), har du kvadratisk komplexitet. Du har till exempel en lista över namn och för att hitta de mest liknande, jämför du varje namn mot alla andra namn. Några mindre effektiva beställningsalgoritmer presenterar sådan komplexitet: bubbelsort, urvalssort och insertionssort. Denna nivå av komplexitet innebär att dina algoritmer kan springa i timmar eller till och med dagar innan de når en lösning. Kubisk komplexitet O (n 3
  • ): Operationerna växer ännu snabbare än kvadratisk komplexitet eftersom nu har du flera nestade iterationer. När en algoritm har denna ordning med komplexitet och du behöver bearbeta en blygsam mängd data (100 000 element), kan din algoritm löpa i flera år.När du har ett antal operationer som är en kraft för ingången är det vanligt att referera till algoritmen som som körs i polynomaltid. Exponentiell komplexitet O (2 n
  • ): Algoritmen tar dubbelt så många tidigare operationer för varje nytt element som läggs till. När en algoritm har denna komplexitet kan även små problem ta evigt. Många algoritmer som gör uttömmande sökningar har exponentiell komplexitet. Det klassiska exemplet för denna nivå av komplexitet är emellertid beräkningen av Fibonacci-nummer. Faktisk komplexitet O (n!): En riktig mardröm av komplexitet på grund av det stora antalet möjliga kombinationer mellan elementen. Tänk dig: Om din ingång är 100 objekt och en operation på din dator tar 10
  • -6 sekunder (en rimlig hastighet för varje dator, nuförtiden) behöver du cirka 10 140 år för att slutföra uppgiften framgångsrikt (en omöjlig tid sedan universums ålder uppskattas vara 10 14 år). Ett känt problem med problemkomplexiteten är det resande säljareproblemet, där en säljare måste hitta den kortaste vägen för att besöka många städer och komma tillbaka till startstaden.
Arbetar med algoritmiska funktioner - dummies

Redaktörens val

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Du kan vara säker på att få några frågor om certifieringsexamen som testar din kunskap om typer av enheter och olika nätverkstjänster. Nedan följer några viktiga punkter att komma ihåg om enheter och tjänster: Nätverksenheter Hubb: Ett nav är en lag 1-enhet som används för att ansluta system tillsammans. När ...

OSI-modell för CCENT-certifieringsexamen - dummies

OSI-modell för CCENT-certifieringsexamen - dummies

Certifieringen certifierar dig kraftigt på OSI-modellen och olika protokoll och enheter som körs på varje lager av OSI-modellen. I följande tabell granskas OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

Cisco ICND1-certifieringsexamen testa dig kraftigt på OSI modell och de olika protokoll och enheter som körs i varje lager av OSI-modellen. Följande granskar OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

Redaktörens val

Hur man skalar på skifferelement i kantfilm - dummies

Hur man skalar på skifferelement i kantfilm - dummies

Skalar ett element i Adobe Edge Animate betyder i huvudsak att du kan ändra storleken på ett element samtidigt som dess proportioner hålls konsekventa om du vill. Du kan: Skalelement med verktyget Transform Skalaelement från Egenskaper-panelen Skalning med verktyget Transform Om du föredrar att använda en klicka-och-dra-metod för skalering ...

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Mallar introducerades i Edge Animate 2. 0. Denna funktion tar bort nödvändigheten att återuppfinna hjulet varje gång du vill starta en ny komposition. Visst kan du alltid starta en ny komposition från en sparad fil, men Mallar gör att du kan starta ett nytt projekt som redan innehåller attribut och element som du vill ha.

Keyframes Modes in Edge Animation - dummies

Keyframes Modes in Edge Animation - dummies

Keyframe-verktyg i Edge Animate finns till höger om Play-kontrollerna. För att skapa nyckelfiler automatiskt måste du först aktivera nyckelbilder genom att klicka på den röda stoppklockans ikon. Som standard, när du startar en ny animering, är Stopwatch rött men har gråa linjer som löper genom det (som visat). Här är standardstatus för ...

Redaktörens val

Hur man tolkar figurativt språk för GED RLA-dummiesna

Hur man tolkar figurativt språk för GED RLA-dummiesna

Författare använder språk antingen bokstavligt eller figurativt . GED Reasoning Through Language Arts testet kommer att ha några frågor för att testa din förmåga att identifiera skillnaden. En NASA-vetenskapsman kan beskriva en asteroid väldigt bokstavligt: ​​består huvudsakligen av vatten, blandat med vissa stenar och mindre fasta fragment. Eller kan han eller hon skriva figurativt och beskriva ...

Hur (och var) ska schemalägga för att ta GED-dummiesna

Hur (och var) ska schemalägga för att ta GED-dummiesna

För att ta GED test, schemalägger du det baserat på tillgängliga testdatum. Varje stat eller lokalt testcenter ställer in sitt eget schema för GED-testet, vilket innebär att ditt tillstånd bestämmer hur och när du kan ta varje avsnitt av testet. Det bestämmer också hur ofta du kan återta en misslyckad ...

Hur man förbereder sig på GED RLA Extended Response - dummies

Hur man förbereder sig på GED RLA Extended Response - dummies

Uppsats för utvidgad respons på GED Reasoning Through Language Arts-testet kräver några mycket specifika färdigheter, allt från grammatik och korrekt språkanvändning till förståelse och analysförmåga. Om du någonsin har haft ett argument om vem som har det bästa laget eller vilken arbetsgivare är bättre, vet du redan hur man bedömer argument och svarar. ...