Algoritmi - Reprezentarea Algoritmilor

Previzualizare laborator:

Extras din laborator:

1. Algoritmi

Noţiunea de algoritm este fundamentală în informatică (aşa cum este în

matematică noţiunea de mulţime). Astfel încât putem întâlni diverse definiţii ale

algoritmului. De exemplu, Enciclopædia Britannica dă următoarea definiţie: "O

procedură sistematică ce produce într-un număr finit de paşi răspunsul la o întrebare sau

rezolvarea unei probleme". Dicţionarul de calculatoare & Internet (editura Teora, 1999)

defineşte algoritmul astfel: "O procedură matematică sau logică de rezolvare a unei

probleme. O metodă de a găsi răspunsul corect la o problemă dificilă prin împărţirea ei

într-un anumit număr de etape simple."

Caracteristicile unui algoritm sunt:

- determinism (claritate): succesiunea paşilor este precis determinată;

- finitudine (eficacitate): numărul paşilor descrişi este finit;

- generalitate (universalitate): rezolvă orice problemă din clasa de probleme

pentru care a fost elaborat (pentru orice set de date de intrare).

Algoritmii se folosesc în orice limbaj, inclusiv în cel natural. O reţetă de bucătărie

este un algoritm:

"Se amestecă 30g drojdie cu o linguriţă zahăr. Se amestecă totul cu 4 linguri făină

şi 4 linguri lapte. Pauză timp de 15 minute. Se amestecă totul cu 400g făină şi două

pahare lapte timp de 5 minute. Pauză timp de 20 minute. Se unge tava. Se pune amestecul

în tavă. Se pun fructele peste amestec. Se dă la cuptor. Pauză timp de 20 minute. Se

scoate din cuptor. Pauză timp de 5 minute. Se taie şi se mănâncă".

Cuvântul algoritm provine din traducerea în latină (“Algoritmi de numero

Indorum”) a titlului scrierii matematicianului arab Al-Horezmi (“Al-Horezmi despre

numărarea indiană”). Abu Abdullah Mohamed Ibn Musa Al-Horezmi (770 – 840) a

fost unul dintre cei mai mari matematicieni ai lumii. A trăit în Bagdad, în timpul califului

Mamun. A fondat câteva din ramurile matematicii. Este faimos şi ca astronom. Cea mai

mare realizare a sa o constituie introducerea conceptului de algoritm. O alta de rang

asemănător este introducerea cifrei zero.

Algoritmii se întâlnesc mereu în viaţa obişnuită. Acţionarea unor dispozitive sau

maşini se face conform algoritmilor (apăs butonul de apel al liftului, aştept până când

ajunge, deschid uşile, intru, închid uşile, comand oprirea următoare, aştept până ajung,

deschid uşile, ies, închid uşile). Chiar şi normele de comportare sunt algoritmi (deschid

uşa sălii de aşteptare, intru, închid uşa, salut persoanele aflate aici, dacă există un scaun

liber, atunci mă aşez, aştept până îmi vine rândul).

Preşcolarii învaţă algoritmi matematici: ca să adun pe 7 cu 4, folosesc

numărătoarea astfel: trec în dreapta 7 bile de pe prima linie, trec în dreapta 4 bile de pe a

doua linie, număr câte bile am în total în dreapta.

În gimnaziu ne întâlnim cu algoritmul lui Euclid, care stabileşte care este cel mai

mare divizor comun a două numere naturale. Se observă o diferenţă fundamentală faţă de

algoritmul precedent: acesta rezolvă o clasă infinită de probleme (numerele naturale pot fi

oricare), pe când cel precedent rezolvă o singură problemă (cum adun pe 7 cu 4, dar nu

mă învaţă cum adun pe 2 cu 5).

Există întotdeauna un algoritm de rezolvare a unei clase finite de probleme. Este

varianta exhaustivă de rezolvare, adică o tabelă de valori asociată tuturor valorilor

posibile. De exemplu, problema determinării înmulţirii a două numere cel mult egale cu

10 a dus la celebra tablă a înmulţirii pe care am învăţat-o în clasa a doua.

În general, nu este uşor a răspunde la problemele care au număr infinit de valori

de luat în considerare. De exemplu: "este numărul n (natural) prim ?" sau "care este cel

mai mic multiplu comun a două numere naturale ?". De aceea algoritmii care rezolvă

astfel de probleme sunt importanţi şi sunt studiaţi în şcoală. "Elementele" lui Euclid,

apărută în anul 300, conţin un algoritm care află cel mai mare divizor comun a două

numere naturale. Găsirea de algoritmi eleganţi (simpli şi eficienţi) este unul din scopurile

cercetării în informatică.

Se disting două tipuri de algoritmi: cei care furnizează un răspuns de tipul da/nu

se numesc decizionali. Problemele rezolvate de ei se numesc probleme de decizie ("este n

prim ?"). Cei care conduc la o valoare numerică se numesc calculaţionali. Problemele

rezolvate se numesc probleme de calcul ("care este cel mai mic multiplu comun al

numerelor a şi b ?").

Câteodată nu există algoritmi pentru rezolvarea unor clase infinite de probleme,

mai ales atunci când se impun restricţii asupra metodei acceptate. De exemplu, două

probleme din vremea lui Euclid, care trebuie rezolvate cu ajutorul riglei negradate şi a

compasului: "să se construiască un pătrat cu aria egală cu a unui cerc dat" şi "să se

deseneze trisectoarea unui unghi" au fost studiate secole de-a rândul, până când s-a

demonstrat că sunt imposibile. La trecerea în secolul al XX-lea, David Hilbert

(matematician german) a propus 23 de probleme de rezolvat în următoarea sută de ani. A

doua problemă din listă cerea investigarea consistenţei axiomelor aritmeticii. Mulţi

matematicieni aveau dubii asupra rezolvării acestei probleme, până în 1931, când Kurt

Gödel (logician austriac) a demonstrat surprinzătorul rezultat că există enunţuri aritmetice

indecidabile (nu se pot nici afirma şi nici nega), deoarece conduc la o procedură

decizională infinită (deci nu duc la un algoritm). Într-un efort fără succes de a afla cel

puţin care sunt aceste enunţuri, Alan Turing (matematician şi logician englez) a definit

riguros conceptul de algoritm. Descrierea sa pentru caracteristicile esenţiale ale unei

maşini care produce algoritmi (maşina Turing) a devenit fundamentul informaticii.

Programele de calculator sunt tipuri speciale de algoritmi. Decidabilitatea şi

calculabilitatea lor sunt probleme centrale ale scrierii programelor.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Algoritmi - Reprezentarea Algoritmilor.pdf
Alte informații:
Tipuri fișiere:
pdf
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
13 pagini
Imagini extrase:
13 imagini
Nr cuvinte:
3 571 cuvinte
Nr caractere:
18 075 caractere
Marime:
261.43KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Marius Stamate
Sus!