4.8 Espacios de Búsqueda. Cuando se resuelve un problema, se busca la mejor solución entre un conjunto de posibles soluciones. Al conjunto de todas las posibles soluciones a un problema concreto se llama espacio de búsqueda. Cada punto en el espacio de búsqueda representa una posible solución. Cada posible solución se le puede asociar un ftness o un valor que indicará cómo que tan buena es la solución para el problema. problema. Un algoritmo genético (A! devolverá la mejor solución de entre todas las posibles que tenga en un momento dado "arece que buscar una solución se reduce a buscar un valor e#tremo (m$nimo o má#imo! en el espacio de búsqueda. A veces el espacio de búsqueda puede ser bien defnido, pero en la ma%or$a de las ocasiones sólo se conocen algunos puntos en el espacio de búsqueda. Cuando se usa un A las posibles soluciones generan otras a medida que el genético evoluciona. &a resolución de un problema puede e#presarse como la búsqueda del e#tremo de una 'unción .Aqu$ resolvemos ese problema, este es un algoritmo genético que calcula el má#imo de una 'unción. l problema radica en que la búsqueda puede ser mu% compleja por diversas ra)ones, por ejemplo no saber dónde buscar una solución o dónde empe)ar a buscarla. #isten muc*os métodos que se usan para buscar una solución válida, pero no necesariamente obtienen la mejor solución. Algunos de estos métodos son los algoritmos de escalada, bac+trac+ing o vuelta atrás, búsqueda a ciegas % los algoritmos genéticos. &as soluciones que encuentran estos tipos de búsqueda suelen ser buenas soluciones, pero no siempre encuentran la óptima. n optimi)ación, espacio de búsqueda se refere al dominio de la 'unción a ser optimi)ada. n el caso de los algoritmos de búsqueda, que manejan espacios discretos, se refere al conjunto de todas las posibles soluciones candidatas a un problema. ijada una regla de cálculo, los distintos cálculos posibles para un programa constituido por una cuestión - % una base de conocimiento " se pueden representar gráfcamente mediante un árbol de búsqueda caracteri)ado por su ra$), etiquetada con la cuestión - o primer resolvente/ % los demás nodos etiquetados con los resolventes producidos por pasos de resolución/ resolución/ además para cada nodo etiquetado con un resolvente no vac$o, si A es la 'órmula que selecciona la regla de
cálculo, e#istirán tantos descendientes como cláusulas con cabecera coincidente con A e#istan en el procedimiento de defnición del correspondiente predicado, los nodos etiquetados con resolventes vac$os no tienen descendientes. &as distintas reglas de búsqueda representan distintas 'ormas de recorrido de los árboles de búsqueda.
4.9 Programación lógica con Números, Listas y Aroles. Números Naturales. Una posible codifcación de números naturales en "rolog se basa en la siguiente defnición •
•
l cero es un número natural 0i ! es un número natural, entonces s"!# (siguiente de !! también es un número natural
&as reglas anteriores se codifcar$an en "rolog como natural(1!. :asuno(3, ;! 4 ; is 3<=. 2atural(s(3!!4natural(3! 3masuno (3, ;! 4 ; > 3<=. 6bservaremos el siguiente n "56&6 los objetos comportamiento numéricos pueden ?4 masuno (,@!. ;es corresponder a tipos integer o 7oat de C. "ara ?4 #masuno(,@! reali)ar operaciones numéricas, se tiene el predicado is, que se comporta como una asignación en un lenguaje imperativo. As$, el objetivo 3 is 8e#presión9 será verdadero cuando 3 unifque con el resultado numérico de evaluar 8e#presión9.
E$E%PL&' si defnimos
Listas y (roles. &a lista es una estructura mu% común de datos en programación no numérica. &a lista esta ordenada como secuencia de elementos que pueden tener cualquier e#tensión. l ordenamiento signifca que el orden de los elementos se presenta en una secuencia de materias. &os elementos de una lista pueden ser, constantes, variables, estructuras, e inclusive otras listas. &as listas pueden representar cualquier tipo de estructuras que puedan ser requeridas en computación simbólica. &as listas pueden representar, árboles, gramáticas, ciudades, mapas, programas de computación, % entidades matemáticas como gra'os, 'ormulas % 'unciones. &as listas pueden ser representadas como un tipo especial de árbol =. Una lista puede ser una lista vac$a, % no tiene elementos. B. "uede ser una estructura que tiene dos componentes, cabe)a % cola. l fnal de una lista es comúnmente representada como una cola que es el conjunto de la lista vac$a. &a lista vac$a es escrita como D. &a cabe)a % cola de una lista son los componentes de un 'unctor denominado E.F As$ la lista consistente de un elemento EaF es .(a,D!, % su árbol seria el siguiente
Asimismo la lista compuesta por los átomos a,b % c puede ser escrita (a,.(b,.(c,D!!!, % grafcado como se muestra en la siguiente fgura, donde
el 'unctor punto, se presenta de manera que puede ser defnido como un operador, si es permisible escribir dos listas como a .D a.(b.(c.D!!!.a.b.c.D el punto asociativo *acia la derec*a. &as listas están ordenadas como una secuencia ordenada, as$ la lista a. b es di'erente de la lista b .a