Cum arată un algoritm?

Cum arată un algoritm?

⌛ Reading Time: 5 minutes

Știm că Facebook, Google și Amazon au algoritmi care ne oferă actualizări, rezultate ale căutării și recomandări de produse, dar ce înseamnă asta de fapt? Ce se califică ca algoritm? Poți scrie unul? Cum ar arăta dacă ai face-o? Întrucât rulează atât de multe părți din viața noastră de zi cu zi, este important să avem un sentiment de bază despre ceea ce se întâmplă exact sub capotă – și nu este chiar atât de intimidant pe cât pare deseori.

Definiție informală: algoritmii sunt doar rețete

Cel mai de bază, un algoritm este pur și simplu un set de pași bine definiți pe care îi puteți urma, luând în general unele intrări și producând un set diferit de ieșiri. O rețetă de cupcake poate fi un algoritm. La fel și indicațiile către casa unui prieten, redarea unei piese de muzică sau procesul de căutare a unui cuvânt într-un dicționar. Raymond Queneau a tipărit chiar și o carte de zece sonete cu linii care pot fi amestecate și asortate perfect pentru a crea 100.000.000.000 de poezii originale. Modul în care acești algoritmi sunt implementați variază foarte mult, dar nu este necesar să fiți familiarizați cu limbaje de programare pentru a înțelege logica de bază din spatele lor. De exemplu, următorul este un algoritm pentru a da indicații de mers pe jos simple.

  1. După ce ieșiți din ușă, virați la dreapta.
  2. Mergeți pe drum până ajungeți pe Market Street
  3. Când ajungeți pe Market Street, faceți dreapta.
  4. Mergeți drept până vedeți o clădire din cărămidă.
  5. Intră pe ușa din față.

Acesta este un algoritm foarte simplu, care folosește o mulțime de intrări pe care oamenii le pot procesa cu ușurință; știm deja despre mers, străzi, materiale, intrare și toate celelalte lucruri. Dacă am crea un algoritm direcțional pentru un robot, ar trebui să fie mult mai lung și mai specific, ceea ce face ca mulți algoritmi să pară atât de confuzi pentru oameni.

Mai formal: algoritmii sunt formule clare, fără ambiguități

algoritmi-rapid

Un algoritm pe care probabil îl folosiți în fiecare zi este algoritmul Google PageRank, care analizează sute de factori despre o pagină web, îi rulează prin formula sa și îi atribuie un scor. Rezultatele căutării pe care le vedeți ca răspuns la termenul dvs. de căutare sunt rezultatul direct al acestui scor. Funcționează atât de bine, deoarece urmează un set clar de reguli care îi spun ce să caute, ce să ignore și ce să facă cu informațiile pe care le găsește.

Pentru a vizualiza un proces de căutare foarte simplu, iată un algoritm de căutare liniară care caută numărul 3 într-o listă de numere.

listă = [1, 3, 5]

  1. Verificați fiecare element din listă.
  2. De îndată ce unul dintre elemente este egal cu trei, reveniți la poziția sa.
  3. Dacă trei nu este în listă, reveniți „Trei nu este în listă!”

Urmând acești pași, computerul se va uita la primul număr, care este unul. Deoarece nu este egal cu trei, trece mai departe și verifică numărul următor. Deoarece acel număr este trei, acesta returnează ceva de genul „Numărul trei este al doilea element din listă”.

În codul Python, un algoritm de sortare liniar ar arăta ca următoarea imagine.

algoritmi-căutare liniară

algoritmi-ieșire-liniară

Tot ceea ce face acest cod este să ia o listă de numere, să privească fiecare element din listă și să verifice dacă se potrivește cu termenul de căutare. Dacă nimic nu face, se întoarce doar „Fals”. Acesta este un algoritm extrem de simplu, dar indiferent dacă este vorba de o linie de cod sau de un milion, fiecare algoritm existent funcționează pe același principiu de bază: preluați informații, procesați-le conform unor logici prestabilite și obțineți rezultate.

Algoritmi de zi cu zi

Majoritatea algoritmilor care ne conduc de fapt viața de zi cu zi nu sunt open source. Nu știm exact cum determină Google ce rezultate de căutare să afișeze sau cum Facebook pune la dispoziție fluxul dvs. de știri, dar putem vedea în continuare rezultatele acestor calcule. Cu toate acestea, acestea sunt importante și avem o idee destul de bună despre logica de bază din spatele lor.

algoritmi-pagerank

  • Google PageRank funcționează examinând numărul și calitatea linkurilor care duc către și de la o pagină web, deși există un număr mare de criterii secrete care sunt actualizate în mod constant pentru a îmbunătăți rezultatele și a împiedica pe oricine să joace sistemul.
  • Fluxul de știri Facebook măsoară forța relației cu oamenii și grupurile pe baza activității dvs., apoi folosește acești factori și alți factori pentru a vă genera fluxul de știri.
  • Amazon și Netflix utilizați algoritmi de recomandare care analizează datele utilizatorilor, aflați lucrurile pe care ar putea să le dorească fiecare utilizator și arătați-le utilizatorului aceste lucruri.
  • Sistemul ORION al UPS este un imens (1000+ pagini!), Dar poate calcula cea mai eficientă rută pentru orice livrare, luând în considerare tot felul de date în timp real și parametrii operaționali, cum ar fi ferestrele de livrare solicitate.
  • Aplicații de inteligență artificială cum ar fi mașinile cu conducere automată, recunoașterea facială, procesarea limbajului natural, analiza predictivă și multe altele se bazează pe algoritmi care pot prelua date vizuale, audio sau digitale, pot afla ce se întâmplă și pot obține rezultate adecvate.
  • Publicitate algoritmii sunt peste tot. În timp ce oamenii sunt cei care vin cu anunțurile pe care le vedeți, este un algoritm care decide în cele din urmă dacă sunteți publicul potrivit.

Totul este un algoritm

Odată ce știi cum arată un algoritm, nu poți înceta să-i observi. Nu sunt doar în tehnologia noastră, ci, la urma urmei, sunt în creierul nostru. Tot ceea ce facem este rezultatul primirii intrărilor, procesării acestora și producerii de ieșiri. Majoritatea acestor procese sunt stocate într-o cutie neagră rearanjată constant, dar sunt acolo, în culise, ajutându-ne să ne plimbăm, să înțelegem limbajul și să luăm decizii cu privire la lucruri. Oamenii sunt pregătiți să înțeleagă algoritmii la un nivel instinctual, așa că, chiar dacă algoritmii computerului sunt scrise în matematică și cod indescifrabile, toți pot fi traduși în termeni pe care îi înțelegem.

Credit de imagine: Imagine setată de Mandelbrot, Site-uri web interconectate pentru a ilustra PageRank, CTP TheoryOfComputation Căutare liniară, Barele de culori ale algoritmului de sortare a shell-urilor