Materia: #técnicas_y_diseños_de_algoritmos
Tags: Estructura
Grafos
Un grafo
Dados
Dibujar los grafos es sumamente útil para entender muchas de sus propiedades. Los vértices son representados mediante puntos y las aristas mediante líneas uniendo los vértices que la definen. No hay una única forma de dibujar un grafo, las posiciones relativas de los vértices son irrelevantes, como así también la de las aristas.
graph LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id6((6)) id7((7)) id1 --- id2 id2 --- id3 id3 --- id4 id4 --- id1 id1 --- id5 id6 --- id7
En el ejemplo del dibujo, esta representado el grafo
Multígrafos y pseudografos
Un multígrafo es un grafo en el que puede haber varias aristas entre el mismo par de vértices distintos.
Un pseudografo es un grafo en el que puede haber varias aristas entre cada par de vértices y también puede haber aristas (loops) que unan a un vértice con sí mismo.
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id6((6)) id1 --- id1 id1 --- id2 id2 --- id3 id2 --- id3 id2 --- id6 id3 --- id6 id3 --- id5 id3 --- id4 id4 --- id6 id4 --- id5 id4 --- id5 id4 --- id5 id6 --- id6
En el dibujo se ve representado un multipseudografo.
Grado de los vértices
El grado de un vértice
Las vértices y las aristas de un grafo están relacionadas por la siguiente formula:
Un grafo se dice completo si todos sus vértices son adyacentes entre sí. Notaremos como
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id1 --- id2 id2 --- id3 id3 --- id4 id4 --- id1 id1 --- id3 id2 --- id4
En el dibujo se puede ver un ejemplo de grafo completo.
Dado un grafo
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id2 id1 --- id3 id2 --- id3 id2 --- id4 id3 --- id5 id4 --- id5
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id5 id2 --- id5 id3 --- id4 id1 --- id4
En los dibujos podemos ver dos grafos, cada uno siendo el complemento del otro.
Dado un grafo
Subgrafos y subgrafos inducidos
Dado un grafo
Si
Un subgrafo
flowchart LR name(Grafo G) id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id2 id1 --- id3 id2 --- id4 id3 --- id5 id3 --- id4 id4 --- id5
flowchart LR name(Grafo H) id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id2 id2 --- id4 id3 --- id5 id4 --- id5
flowchart LR name(Grafo I) id1((1)) id2((2)) id3((3)) id5((5)) id1 --- id2 id1 --- id3 id3 --- id5
Analizando los dibujos, podemos decir que
Moverse por el grafo
Existen muchas formas de moverse a través de un grafo dado. En particular, vamos a utilizar los siguientes conceptos:
-
Un recorrido en un grafo es una secuencia alternada de vértices y aristas
tal que un extremo de la arista es y el otro es para . Decimos que es un recorrido entre y .
En los grafos (no multi ni pseudo) un recorrido queda definido por la secuencia de vértices:. -
Un camino es un recorrido que no pasa dos veces por el mismo vértice.
-
Una sección de un camino
es un subsecuencia de términos consecutivos de , y lo notamos como . -
Un circuito es un recorrido que empieza y termina en el mismo vértice.
-
Un ciclo o circuito simple es un circuito de 3 o más vértices que no pasa dos veces por el mismo vértice.
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id2 id1 --- id3 id2 --- id3 id2 --- id4 id2 --- id5 id3 --- id5 id4 --- id5
Dado un recorrido
La función distancia cumple las siguientes propiedades para todo
y si y sólo si .
Grafos conexos
Un grafo
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id6((6)) id7((7)) id8((8)) id9((9)) id10((10)) id1 --- id2 id3 --- id4 id4 --- id1 id1 --- id5 id5 --- id3 id6 --- id7 id8 --- id9 id9 --- id10 id10 --- id8
En este dibujo podemos ver un grafo no conexo con 3 componentes conexas.
flowchart LR id1((1)) id2((2)) id3((3)) id4((4)) id5((5)) id1 --- id2 id2 --- id3 id4 --- id1 id1 --- id5
Por otro lado, en esta otra imagen se puede ver un grafo conexo.