Ce sunt algoritmii de computer și cum funcționează?

Publicat: 2022-01-29

Cu excepția cazului în care ești pasionat de matematică sau programare, cuvântul „algoritm” ar putea fi grecesc pentru tine, dar este unul dintre elementele de bază ale tot ceea ce folosești pentru a citi acest articol. Iată o explicație rapidă despre ceea ce sunt și cum funcționează.

Disclaimer: nu sunt profesor de matematică sau informatică, așa că nu toți termenii pe care îi folosesc sunt tehnici. Asta pentru că încerc să explic totul într-o engleză simplă, pentru că oamenii nu se simt prea confortabil cu matematica. Acestea fiind spuse, există ceva matematică implicată și asta este inevitabil. Tocilari de matematică, nu ezitați să corectați sau să explicați mai bine în comentarii, dar vă rog, păstrați-l simplu pentru cei neînclinați din punct de vedere matematic dintre noi.

Imagine de Ian Ruotsala

Ce este un algoritm?

Cuvântul „algoritm” are o etimologie similară cu „algebră”, cu excepția faptului că se referă la matematicianul arab însuși, al-Khwarizmi (doar o informație interesantă). Un algoritm, pentru cei care nu sunt programatori dintre noi, este un set de instrucțiuni care iau o intrare, A și oferă o ieșire, B, care modifică într-un fel datele implicate. Algoritmii au o mare varietate de aplicații. În matematică, ele pot ajuta la calcularea funcțiilor din puncte dintr-un set de date, printre lucruri mult mai avansate. Pe lângă utilizarea lor în programare în sine, ei joacă roluri majore în lucruri precum compresia fișierelor și criptarea datelor.

Un set de bază de instrucțiuni

Să presupunem că prietenul tău se întâlnește cu tine într-un magazin alimentar și îl îndrumezi către tine. Spui lucruri precum „intră pe ușile din dreapta”, „treci secțiunea de pește din stânga” și „dacă vezi laptele, ai trecut pe lângă mine”. Algoritmii funcționează așa. Putem folosi o diagramă pentru a ilustra instrucțiunile bazate pe criterii pe care le cunoaștem dinainte sau pe care le aflăm în timpul procesului.

(imaginea intitulată „Icebreaking Routine” EDIT: prin amabilitatea Trigger și Freewheel)

Publicitate

De la START, ați merge pe cale și, în funcție de ceea ce se întâmplă, urmați „fluxul” până la un rezultat final. Diagramele de flux sunt instrumente vizuale care pot reprezenta mai înțeles un set de instrucțiuni utilizate de computere. În mod similar, algoritmii ajută la același lucru cu mai multe modele bazate pe matematică.

Grafice

Să folosim un grafic pentru a ilustra diferitele moduri în care putem da direcții.

Putem exprima acest grafic ca o conexiune între toate punctele sale. Pentru a reproduce această imagine, putem da un set de instrucțiuni altcuiva.

Metoda 1

Putem reprezenta aceasta ca o serie de puncte, iar informația ar urma forma standard de grafic = {(x1, y1), (x2, y2), …, (xn, yn)}.

grafic = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1) }

Este destul de ușor să trasezi fiecare punct, unul după altul, și să le conectezi la punctul anterior. Cu toate acestea, imaginați-vă un grafic cu o mie de puncte sau mai multe segmente care merg în toate direcțiile. Lista aia ar avea multe date, nu? Și apoi a trebui să le conectezi pe fiecare, pe rând, poate fi o durere.

Metoda 2

Un alt lucru pe care îl putem face este să dăm un punct de pornire, panta dreptei dintre acesta și următorul punct și să indicăm unde să ne așteptăm la următorul punct folosind forma standard graph={(punctul de pornire}, [m1, x1, h1 ], …, [mn, xn, hn]}. Aici, variabila „m” reprezintă panta dreptei, „x” reprezintă direcția în care trebuie numărată (fie x sau y), iar „h” vă spune cum multe pentru a număra în direcția menționată. Vă puteți aminti, de asemenea, să trasați un punct după fiecare mișcare.

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

Publicitate

Veți ajunge cu același grafic. Puteți vedea că ultimii trei termeni din această expresie sunt aceiași, așa că s-ar putea să-l reducem doar spunând „repetați de trei ori” într-un fel. Să presupunem că ori de câte ori vezi variabila „R”, înseamnă să repeți ultimul lucru. Noi putem sa facem asta:

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

Ce se întâmplă dacă punctele individuale nu contează cu adevărat și doar graficul în sine contează? Putem consolida aceste ultime trei secțiuni astfel:

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

Scurtează puțin lucrurile față de locul în care erau înainte.

Metoda 3

Să încercăm să facem asta în alt mod.

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

Aici îl avem în termeni algebrici puri. Încă o dată, dacă punctele în sine nu contează și doar graficul contează, putem consolida ultimii trei elemente.

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

Acum, ce metodă alegi depinde de abilitățile tale. Poate că ești grozav cu matematica și grafică, așa că alegi ultima opțiune. Poate că ești bun la navigare, așa că alegi a doua opțiune. În domeniul computerelor, totuși, faci multe tipuri diferite de sarcini și capacitatea computerului nu se schimbă cu adevărat. Prin urmare, algoritmii sunt optimizați pentru sarcinile pe care le completează.

Un alt punct important de remarcat este că fiecare metodă se bazează pe o cheie. Fiecare set de instrucțiuni este inutil dacă nu știi ce să faci cu ele. Dacă nu știți că ar trebui să trasați fiecare punct și să conectați punctele, primul set de puncte nu înseamnă nimic. Dacă nu știți ce înseamnă fiecare variabilă în a doua metodă, nu veți ști cum să le aplicați, la fel ca cheia unui cifr. Acea cheie este, de asemenea, o parte integrantă a utilizării algoritmilor și, adesea, acea cheie se găsește în comunitate sau printr-un „standard”.

Comprimarea fișierelor

Când descărcați un fișier .zip, extrageți conținutul astfel încât să puteți utiliza orice se află în interiorul acestuia. În zilele noastre, majoritatea sistemelor de operare se pot scufunda în fișiere .zip ca și cum ar fi foldere normale, făcând totul în fundal. Pe mașina mea cu Windows 95 în urmă cu peste un deceniu, a trebuit să extrag totul manual înainte de a putea vedea ceva mai mult decât numele fișierelor din interior. Asta pentru că ceea ce a fost stocat pe disc ca fișier .zip nu era într-o formă utilizabilă. Gândiți-vă la o canapea extensibilă. Când vrei să-l folosești pe post de pat, trebuie să scoți pernele și să o desfaci, ceea ce ocupă mai mult spațiu. Când nu aveți nevoie de el sau doriți să îl transportați, îl puteți plia înapoi.

Publicitate

Algoritmii de compresie sunt ajustați și optimizați special pentru tipurile de fișiere către care sunt vizați. Formatele audio, de exemplu, folosesc fiecare un mod diferit de stocare a datelor care, atunci când sunt decodificate de codecul audio, vor oferi un fișier de sunet similar cu forma de undă originală. Pentru mai multe informații despre aceste diferențe, consultați articolul nostru anterior, Care sunt diferențele dintre toate aceste formate audio? Formatele audio fără pierderi și fișierele .zip au un lucru în comun: ambele furnizează datele originale în forma sa exactă după procesul de decompresie. Codecurile audio cu pierderi folosesc alte mijloace pentru a economisi spațiu pe disc, cum ar fi tăierea frecvențelor care nu pot fi auzite de urechea umană și netezirea formei de undă în secțiuni pentru a scăpa de unele detalii. În cele din urmă, deși s-ar putea să nu putem auzi cu adevărat diferența dintre o piesă MP3 și o piesă CD, cu siguranță există un deficit de informații în prima.

Criptarea datelor

Algoritmii sunt utilizați și la securizarea datelor sau a liniilor de comunicație. În loc să stocheze datele astfel încât să utilizeze mai puțin spațiu pe disc, acestea sunt stocate într-un mod care nu poate fi detectat de alte programe. Dacă cineva vă fură hard diskul și începe să îl scaneze, poate prelua date chiar și atunci când ștergeți fișiere, deoarece datele în sine sunt încă acolo, chiar dacă locația de redirecționare către acesta a dispărut. Când datele sunt criptate, orice este stocat nu arată ca ceea ce este. De obicei, pare aleatoriu, ca și cum fragmentarea s-ar fi acumulat în timp. De asemenea, puteți stoca date și le puteți face să apară ca un alt tip de fișier. Fișierele imagine și fișierele muzicale sunt bune pentru acest lucru, deoarece pot fi destul de mari fără a atrage bănuieli, de exemplu. Toate acestea se realizează folosind algoritmi matematici, care preiau un fel de intrare și o convertesc într-un alt tip de ieșire foarte specific. Pentru mai multe informații despre cum funcționează criptarea, consultați HTG Explains: Ce este criptarea și cum funcționează?


Algoritmii sunt instrumente matematice care oferă o varietate de utilizări în informatică. Aceștia lucrează pentru a oferi o cale între un punct de început și un punct de sfârșit într-un mod consecvent și oferă instrucțiuni pentru a o urma. Știți mai multe decât ceea ce am evidențiat? Împărtășește-ți explicațiile în comentarii!