lunes, 22 de noviembre de 2010

REPRESENTACIÓN DEL CONOCIMIENTO

El conocimiento es importante y primordial para el comportamiento inteligente y su representación constituye una de las máximas prioridades de la investigación en IA.  Este puede ser representado como imágenes mentales en nuestros pensamientos, como palabras habladas o escritas en algún lenguaje, en forma gráfica o en imágenes, como cadenas de caracteres o colecciones de señales eléctricas o magnéticas dentro de un computador.
Una representación del conocimiento puede ser un esquema o dispositivo utilizado para capturar los elementos esenciales del dominio de un problema. Una representación manipulable es aquella que facilita la computación .En re presentaciones manipulables, la información es accesible a otras entidades que usan la representación como parte de una computación.

MANIPULACIÓN DEL CONOCIMIENTO
PARADIGMAS
Programación Heurística.- Está basado en el modelo de comportamiento humano y su estilo para resolver problemas complejos. Existen diversos tipos de programas que incluyen algoritmos heurísticos. Varios de ellos son capaces de aprender de su experiencia.


Redes Neuronales Artificiales.- Es una representación abstraída del modelo neuronal del cerebro humano.  Una red neuronal artificial puede ser simulada o ser real; al procesador de la red, se lo denomina neurona artificial.

Evolución Artificial.- Su modelo está basado en el proceso genético de evolución natural, propuesto por Charles Darwin. Se utilizan sistemas simulados en computador que evolucionan mediante operaciones de reproducción, mutación y cruce (Algoritmos Genéticos).

LENGUAJES PARA LA REPRESENTACIÓN DEL CONOCIMIENTO
Hay lenguajes formales, o «teóricos» , que satisfacen en mayor o menor grado esas condiciones y lenguajes de implementación, o «prácticos» , que, siguiendo el modelo de algún lenguaje formal, están adaptados para mecanizar la construcción de ontologías. Nos centraremos en los primeros, que son relativamente «estables», y sobre los que se basan los segundos, algunos muy «volátiles».
PUNTO ESENCIAL DEL RECONOCIMIENTO
El punto esencial del reconocimiento de patrones es la clasificación: se quiere clasificar una señal dependiendo de sus características. Señales, características y clases pueden ser de cualquiera forma, por ejemplo se puede clasificar imágenes digitales de letras en las clases «A» a «Z» dependiente de sus píxeles o se puede clasificar ruidos de cantos de los pájaros en clases de órdenes aviares dependiente de las frecuencias.
Un sistema de reconocimiento de patrones completo consiste en un sensor que recoge las observaciones a clasificar, un sistema de extracción de características que transforma la información observada en valores numéricos o simbólicos, y un sistema de clasificación o descripción que, basado en las características extraídas, clasifica la medición.
El reconocimiento de patrones es más complejo cuando se usan plantillas para generara variantes. El reconocimiento de patrones se estudia en muchos campos, incluyendo psicología, etiología, informática y procesado digital de la señal.

ÁRBOLES DE DECISIÓN
Un árbol de decisión es un modelo de predicción utilizado en el ámbito de la inteligencia artificial, dada una base de datos se construyen estos diagramas de construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que suceden de forma sucesiva, para la resolución de un problema.



Un árbol de decisión sirve para modelar funciones discretas, en las que el objetivo es determinar el valor combinado de un conjunto de variables, y basándose en el valor de cada una de ellas, determinar la acción a ser tomada.
Los árboles de decisión son normalmente construidos a partir de la descripción de la narrativa de un problema.

Ellos proveen una visión gráfica de la toma de decisión necesaria, especifican las variables que son evaluadas, qué acciones deben ser tomadas y el orden en la cual la toma de decisión será efectuada. Cada vez que se ejecuta un árbol de decisión, solo un camino será seguido dependiendo del valor actual de la variable evaluada.

Se recomienda el uso del árbol de decisión cuando el número de acciones es pequeño y no son posibles todas las combinaciones.

Uso de árboles decisiones

El desarrollo de árboles de decisión beneficiado analista en dos formas. Primero que todo, la necesidad de describir condiciones y acciones llevan a los analistas a identificar de manera formal las decisiones que actualmente deben tomarse. De esta forma, es difícil para ellos pasar por alto cualquier etapa del proceso de decisión, sin importar que este dependa de variables cuantitativas o cualitativas.

Los árboles también obligan a los analistas a considerar la consecuencia de las decisiones.

Se ha demostrado que los árboles de decisión son eficaces cuando es necesario describir problemas con más de una dimensión o condición. También son útiles para identificar los requerimientos de datos críticos que rodean al proceso de decisión, es decir, los árboles indican los conjuntos de datos que la gerencia requiere para formular decisiones o tomar acciones. El analista debe identificar y elaborar una lista de todos los datos utilizados en el proceso de decisión, aunque el árbol de decisión no muestra todo los datos.

Si los árboles de decisión se construyen después de completar el análisis de flujo de datos, entonces es posible que los datos críticos se encuentren definidos en el diccionario de datos (el cual describe los datos utilizados por el sistema y donde se emplean). Si únicamente se usan árboles de decisiones, entonces el analista debe tener la certeza de identificar con precisión cada dato necesario para tomar la decisión.

Los árboles de decisión no siempre son la mejor herramienta para el análisis de decisiones.  El árbol de decisiones de un sistema complejo con muchas secuencias de pasos y combinaciones de condiciones puede tener un tamaño considerable.   El gran número de ramas que pertenecen a varias trayectorias constituye más un problema que una ayuda para el análisis.   En estos casos los analistas corren el riesgo de no determinar qué políticas o estrategias de la empresa son la guía para la toma de decisiones específicas.  Cuando aparecen estos problemas, entonces es momento de considerar las tablas de decisión.

AUTOMÁTAS CELULARES


Máquinas discretas que pueden realizar cierto tipo de cómputos. Fueron inventados en la década de 1940 por John von Neumann.

Los Autómatas Celulares son universos lógicos de tiempo y espacio discreto, que cumplen su propia física local.

Tipos de Autómatas Celulares

Algunas familias interesantes son las siguientes:

Ø  Autómatas celulares no deterministas.
Ø  La función de transición especifica un conjunto de posibles estados siguientes para cada configuración de los vecinos.
Ø  Autómatas celulares probabilistas.
Ø  La función de transición especifica un conjunto de posibles estados siguientes para cada configuración de los vecinos y define, además, una distribución de probabilidades discreta para asociar una probabilidad a cada opción.

SISTEMA MULTIAGENTE



Ciencia y técnica que trata con los sistemas de inteligencia artificial en red. El bloque fundamental de construcción de un sistema multiagente, como es de esperarse, son los agentes; por lo general son vistos como entidades inteligentes, equivalentes a un proceso del sistema operativo, que existen dentro de cierto contexto o ambiente, y que se pueden comunicar a través de un mecanismo de comunicación inter-proceso, usualmente un sistema de red, utilizando protocolos de comunicación.  

Hay que notar que los agentes no son necesariamente inteligentes. Existen como en todo el resto del dominio de la inteligencia artificial, dos enfoques para construir sistemas multiagentes:
  • El enfoque formal o clásico, que consiste en dotar de los agentes de la mayor inteligencia posible utilizando descripciones formales del problema a resolver y de hacer reposar el funcionamiento del sistema en tales capacidades cognitivas. Usualmente la inteligencia es definida utilizando un sistema formal (por ejemplo, sistemas de inferencia lógica) para la descripción, raciocinio, inferencia de nuevo conocimiento y planificación de acciones a realizar en el medio ambiente.
  • El enfoque constructivista, que persigue la idea de brindarle inteligencia al conjunto de todos los agentes, para que a través de mecanismos ingeniosamente elaborados de interacción, el sistema mismo genere comportamiento inteligente que no necesariamente estaba planeado desde un principio o definido dentro de los agentes mismos (que pueden ser realmente simples). Este tipo de conducta es habitualmente llamado comportamiento emergente.
Desarrollo orientado a agentes
Como casi todo enfoque informático para la solución de problemas, los sistemas multiagentes proponen ayudas metodológicas de ingeniería de software, en este caso metodologías de ingeniería del software orientada a agentes (en inglés AOSE, Agent Oriented Software Engineering) y notaciones. Es decir, artefactos de desarrollo que son específicamente concebidos para crear sistemas basados en agentes.

Sistemas Multiagente Adaptativos

Los sistemas multiagente más atractivos desde el punto de vista de los sistemas de información son aquellos que permitan la integración de información y servicios de forma automática o semi-automática, permitiendo [DAML-S] :

Descubrimiento automático de Servicios Web. Los agentes pueden identificar de forma automática los servicios que necesitan para cumplir sus tareas.
Invocación automática de Servicios Web. Dada únicamente la descripción del servicio, el agente puede invocarlo, en contraste con la situación en la que el sistema ha sido pre-programado para invocar tal o cual servicio.
Composición automática e interoperación. A lo anterior se une la selección, composición e interoperación de varios servicios para desarrollar una tarea compleja.
Los objetivos del planteamiento son posibilitar la adaptación dinámica de un proceso de negocio mediante su implementación con sistemas multiagentes, aprovechando como base los estándares de servicios web y lenguajes de coreografía de servicios.

Los sistemas de este tipo, más que reprogramados según los ciclos de desarrollo software habituales, serán reconfigurados mediante agentes interfaz que permitan a los administradores del sistema la adición de nuevos roles, nuevos servicios y nuevas ontologías y mediante la modificación de los objetivos y las normas organizacionales.

Integración de Servicios

Arquitectura


La adición de nuevos servicios plug-and-play es posible si se establecen directorios de servicios y meta-información que indique no sólo cómo se invocan, sino en qué contexto y con qué fin.   El lenguaje WSDL define el primer aspecto, al definir la estructura y formato de las entradas y las salidas, y el URL del servicio.

Las especificaciones de workflows requieren mayor expresividad que la simple descomposición de tareas y/o de los planes que encontramos en la mayor parte de las metodologías. Otras acuden a notaciones formales para complementar el modelo.

En el ámbito de la especificación de workflows, sin embargo, ya existen lenguajes basados en el cálculo Pi (BPEL4WS, BPML, WSFL, XLANG, XPDL, WS-CDL, WSCI) y de representación de redes de Petri (PNML) que podrían utilizarse para la planificación en sistemas multiagente.


Finalmente, para la especificación de la semántica de los servicios, que permita la composición dinámica y la adaptación, el lenguaje DAML-S permite describir servicios web semánticos [DAML-S].

Los agentes pueden evaluar qué alternativas tienen en el caso del fallo de un servicio, o aprender qué proveedor ofrece una respuesta más rápida. El cambio en el modelo de datos debería ser transparente de cara al proceso, siempre y cuando la información no tenga implicaciones en el control del propio proceso o enriquezca el modelo anterior.

La utilización de ontologías, que deben ser convenidas previamente entre demandante y oferente, permiten la interacción en entornos abiertos y, con el tiempo, existirán repositorios públicos de ontologías de propósito general que facilitarán la integración a nivel de datos. La investigación actual en técnicas de mapeo de ontologías es muy importante en este sentido, pues ayudará a la integración de agentes que utilicen ontologías similares, pero no idénticas.

DIMENSIONES DE LOS AGENTES

ØInteracción: desde lo colaborativo a la no interacción.
ØLenguaje de comunicación: señales simples a ninguna en modo alguno.
ØControl/autonomía: desde cada agente como un proceso separado (o en hilo) hasta un proceso simple.
ØPro-activos: desde proactivos a reactivos.
ØClaridad espacial: cada agente se le asigna una localización en el espacio hasta la no noción de espacio.
ØMovilidad: cada agente moviéndose alrededor en un espacio físico simulado hasta todos estando en estados estacionarios.
ØAdaptatividad: desde el aprendizaje a lo estático.