16Aug

Koji su računalni algoritmi i kako rade?

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

Izjava o odricanju odgovornosti: Nisam matematičar ili nastavnik računalnih znanosti, tako da nisu svi uvjeti koje upotrebljavam tehnički. To je zato što pokušavam objasniti sve 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 tvrtke 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 nazivom "Redak rascjepa u ledu" EDIT: uslužnost pokretača i slobodnog kotača)

Od START-a krenut ćete niz stazu, a ovisno o tome što se događa slijedite "protok" 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.

Grafikoni

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

Možemo ovo predstavljati kao niz točaka, a podaci ć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 spojiti ih na prethodnu točku. 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.

Druga metoda

Druga 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), [m1Varijabla 'm' predstavlja padini linije, 'x' predstavlja smjer u kojem se broji( x ili y) i 'h', x1, h1],. .., [mn, xn, hn](0, y, 3), [0, y, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [3, x, 1], [-3, x, 1], [-3, x, 1]}

isti grafikon. Možete vidjeti da su posljednja tri izraza u ovom izrazu ista, tako da ćemo možda to moći smanjiti tako da na neki način kažete "ponovi to tri puta". Recimo da kad god vidite varijablu 'R', pojavljuje se, to znači ponavljati zadnju stvar: možemo:

grafikon ={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2][2,5, x, 2], [-3, x, l], [R = 2]}

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

grafikon ={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5,], [-3, x, 3]}

To skraćuje stvari malo od mjesta na kojem su bile prije.

Metoda 3

Pokušajmo ovo drugo.

y = 0, 0≤y <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 imamo u čistom algebarskom izrazu. 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 datoteke

Kada preuzmete. zip datoteku, ekstrahirate sadržaj kako biste mogli koristiti bilo kojije unutar nje. 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 su prilagođeni i optimizirani specifično za vrste datoteka na koje 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 spasio prostor na disku, kao što su frekvencije obrezivanja 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!