representacion de relaciones y digrafos en la computadora

10
Juan Camilo González I. David Felipe Hernández Jhoan Sebastián Gómez REPRESENTACION DE LAS RELACIONES Y DIGRAFOS EN LA COMPUTADORA Matemáticas Discretas Profesor: Adrián Alonso Arboleda

Upload: david-hernandez

Post on 30-Jun-2015

826 views

Category:

Technology


0 download

DESCRIPTION

Representación de las relaciones y digrafos en la computadora . Tercer semestre Ingenieria de sistemas y Computacion. Universidad Del Quindio Armenia 2014

TRANSCRIPT

Page 1: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Juan Camilo González I.

David Felipe Hernández

Jhoan Sebastián Gómez

REPRESENTACION DE LAS RELACIONES Y DIGRAFOS EN

LA COMPUTADORA

Matemáticas Discretas

Profesor: Adrián Alonso Arboleda

Page 2: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Métodos de representación de elementos de datos

El método más directo para almacenar elementos de datos es colocarlos en una lista o arreglo lineal. Esto equivale a poner elementos de datos consecutivos en lugares de almacenamiento con numeración consecutiva en la memoria de una computadora.

Un método alternativo es la lista enlazada. El almacenamiento de la unidad básica de información es la celda de almacenamiento, tales celdas tienen espacio para dos elementos, los datos y los apuntadores (punteros) que señalan la localización de la siguiente celda por considerar.

Arreglo lineal A con datos en las localidades A[i]

Lista enlazada, en la práctica se utiliza un arreglo de datos A y un arreglo de apuntadores P

Page 3: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Métodos de representación de relaciones y dígrafos

De forma similar a los métodos presentados antes para datos simples, las relaciones y dígrafos se pueden representar los siguientes métodos:

Matriz de Relación (Representación Secuencial)

Una relación R representarse por una matriz , entonces R se puede representar en una computadora por medio de un arreglo bidimensional que tenga ceros y unos almacenados en cada posición.

Ejemplo:

Si A = {1,2} y R = {(1,1), (1,2), (2,2)} entonces estos datos pueden representarse en el arreglo bidimensional MAT, en el cual MAT[1,1]=1, MAT[1,2]=1. MAT[2,1]=0, MAT[2,2] = 1

Lista Enlazada (Representación Enlazada)

Una relación y su dígrafo pueden representarse mediante una lista enlazada, para ello se utilizan dos arreglos TAIL y HEAD que representan los pares ordenados que determinan los lados del dígrafo, un arreglo NEXT de apuntadores al lado siguiente, y una variable adicional START que indica el primer elemento de datos.

Page 4: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Ejemplo

Considérese la relación cuyo dígrafo se muestra abajo, se puede almacenar el dígrafo en forma de lista enlazada usando el siguiente esquema:

Un algoritmo en el que se puede localizar un vértice e investigar los lados que comienzan o terminan en éste vértice utiliza además un arreglo VERT en el cual para cada vértice I, VERT[I] es un apuntador hacia el primer lado de I, y NEXT enlaza los lados de I, e inicia en VERT[I].

Page 5: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Representación de grafos como estructura de datos

Estructura de Datos: En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.

Grafo: Un grafo en el ámbito de las ciencias de la computación es una estructura de datos, en concreto un tipo abstracto de datos (TAD), que consiste en un conjunto de nodos (también llamados vértices) y un conjunto de arcos (aristas) que establecen relaciones entre los nodos.

Grafo Dirigido (Digrafo): Es un par ordenado donde V es un conjunto de vértices o nodos, , y es un conjunto de pares ordenados de elementos de V denominados aristas o arcos, donde por definición un arco va del primero nodo (a) al segundo nodo (b) dentro del par. Dada una arista (a, b), a es su nodo inicial y b es su nodo final.

Orden, grado y bucle: Se llama orden del grafo G a su número de vértices , el grado de un vértice o nodo es igual al número de arcos que lo tienen como extremo. Un bucle es una arista que relaciona al mismo nodo, es decir, una arista donde el nodo inicial y el nodo final coinciden.

Page 6: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Vértices Adyacentes: Son aquellos vértices unidos por alguna arista.

Aristas Paralelas: Son aquellas comprendidas entre los mismos vértices.

Aristas Adyacentes: Las que tienen un único vértice en común siendo distintas y no paralelas.

Aristas Incidentes en un Vértice: Las que tienen a dicho vértice por extremo.

Representación por Estructura de Lista

Lista de incidencia: El grafo está representado por un arreglo de aristas identificadas por un par ordenado de vértices que son los que conecta esa arista.

Lista de adyacencia: El grafo está representado por un arreglo de vértices, cada vértice tiene una lista de vértices los cuales son adyacentes a él.

Lista de grados: También llamada secuencia de grados o sucesión gráfica de un grafo no dirigido, es una secuencia de números que corresponden a los grados de los vértices del grafo.

Representación por Estructuras Matriciales

Matriz de adyacencia: El grafo está representado por una matriz cuadrada M de dimensión n*n en donde n es el número de vértices. Si hay una arista que vaya del vértice i al vértice j, entonces el elemento , de lo contrario .

Page 7: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Grafo G(V,A) Conjuntos Matriz de adyacencia Matriz de incidencia Secuencia de grados

Lista de Adyacencia

V = { 1, 2, 3, 4, 5, 6 }

A = { {1,1}, {1,2}, {1,5}, {2,3}, {2,5}, {3,4}, {4,5}, {4,6} }

(4,3,3,3,2,1) { {1,2,5}, {3,5}, {4}, {5,6} }

Matriz de incidencia: El grafo está representado por una matriz de V (vértices) por A (aristas), donde [vértice, arista] contiene la información de la arista (1 - conectado, 0 - no conectado).

Ejemplos:

Page 8: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Elección del método usado para el almacenamientoHay varios factores que determinan la elección del método usado para el almacenamiento: el número total de elementos n que hay en el conjunto A de la relación, el número de pares ordenados que hay en R o la razón de ese número a , y la información posible que ha de obtenerse de R.

Análisis de la Representación Secuencial

Sea A = {1, 2, …, N} y sea R una relación en A que contiene P pares ordenados y cuya matriz está representada por el arreglo MAT. Se debe considerar los problemas de agregar un par (I,J) a R y probar si R es transitiva.

► Para agregar (I,J) a R se realiza

► Para probar si R es transitiva se considera el siguiente algoritmo:

El número total de pasos que requiere el algoritmo TRANS es:

Supóngase que , en donde , puesto que P debe estat entre 0 y .entonces el algoritmo tiene con:

Page 9: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Análisis de la Representación Enlazada

Considérese el mismo digrafo representado por el esquema de lista enlazada utilizando VERT, TAIL, HEAD y NEXT. El algoritmo ADDEDGE agrega un lado (I,J) a la relación R suponiendo que TAIL, HEAD y NEXT tienen posiciones adicionales disponibles y que el número total se lados se cuenta por una variable P. Además supóngase que se dispone de una función booleana EDGE(I,J) que tiene valor true si (I,J) está en R o de lo contrario el valor false, el algoritmo NEWTRANS hace la prueba de transitividad de R.

Cada uno de los P lados comienza en un vértice único, así que, en promedio lados comienzan en el vértice. El algoritmo completo promediará alrededor de pasos de ejecución. Se supone que con , entonces NEWTRANS hace un promedio de pasos.

Page 10: REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA

Referentes Bibliográficos1. Kolman, Bernard; Busby, Robert; Ross Sharon. Estructuras de

matemáticas discretas para la computación. Editorial Pearson Educación.

2. Jiménez Murillo, José Alfredo. Matemáticas para la computación. Editorial Alfaomega.

3. Lipschutz, Seymour. Estructura de Datos. Serie Schaum en Computación. McGraw-Hill.

4. Quintero Cabrera, Pablo Emilio. Representación de grafos en la memoria de la computadora. http://prezi.com/cx7ldjuk0ryl/representacion-de-grafos-en-la-memoria-de-la-computadora

5. Buitrago, Andrés Felipe; Romero, Sebastián; Largo, Mateo. Representación en computadora de relaciones y digrafos. http://prezi.com/lrwn9zr9uhw4/copy-of-representacion-en-computacion-de-relaciones-y-digrafos

6. González Gutiérrez, Francisco José. Apuntes de Matemática Discreta. http://www2.uca.es/matematicas/Docencia/ESI/1711003/Apuntes/Leccion14.pdf

7. Exposito Lopez, Daniel; García Soto Abraham; Martin Gomez, António Jose. Grafos. http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/grafos.htm

8. Grafos. Algoritmos y Estructuras de datos III. http://www.dc.uba.ar/materias/aed3/2014/1c/teorica/algo3_grafos.pdf