Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java

Proiect
8/10 (1 vot)
Domeniu: Automatică
Conține 1 fișier: pdf
Pagini : 91 în total
Cuvinte : 17940
Mărime: 2.06MB (arhivat)
Publicat de: Clara Robu
Puncte necesare: 10

Cuprins

  1. 1. Introducere .3
  2. 1.1 Ce este un algoritm?Tipuri de algoritmi folositi pentru calcularea drumului optim.3
  3. 1.1.1 Ce este un arbore? .7
  4. 1.1.2 Tipuri de grafuri .7
  5. 1.2 Scopul proiectului nostru.13
  6. 2. Planul de proiectare al aplicatiei “Graphical Dijkstra’s Algorithm”.14
  7. 2.1 Stabilirea obiectivelor de proiectare.14
  8. 2.2 Interfata de tip UserFriendly.15
  9. 3. Limbaje de programare folosite in aplicatie.16
  10. 3.1 Java (Programming language) .16
  11. 4. Proiectarea algoritmului propus in cadrul aplicatiei “Graphical Dijkstra’s Algorithm”.20
  12. 4.1 Algoritmul lui Dijkstra.20
  13. 5. Structura aplicatiei “Graphical Dijkstra’s Algorithm”.27
  14. 5.1 Caracteristicile aplicatiei si modurile de utilizare.27
  15. 5.2 Implementarea modulelor aplicatiei.36
  16. 6. Concluzii si aplicatii practice.42
  17. 7. Bibliografie.49

Extras din proiect

1. Introducere

1.1 Ce este un algoritm?Tipuri de algoritmi folositi pentru calcularea drumului optim

Scurt istoric:

“Originile teoriei grafurilor se gasesc in rezolvarea unor probleme de jocuri si amuzamente matematice,care au atras atentia unor matematicieni de seama cum ar fi: Euler, Hamilton, Cayley, Sylvester, Birkoff. Data nasterii teoriei grafului este considerata a fi anul 1736. Cand matematicianul Leonhard Euler a publicat un articol in care a clarificat problema celor 7 poduri si a prezentat metode pentru rezolvarea altor probleme de acelasi tip. Cu 200 ani mai tarziu aparea la Leipzic prima carte de teorie a grafurilor al carei autor este matematicianul maghiar Denes Koreg. In amintirea contributiei lui Euler unele notiuni si tipuri de grafuri de care acesta s-a ocupat sunt denumite de catre Koreg lant eulerian ,graf eulerian,etc. Un alt matematician care s-a ocupat de aceleasi probleme ca si Euler, dar care si-a publicat rezolvarile cercetarilor sale in anul 1873 a fost Carl Hierholzer. Alte izvoare ale teoriei grafurilor sunt:studiul retelelor electrice, problema celor 4 culori, aplicatiile teoriei grafurilor in chimie(initiate de Cayley), probleme hamiltoniene, grafuri planare. Fizicianul Kirchoff a studiat la mijlocul secolului al XIX-lea retele electrice cu metode care apartin astazi teoriei grafului contribuind la dezvoltarea acestei teorii. Termenul graf a fost folosit pentru prima data in sensul sau actual in 1878 de matematicianul Sylvester. Teoria grafurilor are numeroase apeluri in chimie, contribuind in mare masura la rezolvarea problemelor de numarare a grafurilor apartinand unor clase speciale. “

“Un algoritm este un set de instructiuni care trebuie executate pentru a se obtine un raspuns la o problema data.

Un algoritm are urmatoarele proprietati (Knuth):

– finitudine: trebuie sa se termine intotdeauna dupa un numar finit de pasi (instructiuni);

– determinism: fiecare pas trebuie sa fie exact precizat, in mod riguros si neambiguu;

– generalitate: trebuie sa rezolve problema pentru orice date de intrare din domeniul

precizat;

– efectivitate: fiecare instructiune trebuie sa fie exacta si de durata finita.

Ultima proprietate trebuie nuantata, avind in vedere faptul ca memoria oricarui

calculator este limitata. Nu intotdeauna operatiile aritmetice se efectueaza exact, in unele

cazuri obtinindu-se o aproximare a rezultatelor, cum sint de exemplu implementarile bazate

pe aritmetica in virgula mobila (Goldberg).

In cadrul acestei lucrari algoritmii sint descrisi intr-un limbaj de tip Algol, un precursor al

limbajului Pascal.

Avind un algoritm care rezolva o problema data, urmeaza sa determinam resursele

acestuia. Concret, de cita memorie si timp avem nevoie ca sa obtinem solutia problemei? In

acest scop facem urmatoarele simplificari: fiecare operatie elementara a algoritmului se

executa intr-o unitate de timp, informatiile despre un obiect elementar se memoreaza intr-o

locatie de memorie.

Fie f  N  N o functie care indica relatia dintre numarul de valori (date de intrare)

prelucrate de un algoritm, si numarul de operatii elementare efectuate de acesta pentru

obtinerea rezultatelor. Functia f poate avea o expresie analitica destul de complicata, de

aceea consideram inca o functie g  N  N cu o expresie analitica simplificata.

Definitia 1.2. Functia f are ordinul de marime cel mult g(n), notatie: f  O(g(n)), daca

si numai daca exista doua valori, c  0 si n0  N astfel incit pentru orice n  n0 sa avem f(n)

 c g(n).

O(g)  { h  N  N |  c  0, n0  N a. i.  n  n0, h(n)  c g(n) }.

Definitia 1.3. Functia f are ordinul de marime cel putin g(n), notatie: f  (g(n)), daca

si numai daca exista doua valori, c  0 si n0  N astfel incit pentru orice n  n0 sa avem f(n)

 c g(n).

(g)  { h  N  N |  c  0, n0  N a. i.  n  n0, h(n)  c g(n) }.

Definitia 1.4. Functia f are ordinul de marime g(n), notatie: f  (g(n)), daca si numai

daca exista trei valori, c1, c2  0 si n0  N astfel incit pentru orice n  n0 sa avem c1 g(n)  f(n)

 c2 g(n).

(g)  { h  N  N |  c1, c2  0, n0  N a. i.  n  n0,

c1 g(n)  h(n)  c2 g(n) }.

Prezentam doua rezultate remarcabile care vor fi folosite pe parcursul lucrarii:

(1) Se da un sir de n valori dintr-un domeniu pe care este definita o relatie de ordine

totala. Cel mai eficient algoritm de ordonare a sirului dat, care se bazeaza pe comparatii, are

complexitate de ordin (n log n).

(2) Se da un sir de n valori ordonate. Cautarea unei valori (localizarea pozitiei acesteia

sau obtinerea unui raspuns negativ) in sirul dat necesita un timp de ordin O(log n).

Preview document

Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 1
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 2
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 3
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 4
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 5
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 6
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 7
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 8
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 9
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 10
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 11
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 12
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 13
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 14
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 15
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 16
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 17
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 18
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 19
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 20
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 21
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 22
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 23
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 24
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 25
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 26
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 27
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 28
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 29
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 30
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 31
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 32
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 33
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 34
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 35
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 36
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 37
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 38
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 39
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 40
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 41
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 42
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 43
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 44
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 45
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 46
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 47
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 48
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 49
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 50
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 51
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 52
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 53
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 54
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 55
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 56
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 57
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 58
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 59
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 60
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 61
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 62
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 63
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 64
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 65
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 66
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 67
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 68
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 69
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 70
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 71
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 72
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 73
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 74
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 75
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 76
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 77
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 78
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 79
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 80
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 81
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 82
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 83
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 84
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 85
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 86
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 87
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 88
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 89
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 90
Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java - Pagina 91

Conținut arhivă zip

  • Implementarea Algoritumului Dijkstra pentru Calcularea Drumului Optim Folosind Java.pdf

Alții au mai descărcat și

Modelarea Matlab-Simulink a Unei Sere

Cunoasterea duratei de timp de la semanat pâna la rasaritul plantelor mai are însemnatate si pentru obtinerea unor productii cat mai timpurii. Daca...

Circuite logice secvențiale

In multe aplicatii este nevoie de un element care sa prezinte 2 stari diferite, cu posibilitatea de a trece dintr-o stare in cealalta, fara sau in...

Proiectare conceptuală

Cerintele sistemului operational Odata ce a fost definita nevoia si abordarea tehnica, e necesar sa le tranlatam intr-un “scenariu...

Ai nevoie de altceva?