INTELIGENCIA ARTIFICIAL Y SISTEMAS BASADOS EN CONOCIMIENTO POR
INTELIGENCIA ARTIFICIAL Y SISTEMAS BASADOS EN CONOCIMIENTO POR: MSC. MAURICIO TARAZONA
2. Resolución de Problemas mediante Búsquedas • La IA ha tenido como objetivo el uso de métodos de búsqueda para la resolución de problemas. • La solución de problemas mediante búsquedas fue una de las primera aplicaciones reales a problemas reales. • Se evidenció que en algunos problemas se solucionan mas rápidamente por procesos de IA que soluciones con métodos matemáticos. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda [2] 1/1 [2/25]
2. 1. Definición del problema • El planteamiento de un problema a ser resuelto por medio de la inteligencia artificial tiene básicamente tres aspectos: 1. Objetivos o metas 2. Operaciones 3. Secuencia de acciones ( Procedimiento de selección de la mejor solución). • Debemos recordar que el objetivo principal en la resolución de problemas mediante IA es aprender a solucionar. 07/06/2021 3
2. 2. El espacio de estados [1] • Es una representación mental del problema, puede ser un mapa grafico, un tablero, etc. • Para la resolución computacional es necesario definir la estructura de datos en la cual vamos a resolver el problema. • Se denomina estado inicial a la representación de donde parte el problema. • Aplicando cualquier operador valido definido por el usuario tendremos el siguiente estado. • El conjunto del espacio inicial y sus operadores es lo que conocemos como El espacio de estados. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 4
2. 2. El espacio de estados [2] • Se denomina traza a la secuencia de estados que resultan de aplicar los operadores validos al estado inicial. • Se debe tener definida una estrategia de control que será la encargada de afinar el algoritmo de búsqueda basada en conocimiento. • El interés del desarrollo de soluciones mediante búsqueda es optimizar el objetivo final. Esto puede ser, minimizar el tiempo de búsqueda, minimizar el costo de la solución, en otros términos, maximizar un beneficio. Para el caso concreto de nuestro curso, este objetivo lo denominaremos como g 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 5
2. 2. El espacio de estados [3] • Algunos aspectos a tener en cuenta en la solución por medio de búsqueda son los siguientes: 1. Un algoritmo es óptimo cuando encuentre la mejor solución entre todas las posibles. 2. Una estrategia es completa cuando garantice que encontrará una solución válida al problema. • La eficiencia de un algoritmo normalmente lo estamos midiendo desde tres perspectivas. 1. El tiempo que tome para resolver el problema. 2. El consumo de memoria de la solución. 3. El consumo de procesamiento de maquina. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 6
2. 2. El espacio de estados [4] • La representación gráfica mas común para los espacios de estado son los grafos. Estado Inicial conector metas 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 7
2. 3. Estrategias de Búsqueda [1] Búsqueda ciega o fuerza bruta Búsqueda heurística 07/06/2021 • Recorrido en amplitud. • Recorrido en profundidad. • • • Gradiente Primero el mejor. Búsqueda avara. Algoritmo A*. Algoritmos Genéticos. Clase 2: Resolución de Problemas mediante Búsqueda 8
2. 3. Estrategias de Búsqueda [2] Costo de un arco (CA) • Indica el tiempo requerido para aplicar un operador a un estado en el proceso de búsqueda. (por defecto es « 1» ) Costo de un nodo (CN) • Es el tiempo que se toma en alcanzar un nodo a lo largo del mejor camino encontrado hasta un momento dado. Factor de ramificación (FR) • Numero medio de descendientes de un nodo o numero medio de operadores que pueden aplicarse a un estado. Longitud de una trayectoria (LT) • Numero de nodos generados en un camino, es decir, el numero de operadores aplicados en dicho camino. Profundidad (P) • Longitud del camino mas corto desde el estado inicial hasta un nodo determinado. La profundidad de un nodo meta es cero. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 9
Recomendaciones para una búsqueda eficiente 2. 3. Estrategias de Búsqueda [3] 07/06/2021 • Evitar las rutas con ciclos. Estas rutas hacen que se vuelvan al mismo estado. • Nunca retroceder al estado anterior. Esto hace pensar en que los operadores deben tener presente la no ciclicidad. • Almacenar todos los estados de los nodos hasta un momento dado. Esto con el objetivo de no tener que expandir estados que ya han sido expandidos. Clase 2: Resolución de Problemas mediante Búsqueda 10
2. 3. Estrategias de Búsqueda [4] 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 11
2. 4. Búsqueda a Ciegas [1] • Se denomina búsqueda a ciegas al procedimiento de encontrar un objetivo sin información preliminar del problema ni de recorridos de solución. • 2. 4. 1. Recorrido en Amplitud Ø Denominado también recorrido en anchura prioritaria. Este algoritmo busca de manera sistemática el nodo solución recorriendo el grafo completo. Se debe recorrer de izquierda a derecha el grafo hasta alcanzar el objetivo. Ø Este procedimiento es el mas ineficiente de los métodos de búsqueda, pero garantiza encontrar una solución si es que existe. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 12
2. 4. Búsqueda a Ciegas [2] • 2. 4. 1. Recorrido en Amplitud Ø Veamos un ejemplo de como se desarrollaría una búsqueda a ciegas para un caso real. Ø El caso especifico del que se trata a continuación es la búsqueda de una ciudad en un grafo de ciudades. ESTADO DE LA COLA ITERACION H A B C Quitar H + Hijos H B C D E Quitar A + Hijos A C D E F Quitar B + Hijos B D E F G J K L H A 07/06/2021 B C D E F G Quitar C + Hijos C Quitar D + Hijos D F G J K L Quitar E G J K L Quitar F Clase 2: Resolución de Problemas mediante Búsqueda 13
2. 4. Búsqueda a Ciegas [3] • 2. 4. 2. Recorrido en Profundidad Ø Por medio de este algoritmo, hacemos también una búsqueda exhaustiva pero en lugar de recorrer revisando cada nivel, lo hacemos por niveles, llegando a los niveles finales. ESTADO DE LA COLA ITERACION H Quitar H + Hijos H A B C Quitar A + Hijos A D E B C Quitar D + Hijos D K L E B C Quitar K + sin hijos E B C Quitar L + sin hijos B C Quitar E + sin hijos Quitar B + Hijos B F C Quitar F + sin hijos C H A D K L E B F C G 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda G J Quitar C + Hijos de C 14
2. 5. Búsqueda heurística [1] • Se denomina búsqueda heurística a los procedimientos y algoritmos inteligentes que toman decisiones basados en información suministrada por el problema. • Técnica que mejora la eficiencia de un proceso de búsqueda, posiblemente sacrificando completes, pero ahorrando tiempo de búsqueda. • Ayuda a evitar una explosión combinatoria. • Rara vez se necesita obtener la solución óptima (lugar de estacionamiento). • Aunque las aproximaciones obtenidas por una heurística pueden no ser buenas en el peor caso, éste rara vez se presenta en el mundo real. • Comprender por qué funciona una heurística, o por qué no, ayuda a comprender el problema. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 15
2. 5. Búsqueda heurística [2] • Se utilizan básicamente en dos situaciones: – Un problema que no tiene soluciones conocidas. – Un problema tiene una solución precisa pero tiene un costo computacional prohibitivo. • NO es infalible. • Consisten en dos partes: – La medida heurística. – Un algoritmo que usa la medida para buscar en el espacio de estados. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 16
2. 5. Búsqueda heurística [3] • 2. 5. 1. Ascensión a la Cima o Gradiente Algoritmo 1. Seleccione aleatoriamente un nodo, n 0, como nodo actual n. 2. Genere los sucesores de n (utilizando los operadores definidos para el problema) y seleccione el sucesor, nb, para el que la función f(nb) = vb tenga el valor mínimo (en caso de que existan más de un sucesor con el valor mínimo, elija uno aleatoriamente). 3. Si vb < f(n), haga n = nb, y vaya al paso 2. 4. En cualquier otro caso, termine el proceso y devuelva n como el mejor nodo encontrado. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 17
2. 5. Búsqueda heurística [4] • 2. 5. 1. Ascensión a la Cima o Gradiente ESTADO DE LA COLA ITERACION n=H H(20) n=A A(14), C(16) n = E (cima) D(9), E(5) Aleatorio [ n = G ] G(12) n=B B(3) F(0) 07/06/2021 N = F (solución) Clase 2: Resolución de Problemas mediante Búsqueda 18
2. 5. Búsqueda heurística [5] • 2. 5. 2. Primero el mejor Algoritmo 1. El estado inicial esta formado solamente por el nodo inicial. 2. Lazo a. Extraer el nodo inicial. b. Se expande el nodo y se añaden todos sucesores a la cola. Guardar el recorrido. c. Se evalúa cada uno de los nodos sucesores. Si algún sucesor es la meta, salir. d. Se extrae el nodo con menor costo y se añaden sus sucesores. Guardar el recorrido. e. Volver al paso c. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 19
2. 5. Búsqueda heurística [6] • 2. 5. 2. Primero el mejor ESTADO DE LA COLA Extraer H(20) H A(14), C(16) A D(9), E(5); C(16) D(9); C(16) K(3); L(6); C(16) E; D L(6); C(16) K F(0); C(16) 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda F(0) L 20
2. 5. Búsqueda heurística [7] • 2. 5. 3. Búsqueda Avara Ø Denominada GREEDY SEARCH usa también el algoritmo de «Primero el mejor» , pero mejora su desempeño minimizando el costo total para reducir el tiempo de llegada a la meta. Ø Depende enormemente de la función de heurística h, que lo se calcula para cada nodo estimando el valor del camino mas corto desde el nodo al nodo meta. Ø Generalmente es un método eficiente ya que suele encontrar la solución con rapidez. El problema con este método es que se guía por la solución mas «barata» en términos de h sin tener un sentido global del problema. Por esta razón puede quedarse en loops que al final no encuentra solución a menos que se le dé orden especifica de conteo de pasos conocidos para salir de allí. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 21
2. 5. Búsqueda heurística [8] • 2. 5. 4. Algoritmo A* 1. Es uno de los mas conocidos y usados en la IA. Tiene la ventaja de usar el método de búsqueda Avara junto con el método de costo uniforme. Esto hace que se encuentre soluciones rápidamente y que no caiga en mínimos locales. 2. Otra ventaja es que expande el menor número de nodos, sin embargo, puede demorarse en escoger los diferentes caminos de búsqueda. 3. El método de búsqueda avara que se ha descrito con anterioridad busca optimizar el costo h(n). El método denominado de costo uniforme busca los caminos de menor longitud g(n). 4. A*, calcula la mejor ruta sumando estas dos: 1. El costo estimado para ir de n al estado de meta h(n). 2. El costo que ha sido necesario para llegar a ese nodo desde la raiz o nodo inicial g(n). Este último dato no es calculado dado que se puede conocer con exactitud. 3. f(n) = g(n) + h(n) 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 22
2. 5. Búsqueda heurística [9] • 2. 5. 4. A* ESTADO DE LA COLA Extraer H(20+0) H A(14+1), C(16+1) A D(9+2), E(5+2); C(17) D(11); C(17) K(3+3); L(6+3); C(17) E; D L(9); C(17) K F(0); C(16) 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda F(0) L 23
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Fueron creados por John Holland en los años 1970. • Son llamados así porque se inspiran en la evolución biológica y su base genéticomolecular. • Básicamente son un método de búsqueda y optimización. 07/06/2021 Clase 2: Resolución de Problemas mediante Búsqueda 24
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • ¿Cómo funcionan? – Utilizan un proceso determinístico para alcanzar la solución • Comienzan en un punto aleatorio. • Utilizan una regla de transición especificada previamente para indicar la dirección de búsqueda 25
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos 26
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • ¿Cómo funcionan? – Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones semejantes a las que actúan en la evolución biológica. • Mutaciones y recombinaciones genéticas. • Selección de acuerdo con algún criterio (valor de aptitud o fitness), en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. 27
Búsqueda en un enfoque evolutivo Población Individuos Inicial 1ª 3ª 2ª Generación tras seleccionados para (1ª Generación) mutaciones y cruces cruce y mutación 28
Algoritmo Genético Básico Iniciar población Evaluar población Mientras no se termine Seleccionar pares de padres Generar una nueva población a partir de los padres Evaluar población Fin 29
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Maximización de una función en 3 D. http: //www. oursland. net/projects/Population. Experiment/ 30
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Travelling Salesman Problem: http: //www. eecs. wsu. edu/~cook/ai/lectures/applets/gatsp/TSP. html 31
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Problema de estacionamiento de un camión: http: //www. eecs. wsu. edu/~cook/ai/lectures/applets/gatd. html 32
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Caminantes virtuales: http: //www. eecs. wsu. edu/~cook/ai/lectures/applets/gaanim/environ. htm 33
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Criaturas virtuales – Karl Sims http: //www. genarts. com/karl/evolved-virtual-creatures. html SIMS. CREATURES_DEMO p Otros Seek. Enemyfull. avi 34
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos • Su aplicación implica determinar – Representación genética de las soluciones – Creación de la población inicial – Función de aptitud o fitness – Operadores genéticos de cruce y mutación – Valores de los parámetros 35
2. 5. Búsqueda heurística [9] 2. 5. 5. Algoritmos Genéticos t : = 0; inicializar P(t); Note que la selección puede aplicarse para la reproducción o el reemplazo. evaluar los individuos de P(t); mientras( la condición de terminación no se satisfaga ) t : = t + 1; select_repro C(t) desde P(t-1); recombinar y mutar los individuos en C(t) formando C’(t); evaluar los individuos en C’(t); select_replace P(t) desde C’(t) y P(t-1); fin mientras; 36
Ejemplo: maximizar la función f(x) = x 2 sobre los enteros [0. . 31] • Generación 1 Valor de aptitud del individuo en la Cromosoma Fenotiporesolución (característica ((representación 169 / 1170 externa ) * del 100 genotipo) observable) del problema 1 • Selección Proporcional al valor del fitness 4 3 2 37
Ejemplo: maximizar la función f(x) = x 2 sobre los enteros [0. . 31] • Obtención de la próxima generación – Accionar la ruleta dos veces para elegir dos individuos. – Obtener dos hijos del par de padres seleccionados. – Repetir el proceso hasta obtener tantos hijos como padres y reemplazar la vieja población por la nueva. 38
Ejemplo: maximizar la función f(x) = x 2 sobre los enteros [0. . 31] • Supóngase que al accionar 4 veces la ruleta se obtienen los siguientes resultados en el orden indicado: 2, 1, 4, 2. Se aplicará crossover con probabilidad 0. 8 • Note que existe una probabilidad de 0. 2 de que las parejas pasen intactas. • Aplicar mutación con probabilidad baja. Ej: 0. 001 39
Ejemplo: maximizar la función f(x) = x 2 sobre los enteros [0. . 31] • Generación 2 • Repetir hasta que se cumpla la condición de finalización 40
Ejercicio 1: Hallar el mínimo de la función f(x) = x 2 en los reales [-10, 50] • Long. cromosoma = 20 • Prob. Crossover = 0. 65 • Prob. Mutación = 0. 001 • c_max=2500 • Fitness(x) = c_max - f(x) • Reemplazo total de la población de padres por la de hijos. • Probar con otras estrategias de reemplazo. 41
Ejercicio 1: Hallar el mínimo de la función f(x) = x 2 en los reales [-10, 50] lchrom = 20 % long. del cromosoma popsize = 50 % tamaño de la poblacion pcross = 0. 65 % probabilidad de crossover pmutation = 0. 001 % probabilidad de mutacion maxgen = 20 % máx. cant. de generaciones cmax = 2500; Min. Interv = -10 Max. Interv = 50 42
Ejercicio 1: Hallar el mínimo de la función f(x) = x 2 en los reales [-10, 50] % Visualizar la función FUN 1 en el intervalo % indicado hold off Intervalo = Min. Interv: 0. 1: Max. Interv; y = FUN 1(Intervalo); plot(Intervalo, y); hold on 43
Ejercicio 1: Hallar el mínimo de la función f(x) = x 2 en los reales [-10, 50] %Construcción y visualización de la poblacion inicial Pop = round(rand(lchrom, popsize)); Fenotipos = Crom. To. Nro(Pop, Min. Interv, Max. Interv); Salida = FUN 1(Fenotipos); Fitness = abs(cmax * ones(1, popsize) - Salida); plot(Fenotipos, Salida, '*'); Vector fila conteniendo el cromosoma valor real Cada columna contiene un Vectores fila con las evaluaciones de los correspondiente a cada cromosoma. representando un elemento de la población fenotipos y sus fitness correspondientes. 44
FUN 1 function y = FUN 1(x) %FUN 1(x) = x * x y = x. * x; 45
Crom. To. Nro Convierte un nro. binario en un real entre – 10 y 50 Pop = 1 0 1 Límites del intervalo Valor máximo para un cromosoma de 5 bits 1 0 0 1 1 1 1 0 0 1 1 0 1 = 23+22+1=13 -10 + 13/(25 -1) * (50 – (-10)) -10 + 13/31 * 60 = 15. 1613 Fenotipos = 30. 6452 24. 8387 48. 0645 15. 1613 Valor 5 =entre Long. 0 del y 1 cromosoma 46
Crom. To. Nro function y = Crom. To. Nro(x, Min. Interv, Max. Interv) % x es una matriz de 20 x 50 % y es un vector con el valor de los fenotipos [long, col] = size(x); Valor. Max = max. valor alcanzable por la representación; y = [ ]; for i = 1: 1: col, nro = valor decimal de la columna i y(i) = Min. Interv + (nro/Valor. Max) * (Max. Interv - Min. Interv); end 47
Crom. To. Nro function y = Crom. To. Nro(x, Min. Interv, Max. Interv) % x es una matriz de 20 x 50 % y es un vector con el valor de los fenotipos [long, col] = size(x); Valor. Max = 2^long - 1; y = [ ]; for i = 1: 1: col, nro = bi 2 de(x(: , i)' , 'left-msb' ); y(i) = Min. Interv + (nro/Valor. Max) * (Max. Interv - Min. Interv); end 48
Algoritmo Genético Básico gen = 0; while (gen <= maxgen), gen = gen + 1; New. Pop = generar(Pop, Fitness, pcross, pmutation); Fenotipos = Crom. To. Nro(New. Pop, Min. Interv, Max. Interv); Salida = FUN 1(Fenotipos); Fitness = abs(cmax * ones(1, popsize) - Salida); % Redibujar hold off Pop = New. Pop; plot(Intervalo, y); end hold on plot(Fenotipos, Salida, '*'); pause(0. 5) 49
Generación de la nueva población function y = generar(Pop, Fitness, pcross, pmutation) [long, col] = size(Pop); col = round(col / 2); % por c/iteracion se generan dos hijos y = []; for i=1: 1: col, p 1 = select(Fitness); % seleccionar la posición de p 2 = select(Fitness); % los dos padres % generar los dos hijos [h 1, h 2] = cruzar_y_mutar(Pop, p 1, p 2, pcross, pmutation); y = [y, h 1, h 2]; end 50
Ejemplo de Selección Proporcional Fitness = [ 1560. 9 1883. 0 189. 8 2270. 1] Suma de los fitness = 5903. 9 • Generar un nro. random entre 0 y 5903. 9 Ej : 341. 7816 • Retornar el índice del elemento del vector de manera que la suma de sus valores desde el índice 1 hasta él (inclusive) supere el valor random. En este caso retornaría 1. 51
Selección proporcional function y = select(Fitness) cuantos = length(Fitness); sum. Fitness = sum(Fitness); aleatorio = rand * sum. Fitness; % posicion dentro de la ruleta suma = Fitness(1); j = 1; while (suma < aleatorio) & (j<cuantos), j = j + 1; suma = suma + Fitness(j); end y = j; % posición elegida 52
Cruzar_y_mutar • CROSSOVER – Generar un nro. random entre 0 y 1. – Si su valor es <= a la probabilidad de crossover hay cruce • Calcular el pto de crossover mediante un valor random entre 0 y la long. del cromosoma – 1. • Cruzar los padres para formar los dos hijos. – Si no hay crossover, los hijos son copia de los padres. 53
Cruzar_y_mutar • MUTACION – Para cada bit de cada hijo • Generar un número random entre 0 y 1 • Si es <= que la probabilidad de mutación – Cambiar el bit. Si es 0 poner 1 o si es 1 poner 0. • Si no, NO hay mutación. El bit queda igual 54
Cruzar_y_mutar function [h 1, h 2] = cruzar_y_mutar(Pop, p 1, p 2, pcross, pmutation) [long, col] = size(Pop); %ver si corresponde aplicar crossover hay. Crossover = ((pcross==1) | (rand<=pcross)); if hay. Crossover, posicion = round(rand * (long-2)) + 1; else posicion = long; end for i=1: 1: posicion, h 1(i, 1) = mutar(Pop(i, p 1), pmutation); h 2(i, 1) = mutar(Pop(i, p 2), pmutation); end 55
Cruzar_y_mutar (cont) if hay. Crossover, for i=posicion+1: 1: long, h 1(i, 1) = mutar(Pop(i, p 2), pmutation); h 2(i, 1) = mutar(Pop(i, p 1), pmutation); end 56
Cruzar_y_mutar (cont) function New. Alelo = mutar( Alelo, probabilidad) %muta el ALELO con la probabilidad inidicada if (probabilidad==1) | (rand<=probabilidad), % hay mutacion New. Alelo = ~Alelo; else New. Alelo = Alelo; end 57
Ejercicio 2: Hallar el mínimo de la función f(x) = -x. sin(10* *x) + 1 en [-2, 1] • Long. cromosoma = 20 y c_max=3 y= ((-x). * sin(10 * pi * x) )+ ones(1, length(x)) Agregarle ELITISMO 58
- Slides: 58