Lumea computerelor este plină de cuvinte cheie: inteligenţă artificială, supercomputer, învățare automată, cloud, computer cuantic și multe altele.

Un cuvânt este însă utilizat, în special, în tot ceea ce înseamnă calcul: algoritm.

În sensul cel mai general, un algoritm este o serie de instrucțiuni prin care computerul ştie cum să transforme un set de date despre lume în informații utile.

Informațiile utile sunt cunoștințe pentru oameni, instrucțiuni pentru mașini sau date de intrare pentru un alt algoritm. Printre exemplele obişnuite de algoritmi se numără sortarea seturilor de numere, găsirea rutelor prin hărți sau afișarea informațiilor pe un ecran.

Algoritm

Credit: Hill Street Studios/DigitalVision via Getty Images

Pentru a înţelege conceptul de algoritm, gândiţi-vă la ceva extrem de familiar: cum ne îmbrăcăm în fiecare dimineață.

Cum aţi putea descrie această activitate sau cum i-aţi spune unui copil de 5 ani ce înseamnă acest lucru?

Răspunsul la aceste întrebări, într-un mod detaliat, produce un algoritm.

Intrarea

Pentru un computer, intrarea reprezintă informația necesară pentru a lua decizii.

Atunci când ne îmbrăcăm dimineața, de ce informații avem nevoie?

Trebuie să știm mai întâi ce haine avem la dispoziție în dulap. Ulterior, putem lua în considerare care este temperatura ambiantă, prognoza meteo pentru ziua respectivă și poate unele preferințe personale.

Toate acestea pot fi reprezentate în date, care sunt în esență colecții simple de numere sau cuvinte. De exemplu, temperatura este un număr, iar prognoza meteo ar putea fi “ploaie” sau “soare”.

Transformarea

Urmează cea mai importantă parte a unui algoritm: calculul. Calculele implică aritmetică, luarea deciziilor și repetare.

Cum s-ar putea aplica acest lucru în cazul exemplului de mai sus?

Practic, luăm decizii făcând niște calcule asupra acelor date de intrare. Geaca pe care o îmbrăcăm poate depinde de temperatura ambiantă curentă şi de prognoza meteo a zilei.

În cazul unui computer, o parte din algoritmul nostru s-ar traduce astfel: “dacă temperatura de afară este sub 10 grade Celsius și plouă, atunci alege geaca de ploaie și o cămașă cu mâneci lungi pe care să o porți dedesubt”.

După alegerea hainelor, trebuie să ne îmbrăcăm. Aceasta este o parte cheie a algoritmului nostru. Pentru un computer o repetare poate fi exprimată sub formă “pentru fiecare piesă de îmbrăcăminte, îmbrac-o”.

Ieșirea

În cele din urmă, ultimul pas al unui algoritm este ieșirea, care exprimă răspunsul.

Pentru un computer, ieșirea este, de obicei, sub forma mai multor date, la fel ca intrarea. Aceasta le permite computerelor să lege algoritmi, într-un mod complex, pentru a produce mai mulți algoritmi.

Cu toate acestea, ieşirea poate implica și o prezentare de informații, cum ar fi, de exemplu, afişarea unor cuvinte pe un ecran, producerea unor sunete sau o altă formă de comunicare.

Învățarea automată

Uneori indicarea unui proces decizional este prea complicată.

O categorie specială de algoritmi, cunoscuţi sub numele de algoritmi de învățare automată, încearcă să “învețe” pe baza unui set de exemple de luare a deciziilor din trecut.

Învățarea automată este utilizată în special pentru recomandări, predicții sau căutarea informațiilor.

Pentru exemplul nostru privind cum ne îmbrăcăm, un algoritm de învățare automată ar fi echivalentul amintirii deciziilor noastre anterioare despre ce am purtat (știind cât de confortabil ne-am simțit cu fiecare articol de îmbrăcăminte în parte) și folosirea acestor informații pentru a ne îmbunătăți alegerile viitoare.

În concluzie, un algoritm este procesul pe care îl folosește un computer pentru a transforma datele de intrare în date de ieșire. Este un concept simplu și, totuși, fiecare tehnologie din prezent implică utilizarea a numeroşi algoritmi.

Poate că data viitoare când folosiţi telefonul, vizionaţi un film de la Hollywood sau vă verificaţi e-mail-ul, veţi încerca să intuiţi cât de complecşi sunt algoritmii implicaţi în aceste activităţi.

Traducere şi adaptare după What is an algorithm? How computers know what to do with data