1. Cuestiones
1.1. Exponer la especificación PAMA de un agente software
encargado de servir de asistente en una herramienta de desarrollo (Netbeans o VS)
Percepción ≡ Acciones sobre el programa,
Acción ≡ Compilar, mostrar mensajes de error/sugerencia, resaltar código Meta ≡ Código óptimo
Ambiente ≡ Ordenador + compilador + Sistema Operativo
1.2. ¿Por qué se afirma que el backtracking es la base del lenguaje de programación PROLOG?
Porque durante la ejecución de un programa, PROLOG va pasando los distintos puntos de elección anotando si son ciertos o falsos. En caso de que el procesado de objetivos de uno de los puntos de elección de fallo, se volverá hacia atrás en el código, desligando las posibles variables ligadas a ese trozo de ejecución hasta llegar al punto de elección verdadero anterior, y seguirá la ejecución desde ahí, obviando el punto que devolvió fallo.
1.3. Describir el principio de funcionamiento del algoritmo de aprendizaje de los SOM
El mapa autoorganizado (SOM) usa una variante del aprendizaje competitivo: actualiza los pesos de la neurona ganadora pero ademas actualiza los pesos de sus vecinas. Para ello existe la funcion vecindad H(i,g) entre la neurona ganadora g y cada una de sus vecinas i. Cuanto más nos alejamos de la neurona ganadora, más decrece la función H(i,g). Esta función depende de un radio de vecindad R(t), que es un número entero. Si una neurona está a una distancia mayor que R(t) de la ganadora, no modificará sus pesos. Además, tanto el factor de aprendizaje “a” como R(t) van decreciendo a medida que avanza el entrenamiento.
En el SOM las neuronas se disponen en una capa, pero pueden hacerlo con estructura de 1, 2 o 3 dimensiones (lineal, plano o espacial), recibiendo todas ellas las mismas entradas.
Como resultado del entrenamiento, las neuronas se van adaptando a los datos de entrada de tal forma que la neurona que está en una cierta coordenada se corresponde con cierto patrón de entrada, así como las cercanas a ella se corresponden con patrones de entrada similares.
1.4. En un agente basado por reglas, ¿cuál es la diferencia entre reglas sincrónicas y diacrónicas?. Poner un ejemplo
Las reglas diacrónicas muestran evolución temporal, mientras que las reglas sincrónicas reflejan el estado en un momento determinado.
1.5. Si en un algoritmo A se verifica que h(n)=0, ¿es un algoritmo A*?.
Discutir las características de la solución que obtiene y comentar el tiempo de cálculo que utilizaría
Si, se trataría de una búsqueda de Coste Uniforme No Informada.
Al tener h(n)=0 el algoritmo pasa a ser de búsqueda por amplitud, y en el caso peor su complejidad será exponencial.
1.6. ¿A qué paradigma de aprendizaje pertenecen las redes neuronales del tipo perceptrón multicapa?
Supervisado.
Paradigmas de aprendizaje:
Supervisado (MLP – Perceptrón Multicapa) Multi Layer Perceptron No supervisado (SOM – Mapa Autoorganizado) Self Organized Map Recurrentes (Hopfield)
Jerárquicas (ART – Teoría de Resonancia Adaptativa) Adaptive Resonance Theory Híbridas, Superv+NoSuperv (RBF – Funciones de Base Radial) Radial Base Functions
1.7. ¿Qué ventajas presenta un sistema experto de encadenamiento hacia atrás frente un sistema con encadenamiento hacia adelante?
– Los problemas comienzan con el planteamiento de la hipótesis – Mantienen preguntas con temas relacionados
– Es un buen enfoque para tareas de diagnóstico, depurado de errores.
1.8. ¿En qué consiste el conocimiento inferencial en la metodología KADS?
Tipos de Conocimiento:
– Estático: Entidades del dominio. Se distinguen los conceptos, como entidades concretas o abstractas; de sus propiedades/valores, y las relaciones que enlazan distintos conceptos.
– Inferencial: Compuesto por inferencias (conjunto de tareas que no permiten una posterior descomposición, siendo así primitivas del razonamiento). Éstas disponen de papeles estáticos (elementos del conocimiento del dominio que son necesarios pero que no son afectados por el proceso de razonamiento) y papeles dinámicos (entradas y salidas de las inferencias que señalan los elementos que son manipulados por el razonamiento).
Las inferencias se integran en un diagrama de inferencias, el cual expresa el “método”
seleccionado para resolver una tarea (camino a seguir).
– de Tareas: Una tarea es un objetivo general (diagnosticar, planificar) para cuya consecución se sigue un método.
Un método se concreta en la descomposición de la tarea en subtareas (inferencias) y un control (criterio de selección).
El conocimiento de control del método especifica el procedimiento de enlace de las inferencias.
Composición: Especificación funcional (objetivos), Suposiciones (conocimiento requerido), Especificacion operacional (Inferencias y flujo de control).
– Estratégico: Se refiere a la planificación de la tarea, determinando las diferentes condiciones en que se llevarán a cabo métodos alternativos de ejecución.
1.9. ¿Cómo maneja la incertidumbre MYCIN?
Utiliza factores de certeza, de manera que tiene un rango entre -1 y 1 (Falso y Verdadero) y la zona entre -0.2 y 0.2 la considera No Saber.
1.10. ¿Qué es el algoritmo de unificación?
Sirve para identificar valores de variables que hacen ciertos los predicados. Además nos permite saber si dos cláusulas son unificables, es decir, que las variables pueden tomar algún valor que permita aplicar el principio de resolución. Por lo tanto las dos cláusulas deben tener el mismo número de argumentos y los argumentos se puede decir que deben ser “del mismo tipo” para que sean unificables.
Básicamente consiste en ir mirando los argumentos de dos términos diferentes, de izquierda a derecha, e ir sacando las sustituciones que hay que hacer para que ambos argumentos sean iguales.
Si no se puede igualar algún argumento, entonces los términos no son unificables, pero si los términos son unificables, al final obtendremos el conjunto de sustituciones que hace que los términos sean iguales.
1. Propuestas
1.1. Propuesta 1
Un agente dispone de un modelo basado en lógica de predicados y descrito utilizando el lenguaje PROLOG
puerta(h1, p1).
puerta(h2,p1).
puerta(h3,p1).
puerta(h4,p1).
en(bueno,h1).
en(buena,h4).
compatible(bueno,buena).
El problema a resolver consiste en que los agentes “buenos” quieren estar con las agentes “buenas”
(pues son compatibles “bueno” y “buena”). Por ello, se introducen reglas como las siguientes
en_pasillo(Agente1,P1):- en(Agente1, H1), puerta(H1,P1).
en(Agente2, H2):-
en_pasillo(Agente2,P2), puerta(H2,P2).
felices(B1,B2,H3):- en(B1,H3),
compatible(B1,B2), en(B2,H3).
Se pide:
a) ¿Para qué instanciaciones de las variables B1, B2 y H3 es cierto el predicado felices?.
Exponer las aplicaciones necesarias del Método General de Resolución. Explicar con detalle la aplicación utilizada del algoritmo de unificación con dos literales.
B1 = h1 B2 = h2 H3 = H4
b) Si se considera que los hechos provienen de una percepción inicial exclusivamente, ¿se puede considerar accesible el ambiente?. Describir el resto de características del mismo.
c) Si el agente es “bueno”, realizar la especificación PAMA del agente. ¿Qué modificaciones realizaría a las reglas? (AYUDA: cálculo de situaciones, acciones del agente, reglas
diacrónicas, etc.)
2. Propuesta 2
Se plantea el problema del aparcamiento, con el siguiente plano. Se plantea su resolución utilizando un algoritmo A*.
EXIT
2.1. ¿Qué es un algoritmo A*? Definición y Características
Es un algoritmo de exploración de grafos con estrategia informada.
Para la ordenación del conjunto ABIERTOS utiliza una función de la forma f(n)=g(n) + h(n), estimación de f*(n) = g*(n)+h*(n) .
f(n) → Función de evaluación
g(n) → Costo mínimo del nodo s hasta el nodo n
h(n) → Estimación del costo mínimo del nodo n hasta el nodo objetivo t, basándonos en la heurística que se tiene sobre el dominio de cada problema concreto.
Algoritmo A*: Es un Algoritmo A en el que h(n) ≤ h*(n) para todos los nodos n.
Si existe, el algoritmo A* encontrará el camino solución óptimo.
El algoritmo A* es admisible
2.2. Suponiendo que solamente puede avanzar una casilla en cada movimiento:
2.2.1. Proponer una función heurística admisible
f(n) = g(n) + h(n)
h(n) = distancia hasta la meta (en posiciones)
g(n) = posiciones movidas para llegar al estado actual
2.2.2. Describir el proceso de solución completo
– coche gris una casilla abajo (x3) – coche rojo una casilla derecha (x3)
2.2.3. ¿La solución encontrada es la mejor?
Si, además de que es la única solución posible.