← Volver a los quizzesQuiz gratuito

Conceptos clave de grafos y recorridos

Los grafos son estructuras matemáticas que modelan relaciones entre objetos. Cada vértice representa una entidad (ciudad, usuario, proceso) y cada arco (o arista) representa la conexión…

10 preguntas~5 min
Conceptos clave de grafos y recorridos — Qwi
0 / 10
Puntuación: 0%
1

¿Cuál es la diferencia correcta entre la implementación estática y la dinámica de un grafo?

2

En la representación de grafos, ¿cómo se describen correctamente los vértices y los arcos?

3

¿Cuál es la afirmación correcta sobre la diferencia entre un grafo dirigido y uno no dirigido?

4

¿Qué define correctamente la longitud de un camino en un grafo?

5

En un grafo no dirigido, ¿qué condición caracteriza la conectividad?

6

¿Cuál es la característica principal de la representación de un grafo mediante una matriz de adyacencia?

7

¿Qué ventaja ofrece una lista de adyacencia frente a la matriz de adyacencia?

8

Respecto al algoritmo de recorrido en anchura (BFS), ¿cuál es su comportamiento correcto?

9

¿Cuál es la diferencia esencial entre los recorridos DFS y BFS?

10

Para determinar las componentes conexas de un grafo no dirigido, ¿qué método es correcto?

Introducción a los grafos y su importancia en la informática

Los grafos son estructuras matemáticas que modelan relaciones entre objetos. Cada vértice representa una entidad (ciudad, usuario, proceso) y cada arco (o arista) representa la conexión entre dos vértices (carretera, amistad, dependencia). En algoritmia y ciencias de la computación los grafos son la base de problemas clásicos como rutas más cortas, detección de ciclos y análisis de redes sociales.

Representación estática vs dinámica de un grafo

Implementación estática: matriz de adyacencia

Una matriz de adyacencia es una tabla cuadrada n × n donde n es el número de vértices. Cada celda M[i][j] indica si existe un arco desde el vértice i al vértice j (valor 1) o no (valor 0). Esta representación es estática porque el tamaño de la tabla se fija al crear el grafo y no puede crecer sin volver a crear la estructura completa.

  • Ventajas: acceso O(1) a la existencia de un arco; sencillo de implementar.
  • Desventajas: consumo de memoria O(n²), incluso si el grafo tiene pocos arcos.

Implementación dinámica: lista de adyacencia

En la lista de adyacencia cada vértice mantiene una lista (o vector) de sus vecinos. Esta estructura es dinámica porque el número de elementos en cada lista crece o decrece según se añadan o eliminen arcos, sin necesidad de redefinir el tamaño total del grafo.

  • Ventajas: uso de memoria proporcional al número de arcos O(|E|), ideal para grafos escasamente conectados.
  • Desventajas: la comprobación de la existencia de un arco puede requerir tiempo lineal en el grado del vértice.

Recuerda: "estático = tabla completa, dinámico = lista flexible".

Vértices y arcos: definición precisa

Los vértices (también llamados nodos) son los puntos que representan objetos del dominio del problema. Los arcos (o aristas) son los enlaces que describen relaciones entre esos objetos. Por ejemplo, en un mapa de carreteras, las ciudades son vértices y las carreteras son arcos.

Tip visual: imagina puntos (vértices) conectados por líneas (arcos) como una red de metro.

Grafos dirigidos y no dirigidos

Un grafo dirigido (digrafo) asigna una dirección a cada arco, representada habitualmente por una flecha (). La relación no es necesariamente recíproca: si existe u → v, no implica v → u. En cambio, en un grafo no dirigido los arcos no tienen sentido; la conexión es bidireccional por defecto.

  • Dirigido: útil para modelar dependencias, flujos de información o rutas unidireccionales.
  • No dirigido: apropiado para redes de amistad, carreteras de doble sentido, etc.

Ejemplo mental: una flecha → no siempre vuelve ←.

Longitud de un camino en un grafo

La longitud de un camino se mide de dos formas comunes:

  • Contando el número de arcos recorridos.
  • Sumando los pesos asociados a cada arco (cuando el grafo es ponderado).

En grafos no ponderados, la longitud equivale al número de pasos; en grafos ponderados, la longitud representa la distancia total o el coste acumulado.

Recuerda: contar pasos o sumar distancias.

Conectividad en grafos no dirigidos

Un grafo no dirigido es conectado si existe al menos un camino entre cualquier par de vértices. Esta propiedad garantiza que no hay vértices aislados y que la red forma una única componente.

Para verificar la conectividad se pueden usar algoritmos de recorrido como BFS o DFS, iniciando en cualquier vértice y comprobando que todos los demás quedan marcados como visitados.

Analogía: un mapa donde todas las ciudades están enlazadas por alguna ruta.

Características de la matriz de adyacencia

La matriz de adyacencia se caracteriza por:

  • Ser una estructura cuadrada donde la fila representa el vértice de partida y la columna el vértice de llegada.
  • Almacenar valores binarios (0/1) o pesos si el grafo es ponderado.
  • Permitir consultas de adyacencia en tiempo constante O(1).

Esta representación es adecuada cuando el grafo es denso (muchos arcos) o cuando se necesita acceso rápido a la información de conectividad.

Visualiza: una hoja de cálculo donde filas y columnas son los mismos vértices.

Ventajas de la lista de adyacencia

La lista de adyacencia destaca por:

  • Optimizar el uso de memoria en grafos poco conectados, almacenando solo los arcos existentes.
  • Facilitar la iteración sobre los vecinos de un vértice, lo que es útil en algoritmos que exploran aristas adyacentes.
  • Ser más flexible para operaciones de inserción y eliminación de arcos.

Sin embargo, la búsqueda de la existencia de un arco específico puede requerir tiempo lineal en el grado del vértice.

Metáfora: una lista de contactos que contiene solo a tus amigos reales, no a todos los usuarios posibles.

Algoritmo de recorrido en anchura (BFS)

El algoritmo de recorrido en anchura, conocido como BFS (Breadth‑First Search), explora el grafo nivel por nivel a partir de un vértice origen. Su comportamiento clave es:

  • Los vértices se encolan en una estructura FIFO (cola).
  • Se procesan priorizando los vértices más cercanos al origen, garantizando que todos los vértices a distancia k se visiten antes que los de distancia k+1.
  • Es útil para encontrar la ruta más corta en grafos no ponderados y para comprobar la conectividad.

Ejemplo paso a paso:

  1. Insertar el vértice origen en la cola.
  2. Mientras la cola no esté vacía, extraer el primer vértice, marcarlo como visitado y encolar todos sus vecinos no visitados.

Imagen mental: una fila de personas atendidas en orden de llegada.

Conclusión y recursos adicionales

Dominar los conceptos de representación de grafos, direccionalidad, longitud de caminos, conectividad y los algoritmos de recorrido como BFS es fundamental para cualquier estudiante de informática y algorítmica. Estas bases permiten abordar problemas más avanzados como Dijkstra, Floyd‑Warshall o algoritmos de flujo máximo.

Para profundizar, se recomienda consultar los siguientes recursos:

  • Wikipedia: teoría de grafos
  • GeeksforGeeks: estructuras y algoritmos de grafos
  • Curso de Coursera sobre algoritmos de grafos

Practica implementando tanto la matriz de adyacencia como la lista de adyacencia en tu lenguaje favorito y ejecuta BFS para validar la conectividad de diferentes tipos de grafos. ¡El dominio de estos conceptos te abrirá puertas a áreas como inteligencia artificial, redes de comunicación y análisis de datos!