Tema 9c: Grafos No Dirigidos

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA
Advertisements

ALGORITMOS DE KRUSKAL Y PRIM
PRACTICO N° 6 GRAFOS año: 2012.
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Tema Algoritmos Universidad Politécnica de Nicaragua UPOLI.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Teoría de Grafos I semestre 2009 UNIVERSIDAD NACIONAL DE INGENIERIA
Ordenamiento Topológico
MATEMÁTICAS DISCRETAS.
“GRAFOS” Chacón Zamora José Christian González García Andrea
INSTITUTO TECNOLOGICO DE VILLAHERMOSA
Instituto Tecnológico De Villahermosa
Investigación Operativa II
RafaC - Matemática Discreta - UCM 07/08
Grafos dualmente cordales y sus relaciones con otros tipos de grafos
Definiciones: conjuntos, grafos, y árboles
DI-UTFSM Marzo José L. Contreras V. f: Introducción a la Ingeniería Informática Departamento.
Tema 5 Grafos.. Grafos Un grafo se define como un par G = (V, A), donde V es un conjunto finito no vacío de vértices A es un conjunto de pares de vértices.
AED I. Estructuras de Datos.
Cecilia Laborde González
Material de apoyo Unidad 4 Estructura de datos
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Ciudad de Könisberg, Prusia, en XVIII:
Prueba del Camino Básico
Coloración de Grafos Planos
Definiciones: conjuntos, grafos, y árboles
Teoría de Grafos lógica y algoritmos.
Métricas del Software Medidas o conjunto de éstas que nos permite conocer o estimar el tamaño u otra característica sobre un producto de software.Objetivo:
Semana de la Electrónica Facultad de Ciencias de la Electrónica BUAP Dr. Daniel Mocencahua Mora Alfonso M. Cuesta Hernández Métodos de planificación de.
Cesar Luis García Castro
Matemáticas Discretas
Departamento de Informática Universidad Técnica Federico Santa María 1 RMA/2001 Proyecto West PROYECTO WEST Presentación Tarea Nº4 Raúl Monge Anwandter.
Departamento de Informática Universidad Técnica Federico Santa María Uso de Función Generatriz Quicksort Prof: Rodrigo Arriagada.

A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Definición, propiedades, recorridos x a q yb w e vu fo.

Trabajo de investigación (TEMA #7): TEORÍA DE GRAFOS
Autómatas Finitos Es un diagrama de transiciones que permite identificar cadenas que pertenecen a un lenguaje. Puede ser determinista o no determinista.
Estructuras de datos para Grafos
Teoría De grafos.
Coloración de grafos Teoría de Grafos
Carmen Fernández Grasa I.E.S. Félix de Azara 6 de mayo de 2011
Departamento de Informática Universidad Técnica Federico Santa María Uso de Función Generatriz Prof: Rodrigo Arriagada.
“Modelo de desarrollo de competencias vía un Taller de Proyectos de Software” Cecilia Reyes C. - Luis Hevia R. Universidad Técnica Federico Santa María.
Definiciones: conjuntos, grafos, y árboles
Centro Integrado de Manufactura y Automatización Universidad Técnica Federico Santa María Robótica Industrial Centro Integrado de Manufactura y Automatización.
Universidad Técnica Federico Santa María Departamento de Informática Casa Central, Valparaíso Seminario de Sistemas y Gestión Profesor José Lino Contreras.
Programación de Computadores (IWI-131)
Programación Declarativa Avanzada E.T.S.Ingeniería Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Solitario de.
CUERPOS GEOMÉTRICOS.
Cecilia Laborde González
Instituto Tecnológico De Villahermosa Alumno: Lázaro García Hernández.
Centro y mediana de un grafo
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
COLEGIO DE BACHILLERES 20 DEL VALLE. Materia: Tecnologías de la Información y Comunicación. Grupo: 101 Maestra: Claudia Velázquez Páramo Trabajo: examen.
Programación Básica con “NQC” Pedro F. Toledo Universidad Técnica Federico Santa María Departamento de Electrónica.
Escuela de Ciencias Basicas, Tecnología e Ingeniería
Redes Sociales Las redes sociales son estructuras sociales compuestas de grupos de personas, las cuales están conectadas por uno o varios tipos de relaciones,
GRAFOS.
ANALISIS DE REDES Problema de Transporte Método de la esquina Noroeste
Matemáticas discretas
ENCUESTA COOPERATIVA IMAGINACCION UNIVERSIDAD TECNICA FEDERICO SANTA MARÍA Conflicto Estudiantil 22 AGOSTO 2011.
M.C. Meliza Contreras González
Los métodos numéricos se utilizan en todo el ámbito de la ingeniería.
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
JURGEN MARTINEZ SANCHEZ JOSÉ ALAN HERNÁNDEZ GONZÁLEZ GUSTAVO RAFAEL DE LA ROSA VILLAFUERTE DFS en Grafos.
Departamento de Informática Universidad Técnica Federico Santa María Lenguajes Funcionales Francisco Bórquez Departamento de Informática Universidad Técnica.
كلمه رئيس البلديه السيد المحامي عادل بدير بسم الله الرحمن الرحيم برعاية بلديه كفر قاسم تم بعون الله في شهر اكتوبر 2014 افتتاح قسم الخدمات النفسية الجديد.
/# Discipuladp una ayuda en el camino.
Transcripción de la presentación:

Tema 9c: Grafos No Dirigidos Universidad Técnica Federico Santa María Universidad Técnica Federico Santa María Departamento de Informática ILI-134 Tema 9c: Grafos No Dirigidos Profesor : Rodrigo Salas e-mail : rsalas@inf.utfsm.cl Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Un grafo no dirigido G consiste en un conjunto de vértices V y un conjunto de arista A. Los vértices se denominan también nodos o puntos y son objetos que pueden tener nombres y otras propiedades. Los aristas son conexiones entre dos vértices y representan relaciones entre los objetos. Una arista es un par no ordenado de vértices (v,w), es decir (v,w)=(w,v) Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Camino: es una secuencia de vértices v1, v2,..., vn, tal que (vi,vi+1) es una arista para 1i<n. Un camino es simple si todos sus vértices son distintos, con excepción de v1 y vn, que pueden ser el mismo. Longitud de un camino: es el número de aristas a lo largo de un camino. Se dice que el camino v1, v2,..., vn, conecta v1 y vn Un grafo es conexo si todos sus pares de vértices están conectados. Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Sea G=(V,A) un grafo con conjunto de vértices V y conjunto de aristas A. Un subgrafo de G es un grafo G’=(V’,A’) donde V’ es un subconjunto de V A’ consta de las aristas (v,w) en A tales que v y w están en V’. Si A’ consta de todas las aristas (v,w) en A, tal que v y w están en V’, entonces G’se conoce como un grafo inducido de G. Un componente conexo de un grafo G es un subgrafo conexo inducido maximal, esto es, un subgrafo conexo inducido que por sí mismo no es un subgrafo propio de ningún otro subgrafo conexo de G. Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Sea G=(V,A) un grafo con conjunto de vértices V y conjunto de aristas A. Un subgrafo de G es un grafo G’=(V’,A’) donde V’ es un subconjunto de V A’ consta de las aristas (v,w) en A tales que v y w están en V’. Si A’ consta de todas las aristas (v,w) en A, tal que v y w están en V’, entonces G’se conoce como un grafo inducido de G. Un componente conexo de un grafo G es un subgrafo conexo inducido maximal, esto es, un subgrafo conexo inducido que por sí mismo no es un subgrafo propio de ningún otro subgrafo conexo de G. Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Un ciclo (simple) de un grafo es un camino (simple) de longitud mayor o igual a tres, que conecta un vértice consigo mismo. Un grafo es cíclico si contiene por lo menos un ciclo. Un grafo conexo acíclico algunas veces se conoce como árbol libre. Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Definiciones Propiedades de los árboles libres: Todo árbol libre con n1 vértices contiene exactamente n-1 aristas. Si se agrega cualquier arista a un árbol libre, resulta un ciclo. Profesor: Rodrigo Salas

Representaciones de Grafos No Dirigidos

Profesor: Rodrigo Salas Matriz de Adyacencia Sea el grafo no dirigido G=(V,A), los vértices V={1,2,...,n}. La matriz de adyacencia para G es una matriz A de dimensión n x n, de elementos booleanos, donde Obs: con frecuencia se usa 1 para verdadero y 0 para falso. Profesor: Rodrigo Salas

Matriz de Adyacencia Etiquetada La matriz de adyacencia etiquetada para G es una matriz A de dimensión n x n, donde Profesor: Rodrigo Salas

Ejemplos de grafos dirigidos: 1 2 3 4 1 2 3 4 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Lista de Adyacencia La lista de adyacencia para un vértice i es una lista, en algún orden, de todos los vértices adyacentes a i. Se puede representar G por medio de un arreglo CABEZA, donde CABEZA[i] es un apuntados a la lista de adyacencia del vértice i. Profesor: Rodrigo Salas

Ejemplos de grafos dirigidos: 1 2 3 4 4 3 2 1 * Profesor: Rodrigo Salas

Algoritmos en Grafos No Dirigidos

Arboles abarcadores de costo mínimo Un árbol abarcador para G es un árbol libre que conecta todos los vértices de V; su costo es la suma de los costos de las aristas del árbol Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Algoritmo de PRIM #include <stdio.h> #define N_max 100 #define INFINITO 1000 struct grafos{ int G[N_max][N_max]; int N_Vertices; }; typedef struct grafos Grafos; void Anula(Grafos *G,int N){ int i,j; for(i=0;i<N;i++) for(j=0;j<N;j++) G->G[i][j]=INFINITO; G->N_Vertices=N; } Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Algoritmo de PRIM while(Vertices_seleccionados<N){ min_costo=INFINITO; for (i=0;i<N;i++) if (Vertices[i]==1) for (j=0;j<N;j++) if (Vertices[j]==0) if (min_costo>G.G[i][j]){ u_min=i; v_min=j; min_costo=G.G[i][j]; } Vertices_seleccionados++; Vertices[v_min]=1; T->G[u_min][v_min]=min_costo; T->G[v_min][u_min]=min_costo; void PRIM(Grafos G,Grafos *T){ int Vertices[N_max]; int i,j,N; int u,v,u_min,v_min,min_costo; int Vertices_seleccionados=1; N=G.N_Vertices; for(i=0;i<N;i++){ Vertices[i]=0; } Vertices[0]=1; Anula(T,N); Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 1 4 2 3 5 6 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 1 4 2 3 5 6 1 4 2 3 5 6 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Algoritmo de Kruskal Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 1 4 2 3 5 6 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 1 4 2 3 5 6 1 4 2 3 5 6 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 4 2 3 5 6 Profesor: Rodrigo Salas

Recorridos

Búsqueda en Profundidad void bpf(Vertice v){ Vertice w; MARCA[v]=1; /* Visitado */ for(i=Primero(v);i!=;i=Siguiente(v,i)){ w=Vertice(v,i); if(MARCA[w]==0) bpf(w); } for(v=0;v<Total_nodos;v++){ if (Marca[v]==0) bpf(v); v++; Profesor: Rodrigo Salas

Búsqueda en Profundidad Durante una búsqueda en profundidad en un grafo no dirigido G, todas las aristas pueden ser: Aristas de árbol Aristas de retroceso Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo a c b f d e g a c b f d e g Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Búsqueda en Amplitud void bea(Vertice v){ Grafo T; Vertice x,y; Cola_Vertice C; int MARCA[N_MAX_VERTICES]; ANULA(T); MARCA[v]=1; /* Visitado */ PONE_EN_COLA(v,C); while (!VACIA(C)){ x=FRENTE(C); QUITA_De_COLA(C); for(i=Primero(v);i!=;i=Siguiente(v,i)){ w=Vertice(v,i); if(MARCA[w]==0){ MARCA[w]=1; PONE_EN_COLA(y,C); INSERTA_ARCO(x,y,T) } Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo a c b f d e g a c b f d e g Profesor: Rodrigo Salas

Puntos de Articulación y Componentes Biconexos Un punto de articulación de un grafo es un vértice v tal que cuando se elimina junto con todas las aristas incidentes sobre él, se divide un componente conexo en dos o más partes. Un grafo sin puntos de articulación se llama biconexo. Profesor: Rodrigo Salas

Puntos de Articulación y Componentes Biconexos Realizar una búsqueda en profundidad del grafo. Calcular el numero_bp[v] para todo vértice v. Para cada vértice v, obtener bajo[v] Encontrar los Puntos de Articulación Profesor: Rodrigo Salas

Puntos de Articulación y Componentes Biconexos Realizar una búsqueda en profundidad del grafo. Calcular el numero_bp[v] para todo vértice v. numero_bp[v] es el número asignado al vértice al recorrer el grafo en la búsqueda de profundidad. Ordena los vértices como en un recorrido en orden previo del árbol abarcador en profundidad. Para cada vértice v, obtener bajo[v] Encontrar los Puntos de Articulación Profesor: Rodrigo Salas

Puntos de Articulación y Componentes Biconexos Realizar una búsqueda en profundidad del grafo. Calcular el numero_bp[v] para todo vértice v. bajo[v] es el número_bp más pequeño de v o de cualquier otro vértice w accesible desde v, siguiendo cero o más aristas de árbol hasta un descendiente x de v y después seguir una arista de retroceso (x,w). Se calcula bajo[v] para todos los vértices v, visitándolos en un recorrido orden posterior. Se toma bajo[v] como el mínimo de: número_bp[v] Número_bp[z] para cualquier vérticee z para el cual haya una arista de retroceso (v,z) y Bajo[y] para cualquier hijo y de v. Para cada vértice v, obtener bajo[v] Encontrar los Puntos de Articulación Profesor: Rodrigo Salas

Puntos de Articulación y Componentes Biconexos Realizar una búsqueda en profundidad del grafo. Calcular el numero_bp[v] para todo vértice v. La raíz es un punto de articulación si, y sólo si, tiene dos o más hijos. Un vértice v distinto de la raíz es un punto de articulación si, y sólo si, hay un hijo w de v tal que bajo[w]numero_bp[v] Para cada vértice v, obtener bajo[v] Encontrar los Puntos de Articulación Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo a c b f d e g a c b f d e g Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo numero_bp[a]=1 bajo[a]=1 numero_bp[c]=5 bajo[c]=5 numero_bp[f]=6 bajo[f]=5 numero_bp[g]=7 bajo[g]=5 numero_bp[b]=2 bajo[b]=1 numero_bp[d]=3 bajo[d]=1 numero_bp[e]=4 a c b f d e g Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Pareamiento de Grafos Un grafo cuyos vértices se pueden dividir en dos grupos disjuntos y las aristas presentan un extremo en cada grupo, se conoce como bipartito. El problema del pareamiento consiste en encontrar un subconjunto de las aristas de A de un grafo G=(V,A) en el que ningún par de aristas es incidente sobre el mismo vértice de V. La tarea de la selección de subconjuntos máximos de tales aristas se denomina problema de pareamiento maximal. Un pareamiento completo es aquel en que todo vértice es un punto final de alguna arista en ella. Todo pareamiento completo es maximal. Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 2 3 4 5 6 7 8 9 10 Profesor: Rodrigo Salas

Técnica de caminos aumentados para el Pareamiento de un Grafo Sea C un pareamiento en un grafo G. Un camino que conecte dos vértices no pareados, cuya aristas alternas estén en C, se conoce como camino aumentado relativo a C. Sea D=CA el conjunto maximal de aristas que forman parte del camino aumentado relativo a C, pero no pertenecen a C. D es un pareamiento. Profesor: Rodrigo Salas

Técnica de caminos aumentados para el Pareamiento de un Grafo Iniciar con C= Encontrar un camino aumentado A relativo a C y reemplazar C por D=CA Sí ¿Existen más caminos aumentados? El pareamiento es maximal Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 2 3 4 5 6 7 8 9 10 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 2 4 6 8 9 1 2 4 6 8 9 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 6 2 7 3 8 4 9 5 10 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 2 5 4 6 9 10 2 5 4 6 9 10 Profesor: Rodrigo Salas

Profesor: Rodrigo Salas Ejemplo 1 6 2 7 3 8 4 9 5 10 Profesor: Rodrigo Salas

Fin Tema 9c: Grafos No Dirigidos ¿Preguntas? Universidad Técnica Federico Santa María Departamento de Informática ILI-134 Fin Tema 9c: Grafos No Dirigidos ¿Preguntas? Profesor : Rodrigo Salas e-mail : rsalas@inf.utfsm.cl