domingo, 2 de diciembre de 2007

Sistemas Expertos



SISTEMAS EXPERTOS


Desde el punto de vista de la especificidad del conocimiento, los sistemas basados en conocimiento ocupan un lugar intermedio entre los sistemas originales de IA débil, en los que el conocimiento utilizado es de caracter general, y los Sistemas Expertos (SE) que operan en un dominio muy restringido, utilizando conocimiento altamente especializado.
A la luz de esta cadena de desarrollo, un sistema experto puede ser definido como un sistema basado en conocimiento que emula la competencia de un experto, dentro de un campo de aplicación bien delimitado. También puede ser definido como un conjunto de programas de computadora cuyo comportamiento es similar al que tendría un experto humano

Características de los Sistemas Expertos


Para que un sistema computacional actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:


-Habilidad para adquirir conocimiento.
-Fiabilidad, para poder confiar en sus resultados o apreciaciones.
-Solidez en el dominio de su conocimiento.
-Capacidad para resolver problemas.


Dada la complejidad de los problemas que usualmente tiene que resolver un SE, puede existir cierta duda en el usuario sobre la validez de respuesta obtenida. Por este motivo, es una condición indispensable que un SE sea capaz de explicar su proceso de razonamiento o dar razón del por qué solicita tal o cual información o dato.

Sistemas Basados en Conocimiento



SISTEMAS BASADOS EN CONOCIMIENTO


Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la IA demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigacion. A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.
La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la IA, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser simplemente la siguiente:
Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee conocimiento específico.
La solución es esencialmente la misma que hubiera dado un ser humano confrontado con idéntico problema, aunque no necesariamente el proceso seguido por ambos puede ser igual.
El simple concepto dado, puede causar confusión ya que muchos sistemas basados en programas convencionales podrían ser incorrectamente categorizados como sistemas basados en conocimiento. Esta inconsistencia puede ser aclarada, sobre la base de tres conceptos fundamentales que distinguen a los sistemas basados en conocimiento de los programas algorítmicos convencionales y de los programas generales basados en búsqueda (IA débil):
La separación que existe entre el conocimiento, y la forma cómo éste es utilizado. El uso de conocimiento específico de un determinado dominio. La naturaleza heurística, antes que algorítmica del conocimiento utilizado.
Dicho de una manera simple, los programas convencionales utilizan algoritmos para resolver problemas, mientras que los sistemas basados en conocimiento resuelven problemas donde las soluciones algorítmicas no existen o son muy costosas para ser implementadas.
Experiencia, Habilidades y Conocimiento
Los tipos de experiencia que son interés en los sistemas basados en conocimiento, pueden ser clasificados en tres categorías: asociativa, motora y teórica.
Los sistemas basados en conocimiento son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o el conocimiento que es adquirido mayoritariamente, a través de la observación. Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se puede asociar entradas o estímulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos.
La experiencia motora es más fisica que cognitiva. La habilidad se adquiere fundamentalmente a través del ejercicio y la práctica física constante. Los sistemas basados en conocimiento no pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnología robótica.
La experiencia teórica y el conocimiento profundo permite que los humanos podamos resolver problemas que no los hemos visto antes, es decir que no existe una posibilidad asociativa. El conocimiento teórico y profundo se lo adquiere a través de estudio y entrenamiento formal, así como por medio de la resolución directa de problemas. Debido a la naturaleza teórica, este conocimiento se lo puede olvidar fácilmente, a no ser que se lo use en forma continua. Al momento, los sistemas convencionales basados en conocimiento tienen muchas dificultades para duplicar este tipo de experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos representan un notable intento de encapsular este conocimiento profundo y razonar con él.
En las siguientes secciones se concentrará el estudio en los sistemas basados en conocimiento que representan experiencias de tipo asociativo.


Estructura de los SBC


La arquitectura de un sistema basado en conocimiento de alguna manera refleja la estructura cognitiva y los procesos humanos. La primera parte es la memoria de largo plazo, en la que guarda los hechos (Base de Hechos) y los conocimientos (Base de Conocimientos) acerca del dominio en el que tiene experiencia.


La segunda parte es el sistema que realiza la función de razonamiento para resolver problemas (Motor de Inferencia). Finalmente, la tercera parte la conforman las unidades de entrada y salida que permiten la comunicacion entre el sistema y su entorno.
A continuación se describen las principales características de estas unidades.


El Motor de inferencia.


Selecciona, decide, interpreta y aplica el conocimiento de la base de conocimientos sobre la base de hechos con el fin de obtener la solución buscada. Un mecanismo de inferencia debe ser independiente del conocimiento y de los hechos. Está caracterizado por:


El lenguaje en que ha sido escrito.
La velocidad de trabajo: Inferencias/segundo.
Las estrategias de búsqueda de soluciones:
No Ordenada: aleatoria, heurística.
Ordenada: Encadenamiento hacia adelante (guiado por los datos, deductivo), encadenamiento hacia atrás (guiado por los objetivos, inductivo).
La forma en que elige el conocimiento.
La posibilidad de incorporar metaconocimiento.
El tipo de lógica que emplea en el razonamiento:
Booleana, trivalente, multivalente, difusa.
Monotónica o no monotónica.
Atemporal o temporal.
Lógica de orden 0, orden 0+, orden 1.


El método que utiliza para la evaluacion del conocimiento incompleto o incierto:


Determinístico.
Probabilístico.
Aproximado.
Difuso.


La Base de Conocimientos


Contiene el conocimiento del dominio en el cual el programa es competente. El conocimiento tiene que estar representado en la forma que resulte más adecuada para el dominio de su competencia. Adicionalmente hay que tratar que esa representación sea:


-Sencilla.
-Independiente.
-Fácil de modificar.
-Transparente: justificación de soluciones y explicación de los procesos.
-Relacional.
-Potente: poder expresivo y eficiencia de cálculo.


Un aspecto importante de una base de conocimientos es su capacidad, expresada sobre la base del número de reglas que posee:


-Demostración interesante: 50 reglas.
-Prototipo funcional: 250 reglas.
-SE operacional medio: 500 - 1000 reglas.
-SE operacional especial: 4000 reglas.
Una base de conocimientos debe ser coherente, rápida, modular, fácil de desarrollar y mantener.


La Base de Hechos


La base de hechos es el conjunto de información invariable de una a otra resolución. Los hechos se diferencian de los datos en el sentido que los hechos forman parte del SBC, mientras que los datos, al poder variar de una solución a otra, conviene agruparlos en archivos externos al SBC.
Algunos autores no consideran a la base de hechos en forma independiente. Los conocimientos y los hechos pueden aparecer conjuntamente en una sola base, la de conocimientos.

Los Módulos de Comunicación.


Un SE necesita medios y canales adecuados, sencillos y potentes, para comunicarse:
Con el usuario:Para permitir el dialogo en forma sencilla.
Con el experto:Para la configuración del sistema; para la adquisición, mantenimiento, depuración y validación del conocimiento.
Con archivos externos: Base de Datos, hojas electrónicas de cálculo, archivos de texto, programas.

Reglas de Produccion.

REPRESENTACIÓN MEDIANTE REGLAS DE PRODUCCIÓN

Los sistemas basados en reglas son los más comúnmente utilizados. Su simplicidad y similitud con el razonamiento humano, han contribuido para su popularidad en diferentes dominios. Las reglas son un importante paradigma de representación del conocimiento.
Las reglas representan el conocimiento utilizando un formato SI-ENTONCES (IF-THEN), es decir tienen 2 partes:

La parte SI (IF), es el antecedente, premisa, condición o situación; y La parte ENTONCES (THEN), es el consecuente, conclusión, acción o respuesta.
Las reglas pueden ser utilizadas para expresar un amplio rango de asociaciones, por ejemplo:

SI está manejando un vehículo Y se aproxima una ambulancia, ENTONCES baje la velocidad Y hágase a un lado para permitir el paso de la ambulancia.

SI su temperatura corporal es de 39 ºC, ENTONCES tiene fiebre.

SI el drenaje del lavabo está tapado Y la llave de agua está abierta, ENTONCES se puede inundar el piso.

Inferencia Basada en Reglas

Una declaración de que algo es verdadero o es un hecho conocido, es una afirmación (fact). El conjunto de afirmaciones se conoce a menudo con el nombre de memoria de trabajo o base de afirmaciones. De igual forma, al conjunto de reglas se lo denomina base de reglas.
Un sistema basado en reglas utiliza el modus ponens para manipular las afirmaciones y las reglas durante el proceso de inferencia. Mediante técnicas de búsqueda y procesos de unificación, los sistemas basados en reglas automatizan sus métodos de razonamiento y proporcionan una progresión lógica desde los datos iniciales, hasta las conclusiones deseadas. Esta progresión hace que se vayan conociendo nuevos hechos o descubriendo nuevas afirmaciones, a medida que va guiando hacia la solución del problema.
En consecuencia, el proceso de solución de un problema en los sistemas basados en reglas va realizando una serie de inferencias que crean un sendero entre la definición del problema y su solución. Las inferencias están concatenadas y se las realiza en forma progresiva, por lo que se lo que se dice que el proceso de solución origina una cadena de inferencias.
Los sistemas basados en reglas difieren de la representación basada en lógica en las siguientes características principales:
Son en general no-monotónicos, es decir hechos o afirmaciones derivadas, pueden ser retractados, en el momento en que dejen de ser verdaderos. Pueden aceptar incertidumbre en el proceso de razonamiento.

EL PROCESO DE RAZONAMIENTO

El proceso de razonamiento en un sistema basado en reglas es una progresión desde un conjunto inicial de afirmaciones y reglas hacia una solución, respuesta o conclusión.
Como se llega a obtener el resultado, sin embargo, puede variar significativamente:
Se puede partir considerando todos los datos conocidos y luego ir progresivamente avanzando hacia la solución. Este proceso se lo denomina guiado por los datos o de encadenamiento progresivo (forward chainning).
Se puede seleccionar una posible solución y tratar de probar su validez buscando evidencia que la apoye. Este proceso se denomina guiado por el objetivo o de encadenamiento regresivo (backward chainning).

Razonamiento Progresivo

En el caso del razonamiento progresivo, se empieza a partir de un conjunto de datos colectados a través de observacion y se evoluciona hacia una conclusión. Se chequea cada una de las reglas para ver si los datos observados satisfacen las premisas de alguna de las reglas. Si una regla es satisfecha, es ejecutada derivando nuevos hechos que pueden ser utilizados por otras reglas para derivar hechos adicionales. Este proceso de chequear reglas para ver si pueden ser satisfechas se denomina interpretación de reglas.
La interpretacion de reglas es realizada por una máquina de inferencia en un sistema basado en conocimiento. La interpretación de reglas, o inferencia, en el razonamiento progresivo involucra la repetición de los pasos que se indican en la siguiente figura.


Razonamiento Progresivo.

Unificación (Matching).- En este paso, en las reglas en la base de conocimientos se prueban los hechos conocidos al momento para ver cuáles son las que resulten satisfechas. Para decir que una regla ha sido satisfecha, se requiere que todas las premisas o antecedentes de la regla resuelvan a verdadero.
Resolución de Conflictos.- Es posible que en la fase de unificación resulten satisfechas varias reglas. La resolucion de conflictos involucra la seleccion de la regla que tenga la más alta prioridad de entre el conjunto de reglas que han sido satisfechas.
Ejecución.- El último paso en la interpretación de reglas es la ejecución de la regla. La ejecución puede dar lugar a uno o dos resultados posibles: nuevo hecho (o hechos) pueden ser derivados y añadidos a la base de hechos, o una nueva regla (o reglas) pueden ser añadidas al conjunto de reglas (base de conocimiento) que el sistema considera para ejecución.
En esta forma, la ejecución de las reglas procede de una manera progresiva (hacia adelante) hacia los objetivos finales.
Un conjunto de aplicaciones adecuadas al razonamiento progresivo incluye supervision y diagnostico en sistemas de control de procesos en tiempo real, donde los datos están continuamente siendo adquiridos, modificados y actualizados. Estas aplicaciones tienen 2 importantes características:
Necesidad de respuesta rápida a los cambios en los datos de entrada.
Existencia de pocas relaciones predeterminadas entre los datos de entrada y las conclusiones derivadas.
Otro conjunto de aplicaciones adecuadas para el razonamiento progresivo está formado por: diseño, planeamiento y calendarización, donde ocurre la sintesis de nuevos hechos basados en las conclusiones de las reglas. En estas aplicaciones hay potencialmente muchas soluciones que pueden ser derivadas de los datos de entrada.
Debido a que estas soluciones no pueden ser enumeradas, las reglas expresan conocimiento como patrones generales y las conexiones precisas entre estas reglas no pueden ser predeterminadas.

Razonamiento Regresivo.

El mecanismo de inferencia, o interprete de reglas para el razonamiento regresivo, difiere significativamente del mecanismo de razonamiento progresivo. Si bien es cierto ambos procesos involucran el examen y aplicación de reglas, el razonamiento regresivo empieza con la conclusión deseada y decide si los hechos que existen pueden dar lugar a la obtención de un valor para esta conclusión. El razonamiento regresivo sigue un proceso muy similar a la búsqueda primero en profundidad.
El sistema empieza con un conjunto de hechos conocidos que típicamente está vacío. Se proporciona una lista ordenada de objetivos (o conclusiones), para las cuales el sistema trata de derivar valores. El proceso de razonamiento regresivo utiliza esta lista de objetivos para coordinar su búsqueda a través de las reglas de la base de conocimientos. Esta búsqueda consiste de los siguientes pasos:
Conformar una pila inicialmente compuesta por todos los objetivos prioritarios definidos en el sistema.
Considerar el primer objetivo de la pila. Determinar todas las reglas capaces de satisfacer este objetivo, es decir aquellas que mencionen al objetivo en su conclusión.

Para cada una de estas reglas examinar en turno sus antecedendentes:
Si todos los antecedentes de la regla son satisfechos (esto es, cada parámetro de la premisa tiene su valor especificado dentro de la base de datos), entonces ejecutar esta regla para derivar sus conclusiones. Debido a que se ha asignado un valor al objetivo actual, removerlo de la pila y retornar al paso (2).
Si alguna premisa de la regla no puede ser satisfecha, buscar reglas que permitan derivar el valor especificado para el parámetro utilizado en esta premisa.
Si en el paso (b) no se puede encontrar una regla para derivar el valor especificado para el parámetro actual, entonces preguntar al usuario por dicho valor y añadirlo a la base de datos. Si este valor satisface la premisa actual entonces continuar con la siguiente premisa de la regla. Si la premisa no es satisfecha, considerar la siguiente regla.
Si todas las reglas que pueden satisfacer el objetivo actual se han probado y todas no han podido derivar un valor, entonces este objetivo quedará indeterminado. Removerlo de la pila y retornar al paso (2). Si la pila está vacía parar y anunciar que se ha terminado el proceso.
El razonamiento regresivo es mucho más adecuado para aplicaciones que tienen mucho mayor número de entradas, que de soluciones posibles. La habilidad de la lógica regresiva para trazar desde las pocas conclusiones hacia las múltiples entradas la hace más eficiente que el encadenamiento progresivo.
Una excelente aplicación para el razonamiento regresivo es el diagnóstico, donde el usuario dialoga directamente con el sistema basado en conocimiento y proporciona los datos a través del teclado. Problemas de clasificación también son adecuados para ser resuelto mediante el razonamiento regresivo.

Representacion del Conocimiento

REPRESENTACIÓN DEL CONOCIMIENTO

En organismos biológicos se estima que el conocimiento es almacenado como estructuras complejas de neuronas interconectadas.
En las computadoras, el conocimiento también se almacena como estructuras simbólicas, pero en forma de estados eléctricos y magnéticos.
En forma natural, el ser humano representa el conocimiento simbólicamente: imagenes, lenguaje hablado y lenguaje escrito. Adicionalmente, ha desarrollado otros sistemas de representación del conocimiento: literal, numérico, estadístico, estocástico, lógico.
La ingenieria cognoscitiva ha adaptado diversos sistemas de representación del conocimiento que, implantados en un computador, se aproximan mucho a los modelos elaborados por la psicologia cognoscitiva para el cerebro humano. Entre los principales se tienen:
Lógica Simbólica Formal:

- Lógica proposicional
- Lógica de predicados.
- Reglas de producción.
Formas Estructuradas:

- Redes asociativas.
- Estructuras marco.
- Representación orientada a objetos.
Lógica Proposicional
La lógica proposicional es la más antigua y simple de las formas de lógica. Utilizando una representación primitiva del lenguaje, permite representar y manipular aserciones sobre el mundo que nos rodea. La lógica proposicional permite el razonamiento, a través de un mecanismo que primero evalúa sentencias simples y luego sentencias complejas, formadas mediante el uso de conectivos proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina la veracidad de una sentencia compleja, analizando los valores de veracidad asignados a las sentencias simples que la conforman.
Una proposición es una sentencia simple que tiene un valor asociado ya sea de verdadero (V), o falso (F). Por ejemplo:

Hoy es Viernes
Ayer llovió
Hace frío
La lógica proposicional, permite la asignación de un valor verdadero o falso para la sentencia completa, no tiene facilidad par analizar las palabras individuales que componen la sentencia. Por este motivo, la representación de las sentencias del ejemplo, como proposiciones, sería:
hoy es Viernes
ayer llovió
hace frío
La proposiciones pueden combinarse para expresar conceptos más complejos. Por ejemplo:
hoy es Viernes y hace frío.
A la proposición anterior dada como ejemplo, se la denomina fórmula bien formada (well-formed formula, wff). Una fórmula bien formada puede ser una proposición simple o compuesta que tiene sentido completo y cuyo valor de veracidad, puede ser determinado. La lógica proposicional proporciona un mecanismo para asignar valores de veracidad a la proposición compuesta, basado en los valores de veracidad de las proposiciones simples y en la naturaleza de los conectores lógicos involucrados.

Representación mediante Lógica de Predicados

La principal debilidad de la lógica proposicional es su limitada habilidad para expresar conocimiento. Existen varias sentencias complejas que pierden mucho de su significado cuando se las representa en lógica proposicional. Por esto se desarrolló una forma lógica más general, capaz de representar todos los detalles expresados en las sentencias, esta es la lógica de predicados.
La lógica de predicados está basada en la idea de las sentencias realmente expresan relaciones entre objetos, así como también cualidades y atributos de tales objetos. Los objetos pueden ser personas, objetos físicos, o conceptos. Tales cualidades, relaciones o atributos, se denominan predicados. Los objetos se conocen como argumentos o términos del predicado.
Al igual que las proposiciones, los predicados tienen un valor de veracidad, pero a diferencia de las preposiciones, su valor de veracidad, depende de sus términos. Es decir, un predicado puede ser verdadero para un conjunto de términos, pero falso para otro.
Por ejemplo, el siguiente predicado es verdadero:

color (yerba, verde)
el mismo predicado, pero con diferentes argumentos, puede no ser verdadero:
color (yerba, azul) o color (cielo, verde)
INFERENCIA Y RAZONAMIENTO.

Inferir es concluir o decidir a partir de algo conocido o asumido; llegar a una conclusión. A su vez, razonar es pensar coherente y lógicamente; establecer inferencias o conclusiones a partir de hechos conocidos o asumidos.
El proceso de razonamiento, por lo tanto, involucra la realización de inferencias, a partir de hechos conocidos. Realizar inferencias significa derivar nuevos hechos a partir de un conjunto de hechos conocidos como verdaderos. La lógica de predicados proporciona un grupo de reglas sólidas, con las cuales se pueden realizar inferencias. Las principales Reglas de Inferencia son:

Modus ponens.- Es la más importante, en los sistemas basados en conocimiento. Establece que:
Si las sentencias p y (p y q) se conocen que son verdaderas, entonces se puede inferir que q también es verdadera.

Modus tolens.- Esta regla establece que:
Si la sentencia (p y q) es verdadera y q es falsa, entonces se puede inferir que p también es falsa.
Resolución.- Utiliza refutación para comprobar una determinada sentencia. La refutación intenta crear una contradicción con la negación de la sentencia original, demostrando, por lo tanto, que la sentencia original es verdadera. La resolución es una técnica poderosa para probar teoremas en lógica y constituye la técnica básica de inferencia en PROLOG, un lenguaje que manipula en forma computacional la lógica de predicados. La regla de resolución, establece que:

Si (A y B) es verdadero y (~B y C) es verdadero, entonces (A y C) también es verdadero.

En lógica de predicados, existen tres métodos básicos de razonamiento: deductivo, abductivo e inductivo.
Deducción.- Es el razonamiento a partir de un principio conocido hacia un desconocido; de lo general, a lo específico, o de la premisa a la conclusión lógica. La deduccion realiza inferencias lógicamente correctas. Esto significa que la deducción a partir de premisas verdaderas, garantiza el resultado de conclusiones también verdaderas.

La deducción es el metodo más ampliamente comprendido, aceptado y reconocido de los tres indicados. Es la base tanto de la lógica proposicional, como de la lógica de predicados. A manera de ejemplo, el método deductivo, se puede expresar, utilizando lógica de predicados, como sigue:
A, B, C, [mayor (A, B) mayor (B, C) mayor (A, C)]
Abducción.- Es un método de razonamiento comúnmente utilizado para generar explicaciones. A diferencia de la induccion, la abducción no garantiza que se puedan lograr conclusiones verdaderas, por lo tanto no es un método sólido de inferencia. La forma que tiene la abducción es la siguiente:
Si la sentencia (A y B) es verdadera y B es verdadera, entonces A es posiblemente verdadera.
En abducción, se empieza por una conclusión y se procede a derivar las condiciones que podrían hacer a esta conclusión válida. En otras palabras, se trata de encontrar una explicación para la conclusión.
Inducción.- Se define como el razonamiento a partir de hechos particulares o casos individuales, para llegar a una conclusión general. El método inductivo es la base de la investigacion cientifica. La forma más común del método inductivo es la siguiente:
Si se conoce que P(a), P(b), ......, P(n) son verdaderos, entonces se puede concluir que, X, P(X) es también verdadero.
La inducción es una forma de inferencia muy importante ya que el aprendizaje, la adquisición de conocimiento y el descubrimiento están basados en ella. Al igual que la abducción, la inducción no es un método sólido de inferencia. El razonamiento deductivo es una forma monotónica de razonar que produce argumentos que preservan la verdad. En un sistema monotónico todos los axiomas utilizados se conocen como verdaderos por sus propios méritos, o pueden ser derivados de otros hechos conocidos como verdaderos. Los axiomas no pueden cambiar, ya que una vez que se los conoce como verdaderos, siempre permanecen así y no pueden ser modificados o retractados. Esto significa que en el razonamiento monotónico el conjunto de axiomas continuamente crece en tamaño.
Otro aspecto del razonamiento monotónico es que si más de una inferencia lógica puede ser hecha a un tiempo específico y una de ellas se realiza, las inferencias que quedan serán todavía aplicables después que dicha inferencia haya sido hecha.

Espacio de Estados



Espacio de estado



Un sistema moderno complejo posee muchas entradas y muchas salidas que se relacionan entre sí en una forma complicada. Para analizar un sistema de este tipo, es esencial reducir la complejidad de las expresiones matemáticas. El enfoque en el espacio de estados para los análisis de sistemas es el más conveniente.
En tanto que la teoría de control convencional se basa en la descripción de las ecuaciones de transferencia, la teoría de control moderna se basa en la descripción de las ecuaciones de un sistema en términos de n ecuaciones diferenciales de primer orden. El uso de la notación matricial simplifica enormemente la representación matemática de los sistemas de ecuaciones. El incremento en la cantidad de variables de estado, de entradas y de salidas no aumenta la complejidad de las ecuaciones.


Representación del espacio de estados



El conjunto de estados que el agente (en nuestro ejemplo, el robot) debe recorrer, generalmente se representa mediante un grafo, aunque en algunos casos concretos utilizaremos árboles. Siguiendo con nuestro ejemplo, cada nodo del grafo representará a uno de los baldosines de la habitación, y dos nodos serán adyacentes si también lo son sus baldosines correspondientes.
El grafo del dibujo en la parte superior arriba representa el tablero de manera parcial, y cada nodo es identificado por un número. Suponemos que la posición inicial del robot es el baldosín marcado con el número 1. En este grafo se aplica una correspondencia entre los nodos del mismo y los baldosines numerados de igual forma. Como se puede observar en el tablero, por ejemplo, el baldosín 1 es adyacente al 2 y al 5, y este hecho queda plasmado en el dibujo mostrado.
Ejemplo:

Se tienen dos jarras, una de 4 litros de capacidad y otra de 3.
-Ninguna de ellas tiene marcas de medición.
- Se tiene una bomba que permite llenar las jarras de agua.
-Averiguar cómo se puede lograr tener exactamente 2 litros de agua en
la jarra de 4 litros de capacidad.
-Representación de estados: (x y) con x en {0,1,2,3,4} e y en {0,1,2,3}.
-Número de estados: 20.
Solucion:


Estado inicial: (0 0).
Estados finales: todos los estados de la forma (2 y).
Operadores:
Llenar la jarra de 4 litros con la bomba.
Llenar la jarra de 3 litros con la bomba.
Vaciar la jarra de 4 litros en el suelo.
Vaciar la jarra de 3 litros en el suelo.
Llenar la jarra de 4 litros con la jarra de 3 litros.
Llenar la jarra de 3 litros con la jarra de 4 litros.
Vaciar la jarra de 3 litros en la jarra de 4 litros.
Vaciar la jarra de 4 litros en la jarra de 3 litros.


Aplicación de operadores a un estado (x y):
Operador .Llenar jarra de 3.
Aplicabilidad: y<3>0, x+y>4 (precondición)
Estado resultante: (4 x+y-4)
Operador .Vaciar jarra de 3 en jarra de 4.
Aplicabilidad: y>0, x+y4 (precondición)
Estado resultante: (x+y 4)
Análogamente los demás operadores

jueves, 6 de septiembre de 2007

HISTORIA DE LA IA


HISTORIA Y EVOLUCIÓN DE LA INTELIGENCIA ARTIFICIAL



La Inteligencia Artificial "nació" en 1943 cuando Warren McCulloch y Walter Pitts propusieron un modelo de neurona del cerebro humano y animal. Estas neuronas nerviosas abstractas proporcionaron una representación simbólica de la actividad cerebral.
Más adelante, Norbert Wiener elaboró estas ideas junto con otras, dentro del mismo campo, que se llamó cibernetica
"; de aquí nacería, sobre los años 50, la Inteligencia Artificial.
Los primeros investigadores de esta innovadora ciencia
, tomaron como base la neurona formalizada de McCulloch y postulaban que:
"El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro".
Pero si consideramos la enorme complejidad del mismo esto es ya prácticamente imposible, ni que mencionar que el hardware
de la época ni el software estaban a la altura para realizar semejantes proyectos.
Se comenzó a considerar el pensamiento
humano como una coordinación de tareas simples relacionadas entre sí mediante símbolos. Se llegaría a la realización de lo que ellos consideraban como los fundamentos de la solución inteligente de problemas, pero lo difícil estaba todavía sin empezar, unir entre sí estas actividades simples.
Es en los años 50 cuando se logra realizar un sistema que tuvo cierto éxito
, se llamó el Perceptrón de Rossenblatt. Éste era un sistema visual de reconocimiento de patrones en el cual se asociaron esfuerzos para que se pudieran resolver una gama amplia de problemas, pero estas energías se diluyeron enseguida.
Fue en los años 60 cuando Alan Newell
y Herbert Simon, que trabajando la demostración de teoremas y el ajedrez por ordenador logran crear un programa llamado GPS (General Problem Solver: solucionador general de problemas). Éste era un sistema en el que el usuario definía un entorno en función de una serie de objetos y los operadores que se podían aplicar sobre ellos. Este programa era capaz de trabajar con las torres de Hanoi, así como con criptoaritmética y otros problemas similares, operando, claro está, con microcosmos formalizados que representaban los parámetros dentro de los cuales se podían resolver problemas. Lo que no podía hacer el GPS era resolver problemas ni del mundo real, ni médicos ni tomar decisiones importantes. El GPS manejaba reglas heurísticas (aprender a partir de sus propios descubrimientos) que la conducían hasta el destino deseado mediante el método del ensayo y el error.
En los años 70, un equipo de investigadores dirigido por Edward Feigenbaum comenzó a elaborar un proyecto
para resolver problemas de la vida cotidiana o que se centrara, al menos, en problemas más concretos. Así es como nació el sistema experto.
El primer sistema experto fue el denominado Dendral
, un intérprete de espectrograma de masa construido en 1967, pero el más influyente resultaría ser el Mycin de 1974. El Mycin era capaz de diagnosticar trastornos en la sangre y recetar la correspondiente medicación, todo un logro en aquella época que incluso fueron utilizados en hospitales (como el Puff, variante de Mycin de uso común en el Pacific Medical Center de San Francisco, EEUU).
Ya en los años 80, se desarrollaron lenguajes especiales para utilizar con la Inteligencia Artificial, tales como el LISP
o el PROLOG. Es en esta época cuando se desarrollan sistemas expertos más refinados, como por el ejemplo el EURISKO. Este programa perfecciona su propio cuerpo de reglas heurísticas automáticamente, por inducción.



CARACTERÍSTICAS DE LA INTELIGENCIA ARTIFICIAL
· Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.
· El comportamiento
de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).
· El razonamiento basado en el conocimiento
, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.
· Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolucion de conflictos
en tareas orientadas a metas como en planificacion , o el diagnostico de tareas en un sistema del mundo real: con poca informacion, con una solución cercana y no necesariamente exacta.
La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robótica, usada principalmente en el campo industrial; comprensión de lenguajes y traducción; visión en máquinas que distinguen formas y que se usan en líneas de ensamblaje; reconocimiento de palabras y aprendizaje de máquinas; sistemas computacionales expertos.
Los sistemas expertos
, que reproducen el comportamiento humano en un estrecho ámbito del conocimiento, son programas tan variados como los que diagnostican infecciones en la sangre e indican un tratamiento, los que interpretan datos sismológicos en exploración geológica y los que configuran complejos equipos de alta tecnologia.
Tales tareas reducen costos
, reducen riesgos en la manipulación humana en áreas peligrosas, mejoran el desempeño del personal inexperto, y mejoran el control de calidad sobre todo en el ámbito comercial.

DEFINICION E INTRODUCCION






La Inteligencia Artificial es una ciencia dedicada a la construcción de máquinas que implementan tareas propias de humanos dotados de Inteligencia. Otra edición la define como la implementación de razonamientos inteligentes mediante técnicas propias de la Computación.

INTRODUCCIÓN

La finalidad de la Inteligencia Artifial cons
iste en crear teorías y modelos que muestren la organizacion y funcionamiento de la inteligencia. Actualmente, el mayor esfuerzo en la búsqueda de la inteligencia artificial se centra en el desarrollo de sistemas de procesamientos de datos que sean capaces de imitar a la inteligencia humana, realizando tareas que requieran aprendizaje, solución de problemas y decisiones. A veces llamada inteligencia de máquina, la inteligencia artificial o AI (Artificial Intelligence) cubre una vasta gama de teorías y prácticas.

LA BASE DE LA INTELIGENCIA ARTIFICIAL

La inteligencia artificial se basa en dos áreas de estudio: el cuerpo humano
y el ordenador electrónico. Puesto que la meta es copiar la inteligencia humana, es necesario entenderla. Sin embargo, a pesar de todos los progresos en Neurología y Psicología, la inteligencia del hombre se conoce poco, exceptuando sus manifestaciones externas. Muchos estudiosos de la inteligencia artificial se han vuelto – para obtener su modelo de inteligencia – hacia el estudio de la Psicología cognoscitiva, que aborda la forma de percibir y pensar de los seres humanos.. Después comprueban sus teorías programando los ordenadores para simular los procesos cognoscitivos en el modelo. Otros investigadores intentan obtener teorías generales de la inteligencia que sean aplicables a cualquier sistema de inteligencia y no solo al del ser humano.

¿PUEDEN PENSAR LAS MAQUINAS
?

En 1950 el matemático Inglés
Alan M. Turing publicó un ensayo que comenzaba así: "Quiero proponer una pregunta: ¿Pueden pensar las máquinas?." Como la pregunta era demasiado vaga (¿Qué entendemos por "pensar"?), Turing desarrolló un experimento basado en un juego de salón en el que una persona formula a dos jugadores escondidos (un hombre y una mujer) preguntas que le servirán para descubrir cuál de los dos es la mujer. Turing propuso sustituir uno de los dos jugadores escondidos por una máquina inteligente capaz de conversar. Si el examinador, que se servía de un teletipo para comunicarse, no podían distinguir cuál de los dos jugadores era la máquina, ello evidenciaría – según Turing – que la máquina podía pensar. En la actualidad, este experimento de Turing podría ser superado, en situaciones limitadas, por muchos programas de ordenador estudiados para dialogar con el usuario.
Investigaciones acerca de la inteligencia artificial realizadas en la Universidad
de Yale (EE.UU.) han llevado al desarrollo de programas de ordenador mediante los cuales éstos pueden aprender y razonar. Otros estudiosos de la inteligencia artificial están poniendo a punto sistemas para dotar a los ordenadores de capacidad visual y auditiva. Una importante área de investigacion es la del lenguaje normal, que permite a los ordenadores comunicarse mediante lenguaje humano en lugar de hacerlo en lenguaje de máquina. Es decir, la mayoría de los ordenadores están programados para recibir e interpretar instrucciones de este tipo: S#DYR=48-56, LOC=AS NOT SW, EN=RALSTON". Únicamente personas preparadas son capaces de comunicarse eficazmente de esta forma. Pero si un ordenador programado para gestionar la documentacion de una compañía petrolífera pudiese entender la orden dactilografiada (traducción de la anterior) "Encuéntrame toda la documentación relativa a las perforaciones de los pozos de Arabia Saudita entre 1948 y 1956, pero únicamente la de los pozos en que trabajó Ralston, no los de la zona surocciodental del país", muchas personas podrían utilizarlo.

LOS FINES DE LA IA

Las primeras investigaciones
acerca de la inteligencia artificial estaban principalmente dirigidas al hallazgo de una técnica universal para la solución de problemas. Este intento a gran escala ha sido abandonado y las investigaciones actuales están dirigidas al diseño de numerosos programas para ordenadores capaces de imitar los procesos de toma de desiciones de expertos, como médicos, químicos, basados en los conocimientos de especialistas en cada materia, son ahora utilizados para diagnosticar enfermedades, identificar moléculas químicas, localizar yacimientos de minerales e incluso diseñar sistemas de fabricación. Investigaciones acerca de la percepciones han sido aplicadas a los robots y se han diseñado algunos capaces de "ver". La meta final consiste en crear un sistema capaz de reproducir todas las facetas de la inteligencia humana.