Actividad Didáctica 3 Representación de operaciones sobre

Anuncio
Actividad Didáctica 3
Representación de operaciones sobre relaciones con matrices
Introducción
Una de las formas más comunes de representar las relaciones, además de los pares
ordenados, es la denominada matriz de relación, la cual compuesta por unos y ceros. Las
filas corresponden a los elementos del primer conjuntos y las columnas a los elementos del
segundo conjunto. El elemento en la fila y la columna es uno si x R y, y es cero en caso
contrario.
Una matriz booleana es una matriz de números cuyas componentes o entradas son
exclusivamente ceros o unos. Las matrices booleanas son útiles porque pueden representar
objetos abstractos como relaciones binarias o grafos. Por lo tanto la matriz de relación es
una matriz booleana.
Las operaciones básicas que se pueden realizar entre matrices booleanas son cuatro:
unión, intersección, complemento y producto booleano. Sin embargo, estas operaciones no
pueden realizarse sobre dos matrices cualesquiera, sino que deben cumplir ciertos criterios
para poder llevarse a cabo.
En particular, en el caso de la unión y la intersección, las matrices que intervienen
en la operación deben tener el mismo tamaño, y en el caso del producto booleano, las
matrices deben cumplir con las mismas condiciones que para formar el producto de
matrices.
Supóngase que las relaciones R y S son relaciones sobre el conjunto A = {1, 2, 3}
donde
R= {(1,1),(1,3),(2,1),(3,2)} S={(1,1),(1,3),(2,2),(2,3),(3,1)} son dos relaciones sobre A.
Entonces sus matrices de relación correspondientes son:
MR =
y MS =
Además las matrices booleana se pueden emplear para determinar muchas de las
operaciones sobre las relaciones binarias.
Actividad: con el software libre Maxima demostrar que las siguientes expresiones son
equivalentes:
Operación
1.
MRS = MR  MS.
2.
MRS = MR  MS.
3.
MR’ = (MR)’ .
4.
MRS = MR  (MS)’ .
5.
MRS = MR  MS.
6.
= (MR)t.
Instrucción y resultado
NOTA: Algunas de las operaciones booleanas definidas en Maxima tienen algún error o,
simplemente, no aparecen.
A continuación se proporcionan las instrucciones para definir todas las funciones
necesarias para la realización de la actividad:
log_y(a,b):= block(if(a=1 and b=1)then return(1) else return(0));
log_o(a,b):= block(if(a=1 or b=1)then return(1) else return(0));
log_no(a):= block(if(a=0)then return(1) else return(0));
matriz_log_y(A,B):=matrixmap(log_y, A, B);
matriz_log_o(A,B):=matrixmap(log_o, A,B);
matriz_log_no(A):=matrixmap(log_no,A);
Descargar