Download Conceptos de Inteligencia Artificial - Alejandro J. García
Document related concepts
Transcript
Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García 26 de octubre de 2016 En esta clase Conceptos de Inteligencia Artificial • • • • • • • • • • • & Sistemas Inteligentes Artificiales Acciones y Planes Dr. Alejandro J. García http://cs.uns.edu.ar/~ajg Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina Problema de planificación. Dominio de planificación. Ejemplo de dominio de planificación: Mundo de bloques. Lenguaje de representación STRIPS. Representación STRIPS de estados y metas . Representación STRIPS de acciones. Sistema de planeamiento. Búsqueda de una solución sobre un espacio de estados. Forward Planning Regression Planning. Ejemplo de dominio de planificación: Robot repartidor. Conceptos de Inteligencia Artificial En lo que sigue.. REPETIR – percibir (sensores) – revisar el conocimiento y las metas – seleccionar un curso de acción (planning) – actuar (ejecutar acciones) HASTA el fin • Agentes. • Representación de conocimiento con un lenguaje formal. • Métodos de búsqueda. actua 3 Referencias Conceptos de Inteligencia Artificial Dr. Alejandro J. García 4 Planificación • Para ello, el agente debe tener en cuenta: – las metas que quiere lograr, – las acciones que es capaz de ejecutar – y cual es el estado actual del entorno en el cual se realizarán dichas acciones. [RN] Russel, S., and Norvig, P. Artificial Intelligence: A Modern Approach. (2nd Ed.) Chapter 11 Planning Dr. Alejandro J. García Agente • Se denomina planificación a la tarea de sintetizar un curso de acción, el cual le permita a un agente lograr sus metas. [PMG] Poole, D., Mackworth, A., and Goebel, R. Computational Intelligence: A Logical Approach. Chapter 8: Actions and Planning Conceptos de Inteligencia Artificial Las técnicas de planificación varían desde: elegir un plan de una biblioteca de planes, hasta: construir su propio plan con las acciones disponibles. percibe Dr. Alejandro J. García 2 Comportamiento de un agente Para los temas que siguen vamos a utilizar de manera combinada los conceptos que se vieron en los siguientes temas: Conceptos de Inteligencia Artificial Dr. Alejandro J. García 5 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 6 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García Problema de planificación 26 de octubre de 2016 Plan que resuelve un problema Un problema de planificación se define indicando tres componentes (I, G, A) en un lenguaje formal: • una descripción del estado inicial (I) del mundo, • una descripción de la meta (goal) (G) del agente, • una descripción de las acciones (A) que el agente puede ejecutar. Prob. de planificación PLAN: (I) estado inicial (G) meta (A) acciones Planificador A1, A2, … ,A47 Un plan es una secuencia de acciones, que ejecutadas a partir del estado inicial, llevan a un estado en donde la descripción de la meta es verdadera. Ejemplo: Una solución para un problema de planificación es un plan. Un plan es una secuencia de acciones, que ejecutadas a partir del estado inicial, llevan a un estado en donde la descripción de la meta es verdadera. PLAN: A1, A2, … ,A47 Prob. de planificación (I) estado inicial (G) meta (A) acciones Conceptos de Inteligencia Artificial PLAN: Planificador Meta Ejecutar PLAN A1, A2, … ,A47 Estado inicial Dr. Alejandro J. García 7 p Dominio de planificación Conceptos de Inteligencia Artificial Dr. Alejandro J. García 8 Aplicaciones de brazos robots Un dominio de planificación consiste de: 1. una caracterización del entorno donde actúa el agente, y 2. las acciones que puede ejecutar, Los dominios de planificación pueden variar en tamaño y complejidad desde un vehículo autónomo en una autopista, hasta dominios “de juguete” como el mundo de bloques. c i a h x http://www.moley.com/ https://www.youtube.com/watch?v=KdwfoBbEbBE Conceptos de Inteligencia Artificial Dr. Alejandro J. García 9 Aplicaciones de brazos robots Conceptos de Inteligencia Artificial Dr. Alejandro J. García 10 Planificación clásica En lo que sigue consideraremos dominios de “planificación clásica”, los cuales son: – completamente observables, – determinísticos, – finitos, – estáticos (los cambios solamente ocurren cuando el agente actúa) – y discretos (en tiempo, acciones, objetos y efectos). • Rehabilitación Conceptos de Inteligencia Artificial Por ejemplo, uno de los dominios de planificación populares utilizado en la bibliografía para ejemplificar los conceptos de planning es el Mundo de bloques (Block world). El cual presenta un dominio reducido, simple y claro. • Robot Assisted Micro-Surgery Dr. Alejandro J. García 11 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 12 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García Dominios de planificación: Mundo de Bloques 26 de octubre de 2016 Dominios de planificación: Mundo de Bloques El Mundo de bloques es un mundo virtual (de juguete) creado por Terry Winograd para un sistema que interpretaba comandos en Inglés y movía bloques en una superficie. Por ej: “Find a block which is taller than the one you are holding and put it into the box”. En su versión más simple existe un único brazo robot que debe resolver tareas autónomamente (sin operación humana). http://en.wikipedia.org/wiki/Terry_Winograd c i a c i a x h Dr. Alejandro J. García 13 Dominios de planificación: Mundo de Bloques i a Conceptos de Inteligencia Artificial h h x x Dr. Alejandro J. García 15 Conceptos de Inteligencia Artificial v l l h o a • Ejemplo: desapilar(v,l) l o h a Estado actual Estado actual Conceptos de Inteligencia Artificial 16 2) desapilar(B1,B2) Toma un bloque B1 que no tiene ninguno encima y que está sobre otro B2; y pone a B1 sobre la mesa. v v a Dr. Alejandro J. García Mundo de bloques 1) apilar(B1, B2) Toma un bloque B1 que está sobre la mesa y no tiene otro encima, y lo pone sobre otro bloque B2 que tampoco tiene uno encima. • Ejemplo: apilar(h,a) h 14 r Mundo de bloques o Dr. Alejandro J. García • En su versión más reducida cuenta con dos acciones que permiten mover bloques: 1. apilar un bloque sobre otro, que consiste en tomar un bloque que se encuentra sobre la mesa y ponerlo sobre otro bloque. 2. desapilar un bloque, que consiste en tomar un bloque que se encuentra sobre otro bloque y ponerlo sobre la mesa. • Un bloque se puede desapilar siempre y cuando este libre (no tiene otro bloque encima). • Para poder apilar un bloque sobre otro, este último también debe estar libre. c a Conceptos de Inteligencia Artificial Dominios de planificación: Mundo de Bloques • El “Mundo de bloques” consiste simplemente de una mesa sobre la cual hay únicamente bloques, todos del mismo tamaño, los cuales están cada uno de ellos identificados unívocamente. • Los bloques pueden estar sobre la mesa o sobre otro bloque. • Un bloque no puede estar simultáneamente sobre dos bloques o dos bloques sobre uno. p x Terry Winograd Conceptos de Inteligencia Artificial r h l h o a v Luego de desapilar(v,l) Luego de apilar(h,a) Dr. Alejandro J. García 17 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 18 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 3 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García Lenguaje de representación STRIPS Representación de estados en STRIPS • STRIPS es una sigla que significa STanford Research Institute Problem Solver. • El conjunto de literales de un estado representa todo lo que es verdadero en ese estado. • Además, se utiliza la Suposición del Mundo Cerrado (closed-world assumption) que significa que los literales no mencionados en la descripción de un estado se asume que son falsos. • Una convención habitual para distinguir los elementos del lenguaje consiste en denotar las variables con una letra mayúscula inicial. Dr. Alejandro J. García Conceptos de Inteligencia Artificial 19 Ejemplo de representación de estados Ejemplo: Estado1 = {mesa(i), mesa(a), libre(c), libre(a), sobre(c,i)} Conceptos de Inteligencia Artificial • Un estado E satisface una meta G si G E. • Ejemplo: Meta = { libre(a) } c c 21 Meta 1 = { mesa(a) } Meta 2 = { libre(a), mesa(a) } Meta 3 = { sobre(c,i), sobre(i,a) } Conceptos de Inteligencia Artificial i a Conceptos de Inteligencia Artificial E2 Dr. Alejandro J. García 22 p • Una acción es representada en términos de precondiciones que deben valer antes de que pueda ser ejecutada y de efectos que se harán presentes luego de ser ejecutada. a Por ejemplo: “apilar el bloque a sobre b” • requiere como precondiciones que los bloques estén libres, y que “a” esté sobre la mesa; • los efectos son tres: que “a” estará sobre “b”, que “a” no estará sobre la mesa, y que “b” no estará libre. c i a E1 satisface Meta 1 y Meta 2 E2 satisface Meta 1 y Meta 3 a Representación de acciones E1 E2 = {mesa(a), libre(c), sobre(i,a), sobre(c,i)} i c i E1 Estado1 Ejemplos de estados y metas E1 = {mesa(c), mesa(i), mesa(a), libre(c), libre(a), libre(i)} 20 • Una Meta es un estado parcialmente especificado, de tal manera, una meta estará representada como una conjunción de literales fijos positivos. a Dr. Alejandro J. García Dr. Alejandro J. García Representación de metas en STRIPS En el dominio de planificación del Mundo de bloques se utilizaran los siguientes literales para representar un estado: • mesa(X), para representar que un bloque X esta sobre la mesa. • sobre(X, Y ), para representar que un bloque X esta sobre otro bloque Y . • libre(X), para representar que un bloque X no tiene ningún bloque encima. c i p • En el lenguaje de representación STRIPS un estado se representa por medio de un conjunto finito de literales fijos positivos. Un literal es fijo si no contiene variables y positivo cuando no está precedido por negación. • El lenguaje de representación STRIPS se define sobre tres conjuntos disjuntos y finitos de símbolos: – un conjunto de variables V, – un conjunto de constantes C y – un conjunto de predicados P. Conceptos de Inteligencia Artificial 26 de octubre de 2016 E2 Dr. Alejandro J. García 23 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 24 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 4 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García Operadores / esquemas de acciones p Un operador o esquema de acción consiste de tres partes: • el nombre, que sirve para identificar al operador, y una lista de parámetros necesarios para la acción, • las precondiciones, que deberán ser verdaderas antes de que la acción sea ejecutada, está representada por una conjunción de literales, • los efectos, que representan los cambios en el estado Una acción es un operador instanciado, es decir, un operador donde no hay variables. Conceptos de Inteligencia Artificial Dr. Alejandro J. García 27 Acciones aplicables en un estado l h o a Conceptos de Inteligencia Artificial l v a Estado final deseado Dr. Alejandro J. García 28 • La tarea de un Sistema de Planeamiento es encontrar automáticamente una solución para un problema de planificación, esto es un plan. • Dado un problema (I, G, A), un plan es una secuencia de acciones P = [a1,a2,…aN], donde cada a1 A, y al ser ejecutadas en esa secuencia a partir del estado inicial I, llevan a un estado F, que satisface la meta G (G F). • Esto es, la acción a1 se aplica al estado I, luego a2 al estado resultante, y así sucesivamente hasta que al aplicar la acción aN se obtiene el estado final F (G F). c i E2 h o Sistema de Planeamiento • Una acción/operador es aplicable en un estado, si las precondiciones se satisfacen en ese estado. • Si una acción se aplica a un estado el resultado es otro estado con los efectos de la acción. Por ejemplo, apilar(c,i) es aplicable en el estado E1, y su efecto es el estado E2. E1 = {mesa(i), mesa(c), libre(c), libre(i)} E2 = {mesa(i), libre(c), sobre(c, i)} i 26 Problema de Planificación: ejemplo Estado actual o inicial (*) se puede agregar A B para evitar acciones como apilar(a, a) c Dr. Alejandro J. García v 2. desapilar(A,B) Precondiciones = {libre(A), sobre(A,B)}* Efectos: add ={libre(B), mesa(A)} del = {sobre(A,B)} E1 Conceptos de Inteligencia Artificial Dado un dominio de planificación, la definición de un problema de planificación se completa brindando la especificación del estado inicial y las metas del problema (estado final deseado). La figura muestra un problema de planificación para el mundo de bloques. Operadores: 1. apilar(A,B) Precondiciones = {libre(A), libre(B), mesa(A)}* Efectos: add = {sobre(A,B)} del={libre(B), mesa(A)} Dr. Alejandro J. García p Para hacer más claro como obtener el nuevo estado a partir de la ejecución de una acción, en STRIPS es usual separar el efecto en dos partes: • Un conjunto de literales llamada Add-list, que serán literales que se agregan al estado previo, y • Un conjunto de literales llamada Delete-list, que serán literales que se eliminan del estado previo. Ejemplo: Operador “apilar A sobre B” – Nombre y parámetros: apilar(A,B) – Precondiciones = {libre(A), libre(B), mesa(A)} – Efectos: add = {sobre(A,B)} del={libre(B), mesa(A)} p Relaciones para descripción de estados: libre(X), mesa(X), sobre(X,Y). Conceptos de Inteligencia Artificial Especificación de acciones/operadores 25 Especificación en el lenguaje STRIPS 26 de octubre de 2016 La acción desapilar(c,i) no es aplicable en E1. Conceptos de Inteligencia Artificial Dr. Alejandro J. García 29 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 30 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 5 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García 26 de octubre de 2016 Sistema de Planeamiento Sistema de Planeamiento: Forward Planning • Una de las formas de planeamiento más simples es la basada en el grafo del espacio de estados. • En este grafo los nodos representan estados, y los arcos que salen de un nodo E se corresponden a las acciones aplicables en el estado E y que llevan a otro estado. • Así, los nodos vecinos a un nodo particular E representan los estados que pueden alcanzarse por la ejecución de una sola acción aplicable en E. • Un plan estará representado por un camino desde el nodo que representa el estado inicial a un nodo que satisface las condiciones de la meta. En Forward Planning (planificar hacia adelante) se comienza en el estado inicial y se realiza una búsqueda en el espacio de estados, hasta encontrar un estado que satisface la meta. • Esta forma de hallar planes es una de las más simples. • La mayoría de los métodos de búsqueda estudiados previamente pueden ser utilizados para tratar de encontrar un plan. • La solución de la búsqueda es una secuencia de acciones que corresponde a un plan. • Por ejemplo, Primero a lo Ancho, Profundización Iterativa o A* garantizan encontrar un plan. Conceptos de Inteligencia Artificial Dr. Alejandro J. García 31 Sistema de Planeamiento: Forward Planning apilar(c,i) c i i apilar(c,a) apilar(i,a) c a i a a i desapilar apilar c desapilar apilar c desapilar apilar … … … Con N bloques cada operador se puede instanciar en Nx(N-1) acciones: para 3 bloques son 6 y para 7 bloques son 42. a apilar(i,c) i c a apilar(a,i) c desapilar apilar a i desapilar apilar … apilar(a,c) a c i desapilar apilar … … Dr. Alejandro J. García 33 Sistemas de Planeamiento: Regression planning META a c i a Plan = [apilar(i,a), apilar(c,i)] Conceptos de Inteligencia Artificial • Otra alternativa es planificar “hacia atrás” (en inglés Backward Planning, o Regression planning): esto es, comenzar de la meta y buscar (en reversa) una secuencia de acciones que lleve al estado inicial. Ver [PMG] pág 301 • La principal ventaja de la búsqueda hacia atrás es que solamente se consideran acciones relevantes para las metas buscadas. apilar(i,a) c i a 34 Planificadores Provistos • Esta implementación utiliza “regresión planning” siguiendo el algoritmo propuestos en [PMG] pág 301. • Se recomienda utilizarla como complemento de la ejercitación de los prácticos, ya que será de ayuda futuros ejercicios. • A modo de prueba está implementado el dominio de mundo de bloques. Comenzar con test(1,Plan). i a Dr. Alejandro J. García Dr. Alejandro J. García strips_planner.pl apilar(c,i) c Conceptos de Inteligencia Artificial • Como material adicional, en la página de la materia encontrarán una implementación en Prolog desarrollada por el grupo de docentes de CIA en 2013. META Operadores: • apilar(X,Y) • desapilar(X,Y) i • En Forward Planning la cantidad de acciones aplicables en cada estado (factor de ramificación), puede generar un espacio de búsqueda muy grande. META Regression planning: comienza de una meta M y busca una acción A que tenga como efecto llegar a M, calcula el estado E en que debe aplicarse A, y luego hace regresión a partir de E. Así hasta llegar al estado inicial. c i Problema de Planificación: a c 32 • Dada una meta M, hay que buscar una acción que tenga M entre sus efectos… c i a Conceptos de Inteligencia Artificial INICIAL Dr. Alejandro J. García Sistemas de Planeamiento: Regression planning En Forward Planning (planificar hacia adelante) se comienza en el estado inicial y se realiza una búsqueda en el espacio de estados, hasta encontrar un estado que satisface la meta. A continuación se muestra parte del espacio de estados. INICIAL Conceptos de Inteligencia Artificial INICIAL 35 Conceptos de Inteligencia Artificial Dr. Alejandro J. García 36 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 6 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García 26 de octubre de 2016 Otro dominio de planificación Dominio de planificación: “The delivery robot” • A continuación mostraremos otro dominio de planificación simple usualmente usado en la literatura de IA llamado “The delivery robot world”. En este ejemplo (ver [PMG] ) un robot (rob), que puede hacer determinadas operaciones, debe llevar un paquete a un lugar indicado. • Este dominio ya no es tan reducido y simplificado como el mundo de bloques. • Se trata de un dominio en el cual hay un robot que debe realizar en forma autónoma el reparto de elementos en un entorno y conocido para el robot. • A continuación mostraremos como ejemplo el entorno propuesto en [PGM] pág 285 Computational Intelligence, D. Poole, A. Mackworth, R. Goebel, fig 4.1. Conceptos de Inteligencia Artificial Dr. Alejandro J. García • Objetos (individuos): Cuartos, posiciones, puertas, llaves, paquetes, robot. • Acciones: – Moverse de un lugar a otro. – Levantar y soltar llaves y paquetes. – Abrir puertas con la llave correspondiente. Conceptos de Inteligencia Artificial 37 • 39 Representación en STRIPS Dr. Alejandro J. García Relaciones para representar : La posición del robot. La posición de los paquetes. La posición de las llaves. El estado de las puertas (con o sin llave). ¿Qué está sosteniendo el robot? 38 40 Representación en STRIPS Relaciones Relaciones •at(Obj, Loc) es verdadero si el objeto Obj está en el lugar Loc •carrying(Ag, Obj) es verdadero si agente Ag lleva el objeto Obj •sitting_at(Obj, Loc) es verdadero si el objeto Obj se encuentra en el piso en el lugar Loc •unlocked(Door) es verdadero si la puerta Door está sin llave. •auto(Ag) es verdadero si el agente Ag es autónomo, es una relación estática. •opens(Key, Door) es verdadero si la llave Key abre la puerta Door, es una relación estática. •adjacent(Pos1, Pos2) es verdadero si Pos1 está al lado de la Pos2 y el robot puede moverse de una a otra en un paso. •between(Door, Pos1, Pos2) es verdadero si Door está entre 42 Pos1 y Pos2. 41 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 7 Conceptos de Inteligencia Artificial Sistemas Inteligentes Artificiales Dr. Alejandro J. García Representación en STRIPS 26 de octubre de 2016 Representación en STRIPS Relaciones Derivadas Estado inicial sitting_at(rob, o109) sitting_at(parcel, storage) sitting_at(k1, mail) between(door1, o103, lab2) opens(k1, door1) auto(rob) 43 Representación en STRIPS adjacent(o109, o103) adjacent(o103, o109) adjacent(storage, o109) adjacent(o109, storage) adjacent(o109, o111) adjacent(o111, o109) adjacent(o103, mail) adjacent(mail, o103) adjacent(lab2, o109) adjacent(P1, P2) between(Door, P1, P2) unlocked(Door). at(Obj, Pos) sitting_at(Obj, Pos). at(Obj, Pos) carrying(Ag, Obj) at(Ag, Pos). 44 Representación en STRIPS Operadores Operadores •move(Ag, From, To) el agente Ag se mueve desde From a la posición adyacente To. El agente debe estar en From. •pickup(Ag, Obj) el agente Ag levanta el objeto Obj. El agente debe estar en la posición donde el objeto Obj está. •putdown(Ag, Obj) el agente Ag deja el objeto Obj en el piso. El agente debe estar sosteniendo el objeto Obj. •unlock(Ag, Door) el agente Ag abre la puerta Door. El agente debe estar afuera de la puerta y debe estar llevando la llave. 45 pickup(Ag, Obj) Pre:[ auto(Ag), Ag Obj, at(Ag, Pos), sitting_at(Obj, Pos) ] Del-list [ sitting_at(Obj, Pos) ] Add-list [ carrying(Ag, Obj) ] 46 Fin de la presentación Representación en STRIPS M U C H A S putdown(Ag, Obj) Pre: [ auto(Ag), at(Ag, Pos), carrying(Ag, Obj) ] Del-list: [carrying(Ag, Obj)] Add-list: [sitting_at(Obj, Pos)] unlock(Ag, Door) Pre: [ auto (Ag), at(Ag, PosAg), at(Door, PosDoor), adjacent(PosAg, PosDoor), carrying(Ag, Key), opens(Key, Door) ] Delete list [ ] Add list [unlocked(Door)] move(Ag, Pos1, Pos2) Pre:[ auto(Ag), adjacent(Pos1, Pos2), sitting_at(Ag, Pos1) ] Del- list [ sitting_at(Ag, Pos1) ] Add-list [ sitting_at(Ag, Pos2) ] 47 Conceptos de Inteligencia Artificial G R A C I A S Dr. Alejandro J. García 48 El uso total o parcial de este material está permitido siempre que se haga mención explícita de su fuente: “Conceptos de Inteligencia Artificial. Notas de Clase”. Alejandro J. García. Universidad Nacional del Sur. (c) 26/10/2016. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 8