Teoría de grafos
# Teoría de grafos

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 $\left\{x,y\right\}\in E$, entonces se dice que $x$ e $y$ 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$ y se dice que $(x,y)\in E$.

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

## Historia

El origen de la teoría de grafos se remonta al siglo XVIII con el problema de los puentes de Königsberg, el cual consistía en encontrar un camino que recorriera los siete puentes del río Pregel (54°42′12″N 20°30′56″E﻿ / ﻿54.70333, 20.51556) en la ciudad de Königsberg, actualmente Kaliningrado, de modo que se recorrieran todos los puentes pasando una sola vez por cada uno de ellos. El trabajo de Leonhard Euler sobre el problema titulado Solutio problematis ad geometriam situs pertinentis (La solución de un problema relativo a la geometría de la posición) en 1736, es considerado el primer resultado de la teoría de grafos. También se considera uno de los primeros resultados topológicos en geometría (que no depende de ninguna medida). Este ejemplo ilustra la profunda relación entre la teoría de grafos y la topología.

Luego, en 1847, Gustav Kirchhoff utilizó la teoría de grafos para el análisis de redes eléctricas publicando sus leyes de los circuitos para calcular el voltaje y la corriente en los circuitos eléctricos, conocidas como leyes de Kirchhoff, considerado la primera aplicación de la teoría de grafos a un problema de ingeniería.

En 1852, Francis Guthrie planteó el problema de los cuatro colores, el cual afirma que es posible, utilizando solamente cuatro colores, colorear cualquier mapa de países de tal forma que dos países vecinos nunca tengan el mismo color. Este problema, que no fue resuelto hasta un siglo después por Kenneth Appel y Wolfgang Haken en 1976, puede ser considerado como el nacimiento de la teoría de grafos. Al tratar de resolverlo, los matemáticos definieron términos y conceptos teóricos fundamentales de los grafos.

En 1857, Arthur Cayley estudió y resolvió el problema de enumeración de los isómeros, compuestos químicos con idéntica composición (fórmula) pero diferente estructura molecular. Para ello representó cada compuesto, en este caso hidrocarburos saturados $C_nH_{2n+2},$ mediante un grafo árbol donde los vértices representan átomos y las aristas la existencia de enlaces químicos.

El término «grafo», proviene de la expresión inglesa graphic notation («notación gráfica»), usada por primera vez por Edward Frankland y posteriormente adoptada por Alexander Crum Brown en 1884 y que hacía referencia a la representación gráfica de los enlaces entre los átomos de una molécula.

El primer libro sobre teoría de grafos fue escrito por Dénes Kőnig y publicado en 1936.

A fines de los años 1940 e inicios de los años 1950, junto con los primeros estudios formales de cliques o camarillas en sociomatrices y de centralidad en sociogramas, se introdujo la teoría de grafos como herramienta clave para la sociometría y el análisis de redes sociales.

## Composición de un grafo

* Aristas: Son las líneas que unen los vértices de un grafo.
   * Aristas adyacentes: Dos aristas son adyacentes si convergen en el mismo vértice.
   * Aristas paralelas: Dos aristas son paralelas si los vértices iniciales y finales son el mismo vértice
   * Aristas cíclicas: Aristas que parten de un vértice para entrar en el mismo.
   * Cruce: Punto donde dos aristas se cruzan.
* Vértices: Los vértices son los elementos que forman un grafo. Cada uno lleva asociada una valencia característica según la situación, que se corresponde con la cantidad de aristas que confluyen en dicho vértice.
* Camino: Se denomina camino a un conjunto de vértices interconectados por aristas. Dos vértices están conectados si hay un camino entre ellos.

## Tipos de grafos

* Grafo simple: O simplemente grafo es aquel que acepta una sola 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.
* Multigrafo o pseudografo: Es el que acepta 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 general.
* Grafo dirigido: grafo orientado o dígrafo. 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 plano: Los grafos planos son aquellos cuyos vértices y aristas pueden ser representados sin ninguna intersección entre ellos. Podemos establecer que un grafo es plano gracias al Teorema de Kuratowski.
* Grafo regular: Un grafo es regular cuando todos sus vértices tienen el mismo grado de valencia.
* Grafo dual: El grafo dual $G'$ de un grafo $G$ (plano), es aquel que tiene un vértice por cada región de $G$, y una arista por cada arista en $G$ uniendo dos regiones vecinas.

## Representación de grafos

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 $n^{2}$, donde $n$ es el número de vértices. Si hay una arista entre un vértice $x$ y un vértice $y$, entonces el elemento $m_{x,y}$ 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 [vértice, arista] contiene la información de la arista ($1$ significa conectado y $0$ no conectado).

| Grafo $G=(V,A)$ | Conjuntos | Matriz de adyacencia | Matriz de incidencia | Secuencia de grados | Lista de adyacencia |
| - | - | - | - | - | - |
| | ${\begin{aligned}V=\{&1,2,3,4,5,6\}\\A=\{&\{1,1\},\{1,2\},\{1,5\},\{2,3\},\\&\{2,5\},\{3,4\},\{4,5\},\{4,6\}\}\end{aligned}}$ | ${\begin{pmatrix}1&1&0&0&1&0\\1&0&1&0&1&0\\0&1&0&1&0&0\\0&0&1&0&1&1\\1&1&0&1&0&0\\0&0&0&1&0&0\\\end{pmatrix}}$ | ${\begin{pmatrix}1&1&1&0&0&0&0&0\\0&1&0&1&1&0&0&0\\0&0&0&1&0&1&0&0\\0&0&0&0&0&1&1&1\\0&0&1&0&1&0&1&0\\0&0&0&0&0&0&0&1\\\end{pmatrix}}$ | $(4,3,2,3,3,1)$ | vértice lista de adyacencia $1$ $1,2,5$ $2$ $1,3,5$ $3$ $2,4$ $4$ $3,5,6$ $5$ $1,2,4$ $6$ $4$ |

## Problemas de teoría de grafos

### Subgrafos, subgrafos inducidos y menores

Un problema común, denominado problema de isomorfismo de subgrafos, es encontrar un grafo fijo como subgrafo de un grafo dado. Una razón para estar interesado en esta cuestión es que muchas propiedades de grafos son heredadas de subgrafos, lo que significa que un grafo tiene una propiedad si y solo si todos sus subgrafos a su vez la poseen. Desafortunadamente, encontrar subgrafos máximos de un cierto tipo suele ser un problema NP-completo. Por ejemplo:

* Encontrar el subgrafo completo más grande se llama problema de la clique.

Un problema similar es encontrar un subgrafo inducido en un grafo dado. De nuevo, algunas propiedades importantes son heredadas con respecto a subgrafos inducidos, lo que significa que un grafo tiene una propiedad si y solo si todos los subgrafos inducidos la tienen. Encontrar subgrafos inducidos máximos de un determinado tipo es, de nuevo, un problema NP-completo. Como ejemplo:

* Encontrar el subgrafo inducido más grande sin bordes o conjunto independiente se denomina problema del conjunto independiente.

Otro nuevo problema es el problema del menor contenido, que es encontrar un grafo fijo como menor de un grafo dado. Un menor o subcontración de un grafo es cualquier grafo obtenido tomando un subgrafo y contrayendo algunos bordes. Muchas propiedades de grafos son heredadas de menores, lo que significa que un grafo la tiene solo si todos sus menores la tienen también. Por ejemplo, el teorema de Wagner estipula que:

* Un grafo es plano si contiene como menor ni el grafo bipartito completo ni el grafo completo.

Un problema de las mismas características es el problema de la subdivisión del contenido. Una subdivisión o homeomorfismo de un grafo es cualquier grafo obtenido subdividiendo algunos bordes. La subdivisión del contenido está relacionada con las propiedades de los grafos tales como la "planeza". Por ejemplo, el teorema de Kuratowski establece que:

* Un grafo es plano si contiene una subdivisión ni el grafo bipartito ni el grafo completo.

Otro problema en la subdivisión de contenido es la conjetura de Kelmans-Seymour:

* Cada grafo de cinco vértices conectados que no es plano contiene una subdivisión del grafo completo de cinco vértices.

Otro problemas de clases tienen que ver con el alcance para la cual varias especies y generalizaciones de grafos están determinadas por sus subgrafos de puntos eliminados. Por ejemplo, la conjetura de la reconstrucción.

### Ciclos y caminos hamiltonianos

Un ciclo es una sucesión de aristas adyacentes, donde no se recorre dos veces la misma arista, y donde se regresa al punto inicial. Un ciclo hamiltoniano tiene además que recorrer todos los vértices exactamente una vez (excepto el vértice del que parte y al cual llega).

Por ejemplo, en un museo grande, lo idóneo sería recorrer todas las salas una sola vez, esto es buscar un ciclo hamiltoniano en el grafo que representa el museo (los vértices son las salas, y las aristas los corredores o puertas entre ellas).

Se habla también de camino hamiltoniano si no se impone regresar al punto de partida, como en un museo con una única puerta de entrada. Por ejemplo, un caballo puede recorrer todas las casillas de un tablero de ajedrez sin pasar dos veces por la misma: es un camino hamiltoniano. Un ejemplo de ciclo hamiltoniano es el grafo del dodecaedro.

Hoy en día, no se conocen métodos generales para hallar un ciclo hamiltoniano en tiempo polinómico, siendo la búsqueda por fuerza bruta de todos los posibles caminos u otros métodos excesivamente costosos. Existen, sin embargo, métodos para descartar la existencia de ciclos o caminos hamiltonianos en grafos pequeños.

El problema de determinar la existencia de ciclos hamiltonianos, entra en el conjunto de los NP-completos.

### Grafos planos

Cuando un grafo o multigrafo se puede dibujar en un plano sin que dos segmentos se corten, se dice que es plano.

Un problema muy conocido es el siguiente: Se dibujan tres casas y tres pozos. Todos los vecinos de las casas tienen el derecho de utilizar los tres pozos. Como no se llevan bien en absoluto, no quieren cruzarse jamás. ¿Es posible trazar los nueve caminos que juntan las tres casas con los tres pozos sin que haya cruces?

Cualquier disposición de las casas, los pozos y los caminos implica la presencia de al menos un cruce.

Sea $K_{n}$ el grafo completo con $n$ vértices, $K_{n,p}$ es el grafo bipartito de $n$ y $p$ vértices.

El juego anterior equivale a descubrir si el grafo bipartito completo $K_{3,3}$ es plano, es decir, si se puede dibujar en un plano sin que haya cruces, siendo la respuesta que no. En general, puede determinarse que un grafo no es plano, si en su diseño puede encontrase una estructura análoga (conocida como menor) a $K_{5}$ o a $K_{3,3}$.

Establecer qué grafos son planos no es obvio, y es un problema que tiene que ver con topología.

### Coloración de grafos

Si $G=(V,E)$ es un grafo no dirigido, una coloración propia de $G$, ocurre cuando coloreamos los vértices de $G$ de modo que si ${a,b}$ es una arista en $G$ entonces $a$ y $b$ tienen diferentes colores (por lo tanto, los vértices adyacentes tienen colores diferentes). El número mínimo de colores necesarios para una coloración propia de $G$ es el número cromático de $G$ y se escribe como $C(G)$. Sea $G$ un grafo no dirigido sea $\lambda$ el número de colores disponibles para la coloración propia de los vértices de $G$. Nuestro objetivo es encontrar una función polinomial $P(G,\lambda )$, en la variable $\lambda$, llamada polinomio cromático de $G$, que nos indique el número de coloraciones propias diferentes de los vértices de $G$, usando un máximo de $\lambda$ colores.

Descomposición de polinomios cromáticos. Si $G=(V,E)$ es un grafo conexo y $e\in E$, entonces $P(G,\lambda )=P(G+e,\lambda )+P(G/e,\lambda )$, donde $G/e$ es el grafo se obtiene por contracción de aristas.

Para cualquier grafo $G$, el término constante en $P(G,\lambda )$ es $0$.

Sea $G=(V,E)\land |E|=0$, la suma de los coeficientes de $P(G,\lambda )$ es $0$.

Sea $G=(V,E)$ tal que $\{a,b\}\in E\land \{a,b\}=e\not \in E$, escribimos $G+e$ para el grafo que se obtiene de $G$ al añadir la arista $e=\{a,b\}$. Al identificar los vértices a y b en $G$, obtenemos el subgrafo $G++\,e$ de $G$.

**Teorema de los cuatro colores**

Este problema famoso relativo a los grafos trata acerca de la cantidad de colores que son necesarios para dibujar un mapa político, con la condición obvia que dos países adyacentes no puedan tener el mismo color. Se supone que los países son de un solo pedazo, y que el mundo es esférico o plano. El mapa siguiente muestra que tres colores no bastan: si se empieza por el país central $a$ y se esfuerza uno en utilizar el menor número de colores, entonces en la corona alrededor de $a$ alternan dos colores. Llegando al país $h$ se tiene que introducir un cuarto color. Lo mismo sucede en $i$ si se emplea el mismo método. Sin embargo,si el mapa tiene forma de toroide, el teorema afirma que con cuatro colores siempre es posible realizar la coloración con las características requeridas.

La forma precisa de cada país no importa; lo único relevante es saber qué país toca a qué otro. Estos datos están incluidos en el grafo donde los vértices son los países y las aristas conectan los que justamente son adyacentes. Entonces la cuestión equivale a atribuir a cada vértice un color distinto del de sus vecinos.

Hemos visto que tres colores no son suficientes, y demostrar que con cinco siempre se llega, es bastante fácil. Pero el teorema de los cuatro colores no es nada obvio. Prueba de ello es que se han tenido que emplear ordenadores para acabar la demostración (se ha hecho un programa que permitió verificar una multitud de casos, lo que ahorró muchísimo tiempo a los matemáticos). Fue la primera vez que la comunidad matemática aceptó una demostración asistida por ordenador, lo que creó en su día una cierta polémica dentro de dicha comunidad.

## Caracterización de grafos

### Grafo simple

Un grafo es simple si a lo sumo existe 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.

Un grafo que no es simple se denomina multigrafo.

En la Teoría de grafos el concepto de grafo simple es muy recurrido en la definición de otros entes, como los de grafos completos, grafos bipartidos completos, árboles y otros más.

Las definiciones aportan una formalización lógica a hechos abstractos o naturales, muchas veces ya definidos de forma intuitiva. En este caso la imagen de grafo simple es fácil de reconocer ante otro que no lo es; bien por la presencia de lazos o de más de una arista entre los pares de vértices.

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

Un grafo es doblemente conexo si cada par de vértices está conectado por al menos dos caminos disjuntos; es decir, es conexo y no existe un vértice tal que al sacarlo el grafo resultante sea disconexo.

Es posible determinar si un grafo es conexo usando un algoritmo Búsqueda en anchura (BFS) o Búsqueda en profundidad (DFS).

En términos matemáticos la propiedad de un grafo (fuertemente) conexo permite establecer una relación de equivalencia para sus vértices, la cual lleva a una partición de estos en "componentes (fuertemente) conexos", es decir, porciones del grafo, que son (fuertemente) conexas cuando se consideran como grafos aislados. Esta propiedad es importante para muchas demostraciones en teoría de grafos.

### Grafos completos

Un grafo es completo si existen aristas uniendo todos los pares posibles de vértices. Es decir, todo par de vértices (a, b) debe tener una arista e que los une.

El conjunto de los grafos completos es denominado usualmente $K$, siendo $K_{n}$ el grafo completo de $n$ vértices.

Un $K_{n}$, es decir, grafo completo de $n$ vértices tiene exactamente ${\frac {n(n-1)}{2}}$ aristas.

La representación gráfica de los $K_{n}$ como los vértices de un polígono regular da cuenta de su peculiar estructura.

### Grafos bipartitos

Un grafo G es bipartito si puede expresar como $G=\{V_{1}\cup V_{2},A\}$ (es decir, sus vértices son la unión de dos grupos de vértices), bajo las siguientes condiciones:

* $V_{1}$ y $V_{2}$ son disjuntos y no vacíos.
* Cada arista de $A$ une un vértice de $V_{1}$ con uno de $V_{2}$.
* No existen aristas uniendo dos elementos de $V_{1}$; análogamente para $V_{2}$.

Bajo estas condiciones, el grafo se considera bipartito, y puede describirse informalmente como el grafo que une o relaciona dos conjuntos de elementos diferentes, como aquellos resultantes de los ejercicios y rompecabezas en los que debe unirse un elemento de la columna A con un elemento de la columna B.

### Homeomorfismo de grafos

Dos grafos $G_{1}$ y $G_{2}$ son homeomorfos si ambos pueden obtenerse a partir del mismo grafo con una sucesión de subdivisiones elementales de aristas.

### Árboles

Un grafo que no tiene ciclos y que conecta a todos los puntos, se llama un árbol. En un grafo con n vértices, los árboles tienen exactamente n - 1 aristas, y hay $n^{n-2}$ árboles posibles. Su importancia radica en que los árboles son grafos que conectan todos los vértices utilizando el menor número posible de aristas. Un importante campo de aplicación de su estudio se encuentra en el análisis filogenético, el de la filiación de entidades que derivan unas de otras en un proceso evolutivo, que se aplica sobre todo a la averiguación del parentesco entre especies; aunque se ha usado también, por ejemplo, en el estudio del parentesco entre lenguas.

### Grafos ponderados o etiquetados

En muchos casos, es preciso atribuir a cada arista un número específico, llamado valuación, ponderación o coste según el contexto, y se obtiene así un grafo valuado. Formalmente, es un grafo con una función v: A → R+.

Por ejemplo, un representante comercial tiene que visitar n ciudades conectadas entre sí por carreteras; su interés previsible será minimizar la distancia recorrida (o el tiempo, si se pueden prever atascos). El grafo correspondiente tendrá como vértices las ciudades, como aristas las carreteras y la valuación será la distancia entre ellas.

### Diámetro

En un grafo, la distancia entre dos vértices es el menor número de aristas de un recorrido entre ellos. El diámetro, en una figura como un grafo, es la mayor distancia entre todos los pares de puntos de la misma.

El diámetro de los $K_{n}$ es 1, y el de los $K_{n,p}$ es 2. Un diámetro infinito puede significar que el grafo tiene una infinidad de vértices o simplemente que no es conexo. También se puede considerar el diámetro promedio, como el promedio de las distancias entre dos vértices.

Una aplicación de este concepto es la hipótesis conocida como los seis grados de separación, que plantea que, si cada uno de los habitantes de la Tierra se representa por un vértice y dos personas están conectadas por una arista si se conocen personalmente, la distancia entre dos personas escogidas al azar entre todos los habitantes de la Tierra es de seis aristas o menos.

Internet permite de ver desde otro enfoque la idea del diámetro: considérese por ejemplo que si se descartan los sitios que no tienen enlaces, y se escogen dos páginas web al azar, cabría preguntarse en cuántos clics se puede pasar del primer sitio al segundo. Si se supone que de cualquier sitio que enlace con otros sitios se puede llegar a cualquier otro, entonces las mayor cantidad de clics necesarios para llegar de cualquier web a otra sería el "diámetro" de la Red, vista como un grafo cuyos vértices son los sitios, y cuyas aristas son los enlaces entre los sitios.

Este concepto refleja mejor la complejidad de una red que el número de sus elementos.

## Aplicaciones

La teoría de grafos es clave en la sociometría y el análisis de redes sociales. También se ha utilizado en varias áreas de las ciencias sociales, tales como la antropología, psicología social, comunicación, negocios, investigación de organizaciones y geografía.

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 como pueden ser el Dibujo computacional o en á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 se pueden 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 (PERT) en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos.

Una importante aplicación de la teoría de grafos es en el campo de la informática, ya que ha servido para la resolución de importantes y complejos algoritmos. Un claro ejemplo es el Algoritmo de Dijkstra, utilizado para la determinación del camino más corto en el recorrido de un grafo con determinados pesos en sus vértices.

Dentro de este campo, un grafo es considerado un tipo de dato abstracto TAD.

El científico estadounidense Donald Knuth estableció los grafos planos como base de determinados estudios y descubrimientos realizados por él.

Por otra parte, destaca el Algoritmo de Kruskal, el cual nos permite buscar un subconjunto de aristas que incluye todos los vértices, estableciendo como mínimo el valor de las aristas.

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 (SAPR). Apoyo matemático de los sistemas modernos para el procesamiento de la información. Acude en las investigaciones nucleares (técnica de diagramas de Feynman).

Los grafos son importantes en el estudio de la biología y hábitat. El vértice representa un hábitat y las aristas (o "edges" en inglés) representa 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.

* Mapas conceptuales
* Plano de estaciones del metro.
* Plano de autopistas.
* Circuito eléctrico
* Sociograma de una red social
* Topología de red de computadores
* Organigramas
* Isomeros
* Arquitectura de redes de telefonía móvil
* Draws de eliminación directa (ej: tenis)

## Algoritmos importantes

* Algoritmo de búsqueda en anchura (BFS)
* Algoritmo de búsqueda en profundidad (DFS)
* Algoritmo de búsqueda A*
* Algoritmo del vecino más cercano
* Ordenación topológica de un grafo
* Algoritmo de cálculo de los componentes fuertemente conexos de un grafo
* Algoritmo de Dijkstra
* Algoritmo de Bellman-Ford
* Algoritmo de Prim
* Algoritmo de Ford-Fulkerson
* Algoritmo de Kruskal
* Algoritmo de Floyd-Warshall

## Investigadores relevantes en teoría de grafos

* Alon, Noga
* Berge, Claude
* Bollobás, Béla
* Brightwell, Graham
* Chung, Fan
* Dirac, Gabriel Andrew
* Dijkstra, Edsger
* Edmonds, Jack
* Erdős, Paul
* Euler, Leonhard
* Faudree, Ralph
* Golumbic, Martin
* Graham, Ronald
* Harary, Frank
* Heawood, Percy John
* Kaufmann, Walter Arnold
* Kőnig, Dénes
* Kuratowski, Kazimierz
* Lovász, László
* Nešetřil, Jaroslav
* Rényi, Alfréd
* Ringel, Gerhard
* Robertson, Neil
* Seymour, Paul
* Szemerédi, Endre
* Thomas, Robin
* Thomassen, Carsten
* Turán, Pál
* Tutte, W. T.
* Whitney, Hassler
