Está en la página 1de 12

FACULTAD DE LA CARRERA DE INGENIERÍA ELÉCTRICA

Deber:

Investigación:

El cálculo de distancia euclidiana y haversine.

Visualización gráfica de la matriz de distancias y adyacencia.

Algoritmo para encontrar caminos mínimos.

Visualización gráfica de caminos mínimos.

MATERIA:

PROGRAMACIÒN

DOCENTE:

ING. FREDDY AVILA

ESTUDIANTE: JUAN PERALTA

CUENCA - ECUADOR

Junio, 2019.
Caminos mínimos
Objetivo general:

Conocer el cálculo de distancia euclidiana y haversine, visualización gráfica de la matriz de distancias


y adyacencia, algoritmo para encontrar caminos mínimos, visualización gráfica de caminos mínimos
por medio de la investigación para la adquisición de conocimiento y preparación por parte del
estudiante.

Objetivo específico:

 Investigar para que sirven los cálculos de distancia euclidiana y haversine, visualización gráfica
de la matriz de distancias y adyacencia, algoritmo para encontrar caminos mínimos,
visualización gráfica de caminos mínimos.
 Comprender los temas señalados acerca de caminos mínimos.
 Analizar la visualización de grafica de caminos minimos.

1. Introducción:

 Cálculo de distancia euclidiana y haversine.

Distancia euclidiana: se trata de una función no negativa usada en diversos contextos para calcular
la distancia entre dos puntos, primero en el plano y luego en el espacio. También sirve para definir
la distancia entre dos puntos en otros tipos de espacios de tres o más dimensiones. Y para hallar la
longitud de un segmento definido por dos puntos de una recta, del plano o de espacio s de mayor
dimensión.

Por ejemplo, en un espacio bidimensional, la distancia euclidiana entre dos puntos P1 y P2, de
coordenadas cartesianas (x 1, y1) y (x 2, y2 ) respectivamente, es:

Ejemplo de cálculo de distancia euclidiana

Se explica a continuación un método para calcular la distancia entre dos subvariedades lineales
afines de

Sea S= (1, 2, 3, 4, 5) +< (0, 1, 0, 0, 1), (1, 2, -1, 2, 0)> y sea S'= (0, 1, 3, 2, 5) +< (1, -1, 0, 0, 1)>

Tomaremos la matriz M cuyas filas son los directores de S y S' y por último la diferencia entre sendos
puntos de S y S'.
Se realiza la eliminación Gaussiana por filas en la matriz M·Mt

A Fila3 por 8 le sumamos la Fila2

A Fila4 por 2 le restamos la Fila2 por 3

Recuerda que al final habrá que dividir entre 2

A Fila4 por 23 le restamos la Fila3 por 3

Recuerda que al final habrá que dividir entre 23

La distancia entre S y S' es la raíz cuadrada de 74 dividido entre (23·2·2):

d(S, S') =
Distancia Haversine: Se trata de calcular la distancia entre dos puntos sobre un plano estos dos
puntos los ubicamos sobre la esfera terrestre, es decir, lo que se pretende es calcular la distancia
lineal entre dos posiciones dadas (latitud + longitud).

Básicamente se complica porque en el cálculo de la distancia entre ambas posicionesse debe


contemplar la curvatura terrestre. Es aquí donde entra en escena la Fórmula del Haversine.

Estos nombres derivan del hecho que suele expresarse en términos de la función haversine, dada
por:

haversin (θ) = sen 2 (θ/2)

Fórmula del haversine

Para cualquier par de puntos sobre una esfera:

donde:

haversin es la función haversine, ℎ𝑎𝑣𝑒𝑟𝑠𝑖𝑛 ( 𝜃 ) = 𝑆𝑒𝑛 2 ( 𝜃 /2) = (1 − 𝐶𝑜𝑠 ( 𝜃 ))/2

d es la distancia entre dos puntos (sobre un círculo máximo de la esfera,


vér distancia esférica),
R es el radio de la esfera,
φ 1 es la latitud del punto 1,
φ 2 es la latitud del punto 2, y
Δ λ es la diferencia de longitudes.

Es así que, sin entrar en demasiados detalles en términos matemáticos, la Fórmula del Haversine es:

𝑅 = 𝑟𝑎𝑑𝑖𝑜 𝑑𝑒 𝑙𝑎 𝑇𝑖𝑒𝑟𝑟𝑎

𝛥𝑙𝑎𝑡 = 𝑙𝑎𝑡2 − 𝑙𝑎𝑡1

𝛥𝑙𝑜𝑛𝑔 = 𝑙𝑜𝑛𝑔2 − 𝑙𝑜𝑛𝑔1

𝑎 = 𝑠𝑖𝑛²(𝛥𝑙𝑎𝑡/2) + 𝑐𝑜𝑠(𝑙𝑎𝑡1) · 𝑐𝑜𝑠(𝑙𝑎𝑡2) · 𝑠𝑖𝑛²(𝛥𝑙𝑜𝑛𝑔/2)

𝑐 = 2 · 𝑎𝑡𝑎𝑛2(√𝑎, √(1 − 𝑎))

𝑑 = 𝑅 ·𝑐

Se debe de tener en cuenta la clase Posición, que no es más que una clase con un par de propiedades
relativas a la longitud y latitud.
 Visualización gráfica de la matriz de distancias y adyacencia.

La una matriz de distancias es una matriz cuyos elementos representan las distancias entre los
puntos, tomados por pares, de un conjunto. Se trata, por lo tanto, de una matriz simétrica de
tamaño 𝑁𝑥𝑁 (dado un conjunto de N puntos en el espacio euclídeo) conteniendo números
reales no negativos como elementos. El número N de pares de puntos, (𝑁 − 1)/2, es el número
de elementos independientes en la matriz de distancias.

Las matrices de distancias están relacionadas con las matrices de adyacencia, diferenciándose
en que las últimas sólo informan sobre qué vértices están conectados, pero no especifican
costes o distancias entre los vértices; además, cada elemento de una matriz de distancias es
más pequeño cuanto más cercanos se encuentren los puntos, mientras que vértices cercanos
(conectados) producen elementos mayores en una matriz de adyacencia.

Por ejemplo:

La matriz de distancias podría ser:

Estos datos pueden ser vistos de forma gráfica como un mapa de calor. En la siguiente imagen, el
negro denota una distancia de 0, representando el blanco la distancia máxima:
La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar
relaciones binarias.

Construcción de la matriz

 Se crea una matriz cero, cuyas columnas y filas representan los nodos del grafo.
 Por cada arista que une a dos nodos, se suma 1 al valor que hay actualmente en la ubicación
correspondiente de la matriz.
 Si tal arista es un bucle y el grafo es no dirigido, entonces se suma 2 en vez de 1.
 Finalmente, se obtiene una matriz que representa el número de aristas (relaciones) entre
cada par de nodos (elementos).

Existe una matriz de adyacencia única para cada grafo (sin considerar las permutaciones de filas o
columnas), y viceversa.

Ejemplos:

La siguiente tabla muestra dos grafos y su respectiva matriz de adyacencia. Note que, en el primer
caso, como se trata de un grafo no dirigido, la matriz obtenida es simétrica:

Propiedades de la matriz de adyacencia

Para un grafo no dirigido la matriz de adyacencia es simétrica. El número de caminos 𝐶𝑖, 𝑗(𝑘),
atravesando k aristas desde el nodo i al nodo j, viene dado por un elemento de la potencia 𝑘 −

é𝑠𝑖𝑚𝑎 de la matriz de adyacencia:


Otra representación matricial para las relaciones binarias es la matriz de incidencia.
 Algoritmo para encontrar caminos mínimos.

Algoritmo de Dijkstra. También llamado algoritmo de caminos mínimos, es un algoritmo para la


determinación del camino más corto dado un vértice origen al resto de vértices en un grafo con
pesos en cada arista. Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en
1959.

Aplicaciones

En múltiples aplicaciones donde se aplican los grafos, es necesario conocer el camino de menor
costo entre dos vértices dados:

Distribución de productos a una red de establecimientos comerciales.

Distribución de correos postales.

Sea G = (V, A) un grafo dirigido ponderado.

El problema del camino más corto de un vértice a otro consiste en determinar el camino de menor
costo, desde un vértice u a otro vértice v. El costo de un camino es la suma de los costos (pesos) de
los arcos que lo conforman.

Características del algoritmo

 Es un algoritmo greddy.
 Trabaja por etapas, y toma en cada etapa la mejor solución sin considerar consecuencias
futuras.
 El óptimo encontrado en una etapa puede modificarse posteriormente si surge una solución
mejor.

Pasos del algoritmo

Algoritmo 24.1: Algoritmo de Dijkstra. Inicialización.

 Sea V un conjunto de vértices de un grafo.


 Sea C una matriz de costos de las aristas del grafo, donde en C[u,v] se almacena el costo de la
arista entre u y v.
 Sea S un conjunto que contendrá los vértices para los cuales ya se tiene determinad o el camino
mínimo.
 Sea D un arreglo unidimensional tal que D[v] es el costo del camino mínimo del vértice origen
al vértice v.
 Sea P un arreglo unidimensional tal que P[v] es el vértice predecesor de v en el camino mínimo
que se tiene construido.
 Sea vinicial el vértice origen. Recordar que el Algoritmo Dijkstra determina los caminos mínimos
que existen partiendo de un vértice origen al resto de los vértices.

Ejecución de algoritmo

 Paso 1: Inicialización
Paso 2: Elegir un vértice w ∈ V - {A} tal que D[w] sea mínimo, y agregar w al conjunto solución S

Paso 3: cada v ∈ {C, D, E} hacer D[v] ← min( D[v], D[w]+C[w, v] )

Paso 4: Elegir un vértice w ∈ V - {A, B} tal que D[w] sea mínimo, y agregar w al conjunto solución S.

Paso 5: Para cada v ∈ {C, E} hacer D[v] ← min(D[v], D[w]+C [w, v]


Paso 6: Elegir un vértice w ∈ V - {A, B, D} tal que D[w] sea mínimo, y agregar w al conjunto solución
S.

Paso 7: Para cada v ∈ { E} hacer D[v] ← min( D[v], D[w]+C[w, v]

Final del Proceso de Ejecución

Luego del paso 8 tenemos la siguiente situación:

 El conjunto de vértices V = {A, B, C, D, E}


 El conjunto de vértices para los que ya se determinó el camino mínimo S = {A, B, D, C, E}

Por lo que como V-S=Ø se termina el algoritmo, pues para cada nodo del grafo se ha determinado
cuál es su camino mínimo. Como resultado de la ejecución del algoritmo tenemos:

 Visualización gráfica de caminos mínimos.

AlGraf. Herramienta de visualización de algoritmos sobre grafos, de sarrollada en Visual Basic.


(Fátima Rico, José Luis Santisteban, Abraham Fernández, 2001, Julián Ramírez, 2002)

ProRouting. Aplicación que permite visualizar muchos grafos de proximidad de conjuntos de puntos
del plano, evaluar estrategias de ruteo sobre ellos, calcular su dilación y estudiar sus características
de spanners. (David Ramos, julio 2004, José María Gil, julio 2007, Víctor Chavero, 2009, Edgar
Méndez, 2014)
IAGraph. Aplicación interactiva para la visualización de algoritmos sobre grafos. Están
implementados algoritmos de búsqueda en grafos y digrafos, conectividad, caminos mínimos y
coloración. (Juan Carlos Delgado y Abraham Iniesto, mayo 2012)

 Nociones básicas

Interfaz grafo simple - matriz de adyacencia. Estudio de la relación entre un grafo simple y su matriz
de adyacencia. (Rogerio Carballo da Costa, mayo 2001)

Sucesiones gráficas y certificados de árboles. Se presentan invariantes numéricos de los grafos: la


sucesión de grados para grafos cualesquiera y los certificados de árboles que resuelven el problema
de isomorfismo para árboles. (Eugenio Rabadán, junio 2004)

Sucesiones gráficas. Aplicación que detecta si una sucesión es gráfica y dibuja uno de los grafos
simples que la realizan. (Francisco Javier Rodríguez Pascual, 2003)

Vértices corte. Aplicación que detecta todos los vértices-corte de un grafo. (Alejandro Balcells,
2004)

Etiquetados garbosos y mágicos. Aplicación interactiva que permite etiquetar grafos para obtener
etiquetados garbosos, mágicos, conservativos y consecutivos. (Cristina Ruiz, julio 2008).

Isomorfismo de grafos. (Pedro Redondo González, 2003)


 Conclusión:

 En particular, la matriz de adyacencia es muy utilizada en la programación, porque su naturaleza


binaria y matricial calza perfecto con la de los computadores. Sin embargo, a una persona
común y corriente se le hará mucho más sencillo comprender una relación descrita mediante
grafos, que mediante matrices de adyacencia.
 Para un grafo no dirigido la matriz de adyacencia es simétrica.

 Referencias:

https://www.ecured.cu/Distancia_eucl%C3%ADdea

https://sci2s.ugr.es/sites/default/files/files/Teaching/GraduatesCourses/RedesSistemasCompejos/
Tema04-1-PodayVisualizaciondeRedes-13-14.pdf

https://www.ecured.cu/Algoritmo_de_Dijkstra

También podría gustarte