
Tabla de Contenidos
- 1. Tres definiciones, dos concesiones
- 2. La teoría de grafos nació de un multigrafo
- 3. Qué le hace un lazo al grado
- 4. Qué cambia la multiplicidad, y qué no puede cambiar
- 5. Todas las cotas de grafos simples dejan de cumplirse
- 6. Almacenamiento: donde la matriz de adyacencia se queda corta
- 7. A qué algoritmos les importa
- 8. Cuándo un multigrafo no es opcional
- 9. Simplificar, y lo que cuesta
- 10. Multigrafos dirigidos
- 11. Errores comunes
- 12. Glosario
- 13. Preguntas frecuentes
- 14. Referencias
1. Tres definiciones, dos concesiones
Hay dos cosas que un conjunto de pares no ordenados no puede expresar: una arista que une un vértice consigo mismo y dos aristas distintas que unen el mismo par. Permitirlas o no da tres objetos diferentes, y conviene usar bien los nombres, porque los teoremas se enuncian sobre objetos concretos.
El grafo simple es la opción por defecto en casi toda la literatura, y su definición es la de la guía de vértices y aristas:
G = (V, E) con E ⊆ [V]² cada arista es un subconjunto de 2 elementos de V
Como E es un conjunto de subconjuntos de 2 elementos, {v, v} no es admisible (tiene un solo elemento) y el mismo par no puede aparecer dos veces (un conjunto contiene cada elemento una sola vez). Ambas restricciones son consecuencias de la notación, no decisiones que alguien tomara.
Para levantarlas hace falta otro formalismo. El libro Graph Theory de Bondy y Murty da a las aristas una identidad propia y añade una función que indica qué par une cada una:
G = (V, E, ψ) con ψ: E → pares no ordenados de vértices (no necesariamente distintos)
Ahora e1 y e2 pueden ser elementos distintos de E con ψ(e1) = ψ(e2) = {u, v}, lo que forma un par de aristas paralelas, y ψ(e) = {v, v} es un lazo. Diestel llega al mismo punto con dos aplicaciones que envían cada arista a sus extremos, y West con una relación que asocia cada arista con sus extremos. El formalismo cambia; el contenido no.
| Objeto | Lazos | Aristas paralelas | Requiere |
|---|---|---|---|
| Grafo simple | No | No | E ⊆ [V]² |
| Multigrafo | Normalmente no | Sí | Una función de incidencia |
| Pseudografo | Sí | Sí | Una función de incidencia |
Dos advertencias sobre el propio vocabulario, porque causan confusión real al leer artículos:
- «Multigrafo» no se usa de forma coherente. Algunos autores permiten lazos en un multigrafo, otros lo reservan para «pseudografo», y unos pocos llaman «multigrafo» a cualquier grafo. Comprueba la definición de la fuente antes de citar uno de sus teoremas.
- «Grafo» suele significar «grafo simple». La mayoría de los textos lo dicen una vez en el capítulo uno y no lo repiten nunca. Un resultado enunciado para «grafos» a menudo lleva una hipótesis implícita de simplicidad, y la sección 5 muestra lo mal que fallan algunos sin ella.
2. La teoría de grafos nació de un multigrafo
No es un caso marginal añadido después. El problema con el que empezó la disciplina es un multigrafo, y deja de ser el mismo problema si lo simplificas.
El artículo de Euler de 1736 sobre los puentes de Königsberg modela cuatro masas de tierra unidas por siete puentes. Dos puentes conectan la orilla norte con la isla y otros dos conectan la orilla sur con la isla. Son aristas paralelas, y ningún grafo simple puede contenerlas.
El criterio de Euler trata de la paridad de los grados, y son los puentes paralelos los que llevan los grados a donde están:
Multigrafo de Königsberg 7 aristas grados 3, 5, 3, 3 cuatro impares → no hay camino euleriano
Grafo simple subyacente 5 aristas grados 2, 3, 2, 3 dos impares → existe un camino
Elimina los duplicados y la respuesta se invierte. La multiplicidad no es un adorno del modelo: es el modelo, y el detalle histórico de la historia de la teoría de grafos es inseparable del formalismo. Quien cargue los siete puentes en una estructura de datos que elimine aristas duplicadas en silencio concluirá que Euler se equivocó.
3. Qué le hace un lazo al grado
El grado cuenta extremos de aristas que llegan a un vértice, no aristas. Un lazo tiene dos extremos y ambos caen en el mismo vértice, así que:
Un lazo envaporta 2 adeg(v). Las aristas paralelas aportan 1 cada una, exactamente igual que aristas separadas.
Esa convención viene forzada, no elegida. El lema del apretón de manos cuenta de dos maneras los pares (vértice, extremo de arista en él), y toda arista, incluido un lazo, tiene exactamente dos extremos, así que ∑ deg(v) = 2m se cumple sin cambios en los pseudografos. Da a un lazo grado 1 y el teorema más antiguo de la disciplina se rompe de inmediato.
Algunas consecuencias que conviene tener presentes:
- Un vértice con un lazo y ninguna otra arista tiene grado 2, no 0, y no está aislado.
- El número de vértices de grado impar sigue siendo par, ya que la demostración solo usa
∑ deg(v) = 2m. - En un grafo simple se cumple
deg(v) = |N(v)|, el tamaño de la vecindad. En un multigrafo esa identidad falla: tres aristas paralelas hacia un mismo vecino dan grado 3 y un solo vecino. El código que calcula el grado como el tamaño de un conjunto de vecinos sin duplicados calcula el número equivocado.
4. Qué cambia la multiplicidad, y qué no puede cambiar
La pregunta útil no es «¿mi grafo es simple?», sino «¿la propiedad que calculo depende de la multiplicidad?». Las respuestas se dividen con claridad, y la división no es obvia.
| Propiedad | Aristas paralelas | Lazos | Por qué |
|---|---|---|---|
| Conexidad, componentes | Sin efecto | Sin efecto | La alcanzabilidad solo necesita una arista entre un par |
| Planaridad | Sin efecto | Sin efecto | Un multigrafo es planar exactamente cuando lo es su grafo simple subyacente |
| Bipartición | Sin efecto | La destruye | Un lazo es un recorrido cerrado impar de longitud 1 |
| Coloración propia de vértices | Sin efecto | La hace imposible | Las aristas paralelas imponen dos veces la misma restricción; un lazo exige que un vértice difiera de sí mismo |
| Grado, apretón de manos | Cada una cuenta 1 | Cuenta 2 | Extremos de aristas, no aristas |
| Cintura (ciclo más corto) | Baja a 2 | Baja a 1 | Dos aristas paralelas forman un ciclo de longitud 2 |
| Conexidad por aristas, corte mínimo | Cambia | Sin efecto | Cada copia paralela también debe cortarse |
| Número de árboles de expansión | Cambia | Sin efecto | Cada copia paralela da un árbol distinto |
| Flujo máximo | Cambia | Sin efecto | Las capacidades paralelas se suman |
| Camino o circuito euleriano | Cambia | Suma 2 a un grado | La paridad de los grados es todo el criterio |
Tres de esas filas merecen que se explique su razonamiento.
La coloración ignora las aristas paralelas, pero muere con los lazos. Una coloración propia exige que los extremos de cada arista reciban colores distintos. Una segunda copia de {u, v} repite una restricción que ya existe, así que el conjunto de coloraciones propias, y por tanto el número cromático y el polinomio cromático, son exactamente los del grafo simple subyacente. Un lazo exige c(v) ≠ c(v), que nada cumple, así que un pseudografo con un lazo no tiene ninguna coloración propia y su polinomio cromático es idénticamente cero. Por eso la coloración de grafos se enuncia casi siempre para grafos sin lazos.
El número de árboles de expansión sí depende de la multiplicidad. Dos vértices unidos por una sola arista tienen un árbol de expansión; unidos por dos aristas paralelas tienen dos, porque elegir una u otra arista da un árbol distinto. El teorema matriz-árbol de Kirchhoff, de 1847, los cuenta a partir de la matriz laplaciana, y se enuncia para multigrafos precisamente porque las multiplicidades entran en la matriz como conteos fuera de la diagonal. Las redes eléctricas, donde Kirchhoff se encontró con el problema, tienen con frecuencia componentes en paralelo.
Los cortes y los flujos dependen de la multiplicidad. El número mínimo de aristas cuya eliminación separa u de v es 1 cuando las une una sola arista y 2 cuando las unen dos. Como el flujo máximo es igual al corte mínimo, lo mismo vale para el flujo: k aristas paralelas de capacidad unitaria transportan k unidades. Esa es exactamente la razón por la que un multigrafo con capacidades unitarias es el modelo no ponderado natural de una red de flujo.
5. Todas las cotas de grafos simples dejan de cumplirse
Una gran parte de los resultados estándar lleva una hipótesis implícita de simplicidad, y sin ella no se degradan poco a poco. Fallan del todo.
| Resultado estándar | Grafo simple | Multigrafo |
|---|---|---|
| Número máximo de aristas | m ≤ n(n-1)/2 | Sin cota: las copias paralelas pueden repetirse libremente |
| Clasificación en disperso o denso | m = O(n) frente a Θ(n²) | Sin sentido sin una cota de multiplicidad |
| La matriz de adyacencia es 0/1 | Sí | No: las entradas son conteos |
| El grado es igual al tamaño de la vecindad | deg(v) = |N(v)| | Falla; el grado puede superar el número de vecinos |
| Fórmula de Euler para grafos planares | n - m + f = 2 | Se sigue cumpliendo, ya que cuenta caras, no simplicidad |
| Cota de aristas para grafos planares | m ≤ 3n - 6 para n ≥ 3 | Falla: las aristas paralelas delimitan caras de longitud 2 |
| Lema del apretón de manos | ∑ deg(v) = 2m | Se sigue cumpliendo, contando los lazos dos veces |
Las dos filas que sobreviven merecen tanta atención como las que fallan. El lema del apretón de manos y la fórmula poliédrica de Euler se demuestran contando incidencias, y a los argumentos de conteo no les importa si dos aristas unen por casualidad el mismo par. Las cotas que fallan son las que se demuestran eligiendo pares distintos de vértices, que es precisamente el paso que un multigrafo invalida.
La versión práctica de esta sección: cuando consultes una cota, comprueba si su demostración cuenta incidencias o cuenta pares. La primera clase se traslada a los multigrafos; la segunda, no.
6. Almacenamiento: donde la matriz de adyacencia se queda corta
Las tres representaciones estándar se degradan de forma muy distinta, y las diferencias deciden cuál usar.
La matriz de adyacencia deja de ser una matriz 0/1. La extensión natural guarda el número de aristas que unen cada par, así que la entrada (u, v) pasa a ser un conteo, y un lazo pone por convención 2 en la diagonal para que las sumas de filas sigan dando los grados. Funciona, pero tiene una limitación fatal para datos reales: un conteo no puede llevar información por arista. Si tus tres vuelos paralelos tienen cada uno un precio distinto, una matriz de conteos no tiene dónde guardarlos.
simple A[u][v] ∈ {0, 1}
multigrafo A[u][v] = número de aristas que unen u y v
pseudografo A[v][v] = 2 × (número de lazos en v) para que las sumas de filas sean los grados
La lista de adyacencia conserva los duplicados. La lista de u simplemente contiene a v tantas veces como aristas los unan. El código de recorrido no cambia, y BFS o DFS considerarán el mismo vecino varias veces, lo cual es inofensivo cuando la comprobación de visitados es sobre vértices.
La lista de aristas se convierte en el formato natural. Es la representación que realmente encaja con las matemáticas: cada arista es un registro con identidad propia, así que las aristas paralelas son simplemente registros distintos y los atributos por arista tienen dónde vivir. Es la definición mediante función de incidencia de la sección 1 expresada como estructura de datos.
De aquí se deduce un principio de diseño, y es lo más útil que puedes llevarte de esta sección:
En un multigrafo, las aristas necesitan identidades. Un par de extremos ya no identifica una arista, así que todo lo que se refiera a una arista, sea un emparejamiento, un árbol de expansión, un flujo o un borrado, debe referirse a un ID de arista y no a (u, v).
Casi todos los errores con multigrafos vienen de esa única frase. Guardar un árbol de expansión como un conjunto de pares de vértices, o un conjunto de aristas visitadas con clave (u, v), confunde en silencio las aristas paralelas y produce respuestas erróneas que ningún comprobador de tipos detectará.
7. A qué algoritmos les importa
La mayoría de los algoritmos de tipo recorrido son indiferentes a la multiplicidad, porque marcan vértices. Los que marcan o seleccionan aristas necesitan atención.
| Algoritmo | En un multigrafo | Qué vigilar |
|---|---|---|
| BFS y DFS | Funcionan sin cambios | Visitan dos veces un vecino duplicado y lo saltan; el conjunto de visitados es de vértices |
| Dijkstra | Funciona sin cambios | La relajación conserva de forma natural la más barata de varias aristas paralelas |
| Kruskal, Prim | Funcionan sin cambios | La prueba de ciclos rechaza automáticamente las copias redundantes |
| Camino o circuito euleriano | Necesita el multigrafo | Cada arista debe recorrerse una vez, así que las aristas paralelas son obligaciones separadas; marca IDs de arista, no pares |
| Problema del cartero chino | Necesita el multigrafo | Todo el método del algoritmo consiste en duplicar aristas, creando copias paralelas a propósito |
| Flujo máximo | Funciona, y la multiplicidad importa | Las capacidades paralelas se suman; mantenlas separadas o súmalas explícitamente |
| Corte mínimo de Karger | Produce multigrafos | Contraer una arista fusiona vértices y crea aristas paralelas; eliminar los duplicados destruye la corrección |
| Emparejamiento | Requiere cuidado | Las aristas paralelas dan opciones alternativas para el mismo par; los lazos nunca forman parte de un emparejamiento |
| Coloración de vértices | Ignora las aristas paralelas | Simplifica primero; un lazo significa que no existe coloración |
La fila de Karger es la que sorprende, y merece explicarse entera porque invierte el instinto habitual. El algoritmo aleatorizado de corte mínimo de Karger contrae repetidamente una arista elegida uniformemente al azar, fusionando sus dos extremos en un único vértice. La contracción convierte dos aristas que apuntaban a los dos vértices fusionados en dos aristas paralelas que apuntan al nuevo, y el análisis probabilístico del algoritmo depende de conservar todas las copias, porque la probabilidad de contraer una arista es proporcional a cuántas copias hay. Simplifica el grafo intermedio y el algoritmo deja de ser correcto. Lo mismo ocurre con el paso de contracción del algoritmo de árbol de expansión de Borůvka.
8. Cuándo un multigrafo no es opcional
Los multigrafos no son una rareza que haya que normalizar. Son el modelo honesto siempre que dos entidades puedan relacionarse más de una vez y las relaciones individuales importen:
- Redes de transporte. Dos ciudades unidas por tres vuelos distintos, o una carretera y una línea de tren entre el mismo par. Cada una tiene su propia duración, precio y capacidad.
- Circuitos eléctricos. Componentes en paralelo entre los mismos dos nodos, que es exactamente el contexto en el que Kirchhoff desarrolló el teorema matriz-árbol en 1847.
- Grafos de transacciones y pagos. Dos cuentas pueden hacer muchas transacciones entre sí; fusionarlas en una arista pierde importes, marcas de tiempo y el propio conteo, que suele ser la señal que se busca.
- Grafos de reacciones químicas y moleculares. Los enlaces dobles y triples son aristas paralelas en el modelo clásico de grafo de una molécula.
- Grafos de conocimiento y RDF. Dos entidades relacionadas por varios predicados distintos. Por eso estos datos suelen guardarse como ternas, que es una lista de aristas con una etiqueta por arista.
- Todo lo construido por contracción. El algoritmo de Karger, el de Borůvka y los pasos de condensación de muchos algoritmos de aproximación crean aristas paralelas mientras se ejecutan, sea cual sea la entrada.
- Problemas de rutas eulerianas. La limpieza de calles y las rutas postales necesitan recorrer cada calle física, y dos calles entre los mismos cruces son dos obligaciones.
9. Simplificar, y lo que cuesta
Convertir un multigrafo en un grafo simple suele ser la decisión correcta, y solo es seguro si sabes cuáles de las propiedades de la sección 4 estás a punto de cambiar. Hay tres formas estándar, y responden preguntas distintas:
| Método | Conserva | Pierde | Adecuado para |
|---|---|---|---|
| Fusionar las aristas paralelas en una, quitar los lazos | Conexidad, planaridad y número cromático, aunque quitar un lazo convierte un grafo no coloreable en uno coloreable | Cortes, flujos, número de árboles de expansión, estructura euleriana | Preguntas estructurales |
| Fusionar y sumar los pesos | La capacidad total, así que el flujo máximo y el corte mínimo sobreviven | Los atributos de cada arista | Problemas de flujo y corte |
| Fusionar y tomar el peso mínimo | Distancias de camino más corto | Las alternativas, así que los cortes y los flujos se rompen | Enrutamiento |
Fíjate en que la segunda y la tercera regla son incompatibles: sumar es correcto para capacidades e incorrecto para distancias, y tomar el mínimo es correcto para distancias e incorrecto para capacidades. Cuál se aplica depende de cómo se combinan los pesos a lo largo de un camino, que es el tema de la guía complementaria sobre grafos ponderados y no ponderados. Elegir la fusión equivocada responde en silencio a otra pregunta, y después el grafo parecerá perfectamente razonable.
Una cuarta opción suele ser mejor que todas ellas: conserva el multigrafo y deja que el algoritmo lo gestione. BFS, DFS, Dijkstra, Kruskal y Prim funcionan correctamente sobre multigrafos tal como están, así que simplificar a menudo no aporta nada y cuesta información.
10. Multigrafos dirigidos
Todo lo anterior se traslada a los grafos dirigidos, con una distinción adicional que conviene nombrar. En un digrafo, los arcos (u, v) y (v, u) ya son objetos distintos, lo cual no es multiplicidad sino dirección: ese par es un dígono, y un digrafo ordinario ya puede contener uno sin ampliar su definición. Muchos digrafos no contienen ninguno: un DAG nunca lo hace. La multiplicidad en el caso dirigido significa dos o más arcos con la misma cola y la misma cabeza, lo que de nuevo requiere una definición al estilo de la función de incidencia, como en el libro Digraphs de Bang-Jensen y Gutin.
Las consecuencias prácticas se trasladan directamente: el grado de entrada y el de salida cuentan arcos y no vecinos distintos, un lazo dirigido suma 1 a ambos, y las condiciones eulerianas en un multigrafo dirigido siguen comparando el grado de entrada con el de salida en cada vértice.
11. Errores comunes
- Cargar un multigrafo en una estructura que elimina duplicados. Un
Setde pares, una matriz de adyacencia de booleanos o una restricción de unicidad en base de datos sobre(u, v)descartan en silencio las aristas paralelas. El grafo parece correcto y todos los conteos están mal. - Identificar las aristas por sus extremos. En un multigrafo,
(u, v)nombra un conjunto de aristas, no una. Los emparejamientos, los árboles de expansión, los flujos y los conjuntos de aristas visitadas deben usar IDs de arista como clave. - Calcular el grado como el número de vecinos. Correcto en un grafo simple, incorrecto en cuanto se duplica una arista o aparece un lazo.
- Dar a un lazo grado 1. Aporta 2, y el lema del apretón de manos depende de ello.
- Aplicar
m ≤ n(n-1)/2. Esa cota, y todo lo que se deriva de ella, incluido el razonamiento sobre disperso frente a denso, necesita simplicidad. - Simplificar antes de un cálculo euleriano, de corte o de flujo. Los tres dependen de la multiplicidad, como demuestra Königsberg con el ejemplo fundacional de la disciplina.
- Eliminar duplicados dentro de un algoritmo de contracción. Los algoritmos de Karger y Borůvka crean aristas paralelas a propósito y necesitan conservarlas.
- Suponer que una biblioteca hace lo que esperas. Las bibliotecas de grafos difieren en si añadir una arista existente crea un duplicado, se ignora o lanza un error. Compruébalo una vez, en un test.
12. Glosario
| Término | Significado |
|---|---|
| Grafo simple | Sin lazos ni aristas paralelas; E ⊆ [V]² |
| Multigrafo | Se permiten aristas paralelas; los lazos, según el autor |
| Pseudografo | Se permiten lazos y aristas paralelas |
| Aristas paralelas | Dos o más aristas distintas con el mismo par de extremos; también llamadas aristas múltiples |
| Multiplicidad | El número de aristas que unen un par dado de vértices |
| Lazo | Una arista cuyos dos extremos son el mismo vértice; aporta 2 a su grado |
Función de incidencia ψ | Asigna a cada arista el par de vértices que une, dando a las aristas identidad propia |
| Grafo simple subyacente | Lo que queda tras fusionar las aristas paralelas y eliminar los lazos |
| Grafo sin lazos | Se permiten aristas paralelas, pero no lazos |
| Cintura | Longitud del ciclo más corto; 2 con aristas paralelas, 1 con un lazo |
13. Preguntas frecuentes
¿Cuál es la diferencia entre un grafo simple y un multigrafo?
Un grafo simple permite como mucho una arista entre cada par de vértices y ninguna arista de un vértice a sí mismo, porque su conjunto de aristas es un conjunto de subconjuntos de 2 elementos del conjunto de vértices. Un multigrafo permite varias aristas distintas que unen el mismo par, lo que requiere otra definición en la que las aristas tienen identidad propia y una función de incidencia indica qué par une cada una. Un pseudografo permite además lazos.
¿El problema de los puentes de Königsberg es un multigrafo?
Sí, y necesariamente. Dos puentes unen la orilla norte con la isla y otros dos unen la orilla sur con la isla, así que el modelo tiene aristas paralelas y no puede ser un grafo simple. Y eso importa: el multigrafo de los siete puentes tiene grados 3, 5, 3 y 3, los cuatro impares, así que no existe camino euleriano, que fue la respuesta de Euler en 1736. Fusiona los puentes paralelos y los grados pasan a ser 2, 3, 2 y 3, de los que solo dos son impares, así que existiría un camino. Simplificar cambia la respuesta.
¿Un lazo cuenta una o dos veces en el grado?
Dos veces. El grado cuenta los extremos de aristas que llegan a un vértice, y un lazo tiene dos extremos, ambos unidos al mismo vértice. La convención viene forzada, no elegida: el lema del apretón de manos dice que los grados suman el doble del número de aristas, y su demostración cuenta los dos extremos de cada arista, así que dar a un lazo grado 1 lo rompería. Un vértice que solo tiene un lazo tiene grado 2 y no está aislado.
¿Las aristas paralelas cambian el número cromático?
No. Una coloración propia exige que los dos extremos de cada arista sean distintos, y una arista duplicada solo repite una restricción que ya existe, así que las coloraciones propias de un multigrafo son exactamente las de su grafo simple subyacente, y el número cromático y el polinomio cromático no cambian. Un lazo es distinto: exigiría que un vértice tuviera un color distinto del suyo, así que un grafo con un lazo no tiene ninguna coloración propia.
¿Puedo simplificar un multigrafo antes de ejecutar un algoritmo?
Solo para propiedades que no dependan de la multiplicidad. La conexidad, la planaridad y la coloración sobreviven a la simplificación. Los cortes mínimos, los flujos máximos, el número de árboles de expansión, la cintura y los caminos eulerianos no. Si tienes que fusionar aristas paralelas ponderadas, suma los pesos para capacidades y toma el mínimo para distancias, y ten en cuenta que esas dos reglas son incompatibles. A menudo la mejor respuesta es no simplificar en absoluto, ya que BFS, DFS, Dijkstra, Kruskal y Prim funcionan correctamente sobre multigrafos sin cambios.
¿Cómo guardo un multigrafo en código?
Da a cada arista una identidad. Una lista de aristas formada por registros, cada uno con su propio ID, extremos y atributos, es la expresión directa de la definición mediante función de incidencia y el formato que escala a datos por arista. Una lista de adyacencia también sirve, guardando un vecino una vez por cada arista paralela. Una matriz de adyacencia solo puede guardar conteos, así que no puede llevar atributos por arista, y una matriz de booleanos borra la multiplicidad en silencio. Elijas lo que elijas, nunca uses el par de extremos como clave de un conjunto de aristas visitadas o seleccionadas.
14. Referencias
Las definiciones, teoremas y atribuciones anteriores proceden de estas fuentes, ordenadas cronológicamente.
- Euler, L. (1736). "Solutio problematis ad geometriam situs pertinentis." Commentarii Academiae Scientiarum Petropolitanae 8 (publicado en 1741), 128 a 140. Los puentes de Königsberg, modelados como multigrafo.
- Kirchhoff, G. (1847). "Über die Auflösung der Gleichungen, auf welche man bei der Untersuchung der linearen Vertheilung galvanischer Ströme geführt wird." Annalen der Physik 148(12), 497 a 508. El teorema matriz-árbol, desarrollado sobre redes eléctricas con componentes en paralelo.
- Harary, F. (1969). Graph Theory. Reading, Massachusetts: Addison-Wesley. Distingue grafos, multigrafos y pseudografos.
- Karger, D. R. (1993). "Global Min-cuts in RNC, and Other Ramifications of a Simple Min-cut Algorithm." Proceedings of the 4th Annual ACM-SIAM Symposium on Discrete Algorithms, 21 a 30. El algoritmo de contracción que crea aristas paralelas mientras se ejecuta.
- Karger, D. R. y Stein, C. (1996). "A New Approach to the Minimum Cut Problem." Journal of the ACM 43(4), 601 a 640.
- Bollobás, B. (1998). Modern Graph Theory. Graduate Texts in Mathematics 184. Nueva York: Springer.
- West, D. B. (2001). Introduction to Graph Theory, 2.ª edición. Upper Saddle River: Prentice Hall. Define un grafo mediante un conjunto de vértices, un conjunto de aristas y una relación de extremos, lo que admite lazos y aristas paralelas.
- Bondy, J. A. y Murty, U. S. R. (2008). Graph Theory. Graduate Texts in Mathematics 244. Londres: Springer. Origen de la definición mediante función de incidencia de la sección 1.
- Bang-Jensen, J. y Gutin, G. (2009). Digraphs: Theory, Algorithms and Applications, 2.ª edición. Londres: Springer. Multigrafos dirigidos.
- Cormen, T. H., Leiserson, C. E., Rivest, R. L. y Stein, C. (2009). Introduction to Algorithms, 3.ª edición. Cambridge, Massachusetts: MIT Press.
- Wilson, R. J. (2010). Introduction to Graph Theory, 5.ª edición. Harlow: Prentice Hall. Desarrolla los multigrafos junto a los grafos simples desde el primer capítulo.
- Chartrand, G., Lesniak, L. y Zhang, P. (2015). Graphs & Digraphs, 6.ª edición. Boca Raton: CRC Press.
- Diestel, R. (2017). Graph Theory, 5.ª edición. Graduate Texts in Mathematics 173. Berlín: Springer. Origen de la definición de grafo simple y de la formulación de multigrafo con dos aplicaciones de extremos.
Construye tú mismo los siete puentes
Coloca las cuatro masas de tierra, añade los puentes paralelos hacia la isla y comprueba los grados. Después elimina un duplicado y mira cómo cambia la paridad.
Abrir el visualizador