Es la representacin grfica de los datos de una situacin particular,en
concreto un tipo abstracto de datos que consiste en un conjunto de nodos (cuando se usan listas enlazadas; tambin llamados vrtices) y un conjunto de arcos (aristas) que establecen relaciones entre los nodos; G = (V,E,j ), en donde V y A son conjuntos finitos, y j es una aplicacin que hace corresponder a cada elemento de A un par de elementos de V. Los elementos de V y de A se llaman, respectivamente, "vrtices" y "aristas". De G, y j asocia entonces a cada arista con sus dos vrtices. Aristas Son las lneas con las que se unen las aristas de un grafo y con la que se construyen tambin caminos. Si la arista carece de direccin se denota indistintamente {a, b} o {b, a}, siendo a y b los vrtices que une. Si {a, b} es una arista, a los vrtices a y b se les llama sus extremos. Aristas Adyacentes: Si convergen en el mismo vrtice. Aristas Paralelas: Si el vrtice inicial y el final son el mismo. Aristas Cclicas: Arista que parte de un vrtice para entrar en el mismo. Cruce: Son dos aristas que cruzan en un punto. Vrtices
Son los puntos o nodos con los que esta conformado un grafo.
Vrtices Adyacentes: si tenemos un par de vrtices de un grafo (U, V) y si tenemos un arista que los une, entonces U y V son vrtices adyacentes y se dice que U es el vrtice inicial y V el vrtice adyacente. Vrtice Aislado: Es un vrtice de grado cero. Vrtice Terminal: Es un vrtice de grado 1.
Grado de un grafo Es el nmero de aristas de las que el vertice es extremo. Un vrtice es `par' o `impar' segn lo sea su grado.
Grado de incidencia positivo: El grado de incidencia negativo de un nodo nj es el nmero de arcos que tienen como nodo inicial a nj. Ejemplo: El grado de incidencia de 1 es igual a 3. Grado de incidencia negativo: El grado de incidencia negativo de un nodo nj es el nmero de arcos que terminan en nj. Ejemplo: El grado de incidencia negativo de 1 es igual a 1. Grado de un nodo: Es el grado de incidencia positivo menos el grado de incidencia negativo del nodo. Ejemplo: El grado de 1 es igual a 3 1 = 2, el grado del nodo 4 es 2 2 = 0. Para grafos no dirigidos es el nmero de lneas asociadas al nodo. Los grafos se pueden clasificar en dos grupos: 1. Grafo no Dirigido En un grafo no dirigido el par de vrtices que representa un arco no est ordenado, Por lo tanto, los pares (v1, v2) y (v2, v1) representan el mismo arco. Las estructuras de datos no lineales se caracterizan por no existir una relacin de adyacencia, entre sus elementos, es decir, un elemento puede estar relacionado con cero, uno o ms elementos. La estructura no lineal de datos ms general es el grafo donde sus nodos pueden relacionarse de cualquier manera sin una relacin de orden predefinida.
2. Grafo Dirigido (Dgrafo) En un grafo dirigido cada arco est representado por un par ordenado de vrtices, de forma que representan dos arcos diferentes. por ejemplo: G1 = (V1, A1) V1 = {1, 2, 3, 4} A1 = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)} G2 = (V2, A2) V2 = {1, 2, 3, 4, 5, 6} A2 = {(1, 2), (1, 3), (2, 4), (2, 5), (3, 6)} G3 = (V3, A3) V3 = {1, 2, 3} A3 = {<1, 2>, <2, 1>, <2, 3> }
Tambin se puede decir que un grafo dirigido es aquel que contiene aristas dirigidas, como en el siguiente caso.
Una de las aplicaciones mas importantes es de hallar el camino mas corto hacia un destino.
Principales tipos de grafos:
Grafo regular: Aquel con el mismo grado en todos los vrtices. Si ese grado es k lo llamaremos k-regular. Grafo bipartito: Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vrtices pertenecientes al mismo conjunto. Grafo completo: Aquel con una arista entre cada par de vrtices. Un grafo completo con n vrtices se denota Kn. Un grafo bipartito regular: se denota Km, n donde m, n es el grado de cada conjunto disjunto de vrtices. Grafo nulo: Cuando los vrtices que lo componen no estn conectados, esto es, que son vrtices aislados.
Grafos Isomorfos: Cuando existe una correspondencia biunvoca (uno a uno), entre sus vrtices de tal forma que dos de estos quedan unidos por una arista en comn. Grafos Platnicos: Son los Grafos formados por los vrtices y aristas de los cinco slidos regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro. Grafos Eulerianos: aquel grafo que contiene un camino euleriano.
*Un camino euleriano se define un camino que contiene todos los arcos del grafo.
Grafos Conexos: un grafo conexo es un grafo no dirigido de modo que para todo par x, y de vrtices diferentes hay un camino de x a y. Note que un grafo conexo de orden al menos 2 no puede tener vrtices cualquier par de nodos existe al menos un camino que los une.
rboles.
Un rbol se define como un tipo de grafo que no contiene ciclos, es decir es un grafo tambin acclico, pero a su vez es conexo.
Bosques de rboles
Los bosques de rboles son un caso similar a los rboles, son acclicos, pero no son conexos.
Recorrido de un grafo
Recorrer un grafo significa tratar de alcanzar todos los nodos que estn relacionados con uno que llamaremos nodo de salida. Existen bsicamente dos tcnicas para recorrer un grafo: el recorrido en anchura; y el recorrido en profundidad.
Recorrido en anchura: El recorrido en anchura supone recorrer el grafo, a partir de un nodo dado, en niveles, es decir, primero los que estn a una distancia de un arco del nodo de salida, despus los que estn a dos arcos de distancia, y as sucesivamente hasta alcanzar todos los nodos a los que se pudiese llegar desde el nodo salida.
Recorrido en profundidad: el recorrido en profundidad trata de buscar los caminos que parten desde el nodo de salida hasta que ya no es posible avanzar ms. Cuando ya no puede avanzarse ms sobre el camino elegido, se vuelve atrs en busca de caminos alternativos, que no se estudiaron previamente.
Representacin de grafos en programas
Hay tres maneras de representar un grafo en un programa: mediante matrices, mediante listas y mediante matrices dispersas.
Representacin mediante matrices: La forma ms fcil de guardar la informacin de los nodos es mediante la utilizacin de un vector que indexe los nodos, de manera que los arcos entre los nodos se pueden ver como relaciones entre los ndices. Esta relacin entre ndices se puede guardar en una matriz, que llamaremos de adyacencia. Representacin mediante listas: En las listas de adyacencia lo que haremos ser guardar por cada nodo, adems de la informacin que pueda contener el propio nodo, una lista dinmica con los nodos a los que se puede acceder desde l. La informacin de los nodos se puede guardar en un vector, al igual que antes, o en otra lista dinmica. Representacin mediante matrices dispersas: Para evitar uno de los problemas que tenemos con las listas de adyacencia, el cual es la dificultad de obtener las relaciones inversas, podemos utilizar las matrices dispersas, que contienen tanta informacin como las matrices de adyacencia, pero, en principio, no ocupan tanta memoria como las matrices, ya que al igual que en las listas de adyacencia, slo representaremos aquellos enlaces que existen en el grafo. Ciclo de un grafo.
Ciclo: Es una cadena finita donde el nodo inicial de la cadena coincide con el nodo terminal de la misma. Ciclo simple: Es el ciclo que a su vez es una cadena simple.