Unidad V Investigacion Teoría de Grafos Andrik

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

INGENIERÍA EN SISTEMAS COMPUTACIONALES

EJERCICIOS
Semestre y Grupo:
I – SCD1015YC
Asignatura:
Matemáticas Discretas
Unidad:
V – Teoría de grafos
Presenta:
Andrik Herrera Perez
Docente:
I.S.C. Wilber Sosa García
No. de control(es):
226z0262

Tlalixcoyan, Ver. A 08/11/2022

-1-
Índice
Introducción .................................................................................................................................... - 3 -
5.1 Elementos, características y componentes de los grafos. ........................................................ - 4 -
5.1.1 Tipos de grafos ................................................................................................................... - 6 -
5.2 Representación de los grafos. ................................................................................................... - 7 -
5.2.1 Matemática ........................................................................................................................ - 8 -
5.2.2 Computacional ................................................................................................................... - 9 -
5.3 Algoritmos de recorrido y búsqueda....................................................................................... - 10 -
5.3.1 El camino más corto ......................................................................................................... - 11 -
5.3.2 A lo ancho ......................................................................................................................... - 13 -
5.3.3 En profundidad ................................................................................................................. - 15 -
Conclusión ..................................................................................................................................... - 16 -
Bibliografía .................................................................................................................................... - 17 -

-2-
Introducción
a teoría de grafos tiene sus fundamentos en la matemática discreta y de la
matemática aplicada. Esta teoría requiere de diferentes conceptos de diversas
áreas como combinatoria, álgebra, probabilidad, geometría de polígonos, aritmética
y topología. Actualmente ha tenido mayor influencia en el campo de la informática,
las ciencias de la computación y telecomunicaciones. Debido a la gran cantidad de
aplicaciones en la optimización de recorridos, procesos, flujos, algoritmos de
búsquedas, entre otros, se generó toda una nueva teoría que se conoce como
análisis de redes.
La teoría de grafos, también llamada teoría de gráficas, es una rama de la
matemática y las ciencias de la computación que estudia las propiedades de los
grafos. Los grafos no deben ser confundidos con las gráficas, que es un término
muy amplio. Formalmente, un grafo G=(V,E) es una pareja ordenada en la que V es
un conjunto no vacío de vértices y E es un conjunto de aristas. Donde E consta de
pares no ordenados de vértices, tales como {x,y} E E, entonces se dice que X y e
son adyacentes; y en el grafo se representa mediante una línea no orientada que
una dichos vértices. Si el grafo es dirigido se le llama dígrafo, se denota D, y
entonces el par (x,y) es un par ordenado, esto se representa con una flecha que va
de x a y se dice que (x,y) E E.

-3-
5.1 Elementos, características y componentes de los grafos.
ELEMENTOS Y CARACTERÍSTICAS.
Un grafo, G es un par ordenado de V y A, donde V es el conjunto de vértices o nodos
del grafo y A es un conjunto de pares de vértices, a estos también se les llama arcos
o ejes del grafo. Un vértice puede tener 0 o más aristas, pero toda arista debe unir
exactamente a dos vértices. Los grafos representan conjuntos de objetos que no
tienen restricción de relación entre ellos. Un grafo puede representar varias cosas
de la realidad cotidiana, tales como mapas de carreteras, vías férreas, circuitos
eléctricos, etc. La notación G = A (V, A) se utiliza comúnmente para identificar un
grafo. Los grafos se constituyen principalmente de dos partes: las aristas, vértices
y los caminos que pueda contener el mismo grafo.

COMPONENTES.
Se compone principalmente de:
Aristas.
Son las líneas con las que se unen las aristas de un grafo y con la que se construyen
también caminos. Si la arista carece de dirección se denota indistintamente {a, b} o
{b, a}, siendo a y b los vértices que une. Si {a ,b} es una arista, a los vértices a y b
se les llama sus extremos.
Estas a su vez pueden ser:
Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el
mismo vértice.
Aristas Paralelas: Se dice que dos aristas son paralelas si vértice inicial y el final
son el mismo.
Aristas Cíclicas: Arista que parte de un vértice para entrar en el mismo.
Cruce: Son dos aristas que cruzan en un punto.
Vértices.

-4-
Son los puntos o nodos con los que esta conformado un grafo. Llamaremos grado
de un vértice al número de aristas de las que es extremo. Se dice que un vértice es
`par' o `impar' según lo sea su grado.
Estos a su vez pueden ser:
Vértices Adyacentes: Si tenemos un par de vértices de un grafo (U, V) y si tenemos
un arista que los une, entonces U y V son vértices adyacentes y se dice que U es el
vértice inicial y V el vértice adyacente.
Vértice Aislado: Es un vértice de grado cero.
Vértice Terminal: Es un vértice de grado 1.

-5-
5.1.1 Tipos de grafos
Hay 6 tipos principales de grafos:
Grafo simple: Se dice que el grafo G = (V, E) es un grafo
simple de grado n si todos sus vértices tienen grado n.
Grafo completo: Un grafo es completo si cada par de vértices
está unido por una arista. Se denota por Kn al grafo completo
de n vértices.
Grafo bipartido: Un grafo es bipartido si V=V1?V2 y cada arista de E
une un vértice de V1 y otro de V2.
Grafo bipartido completo: Un grafo es bipartido completo si V=V1?V2 y
dos vértices de V están unidos por una arista de E si y solo si un vértice
está en V1 y el otro en V2. Se denota por Kr, donde V1 tiene r vértices y
V2 tiene s vértices.
Grafos planos: Un grafo plano es aquel que puede ser dibujado en el plano
sin que ninguna arista se intersecta.
Grafos conexos: Un grafo es conexo si cada par de vértices está
conectado por un camino; es decir, si para cualquier par de
vértices (a, b), existe al menos un camino posible desde "a" hacia
"b".
Grafo ponderado: Un grafo es ponderado si presenta los pesos de cada arista y
se puede determinar la longitud de una ruta, la cual es la suma
de todos los pesos de las aristas.

-6-
5.2 Representación de los grafos.
Los grafos se pueden representar de diferentes maneras, como por ejemplo:
• Representación por incidencia.
• Lista de incidencia: El grafo está representado por un arreglo de aristas,
identificadas por un de pares de vértices, que son los que conecta esa arista.
• Matriz de incidencia: El grafo está representado por una matriz de A
(aristas) por V (vértices), donde [arista, vértice] contiene la información de la
arista (conectado o no conectado).
• Representación por adyacencia.
• Listas de adyacencia: El grafo está representado por un arreglo de listas de
adyacencia. Para un vértice i, la lista de adyacencia está formada por todos
los vértices adyacentes a i. Puede construirse en tiempo lineal, y las
inserciones pueden hacerse al principio de cada lista, con lo que se asegura
tiempo constante.
• Matriz de adyacencia: Una matriz de adyacencia es una matriz M de
dimensión n*n, en donde n es el número de vértices que almacena valores
booleanos, donde M[i,j] es verdadero (o contiene un peso) si y solo si existe
un arco que vaya del vértice i al vértice j. La inicialización llevaría un tiempo
del O ( #(V2)).

-7-
5.2.1 Matemática
En matemáticas y ciencias de la computación, la teoría de grafos, también llamada
teoría de las gráficas estudia las propiedades de los grafos (también llamados
gráficas). Un grafo es un conjunto, no vacío, de objetos llamados vértices (o nodos)
y una selección de partes de vértices llamados aristas.

Gracias a la teoría de grafos se pueden resolver diversos problemas como por


ejemplo la síntesis de circuitos secuenciales, contadores o sistemas de apertura. Se
utiliza para diferentes áreas por ejemplo, Dibujo computacional, en todas las áreas
de Ingeniería. Los grafos se utilizan también para modelar trayectos como el de una
línea de autobús a través de las calles de una ciudad, en el que podemos obtener
caminos óptimos para el trayecto aplicando diversos algoritmos como puede ser el
algoritmo de Floyd.

-8-
5.2.2 Computacional
Existen diferentes formas de representar un grafo (simple), además de la
geométrica y muchos métodos para almacenarlos en una computadora. La
estructura de datos usada depende de las características del grafo y el algoritmo
usado para manipularlo. Entre las estructuras más sencillas y usadas se encuentran
las listas y las matrices, aunque frecuentemente se usa una combinación de ambas.
Las listas son preferidas en grafos dispersos porque tienen un eficiente uso de la
memoria. Por otro lado, las matrices proveen acceso rápido, pero pueden consumir
grandes cantidades de memoria.
Estructura de lista:
Lista de incidencia: Las aristas son representadas con un vector de pares
(ordenados, si el grafo es dirigido), donde cada par representa una de las aristas.
Lista de adyacencia: Cada vértice tiene una lista de vértices los cuales son
adyacentes a él. Esto causa redundancia en un grafo no dirigido (ya que A existe
en la lista de adyacencia de B y viceversa), pero las búsquedas son más rápidas, al
costo de almacenamiento extra.
Lista de grados: También llamada secuencia de grados o sucesión gráfica de un
grafo no-dirigido es una secuencia de números, que corresponde a los grados de
los vértices del grafo.
Estructuras matriciales: Se denomina en ocasiones sistema de mandos múltiples.
Una organización con una estructura matricial cuenta con dos tipos de estructura
simultáneamente.
Matriz de adyacencia: El grafo está representado por una matriz cuadrada M de
tamaño, donde es el número de vértices. Si hay una arista entre un vértice x y un
vértice y, entonces el elemento es 1, de lo contrario, es 0.
Matriz de incidencia: El grafo está representado por una matriz de A (aristas) por
V (vértices), donde [arista, vértice] contiene la información de la arista (1 -
conectado, 0 - no conectado).

-9-
5.3 Algoritmos de recorrido y búsqueda.
En ciencias de la computación, A* es un algoritmo informático que se utiliza
ampliamente en la búsqueda de caminos y el recorrido del grafo, el proceso de
trazar un camino transitable de manera eficiente entre los puntos, llamados nodos.
Destaca por su rendimiento y precisión, que goza de amplio uso. (Sin embargo, en
los sistemas de los viajes de enrutamiento prácticos, generalmente superado por
algoritmos que pueden pre-procesar la gráfica para lograr un mejor rendimiento.)

Peter Hart , Nils Nilsson y Bertram Raphael del Instituto de Investigación de Stanford
(ahora SRI International ) describieron por primera vez el algoritmo en 1968.Se trata
de una extensión de la Edsger Dijkstra algoritmo de 1959 .A* consigue un mejor
rendimiento tiempo usando heurística.

- 10 -
5.3.1 El camino más corto
En la teoría de grafos, el problema del camino más corto es el problema de encontrar
un camino entre dos vértices (o nodos) en un gráfico de tal manera que la suma de
los pesos de sus bordes constituyentes se reduce al mínimo.
Esto es análogo al problema de encontrar el camino más corto entre dos
intersecciones en un mapa de carreteras: vértices del gráfico corresponden a las
intersecciones y los bordes corresponden a los segmentos de carretera, cada uno
ponderado por la longitud de su segmento de carretera.
Los algoritmos más importantes para la solución de este problema son:
El algoritmo de Dijkstra: Resuelve las cortas de origen único problemas de ruta.
Algoritmo de Bellman-Ford: Resuelve el problema de una sola fuente, si borde
pesos pueden ser negativos.
Un algoritmo de búsqueda *: Resuelve para el par de ruta más corta única utilizando
la heurística para tratar de acelerar la búsqueda.
Algoritmo de Floyd-Warshall: Resuelve todos los pares caminos más cortos.
Algoritmo de Johnson: Resuelve todos los pares de trayectorias más cortas, y puede
ser más rápido que Floyd-Warshall en grafos dispersos.
Ahora bien, podemos emplear el algoritmo de Dijkstra para éstos casos, los pasos
o procedimientos a seguir para éste algoritmo son los siguientes : Teniendo un grafo
dirigido ponderado de N nodos no aislados, sea x el nodo inicial, un vector D de
tamaño N guardará al final del algoritmo las distancias desde x al resto de los nodos.
1. Inicializar todas las distancias en D con un valor infinito relativo ya que son
desconocidas al principio, exceptuando la de x que se debe colocar en 0
debido a que la distancia de x a x sería 0.
2. Sea a = x (tomamos a como nodo actual).
3. Recorremos todos los nodos adyacentes de a, excepto los nodos marcados,
llamaremos a estos vi

- 11 -
4. Si la distancia desde x hasta va guardada en D es mayor que la distancia
desde x hasta a, sumada a la distancia desde a hasta vi; esta se sustituye
con la segunda nombrada.
5. Marcamos como completo el nodo a.
6. Tomamos como próximo nodo actual el de menor valor en D (puede hacerse
almacenándolos valores en una cola de prioridad) y volvemos al paso 3
mientras existan nodos no marcados.

- 12 -
5.3.2 A lo ancho
En ciencias de la computación, A * (pronunciado “Una estrella”) es un algoritmo
informático que se utiliza ampliamente en la búsqueda de caminos y el recorrido del
grafo, el proceso de trazar un camino transitable de manera eficiente entre los
puntos, llamados nodos. Destaca por su rendimiento y precisión, que goza de
amplio uso. (Sin embargo, en los sistemas de los viajes de enrutamiento prácticos,
generalmente superado por algoritmos que pueden pre-procesar la gráfica para
lograr un mejor rendimiento.)

Peter Hart, Nils Nilsson y Bertram Raphael del Instituto de Investigación de Stanford
(ahora SRI International) describieron por primera vez el algoritmo en 1968. Se trata
de una extensión de la Edsger Dijkstra algoritmo de 1959. A * consigue un mejor
rendimiento tiempo usando heurística.

Ejemplo

Un ejemplo de una estrella (A *) algoritmo en acción donde los nodos son las
ciudades conectadas con carreteras y h (x) es la distancia en línea recta al punto de
destino:

Clave: verde: inicio, el azul: objetivo, de color anaranjado: visitado.

Nota: En este ejemplo se utiliza una coma como separador decimal.

Ilustración de la búsqueda A * para la búsqueda de ruta desde un nodo de inicio a


un nodo objetivo en un robot de planificación de movimientos problema.

- 13 -
Una búsqueda de * que utiliza una heurística que es de 5,0 (= ε) veces a la heurística
consistente, y obtiene una ruta subóptima.

La búsqueda en anchura es otro procedimiento para visitar sistemáticamente todos


los vértices de un grafo. Es adecuado especialmente para resolver problemas de
optimización, en los que se deba elegir la mejor solución entre varias posibles. Al
igual que en la búsqueda en profundidad se comienza en un vértice v (la raíz) que
es el primer vértice activo. En el siguiente paso se etiquetan como visitados todos
los vecinos del vértice activo que no han sido etiquetados. Se continúa etiquetando
todos los vecinos de los hijos de v (que no hayan sido visitados aún). En este
proceso nunca se visita un vértice dos veces por lo que se construye un grafo sin
ciclos, que será un árbol.

- 14 -
5.3.3 En profundidad
En ciencias de la computación, recorrido del grafo es el problema de visitar todos
los nodos en un gráfico de una manera particular, actualización y / o control de sus
valores a lo largo del camino, recorrido del árbol es un caso especial del recorrido
del grafo.

Una búsqueda en profundidad (DFS) es un algoritmo para recorrer un grafo finito.


DFS visitas los nodos secundarios antes de visitar los nodos del mismo nivel, es
decir, que atraviesa la profundidad de cualquier camino en particular antes de
explorar su amplitud. Una pila (a menudo del programa pila de llamadas a través de
recursión) se usa generalmente cuando la ejecución del algoritmo.

El algoritmo comienza con un nodo “raíz” elegida, entonces iterativamente


transiciones desde el nodo actual a una, el nodo no visitado adyacente, hasta que
ya no puede encontrar un nodo inexplorado para la transición a partir de su
ubicación actual. El algoritmo entonces retrocede a lo largo de los nodos visitados
anteriormente, hasta que encuentra un nodo conectado a un territorio aún más
desconocido. A continuación, se procederá por el nuevo camino como antes, dando
marcha atrás cuando se encuentra con callejones sin salida, y termina cuando el
algoritmo ha retrocedido más allá del nodo original “root” desde el primer paso.

DFS es la base de muchos algoritmos de grafos conexos, incluyendo las clases


topológicas y pruebas de planitud.

- 15 -
Conclusión
Durante el desarrollo de las distintas etapas de este trabajo llegamos a la
conclusión que:
Buscamos de alguna manera poder entregar a la carrera de Pedagogía en
Educación
Matemática, nuestros agradecimientos a través de este seminario de título por los
saberes que aquí hemos adquirido en estos cinco años académicos.
Ampliamos nuestros conocimientos más allá de lo teórico sobre grafos, analizamos
diversas aplicaciones de la teoría de grafos como son: Electricidad, Electrónica,
Optimización, Mapas, Geometría, Química, Sistema P.E.R.T, Viajes, Juegos. Lo
que
nos permitió indagar y darnos cuenta que la teoría de grafos se puede aplicar a
otros campos y no sólo a la Matemática como Ciencia, esto demuestra que la
matemática es transversal en cuanto a su contenido.
En el capítulo de grafos y educación podemos ver que la gran mayoría de los juegos
y aplicaciones causan un gran impacto en el estudiante, se presenta un gran desafío
para ellos, en donde deben usar la lógica para poder resolverlos, estos y otros
juegos se los sugerimos para algún taller y/o introducción a algún tema relacionado
con el curriculum de enseñanza media y así poder contribuir al desarrollo del
pensamiento de los alumnos.
Además el seminario está abierto a profundizar en cada uno de los tópicos aquí
tratados, así también en las aplicaciones al poder desarrollar las actividades que
están en el texto o investigar nuevos ejemplos.

- 16 -
Bibliografía
https://conjuntos-y-relaciones.blogspot.com/2017/11/51-elementos-caracteristicas-
y_20.html
https://conjuntos-y-relaciones.blogspot.com/2017/11/52-representacion-de-los-
grafos_28.html
https://conjuntos-y-relaciones.blogspot.com/2017/11/53-algoritmos-de-recorrido-y-
busqueda_28.html

- 17 -

También podría gustarte