Lenguajes de Programación
“BFS en grafos”
Expositores:
Guillermo, Oscar y Alfonso
BFS (Breadth First Search)
BFS, Búsqueda en Anchura por sus siglas en ingles, es un algoritmo para recorrer o
buscar elementos en un grafo (usado frecuentemente sobre arboles)
Intuitivamente se comienza de la raíz y se exploran todos los vecinos de este nodo,
después para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes
y así hasta que se recorra todo el árbol.
Para entender el funcionamiento el algoritmo BFS es necesario conocer algunos
conceptos básicos de la teoría de graficas, vistos anteriormente en matemáticas
discretas.
Graficas o grafos
Una Grafica G consiste en un conjunto V de vértices (o nodos) y un conjunto E de
aristas (o arcos) tal que cada arista E se asocia con un par no ordenado de vértices
Es una forma muy practica de modelar ciertos tipos de comportamiento, son
ampliamente usadas en las areas de las ciencias de la computación, química,
ingeniería eléctrica, economía, investigación de operaciones ,etc.
Un ejemplo que utilizaremos donde se usan los gráficos puede ser el siguiente mapa:
Formas de representar un grafo.
Ahora que conocemos bien las graficas, es hora de conocer las formas en que las
podemos representar de una manera mas formal, para así poder trabajar con dichas
graficas en la computadora.
Tenemos dos opciones para representar los grafos:
*Mediante una matriz de adyacencia.
*Mediante una lista de adyacencia.
Matriz de adyacencia
Considerando la siguiente grafica:
1 2 3 4 5 6 7
1 0 0 1 1 1 1 0
2 0 0 0 0 0 0 0
3 1 0 0 1 1 0 0
4 1 0 1 0 0 0 0
5 1 0 1 0 0 0 0
6 1 0 0 0 0 0 0
7 0 0 0 0 0 0 0
Esta seria su matriz de adyacencia.
En donde representamos cada uno de los caminos posibles entre
nodo y nodo utilizando ceros y unos.
Lista de adyacencia
Considerando la siguiente grafica:
Esta seria su lista de adyacencia.
En donde representamos todos los posibles caminos entre nodos ,
agrupados como una lista y a un lado todos los nodos vecinos.
Algoritmo BFS escrito en pseudocódigo
El algoritmo BFS requiere de una estructura auxiliar para almacenar el resultado de
los nodos visitados, entonces haremos uso de una estructura tipo cola.
Definimos tres colores para un nodo:
• blanco no ha sido procesado.
• gris está en la cola de procesos.
• negro ya ha sido procesado.
• Encolar significa almacenar un elemento al
final.
• Decolar significa remover el elemento en la
cabeza.
Cola: nodo a. Cola: nodos b y c.Ningún elemento en la cola.
Cola: Nodos c, d y e Cola: Nodos d, e, f y g
Representación grafica
Algoritmo BFS escrito en pseudocódigo
función BFS(Grafo g, Nodo inicio, Nodo destino) {
pintamos todos los nodos de G de blanco.
encolamos inicio
mientras que aún haya nodos por procesar {
decolamos el nodo actual
si actual == destino {
retornamos ÉXITO;
}
para cada vecino de actual {
si el nodo es blanco {
encolamos vecino;
}
}
pintamos actual de negro
} // fin ciclo de procesos
retornamos FALLO;
}
Implementación en lenguaje C++ mediante
una matriz de adyacencia.
Dado el siguiente grafo
Obtenemos su matriz de adyacencia
Implementación en lenguaje C++ mediante una matriz de
adyacencia.
Bfs en grafos
Referencias Bibliográficas.
“Matemáticas Discretas”- 6 Edición. Richard Johnsonbaugh.
“Estructuras de Datos”-3 Edición. Osvaldo Cairo y Silvia Guardati.
“Breadth First Search”-(Documento en línea) Carlos Obregón,
cobregon@uniminuto.edu
“Algoritmos basicos de grafos”- (Documento en linea) Ernesto Coto ISSN 1316-
6239
“Búsqueda en anchura-Wikipedia”-(Documento en linea)
http://es.wikipedia.org/wiki/B%C3%BAsqueda_en_anchura

Más contenido relacionado

PPTX
Bfs en grafos
PDF
PPTX
DOCX
funciones
PPTX
Asigancion #3
PPT
Grafos
PDF
4ºeso vacaciones 2ªeval
PPTX
Diapo funciones
Bfs en grafos
funciones
Asigancion #3
Grafos
4ºeso vacaciones 2ªeval
Diapo funciones

La actualidad más candente (13)

PDF
Taller de graphmatica
DOCX
Éxito y Fracáso
PPT
Tarea 1 bash
DOCX
INVESTIGACIÓN DE LIBRERÍAS
PDF
Ficha repaso números enteros
PDF
Taller3
PPT
Rc elias aleman
PPTX
Graficas
DOCX
Bibliotecas mas importantes en c++
PDF
Graficas sencillas matlab
PPTX
Trabajo de calculo ii marco perez
PPTX
Gráficos en matlab
DOCX
Sistema binario
Taller de graphmatica
Éxito y Fracáso
Tarea 1 bash
INVESTIGACIÓN DE LIBRERÍAS
Ficha repaso números enteros
Taller3
Rc elias aleman
Graficas
Bibliotecas mas importantes en c++
Graficas sencillas matlab
Trabajo de calculo ii marco perez
Gráficos en matlab
Sistema binario
Publicidad

Destacado (19)

PDF
PPT
Clone mac drive
PPTX
Aprendizaje juvenil
PDF
545 filosofia y filosofos - craig mitchell
PDF
Puerta corredera automatica
PPT
Preliminary task
PDF
Tangerine 3
PPT
Tutorial Google Docs
PPT
Juan ramon jimenez
PPTX
My flat plan
PDF
Vaga Medicina - Med Imagem
PPTX
Slideshare
PPTX
PPS
匐笱妘昜籵悛奪
PDF
Mathematical logics
PPS
11 Bolivijská Silnice
PPTX
Fizikanejeteneperditshme 120918030444-phpapp01
PPS
Feliz2009 Mafalda
PDF
PY Union Y fitting Push in Fitting
Clone mac drive
Aprendizaje juvenil
545 filosofia y filosofos - craig mitchell
Puerta corredera automatica
Preliminary task
Tangerine 3
Tutorial Google Docs
Juan ramon jimenez
My flat plan
Vaga Medicina - Med Imagem
Slideshare
匐笱妘昜籵悛奪
Mathematical logics
11 Bolivijská Silnice
Fizikanejeteneperditshme 120918030444-phpapp01
Feliz2009 Mafalda
PY Union Y fitting Push in Fitting
Publicidad

Similar a Bfs en grafos (20)

PPTX
Unidad IV
PPTX
Ascii
PDF
Tema9 ne
PPTX
TRABAJO DE GRAFOS
PPTX
Tema 5 diapositivas de la teoría de grafos.pptx
PPT
Grafos
PPTX
PPTX
DOCX
Teoría de grafos
PDF
Sesión 3 - Introducción a la Investigación de Operaciones.pdf
DOCX
Aplicaciones de los árboles y grafos
PPTX
Análisis de llamadas telefónicas con Teoría de Grafos y R
PPT
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
PPTX
PPTX
DOCX
revista de grafo
PDF
Estructura de datos avanzada
PDF
Estructura de datos avanzada
DOC
Matlab introducción-clase3
PPTX
Actividad #7, subgrupo #4
Unidad IV
Ascii
Tema9 ne
TRABAJO DE GRAFOS
Tema 5 diapositivas de la teoría de grafos.pptx
Grafos
Teoría de grafos
Sesión 3 - Introducción a la Investigación de Operaciones.pdf
Aplicaciones de los árboles y grafos
Análisis de llamadas telefónicas con Teoría de Grafos y R
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
revista de grafo
Estructura de datos avanzada
Estructura de datos avanzada
Matlab introducción-clase3
Actividad #7, subgrupo #4

Más de Oscar Jose (10)

ODP
Bfs en grafos
ODP
Bfs en grafos
ODP
Bfs en grafos
ODP
Bfs en grafos
ODP
Bfs en grafos
PPT
Palindromos
PPT
Palindromos
PPT
Generador de codigo_intermedio
PPT
Generador de codigo_intermedio
PPT
C:\fakepath\generador de codigo_intermedio
Bfs en grafos
Bfs en grafos
Bfs en grafos
Bfs en grafos
Bfs en grafos
Palindromos
Palindromos
Generador de codigo_intermedio
Generador de codigo_intermedio
C:\fakepath\generador de codigo_intermedio

Último (20)

PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
DOCX
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PDF
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PPTX
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Modelo Educativo SUB 2023versión final.pdf
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
informe tipos de Informatica perfiles profesionales _pdf
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
4. Qué es un computador PARA GRADO CUARTO.pptx
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PLAN DE CASTELLANO 2021 actualizado a la normativa
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
Programa_Sintetico_Fase_4.docx 3° Y 4°..

Bfs en grafos

  • 1. Lenguajes de Programación “BFS en grafos” Expositores: Guillermo, Oscar y Alfonso
  • 2. BFS (Breadth First Search) BFS, Búsqueda en Anchura por sus siglas en ingles, es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre arboles) Intuitivamente se comienza de la raíz y se exploran todos los vecinos de este nodo, después para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes y así hasta que se recorra todo el árbol. Para entender el funcionamiento el algoritmo BFS es necesario conocer algunos conceptos básicos de la teoría de graficas, vistos anteriormente en matemáticas discretas.
  • 3. Graficas o grafos Una Grafica G consiste en un conjunto V de vértices (o nodos) y un conjunto E de aristas (o arcos) tal que cada arista E se asocia con un par no ordenado de vértices Es una forma muy practica de modelar ciertos tipos de comportamiento, son ampliamente usadas en las areas de las ciencias de la computación, química, ingeniería eléctrica, economía, investigación de operaciones ,etc. Un ejemplo que utilizaremos donde se usan los gráficos puede ser el siguiente mapa:
  • 4. Formas de representar un grafo. Ahora que conocemos bien las graficas, es hora de conocer las formas en que las podemos representar de una manera mas formal, para así poder trabajar con dichas graficas en la computadora. Tenemos dos opciones para representar los grafos: *Mediante una matriz de adyacencia. *Mediante una lista de adyacencia.
  • 5. Matriz de adyacencia Considerando la siguiente grafica: 1 2 3 4 5 6 7 1 0 0 1 1 1 1 0 2 0 0 0 0 0 0 0 3 1 0 0 1 1 0 0 4 1 0 1 0 0 0 0 5 1 0 1 0 0 0 0 6 1 0 0 0 0 0 0 7 0 0 0 0 0 0 0 Esta seria su matriz de adyacencia. En donde representamos cada uno de los caminos posibles entre nodo y nodo utilizando ceros y unos.
  • 6. Lista de adyacencia Considerando la siguiente grafica: Esta seria su lista de adyacencia. En donde representamos todos los posibles caminos entre nodos , agrupados como una lista y a un lado todos los nodos vecinos.
  • 7. Algoritmo BFS escrito en pseudocódigo El algoritmo BFS requiere de una estructura auxiliar para almacenar el resultado de los nodos visitados, entonces haremos uso de una estructura tipo cola. Definimos tres colores para un nodo: • blanco no ha sido procesado. • gris está en la cola de procesos. • negro ya ha sido procesado. • Encolar significa almacenar un elemento al final. • Decolar significa remover el elemento en la cabeza.
  • 8. Cola: nodo a. Cola: nodos b y c.Ningún elemento en la cola. Cola: Nodos c, d y e Cola: Nodos d, e, f y g Representación grafica
  • 9. Algoritmo BFS escrito en pseudocódigo función BFS(Grafo g, Nodo inicio, Nodo destino) { pintamos todos los nodos de G de blanco. encolamos inicio mientras que aún haya nodos por procesar { decolamos el nodo actual si actual == destino { retornamos ÉXITO; } para cada vecino de actual { si el nodo es blanco { encolamos vecino; } } pintamos actual de negro } // fin ciclo de procesos retornamos FALLO; }
  • 10. Implementación en lenguaje C++ mediante una matriz de adyacencia. Dado el siguiente grafo Obtenemos su matriz de adyacencia
  • 11. Implementación en lenguaje C++ mediante una matriz de adyacencia.
  • 13. Referencias Bibliográficas. “Matemáticas Discretas”- 6 Edición. Richard Johnsonbaugh. “Estructuras de Datos”-3 Edición. Osvaldo Cairo y Silvia Guardati. “Breadth First Search”-(Documento en línea) Carlos Obregón, cobregon@uniminuto.edu “Algoritmos basicos de grafos”- (Documento en linea) Ernesto Coto ISSN 1316- 6239 “Búsqueda en anchura-Wikipedia”-(Documento en linea) http://es.wikipedia.org/wiki/B%C3%BAsqueda_en_anchura