Grafos Busq Anchura y Profundidad
Grafos Busq Anchura y Profundidad
Grafos Busq Anchura y Profundidad
• Definición.
• Representación
◦ Matriz de Adyacencia
◦ Lista de Adyacencia
• Búsqueda Profundidad.
• Búsqueda Anchura.
• Pseudocódigo.
• Ejemplos de uso.
• Referencias.
Definición:
En matemáticas y ciencias de la computación, un grafo es un conjunto de objetos llamados vértices
o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias
entre elementos de un conjunto. Típicamente, un grafo se representa gráficamente como un
conjunto vértices o nodos unidos por aristas, los vértices son objetos que contienen información y
las aristas son conexiones entre vértices.
Representación:
Una característica especial en los grafos es que podemos representarlos utilizando dos estructuras
de datos distintas. En los algoritmos que se aplican sobre ellos veremos que adoptaran tiempos
distintos dependiendo de la forma de representación elegida. En particular, los tiempos de ejecución
variarán en función del número de vértices y el de aristas, por lo que la utilización de una
representación u otra dependerá en gran medida de si el grado es denso o disperso.
Búsqueda en anchura:
Búsqueda en anchura (en inglés BFS - Breadth First Search) es un algoritmo para recorrer o buscar
elementos en un grafo. Intuitivamente, se comienza en la raíz eligiendo algún nodo como elemento
raíz y se exploran todos los vecinos de este nodo. A continuación para cada uno de los vecinos se
exploran sus respectivos vecinos adyacentes, y así hasta que se recorra todo el grafo.
Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y examina todos los
nodos de un árbol sistemáticamente para buscar una solución. El algoritmo no usa ninguna
estrategia heurística.
Pseudocódigo:
Busqueda en profundidad:
DFS(grafo G)
PARA CADA vértice u ∈ V[G] HACER
estado[u] ← NO_VISITADO
padre[u] ← NULO
tiempo ← 0
PARA CADA vértice u ∈ V[G] HACER
SI estado[u] = NO_VISITADO ENTONCES
DFS_Visitar(u,tiempo)
Ejemplos de uso:
Mediante el uso del los grafos se pueden resolver diversos problemas como por ejemplo la síntesis
de circuitos secuenciales, contadores o sistemas de apertura. Son utilizados en muchas áreas de la
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.
Para la administración de proyectos, utilizamos técnicas como técnica de revisión y evaluación de
programas en las que se modelan los mismos utilizando grafos y optimizando los tiempos para
concretar los mismos.
La teoría de grafos también ha servido de inspiración para las ciencias sociales, en especial para
desarrollar un concepto no metafórico de red social que sustituye los nodos por los actores sociales
y verifica la posición, centralidad e importancia de cada actor dentro de la red. Esta medida permite
cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse
gráficamente.
Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al
identificar los vínculos (aristas), su dirección e intensidad y da idea de la manera en que el poder se
transmite y a quiénes.
Se emplea en problemas de control de producción, para proyectar redes de ordenadores, para
diseñar módulos electrónicos modernos y proyectar sistemas físicos con parámetros localizados
(mecánicos, acústicos y eléctricos).
Se usa para la solución de problemas de genética y problemas de automatización de la proyección.
Apoyo matemático de los sistemas modernos para el procesamiento de la información. Acude en las
investigaciones nucleares.
Los grafos son importantes en el estudio de la biología y hábitat. El vértice representa un hábitat y
las aristas representan los senderos de los animales o las migraciones. Con esta información, los
científicos pueden entender cómo esto puede cambiar o afectar a las especies en su hábitat.
Referencias:
Wikipedia http://www.wikipedia.org