Mostrando las entradas con la etiqueta descripcion. Mostrar todas las entradas
Mostrando las entradas con la etiqueta descripcion. Mostrar todas las entradas

miércoles, septiembre 24, 2008

Generalizando

Me voy a poner un poco técnico, pero es una historia que puede ser útil para algún otro investigador allá afuera; y si no le sirve a nadie, al menos es una anécdota interesante.
Tengo que explicar primero en qué he estado trabajando. En pocas palabras, supongan que tienen un complejo sistema de información de negocios, así como una serie de permisos que se le asignan a la gente que dicen qué información pueden ver. Como un ejemplo, un empleado no debe poder ver el salario de su jefe, pero sí su propio salario. Dualmente, el jefe debe poder ver su propio salario y el de su empleado.
Ahora, para simplificar la asignación de permisos, estos están estructurados, formando un órden de tal forma que alguien que tiene un permiso "arriba" de otro permiso, puede ver todo lo que autoriza el permiso inferior (y posiblemente, algunas cosas adicionales). Por supuesto, este órden no tiene por qué ser total en general. Como ejemplo, el jefe de desarrollo no tendría por qué estar arriba o abajo del jefe de ventas. En ese sentido, los permisos que ellos tienen son incomparables.
Básicamente, esta estructura de permisos forma una lattice. Si empezamos con eso, es muy simple demostrar que podemos diseñar algoritmos basados en reglas que digan qué cosas puede ver alguien y qué no. Una propiedad interesante de estos algoritmos es que dan el mismo resultado (correcto) independientemente del órden en que se apliquen las reglas.
La pregunta es, ¿podemos generalizar esto?
Bueno, pues empezamos a analizar y vemos que, debido a ciertas operaciones que necesitamos en nuestro algoritmo, lo mínimo que necesitamos es un semianillo. Listo. Ahora, nos gustaría tener la misma propiedad en que no importa el órden en que las reglas se apliquen, para eso necesitamos un semianillo distributivo. ¿Algo más? Parece que no. Empezamos a demostrar cosas y vemos que todo parece funcionar. Las demostraciones son un poco más complicadas, pero eso no es un impedimento para la veracidad de la teoría. Y seguimos demostrando.
Habiendo visto que todo parece funcionar, lo único que nos falta es definir un orden adecuado. Y aquí nos topamos con algo extraño y útil: ¡en todo seminaillo distributivo, el producto es idempotente! Esto es útil porque nos da una forma de definir el órden que queremos, es extraño porque los axiomas de semianillos, junto con la distributividad hacen que el producto y la adición se comporten más o menos de la misma forma. Y la pregunta obvia es ¿es la adición también idempotente?
Pues sí, lo es. Y esto significa que todo semianillo distributivo es de hecho una lattice. Y regresamos a donde empezamos.

lunes, diciembre 03, 2007

Indecidible

Acabo de demostrar que si tenemos un algoritmo - con ciertas características-, entonces es imposible saber de antemano si se puede obtener una explicación de su respuesta en tiempo finito o no; incluso si el algoritmo en sí siempre termina.
No quiero entrar mucho en detalles, pero quiero hablar un poco de la forma en que lo demostré porque me pareció un método interesante y que no había visto antes - aunque definitivamente no es una idea revolucionaria ni mucho menos.
Primero demostré que es imposible decidir si el algoritmo original termina o no. Esto fue relativamente fácil, demostrando que puedo simular una Máquina de Turing con algoritmos que tienen las características que yo requiero. Perfecto, pero eso no me sirve para demostrar que, aún si el algoritmo termina, no puedo saber si su explicación también lo hace.
Entonces ideé una transformación. Es simplemente una función que transforma un algoritmo A en otro f(A), tal que f(A) siempre termina. Pero lo interesante del caso es que ¡la explicación de f(A) se comporta idéntica a A! A termina si y sólo si la explicación de f(A) termina.
Como no puedo saber si A termina, entonces tampoco puedo saber si la explicación de f(A) termina. Pero f(A) siempre termina. Por lo tanto, el hecho de que un algoritmo termine no me da información suficiente para decidir si sus explicaciones lo hacen también.
Uf. Me mareé de explicarlo.

martes, octubre 31, 2006

Cinco objetos

Los cinco objetos que hay en mi cuarto que mejor me describen (con una definición un tanto amplia de objeto) son: