guia_ia

48
INGENIERÍA EN SISTEMAS E INFORMÁTICA Módulo: INTELIGENCIA ARTIFICIAL Docente: Ing. Mario Almache Quito-Ecuador 2013 Presentación

Upload: jorge-latacunga-andrade

Post on 28-Dec-2015

116 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: GUIA_IA

INGENIERÍA EN SISTEMAS E INFORMÁTICA

Módulo: INTELIGENCIA ARTIFICIAL

Docente: Ing. Mario Almache

Quito-Ecuador

2013

Presentación

Page 2: GUIA_IA

2

El presente documento ha sido elaborado para que sirva como una

guía de estudio en Inteligencia Artificial (IA), dirigida a los estudiantes

de las Carreras de Ingeniería en Sistemas e Informática, en el Ecuador.

Se han considerado los temas estratégicas de la IA, esperando, sean

de mucha utilidad para que el estudiante desarrolle el conocimiento y

las competencias necesarias en el desarrollo de aplicaciones

verdaderamente inteligentes.

El documento, aunque no tiene una visión completa del vasto campo

de la IA, sí permite tener una idea clara de los ámbitos de

investigación y desarrollo más prometedores. El desarrollo del

documento, gira en base al concepto de “agente de IA”; de esta

manera el objetivo pragmático, siempre apunta al diseño y

construcción de estas entidades.

Se invita a la comunidad universitaria, ávida por el conocimiento, para

que aproveche de la mejor manera, esta pequeña compilación de

temas, ya sea en su vida estudiantil o en su desempeño profesional.

Ing. Mario G. Almache C.

Page 3: GUIA_IA

3

“El gran secreto del éxito es estar preparado cuando llega la oportunidad”

Anónimo

Page 4: GUIA_IA

4

SYLLABUS Período: 2013 Asignatura: Inteligencia Artificial Profesor: Ing. Mario Almache

Horas semanales: 8 Paralelos:

e-mail: [email protected]

Fecha:

I) Objetivos:

- Conocer las áreas estratégicas de investigación en la Inteligencia Artificial. - Entender el ámbito multidisciplinario e interdisciplinario de la IA - Utilizar el paradigma de los Agentes de IA para el desarrollo de aplicaciones. - Solucionar problemas de alta complejidad cognitiva, mediante la aplicación de heurísticas

claras, sencillas y elegantes. - Comprender las principales estrategias de IA que permiten la implementación de la inteligencia

en las máquinas. - Analizar los fundamentos de las conductas inteligentes en los humanos.

II) Plan curricular de la Asignatura

Capítulos Temas Horas/clase 1 Agentes inteligentes y resolución de problemas 2 Conocimiento e inferencia 3 Procesamiento de la incertidumbre 4 Aprendizaje automático 5 Redes neuronales y computación evolutiva

III) Cronograma

Fecha Clase Descripción/Contenido/Actividad

1 Agentes inteligentes y resolución de problemas 2 Conocimiento e inferencia 3 Procesamiento de la incertidumbre 4 Aprendizaje automático 5 Redes neuronales y computación evolutiva

IV) Criterios de evaluación

1. Proyectos individuales/grupales 2. Laboratorios 3. Talleres 4. Presentaciones orales 5. Participación en clase 6. Deberes 7. Exámenes

Page 5: GUIA_IA

5

V) Sistema de calificación Actividades Porcentaje de la nota Laboratorios, Talleres 40 Presentaciones orales, Deberes, Participación en clase

10

Proyectos individuales/grupales 20 Examen final 30 VI) Bibliografía

- Russell, S.; Norvig, P. (2003): Inteligencia Artificial — Un Enfoque Moderno (2ª Ed.). Prentice Hall Hispanoamericana

- Nilsson, N. (2001): Inteligencia Artificial — Una Nueva Síntesis. McGraw-Hill

- E. Rich y K. Knight. Inteligencia Artificial. McGraw-Hill, 1994

- Winston, P. (1992): Artificial Intelligence (3ª Ed.). Addison Wesley

Page 6: GUIA_IA

6

Índice de contenidos

Capitulo 1: Agentes inteligentes y resolución de problemas………………………….. 7 1.1 ¿Qué es la Inteligencia Artificial?........................................................................... 7 1.2 Agentes Inteligentes…………………………………………………………………….. 7 1.3 Agentes que resuelven problemas……………………………………………………. 8 1.4 Búsqueda de soluciones……………………………………………………………….. 9 1.5 Búsqueda heurística……………………………………………………………………. 11 1.6 Implementaciones en Lisp……………………………………………………………... 14 1.7 Ejercicios

Capítulo 2: Conocimiento e inferencia………………………………………………….. 16 2.1 Conocimiento informal y sus representaciones formales…………………………. 16 2.2 Lógica propositiva y lógica del primer orden (LPO)……………………………….. 16 2.3 Inferencia en LPO ………………………………………………………………….…. 18 2.4 El Principio de Resolución……………………………………………………………. 20 2.5 Las cláusulas de Horn………………………………………………………………… 22 2.6 Estructura de una Base de Conocimientos en Prolog…………………………….. 22 2.7 Ejercicios y aplicaciones……………………………………………………………… 23 Capítulo 3: Procesamiento de la Incertidumbre………………………………………. 25 3.1 Incertidumbre: sus causas y las decisiones racionales………………………….. 25 3.2 Probabilidades y regla de Bayes……………………………………………………. 25 3.3 Incertidumbre y los Factores de Certeza…………………………………………… 26 3.4 Razonamiento con lógica difusa…………………………………………………….. 28 3.5 Ejercicios………………………………………………………………………………. 30

Capítulo 4: Aprendizaje automático……………………………………………………. 32 4.1 Categorías de los aprendizajes…………………………………………………….. 32 4.2 Aprendizaje mediante análisis de diferencias……………………………………. 32 4.3 Aprendizaje mediante el manejo de varios modelos……………………………. 34 4.4 Aprendizaje mediante construcción de árboles de identificación……………… 35 4.5 Clustering…………………………………………………………………………….. 36 4.6 Aprendizajes alternativos…………………………………………………………… 37 4.7 Ejercicios……………………………………………………………………………… 38 Capítulo 5: Redes Neuronales y Computación Evolutiva…………………………… 39 5.1 Analogía entre redes neuronales biológicas y artificiales……………………….. 39 5.2 Clasificación de las RN……………………………………………………………… 40 5.3 Redes en cascada y retropropagación…………………………………………… 40 5.4 Modelos de redes recurrentes……………………………………………………… 41 5.5 Computación Evolutiva: áreas de estudio………………………………………… 43 5.6 Ejercicios……………………………………………………………………………… 47

Page 7: GUIA_IA

7

Capitulo 1: Agentes inteligentes y resolución de problemas

Objetivo: Comprender la estructura de los agentes inteligentes y las estrategias fundamentales que éstos utilizan para la resolución de problemas.

1.1 ¿Qué es la Inteligencia Artificial?

La Inteligencia Artificial empezó a surgir como concepto a finales del siglo XX, dando paso a la agrupación de sus definiciones en cuatro categorías planteadas por Russell y Norvig en su libro Inteligencia Artificial (1996):

1. Sistemas que piensan como humanos 2. Sistemas que actúan como humanos 3. Sistemas que piensan racionalmente 4. Sistemas que actúan racionalmente

Uno de los conceptos más reconocidos y aplicados para la definición de la Inteligencia Artificial fue realizado por Rich y Knight, definiéndola como “El estudio de cómo lograr que las computadoras realicen tareas que por el momento, los humanos hacen mejor” (1991).

1.2 Agentes Inteligentes

Un agente es todo aquello (hardware y/software) que percibe su ambiente mediante sensores y que responde o actúa en tal ambiente por medio de efectores, como se muestra en la figura 1.1.

Fig. 1.1 Agente interactuando con su ambiente

En los siguientes cuadros se muestran algunos ejemplos de sensores y efectores:

Sentido • Percepción de equilibrio • Propiocepción • Magnetocepción • Electrocepción • Eco localización • Gradiente de presión

Sensor • Acelerómetro • Encoder • Magnetómetro • Sensor de voltaje • Sonar • Arreglo de presión

Page 8: GUIA_IA

8

Por consiguiente, los Agentes Inteligentes:

• No requieren de humanos para operar (autonomía). • Tienen una medida de desempeño (racionalidad). • Usan sensores para enterarse de lo que pasa fuera. • Usan efectores para modificar su entorno. • La “inteligencia” está determinada por sus reglas.

– Las reglas se pueden pre-grabar � Instintos – Las reglas pueden ser aprendidas� Aprendizaje

Agente Racional: En todos los casos de posibles percepciones, un agente racional deberá emprender todas aquellas acciones que favorezcan obtener el máximo de su medida de rendimiento, basándose en las evidencias aportadas por la secuencia de percepciones y en todo conocimiento incorporado en tal agente.

1.3 Agentes que resuelven problemas

Una de las áreas de mayor interés para la IA es la implementación de agentes que resuelven problemas. De otro lado, los agentes pueden clasificarse en:

a) Agente reflejo simple: Las acciones del agente se establecen en función a una tabla de percepción � acción.

b) Agentes con estado interno: Es un agente reflejo, pero que almacena sus percepciones anteriores, es decir tiene memoria.

c) Agentes basados en metas: Agente que combina propiedades de los dos anteriores, pero que tiene una meta a la cual llegar. Necesita buscar el mejor camino y planificar la secuencia de acciones.

d) Agentes basados en utilidad: Son aquellos agentes que tienen múltiples metas que cumplir, mide el grado de satisfacción del grado de cumplimiento de sus metas.

Cuando se especifica (n) la (s) meta (s) de un problema, es más manejable el diseño de un agente, ya que, es relativamente sencillo especificar las acciones que puede emprender (el agente), de tal manera que se “empeñe” en alcanzarla. Por lo tanto, los agentes que resuelven problemas son agentes basados en metas que determinan las secuencias de acciones que les permitan obtener estados deseables.

Para solucionar un problema es necesario seguir los siguientes pasos:

Efectores Humanos • Músculos • Brazos / manos

Efectores en Máquinas • Rotación de Motores • Apertura/cierre de válvulas

Page 9: GUIA_IA

9

- Formulación de metas: se establece el objetivo - Formulación del problema: determinación de acciones y estados intermedios. - Uso de una estrategia de búsqueda: evaluación de las posibles secuencias de

acciones que lleven a la meta y, elección de la más apta. - Ejecución: se lleva adelante la solución que determine la búsqueda.

Para la formulación de un problema es necesario establecer:

• Un estado inicial; es donde se encuentra el agente. • Un conjunto de acciones que el agente puede emprender. • La prueba de meta para saber si alcanzó un estado meta. • La función costo de ruta que le asigna un valor a una ruta determinada.

Ejemplo: se desea construir un agente “Aspiradora Inteligente”, cuya tarea primordial es dejar limpias las dos ubicaciones que se muestran a continuación:

Se supone que los lugares pueden estar limpios o sucios. Entonces se puede formular este problema identificando: Estado inicial: cualquiera de los siguientes estados (1 al 8)

Acciones: ir a la izquierda, aspirar, ir a la derecha

Prueba de meta: ¿se ha llegado al estado 7 u 8?

Función costo de ruta: cada acción emprendida cuesta 1

1.4 Búsqueda de soluciones

Una vez definido un problema y con el respectivo mecanismo de identificación de una solución, es necesario emprender la búsqueda de la solución, para lo cual, será necesario transitar por el “espacio de estados”, hasta alcanzar la meta. De manera sencilla la búsqueda consiste en escoger una opción

Page 10: GUIA_IA

10

(estado) haciendo a un lado las demás, para considerarlas posteriormente en caso de no obtener respuesta alguna mediante la primera opción.

La elección del estado que se desea expandir primero se realiza a través de una estrategia de búsqueda. Las estrategias de búsqueda se evalúan según los siguientes criterios:

• Completez: garantiza encontrar la solución si es que existe. • Complejidad temporal: cantidad de tiempo necesario para encontrar la solución. • Complejidad espacial: cantidad de memoria necesaria para encontrar la solución. • Optimalidad: permite encontrar la mejor solución en caso de que existan varias.

Clasificación de las estrategias de búsqueda Las estrategias de búsqueda se pueden agrupar en dos grandes categorías:

• Búsquedas sin contar con información (o búsqueda ciega): no existe información acerca de la cantidad de pasos necesarios o sobre el costo de ruta para pasar del estado de un momento dado a la meta.

• Búsqueda respaldada con información (o búsqueda heurística): se posee información muy valiosa para orientar la búsqueda para que sea más óptima.

Búsqueda ciega

Cuando se aplica una estrategia de búsqueda, se va generando el denominado “árbol de búsqueda”, es decir un grafo que contiene un solo estado “raíz” y varios estados derivados (o también subárboles), sin llegar a formar “ciclos”. Se han identificado algunas estrategias de búsqueda ciega:

- En anchura: partiendo del nodo raíz se expanden todos los nodos “hijos”. Se repite la expansión en el siguiente nivel, hasta encontrar la meta o hasta cuando no se pueda seguir expandiendo.

- En profundidad: empezando en la raíz, expandir el árbol tan profundamente como sea posible, retornando a niveles superiores cuando sea necesario.

- Costo uniforme: extender siempre el nodo con menor costo - Profundidad iterativa: es una variante de la búsqueda en profundidad; se establecen

límites incrementales de exploración en profundidad (nivel 0, nivel 1, nivel 2, …, nivel n). - Bidireccional: se parte simultáneamente desde el inicio y la meta, hasta encontrar un

estado intermedio de convergencia.

Ejemplo: considere un agente que desea dirigirse desde la ciudad S hasta la ciudad G, en la siguiente distribución de ciudades y carreteras (fig. 1.2):

Fig. 1.2 Mapa de carreteras para un agente

Page 11: GUIA_IA

11

En las figuras 1.3 y 1.4, se muestran los árboles generados cuando se implementan las búsquedas en profundidad y anchura, respectivamente.

Fig. 1.3 Árbol en profundidad Fig. 1.4 Árbol en anchura

A continuación se muestra un cuadro comparativo para evaluar las estrategias de búsqueda ciega:

Criterio En anchura Costo uniforme

En profundidad

Limitada en profundidad

Profundidad iterativa

Bidireccional

Tiempo bd bd bm bl bd bd/2 Espacio bd bd bm bl Bd bd/2 Óptima? Si Si No No Si Si Completa? Si Si No Si cuando

L>=d Si Si

Fig 1.5 Comparación entre estrategias de búsqueda; b factor de ramificación; d profundidad de la solución; m profundidad máxima del árbol; l límite de profundidad.

1.5 Búsqueda heurística

Los métodos de búsqueda heurística disponen de alguna información sobre la proximidad de cada estado a un estado objetivo, lo que permite explorar en primer lugar los caminos más prometedores. Son características de los métodos heurísticos:

• No garantizan que se encuentre una solución, aunque existan soluciones. • Si encuentran una solución, no se asegura que ésta tenga las mejores propiedades (que

sea de longitud mínima o de coste óptimo). • En algunas ocasiones (que, en general, no se podrán determinar a priori), encontrarán una

solución (aceptablemente buena) en un tiempo razonable. Por lo tanto es necesaria la implementación de una función que cuantifique la calidad de un estado (Función heurística). Se dice que el verdadero arte de la IA se focaliza en la construcción de buenas funciones heurísticas que ayuden a solucionar problemas. Ejemplos de heurísticas para algunos problemas concretos. *** Problema del 8-puzzle ***

Page 12: GUIA_IA

12

a) La basada en la distancia Manhattan (o distancia taxi). Se asocia a cada casilla un número que es la suma de las distancias horizontal y vertical a su posición en el tablero objetivo (esto es, la suma de diferencias de sus coordenadas x e y). La función heurística es la suma de las distancias de cada una de las casillas (excluyendo la que se encuentra vacía).

2 3 1 8 4 7 6 5

H (Ei) =2 (1 de la casilla 1 más 1 de la casilla 8) b) Otra heurística, mucho más simple, consiste en contar el número de casillas que están fuera de su sitio (respecto al tablero objetivo). Es una heurística más pobre que la anterior, puesto que no usa la información relativa al esfuerzo (número de movimientos) necesario para llevar una pieza a su lugar. *** El problema del viajante *** - Estado inicial: un viajante se encuentra en una capital de provincia. - Estado meta: quiere viajar a otra capital por la mejor ruta posible (la más corta) - Medios: Las capitales de provincia colindantes están unidas por carreteras; se dispone de un mapa con la disposición de las provincias y sus "coordenadas" en kilómetros respecto al "centro" (por ejemplo, Madrid, con coordenadas (0,0)). Una función heurística para ese problema consiste en asignar a cada estado un valor que es la distancia aérea (en línea recta) con el estado objetivo. Dicha distancia es la distancia euclídea entre las coordenadas de dos ciudades. Se elige una ciudad como siguiente en el camino cuando la suma de la distancia a la ciudad actual más la distancia aérea a la meta sea la menor. Estrategias de búsqueda heurística

• Ascenso de colina (Hill Climbing): elige en cada paso un estado cuyo valor heurístico sea mayor que el del estado activo en ese momento.

• Búsqueda avara: elige siempre el estado más pometedor cuando se aplica una heurística h(n).

• Búsqueda A* : combina una función de costo uniforme g(n) con la heurística h(n), para cada nodo n, a través de una suma [f(n) = g(n) + h(n) ]

En el caso de Hill Climbing existen algunos inconvenientes como: máximos locales, mesetas, picos. Existe una mejora para el ascenso de colina conocida denominada Enfriamiento Simulado, que permite “saltar” tales inconvenientes, pues involucra mecanismos de selección aleatoria de nuevos estados.

Page 13: GUIA_IA

13

Ejemplo: considere el siguiente mapa de carreteras, con las respectivas distancias en línea recta. El objetivo es llegar a Bucarest, partiendo desde Arad

Fig. 1.6 a) Mapa de carreteras

Fig. 1.6 b) Distancias en línea recta a Bucarest

En el siguiente gráfico se muestra el árbol generado con la estrategia A*

Page 14: GUIA_IA

14

Fig. 1.7 Secuencia de nodos abiertos con A*

1.6 Implementaciones en Lisp Nota: Ver documento LispBasico.pdf y cargar el software libre Xanalys LispWorks 1.7 Ejercicios 1) Diga si los siguientes “sistemas” son agentes:

a. Un reloj. b. Un termostato. c. Un celular. d. Un sistema de control de acceso a personas. e. El sistema de aire acondicionado de un automóvil. f. Una lavadora automática. g. Un software para entrenar personas. h. Un software para enseñar a sumar. i. Un reloj despertador. j. El sistema que controla si una persona saca un producto sin pagar. k. Internet. l. La red telefónica

2) Indique el tipo de agente para cada caso: - Agente resuelve laberintos. - Agente que entrega la Raíz Cuadrada de un número. - Agente que conduce un automóvil. - Agente del mundo de los wumpus - Agente que resuelve el problema de los bloques.

3) Cierto agente desea resolver el problema del mundo de la aspiradora. El mundo está conformado por una cuadrícula de 2x2 (dos con basura).

Page 15: GUIA_IA

• Diseñe un agente que usa una tabla de • El agente inicia en la parte superior izquierda.• El agente “recuerda” las celdas ya • Diga que acciones son necesarias para resolver el problema.• Diga cuál es el tamaño de la tabla

4) Diseñar un agente para resolver el problema del rompecabezpuzzle.

Estado inicial

5) Construir los árboles de búsqueda en profundidad y en anchura para el problema de los misioneros y caníbales.

Diseñe un agente que usa una tabla de percepción����acción para resolver este problema.El agente inicia en la parte superior izquierda. El agente “recuerda” las celdas ya visitas, pero no es capaz de ver las otras celdas.Diga que acciones son necesarias para resolver el problema. Diga cuál es el tamaño de la tabla percepción����acción

Diseñar un agente para resolver el problema del rompecabezas móvil o problema de las och

Estado final

5) Construir los árboles de búsqueda en profundidad y en anchura para el problema de los misioneros y

15

para resolver este problema.

visitas, pero no es capaz de ver las otras celdas.

as móvil o problema de las ocho fichas o

5) Construir los árboles de búsqueda en profundidad y en anchura para el problema de los misioneros y

Page 16: GUIA_IA

16

Capítulo 2: Conocimiento e inferencia Objetivo: Formalizar el conocimiento en los agentes de IA, lo que permitirá implementar mecanismos de razonamiento y, por ende, ampliar sus capacidades para resolver problemas. 2.1 Conocimiento y sus representaciones Una representación es un conjunto de convenciones sobre la forma de describir un tipo de cosas. Una descripción aprovecha las convenciones de una representación para describir alguna cosa en particular. Las características de una buena representación son:

• Los objetos y las relaciones importantes deben aparecer explícitamente y de forma conjunta.

• Las restricciones inherentes al problema se muestran pero no los detalles irrelevantes. • La representación debe ser transparente: se entiende lo que se dice. • Completa y concisa: Están representados con eficacia todos los objetos y relaciones. • Rápidos y computables: Se puede almacenar y recuperar la información con rapidez, y se

pueden crear mediante un procedimiento ya existente. Partes de una representación: - Parte léxica: determina qué símbolos están permitidos en el vocabulario de la representación. - Parte estructural: describe las restricciones sobre la forma en que los símbolos pueden ordenarse. - Parte operativa: especifica los procedimientos de acceso que permiten crear descripciones, modificarlas y responder a preguntas utilizándolas. - Parte semántica que establece una forma de asociar el significado con las descripciones. Algunas formas para representar el conocimiento son:

• Redes semánticas: representaciones gráficas a manera de nodos y enlaces • Reglas de producción: la forma IF-THEN • Lógica funcional: utilizando las denominadas fbf (fórmulas bien formadas)

Ejemplo: se va representar el conocimiento “todos los hombres son mortales” es Red semántica

IF x es hombre THEN x es mortal Regla IF-THEN

(Vx) (hombre(x)�mortal(x)) Formalismo lógico 2.2 Lógica propositiva y lógica del primer orden (LPO) El aspecto más atractivo del formalismo lógico, como representación del conocimiento, es que proporciona un buen método para la obtención de nuevo conocimiento a partir del antiguo: la deducción

hombre mortal

Page 17: GUIA_IA

17

matemática (consecuencia lógica). Se puede concluir la verdad de una afirmación sólo demostrando que es consecuencia de lo ya conocido. Son parte de este formalismo la Lógica Proposicional y la Lógica del Primer Orden. En la primera, el conocimiento está representado a manera de proposiciones (enunciados verdaderos o falsos); en la segunda, el conocimiento viene a manera de predicados (funciones que pueden adoptar los valores V ó F, dependiendo de sus argumentos). Ejemplo: el conocimiento anterior “todos los hombres son mortales”, podríamos sustituirle por el término p (proposición) al que le podemos hacer corresponder el valor de verdad V. También podemos representarlo en LPO como: (Vx) (hombre(x)�mortal(x)); aquí toda la fórmula adoptará un valor de verdad dependiendo del argumento x. Lenguaje proposicional Recuérdese que en la lógica proposicional, las proposiciones simples se combinan entre sí (mediante conectivos lógicos: and (Λ), or (V), not(¬), implicación(�), doble implicación(�)). Es posible construir una tabla de la verdad mostrando las relaciones finales (semántica) entre proposiciones simples, mediante el uso de las “tablas de verdad”, como se muestra a continuación:

P q ¬p p Λ q p V q p����q p����q V V F V V V V V F F F V F F F V V F V V F F F V F F V V

Lógica del Primer Orden El lenguaje de la LPO está compuesto por los siguientes elementos: 1. Constantes: romeo, julieta, 3.14 2. Variables: X, Y, Ahora, Luego, Jacinto 3. Funciones: f(X), g(Y,Z) //no devuelven V o F 4. Predicados: ama-a/2, mortal/1 //funciones que devuelven V o F Son parte de la sintaxis en la LPO:

• Vocabulario: constantes , nombres de funciones , predicados, variables y constantes • Término se define así :

- Una constante o una variable es un término. - Si t1.,.....tn son términos y p es el nombre de una función n-aria entonces p

( t1 ,....., tn ) es un término. • Si t1,,.., tn son términos y q es un predicado n-ario , entonces

q ( t1 ,....,tn) es un Átomo. • Una fórmula bien formada (fbf) se define aí:

- Un átomo es una fbf - Si P y Q representan fbf’s, también lo son:

(VX) P; que se lee “para todo X se cumple P”

Page 18: GUIA_IA

18

(ЭX) P; que se lee “para algún X se cumple P” ¬P P Λ Q P V Q P� Q P�Q

Ejemplos:

- “Todos los informáticos son listos; Juan es informático, por lo tanto Juan es listo”.

- “Todos están casados con alguien”

- “Algunas relaciones entre pares de alumnos de la clase son simétricas”

Es una representación en Lógica de Segundo Orden; por lo tanto no pertenece a la LPO, pues se están cuantificando funciones predicables!!!

2.3 Inferencia en LPO La inferencia es un proceso que permite generar nuevo conocimiento en base a datos y declaraciones establecidas. En el ámbito lógico, permite generar conclusiones en base a un conjunto de axiomas y hechos.

En LPO (y también en la proposicional) existe un mecanismo de inferencia llamado Resolución, que es una regla de inferencia usada en la deducción computacional, debido a que es eficiente, pues trabaja sobre sentencias que han sido transformadas a una forma canónica llamadas cláusulas disyuntivas.

El proceso de resolución obtiene demostraciones por refutación, es decir, para probar una proposición (su validez) se intenta demostrar que su negación lleva a una contradicción con las proposiciones conocidas (es decir es insatisfactible).

Donde: Σ: conjunto de axiomas y hechos α: cualquier proposición Algoritmo de conversión a cláusulas Para poder realizar el proceso de demostración por refutación, las fbf deben estar reducidas a la forma de cláusulas. El proceso de transformación se muestra en el siguiente ejemplo:

Page 19: GUIA_IA

19

Ejemplo:

Page 20: GUIA_IA

2.4 El principio de Resolución

En lógica proposicional

Sea la conclusión, el conjunto de los argumentos:

1. Convertir todas las proposiciones en2. Negar y convertir el resultado en cláusula. Agregar la o las cláusulas resultantes al conjunto de cláusulas obtenidas en 1 3. Hasta encontrar una contradicción o no se pueda seguir avanzando:

• Seleccionar dos cláusulas que tienen como literales una • Resolverlas juntas. El resolvente será la disyunción de todos los literales que contienen los

padres excepto L y ¬L • Si el resolvente es la cláusula vacía, es que se ha encontrado una contradicción. Si no lo es

agregarla al conjunto de cláus

Ejemplo: considere los siguientes hechos

• Juan está cansado o enfermo• Si Juan está cansado, se queda en casa

El principio de Resolución

el conjunto de los argumentos:

Convertir todas las proposiciones en a su forma de cláusulas y convertir el resultado en cláusula. Agregar la o las cláusulas resultantes al conjunto de

3. Hasta encontrar una contradicción o no se pueda seguir avanzando:

Seleccionar dos cláusulas que tienen como literales una L y la otra ¬L Resolverlas juntas. El resolvente será la disyunción de todos los literales que contienen los

Si el resolvente es la cláusula vacía, es que se ha encontrado una contradicción. Si no lo es agregarla al conjunto de cláusulas disponibles

: considere los siguientes hechos

Juan está cansado o enfermo Si Juan está cansado, se queda en casa

20

y convertir el resultado en cláusula. Agregar la o las cláusulas resultantes al conjunto de

Resolverlas juntas. El resolvente será la disyunción de todos los literales que contienen los

Si el resolvente es la cláusula vacía, es que se ha encontrado una contradicción. Si no lo es

Page 21: GUIA_IA

• No se queda en casa • Luego está enfermo

Una representación sería:

Otra representación en

La Unificación

En Lógica Proposicional la contradicción es evidente

Pero en Cálculo de Predicados es diferente porque si tengo:

Estudia(x) ^ ¬Estudia(y) contradicción

P(a) y P(x) no son comparables, para que lo sean, se debe encontrar una ambas fórmulas idénticas. Este proceso de encontrar una sustitución para hacer fórmulas idénticasconoce como unificación. Lo que se puede sustituir en una fbf para permitir el pareamiento de dos fórmulas son las variablestérminos. Resolventes El proceso de demostración mediante refutación, se completa selpuedan unificar, tratando siempre de obtener la cláusula vacía (una contradicción)seleccionadas se llaman padres A continuación se muestran algunos ejemplos de resolventes:

sería:

representación en (en formatoLPO):

al la contradicción es evidente en:

Pero en Cálculo de Predicados es diferente porque si tengo:

.

no son comparables, para que lo sean, se debe encontrar una sustituciónambas fórmulas idénticas. Este proceso de encontrar una sustitución para hacer fórmulas idénticas

Lo que se puede sustituir en una fbf para permitir el pareamiento de dos fórmulas son las variables

El proceso de demostración mediante refutación, se completa seleccionando dos cláusulas puedan unificar, tratando siempre de obtener la cláusula vacía (una contradicción)

padres y, la cláusula resultante se denomina resolvente

A continuación se muestran algunos ejemplos de resolventes:

21

no hay

stitución para x que haga ambas fórmulas idénticas. Este proceso de encontrar una sustitución para hacer fórmulas idénticas se

Lo que se puede sustituir en una fbf para permitir el pareamiento de dos fórmulas son las variables por

eccionando dos cláusulas que se puedan unificar, tratando siempre de obtener la cláusula vacía (una contradicción). Las cláusulas

resolvente.

Page 22: GUIA_IA

Cláusulas Padres

Fig. 2.1 Leyes lógicas aplicadas para la obtención de resolventes 2.5 Cláusulas de Horn

Son cláusulas que tienen como máximo un literal positivo

• Las cláusulas determinadas sólo tienen un literal positivo:

(¬p1 ¬p2 ... ¬p

Caso particular son las no tienen más que ese literal positivo, que representan «hechos» , es decir, conocimiento factual.

• Los objetivos determinados tienen ningún literal positivo:

(¬p1 ¬p2 ... ¬p

En este caso, las fórmulas atómicas sean todas verdaderas. Provienen de la negación de conclusiones que el sistema deductivo debe obtener mediante resolución y refutación.

2.6 Estructura de una Base de Conocimientos en Prolog Prolog es la realización más utilizaProlog tiene menos que ver con la tarea de especificar unprogramación imperativa; y máocurren en el contexto de unrelaciones que conforman la solución deseada del problema. Por otro lado, conocimiento a manera de cláusulas Ejemplo: A continuación se muestra la codificación del cfamilia.

Resolvente Comentario

Q Modus Ponens

Q Idempotencia

Tautologías

Transitividad o encadenamiento

Cláusula Vacía Contradicción

Fig. 2.1 Leyes lógicas aplicadas para la obtención de resolventes

como máximo un literal positivo. Hay dos tipos:

cláusulas determinadas (definite clauses), o «cláusulas de Horn con cabeza» son las que sólo tienen un literal positivo:

¬pk q) (p1 p2 ... pk q)

Caso particular son las no tienen más que ese literal positivo, que representan «hechos» , es decir, conocimiento factual.

objetivos determinados (definite goals), o «cláusulas de Horn sin cabeza» son las que no tienen ningún literal positivo:

¬pk) ¬(p1 p2 ... pk)

En este caso, las fórmulas atómicas p1,p2,...,pk son inconsistentes, es decir no es posible que sean todas verdaderas. Provienen de la negación de conclusiones que el sistema deductivo debe obtener mediante resolución y refutación.

Estructura de una Base de Conocimientos en Prolog

s utilizada del paradigma de programación lógica. Prolog tiene menos que ver con la tarea de especificar un algoritmo, co

imperativa; y más con la especificación de los objetos y las relaciones entre ellos, que ocurren en el contexto de un problema. En particular, tiene que ver con la especificaci

conforman la solución deseada del problema. Por otro lado, conocimiento a manera de cláusulas de Horn

A continuación se muestra la codificación del conocimiento basado en la genealog

22

Comentario

Modus Ponens

Idempotencia

Tautologías

Transitividad o encadenamiento

Contradicción

, o «cláusulas de Horn con cabeza» son las que

Caso particular son las no tienen más que ese literal positivo, que representan «hechos» , es

, o «cláusulas de Horn sin cabeza» son las que no

son inconsistentes, es decir no es posible que sean todas verdaderas. Provienen de la negación de conclusiones que el sistema deductivo

Escribir un programa en algoritmo, como es el caso de la

relaciones entre ellos, que problema. En particular, tiene que ver con la especificación de las

conforman la solución deseada del problema. Por otro lado, Prolog, representa el

basado en la genealogía de una

Page 23: GUIA_IA

23

Fig. 2.2 Relaciones de parentesco Fig. 2.3 Ejemplo de una base de conocimientos en Prolog Nota: para un mejor entendimiento ver el archivo Prolog.pdf e instalar la herramienta gratuita SWI Prolog 2.7 Ejercicios

1) Considere los siguientes hechos

o Marco era un hombre o Marco era pompeyano o Todos los pompeyanos eran romanos o César fue un gobernante o Todos los romanos o eran leales a César o lo odiaban o Todo el mundo es leal a alguien o La gente sólo intenta a asesinar los gobernantes a los que no es leal o Marco intentó asesinar a César

% Hechos progenitor(pam,bob). progenitor(tom,bob). progenitor(tom,liz). progenitor(bob,ann). progenitor(bob,pat). progenitor(pat,jim).

%Regla (s) %en la forma convencional sería: %progenitor(X,Y)�vastago(Y,X)

vastago(Y,X) :- progenitor(X,Y).

Page 24: GUIA_IA

24

a) Representarlos en LPO b) Reducirlos a la forma clausal c) ¿Intentó Marco asesinar a César? (demostrarlo por Resolución)

2) Construya una Base de Conocimientos en Prolog referida a las relaciones de parentesco en una familia, con al menos 10 reglas. Haga las consultas respectivas desde el prompt.

Page 25: GUIA_IA

25

Capítulo 3: Procesamiento de la Incertidumbre

Objetivo: Explotar las técnicas que permiten a los agentes de IA solventar problemas bajo condiciones de incertidumbre, para mejorar su desempeño. 3.1 Incertidumbre: causas y las decisiones racionales

El modelo ideal del razonamiento (humano o mecánico) es el razonamiento exacto. Sin embargo, en el mundo real se suele razonar con información que es incierta o imprecisa. Las fuentes de la incertidumbre pueden tener algunos orígenes:

– Deficiencias de la información – Características del mundo real – Deficiencias del modelo

Ejemplos:

- Información incompleta: falta historial, falta memoria, pruebas caras - Información errónea: descripción incorrecta, historial incorrecto, falsos positivos, engaño - Información imprecisa: dificultad para cuantificar - Mundo real no determinista: aleatoriedad, excepciones - Modelo incompleto: enfermedades desconocidas, desacuerdos, imposibilidad - Modelo inexacto: estimaciones subjetivas, problemas en mecanismos de razonamiento

Es clara la necesidad de contar con algunos modelos de razonamiento aproximado; de esta manera, los agentes de IA podrán reducir, lo que más se pueda, la incertidumbre; y por ende, el proceso de decisión será más racional. El tratamiento de la incertidumbre es, junto con la representación del conocimiento y el aprendizaje, uno de los problemas fundamentales de la Inteligencia Artificial.

La incertidumbre ha sido abordada desde diversas ópticas: teoría de las probabilidades, factores de certeza, lógica difusa, entre otras.

3.2 Redes Bayesianas

Una red bayesiana está conformada por:

• Un conjunto de nodos que representan variables o entidades del mundo real • Un conjunto de enlaces que representan relaciones de influencia causal entre los

nodos • Una serie de parámetros (probabilidades condicionadas de cada nodo dados sus

padres) que cuantifican la relación entre los nodos.

Ejemplo:

La interpretación de los parámetros sería:

Page 26: GUIA_IA

26

Dada una red bayesiana, la distribución de probabilidad conjunta puede expresarse como:

P(x1, ..., xn) = Π P(xi /pa(xi))

Propagación en redes Bayesianas

Los algoritmos de propagación en redes bayesianas permiten hacer inferencias:

– De tipo abductivo: dado que el alumno ha respondido a ciertas preguntas, ¿cuál es la probabilidad de que conozca los conceptos?

– De tipo predictivo: dado que el alumno conoce ciertos conceptos, ¿cuál es la probabilidad de que responda correctamente a la pregunta?

Cuando un nodo (grupo de nodos) se instancia, la información se propaga por la red de forma que se calculan las probabilidades a posteriori de cada uno de los nodos dado el valor que haya tomado el nodo (grupo de nodos) instanciado.

Ejemplo: La red Asia

Fig. 3.1 Red bayesiana para abducción y predicción

3.3 Factores de Certeza

Es la forma más común de representar pesos heurísticos, pues, utiliza técnicas pseudo-probabilísticas para manejar la incertidumbre. Los Factores de Certeza (FC) indican el grado de certeza en los que se cree que cada regla o hecho es verdadero. Fueron aplicados en el sistema MYCIN, que intentaba recomendar terapias a pacientes con infecciones bacterianas.

Page 27: GUIA_IA

27

Los FC se utilizan en los sistemas expertos, donde a cada regla se le asocia un valor de credibilidad a la conclusión. Un factor de certeza se define en términos de dos componentes:

– MB [h, e]: es la medida (entre 0 y 1) de credibilidad en la hipótesis h dada la evidencia e. Mide el grado en que la evidencia confirma la hipótesis.

MB = 1 si p(h) = 1 = ( p(h/e) -p(h) ) / (1 - p(h) ) en otro caso

– MD [h, e]: es la medida (entre 0 y 1) de incredulidad de la hipótesis h dada la evidencia e. Mide el grado en el que la evidencia confirma negativamente la hipótesis.

MD = 1 si p(h) = 0 = (p(h) - p(h/e) ) / p(h) en otro caso

Entonces factor de certeza se mide como:

FC(h,e) = ( MB - MD) / ( 1 - min(MB,MD) ) que cumple -1 ≤ FC(H,E) ≤ +1

• Un FC positivo indica que la evidencia confirma (total o parcialmente) la hipótesis ya que MB > MD.

• Un FC negativo significa que la evidencia descarta (total o parcialmente) la hipótesis, ya que MB < MD.

Leyes de los FC

Sea la regla R : IF e THEN h Considere también que: FC(h|e): factor de certeza de la regla FC(e): factor de certeza de la premisa Entonces i) FC(h) = FC(e) * FC(h|e) ii) FC(e) = mín( FC(e) de la premisas ) para el AND iii) FC(e) = máx( FC(e) de la premisas ) para el OR iv) Combinación de Reglas Convergentes Sean FC(h|e1) y FC(h|e2), entonces se puede calcular FC(h|e1,e2) de la siguiente forma:

x+y-xy si x,y > 0 fcomb(x,y)= (x+y)/(1-min(|x|,|y|)) si xy <= 0

x+y+xy si x,y < 0

donde x = FC(h|e1), y = FC(h|e2)

v) Encadenado de Reglas Si A entonces B con FC(B|A) Si B entonces C con FC(C|B) ------------------------------------- Si A entonces C con FC(C|A) Con: FC(C|A)= FC(C|B) FC(B|A) si FC(B|A)>=0

0 cc. FC(B|A)<0

Page 28: GUIA_IA

28

Ejemplo: Dadas siguientes reglas, calcular el factor de certeza de la proposición A^B^E�F

3.4 Razonamiento con lógica difusa

La lógica difusa (Fuzzy Logic) tiene sus raíces en la teoría de conjuntos difusos desarrollada por Zadeh en la década de los 60, y propone que, un elemento siempre pertenece en un cierto grado a un conjunto, esto permite establecer una manera eficiente para trabajar con incertezas, así como para acondicionar el conocimiento en forma de reglas hacia un plano cuantitativo, factible de ser procesado por computadores. Toda lógica consiste en formalizar el pensamiento humano, desde este punto de vista.

Un Conjunto Difuso A está formado por: Variable lingüística + funcion de pertenencia, como se muestra a continuación:

A = {x / µA(x) ∀x ∈ X}

X: representa el Universo del discurso

µA(x): es la función de pertenencia; asocia a cada valor x un número en el intervalo (0,1)

La principal ventaja de esta lógica es que permite utilizar términos lingüísticos como: a medias, bastante, casi, un poco, mucho, algo, etc, posibilitando plantear el problema en los mismos términos en los que lo haría un experto humano. El esquema básico de un sistema basado en lógica difusa se muestra en la fig. 3.2:

Fig. 3.2 Esquema básico de un sistema con lógica difusa

Page 29: GUIA_IA

29

Una regla típica en lógica difusa puede adoptar la forma: “Si x1 es A1 y x2 es A2 entonces z1 es Z”, donde A1, A2 y Z son conjuntos difusos. En un sistema de control difuso, la información de entrada tiene que ser fuzzificada para poder aplicar las reglas difusas; la salida tendrá que ser nuevamente transformada a un valor no difuso (defuzzificación) para que se operativo.

Ejemplo: Se muestra a continuación un ejemplo de la terminología usada en lógica difusa, con las respectivas funciones de pertenencia.

Fig. 3.3 Conjuntos difusos con sus respectivas funciones de pertenencia

En el siguiente esquema se muestra un ejemplo de una base de conocimientos, implementada con reglas difusas:

Fig. 3.4 Conjunto de reglas difusas

Page 30: GUIA_IA

30

Fig. 3.5 Efectos de las regla difusas en la salida (propina)

3.5 Ejercicios

1) Sea el siguiente conjunto de reglas de producción, que utilizan como medida de certeza los factores de certeza: R1: if a then d 0.3 R2: if a then e 0.5 R3: if b then f 0.8 R4: if c then g 1 R5: if f and g then e 1 R6: if d then h 1 R7: if e then h 0.3 R8: if i then f 0.7 Se pide: a) Dibujar la red de inferencia definida implícitamente por el conjunto de reglas. b) Determinar el factor de certeza de h, conocidos los siguientes factores de certeza: a=1, b=1,c=0.6, i= - 0.2. 2) Supongamos que tenemos un termostato con el que queremos regular la temperatura de una habitación mediante un dispositivo que puede enfriar o calentar según sea la temperatura que haya en la habitación. El objetivo es que la temperatura de la habitación siempre se mantenga en un intervalo de [+18º,22º]. Se pide: a) Definir el universo del discurso, las variables lingüísticas, las posibles particiones y sus posibles etiquetas para describirlos.

Page 31: GUIA_IA

31

b) Construir los conjuntos difusos necesarios para representar los tres posibles estados, diciendo qué valores comprende y proponiendo gráficamente una función de pertenencia acorde a cada uno de los estados. c) Si el valor de verdad de la proposición “la habitación está caliente” es de 0.3, y el valor de verdad de la proposición “la habitación está fría es de 0.82”, ¿cuál es el valor de verdad de la proposición “La habitación está caliente o fría”, utilizando la función de verdad estándar en lógica difusa?

Page 32: GUIA_IA

32

Capítulo 4: Aprendizaje automático Objetivo: Entender las estrategias de aprendizaje que se puedan implementar en los agentes de IA, posibilitando su adaptabilidad al entorno y, por ende, su autonomía. 4.1 Categorías de los aprendizajes El Aprendizaje automático o Aprendizaje de Máquina es una rama de la Inteligencia Artificial cuyo objetivo es desarrollar técnicas que permitan a las computadoras aprender1. De forma más concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una información no estructurada suministrada en forma de ejemplos. Es, por lo tanto, un proceso de inducción del conocimiento. En muchas ocasiones el campo del Aprendizaje Automático se solapa con el de la Estadística, ya que las dos disciplinas se basan en el análisis de datos. Sin embargo, el Aprendizaje Automático se centra más en el estudio de la Complejidad Computacional de los problemas. Muchos problemas son de clase NP-duros, por lo que gran parte de la investigación realizada en Aprendizaje Automático está enfocada al diseño de soluciones factibles a esos problemas. Se han propuestos los siguientes tipos de aprendizaje:

- Supervisado: Existe una entidad externa al agente que establece una correspondencia entre las entradas y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificación, donde el sistema de aprendizaje trata de etiquetar (clasificar) una serie de vectores utilizando una entre varias categorías (clases). La base de conocimiento del sistema está formada por ejemplos de etiquetados anteriores.

- No supervisado: Todo el proceso de modelado se lleva a cabo sobre un conjunto de

ejemplos formado tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos ejemplos.

- Por refuerzo: El algoritmo aprende observando el mundo que le rodea, en base a

premios y/o castigos. Su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones.

A continuación discutiremos algunas técnicas de aprendizaje automático, de tipo supervisado

4.2 Aprendizaje mediante análisis de diferencias Recibe incrementalmente ejemplos y contraejemplos de un concepto y genera una descripción estructural de dicho concepto que debe cubrir todos los ejemplos positivos y ninguno de los negativos. Esta descripción debería servir para clasificar correctamente los casos futuros. Es de tipo supervisado y sensible al orden de los ejemplos; además realiza un recorrido primero en profundidad en el espacio de posibles descripciones de conceptos. Ejemplo: Un agente va aprender el concepto “arco”, para lo cual, se le muestran los siguientes ejemplos de entrenamiento:

1 La acción de aprender involucra la adquisición de nuevo conocimiento, lo que genera un cambio en la conducta de los agentes.

Page 33: GUIA_IA

33

Fig. 4.1 La idea es que, nuestro agente, mediante los ejemplos positivos (+) pueda generalizar el concepto; los ejemplos negativos (-) sirven para especificar el concepto a aprenderse. Las relaciones relevantes se representan con redes semánticas:

Fig. 4.2 Red semántica para el concepto arco Luego, la secuencia de aprendizaje sería: Paso 1: análisis de la instancia A1 (ejemplo positivo de arco) tiene_parte(A1, B1) & tiene_parte(A1, C1) & tiene_parte(A1, D1) & apoyado_en(C1, B1) & apoyado_en(C1, D1) & es_un(B1, ladrillo) & es_un(C1, ladrillo) & es_un(D1, ladrillo) & no_union(B1, D1) Paso 2: análisis de la instancia A2 (ejemplo positivo de arco) tiene_parte(A2, B2) & tiene_parte(A2, C2) & tiene_parte(A2, D2) & apoyado_en(C2, B2) & apoyado_en(C2, D2) & es_un(B2, ladrillo) & es_un(C2, cilindro) & es_un(D2, ladrillo) & no_union(B2, D2) Luego, la descripción se generaliza para incluir a ambas instancias tiene_parte(A, B) & tiene_parte(A, C) & tiene_parte(A, D) & apoyado_en(C, B) & apoyado_en(C, D) & es_un(B, ladrillo) & es_un(C,objeto) & es_un(D, ladrillo) & no_union(B, D) Paso 3: se considera la instancia S1 (semejante, ejemplo negativo) tiene_parte(S1, T1) & tiene_parte(S1, U1) & tiene_parte(S1,V1) & apoyado_en(U1, T1) & apoyado_en(U1,V1) & es_un(T1,ladrillo) & es_un(U1, ladrillo) & es_un(V1, ladrillo) La definición del concepto debe modificarse para que el semejante sea excluido. La descripción queda de la siguiente manera:

Page 34: GUIA_IA

34

tiene_parte(A, B) & tiene_parte(A, C) & tiene_parte(A, D) & apoyado_en(C, B) & apoyado_en(C,D) & es_un(B, ladrillo) & es_un(C2, objeto) & es_un(D, ladrillo) & no_debe_union(B, D) Para llevar a efecto el aprendizaje por análisis de diferencias, se utilizan algunas heurísticas (de generalización y de especialización) :

- Enlace necesario - Prohibición de enlace - Ascenso de árbol - Intervalo cerrado - Ampliación de conjunto - Eliminación de enlace

4.3 Aprendizaje mediante el manejo de varios modelos (espacio de versiones) Como en el esquema anterior, el objetivo es producir una descripción de un concepto a partir de un entrenamiento con ejemplos positivos y negativos, pero no se ve afectado por el orden en que se presentan los ejemplos. Además, se va manteniendo un conjunto de descripciones posibles hasta llegar a la definición del mismo. El objetivo es producir una descripción que sea consistente con todos los ejemplos de entrenamiento positivos y que no lo sea con los ejemplos de entrenamiento negativos. Dado que existen descripciones más generales que otras se puede establecer un orden parcial entre ellas. La jerarquía completa constituye el espacio de descripciones de conceptos. La idea fundamental es ir configurando un conjunto de modelos compatibles con los ejemplos positivos, a partir de dos modelos básicos: (?,?,?,…,?) modelo más general, compatible con todos los ejemplos (+ y -) (0,0,0,…,0) modelo más específico, incompatible con todos los ejemplos (+ y -) El modelo más general se irá especializando con los ejemplos negativos; el modelo más específico se irá generalizando con los ejemplos positivos, hasta encontrar una convergencia de modelos. Ejemplo: considere el siguiente ejemplo en donde se muestran algunas situaciones en las que una persona disfruta o no disfruta de un deporte

Una vez procesado cada ejemplo, el espacio de versiones resultante será:

Page 35: GUIA_IA

35

Fig. 4.3 La flecha representa relaciones de Generalización entre modelos 4.4 Aprendizaje mediante construcción de árboles de identificación Un árbol de identificación es una representación que permite establecer cada conjunto de posibles conclusiones implícitas, mediante una lista de muestras de una clase conocida; por ende, permitirá clasificar los futuros casos no vistos. Permite aprender varios conceptos simultáneamente (no sólo un concepto y su negación) y trabaja sobre la totalidad del conjunto inicial de ejemplos. Un agente basado en esta técnica, tendrá como objetivo construir el árbol de decisión más simple para clasificar los ejemplos de entrenamiento. Para construir un árbol de identificación es necesario colocar en su raíz, el atributo que tiene la menor entropía (menor desorden) con respecto a los ejemplos de entrenamiento, e ir descendiendo por dicho árbol hasta tener plenamente identificados a cada ejemplo (entropía cero). Ejemplo: La siguiente tabla muestra diferentes situaciones de riesgo de inundación:

Fig. 4.4 Situaciones de riesgo de inundación El árbol generado, que identifica plenamente a cada ejemplo, sera:

Page 36: GUIA_IA

Fig. 4.5 Árbol de identificación para el problema de las inundaciones 4.5 Clustering

El análisis de clústers o clustering, es una colección decasos sobre los cuales se miden diferentes variables o características. Uno de los problemas del análisis de clúster es que no existe ungran cantidad de métodos, es así quejerárquicos y los no jerárquicos o particionales. En los primeros la pertenencia a un grupo o clúster en un nivel de la jerarquía condiciona la pertenencia a grupos de un nivel superior.mediante la optimización de alguna función adecuada. Los métodos particionales utilizan la matriz de datos mientras que los jerárquicos parten de una matriz de distancias o similaridades.

Fig. 4.6 La idea del clustering esde tal manera que cada miembro de un grupo esté lo “más cercano” posible a otro, y grupos diferentes estén lo “más lejos” posible uno del otro, donde la distancia está medida con respecto a todas las variables disponibles. El algoritmo k-means

Árbol de identificación para el problema de las inundaciones

El análisis de clústers o clustering, es una colección de métodos estadísticos que permiten agrupar casos sobre los cuales se miden diferentes variables o características. Uno de los problemas del análisis de clúster es que no existe una definición precisa de clúster, lo cual ha originado el desarrollo de una

an cantidad de métodos, es así que, los dos grandes grupos de métodos de clustering son: los jerárquicos y los no jerárquicos o particionales.

En los primeros la pertenencia a un grupo o clúster en un nivel de la jerarquía condiciona la pertenencia pos de un nivel superior. Los métodos particionales obtienen una única partición de los datos

mediante la optimización de alguna función adecuada.

Los métodos particionales utilizan la matriz de datos mientras que los jerárquicos parten de una matriz

La idea del clustering es dividir un conjunto de datos en grupos mutuamente excluyentes de tal manera que cada miembro de un grupo esté lo “más cercano” posible a otro, y grupos diferentes estén lo “más lejos” posible uno del otro, donde la distancia está medida con respecto a

as las variables disponibles.

36

Árbol de identificación para el problema de las inundaciones

métodos estadísticos que permiten agrupar casos sobre los cuales se miden diferentes variables o características. Uno de los problemas del análisis

o cual ha originado el desarrollo de una los dos grandes grupos de métodos de clustering son: los

En los primeros la pertenencia a un grupo o clúster en un nivel de la jerarquía condiciona la pertenencia Los métodos particionales obtienen una única partición de los datos

Los métodos particionales utilizan la matriz de datos mientras que los jerárquicos parten de una matriz

dividir un conjunto de datos en grupos mutuamente excluyentes de tal manera que cada miembro de un grupo esté lo “más cercano” posible a otro, y grupos diferentes estén lo “más lejos” posible uno del otro, donde la distancia está medida con respecto a

Page 37: GUIA_IA

37

También conocido como Iterative Distance-based Clustering necesita que se le proporcione a priori el número de grupos k. Los pasos de este algoritmo son:

1) seleccionar al azar k ejemplos como centros iniciales de cada grupo; 2) repeat

- asignar cada ejemplo al grupo con menor distancia a su centro; - recalcular los nuevos centros de cada grupo; until (los grupos sean estables)

Los centros de cada grupo, también denominados centroides pueden corresponderse con ejemplos o no; en ese caso se les denomina prototipos. Los grupos se consideran estables cuando los ejemplos no cambian de grupo respecto la iteración anterior. Aplicaciones En Investigaciones Espaciales: Durante seis años, el Second Palomar Observatory Sky Survey (POSS-II) coleccionó tres terabytes de imágenes que contenían aproximadamente dos millones de objetos en el cielo. Tres mil fotografías fueron digitalizadas a una resolución de 16 bits por píxel con 23.040 x 23.040 píxeles por imagen. El objetivo era formar un catálogo de todos esos objetos. El sistema Sky Image Cataloguing and Analysis Tool (SKYCAT) se basa en técnicas de agrupación (clustering) y árboles de decisión para poder clasificar los objetos en estrellas, planetas, sistemas, galaxias, etc. con una alta confiabilidad. Los resultados han ayudado a los astrónomos a descubrir dieciséis nuevos quásars, con corrimiento hacia el rojo, que los incluye entre los objetos más lejanos del universo y, por consiguiente, más antiguos. Estos quásars son difíciles de encontrar y permiten saber más acerca de los orígenes del universo. 4.6 Aprendizajes alternativos Simon (1983), define el aprendizaje como los cambios que se producen en el sistema, de manera que permiten llevar a cabo la misma tarea de un modo más eficiente y eficaz. En la práctica, el aprendizaje se usa para resolver problemas y puede representar la diferencia entre la resolución rápida y la imposibilidad de resolverlo. La idea de poder aprender de la propia experiencia en la resolución de problemas nos lleva a esperar obtener mejores soluciones en un futuro. El aprendizaje está relacionado con el conocimiento. Puede definirse como el proceso mediante el cual un ente adquiere conocimiento. Este conocimiento puede ser suministrado por otro ente denominado profesor o puede adquirirse sin la ayuda del mismo. Podemos referenciar otras formas de aprendizaje, entre las cuales se destacan:

- Aprendizaje memorístico: es la actividad de aprendizaje más básica y rudimentaria; consiste en el simple almacenamiento de la información computada. Este proceso al cual muchos no llamarían aprendizaje, puede considerarse como tal desde el punto de vista que puede mejorar el rendimiento de un programa existente.

- Aprendizaje a través de consejos: éstos son suministrados por una persona en un lenguaje de alto nivel, por ej. lucha por controlar el centro del tablero de ajedrez. El programa es capaz de traducir el consejo en un lenguaje más operativo y usarlo para

Page 38: GUIA_IA

38

modificar su comportamiento, por ej., ajuste de la función de evaluación para introducir factor basado en el número de cuadros del centro ocupados por piezas de un color.

- Aprendizaje mediante experiencia en la resolución de problemas: un agente puede

mejorar (sin ayuda externa) a través de la generalización de sus propias experiencias. Por ejemplo, Samuel (1963), en su juego de damas, usa una función de evaluación f = c1 * p1 + ... + c16 * p16, con 16 características que contribuyen a la evaluación, y 16 pesos que van actualizándose automáticamente conforme el agente experimenta nuevos juegos.

- Aprendizaje basado en explicaciones: a veces se aprende mejor a partir de una única

experiencia en lugar de miles de ejemplos positivos y negativos. El uso de conocimiento específico permite identificar los aspectos críticos del ejemplo de entrenamiento. Este enfoque se denomina aprendizaje basado en explicaciones (explanation-based learning EBL).

- Descubrimiento: a veces, no existe un maestro que posean el conocimiento que busca

el agente. El descubrimiento es una forma de aprendizaje, en la que, un agente adquiere conocimiento sin la ayuda de un profesor. En esta categoría podemos ubicar: descubrimiento conducido por teorías, conducido por datos, y clustering.

- Analogía: la analogía es una correspondencia entre conceptos aparentemente

diferentes; es una herramienta de inferencia utilizada naturalmente en nuestro lenguaje y razonamiento. Por ejemplo, si tomamos la frase: “el mes pasado la bolsa era como una montaña rusa”, por analogía podemos entender que la bolsa sufrió grandes fluctuaciones. La analogía puede ser transformacional o derivacional.

4.7 Ejercicios

1) Proponga un modelo de aprendizaje a través del análisis de diferencias, de tal manera que: a) Se plantee el objetivo del aprendizaje con cada ejemplo b) Se utilicen las seis heurísticas de esta técnica

2) Construya una tabla de datos con al menos 5 atributos, en donde se muestre, situaciones en las que Ud. ha faltado a sus clases regulares en la universidad. Con tales informaciones, genere un árbol de identificación que muestre las respectivas conclusiones implícitas.

3) Profundice más acerca de las técnicas alternativas de aprendizaje (ítem 4.6) y construya una

tabla comparativa que permita establecer criterios de selección de una técnica u otra.

Page 39: GUIA_IA

Capítulo 5: Redes Neuronales y Computación Evolutiva Objetivo: Analizar la estructura y funcionamiento de paradigmas computacionales inspirados en la biología, como son: las redes neuronales artificiales y la computación evolutiva, para solventar problemas de búsqueda y aprendizaje. 5.1 Analogía entre redes neuronales biológicas y artificiales Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la información, se han desarrollado modelos que tratan de mimetizar tales habilidades; denominados redes neuronales artificiales ó modelos de computación conexionista (otrasprocesamiento distribuido paralelo o P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos o características esenciales de las neuronas y sus conexiones, y en segundo lugar, la implementación del modelo en una computadora de forma que se pueda simular. Una neurona típica (fig. 5.1) recoge señales procedentes de otras neuronas a través de una pléyade de delicadas estructuras llamadas una fibra larga y delgada denominada axón, que se escinde en millares de ramificaciones. Neurona y conexiones sinápticas

Fig. 5.1 Esquema básico de una neurona natural Las extremidades de estas ramificaciones llegan hasta las dendritas de otras neuronas y establecen unas conexiones llamadas sinápsisen un mensaje neuroquímico, mediante la liberación de unas sustancias llam Las neuronas artificiales se modelan mediante unidades de proceso. Cada unidad de proceso se compone de una red de conexiones dcomputar la entrada total combinada de de aplicar la función de activación, y la salida, por dónde se transmite el valor de activación a otras unidades.

Capítulo 5: Redes Neuronales y Computación Evolutiva

Analizar la estructura y funcionamiento de paradigmas computacionales inspirados en la biología, como son: las redes neuronales artificiales y la computación evolutiva, para solventar

s de búsqueda y aprendizaje.

5.1 Analogía entre redes neuronales biológicas y artificiales

Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la información, se han desarrollado modelos que tratan de mimetizar tales habilidades; denominados redes neuronales artificiales ó modelos de computación conexionista (otras denominaciones son computación neuronal y procesamiento distribuido paralelo o P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos o características esenciales de las neuronas y sus conexiones, y en segundo

implementación del modelo en una computadora de forma que se pueda simular.

recoge señales procedentes de otras neuronas a través de una pléyade de delicadas estructuras llamadas dendritas. La neurona emite impulsos de actividad eléctrica a lo largo de una fibra larga y delgada denominada axón, que se escinde en millares de ramificaciones. Neurona y

Fig. 5.1 Esquema básico de una neurona natural

e estas ramificaciones llegan hasta las dendritas de otras neuronas y establecen sinápsis, en las cuales se produce una transformación del impulso eléctrico

en un mensaje neuroquímico, mediante la liberación de unas sustancias llamadas neurotransmisores.

se modelan mediante unidades de proceso. Cada unidad de proceso se compone de una red de conexiones de entrada, una función de red (de propagación), encargada de computar la entrada total combinada de todas las conexiones, un núcleo central de proceso, encargado de aplicar la función de activación, y la salida, por dónde se transmite el valor de activación a otras

39

Capítulo 5: Redes Neuronales y Computación Evolutiva

Analizar la estructura y funcionamiento de paradigmas computacionales inspirados en la biología, como son: las redes neuronales artificiales y la computación evolutiva, para solventar

Aunque todavía se ignora mucho sobre la forma en que el cerebro aprende a procesar la información, se han desarrollado modelos que tratan de mimetizar tales habilidades; denominados redes neuronales

denominaciones son computación neuronal y procesamiento distribuido paralelo o P.D.P.). La elaboración de estos modelos supone en primer lugar la deducción de los rasgos o características esenciales de las neuronas y sus conexiones, y en segundo

implementación del modelo en una computadora de forma que se pueda simular.

recoge señales procedentes de otras neuronas a través de una pléyade de . La neurona emite impulsos de actividad eléctrica a lo largo de

una fibra larga y delgada denominada axón, que se escinde en millares de ramificaciones. Neurona y

e estas ramificaciones llegan hasta las dendritas de otras neuronas y establecen , en las cuales se produce una transformación del impulso eléctrico

adas neurotransmisores.

se modelan mediante unidades de proceso. Cada unidad de proceso se de propagación), encargada de

todas las conexiones, un núcleo central de proceso, encargado de aplicar la función de activación, y la salida, por dónde se transmite el valor de activación a otras

Page 40: GUIA_IA

40

Fig. 5.2 Esquema básico de una neurona artificial 5.2 Clasificación de las RN En el siguiente gráfico (fig. 5.3) se muestra una clasificación de las RN, tomando en consideración el tipo de conectividad entre sus elementos (neuronas individuales).

Fig. 5.3 Categorías para RN

Las RN feed forward (en cascada) se caracterizan porque las conexiones se dirigen siempre en dirección de las neuronas de la capa de salida; en cambio en las RN feedback, se pueden detectar conexiones de ida y retorno entre capas de neuronas. 5.3 Redes en cascada y retropropagación

Fig. 5.4 Una RN en cascada de tres capas

Page 41: GUIA_IA

En una RN encontramos tres tipos de funciones que definen su comportamiento:

- Función de Redde todas las entradasse utiliza la función de red Lineal de Base:

- Función de Activación: define el nivel de excitación de cada neurona, pudiendo ser de tipo lineal, umbral, y no lineal; una de las funciones más utilizada en las implementaciones neuronales es la sigmoide (no lineal en rango 0

- Función de Salida: cuantifica el nivel respuesta de las neuronas; generalmente se suele

utilizar la función Identidad, aplicada a la función de activación. Backpropagation En las redes feed forward se puede implementar este algoritmo para que la RN aprenda a ejecutar alguna tarea específica (aprendizaje supervisado)apreciación de la red, a través detal minimización. Se llama retropropagación, puestsalida hacia la capa de entrada En términos sencillos, el algoritmo consta de los siguientes pasos: 1.- Tomar un parámetro de rapidez r2.- Inicializar los pesos 3.- Mientras la red no tenga un desempeño satisfactorio

Por cada muestra de entrada:a.- Calcular la salida resultanteb.- Para los nodos de la capa c.- Para los demás nodod.- Calcular los cambiose.- Acumular los cambios de los pesosCambiar los pesos con los cambios acumulados para todas las muestras

5.4 Modelos de redes recurrentes Se caracterizan porque pueden podemos tener diversas formas de recurrencia (fig. 5.5)

En una RN encontramos tres tipos de funciones que definen su comportamiento:

Función de Red: cuantifica la incidencia total en cualquier neurona, como combinación de todas las entradas (vector X) y los correspondientes pesos (vector Wj)se utiliza la función de red Lineal de Base:

Función de Activación: define el nivel de excitación de cada neurona, pudiendo ser de tipo lineal, umbral, y no lineal; una de las funciones más utilizada en las

aciones neuronales es la sigmoide (no lineal en rango 0

Función de Salida: cuantifica el nivel respuesta de las neuronas; generalmente se suele utilizar la función Identidad, aplicada a la función de activación.

En las redes feed forward se puede implementar este algoritmo para que la RN aprenda a ejecutar (aprendizaje supervisado). El principio que utiliza es el minimizar el error de

a través de una búsqueda (por descenso de gradiente) de los pesos que permitan . Se llama retropropagación, puesto que el error se va propagando

salida hacia la capa de entrada.

En términos sencillos, el algoritmo consta de los siguientes pasos:

parámetro de rapidez r

Mientras la red no tenga un desempeño satisfactorio or cada muestra de entrada:

Calcular la salida resultante Para los nodos de la capa de salida, calcular el error de apreciación Para los demás nodos ocultos calcular el error en función del error en capa de salidaCalcular los cambios en los pesos Acumular los cambios de los pesos

Cambiar los pesos con los cambios acumulados para todas las muestras

ecurrentes

porque pueden tener ciclos o bucles en las conexiones (conexiones recurrentes)podemos tener diversas formas de recurrencia (fig. 5.5)

41

En una RN encontramos tres tipos de funciones que definen su comportamiento:

: cuantifica la incidencia total en cualquier neurona, como combinación ntes pesos (vector Wj); generalmente

Función de Activación: define el nivel de excitación de cada neurona, pudiendo ser de tipo lineal, umbral, y no lineal; una de las funciones más utilizada en las

aciones neuronales es la sigmoide (no lineal en rango 0-1), cuya fórmula es:

Función de Salida: cuantifica el nivel respuesta de las neuronas; generalmente se suele

En las redes feed forward se puede implementar este algoritmo para que la RN aprenda a ejecutar . El principio que utiliza es el minimizar el error de

scenso de gradiente) de los pesos que permitan o que el error se va propagando desde la capa de

tos calcular el error en función del error en capa de salida

Cambiar los pesos con los cambios acumulados para todas las muestras

(conexiones recurrentes). Así

Page 42: GUIA_IA

42

Fig. 5.5 Conexiones recurrentes: una neurona con ella misma, entre neuronas de una misma capa, entre neuronas de una capa con otra capa anterior.

Al permitir conexiones recurrentes aumenta el número de pesos o de parámetros ajustables de la red; aumenta la capacidad de representación. Por otro lado, se complica el aprendizaje, pues, las activaciones no dependen sólo de las activaciones de la capa anterior sino también de la activación de cualquier otra neurona conectada a ella, e incluso de su propia activación. En estas redes es necesario incluir la variable tiempo:

La variable tiempo hace que las redes tengan un comportamiento dinámico o temporal. Existen dos formas de entender el modo de actuación y aprendizaje: � Evolución de las activaciones de la red hasta alcanzar un punto estable � Evolución de las activaciones de la red en modo continuo Red de Hopfield Modelo de memoria asociativa, capaz de recuperar patrones almacenados a partir de información incompleta e incluso a partir de patrones con ruido. � Actúa como memoria asociativa procesando patrones estáticos (sin variable tiempo) � Todas las neuronas están conectadas con todas las demás

Fig. 5.6 Dos formas de ver una misma red de Hopfield

Page 43: GUIA_IA

43

Algunas características de la red de Hopfield son:

- Matriz de pesos W=(wij), orden n x n. - wij; peso de la conexión de neurona i a neurona j - Matriz simétrica: wij=wji - Los elementos de la diagonal son nulos (no existen conexiones reflexivas) - Las neuronas poseen dos estados -1 y 1 - Estado de la neurona i en t+1:

La red de Hopfield tiene Dos fases de operación � Fase de almacenamiento: se determinan los valores que tendrán los pesos para almacenar un conjunto de patrones. � Fase de recuperación: mecanismo para recuperar la información almacenada a partir de información incompleta. 5.5 Computación Evolutiva: áreas de estudio Es un área de los algoritmos bio-inspirados que comprende: programación genética y los algoritmos genéticos. Está fundamentada en la aplicación de las leyes de evolución de las especies (Charles Darwin) para la implementación de algoritmos de búsqueda y aprendizaje. Programación Genética Consiste en la evolución automática de programas usando ideas basadas en la selección natural. No sólo se utiliza para generar programas, sino que cualquier otro tipo de soluciones cuya estructura sea similar a la de un programa, por ejemplo, fórmulas matemáticas, circuitos electrónicos. La evolución se produce en la naturaleza gracias a que: • Existe reproducción entre individuos de una población. • Las características de los individuos afectan su probabilidad de supervivencia. • Existe herencia. • Existen recursos finitos, que ocasionan competencia. En programación genética se busca que poblaciones de programas evolucionen, transmitiendo su herencia de manera que se adapten mejor al medio. Los mejores individuos tienen mayores probabilidades de reproducirse. Por lo tanto se requiere cuantificar la calidad de cada individuo I; para

Page 44: GUIA_IA

44

esto, es necesario definir una función de desempeño fitness(I), misma que califica los atributos relevantes de los individuos. Un algoritmo de programación genética sigue el siguiente esquema: 1. Genera una población inicial. 2. Mientras no se cumple el criterio de terminación:

a) Seleccionar individuos (para reproducción y eliminación), considerando su calidad. b) Combinar y/o variar individuos nuevos. c) Agregar y eliminar individuos.

En programación genética, los programas (o individuos) se representan como árboles. Es así como el segmento de código: while (a<10) { print(a); a++; } Puede representarse por el árbol:

Los elementos que configuran un individuo son: terminales y funciones.

- El conjunto de terminales (T) está compuesto por las entradas posibles al individuo: constantes y funciones de aridad 0.

- El conjunto de funciones (F) está compuesto por los operadores, sentencias y funciones que pueden componer a un individuo. Ejemplos: Funciones booleanas: AND, OR, NOT, XOR. Funciones aritméticas: PLUS, MINUS, MULT, DIV. Sentencias condicionales: IF, THEN, ELSE, CASE, SWITCH Sentencias para iteraciones: WHILE, FOR, REPEAT, UNTIL

Población inicial Usualmente, se utilizan dos métodos para generar esta población: grow y el full.

Page 45: GUIA_IA

45

Grow Se elige aleatoriamente un elemento de F para que conforme la raíz del árbol. El contenido de los nodos hijos de la raíz se elige desde F U T. Si el valor elegido es una función, se repite este procedimiento con los hijos. (si el valor elegido es una constante, se termina esa rama del árbol.) Full El método full hace crecer el árbol en forma similar al método grow, pero siempre se eligen elementos del conjunto de funciones, a menos que el nodo esté a profundidad máxima, en cuyo caso sólo se eligen elementos de T. El resultado de este método son siempre árboles balanceados de profundidad máxima. Si se usa el número de nodos como límite de tamaño, el crecimiento se termina cuando el tamaño del árbol ha alcanzado el límite. Operadores genéticos Para generar nuevos individuos desde una cualquier población, se suelen utilizar los siguientes operadores genéticos:

- Cruce (crossover) - Mutación - Reproducción

En la figura 5.7 se aprecia la aplicación del operador genético crossover para la generación de dos vástagos. Note los puntos de corte en los padres.

Fig. 5.7 Un ejemplo de “crossover” con dos individuos padres.

Page 46: GUIA_IA

46

Algoritmos Genéticos (AG) Un AG es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Dado un problema específico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema (individuos candidatos), codificadas de alguna manera, y una métrica llamada función de aptitud (fitness) que permite evaluar cuantitativamente a cada individuo. Estos candidatos pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero se suelen generar aleatoriamente. La mayor ventaja de los algoritmos genéticos es que son intrínsecamente paralelos. La mayoría de los otros algoritmos son en serie y sólo pueden explorar el espacio de soluciones hacia una solución en una dirección al mismo tiempo, y si la solución que descubren resulta subóptima, no se puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo. Sin embargo, ya que los AG tienen descendencia múltiple, pueden explorar el espacio de soluciones en múltiples direcciones a la vez Métodos de representación Antes de que un algoritmo genético pueda ponerse a trabajar en un problema, se necesita un método para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque común es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dígito de cada posición representa el valor de algún aspecto de la solución. Otro método similar consiste en codificar las soluciones como cadenas de enteros o números decimales, donde cada posición, de nuevo, representa algún aspecto particular de la solución. Este método permite una mayor precisión y complejidad que el método comparativamente restringido de utilizar sólo números binarios, y a menudo ``está intuitivamente más cerca del espacio de problemas''. Ejemplo (agente viajero): Una persona debe recorrer varias ciudades distintas, con la condición de que debe pasar solamente una vez por cada una de ellas y volver a la ciudad de origen, recorriendo la menor distancia posible. En este caso se han considerado 4 ciudades.

Podríamos adoptar la siguiente representación binaria de un individuo: bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 AB BC CD DA AC BD Cada bit puesto a 1 indicará que el tramo respectivo está activo

Page 47: GUIA_IA

47

Para cumplir con los requerimientos del problema, será necesario definir dos funciones de desempeño: una evaluará la calidad de los individuos en términos de las ciudades visitadas, y la otra medirá la calidad en términos de la menor distancia recorrida. Por lo tanto la evaluación final deberá cuantificar la visita exclusivamente a 4 ciudades con el menor recorrido, así:

A continuación se muestran los desempeños de 6 individuos tomados al azar:

Donde: - Fitness(w): valor devuelto por la función de aptitud al aplicar sobre ella el individuo w - FitTOT: es la aptitud total de la población actual - Aptitud(w): aptitud del individuo w respecto del resto de individuos Aptitud(w3) = Fitness(w3)/FitTOT 5.6 Ejercicios

1) Se tiene un tablero de ajedrez, donde se ubican 8 reinas, el objetivo es colocarlas tal que ellas no se ataquen unas a otras.

a) Dar una representación genética de los individuos b) Escriba una función de aptitud c) Probar la función de aptitud con 3 individuos

2) Defina una topología de red neuronal, con los respectivos ejemplos de entrenamiento, para que

esta red aprenda a identificar mamíferos, reptiles y aves. Implemente su propuesta en Matlab.

3) Un motor eléctrico puede girar en ambos sentidos por medio de dos contactores: “D” para el giro a la derecha e “I” para el giro a la izquierda. Estos dos contactores son comandados por dos pulsadores de giro “d” (derecha) e “i” (izquierda) y un interruptor de selección “L” de acuerdo con las siguientes condiciones:

- Si sólo se pulsa uno de los botones de giro, el motor gira en el sentido correspondiente. - Si se pulsan los dos botones de giro simultáneamente, el sentido de giro depende del

estado del interruptor “L” de forma que:

Page 48: GUIA_IA

48

* Si “L” está activado, el motor gira a la derecha. * Si “L” está en reposo , el motor gira a la izquierda a) Enuncie las entradas y salidas. b) Diseñe la red neuronal que soluciona el problema. c) ¿Qué función de activación se utiliza?. Justifique su respuesta