Svi smo čuli za njega, ali da li svi znamo šta je algoritam

.
Svijet računarstva pun je nekih novih, aktuelnih riječi: vještačka inteligencija, superračunari, mašinsko učenje, kvantni računari. Ipak, među njima se jedna posebno ističe – algoritam.

U najopštijem smislu, algoritam je niz uputstava koji govori računaru kako da sakup činjenica o stvarnom svijetu pretvori u korisnu informaciju. Ove činjenice predstavljaju podatke, a korisna informacija može biti neko saznanje za ljude, za računar niz naredbi, ili ulazne vrijednosti za neki drugi algoritam.

Postoje algoritmi za rješavanje najrazličitijih problema, od sortiranja niza brojeva, preko pronalaženja najkraćeg puta između dvije tačke na mapi, do prikazivanja informacije na ekranu.

Da bismo što jasnije razumjeli način funkcionisanja algoritma, najlakše je krenuti od, recimo, izbora šta ćemo obući prije odlaska na posao. Većina ljudi to radi bez razmišljanja, ali ako bismo pokušali ovaj proces da razložimo tako da ga objasnimo petogodišnjaku, dobili bismo niz uputstava koji bi predstavljao “algoritam za oblačenje”.

Ulazne vrijednosti

Ulazne vrijednosti za računar predstavljaju informacije koje mu trebaju za donošenje odluka.

Kada se oblačite ujutru, koje su vam informacije potrebne? Prije svega, bilo bi poželjno da znate koja odjeća vam stoji na raspolaganju. Onda bi bilo dobro razmotriti koja je temperatura, vremenska prognoza ili godišnje doba, pa na kraju uračunati i neke lične afinitete.

Sve se ovo može predstaviti u obliku podataka, skupa brojeva i jednostavnih riječi. Na primjer, temperatura se može predstaviti brojem, a vremenska prognoza jednom riječju, na primjer, “kišovito” ili “sunčano”.

Obrada podataka

Sada dolazimo do glavnog dijela algoritma – izračunavanje. Izračunavanja u okviru algoritma podrazumijevaju aritmetičke operacije, donošenje odluka i ponavljanje akcija.

Kako bi ovo izgledalo u slučaju oblačenja? Odluke se donose nekakvom matematičkom obradom naših ulaznih vrijednosti. Od temperature će zavisiti da li ćete obući jaknu, a od vremenske prognoze će zavisiti koja će to jakna biti.

Ovaj dio našeg algoritma za oblačenje bi u računaru možda izgledao ovako: “Ako je manje od 15 stepeni i pada kiša, obuci kišni mantil i majicu na duge rukave ispod”. Svaki komad odjeće koji smo odabrali moramo i da obučemo. Ovdje bismo se poslužili ponavljanjem akcija: na svaki odabrani komad odjeće bismo primijenili akciju “obuci”“.

Izlazne vrijednosti

Na samom kraju algoritma, moramo nekako da izrazimo odgovor koji smo dobili. Za računar su najčešće i ulazne i izlazne vrijednosti podaci. Ovo nam omogućava da nanižemo više algoritama jedan za drugim, da bismo dobili neki kompleksniji algoritam. Izlazna vrijednost može biti i neka akcija, na primjer ispis riječi na ekran, reprodukcija zvučnog signala, ili neki drugi oblik komunikacije.

“Izlazna vrijednost” našeg algoritma za oblačenje ste vi, spremni da se suočite s vremenskim prilikama napolju. Možda čak i odlučite da se pohvalite svojim stilom na Instagramu.

Mašinsko učenje

Ipak, neki problemi su suviše kompleksni da bismo mogli da ih riješimo nizom uputstava. Posebna strategija kojom se ovakvi problemi rješavaju naziva se mašinsko učenje. Algoritmi mašinskog učenja za “učenje” koriste veliku količinu primjera i odluka donesenih u prošlosti. Najčešće primjene ovakvih algoritama su sistemi za preporuke ili predviđanje.

U našem primjeru s oblačenjem, algoritam mašinskog učenja bi upamtio sve odjevne kombinacije koje ste birali u prošlosti, koliko vam je u njima bilo udobno i koliko ste bili zadovoljni njima, pa bi na osnovu toga birao sve bolje i bolje odjevne kombinacije.

Dakle, algoritam je proces koji računar koristi da bi ulazne podatke pretvorio u izlazne – jednostavan koncept koji nam omogućava korišćenje bezbroj uređaja.

Sljedeći put kada provjerite elektronsku poštu ili uzmete telefon u ruke, zapitajte se koji to sijaset malih algoritama se odvija u pozadini, savjetuje profesor Džori Deni.