Izobraževanje

Kaj je algoritem? »Njegova opredelitev in pomen

Kazalo:

Anonim

V matematiki, računalništvu in drugih sorodnih doktrinah je algoritem opredeljen kot niz uveljavljenih in nedvoumnih zapovedi, ki jih najdemo metodično in na omejen način, ki omogočajo izračune, obdelajo določene informacije, ponujajo rešitve problemov in izvajajo različne dejavnosti. Ko začnete iz začetnega stanja in vnosa, po zahtevanih postopkih dosežete končno stanje in dobite rezultat. Algoritmi so predmet raziskovanja algoritmov in čeprav mnogi morda ne verjamejo, se lahko uporabljajo tudi v vseh pogledih vsakdanjega življenja.

Kaj je algoritem

Kazalo

Pri računalništvu je običajno opredeljeno kot zaporedje zaporednih navodil, v katerih se izvajajo nekateri procesi, da se dajo odgovori na določene odločitve ali potrebe. Na enak način se algoritmi pogosto uporabljajo v logiki in matematiki, hkrati pa so osnova za razvoj uporabniških priročnikov, med drugim tudi ilustrativnih brošur. Eden najbolj prepoznavnih v matematiki je tisti, ki je pripisan geometristu Euclides, da dosežemo največji skupni delilec dveh pozitivnih celih števil in dobro znano "Gaussovo metodo" za določanje sistemov linearnih enačb.

V zvezi z računalništvom je ta izračun lahko znan kot zaporedje smernic za določanje problema z uporabo računalnika.

Zato algoritmiko razumemo kot disciplino, ki se osredotoča na analizo in načrtovanje algoritmov. Pri prvem skuša preučiti lastnosti, kot sta njegova pravilnost in učinkovitost glede na čas in prostor, da bi razumeli probleme, ki jih je mogoče rešiti algoritemsko. Kar zadeva drugo, skuša preučiti že uveljavljene paradigme in predlaga nove primere.

Algoritem se nahaja v središču napredka računalništva in je pomemben na različnih njegovih področjih. Na ta način bi tako uspešne storitve, kot sta Facebook in Google, nemogoče ravnati z obsegom informacij, ki jih imajo, brez sodelovanja algoritmov ali specializiranih podatkovnih struktur. Vendar se v vsakdanjem življenju uporabljajo tudi algoritmi, primer tega je vžig peči, saj se ta začne v trenutku, ko oseba odide v kuhinjo, jo opazi in ima svoj konec, ko jo prižge.

Značilnosti algoritma

Čeprav je algoritem znan kot urejeni in končni nabor različnih korakov, ki vodijo do rešitve problema, je rečeno, da se narava teh težav razlikuje glede na kontekst, v katerem se nahajajo, na ta način obstajajo težave kemični, matematični, filozofski, med drugim. Tako lahko rečemo, da je njegova narava različna in da računalniška izvedba ni potrebna. Poleg vsega, kar je bilo prej pojasnjeno, imajo algoritmi osnovne značilnosti, ki določajo, kaj so danes, in bodo omenjene spodaj.

  • Smernice, vsebovane v algoritmu, morajo biti posebne, da ne bo prostora za kakršno koli zmedo, to pomeni, da je treba ustrezno upoštevati ustrezna navodila ali, nasprotno, grafični prikaz toka, v katerega se vpisujete, ne bo olajšal rešitve. pravilno.
  • Biti mora v popolni definiciji, poskušati mu slediti čim večkrat, kolikor je potrebno, da dobimo enak rezultat in v primeru, da se zgodi nasprotno, algoritem ne bo zanesljiv in ne bo služil kot vodilo pri odločanju.
  • Znani so po posebnosti, da so končni, ponavadi se na neki točki končajo in kasneje na koncu vsakega koraka vržejo rezultat. Če se algoritem razširi za nedoločen čas in se vrne na neko začetno točko, ki je nikoli ni mogoče rešiti, obstaja prisotnost paradoksa ali dobro znane "zanke" ponovitev.
  • Na koncu je rečeno, da je berljivost algoritmov ključni element, ker če je njegov argument nerazumljiv, ustreznih navodil ni mogoče upoštevati, poleg tega pa vključuje neposredno, jasno in lakonsko besedilo besedila, ki ga najdemo v vsakem posebej.

Deli algoritma

Vsaka algoritemska operacija ima tri različne dele, ki so podrejeni osnovni strukturi sistema, in to so:

  • Vhod: imenovan tudi glava ali izhodišče, je začetno navodilo, ki predstavlja nastanek algoritma in tisto, ki motivira njegovo branje.
  • Proces: imenovan tudi izjava, je natančna izdelava, ki jo ponuja algoritem, in je v bistvu trup njegovih ključev za oblikovanje navodil.
  • Rezultat: v tej zadnji fazi so posebna navodila, ki jih določi algoritem, na primer njegovi ukazi ali ločljivosti.

Primeri algoritmov

Pogosti primeri matematičnih izračunov vključujejo 2 + 3 = 5 za seštevanje in 15-9 = 6 za odštevanje. Drug način vizualizacije preprostih algoritmov je v kuhinjskih receptih, saj opisujejo poseben in urejen postopek, na primer: "najprej morate polovico lonca vode postaviti za segrevanje, nato morate dodati kanček soli in na koncu poper bo razdeljen za pridobivanje semen in živcev. " Ta model predstavlja začetek, postopek in konec, ki v bistvu določajo algoritme.

Vrste algoritmov

Med različnimi vrstami algoritmov, ki obstajajo po vsem svetu, je poudarek na tistih, ki so razvrščeni po sistemu znakov, drugi pa glede na njihovo funkcijo. Algoritem je v bistvu najbolj znana rešitev za reševanje določenega problema in v skladu s svojimi strategijami in funkcijami obstajajo različne vrste le-teh, med katerimi so dinamične, povratne, surove sile, oportunistične, označevalne, naključno itd. Poleg omenjenih algoritmov obstaja še tisoč takih, ki so primerni za reševanje težav na katerem koli področju.

Glede na vaš sistem znakov

V tej kategoriji se nahajajo kvalitativni in kvantitativni.

  • Za kvalitativne algoritme je značilno, da imajo besedne elemente, primer tega so navodila ali priznani "korak za korakom", ki se podajo ustno, na primer recepti za kulinariko ali postopki za ročno delo.
  • Kvantitativni algoritmi so povsem nasprotni kvalitativnim zaradi prisotnosti določenih numeričnih elementov in uporabe matematike za izvajanje izračunov, na primer, ko najdemo kvadratni koren ali rešimo enačbe.

V tej klasifikaciji obstajajo tudi računski in neračunski algoritmi. Računalniške se izvajajo z računalnikom in so značilne tako, da so tako zapletene, da zahtevajo izvedbo stroja, poleg tega pa so kvantitativni algoritmi, ki jih je mogoče optimizirati. Neračunalniških ni treba izvajati na stroju ali računalniku; jasen primer tega je programiranje televizije.

Glede na svojo funkcijo

V tej klasifikaciji se nahajajo:

1. Označevanje algoritma

Za to je značilna uporaba avtomatizacije za skrbno določanje cen s poudarkom na dejavnikih, kot je vedenje uporabnikov, znana pa je tudi kot sposobnost samodejnega določanja cen za razvrednotenje komponent, da se poveča dobiček uporabnikov. prodajalci. Od začetka devetdesetih let je imel zelo pomembno vlogo v običajnih praksah letalske industrije.

Algoritem označevanja odlikuje ena najpogostejših praks v zelo konkurenčnih panogah, ki se nanaša na potovalne agencije ali tiste spletne ustanove. Ta vrsta algoritma je lahko izjemno zapletena ali razmeroma enostavna, saj je v mnogih primerih opaziti, da so optimizirani ali samouki s kontinuiteto določenih testov. Poleg vsega tega pa lahko tudi algoritmi označevanja postanejo nepriljubljeni med strankami, saj posamezniki ponavadi cenijo stabilnost in pravičnost.

2. Verjetnostni algoritmi

So tisti, pri katerih je način pridobivanja rezultatov odvisen od verjetnosti, ti pa so splošno znani kot naključni algoritmi.

V nekaterih aplikacijah je ravnanje s tovrstnimi operacijami običajno, na primer takrat, ko se sčasoma simulira vedenje katerega koli obstoječega ali zasnovanega sistema, v katerem se posledično dobi naključna rešitev. V drugih okoliščinah je problem, ki ga je treba rešiti, običajno determinističen, vendar obstaja možnost, da ga spremenimo v naključnega, da bi ga rešili z uporabo verjetnostnega algoritma. Pozitivno naključnega je, da njegova uporaba ne zahteva izpopolnjenih matematičnih študij.

Poleg tega v tej skupini obstajajo tri glavne vrste, ki so znane kot numerične, Monte Carlo in Las Vegas.

  • Numerični algoritmi lahko dajo približen rezultat problema in se običajno uporabljajo v inženirstvu.
  • Monte Carlo algoritmi lahko dajo pravo ali napačno rešitev in imajo določeno mejo napak in nazadnje.
  • Las Vegas algoritme odlikuje tako, da nikoli ne pustijo napačnega odgovora, v resnici najdejo pravilno rešitev ali pa vas preprosto obvestijo o morebitni napaki.

Dinamično programiranje se nanaša na metodo, pri kateri algoritem izračuna rezultate. Včasih so rešitve nekaterih elementov, ki imajo težave, odvisne od rezultatov drugih manjših težav. Da bi jih rešili, je treba za izračun najmanjših podproblemov ponovno izračunati enake vrednosti, vendar lahko to ustvari zapravljene cikle. Da bi to odpravili, lahko uporabimo dinamično programiranje in v tem primeru si zapomnimo rešitev vsakega podproblema, da uporabimo isto vrednost, namesto da bi jo večkrat ponovili.

3. Hevristični algoritmi

Odlikujejo jih iskanje rešitev in kljub temu ne zagotavljajo, da bodo najdeni najboljši odgovori, zato jih lahko štejemo za približne algoritme. Te lahko uporabimo, kadar je iskanje rešitve po običajni poti nemogoče. Hevristika zagotavlja uporabe, ki bodo razložene v nadaljevanju. Pri načrtovanju se uporabljajo za razporejanje dejavnosti v kratkem času, pri načrtovanju se uporabljajo za razmejitev električnih ali digitalnih sistemov, pri simulaciji pa za preverjanje nekaterih postopkov.

4. Algoritmi povratnega sledenja

Znane so kot rekurzivne strategije, ki rešujejo probleme, kot so uganke, labirinti ali podobni deli, pri katerih se poglobi iskanje, da bi našli možno rešitev. Njegovo ime se nanaša na dejstvo, da se pri poizvedbah za iskanje rezultata vedno vrne na prejšnjo točko, da bi lahko preizkusil alternative. Običajno jih prekličejo, da bi opazili njihov vpliv na gospodarstvo, trge, označevanje cen, nekatere dejavnosti in celo družbo samo.

5. Pohlepni algoritem

Znan je kot uničevalec ali sladkosned in je uporaben pri optimizacijskih težavah. V vsakem koraku tega algoritma je logična in optimalna izbira, da dobimo najboljše globalne rešitve. Vendar je treba upoštevati, da po sprejetju sodbe v prihodnosti ni mogoče popolnoma ničesar popraviti ali spremeniti. Ta operacija ima to ime, ker je v vsakem koraku izbrana najboljša frakcija, ki je sposobna "pogoltniti", ne da bi skrbela, kaj se bo zgodilo kasneje.

Lastnosti algoritma

Različni avtorji so poskušali z uporabo matematičnih modelov na formalni način opredeliti algoritme. Vendar so ti primerki tesno povezani s posebno vrsto informacij, ki vključujejo številke, simbole in nekaj grafov, medtem ko delujejo na veliki količini distribucije podatkov. Na splošno je skupno sodelovanje vsake od opredelitev povzeto v naslednjih treh lastnostih:

Izjava o težavi

Reševanje težav s pomočjo računalnika lahko sestavlja postopek, v katerem je problem opisan in je dovoljeno razviti program, ki ga lahko reši. Ta postopek zahteva analizo problema, zasnovo algoritma in njegovo pretvorbo v program, pa tudi njegovo delovanje in preverjanje. Prva dva koraka sta v tem postopku najbolj zapletena, toda ko ste težavo preučili in dobili algoritem, ki jo lahko reši, vaša naloga temelji predvsem na prevajanju v želeni programski jezik.

Analiza splošne rešitve

Ko je problem opredeljen, je čas, da analiziramo naslednje:

  • Informacije o vstopnicah, ki so nam ponujajo.
  • Želeni rezultati.
  • Področje dela, izjave ali drugi potrebni elementi.

Analiza algoritmov je znana kot najpomembnejši del širše teorije računske kompleksnosti, saj ponuja teoretične izračune za vire, ki jih kateri koli algoritem potrebuje za reševanje danega računskega problema. Pri izvajanju teoretične preiskave je običajno izračunati njene zaplete v asimptotičnem smislu, da dobimo dovolj veliko vhodno velikost. V ta namen se uporablja asimptotična zgornja meja, skupaj z zapisi theta in omega, pri čemer je treba opozoriti, da je neasimptotični ukrep mogoče računalniško podati.

Natančni ukrepi učinkovitosti so resnično koristni za tiste, ki algoritme dejansko uporabljajo, saj imajo večjo natančnost, kar jim omogoča, da določijo, koliko časa bo potrebno za izvedbo. Za nekatere posameznike, kot so ustvarjalci video iger, lahko skrita konstanta pomeni veliko razliko med uspehom in neuspehom. Časovne ocene so lahko odvisne od tega, kako je določen določen korak opredeljen in da bo analiza smiselna, mora biti zagotovljeno, da je čas izrazito omejen s konstanto.

Izdelava algoritma

Za razvoj operacije je pomembno, da se izvede vrsta postopkov, ki ustrezajo rešitvi problema samega. Za začetek je treba izvesti predhodno analizo težave, ki se izvede s študijo, ki dokaže resnično delovanje problema, še preden se izvede kateri koli algoritem. Zato se ovrednoti opredelitev zahtev, v tem koraku morate imeti jasno predstavo, katere probleme morate rešiti, naj bo to vsota dveh števil, vrstni red seznama številk itd.

Kasneje se izvede ustrezna identifikacija modulov, saj je od nje odvisna pravilna izvedba algoritmov, ki zagotavljajo možne rešitve zgoraj opredeljenih zahtev.

Na koncu je izračun izveden v programskem jeziku, ki je računalniku razumljiv, tako da lahko razume navodila, ki jih oblikuje, in jih tako lahko izvede, da doseže pričakovani rezultat. V tem zadnjem postopku lahko že govorimo o programu, ki je sestavljen iz vrste navodil, ki se uredijo eno za drugo in jim uspe rešiti ustaljene zahteve.

Pomembno je omeniti, da algoritmi v zaporednem času opravljajo svojo funkcijo v diskretiziranem času in skušajo opredeliti zaporedja računskih stanj v vsakem vhodu, ki velja za veljavnega. V abstraktnem stanju so te operacije samostojni elementi in se šteje, da lahko v njih prvotne strukture reda postanejo nespremenljive pod izomorfizmom. Pri omejenem raziskovanju se prehodi iz enega stanja v drugega popolnoma vzpostavijo s trajno in končno razlago, v kateri se med enim in drugim upošteva le omejeno število izrazov trenutnega stanja.

Prav tako ne smemo spregledati, da so algoritmi običajno izraženi s programskimi jeziki "psevdo-kode" običajnega jezika in celo dobro znanih diagramov poteka. Prav tako je pomembno omeniti, da imajo algoritmi ključno vlogo pri računalništvu zaradi njihove predstavitve podatkov kot zaporedij bitov. Iz drugega zornega kota je program opredeljen kot algoritem, ki računalniku izraža tiste posebne korake, ki jih mora slediti za ustrezno izvajanje določenih dejavnosti. Po drugi strani pa učenje pisanja psevdokode olajša programiranje in bo zato razloženo kasneje.

Programski jeziki so znani kot formalni ali umetni jezik, ker imajo slovnična pravila, ki so dobro opredeljena, in ima možnost, da programerju omogoči tekstualizacijo vrste navodil ali zaporedij predpisov v obliki algoritmov z namenom za vzdrževanje nadzora nad fizičnim in logičnim vedenjem računalnika lahko na ta način dosežemo različne vrste informacij. Ta sklop zapovedi, napisanih skozi programski jezik, se imenuje program.

Programski jeziki so običajno sestavljeni iz nabora simbolov ter slovničnih in semantičnih pravil, ki opredeljujejo trenutne strukture jezika in njihov pomen. Z druge perspektive računalniški jeziki vključujejo tudi programske jezike, jasen primer tega je HTML, ki izpolnjuje določena navodila za izvajanje vsebine različnih dokumentov. Programski jezik lahko omogoča natančno specifikacijo tistih podatkov, ki jih mora upravljati posebna programska oprema v najrazličnejših okoliščinah.

Po drugi strani je psevdokoda algoritemski opisni jezik, ki uporablja osnovne konvencije resničnega programskega jezika, vendar je zasnovan za človeško branje namesto branja prek stroja in ohranja neodvisnost od katere koli druge programski jezik. Psevdo-koda prezre podrobnosti, ki se ne štejejo za bistvene za človekovo razumevanje algoritma, kot so kode sistema, deklaracije spremenljivk in celo nekatere podprograme. Na ta način se programski jezik želi dopolniti z natančnimi opisi v naravnem jeziku ali s kompaktnimi matematičnimi zapisi.