2. ÍNDICE
Contenido
1.- ELEMENTOS Y CARACTERÍSTICAS DE LOS GRAFOS ------------------------------------------3
1.1 Componentes de un grafo (vértices, aristas, lazos, valencia) -----------------------3
1.2 TIPOS DE GRAFOS --------------------------------------------------------------------------------------4
2.- REPRESENTACIÓN DE LOS GRAFOS ------------------------------------------------------------------6
3 ALGORITMOS DE RECORRIDO Y BÚSQUEDA ---------------------------------------------------7
3.1 EL CAMINO MÁS CORTO -----------------------------------------------------------------------------7
3.2 A LO ANCHO ------------------------------------------------------------------------------------------------8
3.3 EN PROFUNDIDAD ---------------------------------------------------------------------------------------8
4.- ARBOLES -------------------------------------------------------------------------------------------------------------8
4.1 COMPONENTES -----------------------------------------------------------------------------------------------9
4.2 PROPIEDADES -------------------------------------------------------------------------------------------------9
4.3 CLASIFICACIÓN -----------------------------------------------------------------------------------------------9
4.4 ÁRBOLES CON PESO ------------------------------------------------------------------------------------- 10
4.5 RECORRIDO DE UN ÁRBOL --------------------------------------------------------------------------- 10
5.- REDES --------------------------------------------------------------------------------------------------------------- 11
2
3. 1.- ELEMENTOS Y CARACTERÍSTICAS DE LOS GRAFOS
En ciencias de la computación, la teoría de grafos estudia las propiedades de los
grafos (gráficas). El grafo es un conjunto de objetos llamados vértices (nodos) y
una selección de pares de vértices, llamados aristas. El diagrama de Grafos se
representa por una serie de vértices conectados las aristas.
1.1 Componentes de un grafo (vértices, aristas, lazos, valencia)
VÉRTICES
3
4. Son los nodos con los que se forman los grafos. Los grafos no dirigidos está
formado por un conjunto de vértices y de aristas; y un grafo dirigido está
compuesto por un conjunto de vértices y arcos (pares ordenados de vértices).
Se dice que un vértice es:
Adyacente: Si tenemos un par de vértices de un grafo (U, V), y si tenemos
un arista que los une, entonces U y V son vértices adyacentes y se dice que
U es el vértice inicial y V el vértice adyacente.
Aislado: Es el vértice de grado Cero.
Terminal: Vértice de grado 1
Un vértice de corte es aquel que al removerlo desconecta al grafo restante. Un
conjunto independiente es un conjunto de vértices tal que ninguno es adyacente a
otro, y una cobertura de vértices es un conjunto de vértices que incluye los puntos
finales de cada arista en un grafo.
ARISTAS
La arista es la relación que tienen dos vértices de un grafo.
Las aristas se representan como una línea que une a dos vértices (esto es para
grafos no dirigidos); si el grafo es dirigido, entonces la arista se representa como
una flecha.
LAZOS
Se denomina lazo cuando una arista conecta a un mismo vértice
VALENCIA
El grado o valencia de un vértice es el número de aristas incidentes en él. Para un
grafo con bucles, éstos son contados por dos. En un digrafo, podemos distinguir el
grado saliente (el número de aristas que dejan el vértice) y el grado entrante (el
número de aristas que entran en un vértice). El grado de un vértice sería la suma
de ambos números.
1.2 TIPOS DE GRAFOS
SIMPLES
4
5. Un grafo simple es un par G = (V;E) donde V es un
conjunto _nito no vacío de elementos llamados vértices y E es un conjunto
de pares no ordenados de elementos distintos de V llamados aristas. Por
razones técnicas se supondrá que V E = ᴓ
COMPLETOS
Un grafo completo es un grafo simple donde cada par de vértices está conectado
por una arista.
Un grafo completo de n vértices tiene n(n − 1) / 2 aristas, y se nota Kn. Es un grafo
regular con todos sus vértices de gradon − 1. Ningún grafo completo tiene lazos y
está conectado totalmente, por ende, la única forma de hacer disconexo el grafo
con una eliminación de vértices es aplicarla a todos.
BIPARTIDOS
Es un grafo cuyos vértices se pueden separar en dos conjuntos disjuntosV1 y V2 y
las aristas siempre unen vértices de un conjunto con vértices de otro:
Los grafos bipartitos suelen representarse gráficamente con dos columnas (o filas)
de vértices y las aristas uniendo vértices de columnas (o filas) diferentes.
Los dos conjuntos U y V pueden ser pensados como un coloreo del grafo con dos
colores: si pintamos los vértices en U de azul y los vértices deV de verde
obtenemos un grafo de dos colores donde cada arista tiene un vértice azul y el
otro verde. Por otro lado, si un gráfico no tiene la propiedad de que se puede
colorear con dos colores no es bipartito.
Un grafo bipartito suele con la partición de los vértices en U y V suele denotarse G
= (U, V, E). Si |U| =|V|, esto es, si los dos subconjuntos tiene la misma cantidad de
elementos, decimos que el grafo bipartito G es balanceado.
PLANOS
Un grafo es plano si, y sólo si, nocontiene ningún subgrafo isomorfo a K5 ni a
K3,3, ni a subdivisiones de ellos.
Un grafo no es plano si no puede ser dibujado sobre un plano sin que sus aristas se
intersequen. Los grafos K5 y el K3,3 son los grafos no planos minimales, lo cual nos
permitirán caracterizar el resto de los grafos no planos.
CONEXOS
En matemáticas y ciencias de la computación es aquel grafo que entre cualquier
par de sus vértices existe un Camino (Grafo) que los une.
PONDERADOS
5
6. Un grafo ponderado o grafo con pesos es un grafo G(V, E), en el que a cada arista
se le asigna un valor real no negativo o peso. Sobre el conjunto de aristas se
introduce una función peso. El peso de un subgrafo de un grafo ponderado es la
suma de los pesos de todas sus aristas.
2.- REPRESENTACIÓN DE LOS GRAFOS
1. La representación gráfica: Adecuada para la interpretación de grafos
pequeños o medianos.
2. Representación por matriz asociada: Para la interpretación de grafos con
programas informáticos.
3. Diccionario de grafos: Define el grafo de forma compacta en términos de
memoria.
6
7. 3 ALGORITMOS DE RECORRIDO Y BÚSQUEDA
3.1 EL CAMINO MÁS CORTO
El algoritmo de Dijkstra resuelve el problema de encontrar los caminos más cortos
a partir de un origen, en grafos pesados que no tengan pesos negativos. El
algoritmo de Dijkstra es un algoritmo voraz que opera a partir de un conjunto S de
nodos cuya distancia más corta desde el origen ya es conocida. En principio, S
contiene sólo el nodo origen. En cada paso, se agrega algún nodo v a S, cuya
distancia desde el origen es la más corta posible. Bajo la hipótesis de que los
pesos son no negativos, siempre es posible encontrar un camino más corto entre
7
8. el origen y v que pasa sólo a través de los nodos de S, al que llamaremos
“especial”. En cada paso del algoritmo, se utiliza un arreglo D para registrar la
longitud del camino “especial” más corto a cada nodo. Una vez que S incluye
todos los nodos, todos los caminos son “especiales”, así que D contendrá la
distancia más corta del origen a cada vértice. Se puede utilizar un arreglo P, para
ir almacenando los caminos más cortos.
3.2 A LO ANCHO
En este algoritmo también se utiliza la estrategia de marcas los nodos como
“visitados” para detectar la culminación del recorrido, pero los nodos se recorren
de una manera ligeramente distinta.Este algoritmo puede crear menos ambientes
recursivos que el anterior porque visita mas nodos en un mismo ambiente, pero
esto depende de cómo este construido el grafo. El algoritmo se conoce como el
algoritmo de BFS (Breadth-First Search).
3.3 EN PROFUNDIDAD
Para efectuar un recorrido en profundidad de un grafo, se selecciona cualquier
nodocomo punto de partida (por lo general el primer nodo del grafo) y se marcan
todos los nodos del grafo como “no visitados”. El nodo inicial se marca como
“visitado” y si hay un nodo adyacente a este que no haya sido “visitado”, se toma
este nodo como nuevo punto de partida del recorrido. El recorrido culmina cuando
todos los nodos hayan sido visitados.
4.- ARBOLES
Es una estructura jerárquica aplicada sobre una colección de elementos u objetos
llamados nodos; uno de los cuales es conocido como raíz. Además se crea una
relación o parentesco entre los nodos dando lugar a términos como padre, hijo,
hermano, antecesor, sucesor, ancestro, etc… Formalmente se define un árbol de
tipo T como una estructura homogénea que es la concatenación de un elemento
de tipo T junto con un número finito de árboles disjuntos, llamados subárboles.
Una forma particular de árbol puede ser la estructura vacía. Un árbol es un grafo
simple en el cual existe un único camino entre cada par de vértices. Los árboles
8
9. representan las estructuras no lineales y dinámicas de datos más importantes en
computación. Dinámicas porque las estructuras de árbol pueden cambiar durante
la ejecución de un programa. No lineales, puesto que a cada elemento del árbol
pueden seguirle varios elementos.
4.1 COMPONENTES
1. Raíz: Un árbol recibe el nombre de árbol con raíz si cada vértice ha sido
designado raíz, en cuyo caso las aristas tienen una orientación natural
hacia o desde la raíz. Los árboles con raíz, a menudo con estructuras
adicionales como orden de los vecinos de cada vértice, son una estructura
clave en informática
2. Hoja: Es un nodo sin hijos. Los nodos que no son hojas se llaman internos.
3. Padre: Se dice que un nodo a es padre de un nodo b si existe un enlace
desde a hasta b (en ese caso, también decimos que b es hijo de a)
4. Hijo: Se dice que un nodo a es padre de un nodo b si existe un enlace
desde a hasta b (en ese caso, también decimos que b es hijo de a)
5. Descendientes: Son todos los vértices que se tienen como ancestro.
6. Ancestro: Cualquier nodo en el camino a la raíz de un nodo x es un
ancestro de x.
4.2 PROPIEDADES
Las propiedades de los árboles son:
Existe un único paseo entre dos vértices cualesquiera en un árbol.
El número de vértices en uno al número al número de aristas en un árbol
Un árbol con dos o más vértices tiene al menos dos hojas.
4.3 CLASIFICACIÓN
1. Altura: Llamamos altura de un árbol a la cantidad de vértices del sendero
más largo que exista en el árbol
2. Número de nodos: Cuando existen 2 o mas conexiones entre las hojas.
9
10. 4.4 ÁRBOLES CON PESO
Un grafo ponderado o grafo con pesos es un grafo G(V, E), en el que a cada
arista se le asigna un valor real no negativo o peso. Sobre el conjunto de aristas
se introduce una función peso . El peso de un subgrafo de un grafo
ponderado es la suma de los pesos de todas sus aristas.
4.5 RECORRIDO DE UN ÁRBOL
Los ordenamientos más importantes son llamados: preorden, post-orden y en-
orden y se definen recursivamente como sigue:
Si un árbol T es nulo, entonces, la lista vacía es el listado preorden, post-
orden y en-orden del árbol T.
Si T consiste de un sólo nodo n, entonces, n es el listado preorden, post-
orden y en-orden del árbol T.
Recorrido en PRE-ORDEN:
Visitar el raíz
Recorrer el subárbol izquierdo en pre-orden
Recorrer el subárbol derecho en pre-orden
Recorrido EN-ORDEN
Recorrer el subárbol izquierdo en en-orden
Visitar el raíz
Recorrer el subárbol derecho en en-orden
Recorrido en POST-ORDEN
Recorrer el subárbol izquierdo en post-orden
Recorrer el subárbol derecho en post-orden
Visitar el raíz
Si T es un árbol con raíz n y subárboles T1, T2, . . . , Tk, entonces, El listado
pre-orden de los nodos de T es la raíz n, seguida por los nodos de T1 en pre-
orden, después los nodos de T2 en preorden, y así, hasta los nodos de Tk en
pre-orden.
10
11. El listado post-orden de los nodos de T es los nodos de T1 en postorden,
seguidos de los nodos de T2 en post-orden, y así hasta los nodos de Tk en
post-orden, todos ellos seguidos de n. El listado en-orden de los nodos de T es
los nodos de T1 en-orden, seguidos por n, seguidos por los nodos de T2, . . . ,
Tk, cada grupo.
5.- REDES
11
12. TEOREMA DE FLUJO MÁXIMO
1. Todo flujo a través de una red conexa dirigida se origina en un nodo,
llamado fuente, y termina en otro llamado destino.
2. Los nodos restantes son los nodos de trasbordo.
3. Se permite el flujo a través de un arco solo en la dirección indicada por la
flecha, donde la cantidad máxima de flujo está dada por la capacidad del
arco.
4. El objetivo es maximizar la cantidad total de flujo de la fuente al destino.
Esta cantidad se mide en cualquiera de las dos maneras equivalentes, esto
es, la cantidad que sale de la fuente o la cantidad que entra al destino.
TEOREMA DE FLUJO MINIMO
Un corte T es una selección cualquiera de nodos de una red tal que la fuente F
está en T y el sumidero S no está en T. Vemos por lo tanto que S ∈ Tc.
Definición: Decimos que un corte es mínimo si la capacidad tiene un valor mínimo.
Ejemplo. La capacidad del corte del ejemplo 1 es w(F,e) + w(f,h) + w(c,d) = 3 + 6
+5 = 14
Teorema. Si tenemos una red R con flujo f y un corte T.
Entonces si la igualdad del teorema anterior se cumple se tiene un flujo máximo y
un corte mínimo. En este caso se tiene: f(i,j) = w(i,j) si i ∈ T, j NO∈ T y también f(i,j)
= 0 si i NO∈ T, j ∈ T.
A este teorema se le conoce como el teorema del flujo máximo y corte mínimo.
PAREOS
Supongamos que tenemos una relación entre dos conjuntos, por ejemplo el caso
de que 4 personas S1, S2, S3 y S4 solicitan trabajo y se tienen 4 trabajos
disponibles T1, T2, T3, T4: El primero está capacitado para los trabajos T2 y T4, el
segundo solicita a T1, T3 y T4 y el tercero a T2 y T4 y el cuarto para T2 y T4.Un
acoplamiento con el número máximo de aristas se obtiene cuando el flujo es
máximo. También es posible ver que se tiene un acoplamiento completo, o sea
que todos pueden conseguir trabajo, si el flujo equivale al número de elementos en
el primer conjunto.
12
13. REDES DE PETRI
Una red de Petri es un grafo dirigido bipartito, con un estado inicial, llamado
marcación inicial. Los dos componentes principales de la red de Petri son los sitios
(también conocidos como estados) y las transiciones.
Gráficamente, los sitios son dibujados como círculos y las transiciones como
barras o rectángulos. Las aristas del grafo son conocidas como arcos. Estos
tienen un peso específico, el cual es indicado por un número entero positivo, y van
de sitio a transición y viceversa. Por simplicidad, el peso de los arcos no se indica
cuando éste es igual a 1. Un arco que esté etiquetado con k puede ser
interpretado como k arcos paralelos.
El estado del sistema que la red esté modelando es representado con la
asignación de enteros no-negativos a los sitios. Esta asignación es conocida como
una marcación, la cual es representada gráficamente mediante unos pequeños
círculos negros dentro de un sitio p, llamados tokens . Si el número de tokens es
demasiado grande, los k tokens son representados con un número no-negativo
dentro del correspondiente sitio.
Las redes de Petri representan una alternativa para modelar sistemas, sus
características hacen que, para algunos problemas las redes de Petri funcionen de
una manera natural.
13