Secciones de la página

Reglas


Sfk. Diary


ChRules. RandRecursive


ChRules. Iterative

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









Programas que emplean reglas

Programas que emplean reglas usualmente como un conjunto denominado base de reglas.

A continuación se expone un breve resumen de cada uno de los progamas y, en cada programa, pulsando sobre el botón azul con flecha, a la derecha del título, se accede a su código completo.

make.tol de Sfk.Diary

El programa Sfk.Diary es un conversor de textos en Word, que corresponden a anotaciones de actividades para partes de trabajo, con una anotacion por linea, a un formato que se puede pegar en Excel, de forma que cada concepto (empresa, proyecto, dedicacion, fechas, observaciones, etc.) se encaje en su celda correspondiente. El texto se copia de Word

El programa Sfk.Diary es un conversor de textos en Word, que corresponden a anotaciones de actividades para partes de trabajo, con una anotacion por linea, a un formato que se puede pegar en Excel, de forma que cada concepto (empresa, proyecto, dedicacion, fechas, observaciones, etc.) se encaje en su celda correspondiente. El texto se copia de Word al clipboard, a este texto que esta escrito en un lenguaje natural, aunque con ciertas reglas de escritura, este conversor, le da un formato Ascii separador mediantes tabuladores y le añade fórmulas y ambas cosas permite pegarlo en una plantilla Excel de control de trabajos.

Para simplificar la programacion de este conversor se emplea un unico fichero temporal y un solo clipboard por lo que este programa no soporta ejecuciones paralelas. Para el manejo del clipboard se utiliza una herramienta de sfk169.exe de las Swiss File Knife, Sfk, que pueden encontrarse en la direccion http://stahlworks.com/dev/swiss-file-knife.html. El programa sfk169.exe no se invoca directamente, se hace a traves de 2 programas de mandatos que permiten fijar un conjunto de caracteres que no de problemas con las eñes y enmascarar el uso de los ficheros temporales.

make.tol de ChRules.RandRecursive

ChRules.RandRecursive es un programa de aplicacion de reglas de reescritura que: a) aplica a un area rectangular de caracteres, b) reglas de transformacion de areas rectangulares de caracteres y c) que juntas forman una base de reglas de transformacion del contenido de ese area con un cierto objetivo. Las reglas de ChRules.RandRecursive son del

ChRules.RandRecursive es un programa de aplicacion de reglas de reescritura que: a) aplica a un area rectangular de caracteres, b) reglas de transformacion de areas rectangulares de caracteres y c) que juntas forman una base de reglas de transformacion del contenido de ese area con un cierto objetivo. Las reglas de ChRules.RandRecursive son del tipo [condicion, accion], esto es: a) si se cumple la condicion b) entonces se aplica la accion de transformacion. Tanto la parte de la condicion como la de la accion son 2 rectangulos de caracteres, en principio de identicas dimensiones, por ejemplo de 2x3 caracteres, de 1x2 caracteres, 3x5 caracteres, etc. La parte inicial del nombre del programa, ChRules, proviene de estas caracteristicas, Ch de Ch(aracters) y Rules de reglas, esto es, que se podrian llamar reglas de caracteres. La idea basica del funcionamiento es la siguiente: a) si en el estado actual del area de caracteres existe algun subarea rectangular con el mismo contenido que la parte de condicion de una regla, b) entonces dicha regla es aplicable y de aplicarse el subarea rectangular del area de caracteres que coincide con la condicion es sobreescrita, conservando la forma, con el area rectangular de caracteres de la accion de la regla. Por tanto, estas reglas de rectangulos de caracteres que utiliza el programa ChRules.RandRecursive pueden considerarse como reglas de reescritura, pero, a diferencia de otras reglas de reescritura, en vez de trabajar con secuencias de caracteres trabajan con areas rectangulares de caracteres.

ChRules.RandRecursive visualiza sus resultados de 2 formas diferentes: a) Mediante una traza de evolucion del mapa por pantalla. b) Mediante una traza en un fichero en disco, escrita en Javascript, que permite la posterior simulacion de los resultados. Esta traza en Javascript necesita ser retocada, por ejemplo, en la finalizacion de los arrays, para poder ser empleada por un simulador Javascript. El programa se estructura en base a un probrama principal make.tol que se incluye tantos ficheros de aplicaciones como casos se han programado. Cada uno de los casos consta de: a) Un area de caracteres inicial que puede ser cosiderado como el mapa de operaciones o la base de hechos. b) Una base de reglas con las reglas de caracteres que operan sobre dicho mapa. Las funciones principales de ChRules.RandRecursive son: a) Set EngineCicle() que es el motor recursivo de aplicacion de reglas. b) Set EngineGetRule() que elige al azar una regla aplicable y para ello se apoya en EngineMatch() que encuentra los posibles match entre subareas del area y la parte de condicion de las reglas. c) Set EngineApplyRule() que aplica una regla y transforma un subarea al azar, de entre las transformables, del area y para ello se apoya en la funcion EngineApplyAction() que aplica una accion a un area. d) Real PackPrint() que se encarga de visualizar las reglas, las areas en su estado inicial y en su evolucion e, incluso, de la creacion de las trazas, como arrays en Javascript, que permitiran la simulacion. Aunque escribe Javascript, este programa no es categorizado como de metaprogramacion pues el codigo Javascript que genera no es 100% funcional.

make.tol de ChRules.Iterative

ChRules.Iterative es un programa iterativo de aplicacion de reglas de reescritura que: a) aplica a un area rectangular de caracteres, b) reglas de transformacion de areas rectangulares de caracteres y c) que juntas forman una base de reglas de transformacion del contenido de ese area para alcanzar un cierto objetivo, como por ejemplo, solucionar un

ChRules.Iterative es un programa iterativo de aplicacion de reglas de reescritura que: a) aplica a un area rectangular de caracteres, b) reglas de transformacion de areas rectangulares de caracteres y c) que juntas forman una base de reglas de transformacion del contenido de ese area para alcanzar un cierto objetivo, como por ejemplo, solucionar un problema Las reglas de ChRules.Iterative son del tipo [condicion, accion], esto es: a) si se cumple la condicion, el rectangulo condicion de la regla equipara con alguna subarea del area de trabajo b) entonces se aplica la accion de transformacion cambiando el contenido de la antigua subarea del area de trabajo por el nuevo rectangulo que proporciona la parte de la accion de la regla.

Cada caso de estudio (problema a resolver) para ChRules.Iterative se define mediante: a) sus areas de trabajo iniciales, que pueden ser una o mas, para diferentes variantes del mismo problema y b) sus bases de reglas para su resolucion, generalmente una base, pero puede haber mas para diferentes formas de solucionar el problema y, aun mas, estas bases de reglas se pueden combinar mediante, el algebra de conjuntos de Tol, para crear nuevas bases de reglas para determinados tipos de problemas. // Por ejemplo, para el caso de los robots que buscan como salir de un laberinto se puenden: a) Definir distintos laberintos con diferentes posiciones de entrada y salidada de los robots y con uno o mas robots. b) Se puede definir una base de reglas para que el robot emplee el algoritmo llamado de la mano derecha y, tambien, su simetrico de la mano izquierda. c) Una base de reglas para resolver conflictos de bloqueo mutuo cuando 2 o mas robots intentan salir del laberinto. d) Crear una base de reglas conjunto con la base de reglas de resolucion de conflictos mas la base de reglas del algoritmo de la mano derecha (o de la izquierda).

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol