Algoritmos de Grafos.

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación de Computadores
PRACTICO N° 6 GRAFOS año: 2012.
Los Mandatos Commands in Spanish.
SENTENCIAS SECUENCIALES
Indirect Object Pronouns
Type tipo_bf = ; tipo_dato = word; tipo_puntero = ^tipo_nodo; tipo_nodo = record dato: tipo_dato; izquierdo, derecho: tipo_puntero; bf: tipo_bf;
Diseño y análisis de algoritmos
Seminario de Actualización - Excel Avanzado y Macros
Curso de Programación 1 Plan 97
INFORMATICA I Funciones CLASE 13.
Using ir + a + the infinitive. What is an infinitive verb? A verb that ends in –ar, -er, or –ir in Spanish or that begins with to in English. Ejemplos:
Tema 5 Grafos. Implementación (I)..
Tema 1. Introducción a la programación (Lenguaje java).
Algoritmos de Búsqueda
ESTRUCTURA DEL LENGUAJE C
Algoritmos y Estructuras de Datos
Infinitive Er- Ir- Verbs (Subjunctive) Por: Nate, Maria, Taylor.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.
Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
GRAFOS HUGO ARAYA CARRASCO.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
TEMA 1 PROGRAMACIÓN MODULAR.
Coloración de Grafos Planos
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Vectors (Vectores) Agustin J. González ELO329. Contenidos Qué es un vector? Declaración de Objetos Vectores Inserción y eliminación de items Uso de sub-índices.
Algoritmos para Ordenar datos
Introducción a la Programación
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación I Arreglos II- Matrices.
Control de Flujo.
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Conjuntos  Tipo estructurado  Es una lista encerrada entre corchetes  Deben ser elementos de igual tipo y Ordinales. Pueden especificarse subrangos.
Tema 8: Tipos de Datos Estructurados I
Grafos..
Los mandatos. Cómo formar los mandatos Use commands when you want to tell someone to do something or not to do something.
Diseño y análisis de algoritmos
1 Funciones Agustín J. González Versión Original de Kip Irvine ELO329.
Los Complementos Directos Direct Object Pronouns (en inglés) Necesita: Su cuaderno Un lápiz.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
1 Funciones en C++: Nota: Este material es de estudio personal, en clases sólo revisaremos las láminas con. Usted revise todo. Agustín J. González ELO329.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
MODULA Lenguaje de Programación Anabel Martín González
Repaso C Ficheros, memoria dinámica, … Pablo San Segundo (C-206)
Coloreado de Mapas con Backtracking
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
ANALISIS Y DISEÑO DEL ALGORITMOS
Ciclos while y do ... while Ixent Galpin.
Resolución de problemas y algoritmos
Usando for, while y do while
Paso por Referencia v/s Paso por Valor
Árboles Binario de Búsqueda
Diego Hernández R Pascal Variables Diego Hernández R
Criterios cobertura de grafos: código fuente
Grafos Introducción y definiciones.
GRAFOS ESTRUCTURAS DE DATOS.
Paso por Referencia v/s Paso por Valor
Estructuras de Control 3 Ciclos
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Diego Hernández R Pascal Variables Diego Hernández R
Casos de prueba con JUnit
String, arreglos y arreglos bidimensionales
Diego Hernández R. Archivos Diego Hernández R.
String, arreglos y arreglos bidimensionales
END.
Transcripción de la presentación:

Algoritmos de Grafos

Ejemplo: (Usando algoritmo F) 1 4 2 3 15 5 50 30 D 1 2 3 4 5  50 15 30

Algoritmo F Funcion F(L[1..n,1..n]):matriz[1..n,1..n] matriz D[1..n,1..n] D=L P=0 para k=1 hasta n hacer para i=1 hasta n hacer para j=1 hasta n hacer si D[i,k]+D[k,j]<D[i,j] entonces D[i,j]=D[i,k]+D[k,j] P[i,j]=k finsi finpara Devolver D L=matriz con las longitudes de las aristas L[i,j]=0, i=1,2,...,n L[i,j]0 si (i,j) L[i,j]= si no (i,j) Algoritmo F

Algoritmo Ws CONST n = ...; (* numero de vertices del grafo *) TYPE MATRIZ = ARRAY[1..n],[1..n] OF BOOLEAN; PROCEDURE Ws (VAR L,D:MATRIZ); VAR i,j,k: CARDINAL; BEGIN FOR i:=1 TO n DO FOR j:=1 TO n DO D[i,j]:=L[i,j] END END; FOR k:=1 TO n DO D[i,j]:=D[i,j] OR (D[i,k] AND D[k,j]) END Ws; grafo g = (V,A) cuya matriz de adyacencia sea L

void InitGrafo(int costos[MAXNODOS][MAXNODOS], int nnodos) { int i, j; Algoritmo de B-F void InitGrafo(int costos[MAXNODOS][MAXNODOS], int nnodos) { int i, j; for(i=0; i<nnodos; i++) for(j=0; j<nnodos; j++) costos[i][j] = INFINITO; }

int B-F(const int costos[MAXNODOS][MAXNODOS], const int nnodos, const int origen, int *mindist, int *predec) { int i, u, v; for(i=0; i<nnodos; i++) { mindist[i] = INFINITO; predec[i] = -1; } mindist[origen] = 0; for(i=0; i < nnodos-1; i++) { for(u=0; u < nnodos; u++) { for(v=0; v < nnodos; v++) { if(costos[u][v] != INFINITO) { if(mindist[v] > mindist[u] + costos[u][v]) { mindist[v] = mindist[u] + costos[u][v]; predec[v] = u;

Ejecución for(u=0; u < nnodos; u++){ for(v=0; v < nnodos; v++){ if(costos[u][v] != INFINITO && mindist[v] > mindist[u] +costos[u][v]) return 0; return 1; }

ALGORITMO DJ Dj(Grafo g,int v) { int c,i,num_elem=ordenGrafo(g); int *costo=calloc(num_elem,sizeof(int)) desmarcarGrafo(g); For(i=0;i<=num_elem;i++) costo[i]=costoArco(g,v,i+1); marcarvertice(g,v); Costo[v-1]=0; While((v=sigvertice(g,costo,num_elem))!=-1) { marcarvertice(g,v); for(i=0;i<=num_elem;i++) if(!marcadovertice(g,i+1))&&(c=costoarco(g,v, i+1))!=-1) if(costo[i]==-1) costo[i]=costo[v-1]+c; else costo[i]=min(costo[i],costo[v-1]+c) }