SlideShare una empresa de Scribd logo
b

2

s

d

1

a

3

t
c

2

45

3

4

1
3

2

10

5

2

25

40

55
30

25
50

4

20
3

15

Grafos

Grafos

1
Indice general
1. Introducción.
2. Definiciones y representación.
3. Recorridos en grafos.
4. Algoritmos de caminos más cortos.
5. Árbol de cubrimiento de costo mínimo.
6. Flujo en redes. Flujo máximo.

Grafos

2
Indice
•
•
•
•

Introducción.
Definiciones.
Tipo de dato abstracto grafo.
Estructuras de datos para grafos.
– Lista de aristas.
– Lista de adyacencia.
– Matriz de adyacencia.

Grafos

3
Introducción
•

•

Los grafos se usan para modelar
problemas definidos en términos de
relaciones o conexiones entre objetos.
Tienen un amplio uso en ingeniería
para representar redes de todo tipo:
– transporte (tren, carretera, avión),
– servicios (comunicación, eléctrica, gas,
agua),
– de actividades en el planeamiento de
proyectos, etc.

Grafos

4
¿Qué es un grafo?
•

Un grafo G = (V, E) está compuesto de:
V : conjunto de vértices o nodos
E : conjunto de aristas o arcos que
conectan los vértices en V

•

Una arista e = (v, w) es un par de vértices

•

Ejemplo:
b

a

V = { a, b, c, d, e}

e

E = { (a, b), (a, c), (a,d),
(b, e), (c, d), (c, e),
(d, e) }

c
d
Grafos

5
Aplicaciones
•

Grafo de transiciones (AFD)

•

b
inicio

0

2

b
a

Coruña

b

1

2

b

a

3

4
Sevilla

a
•

Planificación de tareas
(Pert/CPM)

inicio

A(3)

I(1)

Santander
1

2

a

•

Tiempo de vuelos aéreos
2

Barcelona

1

Madrid
2

2
3

Valencia

Grafo asociado a un dibujo de líneas (visión
artificial)

D(2)
C(4)

E(3)

final

B(2)
Grafos

6
Definiciones
•

Arista dirigida: par ordenado (u, v)
u

•

Arista no dirigida: par no ordenado (u, v)
u

•
•
•
Grafos

v

v

Grafo dirigido o digrafo: grafo cuyas aristas son
todas dirigidas.
Grafo no dirigido o grafo: grafo cuyas aristas son
todas no dirigidas.
Grafo mixto: grafo con aristas dirigidas y no
dirigidas.
7
Definiciones
•

Vértices finales o extremos de la arista: vértices
unidos por una arista.
– Vértice origen: primer vértice de una arista dirigida.
– Vértice destino: segundo vértice de una arista dirigida.

•
•
•

Arista incidente en un vértice: si el vértice es uno
de los vértices de la arista.
Aristas salientes de un vértice: aristas dirigidas
cuyo origen es ese vértice.
Aristas entrantes de un vértice: aristas dirigidas
cuyo destino es ese vértice.
a

Grafos

b
8
Definiciones
•

Vértices adyacentes: vértices finales de una
arista.
– Un vértice w es adyacente a v sí y sólo si (v, w)
(ó (w, v)) pertenece a E.
– En grafos no dirigidos la relación de adyacencia es
simétrica.
– En grafos dirigidos la relación de adyacencia no es
simétrica.
a

b
c

d
Grafos

e

Vértices adyacentes:
a = { b, c, d }
b={e}
c = { a, d, e }
d = { a, c }
e={d}
9
Definiciones
•

Grado de un vértice v (grado(v)) en un grafo:
número de aristas incidentes en v o número de
vértices adyacentes.
– En un digrafo:
• Grado entrante de un vértice v (graent(v)): número de aristas
entrantes a v.
• Grado saliente de un vértice v (grasal(v)): número de aristas
salientes de v.

– Si G es un grafo con m aristas, entonces
∑ grado(v) = 2m
v∈G

– Si G es un digrafo con m aristas, entonces

∑ graent (v) = ∑ grasal (v) = m
v∈G

Grafos

v∈G

10
Definiciones
– Sea G es un grafo con n vértices y m aristas.
• Si G es no dirigido, entonces m ≤ n(n-1)/2.
• Si G es dirigido, entonces m ≤ n(n-1).

•

Camino: secuencia de vértices <v1, v2,…., vn> tal
que (vi, vi+1) son adyacentes.
a

b

a

c
d
Grafos

b
c

e

C1= { a, b, e, d, c}

d

e
C2= { b, e, d, c}
11
Definiciones
•

Camino simple: todos los vértices son distintos.

•

Longitud de un camino: número de aristas del
camino = n – 1.

•

Ciclo: camino simple que tiene el mismo vértice
inicial y final.
a

b
Camino simple = { a, b, e}
c

d
Grafos

Ciclo = { c, e, d, c}
e
12
Definiciones
•
•

Dos vértices v, w están conectados si existe un
camino de v a w.
Grafo conectado (conexo): si hay un camino
entre cualquier par de vértices.
– Si es un grafo dirigido se llama fuertemente conexo.
a

b

a
c

c
d

e
Conectado

Grafos

b

d

e
No conectado
13
Definiciones
•
•

Subgrafo: subconjunto de vértices y aristas que
forman un grafo.
Componente conectado: subgrafo conectado
máximo.

3 componentes conectados
Grafos

14
Definiciones
•
•

•
•

Grafos

Árbol: grafo conectado sin ciclos.
Bosque: colección de árboles.

Grafo completo: todos los pares de vértices son
adyacentes. (m = n*(n-1)/2)
En un grafo no dirigido G con n vértices y m
aristas se cumple lo siguiente:
– Si G es conectado, entonces m ≥ n - 1
– Si G es un árbol, entonces m = n - 1
– Si G es un bosque, entonces m ≤ n - 1

15
Definiciones
•

Árbol de cubrimiento de un grafo G: subgrafo
que
– es un árbol.
– contiene todos los vértices de G.

Grafos

El fallo de una arista desconecta el sistema (menos
tolerante a fallos).

16
Definiciones
•
•

Un grafo está etiquetado si asociamos a cada
arista un peso o valor.
Grafo con pesos: grafo etiquetado con valores
numéricos.

b

2

s

Grafos

d

3

4

1
3

2

a

3

t
c

2

17
Definiciones
•

Circuito de Euler: camino que recorre todas las
aristas una vez y retorna al vértice de partida.
C
grafo

Puentes de Koenigsberg

•
•

Grafos

A

D
B

Teorema de Euler (1736): un grafo tiene un circuito de Euler
si y solo si todos los vértices tienen grado par.
Más definiciones y teoremas en Teoría de Grafos.

18
El tipo de dato abstracto Grafo
•
•

El TDA Grafo es un contenedor de posiciones
que almacena los vértices y las aristas del grafo.
Operaciones para la información posicional:
– tamano(), devuelve el número de vértices más el
número de aristas de G.
– estaVacio()
– elementos()
– posiciones()
– reemplazar(p, r)
– intercambiar(p, q)
donde p y q indican posiciones, y r indica un
elemento de información.

Grafos

19
El tipo de dato abstracto Grafo
•

Operaciones generales: (v: vértice, e: arista, o: elemento de
información)

.

numVertices()
numAristas()
vertices()
aristas()
grado(v)
verticesAdyacentes(v)
aristasIncidentes(v)
verticesFinales(e)
opuesto(v, e)
esAdyacente(v, w)
Grafos

Devuelve el número de vértices de G
Devuelve el número de aristas de G
Devuelve una lista de los índices de los vértices
de G
Devuelve una lista de los índices de las aristas de G
Devuelve el grado de v
Devuelve una lista de los vértices adyacentes a v
Devuelve una lista de las aristas incidentes en v
Devuelve un array de tamaño con los vértices
finales de e
Devuelve los puntos extremos de la arista e
diferente a v
Devuelve verdadero si los vértices v y w son
adyacentes
20
El tipo de dato abstracto Grafo
•

Operaciones con aristas dirigidas:
aristasDirigidas()
aristasNodirigidas()

Devuelve una lista de todas las aristas dirigidas
Devuelve una lista de todas las aristas no
dirigidas
gradoEnt(v)
Devuelve el grado de entrada de v
gradoSalida(v)
Devuelve el grado de salida de v
aristasIncidentesEnt(v) Devuelve una lista de todas las aristas de
entrada a v
aristasIncidentesSal(v) Devuelve una lista de todas las aristas de salida a v
verticesAdyacentesEnt(v) Devuelve una lista de todas las aristas
adyacentes a v a través de las aristas de entrada a v
verticesAdyacentesSal(v) Devuelve una enumeración de todas las aristas
adyacentes a v a través de las aristas de salida a v
destino(e)
Devuelve el destino de la arista dirigida e
origen(e)
Devuelve el origen de la arista dirigida e
esDirigida(e)
Devuelve verdadero si la arista e es dirigida
Grafos

21
El tipo de dato abstracto Grafo
•

Operaciones para actualizar grafos:
– insertaArista(v, w, o)

Inserta y devuelve una arista no dirigida entre
los vértices v y w, almacenando el objeto o en
esta posición

– insertaAristaDirigida(v, w, o) Inserta y devuelve una arista dirigida entre los
vértices v y w, almacenando el objeto o en esta
posición
– insertaVertice(o)

Inserta y devuelve un nuevo vértice
almacenando el objeto o en esta posición

– eliminaVertice(v)

Elimina vértice v y todas las aristas incidentes

– eliminaArista(e)

Elimina arista e

– convierteNoDirigida(e)

Convierte la arista e en no dirigida

– invierteDireccion(e)

Invierte la dirección de la arista dirigida e

– asignaDireccionDesde(e, v) Produce arista dirigida e salga del vértice v
– asignaDireccionA(e, v)
Grafos

Produce arista dirigida e entrante al vértice v
22
Estructuras de datos para Grafos
•

Se necesita almacenar los vértices y las aristas
del grafo y realizar eficientemente las
operaciones del TDA Grafo.

•

Las estructuras de datos usuales son:
– Lista de aristas.
– Lista de adyacencia.
– Matriz de adyacencia.

Grafos

23
Lista de Aristas
•

La estructura lista de aristas almacena los
vértices y las aristas en secuencias sin ordenar.

•

Fácil de implementar.

•

Hallar las aristas incidentes sobre un determinado
vértice es ineficiente porque requiere el examen
entero de la estructura que almacena las aristas.
1

2

e

d

4
Grafos

a

a

b

c

d

e

b

c

3

1

2

3

4
24
Eficiencia de la estructura Lista de Aristas
Operación
tamano, estaVacio, remplazarElemento,
intercambiar
numVertices, numAristas

Tiempo
O(1)
O(1)

vertices

O(n)

aristas, aristasDirigidas, aristasNodirigidas

O(m)

elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente

O(n + m)
O(1)
O(m)
O(m)

aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
insertaVertice

O(1)

eliminaVertice
Grafos

O(1)

O(m)

Espacio requerido

O(n + m)
25
Lista de Adyacencia
•

Lista de adyacencia del vértice v: secuencia de
vértices adyacentes a v.

•

Representa el grafo por las listas de adyacencia
de todos los vértices.

•

Es la estructura más usada para representar
grafos con pocas aristas (dispersos).
a

1
e

d

4
Grafos

2
b

c

1
2
3
4

2
3
4
2

a
b
c
e

4

d

3
26
Eficiencia de la estructura Lista de
Adyacencia
Operación

tamano, estaVacio, remplazarElemento,
intercambiar
numVertices, numAristas

Tiempo
O(1)
O(1)

vertices

O(n)

aristas, aristasDirigidas, aristasNodirigidas

O(m)

elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente

O(n + m)
O(1)
O(grado(v))
O(min(grado(u), grado(v))

aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
insertaVertice

O(1)

eliminaVertice
Grafos

O(1)

O(grado(v))

Espacio requerido

O(n + m)
27
Matriz de Adyacencia
•

Matriz M[i][j] con entradas para todos los pares
de vértices.
– En grafos no etiquetados:
• M[i][j] = verdadero, si hay una arista (i, j) en el grafo.
• M[i][j] = falso, si no hay una arista (i, j) en el grafo.

– En grafos no dirigidos: M[i][j] = M[j][i]. La matriz es
simétrica.
1

2
1
2
3
4

4
Grafos

1
F
V
F
V

2
V
F
V
V

3
F
V
F
V

4
V
V
V
F

3
28
Matriz de Adyacencia
– En grafos etiquetados:
• M[i][j] = atributo de la arista (i, j) en el grafo, indicador especial
si no hay una arista (i, j).

•

Es la estructura más usada para representar
grafos con muchas aristas (densos).

a

1
e

d

4
Grafos

2
b

c

3

1
2
3
4

1
-

2
a
e

3
b
-

4
d
c
29
Eficiencia de la estructura Matriz de Adyacencia
Operación
tamano, estaVacio, remplazarElemento,
intercambiar
numVertices, numAristas

Tiempo
O(1)
O(1)

vertices

O(n)

aristas, aristasDirigidas, aristasNodirigidas

O(m)

elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente

O(n + m)
O(1)
O(n)
O(1)

aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
insertaVertice

O(n2)

eliminaVertice
Grafos

O(1)

O(n2)

Espacio requerido

O(n2)
30
Indice
1. Introducción.
2. Definiciones y representación.
3. Recorridos en grafos.
4. Algoritmos de caminos más cortos.
5. Árbol de cubrimiento de costo mínimo.
6. Flujo en redes. Flujo máximo.

Grafos

31

Más contenido relacionado

La actualidad más candente

Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
Hugo Arturo Gonzalez Macias
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacenciaFrank Doria
 
Grafos
GrafosGrafos
3. Modelo ER - Relacional
3. Modelo ER - Relacional3. Modelo ER - Relacional
3. Modelo ER - Relacional
MSc Aldo Valdez Alvarado
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencialeidy2220
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafos
Tere Suarez
 
Grafos
GrafosGrafos
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
Alexis Chavez
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
Deivis Alexander
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
Angel Vázquez Patiño
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
Clara Patricia Avella Ibañez
 
MODELO OSI PDU
MODELO OSI PDUMODELO OSI PDU
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
José Antonio Sandoval Acosta
 

La actualidad más candente (20)

Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Grafos
GrafosGrafos
Grafos
 
Mapa Conceptual
Mapa ConceptualMapa Conceptual
Mapa Conceptual
 
3. Modelo ER - Relacional
3. Modelo ER - Relacional3. Modelo ER - Relacional
3. Modelo ER - Relacional
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Ejercicios de grafos
Ejercicios de grafosEjercicios de grafos
Ejercicios de grafos
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Arboles con raiz
Arboles con raizArboles con raiz
Arboles con raiz
 
Grafos
GrafosGrafos
Grafos
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
MODELO OSI PDU
MODELO OSI PDUMODELO OSI PDU
MODELO OSI PDU
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 

Destacado

Grafos y Digrafos
Grafos y DigrafosGrafos y Digrafos
Grafos y Digrafos
Valentino Crocetta
 
Grafos y digrafos
Grafos y digrafosGrafos y digrafos
Grafos y digrafos
arnaldo vasquez
 
Recurso unidad 3
Recurso unidad 3Recurso unidad 3
Estructura grafos y digrafos
Estructura grafos y digrafosEstructura grafos y digrafos
Estructura grafos y digrafos
dobleafp7
 
Relaciones binarias
Relaciones binariasRelaciones binarias
Relaciones binariasprofealex21
 
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORAREPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
David Hernandez
 

Destacado (8)

Relacion de equivalencia
Relacion de equivalenciaRelacion de equivalencia
Relacion de equivalencia
 
Grafos y Digrafos
Grafos y DigrafosGrafos y Digrafos
Grafos y Digrafos
 
Grafos y digrafos
Grafos y digrafosGrafos y digrafos
Grafos y digrafos
 
Recurso unidad 3
Recurso unidad 3Recurso unidad 3
Recurso unidad 3
 
Estructura grafos y digrafos
Estructura grafos y digrafosEstructura grafos y digrafos
Estructura grafos y digrafos
 
Relaciones binarias
Relaciones binariasRelaciones binarias
Relaciones binarias
 
Grafo regular
Grafo regularGrafo regular
Grafo regular
 
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORAREPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
 

Similar a Tema grafos

Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
BasterLyEsupian
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
Angel Vázquez Patiño
 
Grafoscuestionario
GrafoscuestionarioGrafoscuestionario
GrafoscuestionarioUTCH
 
Material de grafos.pdf
Material de grafos.pdfMaterial de grafos.pdf
Material de grafos.pdf
ManuelVicenteMontoya
 
Grafos
GrafosGrafos
S8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informáticaS8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informática
Luis Fernando Aguas Bucheli
 
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de EducagratisFundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Educagratis
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]ozilricardo
 
Teoria-de-grafos
Teoria-de-grafosTeoria-de-grafos
Teoria-de-grafos
Elias Moreno
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Federico Dauria
 
Grafos.ppt
 Grafos.ppt Grafos.ppt
Grafos.ppt
NorjelisGutirrez
 
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOSMETODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
Junior Vallenilla
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafosozilricardo
 

Similar a Tema grafos (20)

Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Grafoscuestionario
GrafoscuestionarioGrafoscuestionario
Grafoscuestionario
 
Material de grafos.pdf
Material de grafos.pdfMaterial de grafos.pdf
Material de grafos.pdf
 
19 Grafos 1
19 Grafos 119 Grafos 1
19 Grafos 1
 
Grafos
GrafosGrafos
Grafos
 
S8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informáticaS8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informática
 
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de EducagratisFundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de Educagratis
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]
 
19. Grafos.ppt
19. Grafos.ppt19. Grafos.ppt
19. Grafos.ppt
 
GRAFOS
GRAFOSGRAFOS
GRAFOS
 
Teoria-de-grafos
Teoria-de-grafosTeoria-de-grafos
Teoria-de-grafos
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)
 
Grafos.ppt
 Grafos.ppt Grafos.ppt
Grafos.ppt
 
Grafos
GrafosGrafos
Grafos
 
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOSMETODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafos
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 

Último (20)

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 

Tema grafos

  • 2. Indice general 1. Introducción. 2. Definiciones y representación. 3. Recorridos en grafos. 4. Algoritmos de caminos más cortos. 5. Árbol de cubrimiento de costo mínimo. 6. Flujo en redes. Flujo máximo. Grafos 2
  • 3. Indice • • • • Introducción. Definiciones. Tipo de dato abstracto grafo. Estructuras de datos para grafos. – Lista de aristas. – Lista de adyacencia. – Matriz de adyacencia. Grafos 3
  • 4. Introducción • • Los grafos se usan para modelar problemas definidos en términos de relaciones o conexiones entre objetos. Tienen un amplio uso en ingeniería para representar redes de todo tipo: – transporte (tren, carretera, avión), – servicios (comunicación, eléctrica, gas, agua), – de actividades en el planeamiento de proyectos, etc. Grafos 4
  • 5. ¿Qué es un grafo? • Un grafo G = (V, E) está compuesto de: V : conjunto de vértices o nodos E : conjunto de aristas o arcos que conectan los vértices en V • Una arista e = (v, w) es un par de vértices • Ejemplo: b a V = { a, b, c, d, e} e E = { (a, b), (a, c), (a,d), (b, e), (c, d), (c, e), (d, e) } c d Grafos 5
  • 6. Aplicaciones • Grafo de transiciones (AFD) • b inicio 0 2 b a Coruña b 1 2 b a 3 4 Sevilla a • Planificación de tareas (Pert/CPM) inicio A(3) I(1) Santander 1 2 a • Tiempo de vuelos aéreos 2 Barcelona 1 Madrid 2 2 3 Valencia Grafo asociado a un dibujo de líneas (visión artificial) D(2) C(4) E(3) final B(2) Grafos 6
  • 7. Definiciones • Arista dirigida: par ordenado (u, v) u • Arista no dirigida: par no ordenado (u, v) u • • • Grafos v v Grafo dirigido o digrafo: grafo cuyas aristas son todas dirigidas. Grafo no dirigido o grafo: grafo cuyas aristas son todas no dirigidas. Grafo mixto: grafo con aristas dirigidas y no dirigidas. 7
  • 8. Definiciones • Vértices finales o extremos de la arista: vértices unidos por una arista. – Vértice origen: primer vértice de una arista dirigida. – Vértice destino: segundo vértice de una arista dirigida. • • • Arista incidente en un vértice: si el vértice es uno de los vértices de la arista. Aristas salientes de un vértice: aristas dirigidas cuyo origen es ese vértice. Aristas entrantes de un vértice: aristas dirigidas cuyo destino es ese vértice. a Grafos b 8
  • 9. Definiciones • Vértices adyacentes: vértices finales de una arista. – Un vértice w es adyacente a v sí y sólo si (v, w) (ó (w, v)) pertenece a E. – En grafos no dirigidos la relación de adyacencia es simétrica. – En grafos dirigidos la relación de adyacencia no es simétrica. a b c d Grafos e Vértices adyacentes: a = { b, c, d } b={e} c = { a, d, e } d = { a, c } e={d} 9
  • 10. Definiciones • Grado de un vértice v (grado(v)) en un grafo: número de aristas incidentes en v o número de vértices adyacentes. – En un digrafo: • Grado entrante de un vértice v (graent(v)): número de aristas entrantes a v. • Grado saliente de un vértice v (grasal(v)): número de aristas salientes de v. – Si G es un grafo con m aristas, entonces ∑ grado(v) = 2m v∈G – Si G es un digrafo con m aristas, entonces ∑ graent (v) = ∑ grasal (v) = m v∈G Grafos v∈G 10
  • 11. Definiciones – Sea G es un grafo con n vértices y m aristas. • Si G es no dirigido, entonces m ≤ n(n-1)/2. • Si G es dirigido, entonces m ≤ n(n-1). • Camino: secuencia de vértices <v1, v2,…., vn> tal que (vi, vi+1) son adyacentes. a b a c d Grafos b c e C1= { a, b, e, d, c} d e C2= { b, e, d, c} 11
  • 12. Definiciones • Camino simple: todos los vértices son distintos. • Longitud de un camino: número de aristas del camino = n – 1. • Ciclo: camino simple que tiene el mismo vértice inicial y final. a b Camino simple = { a, b, e} c d Grafos Ciclo = { c, e, d, c} e 12
  • 13. Definiciones • • Dos vértices v, w están conectados si existe un camino de v a w. Grafo conectado (conexo): si hay un camino entre cualquier par de vértices. – Si es un grafo dirigido se llama fuertemente conexo. a b a c c d e Conectado Grafos b d e No conectado 13
  • 14. Definiciones • • Subgrafo: subconjunto de vértices y aristas que forman un grafo. Componente conectado: subgrafo conectado máximo. 3 componentes conectados Grafos 14
  • 15. Definiciones • • • • Grafos Árbol: grafo conectado sin ciclos. Bosque: colección de árboles. Grafo completo: todos los pares de vértices son adyacentes. (m = n*(n-1)/2) En un grafo no dirigido G con n vértices y m aristas se cumple lo siguiente: – Si G es conectado, entonces m ≥ n - 1 – Si G es un árbol, entonces m = n - 1 – Si G es un bosque, entonces m ≤ n - 1 15
  • 16. Definiciones • Árbol de cubrimiento de un grafo G: subgrafo que – es un árbol. – contiene todos los vértices de G. Grafos El fallo de una arista desconecta el sistema (menos tolerante a fallos). 16
  • 17. Definiciones • • Un grafo está etiquetado si asociamos a cada arista un peso o valor. Grafo con pesos: grafo etiquetado con valores numéricos. b 2 s Grafos d 3 4 1 3 2 a 3 t c 2 17
  • 18. Definiciones • Circuito de Euler: camino que recorre todas las aristas una vez y retorna al vértice de partida. C grafo Puentes de Koenigsberg • • Grafos A D B Teorema de Euler (1736): un grafo tiene un circuito de Euler si y solo si todos los vértices tienen grado par. Más definiciones y teoremas en Teoría de Grafos. 18
  • 19. El tipo de dato abstracto Grafo • • El TDA Grafo es un contenedor de posiciones que almacena los vértices y las aristas del grafo. Operaciones para la información posicional: – tamano(), devuelve el número de vértices más el número de aristas de G. – estaVacio() – elementos() – posiciones() – reemplazar(p, r) – intercambiar(p, q) donde p y q indican posiciones, y r indica un elemento de información. Grafos 19
  • 20. El tipo de dato abstracto Grafo • Operaciones generales: (v: vértice, e: arista, o: elemento de información) . numVertices() numAristas() vertices() aristas() grado(v) verticesAdyacentes(v) aristasIncidentes(v) verticesFinales(e) opuesto(v, e) esAdyacente(v, w) Grafos Devuelve el número de vértices de G Devuelve el número de aristas de G Devuelve una lista de los índices de los vértices de G Devuelve una lista de los índices de las aristas de G Devuelve el grado de v Devuelve una lista de los vértices adyacentes a v Devuelve una lista de las aristas incidentes en v Devuelve un array de tamaño con los vértices finales de e Devuelve los puntos extremos de la arista e diferente a v Devuelve verdadero si los vértices v y w son adyacentes 20
  • 21. El tipo de dato abstracto Grafo • Operaciones con aristas dirigidas: aristasDirigidas() aristasNodirigidas() Devuelve una lista de todas las aristas dirigidas Devuelve una lista de todas las aristas no dirigidas gradoEnt(v) Devuelve el grado de entrada de v gradoSalida(v) Devuelve el grado de salida de v aristasIncidentesEnt(v) Devuelve una lista de todas las aristas de entrada a v aristasIncidentesSal(v) Devuelve una lista de todas las aristas de salida a v verticesAdyacentesEnt(v) Devuelve una lista de todas las aristas adyacentes a v a través de las aristas de entrada a v verticesAdyacentesSal(v) Devuelve una enumeración de todas las aristas adyacentes a v a través de las aristas de salida a v destino(e) Devuelve el destino de la arista dirigida e origen(e) Devuelve el origen de la arista dirigida e esDirigida(e) Devuelve verdadero si la arista e es dirigida Grafos 21
  • 22. El tipo de dato abstracto Grafo • Operaciones para actualizar grafos: – insertaArista(v, w, o) Inserta y devuelve una arista no dirigida entre los vértices v y w, almacenando el objeto o en esta posición – insertaAristaDirigida(v, w, o) Inserta y devuelve una arista dirigida entre los vértices v y w, almacenando el objeto o en esta posición – insertaVertice(o) Inserta y devuelve un nuevo vértice almacenando el objeto o en esta posición – eliminaVertice(v) Elimina vértice v y todas las aristas incidentes – eliminaArista(e) Elimina arista e – convierteNoDirigida(e) Convierte la arista e en no dirigida – invierteDireccion(e) Invierte la dirección de la arista dirigida e – asignaDireccionDesde(e, v) Produce arista dirigida e salga del vértice v – asignaDireccionA(e, v) Grafos Produce arista dirigida e entrante al vértice v 22
  • 23. Estructuras de datos para Grafos • Se necesita almacenar los vértices y las aristas del grafo y realizar eficientemente las operaciones del TDA Grafo. • Las estructuras de datos usuales son: – Lista de aristas. – Lista de adyacencia. – Matriz de adyacencia. Grafos 23
  • 24. Lista de Aristas • La estructura lista de aristas almacena los vértices y las aristas en secuencias sin ordenar. • Fácil de implementar. • Hallar las aristas incidentes sobre un determinado vértice es ineficiente porque requiere el examen entero de la estructura que almacena las aristas. 1 2 e d 4 Grafos a a b c d e b c 3 1 2 3 4 24
  • 25. Eficiencia de la estructura Lista de Aristas Operación tamano, estaVacio, remplazarElemento, intercambiar numVertices, numAristas Tiempo O(1) O(1) vertices O(n) aristas, aristasDirigidas, aristasNodirigidas O(m) elementos, posiciones verticesFinales, opuesto, origen, destino, esDirigida, grado, gradoEnt, gradoSalida aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal esAdyacente O(n + m) O(1) O(m) O(m) aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal insertaVertice O(1) eliminaVertice Grafos O(1) O(m) Espacio requerido O(n + m) 25
  • 26. Lista de Adyacencia • Lista de adyacencia del vértice v: secuencia de vértices adyacentes a v. • Representa el grafo por las listas de adyacencia de todos los vértices. • Es la estructura más usada para representar grafos con pocas aristas (dispersos). a 1 e d 4 Grafos 2 b c 1 2 3 4 2 3 4 2 a b c e 4 d 3 26
  • 27. Eficiencia de la estructura Lista de Adyacencia Operación tamano, estaVacio, remplazarElemento, intercambiar numVertices, numAristas Tiempo O(1) O(1) vertices O(n) aristas, aristasDirigidas, aristasNodirigidas O(m) elementos, posiciones verticesFinales, opuesto, origen, destino, esDirigida, grado, gradoEnt, gradoSalida aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal esAdyacente O(n + m) O(1) O(grado(v)) O(min(grado(u), grado(v)) aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal insertaVertice O(1) eliminaVertice Grafos O(1) O(grado(v)) Espacio requerido O(n + m) 27
  • 28. Matriz de Adyacencia • Matriz M[i][j] con entradas para todos los pares de vértices. – En grafos no etiquetados: • M[i][j] = verdadero, si hay una arista (i, j) en el grafo. • M[i][j] = falso, si no hay una arista (i, j) en el grafo. – En grafos no dirigidos: M[i][j] = M[j][i]. La matriz es simétrica. 1 2 1 2 3 4 4 Grafos 1 F V F V 2 V F V V 3 F V F V 4 V V V F 3 28
  • 29. Matriz de Adyacencia – En grafos etiquetados: • M[i][j] = atributo de la arista (i, j) en el grafo, indicador especial si no hay una arista (i, j). • Es la estructura más usada para representar grafos con muchas aristas (densos). a 1 e d 4 Grafos 2 b c 3 1 2 3 4 1 - 2 a e 3 b - 4 d c 29
  • 30. Eficiencia de la estructura Matriz de Adyacencia Operación tamano, estaVacio, remplazarElemento, intercambiar numVertices, numAristas Tiempo O(1) O(1) vertices O(n) aristas, aristasDirigidas, aristasNodirigidas O(m) elementos, posiciones verticesFinales, opuesto, origen, destino, esDirigida, grado, gradoEnt, gradoSalida aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal esAdyacente O(n + m) O(1) O(n) O(1) aristasIncidentes, aristasIncidentesEnt, aristasIncidentesSal, verticesAdyacentes, verticesAdyacentesEnt, verticesdyacentesSal insertaVertice O(n2) eliminaVertice Grafos O(1) O(n2) Espacio requerido O(n2) 30
  • 31. Indice 1. Introducción. 2. Definiciones y representación. 3. Recorridos en grafos. 4. Algoritmos de caminos más cortos. 5. Árbol de cubrimiento de costo mínimo. 6. Flujo en redes. Flujo máximo. Grafos 31