Está en la página 1de 10

Instituto Tecnológico de México

Campus Culiacán

Matemáticas Discretas
Alan Omar Urías Osuna
Tarea 5
Teoría de Grafos

Santiago Armenta Rodríguez


19:00 – 20:00
30/11/2023
INTRODUCCIÓN
La teoría de grafos es una rama de las matemáticas y las ciencias de la computación
que estudia las propiedades de los grafos. Un grafo es un conjunto de elementos
no vacíos, conocidos como vértices, y una recopilación de aristas (pares de vértices)
que pueden ser o no orientados.
Formalmente, un grafo es una pareja ordenada en la que es un conjunto no vacío
de vértices y es un conjunto de aristas. Los grafos pueden ser simples, conexos,
completos o bipartitos.
La 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.
El origen de la teoría de grafos se remonta al siglo XVIII con el problema de los
puentes de Königsberg. Este problema consistía en encontrar un camino que
recorriera los siete puentes del río Pregel, de modo que se recorrieran todos los
puentes pasando una sola vez por cada uno de ellos.

ELEMENTOS, CARACTERÍSTICAS Y COMPONENTES DE LOS GRAFOS


A partir de este grafo se definen los siguientes elementos:

Vértices (nodos)
Se indican por medio de un pequeño círculo y se les asigna un número o letra. En
el grafo anterior los vértices son V= {a,b,c,d}.

Lados (ramas o aristas)


Son las líneas que unen un vértice con otro y se les asigna una letra, un numero o
una combinación de ambos. En el grafo anterior los lados son: L= {1, 2, 3, 4, 5, 6}.

Lados paralelos
Son aquellas aristas que tienen relación con un mismo par de vértices. En el grafo
anterior los lados paralelos son: P={2,3}.

Lazo
Es aquella arista que sale de un vértice y regresa al mismo vértice. En el grafo
anterior se tiene el lazo: A= {6}

Valencia de un vértice
Es el número de lados que salen o entran a un vértice. En el grafo anterior las
valencias de los vértices son:
Valencia (a)=2
Valencia (b)=4
Valencia (c)=2
Valencia (d)=3

Los grafos se componen 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: Son los puntos o nodos con los que está 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 una 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 0.
• Vértice Terminal: Es un vértice de grado 1.

-Tipos de grafos
• Grafo simple. o simplemente grafo es aquel que acepta una sola una arista
uniendo dos vértices cualesquiera. Esto es equivalente a decir que una arista
cualquiera es la única que une dos vértices específicos. Es la definición
estándar de un grafo.

• Multígrafo. o pseudografo son grafos que aceptan más de una arista entre
dos vértices. Estas aristas se llaman múltiples o lazos (loops en inglés).
Los grafos simples son una subclase de esta categoría de grafos. También
se les llama grafos no-dirigido.

• Grafo dirigido. Son grafos en los cuales se ha añadido una orientación a las
aristas, representada gráficamente por una flecha.

• Grafo etiquetado. Grafos en los cuales se ha añadido un peso a las aristas


(número entero generalmente) o un etiquetado a los vértices.

• Grafo aleatorio. Grafo cuyas aristas están asociadas a una probabilidad.

• Hipergrafo. Grafos en los cuales las aristas tienen más de dos extremos, es
decir, las aristas son incidentes a 3 o más vértices.

• Grafo infinito. Grafos con conjunto de vértices y aristas de cardinal infinito.

• Grafo euleriano: Dícese de los grafos no orientados formados por un ciclo


euleriano; es decir, aquellos que pueden recorrerse completamente desde un
vértice y regresar al punto de origen sin pasar dos veces por la misma arista.

• Grafo conexo o conectado: es un grafo en que todos sus vértices están


conectados por un camino (si el grafo es no dirigido) o por un semicamino (si
el grafo es dirigido).

• Grafo no dirigido: es un tipo de grafo en el cual las aristas representan


relaciones simétricas y no tienen un sentido definido.
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)).

-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.

-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:
• 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).

ALGORITMOS DE RECORRIDO Y BÚSQUEDA


Recorrer un grafo significa tratar de alcanzar todos los nodos que estén
relacionados con uno que llamaremos nodos de salida. Existen básicamente dos
técnicas para recorrer un grafo: el recorrido en anchura y el recorrido en
profundidad.

Así, para recorrer un grafo consiste en visitar todos los vértices alcanzables a
partir de uno dado. Hay dos formas:
• Recorrido en profundidad (DFS)
• Recorrido en anchura (BFS)
-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.

-A lo ancho
El algoritmo de recorrido en anchura o BFS, explora sistemáticamente todas las
ramas o aristas del grafo de manera que primero se visitan los nodos o vértices más
cercanos a un nodo inicial.
Para la implementación de este algoritmo se utiliza globalmente un contador y un
vector de enteros para marcar los vértices ya visitados y almacenar el recorrido. El
algoritmo BFS requiere también un vector de cola auxiliar para gestionar los vértices
no visitados.
En muchos casos es necesario ejecutar este algoritmo empezando en los nodos
más alejados del nodo escogido como nodo inicial.

-En profundidad
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.

EJEMPLOS

A representa a Culiacán, B a El Fuerte, C a Durango, D a Mazatlán, E a


Surutato, F a CDMX, G a Guadalajara y H a Hermosillo.
Los números que hay sobre las aristas (carreteras) representan el tiempo que se
tarda en desplazarse de un nodo a otro (de una población a otra).
Para resolver este tipo de problemas se utiliza el algoritmo de Dijkstra, también
llamado algoritmo de caminos mínimos.
Este algoritmo consiste en ir explorando todos los caminos más cortos que parten
del vértice origen (A: Culiacán) y que llevan al último vértice (H: Hermosillo).
1. ¿Qué camino tiene que tomar FEDEX para llevar un paquete desde Sevilla a
Cádiz? Si miramos el grafo el camino más corto sería A-B-D-H con un total de
29+22+51=102 minutos, 1 hora y 42 minutos en llegar a Hermosillo.
2. ¿Cuál sería el camino si primero tiene que pasar por Durango para recoger a un
compañero? Si tiene que pasar por Durango, el camino más corto sería A-C-D-H
con un total de 37+32+51= 120 minutos.

A representa a Culiacán, B a el enji, C a Durango, D a Mazatlán, E a Surutato, F a


CDMX, G a Guadalajara y H a Coahuila.
Resulta que FEDEX acaba de cumplir 25 años desde que abrieron la oficina y han
decidido irse a comer a el enji. Estando allí de celebración, reciben una llamada y
tienen que desplazarse hasta Coahuila. Cuál será el camino más rápido, utilizando
los datos que se muestran en el grafo.
Resultado: El camino B-A-G-H, tardaríamos 23+34+11= 68 minutos.
REFERENCIAS BIBLIOGRÁFICAS
https://www.ecured.cu/Teor%C3%ADa_de_grafos.
https://personales.unican.es/fioravam/MatDiscreta/Mat-Discreta_3ra-
parte_nov2021.pdf.
https://9relaciones.blogspot.com/2014/11/teoria-de-grafos.html#3
http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro5/42_tipos_de_grafos.htm
l
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
https://es.slideshare.net/terfer/ejercicios-resueltos-grafos-149128459

También podría gustarte