Proiect de An IP
Proiect de An IP
Proiect de An IP
al REPUBLICII MOLDOVA
UNIVERSITATEA TEHNICĂ A MOLDOVEI
FACULTATEA CALCULATOARE, INFORMATICǍ
ȘI MICROELECTRONICǍ
Departamentul Informatică și Ingineria Sistemelor
Raport
La disciplina: „Ingineria Programării”
Chişinǎu 2022
Descrierea limbajului utilizat la realizarea proiectului
În ciuda tipizării dinamice, Python este puternic tipizat, adică interpretatorul nu permite operații
cu obiecte de tip diferit dacă acestea nu sunt bine definite, cum ar fi operațiile de tip cast în C.
Există totuși unele excepții logice, cum ar fi în cazul numerelor întregi și celor raționale (float),
între care sunt permise operații ca adunarea sau împărțirea, tipul rezultatului ținând cont de
natura operației, cum se poate vedea mai jos:
d = 10 + 11.5 # rezultatul va fi un număr rațional, 21.5
e = "o brioșă" + 4 # această comandă va genera o eroare.
1
Alt concept important în Python este cel al tipurilor mutabile și nemutabile. Așa cum implică
numele, datele cu un tip mutabil pot fi alterate după inițializare, în vreme ce la date nemutabile
lucrul acesta este imposibil. Luând ca exemplu o listă (mutabilă), constatăm că putem adăuga
elemente la listă sau le putem modifica fără probleme. În cazul unui șir de caractere (nemutabil),
acest lucru nu este permis:
lista_mea = ["măr", "pară"]
lista_mea.append("strugure") # adaugă la listă
print lista_mea[2] # afișază: strugure
șirul_meu = "varză"
șirul_meu[0] = "b" # schimbă cuvântul în "barză" -> Eroare
Structuri de date
Python oferă tipuri tradiționale de date, cum ar fi numărul întreg (integer, int) sau cel rațional
(float), dar introduce totodată și concepte noi.
De exemplu, un grad mare de flexibilitate îl oferă listele (tablourile) în Python. Acestea nu sunt
statice, ci pot conține orice tipuri de date (în cadrul aceleiași liste) și pot fi modificate pe loc
adăugând și eliminând elemente fără a declara sau utiliza funcții de manipulare a memoriei.
Alte structuri de date sunt tuplurile/perechile (tuples) și dicționarele (dictionaries, mappings).
Tuplurile sunt liste care au un număr prestabilit de elemente, și nu pot fi modificate parțial.
Tuplurile pot fi utilizate în cazuri în care este nevoie de o anumită structură de date specializată,
de exemplu coordonate în spațiul cartezian. Dicționarele sunt liste neordonate în care fiecare
element are asociat o cheie, care poate fi număr sau șir de caractere. Dicționarele au foarte multe
aplicații, inclusiv crearea structurilor de tip hash-tables.
Stil
2
Biblioteci și Extindere
Deși reprezintă una dintre provocările științei moderne, atunci când este efectuată corect,
aceasta poate avea un impact enorm.
Predicțiile joacă un rol esențial în cadrul proceselor decizionale din cadrul unei companii
aeriene cum ar fi alocarea de resurse, a unui buget, în cazul undelor seismice permit detectarea
anomaliilor mișcarilor suprafeței solului, iar în cazul datelor din cadrul cursului valutar BNR,
acestea permit crearea unor previziuni monetare și ajută guvernanții să adopte legislații cu privire
la politica monetară.
Rețelele neurale sunt folosite adesea pentru predicție utilizând învățarea automată a
dependențelor din cadrul datelor măsurate, fără a necesita informații adiționale (așa cum este
cazul regresiei) având o rată de succes variabilă de la caz la caz. O rețea neurală poate fi
reprezentată asemenea unei cutii negre, ce are drept scop memorarea dependențelor ascunse
pentru a le putea utiliza în prezicerea datelor ulterioare.
3
Predicțiile sunt realizate pe mai multe baze de date (unde seismice, vânzări bilete în cadrul unei
companii aeriene, curs valutar BNR) constituind fiecare o mulțime de observații măsurate în
perioade succesive de timp, numite serii temporale, prin intermediul rețelelor neurale, mai exact
prin intermediul LSTM-urilor, fapt ce reprezinta scopul acestei lucrări.
Domeniul rețelelor neurale își are originea în modelarea sistemelor biologice neurale, în
urma dezvoltării acestuia pe scară largă, reliefându-și importanța în inginerie, mai ales în
procedeele de învățare mecanică (engl.: Machine Learning)..
Rețelele neurale recurente reprezintă un tip aparte de rețele neurale, făcând parte din
categoria celor mai puternici și robuști algoritmi existenți, dispunând de memorie internă și
având aplicabilitate vastă, printre care se pot aminti: serii temporale, date financiare,
recunoașterea vocii și a scrisului.
4
În cadrul modelului computațional, presupunem că timpii pulsurilor nu contează și că doar
frecvența de transmitere a acestora ofera informație. Bazându-se pe această interpretare a ratei de
informație, se va modela rata de transmisie a neuronului cu o funcție de activare f , ce reprezintă
frevența pulsurilor de-a lungul axonului.
Din punct de vedere istoric, o alegere adesea întâlnită funcției de activare este funcția
sigmoid σ, deoarece aceasta ia ca intrare o valoare reală (puterea semnalului după însumare) și o
introduce într-un interval [0,1].
5
neliniare complexe. Sinapsele nu reprezintă o singură pondere, ele reprezintă un sistem dinamic
complex și neliniar. Timpii exacți de producere a pulsurilor în multe sisteme au o importanță
majoră, sugerând că aproximarea ratei informației nu este suficientă.
Rezultatul rulării