Post on 05-Jul-2015
transcript
UNIVERSIDAD AUTONOMA DE CAMPECHE
FACULTAD DE INGENIERIA
ISC
INVESTIGACIÓN
CASANOVA RODRIGUEZ CECILIA DEL CARMEN
20 DE JUNIO DE 2011
ESTRUCTURA DE DATOS I INVESTIGACION
INDICE
DEFINICION DE GRAFOS………………………………………………………………3
DE QUE CONSTA UN GRAFO…………………………………………………………4
TIPOS DE GRAFOS……………………………………………………………………..4
DIRIGIDOS NO DIRIGIDOS
TIPOS ESPECIALES DE GRAFOS……………………………………………………6
Regular Ciclo Completo Rueda Cubo Bipartito Bipartito completo Multígrafo Pseudografo Grafo conexo
CAMINNO………………………………………………………………………………..10
CICLO…………………………………………………………………………………….11
REPRESENTACION…………………………………………………………………....12
ARBOL……………………………………………………………………………………16
BIBLIOGRAFIA…………………………………………………………………………..17
2
ESTRUCTURA DE DATOS I INVESTIGACION
DEFINICION
Los grafos son estructuras discretas que aparecen ubicuamente en cada
disciplina donde se requiera modelar algo. Por ejemplo, sirven para representar:
◮ El esquema organizacional de una empresa;
◮ Una red de computadores;
◮ Un árbol genealógico;
◮ La interacción entre científicos;
◮ La web semántica, etc.
En general, los grafos son mapas conceptuales que nos ayudan a
representar nuestro conocimiento.
PUn grafo G está conformado por un conjunto no vacío V de vértices o
nodos, y un conjunto E de arcos o aristas, tal que cada e ∈ E tiene un par (v1, v2) ∈ V × V asociado. En tal caso, decimos que ‘e’ conecta v1 con v2. Note que dos
arcos diferentes pueden conectar al mismo par de vértices. En la anterior
definición V y E pueden ser finitos o infinitos.
Ejemplo: Para representar una red de computadores, podemos usar un
grafo en que cada nodo es un servidor y cada arco es una conexión.
¿DE QUE CONSTA UN GRAFO?
3
ESTRUCTURA DE DATOS I INVESTIGACION
Un grafo consta de dos cosas:
a) Un conjunto N cuyos elementos se llaman nodos, vértices o puntos.
b) Un conjunto S de parejas no ordenadas de nodos diferentes, llamadas
segmentos o aristas.
Denotamos un grafo por G(N, S) cuando queremos destacar las dos partes
de G.
Los nodos u y v se llaman adyacentes si hay un segmento {u, v}.
Representamos de una manera natural los grafos por diagramas en el
plano. O sea, cada nodo u de N se representa por un punto (o pequeño círculo) y
cada segmento s= {[pic] } se representa por una curva que conecta sus terminales
[pic].
TIPO DE GRAFOS
Gráficamente los vértices se representan por círculos, las líneas (o aristas)
pertenecen a los grafos no dirigidos y las flechas (o arcos) a los grafos dirigidos.
Existen dos tipos de grafos los dirigidos y los no dirigidos:
Un dígrafo o grafo dirigido .- Es un par D = (V, E) consistente en un
conjunto finito no vacío V cuyos miembros se llaman vértices y una familia
finita E de pares ordenados de vértices a cuyos elementos llamaremos
aristas o arcos. Al par (u, v) ∈E lo denotaremos por uv y diremos que u es
el extremo inicial y que v es el extremo final. Son aquellos en los cuales los
lados están orientados (flechas). Cada lado se representa entre ángulos,
separando sus vértices por comas y teniendo en cuenta <Vi, Vj >!=<Vj, Vi>.
En grafos dirigidos, para cada lado <A, B>, A, el cual es el vértice origen, se
conoce como la cola del lado y B, el cual es el vértice destino, se conoce
como cabeza del lado.
Un grafo dirigido (o dígrafo) consta de:
4
ESTRUCTURA DE DATOS I INVESTIGACION
1. un conjunto finito de vértices V
2. un conjunto de arcos E V × V (obsérvese que cada arco es un par
ordenado vértices)
Este es un ejemplo de un grafo dirigido
No dirigidos : Son aquellos en los cuales los lados no están orientados (No
son flechas). Cada lado se representa entre paréntesis, separando sus vértices
por comas. Son aquellos en los cuales los lados no están orientados (No son
flechas). Cada lado se representa entre paréntesis, separando sus vértices por
comas, y teniendo en cuenta (Vi,Vj)=(Vj,Vi).
TIPO ESPECIALES DE GRAFOS
5
ESTRUCTURA DE DATOS I INVESTIGACION
a) Un grafo regular de grado n si todos sus vértices tienen grado n.
b) Se dice que un grafo es completo cuando todos sus vértices son adyacentes a
todos los vértices del grafo, es decir, cuando cada par de vértices son los
extremos de una arista. Notaremos por Kn los grafos completos de n vértices.
c) Un ciclo si V = {v1, v2,. . . vn}, n³> 3, y E = {(v1, v2), (v2, v3), . . . , (vn, v1)}. Se
denota por Cn al ciclo de n vértices
6
ESTRUCTURA DE DATOS I INVESTIGACION
d) Una rueda si V = {v0, v1, v2, . . . vn}, n n 3, y E = {(v1, v2), (v2, v3), . . . , (vn,
v1), {(v1, v0), (v2, v0), . . . , (vn, v0) }. Se denota por Wn a la rueda de n+1
vértices.
e) Un cubo si sus vértices y aristas están relacionados como los de un cubo n-
dimensional. Se denota por Qn al cubo asociado al cubo n-dimensional.
7
ESTRUCTURA DE DATOS I INVESTIGACION
f) Un grafo bipartido si V=V1V2 y cada arista de E une un vértice de V1 y otro
de V2.
g) Un grafo bipartido completo si V=V1V2 y dos vértices de V están unidos por
una arista de E si y solo si un vértice está en V1 y el otro en V2. Se denota por
Kr,s al grafo bipartido completo donde V1 tiene r vértices y V2 tiene s vértices.
8
ESTRUCTURA DE DATOS I INVESTIGACION
Grafo conexo
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 de ser (fuertemente)
conexo permite establecer con base en él una relación de equivalencia para sus
vértices, la cual lleva a una partición de éstos en "componentes (fuertemente)
conexas", 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.
Multígrafos
Llamaremos de esta forma a los grafos en los que haya pares de v´ertices
unidos por más de una arista.
Pseudografo
9
ESTRUCTURA DE DATOS I INVESTIGACION
Llamaremos pseudografos a los grafos en los que existan aristas cuyos
extremos coincidan, es decir, aquellos en los que existan aristas que unan
vértices consigo mismos. A tales aristas las llamaremos lazos o bucles.
CAMINO
Sea G un grafo o un multígrafo. Un camino en G es una sucesión donde se
alternan vértices y aristas, comenzando y terminando con vértices y en el que
cada arista es incidente con los dos vértices que la preceden y la siguen.
Un camino que une los vértices v1 y vn sería:
v1, v1v2, v2, v2v3, . . . , vn−1, vn−1vn, vn
Si se trata de un grafo (no un multígrafo) este camino también puede
especificarse simplemente por la sucesión de sus vértices, v1, v2, v3 . . . , vn−1,
vn y lo representaremos por:
¥ = (v1, v2, v3, . . . , vn−1, vni)
A los vértices v1 y vn se les denomina extremos del camino. Suele decirse
también que el camino conecta v1 con vn o que va de v1 a vn. La longitud del
camino es el número n − 1 de aristas que contiene.
Un camino es simple si en la sucesión de vértices no hay ninguno
repetido.
10
ESTRUCTURA DE DATOS I INVESTIGACION
Un camino en un grafo es una sucesión finita en la que aparecen
alternadamente vértices y aristas de dicho grafo. Otras definiciones
básicas son:
Los extremos son los vértices iníciales y final del camino.
La longitud de un camino es el número de aristas que contiene.
Un camino es cerrado si sus extremos coinciden.
Un camino es simple si en la sucesión de vértices no hay ninguno
repetido.
Un ciclo es un camino cerrado donde los únicos vértices repetidos
son el primero y el último.
Un circuito es un camino cerrado que no repite aristas.
Si en un grafo existe un camino que conecta dos vértices distintos,
entonces existe un camino simple con extremos en dichos vértices.
TIPOS DE CAMINOS
Camino euleriano: es un camino o circuito que contiene todas las
aristas apareciendo cada una de ellas exactamente una vez. Un
grafo que admite dicho circuito se denomina grafo euleriano, y sus
vértices o tienen grado par o dos de los vértices tienen grado impar.
Camino hamiltoniano: es un camino simple que contiene todos los
vértices apareciendo cada uno de ellos exactamente una vez. Un
ciclo que a su vez es un camino hamiltoniano se denomina ciclo
hamiltoniano, y un grafo que contiene un ciclo hamiltoniano se
denomina grafo hamiltoniano.
CICLO
Sea G un grafo o un multígrafo. Un ciclo en G es un camino en el que sus
extremos coinciden.
El ciclo será simple si no hay, además del primero y el último, ningún otro
vértice repetido.
En un grafo dirigido, utilizaremos los términos caminos y ciclos dirigidos.
11
ESTRUCTURA DE DATOS I INVESTIGACION
Aquí tenemos un ejemplo de lo que es un camino y un ciclo.
¥ = (v1, v2, v6, v3, v4, v6, v5) es un camino.
¥ = (v1, v2, v3, v4) es un camino simple ya que no hay ningún vértice repetido.
¥ = (v1, v2, v6, v5, v4, v6, v2, v1) es un ciclo.
¥ = (v2, v3, v4, v5, v6, v6) es un ciclo simple ya que se repiten, ´únicamente, los
vértices primero y último.
REPRESENTACIÓN
Existen varias estructuras de datos que pueden utilizarse para representar grafos
y dígrafos. La elección de la estructura de datos adecuada depende del tipo de
operaciones que se quieran aplicar al conjunto de vértices y aristas (arcos) del
grafo (dígrafo) en cuestión. Las representaciones más comunes son las matrices
de adyacencia y las listas de adyacencia.
Matriz de adyacencia
Dado un grafo (dígrafo) G = (V, E) con V = {1, 2, . . . , n}, la matriz de
adyacencias de G es una matriz A de boléanos de tamaño n×n en la que A[i][j]
12
ESTRUCTURA DE DATOS I INVESTIGACION
es cierto si y sólo si la arista (arco) que une al vértice i con el vértice j está en E
({i, j} en el caso de grafos y (i, j) en el caso de dígrafos). Sea G un grafo cuyo
conjunto de v´ertices es V = {v1, v2,. . ., vp}. Llamaremos matriz de adyacencia
del grafo G a la matriz A = (aij) de p filas y p columnas, donde
aij = 1 si vi y vj son adyacentes
0 si vi y vj no son adyacentes
Es fácil observar que la matriz de adyacencias de un grafo no dirigido es una
matriz simétrica y que podemos ahorrar espacio (la mitad) guardando solo su
parte inferior. En un grafo representado por matrices de adyacencia el tiempo
que se requiere para accesar un elemento es independiente de las tallas de V y
de E, por tanto, esta puede ser una representación adecuada en las aplicaciones
en las que es necesario saber con mucha frecuencia si una determinada arista
(arco) está presente en el grafo (dígrafo). La desventaja principal de utilizar una
matriz de adyacencias para representar un grafo (dígrafo) es que la matriz
requiere un espacio (n2) incluso si el grafo (dígrafo) es esparzo, es decir, si
tiene bastante menos de n2 aristas (arcos). Sólo leer o examinar la matriz
requerirá tiempo O (n2), en perjuicio de posibles algoritmos de tiempo O(n) para
manipular grafos (dígrafos) con O(n) aristas (arcos). Una alternativa para evitar
esta desventaja es utilizar listas para representar un grafo.
Ejemplos:
13
ESTRUCTURA DE DATOS I INVESTIGACION
Matriz de incidencia
Sea G = (V,A) un grafo cuyos conjuntos de v´ertices y aristas son,
respectivamente,
V = {v1, v2, . . . , vp} y A = {a1, a2, . . . , aq}
Llamaremos matriz de incidencia del grafo G a la matriz B = (bij) de p filas y q
columnas, donde
bij = 1, si vi y aj son incidentes.
0, en otro caso.
− La matriz de incidencia de un grafo permite representar tanto bucles como
aristas repetidas entre dos vértices.
− Si el grafo no tiene bucles, entonces cada columna tiene dos 1 y la suma de
cada fila nos da el grado del vértice correspondiente.
Ejemplos:
14
ESTRUCTURA DE DATOS I INVESTIGACION
15
ESTRUCTURA DE DATOS I INVESTIGACION
ARBOL
Un árbol es un grafo en el que dos vértices están conectados por
exactamente un camino. Un bosque es un grafo en el que dos vértices
cualquiera están conectados por como máximo un camino. Una definición
equivalente es que un bosque es una unión disjunta de árboles. Un árbol a veces
recibe el nombre de árbol libre.
Propiedades
Todo árbol es a su vez un grafo bipartido. Todo árbol con sólo un
conjunto contable de vértices es además un grafo plano.
Todo grafo conexo G admite un árbol de cobertura, que es un árbol que
contiene cada vértice de G y cuyas aristas son aristas de G.
Tipos de arboles
Árbol binario: es una estructura de datos en la cual cada nodo siempre
tiene un hijo izquierdo y un hijo derecho. No pueden tener más de dos hijos (de
ahí el nombre "binario"). Si algún hijo tiene como referencia a null, es decir que
no almacena ningún dato, entonces este es llamado un nodo externo. En el caso
contrario el hijo es llamado un nodo interno. Usos comunes de los árboles
binarios son los árboles binarios de búsqueda, los montículos binarios y
Codificación de Huffman.
Un árbol binario de búsqueda auto-balanceable o equilibrado: es un
árbol binario de búsqueda que intenta mantener su altura, o el número de niveles
de nodos bajo la raíz, tan pequeños como sea posible en todo momento,
automáticamente. Esto es importante, ya que muchas operaciones en un árbol de
búsqueda binaria tardan un tiempo proporcional a la altura del árbol, y los árboles
binarios de búsqueda ordinarios pueden tomar alturas muy grandes en situaciones
normales, como cuando las claves son insertadas en orden. Mantener baja la
altura se consigue habitualmente realizando transformaciones en el árbol, como la
rotación de árboles, en momentos clave.
16
ESTRUCTURA DE DATOS I INVESTIGACION
BIBLIOGRAFIA
WWW.BUENASTAREAS.COM
WWW.WIKIPEDIA.COM
WWW.DOCENCIA.UDEA.EDU.CO/REGIONALIZACION/
TEORIADEREDES/INFORMACI
%F3N/C1_REPRESENTACIONMATRICES.PDF 080608 12:30
WWW.DMA.FI.UPM.ES/DOCENCIA/SEGUNDOCICLO/TEORGRAF
HTTP://WWW2.UDEC.CL/~GRAFOS/GRAFOS/EJERC/EJERC1/
EJERC1.HTM
LINK
17