Herramientas de usuario

Herramientas del sitio


ai:techniques:search_algorithms

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
ai:techniques:search_algorithms [2010/10/24 09:17]
alfred
ai:techniques:search_algorithms [2020/05/09 09:25] (actual)
Línea 28: Línea 28:
     - De todos los nodos de la lista de nodos cerrados escogemos el de //f// más baja.     - De todos los nodos de la lista de nodos cerrados escogemos el de //f// más baja.
   - Si el estado actual es el estado objetivo ya hemos acabado. Si no, volvemos al paso 1.   - Si el estado actual es el estado objetivo ya hemos acabado. Si no, volvemos al paso 1.
 +
  
  
Línea 82: Línea 83:
  
  
- +===== IDA* ===== 
- +  - Realizamos el cálculo de coste para el nodo 1, ese será el coste (o profundidad) inicial y máximo permitido. 
- +  - Nos ponemos en el primer nodo. 
- +  - Vamos al siguiente nodo (moviéndonos siempre en profundidad,​ es decir, siempre abriremos el último nodo. 
- +  - Si el siguiente nodo no pasa del coste máximo actual lo cogemos como nodo actual y hacemos el paso 3.  
- +  - Miramos el siguiente que toque (desde un nodo anterior). 
- +  - Si ningún nodo puede expandirse por superar todos el coste máximo, incrementamos este y vamos al paso 2. 
 +{{ ai:ida.png |}}
  
 ===== Hill-Climbing ===== ===== Hill-Climbing =====
Línea 122: Línea 123:
   * **First-Choice hill climbing** es un stochastic hill climbing pero en la generación de futuros estados. Va generando pasos siguientes hasta que encuentra uno mejor, es decir, será el primer estado mejor el que escoja. Es una buena estrategia cuando el estado tiene muchos sucesores.   * **First-Choice hill climbing** es un stochastic hill climbing pero en la generación de futuros estados. Va generando pasos siguientes hasta que encuentra uno mejor, es decir, será el primer estado mejor el que escoja. Es una buena estrategia cuando el estado tiene muchos sucesores.
   * **Random-restart hill climbing**, genera varios estados iniciales de forma aleatoria (en sí ya es un problema ya que no es trivial), a partir de estos inicia distintas soluciones.   * **Random-restart hill climbing**, genera varios estados iniciales de forma aleatoria (en sí ya es un problema ya que no es trivial), a partir de estos inicia distintas soluciones.
 +
 +
  
  
Línea 143: Línea 146:
       if ∧E > 0:       if ∧E > 0:
         current = next         current = next
-      else if isProbable(∧E, T) +      else if getProbability(∧E, T) > random(0,​1):​
         current = next         current = next
 </​code>​ </​code>​
 El loop interno es similar al del hill climbing, pero en vez de escoger el mejor movimiento escoge uno aleatorio, si dicho movimiento mejora la situación será siempre aceptado pero si no a cada paso que se haga será, por probabilidad,​ más difícil que se siga. Es decir, la mala calidad de la solución hace que la temperatura (//T//) baje y, por lo tanto, la cantidad de evaluación (//∧E//) menor. El loop interno es similar al del hill climbing, pero en vez de escoger el mejor movimiento escoge uno aleatorio, si dicho movimiento mejora la situación será siempre aceptado pero si no a cada paso que se haga será, por probabilidad,​ más difícil que se siga. Es decir, la mala calidad de la solución hace que la temperatura (//T//) baje y, por lo tanto, la cantidad de evaluación (//∧E//) menor.
ai/techniques/search_algorithms.1287911827.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)