lunes, 25 de octubre de 2010

Introducción a los sistemas expertos - Teoría

No hace mucho tiempo, se creía que algunos problemas como la demostración de teoremas, el reconocimiento de la voz y el de patrones, ciertos juegos
(como el ajedrez o las damas), y sistemas altamente complejos de tipo determinista
o estocástico, debían ser resueltos por personas, dado que su
formulación y resolución requieren ciertas habilidades que solo se encuentran
en los seres humanos (por ejemplo, la habilidad de pensar, observar,
memorizar, aprender, ver, oler, etc.). Sin embargo, el trabajo realizado en
las tres ultimas décadas por investigadores procedentes de varios campos,
muestra que muchos de estos problemas pueden ser formulados y resueltos
por maquinas.
El amplio campo que se conoce como inteligencia artificial (IA) trata
de estos problemas, que en un principio parecían imposibles, intratables y
difíciles de formular utilizando computadoras.

La Inteligencia Artificial es la parte de la Ciencia que se ocupa
del diseño de sistemas de computación inteligentes, es decir,
sistemas que exhiben las características que asociamos a la inteligencia
en el comportamiento humano que se refiere a la comprensión del lenguaje, el aprendizaje, el razonamiento, la resolución de problemas, etc.

Hoy en día, el campo de la IA engloba varias subareas tales como los
sistemas expertos, la demostración automática de teoremas, el juego automático, el reconocimiento de la voz y de patrones, el procesamiento del lenguaje natural, la visión artificial, la robotica, las redes neuronales, etc.

Este blog esta dedicado a los sistemas expertos. Aunque los sistemas expertos
constituyen una de las áreas de investigación en el campo de la IA, la mayor parte de las restantes áreas, si no todas, disponen de una componente de sistemas expertos formando parte de ellas.

¿Qué es un Sistema Experto?
En la literatura existente se pueden encontrar muchas definiciones de sistema
experto. Por ejemplo, Stevens (1984), p´agina 40, da la definici´on
siguiente:

Los sistemas expertos son maquinas que piensan y razonan como
un experto lo haría en una cierta especialidad o campo. Por
ejemplo, un sistema experto en diagnostico medico requeriría
como datos los síntomas del paciente, los resultados de análisis
clínicos y otros hechos relevantes, y, utilizando éstos, buscaría
en una base de datos la información necesaria para poder identificar
la correspondiente enfermedad. [. . .] Un Sistema Experto
de verdad, no sólo realiza las funciones tradicionales de manejar
grandes cantidades de datos, sino que también manipula esos
datos de forma tal que el resultado sea inteligible y tenga significado
para responder a preguntas incluso no completamente
especificadas.

Pero a efectos prácticos, puede resumirse como sigue:
Definición Sistema Experto: Un sistema experto puede definirse
como un sistema informático (hardware y software) que simula a los expertos
humanos en un área de especialización dada.
Como tal, un sistema experto debería ser capaz de procesar y memorizar
información, aprender y razonar en situaciones deterministas e inciertas,
comunicar con los hombres y/u otros sistemas expertos, tomar decisiones
apropiadas, y explicar por que se han tomado tales decisiones. Se puede
pensar también en un sistema experto como un consultor que puede suministrar
ayuda a (o en algunos casos sustituir completamente) los expertos
humanos con un grado razonable de fiabilidad.


Para finalizar esta entrada del BLOG, quiero recordarles que los sistemas expertos tienen muchas aplicaciones. En el próximo POST se dan unos pocos ejemplos ilustrativos del tipo de problemas que pueden resolverse mediante sistemas expertos. Otros ejemplos prácticos se dan a lo largo del blog, incluso mediante su implementacion con Drools Expert. Hasta la próxima entrada.

lunes, 11 de octubre de 2010

DROOLS - El Tutorial

Buenas! como están tanto tiempo? espero que bien, y con ganas de continuar con el aprendizaje de Drools Expert y de la Inteligencia Artificial implementada en la Plataforma Java.
En esta ocasión, les voy a enumerar los pasos que vamos a seguir a lo largo de este tutorial:

  1. Motivación
  2. Requisitos
  3. Descripción
  4. Arquitectura
  5. Requerimientos Funcionales y No Funcionales
  6. Objetivos Pedagógicos
  7. Instaladores
  8. Configurar Ambiente
  9. Crear Reglas
  10. Modificacion de Reglas
  11. Instalacion en Produccion
  12. Descargar el ejemplo completo.
son 12 puntos, pero tal vez sean mas (o menos, aunque no lo creo!). Tenemos mucho por estudiar, asi que comenzamos...