If-Koubou

Koji su računalni algoritmi i kako rade?

Koji su računalni algoritmi i kako rade? (Kako da)

Osim ako ste u matematici ili programiranju, riječ "algoritam" možda je grčki za vas, ali to je jedan od sastavnih dijelova svega što upotrebljavate za čitanje ovog članka. Evo kratkog objašnjenja o tome što su i kako rade.

Odricanje od odgovornosti: Nisam matematičar ili nastavnik računalnih znanosti, tako da nisu svi uvjeti koje upotrebljavam tehnički. To je zato što pokušavam sve objasniti na običnom engleskom jeziku jer ljudi nisu baš zadovoljni matematikom. To se, rekao je, ima neke matematike uključeni, i to je neizbježan. Math geeks, slobodno ispravite ili bolje objašnjavajte u komentarima, ali molimo vas, držite ga jednostavnim za matematički nesputane među nama.

Slika od Ian Ruotsala

Što je algoritam?

Riječ 'algoritam' ima etimologiju sličnu 'algebri', osim što se to odnosi na samog arapskog matematičara, al-Khwarizmi (samo zanimljiva predodžba). Algoritam, za one koji nisu programeri među nama, skup je instrukcija koje uzimaju input A, i daju izlaz B, koji mijenja podatke na neki način. Algoritmi imaju široku paletu aplikacija. U matematici mogu pomoći izračunati funkcije iz točaka u skupu podataka, među mnogo naprednijim stvarima. Osim njihove upotrebe u samom programiranju, oni igraju glavne uloge u stvarima kao što su kompresija datoteka i enkripcija podataka.

Osnovni set uputa

Recimo da vas se vaš prijatelj susreće u trgovini, a vi ga usmjeravate prema vama. Kažeš stvari poput "ulazeći kroz desnu stranu vrata", "prenesite dio ribe na lijevoj strani" i "ako vidite mliječne proizvode, prošao si mi". Algoritmi tako funkcioniraju. Pomoću dijagrama toka možemo ilustrirati upute na temelju kriterija koje znamo ispred vremena ili saznati tijekom procesa.

(slika pod naslovom "Linija rutina" EDIT: ljubaznošću Trigger i Freewheel)

Od START-a, krenuli bi niz stazu, a ovisno o tome što se događa slijedite "tok" do krajnjeg rezultata. Dijagrami dijagrama su vizualni alati koji mogu razumljivo predstavljati skup uputa koje koriste računala. Slično tome, algoritmi pomažu u istom postupanju s više matematičkih modela.

grafovi

Koristimo grafikon kako bismo ilustrirali različite načine na koje možemo dati upute.

Ovaj grafikon možemo izraziti kao veza između svih njegovih točaka. Da bismo reproducirali tu sliku, možemo dati niz uputa nekome drugome.

Metoda 1

To možemo predstavljati kao niz točaka, a informacije će pratiti standardni oblik grafikona = (x1, y1), (x2, y2), ..., (xn, yn).

grafikon = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

Prilično je lako zapisati svaku točku, jednu za drugom, i povezati ih s prethodnom točkom. Međutim, zamislite grafikon s tisuću bodova ili više segmenata koji idu na svaki način. Taj popis bi imao puno podataka, zar ne? A onda mora povezati svaki, jedan po jedan, može biti bol.

Metoda 2

Još jedna stvar koju možemo učiniti je dati polaznu točku, padine linije između njega i sljedeće točke i naznačiti gdje se očekuje sljedeća točka pomoću standardnog oblika grafikona = (početna točka), [m1, x1, h1 ], ..., [mn, xn, hn] Ovdje varijabla 'm' predstavlja padinu linije, 'x' predstavlja smjer za brojenje (x ili y), a 'h' mnogi se mogu računati u navedenom smjeru. Također se možete sjetiti da ste sakupili točku nakon svakog pokreta.

(1, x, 2), [2,5, x, 2], [3, x, 1], [ [3, x, 1], [3, x, 1]

Na kraju ćete imati isti grafikon. Možete vidjeti da su posljednja tri izraza u ovom izrazu ista, pa bismo mogli na neki način smanjiti taj iznos samo tako da "na taj način ponovimo tri puta". Recimo da kad god se pojavi varijabla 'R', to znači ponoviti posljednju stvar. Mi to možemo:

(1, x, 2), [2,5, x, 2], [3, x, 1], [ [R = 2]

Što ako pojedinačne točke ne zanima, i to samo grafikon? Možemo objediniti ta tri zadnja dijela:

(1, x, 2), [2,5, x, 2], [3, x, 3]

To skraćuje stvari malo od mjesta gdje su prije.

Metoda 3

Pokušajmo ovo drugo.

y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5 <x <7
y = -3x + 29, 7≤x≤8
y = -3x + 29, 8≤x≤9
y = -3x + 29, 9 <x <10

Ovdje ga imamo u čistim algebarskim terminima. Još jednom, ako same točke ne znače, a samo grafikon, možemo utvrditi posljednje tri stavke.

y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5 <x <7
y = -3x + 29, 7≤x≤10

Sada, koja metoda koju odaberete ovisi o vašim sposobnostima. Možda ste sjajni s matematikom i grafičkim prikazom, tako da odaberete posljednju opciju. Možda ste dobri u navigaciji, tako da odaberete drugu opciju. U području računala, međutim, radite mnogo različitih vrsta zadataka i sposobnost računala se zapravo ne mijenja. Stoga su algoritmi optimizirani za zadatke koje su završili.

Još jedna važna točka u obzir je da se svaka metoda oslanja na ključ. Svaki skup uputa je beskoristan ako ne znate što učiniti s njima. Ako ne znate da morate crtati svaku točku i povezati točke, prvi skup točaka ne znači ništa. Ako ne znate što svaka varijabla znači u drugoj metodi, nećete znati kako ih primijeniti, baš kao i ključ za šifriranje.Taj ključ je također sastavni dio upotrebe algoritama, a često se taj ključ nalazi u zajednici ili putem "standarda".

Sažimanje datoteka

Kada preuzmete .zip datoteku, izvučete sadržaj kako biste mogli koristiti sve što je unutar njega. Danas, većina operacijskih sustava može zaroniti u .zip datoteke kao da su bile normalne mape, čineći sve u pozadini. Na moj Windows 95 stroj prije više od deset godina, morala sam izdvojiti sve ručno prije nego što sam mogao vidjeti nešto više od naziva datoteka unutar. To je zato što ono što je pohranjeno na disku kao .zip datoteku nije bilo korisno. Razmislite o kauču za izvlačenje. Kada ga želite koristiti kao krevet, morate ukloniti jastuke i razviti ih, što zauzima više prostora. Kada ga ne trebate, ili ga želite premjestiti, možete ga kopirati natrag.

Algoritmi kompresije prilagođeni su i optimizirani specifično za vrste datoteka kojima su ciljani. Audio formati, na primjer, svaki koriste drugačiji način pohranjivanja podataka koji će, kod dekodiranja audio kodekom, dati zvučnu datoteku sličnu izvornom valnom obliku. Za više informacija o tim razlikama, pogledajte naš prethodni članak, Koje su razlike između svih tih audio formata? Lossless audio formate i .zip datoteke imaju jednu zajedničku stvar: oni oba daju izvorne podatke u svom točnom obliku nakon procesa dekompresije. Lossy audio kodek koristi druge načine kako bi se spasio prostor na disku, kao što su frekvencije rezanja koje se ne mogu čuti ljudskim ušima i izglađivanje valnog oblika u odjeljcima kako bi se oslobodili pojedinosti. Na kraju, a mi možda nećemo moći stvarno čuti razliku između MP3 i CD pjesme, definitivno postoji manjak informacija u prvom.

Šifriranje podataka

Algoritmi se također koriste pri osiguranju podataka ili komunikacijskih linija. Umjesto da pohranjuje podatke tako da koristi manje prostora na disku, pohranjuje se na način koji se ne može detektirati drugim programima. Ako netko krade vaš hard disk i počne ga skenirati, mogu podići podatke čak i kada izbrišete datoteke jer su podaci i dalje prisutni, iako je mjesto za prosljeđivanje do njega nestalo. Kada su podaci kriptirani, sve što se pohranjuje ne izgleda kao što je. Obično izgleda slučajno, kao da se s vremenom nakupila fragmentacija. Također možete pohraniti podatke i učiniti je pojavljivati ​​kao drugu vrstu datoteke. Slikovne datoteke i glazbene datoteke su dobre za to, jer mogu biti prilično velike, bez sumnje, na primjer. Sve je to učinjeno pomoću matematičkih algoritama, koji uzimaju neku vrstu unosa i pretvaraju ga u drugu, vrlo specifičnu vrstu izlaza. Više informacija o načinu na koji šifriranje funkcionira potražite na HTG objašnjenjima: Što je šifriranje i kako funkcionira?

Algoritmi su matematički alati koji pružaju različite primjene u računalnoj znanosti. Oni rade na dosljednom putu između početne točke i krajnje točke i daju upute da ga prate. Znati više od onoga što smo istaknuli? Podijelite svoja objašnjenja u komentarima!