¿Cuál crees que es el algoritmo de optimización más inteligente?

El algoritmo MTD (f) para resolver problemas de optimización de minimax es bastante inteligente. No hay un criterio objetivo más inteligente, pero hay un criterio objetivo “más recientemente impresionado por” que este algoritmo satisface para mí, y tal vez para usted también en un momento.

MTD (f) utiliza la búsqueda alfa beta como una subrutina, por lo que mencionaré rápidamente qué es eso primero. Alpha Beta search es una búsqueda minimax que mantiene la mejor solución hasta ahora para el jugador máximo, [math] \ alpha [/ math], y la mejor solución hasta ahora para el jugador min, [math] \ beta [ / math], para que el jugador max pueda evitar evaluar subárboles donde se pueda verificar más rápidamente que el jugador min puede producir un valor [math] v <\ alpha. [/ math] Y viceversa con el jugador min usando [math ] \ beta [/ math] para evitar expandir subárboles. Cuando la búsqueda Alfa Beta se usa sola, [matemática] \ alpha [/ matemática] y [matemática] \ beta [/ matemática] se inicializan a [matemática] – \ infty [/ matemática] y [matemática] + \ infty [/ matemática] respectivamente, de modo que las soluciones fuera del rango especificado nunca puedan ocurrir. Esta inicialización conservadora garantiza la corrección, pero las ventanas anchas ofrecen menos oportunidades para podar subárboles (inicialmente no poda y más poda ya que los límites dan más información).

MTD (f) está motivado por este hecho sobre la relación de las tasas de poda y el ancho de la ventana para comenzar con una suposición inicial de la solución minimax, f, y luego realizar búsquedas Alfa Beta con ventanas pequeñas como [matemáticas] \ alpha = f-1 [/ math] y [math] \ beta = f [/ math]. Esto hace que el resultado de una búsqueda alfa beta de ventana pequeña no sea la solución definitiva, sino información sobre si la solución es mayor o menor o igual que el valor actual de f. MTD (f) continuará haciendo búsquedas rápidas (debido a la alta tasa de poda) hasta que los límites superior e inferior conocidos colisionen. Hablando intuitivamente, este uso de límites para ampliar la respuesta es rápido por razones similares a que la búsqueda binaria en una lista ordenada es rápida.

Algoritmos alfa beta de ventana pequeña como este son utilizados por motores de ajedrez de última generación, como Stockfish, que se encuentra entre los mejores del mundo en este momento. Por supuesto, los motores de ajedrez no obtienen toda su fuerza de la elección del algoritmo de búsqueda minimax, también usan tablas de transposición y heurísticas de orden de movimiento, etc.

Recientemente, variantes de ideas como esta en el dominio de detección comprimido.

Mejora bastante decente en PCG. Si los operadores son operadores de Fourier, es muy agradable.

More Interesting

¿Quién sabe qué hay detrás de la API de Google Nearby Search? ¿Qué algoritmo usan? ¿Cómo encuentra Google una estación de servicio cercana?

¿Puede una máquina Turing aceptar una cadena de longitud 2014? ¿Por qué este problema es indecidible?

¿Cómo se copia el contenido de un árbol de búsqueda binario que tiene emparejamientos K, V?

Dado N monedas para dos jugadores que juegan un juego. Cada jugador puede elegir 1 o 2 monedas en un turno. El jugador que recoge las últimas monedas gana. Si juegan de manera óptima, ¿qué jugador ganará el juego?

En el algoritmo KNN, ¿por qué el pequeño valor de k conduce a una pequeña tasa de error?

Cómo ordenar una matriz de vectores de pares, es decir, vector <par v [N], en C ++

¿Qué es la representación de colas usando array?

¿Qué algoritmos se usan para calcular logaritmos?

¿Existe algún algoritmo de clasificación con O (n) en el tiempo y O (n ^ 2) en la complejidad del espacio?

¿Cuál es el promotor y algoritmo SEO más importante en 2017?

¿Se puede ordenar una lista de números en un número menor de pases que el indicado por la notación Big-O?

¿Cuáles son algunos buenos algoritmos para agrupar palabras que suenan similares?

¿Cuánta recopilación y análisis de datos se destina a la optimización del tiempo de los semáforos en una ciudad?

Estructuras de datos: ¿Cuál es una explicación intuitiva de los árboles rojo-negros?

¿Cómo debo practicar para poder asear la mayoría de los concursos Gold de USACO?