Blog dedicado a la investigacion sobre Software realizado en plataforma J2EE, en especial con Aplicaciones que utilizan la Inteligencia Artificial de Plataforma Drools .
Etiquetas
- Base de Conocimiento (1)
- Drools Expert (4)
- Inteligencia Artificial (4)
- Java (1)
- Sistemas de Produccion (1)
- Sistemas Expertos (4)
- Teoria Inteligencia Artificial (1)
lunes, 25 de octubre de 2010
Introducción a los sistemas expertos - Teoría
lunes, 11 de octubre de 2010
DROOLS - El Tutorial
- Motivación
- Requisitos
- Descripción
- Arquitectura
- Requerimientos Funcionales y No Funcionales
- Objetivos Pedagógicos
- Instaladores
- Configurar Ambiente
- Crear Reglas
- Modificacion de Reglas
- Instalacion en Produccion
- Descargar el ejemplo completo.
viernes, 24 de septiembre de 2010
Motores de Regla Open Source en Java
- Drools
- JESS
- OpenRules
- Mandarax
- SweetRules
- Take
- JRuleEngine
- JLisa
- JEOPS - The Java Embedded Object Production System ( Sistema Integrado de objetos de producción )
- Prova language
Sistemas Expertos: Arquitectura básica
Por lo ya visto, sabemos que un Sistema Experto (SE) es una aplicación capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica.
- Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un experto. Es una parte muy importante de definir, y muy costosa. Tambien se lo llama knowledgebase en inglés; KB, kb or Δ y es un tipo especial de base de datos para la gestión del conocimiento. Provee los medios para la recolección, organización y recuperación de conocimiento. Es donde modelaremos "lo que sabemos" del problema a resolver.
- Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis. Es donde trabajaremos.
- Motor de inferencia: Modela el proceso de razonamiento humano. Recordemos que una inferencia es una evaluación que realiza la mente entre expresiones bien formadas de un lenguaje, para obtener un resultado.
- Módulos de justificación: Es como se explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión. Parte importante!
- Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje natural. Muchas veces esto es simplemente un resultado, un reporte o un mensaje en una pantalla. Iterativamente, se puede ir mejorando.
Antes que Drools, Starting Teorico....
lunes, 20 de septiembre de 2010
Sistemas Expertos en Java - Comenzando...
Es un software capaz de solucionar problemas que necesitan de un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa viene del conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distintos temas (no necesariamente tiene que ser de inteligencia artificial). También se dice que un Sistema Experto (SE) se basa en el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).
Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:
- Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos.
- Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza.
Debido a esto, en la actualidad se están mezclando diferentes técnicas o aplicaciones aprovechando las ventajas que cada una de estas ofrece para poder tener empresas más seguras, o al menos, realizar implementar software más seguro y estable. Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de negociar y navegar a través de recursos en la web.
Un Sistema Experto está formado por:
- Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un experto.
- Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis.
- Motor de inferencia: Modela el proceso de razonamiento humano.
- Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión.
- Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje natural.
Tipos de SE
Principalmente existen tres tipos de sistemas expertos:
- Basados en reglas previamente establecidas.
- Basados en casos o CBR (Case Based Reasoning).
- Basados en redes bayesianas.
En cada uno de estos, la solución a un problema planteado se obtiene:
- Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación.
- Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema.
- Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.
VENTAJAS
Los Sistemas Expertos nos dan la
Ademas, permite manejar información y resolver problemas sin tener presente al "Experto Humano", algo que puede resultar muy costoso de tener.
LIMITACIONES
Es evidente que para
Debido a la escasez de expertos humanos en determinadas áreas, los SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. Así mismo los SE pueden ser utilizados por
Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean capaces de resolver problemas de manera general, de aplicar el sentido común para resolver situaciones complejas ni de controlar situaciones ambiguas.
El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo elegido tenga la necesidad y/o presencia de un experto para la obtención de cualquier tipo de beneficio.
Nosotros aquí vamos a estudiar como integrar Drools Expert dentro de las aplicaciones de la Plataforma Java. Hasta la próxima entrada del blog!
lunes, 26 de julio de 2010
COMPARACION: Java vs C#
viernes, 16 de julio de 2010
Cursos actuales
Hello World!
Bienvenidos al curso ‘Java Básico’ que se dicta en el Instituto de Capacitación perteneciente a la Asociación Gremial de Docentes de la Universidad Tecnológica Nacional (FAGDUT).Por medio de este blog realizare como docente un seguimiento y apoyo del curso a los alumnos. También vamos a intercambiar ideas, realizar consultas y encontraremos ‘post’ con las lecturas complementarias.
Programa:
Capítulo 1: El modelo de objetos y el lenguaje Java : Se introduce el concepto de orientación a objetos y cómo se utiliza el mismo en el lenguaje Java. Se presenta el entorno de desarrollo Eclipse que se va a utilizar durante el dictado del curso. También se presenta “donde estamos” en relacion a la “Plataforma Java”
Capítulo 2: Programación en Java : Se presenta la sintaxis del lenguaje.
Capítulo 3: Manejo de Clases en Java : Se analiza la diferencia entre Clase y Tipo de Dato Primitivo. Punteros. Administración dinámica de la memoria. Se ven, en la práctica, los temas analizados en forma teórica en el capítulo 1.
Capítulo 4: Excepciones : Se explica qué es una excepción, la importancia de su tratamiento en una aplicación.
Capítulo 5: Entrada / salida: Se analiza la forma de poder leer y escribir usando Streams de entrada y de Salida, como ejemplo, se usa un archivo de acceso secuencial.
Capítulo 6: Comunicaciones : Se analiza el concepto de comunicaciones usando el protocolo TCP/IP. Como ejemplo, se escribe una aplicación cliente/ servidor distribuida usando dicho protocolo.
Capítulo 7: Threads (Hilos) : Se muestra la necesidad de incorporar multiprogramación para poder brindar atención simultanea a los clientes que arriban al servidor creado en el capítulo anterior y se analiza el uso de Threads en Java para poder resolver este problema.Recuerden que a lo largo del curso, que tiene una duración de 30hs distribuidas en 12 clases, vamos a ir agregando lecturas complementarias optativas.