Tecnicas de Busqueda

30
 TABLA DE CONTENIDO  INTRODUCCIÓN ..................................................................................................................................................... 2 2. TÉCNICA DE BÚSQUEDA ...............................................................................................................................  2 2.2. ESPACIOS DE ESTADOS .........................................................................................................................  5 2.2.1. Determinísticos. .................................................................................................................................. 7 2.2.2. No Determinísticos.............................................................................................................................  9 2.3. Métodos de búsqueda. ...........................................................................................................................  11 2.3.1. Primero en anchura (breadthfirst). ..............................................................................................  13 2.3.2. Primero en profundidad (depthfirst). ...........................................................................................  17 2.3.3. Grafos O. ............................................................................................................................................. 19 2.3.4. Grafos A. ............................................................................................................................................. 22 2.4. Satisfacción de restricciones. ..........................................................................................................  24 2.5.- Teoría de juegos: ...................................................................................................................................... 27 Conclusión .............................................................................................................................................................. 29  

description

INTELIGENCIA ARTIFICIAL

Transcript of Tecnicas de Busqueda

Page 1: Tecnicas de Busqueda

 

TABLA DE CONTENIDO  

INTRODUCCIÓN ..................................................................................................................................................... 2 

2. TÉCNICA DE BÚSQUEDA ............................................................................................................................... 2 

2.2. ESPACIOS DE ESTADOS ......................................................................................................................... 5 

2.2.1. Determinísticos. .................................................................................................................................. 7 

2.2.2. No Determinísticos............................................................................................................................. 9 

2.3. Métodos de búsqueda. ........................................................................................................................... 11 

2.3.1. Primero en anchura (breadthfirst). .............................................................................................. 13 

2.3.2. Primero en profundidad (depthfirst). ........................................................................................... 17 

2.3.3. Grafos O. ............................................................................................................................................. 19 

2.3.4. Grafos A. ............................................................................................................................................. 22 

2.4.  Satisfacción de restricciones. .......................................................................................................... 24 

2.5.- Teoría de juegos: ...................................................................................................................................... 27 

Conclusión .............................................................................................................................................................. 29 

 

Page 2: Tecnicas de Busqueda

  

  2 

INTRODUCCIÓN

En IA los términos resolución de problemas y búsqueda se refieren a un núcleo fundamental de técnicas que se utilizan en dominios como la deducción, elaboración de planes de actuación, razonamientos de sentido común, prueba automática de teoremas, etc. Aplicaciones de estas ideas generales aparecen en la práctica totalidad de los sistemas inteligentes, como por ejemplo en los programas que tratan de entender el lenguaje natural, en los programas que tratan de sintetizar un conjunto de reglas de clasificación en un determinado dominio de actuación, o en los sistemas que realizan inferencias a partir de un conjunto de reglas. En esta unidad se tratará temas relacionados con la búsqueda en el espacio de estados (que es como el laberinto de posibilidades). En algunos tipos de problemas lo importante es encontrar una solución, aunque esta no sea la mejor debe ser una solución aceptable, en otros casos es necesario encontrar el camino que nos lleva a esa solución. De manera general, cualquiera de las estrategias de búsqueda que se tratan en esta unidad pueden resolver ambos requisitos, sólo se requieren pequeños ajustes en sus métodos generales

2. TÉCNICA DE BÚSQUEDA

La resolución de problemas es fundamental para la mayoría de las aplicaciones de Inteligencia Artificial(IA). De hecho, la capacidad de resolver problemas suele usarse como una medida de la inteligencia tanto para el ser humano como para la computadora. Hay principalmente dos clases de problemas. Una primera clase puede ser resuelta usando algún tipo de procedimiento determinista cuyo éxito esté garantizado. A este procedimiento se le llama de computación. La resolución por computación normalmente sólo se aplica a aquellos tipos de problemas para los que existan tales procedimientos, como en matemáticas. Se puede con frecuencia traducir los métodos usados para resolver estos problemas de manera fácil, a un algoritmo que pueda ser ejecutado por una computadora. No obstante, a pesar de que pocos problemas reales se prestan a soluciones computables, deben ser situados en la

Page 3: Tecnicas de Busqueda

  

  3 

segunda categoría, que consiste en problemas que se resuelven con la búsqueda de una solución. Este es el método de resolución de problemas del que se preocupa la IA.

Figura 1.1: Plano de casa del problema de las llaves perdidas

Por ejemplo, imagine que ha perdido las llaves de su coche. Sabe que están en algún lugar de la casa, cuyo plano está en la figura 1.1 La X indica que usted está en la puerta principal. Al empezar su búsqueda primero comprueba la sala de estar. Luego va por el salón hacia el primer dormitorio, después vuelve al salón y va al segundo dormitorio, y vuele de nuevo al salón para ir al dormitorio principal. Como aún no ha encontrado las llaves, vuelve hacia atrás pasando por la sala de estar hacia la cocina, donde encontrará sus llaves. La figura 1.2 presenta un grafo del camino que se ha seguido. El hecho de que pueda representar la solución a esta clase de problemas en forma de grafos es importante

Page 4: Tecnicas de Busqueda

  

  4 

Figura 1.2: Grafo del camino solución para encontrar las llaves perdidas

porque le ofrece una forma sencilla de observar cómo funcionan las diferentes técnicas de búsqueda. Para entender este tema es necesario tener presente las siguientes definiciones: Un estado es la representación de un problema en un instante dado. Para definir el espacio de estados o espacio de búsqueda (El conjunto de todos los nodos) no es necesario hacer una exhaustiva enumeración de todos los estados válidos, sino que es posible definirlo de manera más general. El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El estado objetivo o estado meta consiste en uno o varios estados finales que se consideran solución aceptable. Las reglas describen las acciones u operadores que posibilitan un pasaje de estados. Podríamos decir que una regla tiene una parte izquierda y una derecha. La parte izquierda determina la aplicabilidad de la regla, es decir, describe los estados a los que puede aplicarse la regla. La parte derecha describe la operación que se lleva a cabo si se aplica la regla(acción). La heurística es la información acerca de la posibilidad de que un nodo específico sea mejor para intentar la próxima elección que cualquier otro nodo. El camino solución es el grafo dirigido de los nodos visitados que nos llevan a la solución.

Page 5: Tecnicas de Busqueda

  

  5 

2.2. ESPACIOS DE ESTADOS  

El espacio de estados (I. O. M) es útil porque permite describir formalmente un problema como un conjunto de transformaciones desde unas situaciones dadas hasta unas situaciones deseadas, a través de un conjunto de operaciones permitidas. Más concreta mente, nos permite contemplar el proceso global de solución de un problema como:

1. la aplicación de un conjunto de técnicas conocidas, cada una de ellas definida como un paso simple en el espacio de estados,

2. Un proceso de búsqueda o estrategia general de exploración del espacio de estados.

3. Espacio de Estados: Formalismo para representar problemas. Abstraer problemas reduciéndolos a un conjunto de estados y operadores.

4. Resolver problema revisando posibles alternativas (¿todas?). analogía con forma de actuar de los humanos

Estado: Representación completa de la situación del mundo/problema en un momento dado Contiene toda la información relevante (y nada más)

Operador: Transforman un estado en otro. Se suponen deterministas se sabe de antemano cómo será el estado del

mundo/problema después de aplicarlos. Se suponen discretos.

no es relevante lo que \pasa" mientras se ejecutan El espacio de estados es la representación de un problema que abarca todas las posibles situaciones que se pueden presentar en la solución del problema.

Page 6: Tecnicas de Busqueda

  

  6 

es la representación de un problema que abarca todas las posibles situaciones que se pueden presentar en la solución del problema. Los espacios de estados pueden clasificar en dos tipos: los implícitos y los explícitos, como se muestra en el diagrama siguiente. Los espacios de estados implícitos normalmente utilizan un sistema de producción para generar sobre la marcha los posibles estados siguientes de un estado dado. Los juegos suelen crear un espacio de estados implícito ya que un juego puede variar dependiendo de las reglas que lo describen. Los espacios de estados explícitos son aquellos en los se define, previo al inicio de la búsqueda, todos los estados posibles y las conexiones entre ellos. La representación de los espacios de estados explícitos se puede dar o no determinísticamente, esto es, que los espacios de estados determinísticos contienen un único estado inicial y seguir la secuencia de estados para la solución, mientras que el no determinístico contiene un amplio número de estados iniciales y sigue la secuencia de estados perteneciente al estado inicial del espacio. Los espacios de estados determinísticos son usados por los sistemas expertos, mientras que los no determinísticos son usados por sistemas de lógica difusa. Estado Inicial Ajedrez Estados finales Estado Inicial Sudoku 4

Page 7: Tecnicas de Busqueda

  

  7 

2.2.1. Determinísticos. El espacio de estados determinísticos contiene un único espacio inicial y seguir la secuencia de estados para la solución, mientras que el no determinísticos contiene un amplio número de estados iniciales y sigue la secuencia de estados perteneciente al estado inicial del espacio. Características

Los espacios de estados determinísticos son usados por los sistemas expertos, mientras que los no determinísticos son usados por sistemas de lógica difusa.

Un ambiente no determinístico presente problemas más grandes para el agente. Clasificación de los espacios de estados: los implícitos y los explícitos.

Page 8: Tecnicas de Busqueda

  

  8 

Los espacios de estados implícitos normalmente utilizan un sistema de producción para generar sobre la marcha los posibles estados siguientes de un estado dado. Los juegos suelen crear un espacio de estados implícito ya que un juego puede variar dependiendo de las reglas que lo describen. Los espacios de estados explícitos son aquellos en los se define, previo al inicio de la búsqueda, todos los estados posibles y las conexiones entre ellos. Ejemplo de espacio de estados determinísticos.

Page 9: Tecnicas de Busqueda

  

  9 

2.2.2. No Determinísticos. El no determinístico contiene un amplio número de estados iniciales y sigue la secuencia de estados perteneciente al estado inicial del espacio. Son usados por sistemas de lógica difusa. El espacio de estados llamado no determinístico contiene más de un estado inicial y sigue la secuencia de estados perteneciente al estado inicial del espacio. Son usados por sistemas de lógica difusa. En otras palabras, si más de una regla aplica a cualquier estado particular del sistema, o si una regla aplica a un estado particular del sistema en más de una manera, entonces el sistema es no determinístico. En otras palabras, si más de una regla aplica a cualquier estado particular del sistema, o si una regla aplica a un estado particular del sistema en más de una manera, entonces el sistema es no determinístico. Una de las características de este es que son usados por sistemas de lógica difusa, esté presente en problemas más grandes para el agente. Existen diferentes tipos de problemas, cada uno existente en su respectivo contexto llevando al mismo tiempo un planteo lógico, lo cual permite ser llevado a otras prácticas para buscar posibles soluciones. Actualmente están apareciendo soluciones innovadores para problemas de los cuales en ocasiones no nos percatamos, diríamos entonces que no es muy notoria aún su aplicación, pero está claro que va en aumento y pronto veremos su aplicación en más y más contextos cotidianos, pero para eso se deben modelar en una forma simbólica donde las configuraciones posibles o estados del universo estudiado definen y estructuran el problema para poder aplicar métodos numéricos o técnicas matemáticas con los cuales, puede ser solucionado y de alguna forma implementado en los diferentes contextos como alternativas de mejora.

Page 10: Tecnicas de Busqueda

  

  10 

Ejemplo de espacio de estados no determinísticos.

Page 11: Tecnicas de Busqueda

  

  11 

2.3. Métodos de búsqueda. La búsqueda sin información del dominio, también llamada ciega o exhaustiva es: Sistemática. - No deja sin explorar ningún nodo y lo explora sólo una vez. Objetiva. - Pues no depende del dominio del problema. Estas técnicas son poco eficientes, aunque, en coste promedio, son mejores que las que utilizan el conocimiento del dominio del problema. Se caracterizan, entre otras cosas, porque la aplicación de los operadores a los estados se realiza de manera sistemática, uno detrás de otro (estrategia de control no informada). Además, todas ellas son búsquedas por tentativas y utilizan un esquema de producción (búsqueda en el espacio de estados). Como criterio para diferenciarlas, se utilizará el orden en que se recorren los estados. Así, para el espacio de estados, tendremos: Búsqueda en amplitud.

Búsqueda en profundidad.

Búsqueda con retroceso.

Otras estrategias derivadas de las anteriores.

Búsqueda en profundidad progresiva

Búsqueda bidireccional

Page 12: Tecnicas de Busqueda

  

  12 

La evaluación de la eficiencia de una técnica de búsqueda está fuera del alcance de este curso ya que puede ser muy complicada. De hecho, esta evaluación se lleva gran parte de la investigación en IA. Sin embargo, veremos dos medidas elementales que son importantes para obtener una idea de las ventajas y desventajas de utilizar una u otra técnica:

1. La rapidez con que se encuentra la solución. 2. La calidad de la solución.

Hay varios tipos de problemas para los cuales lo principal es encontrar una solución con el mínimo esfuerzo. Para ese tipo de problemas, la primera medida es importante. Sin embargo, en otras situaciones, lo más importante es que la solución sea lo más aproximado a una solución óptima. Tanto la longitud del camino para la solución como el número real de nodos que atraviesa, determina la velocidad de búsqueda. Es importante entender la diferencia entre encontrar una solución óptima y una solución buena. La diferencia radica en el hecho de que encontrar una solución óptima a menudo nos exige una búsqueda exhaustiva porque puede que sea este el único camino para determinar si hemos encontrado o no la mejor solución. No obstante, encontrar una buena solución significa encontrar una que esté inmersa en un conjunto de restricciones (sin importar si hay o no una mejor solución).

Page 13: Tecnicas de Busqueda

  

  13 

2.3.1. Primero en anchura (breadthfirst).

1. Inicializar una lista llamada LISTA_NODOS con el estado inicial 2. Hasta encontrar un objetivo o LISTA_NODOS esté vacía, hacer:

a) Extraer el primer elemento E de LISTA_NODOS b) Para cada regla que sea aplicable al estado E, hacer:

i. Aplicar la regla para obtener un nuevo estado NE ii. Si NE es estado objetivo, terminar y devolver NE. De lo contrario, añadir NE al

final de LISTA_NODOS- Ventajas: Si la solución es una ruta, encuentra la más corta. No queda atrapada en callejones sin salida. El orden en que se aplican las reglas es irrelevante.

La búsqueda primero en anchura es una estrategia sencilla en la que se expande primero el nodo raíz, a continuación, se expanden todos los sucesores del nodo raíz, después sus sucesores, etc. En general. se expanden todos los nodos a una profundidad en el árbol de búsqueda antes de expandir cualquier nodo del próximo nivel. La búsqueda primero en anchura se puede implementar llamando a la búsqueda árboles con una frontera vacía que sea una cola primero en entrar primero en salir (FIFO), asegurando que los nodos primeros visitados serán los primeros expandidos. En otras palabras, llamando a la Búsqueda-Arboles (problema, COLA-FIFO ()) resulta una búsqueda primero en anchura. La cola FIFO pone todos los nuevos sucesores generados al final de la cola, lo que significa que los nodos más superficiales se expanden antes que los nodos más profundos. Búsqueda en amplitud: Longitud del camino. La técnica de longitud del camino recorre el grafo por niveles que están a igual distancia del marco instancia. Dado un marco instancia, se mirará

Page 14: Tecnicas de Busqueda

  

  14 

si la propiedad se encuentra en alguno de los marcos clase con los que está unido. Si se encuentra, entonces se devuelve su valor. En caso contrario, utilizando las relaciones subclase-de, comienza a buscar la propiedad en todas las superclases de dichas clases. En otras palabras, primero se busca la propiedad en los padres, es decir, en aquellos marcos clase que están a distancia uno del marco instancia. Si no la encuentra, entonces la técnica busca en los abuelos, es decir, en aquellos marcos que están a distancia dos, y así sucesivamente. El proceso termina al encontrar la propiedad o al alcanzar el nodo raíz sin encontrarla. Este algoritmo es eficiente y es adecuado en sistemas de herencia que razonan sobre grafos sin propiedades repetidas. Si el grafo contiene propiedades con excepciones aparecerán dos problemas: razonar en presencia de ambigüedades y de conocimientos no especializados. Un problema adicional que presenta la técnica de la longitud del camino es que la longitud de un camino puede no corresponder con el nivel de generalidad de una clase, si hay clases generales que no se han especializado con el mismo nivel de detalle que sus clases hermanas. El IC debe evitar en lo posible construir grafos que presenten diferente granularidad en la especialización de las subclases. La búsqueda primero en amplitud o en anchura es una estrategia sencilla en la que se expande primero el nodo raíz, a continuación se expanden todos los sucesores del nodo raíz, después

Page 15: Tecnicas de Busqueda

  

  15 

sus sucesores, etc.. En general, se expanden todos los nodos a una profundidad en el árbol de búsqueda antes de expandir cualquier nodo del próximo nivel. La búsqueda primero en anchura se puede implementar utilizando una estructura de tipo cola primero en entrar primero en salir, asegurándose que los nodos primeros visitados serán los primeros expandidos. La principal desventaja de la búsqueda en anchura es los requisitos de memoria para almacenar todos los nodos que no han sido expandidos durante la búsqueda. Continuaremos con el ejemplo del problema del agente de viajes con la misma formulación vista en la búsqueda en profundidad. Si tenemos una estructura de datos de tipo cola para implementar esta estrategia de búsqueda:

1. Primero agregamos el estado inicial, en este caso Salina Cruz, y nos queda la estructura de cola como se muestra en la figura 5.1.

2. El siguiente paso es verificar si el elemento tope de la estructura de cola es el estado objetivo, en caso de serlo la búsqueda termina, porque encontramos lo que buscábamos, sin embargo, si no es el caso, como en este ejemplo que vamos a Ciudad Reynosa, entonces procedemos a eliminar este elemento de la estructura de cola,

3. y agregamos todos los terminales desde la que podemos llegar desde el estado en que nos encontramos. Véase figura 5.2(desde la terminal actual, obteniendo los estados sucesores) y volvemos a realizar el paso 2 hasta encontrar lo que buscamos, véase figura 5.3.

Figura 5.1: Representación de la estructura de cola del problema del agente de viajes

Page 16: Tecnicas de Busqueda

  

  16 

Figura 5.2: Representación de la estructura de cola del problema del agente de viajes al agregar los estados sucesores de la terminal Salina Cruz

Figura 5.3: Continuación de la representación de la estructura de cola del problema del agente de viaje para llegar a Ciudad Reynosa

Page 17: Tecnicas de Busqueda

  

  17 

2.3.2. Primero en profundidad (depthfirst). En profundidad. - Se visita la raíz, se expande el nodo y se visita uno de sus sucesores. Se expande este último y se visita uno de sus sucesores. Si se llega a un callejón sin salida, se retrocede un nivel. Si en este nivel no quedan nodos para expandir, se sube otro nivel (así hasta que no queden nodos o se encuentre un nivel con nodos para expandir). Si hay, se expande el nodo de ese nivel para seguir el mismo proceso. De este modo se avanza una vez en cada nivel, hasta encontrar una solución, si esta existe.

1. Si el estado actual E es objetivo, terminar y devolverlo como solución exitosa

2. En caso contrario, hacer lo siguiente:

a) Aplicar la siguiente regla a E para generar un nuevo estado NE. Si no se pueden aplicar más reglas, terminar y devolver un fracaso.

b) Llamar recursivamente al algoritmo de búsqueda primero en profundidad con NE

como estado actual. Si se devuelve una solución exitosa, entonces terminar y devolver la solución. De lo contrario, continuar con el ciclo.

Ventajas:

Requiere menos memoria, ya que solo se almacenan los nodos de la ruta que se sigue en ese momento.

Una búsqueda primero en profundidad explora cada camino posible hasta su conclusión(meta) antes de intentar otro camino. Esta técnica de búsqueda pertenece a las estrategias de búsqueda no informada, es decir la búsqueda no utiliza más que la información proporcionada por la definición del problema. En cambio, existen otros tipos de búsqueda en la cual las estrategias saben si un estado no objetivo es más prometedor que otro, a este último se le conoce como búsquedas informadas o búsquedas heurísticas.

Page 18: Tecnicas de Busqueda

  

  18 

Esta estrategia de búsqueda en profundidad puede implementarse a través de una estructura de tipo pila (último en entrar primero en salir) o alternativamente puede aplicarse como una función recursiva que se llama en cada uno de sus hijos. La búsqueda primero en profundidad tiene unos requisitos muy modestos de memoria. Necesita almacenar sólo un camino desde la raíz a un nodo hoja, junto con los nodos hermanos restantes no expandidos para cada nodo del camino. Una vez que un nodo se ha expandido, se puede quitar de la memoria tan pronto como todos sus descendientes han sido explorados.

Figura 4.1: Rutas de la línea de autobuses ADO-GL R El inconveniente de la búsqueda primero en profundidad es que puede hacer una elección equivocada y obtener un camino muy largo (o infinito) aun cuando una elección diferente llevaría a una solución cerca de la raíz del árbol de búsqueda.

Page 19: Tecnicas de Busqueda

  

  19 

2.3.3. Grafos O. 

combina las ventajas de los algoritmos primero en profundidad y primero en amplitud. Sigue un sendero a la vez, pero puede cambiarse a otro sendero que parece más

prometedor que el que está siguiendo. todos sus ramales representan una alternativa de solución. Para su operación, el algoritmo necesita dos listas de nodos y una función heurística que

estime los méritos de cada nodo que se genere. Tienen la ventaja de que permite encontrar una solución sin tener que expandirse

completamente por todas las ramas. La búsqueda primero en anchura presenta la ventaja de que no queda atrapada en

callejones sin salida. Una forma de combinar ambas ventajas puede consistir en seguir un único camino cada

vez, y cambiarlo cuando alguna ruta parezca más prometedora que la que se está siguiendo en ese momento.

Page 20: Tecnicas de Busqueda

  

  20 

Este algoritmo, combina las ventajas de los algoritmos primero en profundidad y primero en amplitud. Sigue un sendero a la vez, pero puede cambiarse a otro sendero que parece más prometedor que el que está siguiendo. En este sentido, puede considerarse que es un algoritmo que realiza su proceso de búsqueda en un grafo de tipo O, ya que todos sus ramales representan una alternativa de solución. Para su operación, el algoritmo necesita dos listas de nodos y una función heurística que estime los méritos de cada nodo que se genere:

1. ABIERTOS - Es una variable que contiene los nodos que han sido generados. La función heurística ha sido aplicada a ellos, pero todavía no han sido examinados, es decir no se han generado sus sucesores. ABIERTOS puede considerarse como una COLA DE PRIORIDADES en la que los elementos con mayor prioridad son los que tienen los valores más prometedores, dados por la función heurística.

2. CERRADOS - Es una variable que contiene los nodos que han sido examinados. Es necesario tener esta información, para que la búsqueda sea en un grafo y no en un árbol.

3. FUNCIÓN HEURÍSTICA - Permite que el algoritmo busque primero por senderos que son o parecen más prometedores.

Para muchas aplicaciones, es conveniente definir esta función f', como la suma de dos, que se las llamará g y h'. La función g es una medida del costo de llegar desde el nodo inicial al nodo actual. La función h' es una estimación del costo adicional para llegar desde el nodo actual al estado objetivo. Aquí es donde se explota el conocimiento que se dispone sobre el dominio del problema.

Page 21: Tecnicas de Busqueda

  

  21 

Es decir, la función combinada f' representa una estimación del costo de llegar desde el estado inicial hasta el estado objetivo, siguiendo el sendero que ha generado el nodo actual. Si el nodo actual ha generado más de un sendero, el algoritmo deberá dejar registrado sólo el mejor. El algoritmo, en la forma que fue formulado, se aplica a grafos. Puede ser simplificado para aplicarse a árboles, si no se preocupa de comprobar si un nuevo nodo está en ABIERTOS o en CERRADOS. Esto aceleraría la generación de nodos y la búsqueda, para casos en que es poco probable que se repitan nodos. Usualmente, el costo de ir de un nodo a su sucesor, g, se fija en una constante igual 1, cuando se desea encontrar un sendero a la solución, que involucre el menor número de pasos. Si por el contrario nos interesa encontrar el camino menos costoso y algunos operadores cuestan más que otros, se asume un valor de g, que refleje esos costos. Un valor de g igual a cero significaría que simplemente nos interesa llegar a alguna solución, de cualquier manera. Si h' es un estimador perfecto de h, hará que A* converja inmediatamente al objetivo, sin búsqueda. Mientras mejor sea h', más cerca se estará de alcanzar esta aproximación directa. Si h' vale cero, la búsqueda será controlada por g. Si el valor de g es también cero, hará que la búsqueda sea aleatoria. Si el valor de g es siempre 1, hará que la búsqueda sea primero en anchura. Para los casos en que h' no sea perfecto ni cero, y nunca llega a sobrestimar el valor de h, el algoritmo A* está garantizado que encontrará un sendero óptimo a un objetivo, en caso de que exista solución. Cuando un algoritmo garantiza el encontrar una solución óptima, si esta existe, se dice que es admisible.

Page 22: Tecnicas de Busqueda

  

  22 

2.3.4. Grafos A.

Pondera a la vez lo cerca que estamos del nodo meta y lo lejos que estamos del nodo

inicial.

Tiene como ventaja soluciones más cercanas a la raíz.

Inconvenientes: la función de evaluación se complica.

Este algoritmo utiliza las misma funciones f’, g’, h’, así como las listas Abiertos y

Cerrados, que ya se han descrito

El grado de un vértice es el número de aristas incidentes con él

Metodología: Ponderar a la vez lo cerca que estamos del nodo meta y lo lejos que

estamos del nodo inicial.

Tipo: tentativo. Ventajas: soluciones más cercanas a la raíz.

Page 23: Tecnicas de Busqueda

  

  23 

Inconvenientes: la función de evaluación se complica.

La imagen es una representación del siguiente grafo:

V: = {1,2,3,4,5,6} E: = {{1,2},{1,5},{2,3},{2,5},{3,4},{4,5},{4,6}}

Page 24: Tecnicas de Busqueda

  

  24 

2.4. Satisfacción de restricciones.  

Objetivo: Encontrar un estado que satisface las restricciones (Asignación de valores a las variables, que satisfaga las restricciones). Ejemplos:

Colorear mapas, crucigramas, 8-reinas, sudoku, ... Asignación/distribución/ubicación de recursos (distribución de tareas de fabricación,

ubicación de gasolineras, antenas de telefonía, ...) Las restricciones se caracterizan fundamentalmente por su aridad, que es el número de variables involucradas en dicha restricción. Una restricción unaria es una restricción sobre una sola variable. Una restricción binaria es una restricción que consta de dos variables. Una restricción no binaria (o n-aria) es una restricción que involucra a un número arbitrario de 3 o más variables. Los problemas pueden resolverse buscando en un espacio de estados, estos estados pueden evaluarse por heurísticas específicas para el dominio y probados para verificar si son estados meta. Los componentes del estado, son equivalentes a un grafo de restricciones, los cuales están compuestos de:

Variables. Dominios (valores posibles para las variables). Restricciones (binarias) entre las variables

La satisfacción de restricciones s la asignación de valores a un conjunto de variables para satisfacer las

restricciones dadas.

Entre las muchas extensiones que se han propuesto para Prolog la que más impacto ha tenido (hasta el

punto de que prácticamente todas las implementaciones que se vienen haciendo en los últimos años la

incluyen) es la de introducir mecanismos para resolución de problemas de satisfacción de restricciones.

Page 25: Tecnicas de Busqueda

  

  25 

A esta ampliación se le llama programación lógica con restricciones, o, abreviadamente, CLP (Constraint

Logic Programming).

En primer lugar, es interesante observar que la búsqueda de soluciones en Prolog es en sí misma un

problema de satisfacción de restricciones: se trata de buscar valores para las variables que sean

compatibles con las restricciones impuestas por las cláusulas.

Algunos problemas sencillos pueden expresarse en Prolog puro, haciendo uso de los predicados

incorporados «=», «>», etc. Por ejemplo, para el coloreado del mapa de la Figura con tres colores

podemos escribir: }

color(rojo).

color(verde).

color(azul).

coloreado(A,B,C,D) :-

satisface_restr(A,B,C,D),

color(A), color(B), color(C), color(D).

satisface_restr(A,B,C,D) :-

noig(A,B), noig(A,C), noig(A,D),

noig(B,C), noig(B,D), noig(C,D).

noig(X,Y) :- X\=Y.

Page 26: Tecnicas de Busqueda

  

  26 

En CLP se consideran variables con dominios finitos, y se utiliza otro operador para la

restricción de desigualdad entre dos variables que: X##Y. El procesador sólo evalúa esta

condición cuando una de las dos variables tiene asignado un valor, y entonces elimina ese

valor del dominio de la otra. Naturalmente, es necesaria otra construcción sintáctica para

declarar los dominios de las variables.

Los componentes del estado, son equivalentes a un grafo de restricciones, los cuales están

compuestos de:

Variables. Dominios (valores posibles para las variables).

Restricciones (binarias) entre las variables.

Objetivo: encontrar un estado (una asignación completa de valores a las variables) Que

satisface las restricciones.

Ejemplos:

Crucigramas. Colorear mapas.

Estado = Grafo de restricciones o Variables = etiquetas de nodos o Dominios = contenido de nodos o Restricciones = arcos dirigidos y etiquetados entre nodos

Ejemplo: colorear un mapa

Page 27: Tecnicas de Busqueda

  

  27 

2.5.- Teoría de juegos:    

La modificación necesaria de las estrategias de búsqueda ya vistas, es simplemente incluir un ambiente competitivo

Esto da pie a problemas de búsqueda entre adversarios conocidos como juegos

La Teoría de Juegos es un tipo de análisis matemático orientado a predecir cuál será el resultado cierto o más probable de una disputa entre dos o más individuos o empresas o países, etc. En el mundo real son muy frecuentes las situaciones en las que, al igual que en los juegos, su resultado depende de la conjunción de decisiones de los diferentes agentes o jugadores. En la teoría de juegos no tenemos que preguntarnos qué vamos a hacer, tenemos que preguntarnos qué vamos a hacer teniendo en cuenta lo que pensamos que harán los demás y ellos actuarán pensando según crean que van a ser nuestras actuaciones... tales situaciones reciben el nombre de "juegos".

En su fase inicial la teoría de juegos fue utilizada para explicar algunos comportamientos de la economía, pero actualmente es utilizada en otras áreas como el derecho, la biología, la filosofía, la ética, la ciencia política, la informática, la inteligencia artificial o la cibernética. El valor principal de la Teoría de Juegos es que analiza y cuantifica conceptos como la cooperación, la competición y los conflictos interpersonales.

Algunas aplicaciones de la Teoría de Juegos a la vida real son las siguientes: Contratos, Guerras militares o comerciales, Marketing para la competencia en los mercados, Negociaciones domésticas, comerciales o colectivas y Alianzas.

Esta teoría fue diseñada y elaborada a partir de la Segunda Guerra Mundial por John Von Neumann (matemático) y Oscar Morgenstern (economista) en 1944. Durante las dos décadas que siguieron a la guerra uno de los progresos más importantes de la teoría económica fue la Teoría de Juegos y el comportamiento económico.

A principios de los años 50, con una serie de artículos, el matemático John F. Nash, cuya biografía es conocida mediante la película “Una Mente Maravillosa”. Nash logra darle forma

Page 28: Tecnicas de Busqueda

  

  28 

matemática al concepto de equilibrio que los economistas usaban durante esa época y demostró la existencia para una gran clase de juegos, con lo que se llamó “Equilibrio de Nash”.

En síntesis, en la Teoría de Juegos nada es fijo. La economía es dinámica y evoluciona. Los jugadores crean nuevos mercados y asumen múltiples papeles. Son innovadores. Nadie adopta los precios y los productos porque sí. Si esto le suena como a libre mercado o a un escenario de mercado rápidamente cambiante, ésta es la razón por la cual la Teoría de Juegos es tan atrayente en la nueva economía. Una aplicación actual de la Teoría de Juegos está dada en el análisis del poder de decisión de los países de la Unión Europea respecto a la regla de votación incluida en el Tratado de la Constitución Europea, celebrado en Bruselas el 18 de junio de 2004. Investigadores en Teoría de Juegos, de la Universidad de Sevilla, han presentado una carta a los gobiernos de los Estados miembros de la Unión Europea, puesto que resultados de su investigación han arrojado como conclusión que con dicha regla de votación no se respeta el principio básico de cualquier ciudadano de la Unión Europea que es que tenga el mismo poder de decisión; por ello han propuesto un nuevo sistema de votación.

Page 29: Tecnicas de Busqueda

  

  29 

Conclusión

Las estrategias de búsquedas vistas en esta unidad nos dan una idea de cómo los investigadores en IA proponen diferentes formas de solución para los problemas. Estas técnicas son clásicas de la IA y es por ello que deben ser conocidas por todos aquellos que están relacionados con programación de soluciones por computadora. Existen otros métodos que requieren de mayor complejidad de programación para encontrar mejores soluciones en un tiempo razonable, como son el método de ascenso de la colina, recocido simulado, algoritmos genéticos, las redes neuronales. Todos ellos requieren de una mayor complejidad de computación y mayor conocimiento e información del problema. En la mayoría de las estrategias contempladas en el capítulo, debe utilizarse medios para evitar estados repetidos, de esta forma se ahorrará espacio de almacenamiento y tiempo de recorrido. Tal y como lo dice Rusell-Norvig en su libro Los algoritmos que olvidan su historia están condenados a repetirla. El mundo real es más complejo de lo que se formula en los problemas para solucionar por computadora, sin embargo, asumimos que los seres humanos para encontrar soluciones tampoco requieren de mucha información, o al menos no requiere conocer todo el universo para encontrar soluciones buenas. Por ejemplo, no requerimos de mucha información, ni de mucho tiempo para seleccionar una botella de refresco que compramos en el supermercado. Esto justifica en parte lo que hacemos cuando reducimos nuestro problema. Aun cuando por su simplicidad sean problemas de juguete. Es importante hacer mención que un ser humano no realiza búsquedas de este tipo en su mente. Porque un ser humano quizá necesitaría de minutos para crear y comprobar cada combinación o estado posible, y tendría una considerable dificultad para tener en mente cada paso del proceso de comprobación y las asignaciones que ha comprobado. Aun cuando utilizara papel y lápiz como apoyo, sería un proceso muy lento. Además, un ser humano al pasar el tiempo, su calidad de trabajo disminuye, por lo que las soluciones que encuentra un ser humano son las óptimas. Ahora la pregunta obligada, ¿Cómo solucionan este problema los seres humanos?, la respuesta está siendo investigada dentro del campo de la IA, y esperemos que en un futuro no lejano encuentren la respuesta.

Page 30: Tecnicas de Busqueda

  

  30 

Bibliografía. –

Palma Méndez, J. and Marín Morales, R. (2008). Inteligencia artificial. Aravaca: McGraw-Hill Interamericana de España.

Russell, S., Norvig, P. and Bautista Gutiérrez, R. (1996). Inteligencia artificial. México: Prentice Hall Hispanoamericana.