P. 1
Fórmulas lógicas generalizadas con semántica matricial

Fórmulas lógicas generalizadas con semántica matricial

|Views: 182|Likes:
Publicado porsofialaks

More info:

Published by: sofialaks on Aug 27, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

08/27/2010

pdf

text

original

Título: Fórmulas lógicas generalizadas con semántica matricial. Autor: Sergio M. Estrin. Fecha: 24/08/2010.

/* Fórmulas lógico-proposicionales generalizadas, matrices /* booleanas n-D, y algoritmos computacionales iterativos /* evaluatorios de las mismas. /* Programa en seudocódigo que permite obtener el valor de verdad /* de la siguiente fórmula operando sobre la matriz lógica 3-D /* x, la que a los efectos teóricos se supone ya cargada. /* Sea CiCjCk x(i, j, k); donde 0<i<m+1; 0<j<n+1; 0<k<p+1. /* m, n, p se consideran números naturales cualesquiera. integer i, j, k boolean Ci, Cj, Ck /* sólo en el programa, no en la fórmula /* en la cual son operadores lógicos condicionales generalizados. dim boolean x(1 to m, 1 to n, 1 to p) Ci = .True. /* valor de verdad neutro for i = 1 to m; +1 Cj = .True. /* valor de verdad neutro for j = 1 to n; +1 Ck = .True. /* valor de verdad neutro for k = 1 to p; +1 Ck = (Ck x(i, j, k)) next k /* end for Cj = (Cj Ck) next j /* end for Ci = (Ci Cj) next i /* end for ? Ci /* displaya el valor .True./.False. que resulta de la /* aplicación de la fórmula a los elementos de las matrices 3-D x, y, z. /* Con criterio similar se pueden evaluar fórmulas del mismo tipo /* combinando distintos operadores generalizados e incluso variando /* el orden en estos últimos de los subíndices i, j, k, como por /* ejemplo en AjKiEk x(i, j, k) donde 0<j<n+1; 0<i<m+1; 0<k<p+1. /* Además es posible también utilizar más de una matriz, todas compatibles /* entre sí en tipo, dimensión y magnitud, creando fórmulas bien formadas /* "matriciales". Tal el caso de AjKiEk (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k))) /* siendo 0<j<n+1; 0<i<m+1; 0<k<p+1, que trataremos aquí sin apelar a /* sus valores de verdad neutros, dado que sí los tienen y son A: .False., /* K: .True., y E: .True. No obstante ello, y a modo de práctica, puesto /* que existen otros operadores que no los poseen, como ocurre con X, /* evitaremos su uso según lo dicho, y nos atendremos a nuevas técnicas /* de trabajo que los reemplazarán aunque "complejizando" relativamente /* la correspondiente algoritmia resolutiva.

/* Programa en seudocódigo que permite obtener el valor de verdad /* de la siguiente fórmula operando sobre las matrices lógicas 3-D /* x, y, z, las que a los efectos teóricos se suponen ya cargadas. /* AjKiEk (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k))); con 0<j<n+1; /* 0<i<m+1; 0<k<p+1. /* m, n, p se consideran números naturales cualesquiera. integer i, j, k boolean Aj, Ki, Ek /* sólo en el programa, no en la fórmula /* en la cual son operadores lógicos generalizados. dim boolean x(1 to m, 1 to n, 1 to p), y(1 to m, 1 to n, 1 to p), z(1 to m, 1 to n, 1 to p) for j = 1 to n; +1 for i = 1 to m; +1 for k = 1 to p; +1 if (k =1) then Ek = (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k))) else Ek = (Ek (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k)))) end if next k /* end for if (i = 1) then Ki = Ek else Ki = (Ki & Ek) end if next i /* end for if (j = 1) then Aj = Ki else Aj = (Aj v Ki) end if next j /* end for ? Aj /* displaya el valor .True./.False. que resulta de la /* aplicación de la fórmula a los elementos de las matrices x, y, z. /* Ambos algoritmos poseen estructuras de programación iterativas, /* pero sólo el segundo incorpora estructuras de decisión, dado que /* al no emplearse valores de verdad neutros en cada caso debe tomarse /* en cuenta si se trata de la primera vez del ciclo, en cuyo caso /* hay una mera asignación del acumulador lógico actual desde /* el inmediato anterior, o bien el ciclo es del tipo {2, 3, ... }, /* en cuyo caso deberá producirse también una asignación, previa /* realización de la operación booleana correspondiente al tipo de /* variable acumulativa empleada. Estas técnicas pueden ser a su vez /* generalizadas aún a matrices n-dimensionales siendo el diseño /* algorítmico óptimo aquel que logra una solución de compromiso /* entre la utilización de valores de verdad neutros, si los hay, lo que ya

/* hemos visto simplifica el diseño, y el uso del recurso ejemplificado /* de la detección del primer valor de verdad, tratándolo de manera distinta /* de los restantes, cuando no existe valor de verdad neutro para la /* operación lógica considerada, lo cual implica el desarrollo de una, /* diríamos, "técnica mixta" eficiente y sistémicamente implementable. /* Veamos un ejemplo mutatis mutandis sobre la base del caso anterior:

/* Programa en seudocódigo que permite obtener el valor de verdad /* de la siguiente fórmula operando sobre las matrices lógicas 3-D /* x, y, z, las que a los efectos teóricos se suponen ya cargadas. /* AjKiXk (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k))); con 0<j<n+1; /* 0<i<m+1; 0<k<p+1. /* m, n, p se consideran números naturales cualesquiera. integer i, j, k boolean Aj, Ki, Xk /* sólo en el programa, no en la fórmula /* en la cual son operadores lógicos generalizados. dim boolean x(1 to m, 1 to n, 1 to p), y(1 to m, 1 to n, 1 to p), z(1 to m, 1 to n, 1 to p) Aj = .False. /* valor de verdad neutro for j = 1 to n; +1 Ki = .True. /* valor de verdad neutro for i = 1 to m; +1 for k = 1 to p; +1 if (k =1) then Xk = (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k))) else Xk = (Ek w (x(i, j, k) v ((¬y(i, j, k)) & z(i, j, k)))) end if next k /* end for Ki = (Ki & Xk) next i /* end for Aj = (Aj v Ki) next j /* end for ?Aj /* displaya el valor .True./.False. que resulta de la /* aplicación de la fórmula a los elementos de las matrices x, y, z. /* Nota: Al hacer referencia a n en n-D o en n-dimensionales sólo se /* quiere indicar el concepto de múltiple-dimensionalidad, ya que /* se trata de una forma notacional clásica y no se relaciona con el /* n tope de la segunda dimensión recorrida por el subíndice j en /* las matrices vistas anteriormente.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->