Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPaula María Concepción Alvarado Araya Modificado hace 6 años
1
Inteligencia artificial Y SISTEMAS BASADOS EN CONOCIMIENTO
Por: Msc. Mauricio tarazona
2
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. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
3
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: Objetivos o metas Operaciones 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. 27/11/2018
4
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. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
5
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 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
6
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: Un algoritmo es óptimo cuando encuentre la mejor solución entre todas las posibles. 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. El tiempo que tome para resolver el problema. El consumo de memoria de la solución. El consumo de procesamiento de maquina. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
7
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 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
8
2.3. Estrategias de Búsqueda [1]
Recorrido en amplitud. Recorrido en profundidad. Búsqueda ciega o fuerza bruta Gradiente Primero el mejor. Búsqueda avara. Algoritmo A*. Algoritmos Genéticos. Búsqueda heurística 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
9
2.3. Estrategias de Búsqueda [2]
Indica el tiempo requerido para aplicar un operador a un estado en el proceso de búsqueda. (por defecto es «1») Costo de un arco (CA) Es el tiempo que se toma en alcanzar un nodo a lo largo del mejor camino encontrado hasta un momento dado. Costo de un nodo (CN) Numero medio de descendientes de un nodo o numero medio de operadores que pueden aplicarse a un estado. Factor de ramificación (FR) Numero de nodos generados en un camino, es decir, el numero de operadores aplicados en dicho camino. Longitud de una trayectoria (LT) Longitud del camino mas corto desde el estado inicial hasta un nodo determinado. La profundidad de un nodo meta es cero. Profundidad (P) 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
10
2.3. Estrategias de Búsqueda [3]
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. Recomendaciones para una búsqueda eficiente 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
11
2.3. Estrategias de Búsqueda [4]
27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
12
Clase 2: Resolución de Problemas mediante Búsqueda
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. 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. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
13
Clase 2: Resolución de Problemas mediante Búsqueda
2.4. Búsqueda a Ciegas [2] 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 D E Quitar A + Hijos A F Quitar B + Hijos B G J Quitar C + Hijos C K L Quitar D + Hijos D Quitar E Quitar F H A B C D E F G 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
14
Clase 2: Resolución de Problemas mediante Búsqueda
2.4. Búsqueda a Ciegas [3] 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 A B C Quitar H + Hijos H D E Quitar A + Hijos A K L Quitar D + Hijos D Quitar K + sin hijos Quitar L + sin hijos Quitar E + sin hijos F Quitar B + Hijos B Quitar F + sin hijos G J Quitar C + Hijos de C H A D K L E B F C G 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
15
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. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
16
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. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
17
2.5. Búsqueda heurística [3]
Ascensión a la Cima o Gradiente Algoritmo Seleccione aleatoriamente un nodo, n0, como nodo actual n. 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). Si vb < f(n), haga n = nb, y vaya al paso 2. En cualquier otro caso, termine el proceso y devuelva n como el mejor nodo encontrado. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
18
2.5. Búsqueda heurística [4]
Ascensión a la Cima o Gradiente ESTADO DE LA COLA ITERACION H(20) n = H A(14),C(16) n = A D(9),E(5) n = E (cima) G(12) Aleatorio [ n = G ] B(3) n = B F(0) N = F (solución) 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
19
2.5. Búsqueda heurística [5]
Primero el mejor Algoritmo El estado inicial esta formado solamente por el nodo inicial. Lazo Extraer el nodo inicial. Se expande el nodo y se añaden todos sus sucesores a la cola. Guardar el recorrido. Se evalúa cada uno de los nodos sucesores. Si algún sucesor es la meta, salir. Se extrae el nodo con menor costo y se añaden sus sucesores. Guardar el recorrido. Volver al paso c. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
20
2.5. Búsqueda heurística [6]
Primero el mejor ESTADO DE LA COLA Extraer H(20) A(14),C(16) H D(9),E(5);C(16) A D(9);C(16) K(3);L(6);C(16) E;D L(6);C(16) K F(0);C(16) F(0) L 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
21
2.5. Búsqueda heurística [7]
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í. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
22
2.5. Búsqueda heurística [8]
Algoritmo A* 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. Otra ventaja es que expande el menor número de nodos, sin embargo, puede demorarse en escoger los diferentes caminos de búsqueda. 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). A*, calcula la mejor ruta sumando estas dos: El costo estimado para ir de n al estado de meta h(n). 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. f(n) = g(n) + h(n) 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
23
2.5. Búsqueda heurística [9]
ESTADO DE LA COLA Extraer H(20+0) A(14+1),C(16+1) H D(9+2),E(5+2);C(17) A D(11);C(17) K(3+3);L(6+3); C(17) E;D L(9);C(17) K F(0);C(16) F(0) L 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
24
2.5. Búsqueda heurística [9]
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ético-molecular. Básicamente son un método de búsqueda y optimización. 27/11/2018 Clase 2: Resolución de Problemas mediante Búsqueda
25
2.5. Búsqueda heurística [9]
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
26
2.5. Búsqueda heurística [9]
Algoritmos Genéticos
27
2.5. Búsqueda heurística [9]
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.
28
Búsqueda en un enfoque evolutivo
Población 3ª Generación tras mutaciones y cruces Población 2ª Generación tras mutaciones y cruces Individuos seleccionados para cruce y mutación Individuos seleccionados para cruce y mutación Población Inicial (1ª Generación) Población 1ª Generación tras mutaciones y cruces
29
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 Fin
30
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Maximización de una función en 3D.
31
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Travelling Salesman Problem:
32
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Problema de estacionamiento de un camión:
33
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Caminantes virtuales:
34
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Criaturas virtuales – Karl Sims SIMS.CREATURES_DEMO Otros SeekEnemyfull.avi
35
2.5. Búsqueda heurística [9]
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
36
2.5. Búsqueda heurística [9]
Algoritmos Genéticos Note que la selección puede aplicarse para la reproducción o el reemplazo. t := 0; inicializar P(t); 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;
37
Ejemplo: maximizar la función f(x) = x2 sobre los enteros [0..31]
Valor de aptitud del individuo en la resolución del problema Generación 1 Selección Proporcional al valor del fitness Cromosoma (representación del genotipo) Fenotipo (característica externa observable) ( 169 / 1170 ) * 100 1 2 3 4
38
Ejemplo: maximizar la función f(x) = x2 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.
39
Ejemplo: maximizar la función f(x) = x2 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
40
Ejemplo: maximizar la función f(x) = x2 sobre los enteros [0..31]
Generación 2 Repetir hasta que se cumpla la condición de finalización
41
Ejercicio 1: Hallar el mínimo de la función f(x) = x2 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.
42
Ejercicio 1: Hallar el mínimo de la función f(x) = x2 en los reales [-10,50]
lchrom = % long. del cromosoma popsize = % tamaño de la poblacion pcross = % probabilidad de crossover pmutation = % probabilidad de mutacion maxgen = % máx. cant.de generaciones cmax = 2500; MinInterv = -10 MaxInterv = 50
43
Ejercicio 1: Hallar el mínimo de la función f(x) = x2 en los reales [-10,50]
% Visualizar la función FUN1 en el intervalo % indicado hold off Intervalo = MinInterv:0.1:MaxInterv; y = FUN1(Intervalo); plot(Intervalo,y); hold on
44
Ejercicio 1: Hallar el mínimo de la función f(x) = x2 en los reales [-10,50]
%Construcción y visualización de la poblacion inicial Pop = round(rand(lchrom,popsize)); Fenotipos = CromToNro(Pop, MinInterv, MaxInterv); Salida = FUN1(Fenotipos); Fitness = abs(cmax * ones(1, popsize) - Salida); plot(Fenotipos,Salida,'*'); Cada columna contiene un cromosoma representando un elemento de la población Vector fila conteniendo el valor real correspondiente a cada cromosoma. Vectores fila con las evaluaciones de los fenotipos y sus fitness correspondientes.
45
FUN1 function y = FUN1(x) %FUN1(x) = x * x y = x .* x;
46
CromToNro Convierte un nro.binario en un real entre –10 y 50
Límites del intervalo Valor máximo para un cromosoma de 5 bits Pop = Fenotipos = = =13 /(25-1) * (50 – (-10)) /31 * 60 = 5 = Long. del cromosoma Valor entre 0 y 1
47
CromToNro function y = CromToNro(x, MinInterv,MaxInterv)
% x es una matriz de 20x50 % y es un vector con el valor de los fenotipos [long, col] = size(x); ValorMax = max.valor alcanzable por la representación; y = [ ]; for i = 1:1:col, nro = valor decimal de la columna i y(i) = MinInterv + (nro/ValorMax) * (MaxInterv - MinInterv); end
48
CromToNro function y = CromToNro(x, MinInterv,MaxInterv)
% x es una matriz de 20x50 % y es un vector con el valor de los fenotipos [long, col] = size(x); ValorMax = 2^long - 1; y = [ ]; for i = 1:1:col, nro = bi2de(x(:,i)' , 'left-msb' ); y(i) = MinInterv + (nro/ValorMax) * (MaxInterv - MinInterv); end
49
Algoritmo Genético Básico
while (gen <= maxgen), gen = gen + 1; NewPop = generar(Pop, Fitness, pcross, pmutation); Fenotipos = CromToNro(NewPop, MinInterv, MaxInterv); Salida = FUN1(Fenotipos); Fitness = abs(cmax * ones(1,popsize) - Salida); % Redibujar Pop = NewPop; end hold off plot(Intervalo,y); hold on plot(Fenotipos,Salida,'*'); pause(0.5)
50
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, p1 = select(Fitness); % seleccionar la posición de p2 = select(Fitness); % los dos padres % generar los dos hijos [h1, h2] = cruzar_y_mutar(Pop,p1,p2,pcross,pmutation); y = [y, h1, h2]; end
51
Ejemplo de Selección Proporcional
Fitness = [ ] Suma de los fitness = Generar un nro. random entre 0 y Ej : 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.
52
Selección proporcional
function y = select(Fitness) cuantos = length(Fitness); sumFitness = sum(Fitness); aleatorio = rand * sumFitness; % 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
53
Cruzar_y_mutar Generar un nro. random entre 0 y 1.
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.
54
Cruzar_y_mutar Para cada bit de cada hijo MUTACION
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
55
Cruzar_y_mutar function [h1, h2] = cruzar_y_mutar(Pop,p1,p2,
pcross,pmutation) [long, col] = size(Pop); %ver si corresponde aplicar crossover hayCrossover = ((pcross==1) | (rand<=pcross)); if hayCrossover, posicion = round(rand * (long-2)) + 1; else posicion = long; end for i=1:1:posicion, h1(i,1) = mutar(Pop(i,p1),pmutation); h2(i,1) = mutar(Pop(i,p2),pmutation);
56
Cruzar_y_mutar (cont)
if hayCrossover, for i=posicion+1:1:long, h1(i,1) = mutar(Pop(i,p2),pmutation); h2(i,1) = mutar(Pop(i,p1),pmutation); end
57
Cruzar_y_mutar (cont)
function NewAlelo = mutar( Alelo, probabilidad) %muta el ALELO con la probabilidad inidicada if (probabilidad==1) | (rand<=probabilidad), % hay mutacion NewAlelo = ~Alelo; else NewAlelo = Alelo; end
58
Ejercicio 2: Hallar el mínimo de la función f(x) = -x. sin(10.
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.