domingo, 17 de agosto de 2014

Agentes

http://www.hipertexto.info/documentos/robot_agent.htm

Robótica

Analizar el siguiente video y hacer la base de conocimientos:
Hasta ahora los robots, incluyendo los industriales, han sido capaces de realizar tareas muy concretas con rapidez y precisión, sin embargo, cuando el entorno cambia un poco, se les hace complicado responder. Este robot almacena conocimientos básicos y los puede aplicar a situaciones inmediatas. Si no "sabe" lo suficiente, se detiene e indica que no puede ejecutarlo porque no sabe cómo, por tanto, si le vamos enseñando cosas, las irá incorporando como nuevos conocimientos y, encajando cada pieza, podría resolver un problema mayor.
Si trasladamos la inteligencia artificial al mundo real, es evidente que los entornos reales son muchísimo más complejos y cambian rápidamente. Por tanto, es necesario incluir un mecanismo de aprendizaje que haga que el autómata se adapte a la situación. Además, debido a que los entornos son cambiantes, los robots deben tener la capacidad de seguir aprendiendo y obteniendo nueva información sobre el terreno. Para lograr todo esto hemos implementado un algoritmo de redes neuronales con SOINN que, además de ser bastante ligero en la computación, elimina cualquier ruido procedente de la nueva información que entra en juego.

Supongamos que el robot tuviese que preparar té y nadie le hubiese enseñado y que, además, se enviase el robot a asistir a una persona mayor que vive sola. Si esta persona pidiese una taza de té verde, el robot no sabía cómo hacerlo y, por tanto, consulta a través de Internet con otros robots para que le transfieran los conocimientos necesarios para hacerlo. Imaginemos que un robot en Reino Unido le transifere cómo hacer té pero al estilo británico, creemos que este robot sería capaz de adaptarse a las condiciones de contorno y adaptar la preparación a una tetera japonesa.

Sistemas expertos

Los sistemas expertos se basan en la simulación del razonamiento humano. El razonamiento humano tiene para ellos, un doble interés: por una parte, el del análisis del razonamiento que seguiría un experto humano en la materia a fin de poder codificarlo mediante el empleo de un determinado lenguaje informático; por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de manera que éstos sean semejantes a los empleados por el experto humano en la resolución de la cuestión planteada. Estos dos campos de interés han conducido a los investigadores que trabajan en el campo de la inteligencia artificial (de la cual los sistemas expertos son un campo preferente) a intentar establecer una metodología que permita verificar el intercambio con los expertos humanos y aislar los diversos tipos de razonamiento existentes(inductivo, deductivo, formal, etc.), así como construir los elementos necesarios para modelarlos.

Los sistemas expertos son,por lo tanto, intermediarios entre el experto humano, que transmite sus conocimientos al sistema, y el usuario de dicho sistema, que lo emplea para resolver los problemas que se le plantean con la competencia de un especialista en la materia y que, además, puede adquirir una destreza semejante a la del experto gracias a la observación del modo de actuar de la máquina. Los sistemas expertos son, pues, simultáneamente,un sistema de ejecución y un sistema de transmisión del conocimiento.Asimismo, los sistemas expertos se definen mediante su arquitectura; obtienen,por lo tanto, una realidad palpable. Mientras que en las operaciones de programación clásicas se diferencia únicamente entre el propio programa y los datos, en el caso de los sistemas expertos se diferencian tres componentes principales. Son los siguientes:

Fases en la adquisición del conocimiento:
  • identificación del problema.
  • Estructuración del conocimiento.
  • La arquitectura del sistema y la maqueta.
  • El prototipo y terminación del sistema.

Clasificación de campos de la IA

Programación automática: Verificación y síntesis.
  • Razonamiento automático.
  • Representación del conocimiento.
  • Metodología de la programación en IA.
  • Aprendizaje.
  • Procesamiento del lenguaje natural.
  • Resolución de problemas, métodos de control y búsqueda.
  • Robótica.
  • Interpretación de imágenes y visión artificial.
  • Inteligencia artificial distribuida.
Aplicaciones de la IA:
  • Tareas de la vida diaria:
    • Percepción: visión y habla.
    • Lenguaje natural: comprensión, generación y traducción.
    • Sentido común.
    • Control de robot.
  • Tareas formales:
    • Juegos: damas, ajedrez, go, ...
    • Matemáticas: cálculo simbólico, demostración de teoremas.
    • Computación: verificación de programas, aprendizaje automático.
  • Tareas de expertos:
    • Ingeniería: diseño, detección de fallos, planificación de manufacturación.
    • Análisis científico.
    • Diagnóstico y tratamiento médico.
    • Análisis financiero.

domingo, 10 de agosto de 2014

Prolog


Ejemplos:
http://www.cs.us.es/~jalonso/publicaciones/2006-int_prolog.pdf

Ejercicios: http://www.cs.us.es/~lvalencia/cursos/IIC/practica1.pl
Descripción:
- Si la cocina está seca y el recibidor mojado entonces la fuga de agua está en el baño.
- Si el recibidor está mojado y el baño está seco entonces el problema está en la cocina.
- Si la ventana está cerrada o no llueve entonces no entra agua del exterior.
- Si el problema está en la cocina y no entra agua del exterior, la fuga de agua está en la cocina.
Evidencias o hechos:
- El recibidor está mojado.
- El baño está seco.
- La ventana está cerrada.

① Pregunta en Prolog:
?- fuga_en_cocina.
Yes

Representación del conocimiento

Detallado: http://quegrande.org/apuntes/EI/4/IA/teoria/09-10/tema_3_-_representaciones_formales_del_conocimiento.pdf

Lógica formal

Ejemplos Clic

Muchos de los sistemas de representación del conocimiento de la actualidad se basan en algún tipo de lógica formal. La lógica formal aporta un buen número de ventajas para la representación del conocimiento y su manejo, partiendo de una sintaxis y semántica bien definidas que detallan perfectamente la forma de construir sentencias y razonamientos sobre ellas.
Una proposición es una sentencia que puede decirse que es falsa o verdadera. En la lógica proposicional se asigna símbolos a cada sentencia y se utilizan operadores lógicos sobre ellos para crear proposiciones más complejas. Los símbolos utilizados son AND (∧), OR (∨), NOT (¬), IMPLIES (→ o ⇒), y EQUIVALENCE (⇔). Partiendo de los símbolos y utilizando los diferentes operadores se construyen proposiciones complejas, las cuales es posible obtener si son ciertas o falsas operando a partir de los valores de verdad de cada uno de los símbolos iniciales, utilizando el cálculo proposicional.
Por ejemplo la sentencia si “El libro está en casa (A) y Juan está en el trabajo (B), Juan no puede leer el libro (C)”, podría representarse como: A ∧ B → C
LÓGICA DE PRIMER ORDEN
Es una ampliación de la lógica proposicional a partir de dos operadores más, el cuantificador universal ∀ y el existencial ∃. Utiliza también símbolos para representar conocimiento y operadores lógicos para construir sentencias más complejas, pero a diferencia de la lógica proposicional, los símbolos pueden representar constantes, variables, predicados y funciones.
Las constantes son símbolos que comienzan por minúsculas y las variables símbolos que empiezan por mayúsculas. Los predicados representan afirmaciones sobre objetos, por ejemplo, la afirmación “El libro está en casa” se representaría como un predicado de nombre in:
in(libro, casa)
Se podría reescribir el predicado de forma más general sustituyendo las constantes por variables de la forma: in(X, Y). Con él podríamos representar diferentes proposiciones como “El libro está en casa”, “El coche está en el garaje”, “Juan está en el trabajo”.
El último símbolo que queda por explicar son las funciones. Éstas permiten asociar elementos de un conjunto a un elemento de otro conjunto, por ejemplo: propietario(casa) = juan.
Con todo esto podríamos representar el mismo ejemplo que con lógica proposicional de la siguiente forma:
in(libro, casa) ∧ in(juan, trabajo) → ¬puedeLeer(juan, libro)
En cuanto a los dos nuevos operadores, ∀ y ∃, permiten delimitar el alcance de las variables en las sentencias, de forma que “∀X” se leería como “para toda x” y “∃X” como “existe un x tal que”.
∃X puedeLeer(X, libro): alguien puede leer el libro
∀X puedeLeer(X, libro): todo el mundo puede leer el libro
Considera el siguiente argumento:
  1. Mañana es miércoles o mañana es jueves.
  2. Mañana no es jueves.
  3. Por lo tanto, mañana es miércoles.
Es un argumento válido. Quiere decir que es imposible que las premisas sean verdaderas y la conclusión falsa. Esto no quiere decir que la conclusión sea verdadera. Si las premisas son falsas, entonces la conclusión también podría serlo. Pero si las premisas son verdaderas, entonces la conclusión también lo es.
  1. Está soleado o está nublado.
  2. No está nublado.
  3. Por lo tanto, está soleado.
  4. En cambio, la validez de estos dos argumentos depende del significado de las expresiones «o» y «no». Si alguna de estas expresiones se cambiara por otra, entonces podría ser que los argumentos dejaran de ser válidos. Por ejemplo:
    1. Ni está soleado ni está nublado.
    2. No está nublado.
    3. Por lo tanto, está soleado.
    Las expresiones de las que depende la validez de los argumentos se llaman constantes lógicas. La lógica proposicional estudia el comportamiento de algunas de estas expresiones, llamadas conectivas lógicas. En cuanto a las expresiones como "está nublado" o "mañana es jueves", lo único que importa de ellas es que tengan un valor de verdad. Es por esto que se las reemplaza por simples letras, cuya intención es simbolizar una expresión con valor de verdad cualquiera. A estas letras se las llama variables proposicionales, y en general se toman del alfabeto latino, empezando por la letra p, luego qr,s, etc. Así, los dos primeros argumentos de esta sección podrían reescribirse así:
    1. p o q
    2. No q
    3. Por lo tanto, p
    Y el tercer argumento, a pesar de no ser válido, puede reescribirse así:
    1. Ni p ni q
    2. No q
    3. Por lo tanto, p
Conectivas lógicas
ConectivaExpresión en el
lenguaje natural
EjemploSímbolo en
este artículo
Símbolos
alternativos
NegaciónnoNo está lloviendo.\neg \,\sim \,
ConjunciónyEstá lloviendo y está nublado.\and\And \, .
DisyunciónoEstá lloviendo o está soleado.\or
Condicional materialsi... entoncesSi está soleado, entonces es de día.\to \,\supset
Bicondicionalsi y sólo siEstá nublado si y sólo si hay nubes visibles.\leftrightarrow\equiv \,
Negación conjuntani... niNi está soleado ni está nublado.\downarrow \,
Disyunción excluyenteo bien... o bienO bien está soleado, o bien está nublado.\nleftrightarrow\oplus, \not\equiv, W

Deducción natural

Un sistema de lógica proposicional también puede construirse a partir de un conjunto vacío de axiomas. Para ello se especifican una serie de reglas de inferencia que intentan capturar el modo en que naturalmente razonamos acerca de las conectivas lógicas.
Introducción de la negación
De (p \to q) y (p \to \neg q), se infiere \neg p.
Esto es, \{ (p \to q), (p \to \neg q) \} \vdash \neg p.
Eliminación de la negación
De \neg p, se infiere (p \to r).
Esto es, \{ \neg p \} \vdash (p \to r).
Eliminación de la doble negación
De \neg \neg p, se infiere p.
Esto es, \neg \neg p \vdash p.
Introducción de la conjunción
De p y q, se infiere (p \land q).
Esto es, \{ p, q \} \vdash (p \land q).
Eliminación de la conjunción
De (p \land q), se infiere p.
De (p \land q), se infiere q.
Esto es, (p \land q) \vdash p y (p \land q) \vdash q.
Introducción de la disyunción
De p, se infiere (p \lor q).
Esto es, p \vdash (p \lor q) y q \vdash (p \lor q).
Eliminación de la disyunción
De (p \lor q) y (p \to r) y (q \to r), se infiere r.
Esto es, \{p \lor q, p \to r, q \to r\} \vdash r.
Introducción del bicondicional
De (p \to q) y (q \to p), se infiere (p \leftrightarrow q).
Esto es, \{p \to q, q \to p\} \vdash (p \leftrightarrow q).
Eliminación del bicondicional
De (p \leftrightarrow q), se infiere (p \to q).
De (p \leftrightarrow q), se infiere (q \to p).
Esto es, (p \leftrightarrow q) \vdash (p \to q) y (p \leftrightarrow q) \vdash (q \to p).
Modus ponens (eliminación del condicional)
De p y (p \to q), se infiere q.
Esto es, \{ p, p \to q\} \vdash q.
Prueba condicional (introducción del condicional)
De [acepando que p permite una prueba de q], se infiere (p \to q).
Esto es, (p \vdash q) \vdash (p \to q).
NombreConsecuenteDescripción
Modus Ponens((p \to q) \land p) \vdash qSi p entonces qp; por lo tanto q
Modus Tollens((p \to q) \land \neg q) \vdash \neg pSi p entonces q; no q; por lo tanto no p
Silogismo Hipotético((p \to q) \land (q \to r)) \vdash (p \to r)Si p entonces q; si q entonces r; por lo tanto, si p entonces r
Silogismo Disyuntivo((p \lor q) \land \neg p) \vdash qEither p o q, o both; no p; por lo tanto, q
Dilema Constructivo((p \to q) \land (r \to s) \land (p \lor r)) \vdash (q \lor s)Si p entonces q; y si r entonces s; pero p o r; por lo tanto q o s

Ejemplo de una demostración[editar]

Demostrar: A \to A \,
Una posible prueba de esto (que, aunque válida, pasa a contener más pasos de los necesarios) se puede disponer de la siguiente manera:
PasoFórmulaRazón
1APremisa.
2A \or ADesde (1) por introducción de la disyunción.
3(A \or A) \and ADesde (1) y (2) por introducción de la conjunción.
4A Desde (3) por eliminación de la conjunción.
5A \vdash AResumen de (1) hasta (4).
6\vdash A \to ADesde (5) por introducción del condicional. QED