Representación de las relaciones y digrafos en la computadora .
Tercer semestre Ingenieria de sistemas y Computacion.
Universidad Del Quindio Armenia 2014
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Representación de relaciones y grafos mediante listas enlazadas y matrices
1. Juan Camilo González I.
David Felipe Hernández
Jhoan Sebastián Gómez
Matemáticas Discretas
Profesor: Adrián Alonso Arboleda
2. 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
3. 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.
4. 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].
5. 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, 𝑉 ≠ 0 , 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.
6. 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 𝑀 𝑖,𝑗 = 1, de lo contrario 𝑀 𝑖,𝑗 = 0.
7. 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:
8. Hay 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
𝑛2
, 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:
𝑇𝐴 = 𝑃𝑁 + (𝑁2
− 𝑃)
Supóngase que 𝑃 = 𝑘𝑁2, en donde
0 ≤ 𝑘 ≤ 1, puesto que P debe estat
entre 0 y 𝑁2
.entonces el algoritmo
tiene 𝑇𝐴 con:
𝑇𝐴 = 𝑘𝑁3 + (1 − 𝑘)𝑁2
9. 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 𝑁𝐷3 pasos
de ejecución. Se supone que 𝑃 = 𝑘𝑁2
con
0 ≤ 𝑘 ≤ 1 , entonces NEWTRANS hace un
promedio de 𝑇𝐿 = 𝑁
𝑘𝑁2
𝑁
3
= 𝑘3 𝑁4 pasos.
10. 1. 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