Obrazovanje

Što je algoritam? »Njegova definicija i značenje

Sadržaj:

Anonim

U matematici, računalnim znanostima i ostalim srodnim doktrinama algoritam je definiran kao skup utvrđenih i nedvosmislenih propisa, koji se nalaze metodično i na ograničen način koji omogućuju izvršavanje proračuna, obradu određenih informacija, davanje rješenja za probleme i provođenje različitih aktivnosti.. Jednom kad krenete od početnog stanja i unosa, slijedeći tražene postupke, postiže se konačno stanje i dobiva se rezultat. Algoritmi su predmet istraživanja algoritma i iako mnogi možda ne vjeruju, oni se također mogu koristiti u svim aspektima svakodnevnog života.

Što je algoritam

Sadržaj

U računanju se obično definira kao niz uzastopnih uputa, u kojima se provode neki procesi kako bi se dali odgovori na određene odluke ili potrebe. Na isti se način algoritmi često koriste u logici i matematici, kao i osnova za razvoj korisničkih priručnika, ilustrativnih brošura, između ostalog. Jedan od najistaknutijih u matematici je onaj koji se pripisuje geometrijskim Euklidima, kako bi se postigao najveći zajednički djelitelj dvaju pozitivnih cijelih brojeva i dobro poznate "Gaussove metode" za određivanje sustava linearnih jednadžbi.

U odnosu na informatiku, ovaj izračun može biti poznat kao slijed smjernica koje treba slijediti za utvrđivanje problema korištenjem računala.

Stoga se algoritmi shvaćaju kao disciplina koja se fokusira na analizu i dizajn algoritama. Razmatrajući prvo, nastoji se ispitati svojstva kao što su njegova ispravnost i učinkovitost s obzirom na vrijeme i prostor, kako bi se razumjeli problemi koji se mogu algoritamski riješiti. Što se tiče druge, ona želi proučiti već uspostavljene paradigme i predlaže nove primjere.

Algoritam se nalazi u središtu napretka računanja i važan je u različitim područjima. Na taj bi način bilo nemoguće da tako uspješne usluge kao što su Facebook i Google obrađuju veličinu podataka koje imaju bez suradnje algoritama ili specijaliziranih struktura podataka. Međutim, u svakodnevnom životu također se koriste algoritmi, primjer za to je paljenje peći, jer ono započinje u trenutku kada osoba odlazi u kuhinju, promatra je i ima svoj kraj, kada nastavi da je pali.

Karakteristike algoritma

Iako je algoritam poznat kao uređeni i konačni skup različitih koraka koji vode do rješavanja problema, kaže se da priroda tih poteškoća varira ovisno o kontekstu u kojem se nalaze, na taj način postoje problemi kemijska, matematička, filozofska, između ostalih. Stoga se može reći da je njegova priroda različita i da njezino izvršavanje putem računala nije potrebno. Osim svega prethodno objašnjenog, algoritmi imaju svojstva koja su osnovna za određivanje onoga što su danas i bit će navedena u nastavku.

  • Smjernice sadržane u algoritmu moraju biti specifične kako bi se izbjeglo ostavljanje prostora za bilo koju vrstu zabune, to znači da se odgovarajuće upute moraju primjereno slijediti ili, naprotiv, grafički prikaz tijeka u koji se upisujete neće olakšati rješenje. ispravno.
  • Mora biti u savršenoj definiciji, trudeći se što više ga slijediti onoliko puta koliko je potrebno, kako bi se dobio isti rezultat, a u slučaju da se dogodi suprotno, algoritam neće biti pouzdan i neće služiti kao vodič pri donošenju odluke.
  • Poznati su po posebnosti konačnosti, obično završe u nekom trenutku, a kasnije daju rezultat na kraju svakog koraka. Ako se algoritam proteže unedogled, vraćajući se na neku početnu točku koja se nikada ne može riješiti, prisutna je paradoksalnost ili dobro poznata „petlja” ponavljanja.
  • Konačno, rečeno je da je čitljivost algoritama ključni element, jer ako je njegov argument nerazumljiv, odgovarajuće se upute ne mogu slijediti, osim toga, to podrazumijeva izravnu, jasnu i lakonsku formulaciju teksta koji se nalazi u svakom od njih.

Dijelovi algoritma

Svaka algoritamska operacija ima tri različita dijela koja su podvrgnuta osnovnoj strukturi sustava, a to su:

  • Ulaz: također se naziva zaglavljem ili početnom točkom, početna je uputa koja predstavlja genezu algoritma i onu koja motivira njegovo čitanje.
  • Proces: također se naziva deklaracija, to je precizna razrada koju algoritam nudi i u osnovi je trup svojih ključeva za formuliranje uputa.
  • Izlaz: u ovoj posljednjoj fazi nalaze se posebne upute određene algoritmom, na primjer, njegove naredbe ili rezolucije.

Primjeri algoritama

Uobičajeni primjeri matematičkih izračuna uključuju 2 + 3 = 5 za zbrajanje i 15-9 = 6 za oduzimanje. Drugi način vizualizacije jednostavnih algoritama su kuhinjski recepti, jer oni opisuju specifičan i uredan postupak, na primjer, „prvo morate staviti pola lonca vode da se zagrije, zatim dodajte prstohvat soli i na kraju paprika će se podijeliti kako bi se izvadilo sjeme i žile. " U ovom su modelu predstavljeni početak, proces i kraj koji su u osnovi ono što definira algoritme.

Vrste algoritma

Među različitim vrstama algoritama koji postoje u cijelom svijetu, naglasak je stavljen na one koji su klasificirani prema sustavu znakova, a drugi prema njihovoj funkciji. Algoritam je u osnovi najpoznatije rješenje za rješavanje bilo kojeg određenog problema i prema svojim strategijama i svojim funkcijama postoje različite vrste njih, među kojima su dinamička, obrnuta, gruba sila, oportunistička, obilježavanje, nasumično itd. Uz gore spomenute algoritme, postoje tisuće takvih koji su prikladni za rješavanje poteškoća u bilo kojem području.

Prema vašem znakovnom sustavu

Kvalitativni i kvantitativni nalaze se u ovoj kategoriji.

  • Kvalitativni algoritmi karakterizirani su verbalnim elementima, primjer toga su upute ili prepoznati "korak po korak" koji se daju usmeno, poput recepata za kulinarstvo ili postupaka za ručni rad.
  • Kvantitativni algoritmi potpuno su suprotni kvalitativnim, zbog prisutnosti određenih numeričkih elemenata i upotrebe matematike za izvođenje izračuna, na primjer, kada se pronađe kvadratni korijen ili se riješe jednadžbe.

Unutar ove klasifikacije nalaze se i računski i neračunski algoritmi. Računski se provode pomoću računala i karakteriziraju ih toliko složenost da zahtijeva izvođenje stroja, a uz to su kvantitativni algoritmi koji se mogu optimizirati. Oni koji nisu računski nemaju obvezu izvršenja pomoću stroja ili računala; jasan primjer za to je programiranje televizije.

Prema svojoj funkciji

Sljedeće se nalaze u ovoj klasifikaciji.

1. Algoritam označavanja

To karakterizira korištenje automatizacije za marljivo postavljanje cijena, usredotočujući se na čimbenike kao što je ponašanje korisnika, a poznata je i kao sposobnost automatskog određivanja cijena za obezvređivanje komponenata, kako bi se povećala dobit korisnika. prodavači. Od početka 1990-ih igrao je vrlo važnu ulogu u uobičajenoj praksi zrakoplovne industrije.

Algoritam označavanja razlikuje se po tome što je jedna od najčešćih praksi u visoko konkurentnim industrijama, a odnosi se na putničke agencije ili one mrežne ustanove. Ovakva vrsta algoritma može postati izuzetno složena ili relativno jednostavna, jer se u mnogim slučajevima primjećuje da su optimizirani ili samouki uz kontinuitet određenih testova. Osim svega toga, algoritmi označavanja također mogu postati nepopularni kod klijentele jer pojedinci teže i stabilnosti i poštenju.

2. Probabilistički algoritmi

To su oni na koje način na koji se dobivaju rezultati ovisi o vjerojatnostima, oni su obično poznati kao slučajni algoritmi.

U nekim je primjenama rukovanje ovom vrstom operacije uobičajeno, na primjer, kada se vremenom simulira ponašanje bilo kojeg postojećeg ili osmišljenog sustava, u kojem se kao posljedica dobije slučajno rješenje. U drugim okolnostima problem koji se mora riješiti obično je deterministički, ali postoji mogućnost pretvaranja u slučajni, kako bi se riješio primjenom algoritma vjerojatnosti. Pozitivna stvar kod slučajnih je što njihova primjena ne zahtijeva vrlo sofisticirane matematičke studije.

Osim toga, unutar ove skupine postoje tri glavna tipa koja su poznata kao numerička, Monte Carlo i Las Vegas.

  • Numerički algoritmi mogu dati približni rezultat problema i općenito se primjenjuju u inženjerstvu.
  • Monte Carlo algoritmi mogu dati ispravno ili pogrešno rješenje i na kraju imati određenu granicu pogreške.
  • Algoritmi Las Vegasa razlikuju se po tome što nikada ne ostavljaju netočan odgovor, zapravo pronalaze ispravno rješenje ili vas jednostavno obavještavaju o mogućem neuspjehu.

Dinamičko programiranje odnosi se na metodu u kojoj algoritam izračunava rezultate. Ponekad rješenja određenih elemenata koji imaju problema ovise o rezultatima drugih manjih problema. Dakle, za njihovo rješavanje moraju se preračunati iste vrijednosti kako bi se riješile najmanje potprobleme, međutim, to može stvoriti gubitak ciklusa. Da bi se to popravilo, može se koristiti dinamičko programiranje i u ovom se slučaju pamti rješenje svakog potproblema, da se koristi ista vrijednost umjesto da se ponovi nekoliko puta.

3. Heuristički algoritmi

Razlikuju se pronalaženjem rješenja, čak i ako ne garantiraju da će se pronaći najbolji odgovori, pa se iz tog razloga mogu smatrati približnim algoritmima. Oni se mogu koristiti kada se pronalaženje rješenja uobičajenim putem smatra nemogućim. Heuristika pruža uporabe koje će biti objašnjene u nastavku. U planiranju se koriste za planiranje aktivnosti u kratkom vremenskom razdoblju, u dizajnu se koriste za razgraničenje električnih ili digitalnih sustava, a u simulaciji za provjeru određenih postupaka.

4. Algoritmi povratka unatrag

Poznate su kao rekurzivne strategije koje rješavaju probleme poput zagonetki, lavirinta ili sličnih dijelova, u kojima se provodi dubinsko traženje mogućeg rješenja. Njegovo se ime odnosi na činjenicu da se u upitima za pronalaženje rezultata uvijek vraća na prethodnu točku kako bi mogao testirati alternative. Obično se opozivaju kako bi se uočio njihov utjecaj na gospodarstvo, tržište, označavanje cijena, određene operacije, pa čak i na samo društvo.

5. Pohlepni algoritam

Poznat je kao razarač ili slatki zub i primjenjiv je u optimizacijskim problemima, u svakom koraku ovog algoritma donosi se logičan i optimalan izbor da se na kraju dobiju najbolja globalna rješenja. Međutim, mora se uzeti u obzir da se nakon donošenja presude apsolutno ništa ne može učiniti da se ispravi ili promijeni u budućnosti. Ova operacija ima ovaj naziv jer se u svakom koraku bira najbolja frakcija koja je sposobna "progutati" bez brige o tome što će se kasnije dogoditi.

Svojstva algoritma

Razni autori pokušali su definirati algoritme na formalni način koristeći matematičke modele. Međutim, ti su uzorci usko povezani s osobitom vrstom informacija koja uključuje brojeve, simbole i neke grafikone, dok djeluju na velikoj količini distribucije podataka. Općenito, zajedničko sudjelovanje svake od definicija sažeto je u sljedeća tri svojstva:

Izjava o problemu

Rješavanje problema pomoću računala može se sastojati od procesa u kojem je problem opisan i dozvoljeno je razviti program sposoban za njegovo rješavanje. Ovaj postupak zahtijeva analizu problema, dizajn algoritma i njegovu transformaciju u program, kao i njegovu izvedbu i provjeru valjanosti. Prva su dva koraka najsloženija u ovom procesu, ali nakon što ste ispitali problem i dobili algoritam koji ga može riješiti, vaš se zadatak prvenstveno temelji na prevođenju u željeni programski jezik.

Analiza općeg rješenja

Kad se problem definira, vrijeme je da se analiziraju sljedeće:

  • Informacije o ulaznicama koje su nam pružaju.
  • Željeni rezultati.
  • Domena rada, izjave ili drugi potrebni elementi.

Analiza algoritama poznata je kao najvažniji dio šire teorije računske složenosti, jer pruža teoretske izračune za resurse koje bilo koji algoritam traži za rješavanje datog računalnog problema. Prilikom izvođenja teorijskog istraživanja uobičajeno je izračunavati njegove komplikacije u asimptotskom smislu da bi se dobila dovoljno velika ulazna veličina. U tu se svrhu koristi asimptotska gornja granica, zajedno s oznakama theta i omega, i treba imati na umu da se ne-asimptotska mjera može kompjuterizirati.

Precizne mjere učinkovitosti zaista su korisne za one koji zapravo koriste algoritme, jer imaju veću preciznost i to im omogućuje određivanje vremena koje će biti potrebno za izvršenje. Za neke pojedince, poput stvaratelja videoigara, skrivena konstanta može značiti veliku razliku između uspjeha i neuspjeha. Procjene vremena mogu ovisiti o tome kako je određeni korak definiran, a da bi analiza imala smisla mora se zajamčiti da je vrijeme izrazito ograničeno konstantom.

Razrada algoritma

Za provođenje razvoja operacije važno je provesti niz postupaka kako bi se udovoljilo rješenju samog problema. Za početak se mora provesti prethodna analiza poteškoće, a to se radi kroz studiju koja pokazuje istinsko funkcioniranje problema mnogo prije nego što se izvrši bilo koji algoritam. Stoga se procjenjuje definicija zahtjeva, u ovom koraku morate imati jasnu predstavu o problemima koje treba riješiti, bio to zbroj dva broja, poredak popisa brojeva itd.

Kasnije se izvršava odgovarajuća identifikacija modula, budući da o njoj ovisi ispravna implementacija algoritama kako bi se pružila moguća rješenja za gore identificirane zahtjeve.

Konačno, izračun se implementira u programski jezik koji je razumljiv računalu tako da može razumjeti upute koje modelira i tako ih moći izvršiti, postižući očekivani rezultat. U ovom posljednjem postupku već se može govoriti o programu koji se sastoji od niza uputa koje se nalažu jedna za drugom i uspijevaju riješiti utvrđene zahtjeve.

Važno je spomenuti da u sekvencijalnom vremenu algoritmi izvršavaju svoju funkciju u diskretiziranom vremenu i nastoje definirati nizove računskih stanja u svakom ulazu koji se smatra valjanim. U apstraktnom stanju, ove su operacije neovisni elementi i smatra se da u njima iskonske strukture reda mogu postati invarijantne pod izomorfizmom. U ograničenom istraživanju, prijelazi iz jednog stanja u drugo u potpunosti se uspostavljaju trajnim i konačnim objašnjenjem, u kojem se između jednog i sljedećeg stanja uzima u obzir samo ograničeni broj pojmova u trenutnom stanju.

Također se ne smije zanemariti da se algoritmi obično izražavaju kroz programske jezike "pseudo-kod", uobičajeni jezik, pa čak i dobro poznate dijagrame toka. Isto tako, važno je spomenuti da algoritmi igraju temeljnu ulogu u računanju zbog svoje reprezentacije podataka kao sekvenci bitova. Iz drugog ugla, program se definira kao algoritam koji računalu izražava one specifične korake koje mora slijediti da bi adekvatno provodio određene aktivnosti. S druge strane, učenje pisanja pseudokoda olakšava programiranje i stoga će biti objašnjeno kasnije.

Programski jezici poznati su kao formalni ili umjetni jezik, jer imaju dobro definirana gramatička pravila, a programeru pruža mogućnost tekstualizacije niza uputa ili sekvenci propisa u obliku algoritama u svrhu da bi se održala kontrola nad fizičkim i logičkim ponašanjem računala, na taj se način mogu doći do različitih vrsta informacija. Ovaj skup propisa napisanih pomoću programskog jezika označen je kao program.

Programski jezici obično se sastoje od skupa simbola i gramatičkih i semantičkih pravila koja definiraju trenutne strukture jezika i njihovo značenje. Iz druge perspektive, računalni jezici također uključuju programske jezike, jasan primjer za to je HTML, koji ispunjava određene upute za provođenje sadržaja različitih dokumenata. Programski jezik može omogućiti preciznu specifikaciju onih podataka kojima mora upravljati određeni softver u različitim mjerilima okolnosti.

S druge strane, pseudokod je algoritamski jezik opisa koji koristi elementarne konvencije stvarnog programskog jezika, ali koji je dizajniran za ljudsko čitanje umjesto čitanja kroz stroj, održavajući neovisnost od bilo koje druge vrste programski jezik. Pseudo-kôd zanemaruje detalje koji se ne smatraju bitnima za ljudsko razumijevanje algoritma, kao što su sistemski kodovi, deklaracije varijabli, pa čak i neke potprograme. Na taj se način programski jezik nastoji nadopuniti preciznim opisima u prirodnom jeziku ili kompaktnim matematičkim zapisima.