Uddannelse

Hvad er algoritme? »Dens definition og betydning

Indholdsfortegnelse:

Anonim

I matematik, datalogi og andre relaterede doktriner er algoritmen defineret som et sæt etablerede og utvetydige forskrifter, der findes metodisk og på en begrænset måde, der gør det muligt at udføre beregninger, behandle visse oplysninger, give løsninger på problemer og udføre forskellige aktiviteter.. Når du starter fra en starttilstand og en indtastning, efter de krævede procedurer, nås den endelige tilstand, og et resultat opnås. Algoritmer er genstand for undersøgelse af algoritmer, og selvom mange måske ikke tror på det, kan de også bruges i alle aspekter af hverdagen.

Hvad er en algoritme

Indholdsfortegnelse

I computing defineres det normalt som en række sekventielle instruktioner, hvor nogle processer udføres for at give svar på bestemte beslutninger eller behov. På samme måde bruges algoritmer ofte i logik og matematik, såvel som at være grundlaget for udviklingen af ​​blandt andet brugervejledninger, illustrative pjecer. En af de mest fremtrædende inden for matematik er den, der tilskrives geometristen Euclides, for at opnå den største fælles skiller af to heltal, der er positive, og den velkendte "Gaussiske metode" til at bestemme systemer for lineære ligninger.

I forhold til datalogi kan denne beregning kaldes den rækkefølge af retningslinjer, der skal følges for at bestemme et problem ved brug af en computer.

Derfor forstås algoritmer som en disciplin, der fokuserer på analyse og design af algoritmer. I betragtning af den første søger den at undersøge egenskaber som dens korrekthed og effektivitet med hensyn til tid og rum for at forstå de problemer, der kan løses algoritmisk. Hvad det andet angår, søger det at studere de allerede etablerede paradigmer og foreslår nye eksempler.

Algoritmen er placeret i centrum for fremskridt inden for computing og er vigtig i de forskellige områder af den. På denne måde ville det være umuligt for tjenester, der er så succesrige som Facebook og Google, at håndtere størrelsen af ​​de oplysninger, de har uden samarbejde mellem algoritmer eller specialiserede datastrukturer. Imidlertid bruges algoritmer i dagligdagen også, et eksempel på dette er tændingen af ​​komfuret, da det begynder i det øjeblik, hvor personen går til køkkenet, observerer det og har sin afslutning, når det fortsætter med at tænde det.

Karakteristika for en algoritme

På trods af at algoritmen er kendt som det ordnede og endelige sæt af forskellige trin, der fører til løsning af et problem, siges det, at arten af ​​disse vanskeligheder varierer alt efter den kontekst, hvori de findes, på denne måde er der problemer kemisk, matematisk, filosofisk, blandt andre. Således kan det siges, at dets natur er varieret, og at dens udførelse via computeren ikke er nødvendig. Ud over alt, hvad der tidligere er forklaret, har algoritmer egenskaber, der er grundlæggende for at bestemme, hvad de er i dag, og som vil blive nævnt nedenfor.

  • Retningslinjerne i en algoritme skal være specifikke for at undgå at give plads til enhver form for forvirring, det betyder, at de tilsvarende instruktioner skal følges korrekt, eller tværtimod, den grafiske gengivelse af det flow, som du tilmelder dig, letter ikke løsningen. korrekt.
  • Det skal være i perfekt definition og forsøge så meget som muligt at følge det så mange gange som nødvendigt for at opnå det samme resultat, og hvis det modsatte sker, vil algoritmen ikke være pålidelig og vil ikke tjene som en guide, når man træffer en beslutning.
  • De er kendt for det særlige ved at være endelige, de slutter normalt på et tidspunkt, og senere giver de et resultat i slutningen af ​​hvert trin. Hvis algoritmen strækker sig på ubestemt tid og vender tilbage til et indledende punkt, der aldrig kan løses, er der tilstedeværelsen af ​​et paradoks eller den velkendte "loop" af gentagelser.
  • Endelig siges det, at læsbarheden af algoritmerne er nøgleelementet, for hvis dets argument er uforståeligt, kunne de tilsvarende instruktioner ikke følges, desuden medfører det en direkte, klar og lakonisk ordlyd af teksten, der findes i hver enkelt.

Dele af en algoritme

Hver algoritmisk operation har tre forskellige dele, der er underlagt den grundlæggende struktur i et system, og disse er:

  • Input: kaldes også header eller startpunkt, det er den første instruktion, der repræsenterer algoritmens tilblivelse og den, der motiverer dens læsning.
  • Process: kaldes også erklæring, det er den nøjagtige udførelse, der tilbydes af algoritmen, og det er grundlæggende bagagerummet på dens nøgler til formulering af instruktioner.
  • Output: i denne sidste fase er de specifikke instruktioner bestemt af algoritmen, for eksempel dens kommandoer eller opløsninger.

Eksempler på algoritmer

Almindelige eksempler på matematiske beregninger inkluderer 2 + 3 = 5 for addition og 15-9 = 6 for subtraktion. En anden måde at visualisere enkle algoritmer på er i køkkenopskrifter, da de beskriver en specifik og ordnet proces, for eksempel ”først skal du placere en halv gryde med vand til opvarmning, så skal du tilføje en knivspids salt og til sidst peber bliver delt for at udvinde frøene og venerne. " I denne model præsenteres en begyndelse, en proces og en slutning, som grundlæggende er det, der definerer algoritmerne.

Algoritmetyper

Blandt de forskellige typer algoritmer, der findes over hele verden, lægges der vægt på dem, der er klassificeret efter et system med tegn og andre efter deres funktion. Algoritmen er dybest set den bedst kendte løsning til løsning af et bestemt problem, og ifølge dens strategier og dens funktioner er der forskellige typer af disse, blandt hvilke den dynamiske, omvendte, brutale kraft, opportunistiske, markering skiller sig ud., tilfældig osv. Ud over de ovennævnte algoritmer er der tusindvis af disse, der er egnede til at løse problemer i ethvert område.

I henhold til dit skiltesystem

Kvalitativ og kvantitativ er placeret i denne kategori.

  • Kvalitative algoritmer er kendetegnet ved at have verbale elementer. Et eksempel på disse er instruktionerne eller det anerkendte "trin for trin", der gives oralt, såsom opskrifter til kulinarisk kunst eller procedurer til udførelse af manuelt arbejde.
  • Kvantitative algoritmer er det helt modsatte af kvalitative på grund af tilstedeværelsen af ​​visse numeriske elementer og brugen af ​​matematik til at udføre beregninger, for eksempel når kvadratroden findes eller ligninger løses.

Inden for denne klassificering er der også beregnings- og ikke-beregningsalgoritmer. De beregningsmæssige udføres ved hjælp af en computer og er kendetegnet ved at være så komplekse til det punkt, hvor det kræves, at der udføres en maskine. Ud over dette er de kvantitative algoritmer, der kan optimeres. Ikke-beregningsmæssige har ikke pligt til at blive udført ved hjælp af en maskine eller computer; et klart eksempel på dette er programmeringen af ​​et fjernsyn.

I henhold til dens funktion

Følgende er placeret i denne klassifikation.

1. Markeringsalgoritme

Dette er kendetegnet ved at bruge automatisering til at indstille priser på en flittig måde med fokus på faktorer som brugeradfærd og er også kendt som evnen til automatisk at bestemme priser for devaluering af komponenter for at øge brugernes fortjeneste. sælgere. Det har spillet en meget vigtig rolle i de fælles praksis i de flyselskab industrier siden begyndelsen af 1990'erne.

Markeringsalgoritmen skelnes ved at være en af ​​de mest almindelige fremgangsmåder i stærkt konkurrenceprægede brancher, der henviser til rejsebureauer eller disse online-virksomheder. Denne form for algoritme kan være ekstremt kompleks eller relativt enkel, da det i mange tilfælde bemærkes, at de er optimeret eller selvlært med kontinuiteten i visse tests. Ud over alt dette kan taggingalgoritmer også blive upopulære hos kunderne, da enkeltpersoner har tendens til at værdsætte både stabilitet og retfærdighed.

2. Probabilistiske algoritmer

Det er dem, hvor den måde, hvorpå resultaterne opnås, afhænger af sandsynlighederne, disse er almindeligt kendt som tilfældige algoritmer.

I nogle applikationer er håndteringen af ​​denne type operation almindelig, for eksempel når opførslen af ​​ethvert eksisterende eller udtænkt system simuleres over tid, hvor der opnås en tilfældig løsning som en konsekvens. Under andre omstændigheder er problemet, der skal løses, normalt deterministisk, men der er mulighed for at omdanne det til et tilfældigt problem for at løse det ved at anvende sandsynlighedsalgoritmen. Det positive ved de tilfældige er, at deres anvendelse ikke kræver meget sofistikerede matematiske studier.

Derudover er der inden for denne gruppe tre hovedtyper, der er kendt som numeriske, Monte Carlo og Las Vegas.

  • Numeriske algoritmer kan give et omtrentligt resultat af problemet og anvendes generelt i teknik.
  • Monte Carlo-algoritmer kan give den rigtige eller forkerte løsning og have en vis fejlmargin og til sidst.
  • Las Vegas algoritmer skelnes ved aldrig at efterlade et forkert svar, faktisk finder de den rigtige løsning eller blot informerer dig om den mulige fejl.

Dynamisk programmering refererer til den metode, hvor algoritmen beregner resultaterne. Nogle gange afhænger løsningerne på visse elementer, der har problemerne, af resultaterne af andre mindre problemer. Så for at løse disse skal de samme værdier beregnes igen for at løse de mindste delproblemer, men dette kan skabe spild af cyklusser. For at løse dette kan dynamisk programmering bruges, og i dette tilfælde huskes løsningen på hvert underproblem at bruge den samme værdi i stedet for at gentage den flere gange.

3. Heuristiske algoritmer

De skelnes ved at finde løsninger, og alligevel garanterer de ikke, at de bedste af svarene vil blive fundet. Af denne grund kan de betragtes som omtrentlige algoritmer. Disse kan bruges, når det anses for umuligt at finde en løsning gennem en normal rute. Heuristik giver de anvendelser, der vil blive forklaret nedenfor. I planlægningen bruges de til at planlægge aktiviteter på kort tid, i design bruges de til at afgrænse elektriske eller digitale systemer, og i simulering bruges de til at verificere bestemte procedurer.

4. Backtracking-algoritmer

De er kendt som rekursive strategier, der løser problemer som gåder, labyrinter eller lignende brikker, hvor der udføres en dyb søgning for at finde en mulig løsning. Navnet refererer til det faktum, at det i forespørgslerne for at finde et resultat altid går tilbage til det forrige punkt for at kunne teste alternativer. Disse tilbagekaldes normalt for at observere deres indvirkning på økonomien, på markederne, på prismarkering, på visse operationer og endda på samfundet selv.

5. Grådig algoritme

Det er kendt som ødelæggeren eller den søde tand, og det kan anvendes i optimeringsproblemer. I hvert trin i denne algoritme foretages et logisk og optimalt valg for at ende med de bedste af de globale løsninger. Det skal dog tages i betragtning, at når der først er truffet en dom, kan der intet gøres for at rette eller ændre den i fremtiden. Denne operation har dette navn, fordi i hvert trin vælges den bedste fraktion, der er i stand til at "sluge" uden at bekymre sig om, hvad der sker senere.

Egenskaber for en algoritme

Forskellige forfattere har forsøgt at definere algoritmer på en formel måde, mens de bruger matematiske modeller. Imidlertid er disse prøver tæt beslægtede med en ejendommelig type information, der inkluderer tal, symboler og nogle grafer, mens de fungerer på en enorm mængde datadistribution. Generelt opsummeres den fælles andel af hver af definitionerne i følgende tre egenskaber:

Problemformulering

Løsning af problemer ved hjælp af en computer kan bestå af den proces, hvor et problem er beskrevet, og et program, der er i stand til at løse det, får lov til at blive udviklet. Denne proces kræver analyse af problemet, design af en algoritme og omdannelse til et program samt implementering og validering. De første to trin er de mest komplekse i denne proces, men når du først har undersøgt problemet og fået en algoritme, der kan løse det, er din opgave primært baseret på at oversætte det til det ønskede programmeringssprog.

Analyse af den generelle løsning

Når først problemet er defineret, er det tid til at analysere følgende:

  • De oplysninger af billetterne, de leverer os.
  • De ønskede resultater.
  • Arbejdsområdet, udsagn eller andre nødvendige elementer.

Analysen af ​​algoritmer er kendt som den vigtigste del af den bredere beregningskompleksitetsteori, da den giver teoretiske beregninger for de ressourcer, som en algoritme kræver for at løse et givet beregningsproblem. Når man gennemfører en teoretisk undersøgelse, er det almindeligt at beregne dens komplikationer i asymptotisk forstand for at opnå en stor nok inputstørrelse. Den asymptotiske øvre grænse sammen med theta- og omega-notationer bruges til dette formål, og det skal bemærkes, at det ikke-asymptotiske mål kan edb-styres.

Nøjagtige effektivitetsmål er virkelig nyttige for dem, der rent faktisk bruger algoritmerne, da de har mere præcision, og dette giver dem mulighed for at bestemme den tid, det tager at udføre. For nogle individer som skabere af videospil kan den skjulte konstant betyde en stor forskel mellem succes og fiasko. Tidsevalueringer kan afhænge af, hvordan et bestemt trin defineres, og for at analysen kan give mening, skal det garanteres, at tiden er markant begrænset af en konstant.

Udarbejdelse af algoritmen

For at udføre udviklingen af ​​en operation er det vigtigt, at der udføres en række procedurer for at overholde løsningen af ​​et problem selv. Til at begynde med skal der foretages en forudgående analyse af vanskeligheden, og dette udføres gennem en undersøgelse, der viser den virkelige funktion af problemet længe før en algoritme udføres. Derfor vurderes definitionen af ​​krav, i dette trin skal du have en klar idé om, hvilke problemer der skal løses, det være sig summen af ​​to tal, rækkefølgen af ​​en nummerliste osv.

Senere udføres den respektive identifikation af moduler, da den korrekte implementering af algoritmer afhænger af den for at give mulige løsninger på kravene, der er identificeret ovenfor.

Endelig implementeres beregningen på et programmeringssprog, der er forståeligt af en computer, så den er i stand til at forstå de instruktioner, som den modellerer, og dermed være i stand til at udføre dem og opnå det forventede resultat. I denne sidste procedure kan man allerede tale om et program, der er sammensat af en række instruktioner, der bestilles efter hinanden og formår at løse etablerede krav.

Det er vigtigt at nævne, at i sekventiel tid udfører algoritmerne deres funktion i en diskretiseret tid og søger at definere sekvenserne af beregningstilstande i hver input, der betragtes som gyldig. I den abstrakte tilstand er disse operationer uafhængige elementer, og det anses for, at de oprindelige ordenstrukturer i dem kan blive uforanderlige under isomorfisme. I afgrænset udforskning etableres overgange fra en stat til en anden fuldstændigt ved en permanent og endelig forklaring, hvor kun det begrænsede antal udtryk for den aktuelle tilstand mellem den ene stat og den næste tages i betragtning.

Det bør heller ikke overses, at algoritmer normalt udtrykkes gennem “pseudo-kode” programmeringssprog, det sædvanlige sprog og endda de velkendte flowdiagrammer. Ligeledes er det vigtigt at nævne, at algoritmer spiller en grundlæggende rolle i computing på grund af deres repræsentation af data som sekvenser af bits. Fra en anden vinkel defineres et program som algoritmen, der udtrykker de specifikke trin for computeren, som det skal følge for at udføre bestemte aktiviteter i tilstrækkelig grad. På den anden side gør programmering lettere at lære at skrive pseudokode og vil derfor blive forklaret senere.

Programmeringssprog er kendt som et formelt eller kunstigt sprog, fordi de har grammatikregler, der er veldefinerede, det har evnen til at give programmøren muligheden for at tekstualisere en række instruktioner eller sekvenser af regler i form af algoritmer med det formål for at opretholde en kontrol med hensyn til computerens fysiske og logiske opførsel, på denne måde kan de forskellige typer informationer nås. Dette sæt forskrifter skrevet ved hjælp af et programmeringssprog betegnes som et program.

Programmeringssprog består normalt af et sæt symboler og grammatiske og semantiske regler, der definerer sprogets nuværende strukturer og deres betydning. Fra et andet perspektiv omfatter computersprog også programmeringssprog, et tydeligt eksempel på dette er HTML, hvilket er det, der opfylder visse instruktioner til at udføre indholdet i forskellige dokumenter. Programmeringssproget kan tillade den nøjagtige specifikation af de data, der skal betjenes af specifik software under en varieret skala af omstændigheder.

På den anden side er pseudokode det algoritmiske beskrivelsessprog, der bruger de grundlæggende konventioner i et ægte programmeringssprog, men som er designet til menneskelig læsning i stedet for at læse gennem en maskine og opretholde uafhængighed af enhver anden type programmeringssprog. Pseudokoden ignorerer detaljer, der ikke betragtes som væsentlige for den menneskelige forståelse af algoritmen, såsom koder for et system, variable erklæringer og endda nogle underrutiner. På denne måde søger programmeringssproget at blive suppleret med præcise beskrivelser på naturligt sprog eller med kompakte matematiske notationer.