Beam Search es un algoritmo de búsqueda heurística utilizado para explorar grafos o árboles de estados, especialmente en problemas donde el espacio de búsqueda es demasiado grande para una exploración exhaustiva (como Breadth-First Search o Depth-First Search). A diferencia de estos, Beam Search mantiene un conjunto limitado de 'k' (el 'beam width') los nodos más prometedores en cada nivel o paso. En cada iteración, expande todos los sucesores de los 'k' nodos actuales, evalúa su 'promesa' (usando una función heurística o de puntuación), y selecciona los 'k' mejores para la siguiente iteración. Este proceso continúa hasta que se alcanza un estado objetivo o se cumple un criterio de parada. Es una optimización de Best-First Search que reduce la complejidad computacional a expensas de la completitud, ya que no garantiza encontrar la solución óptima global.

Beam Search es fundamental en sistemas de Inteligencia Artificial y Machine Learning, particularmente en tareas de generación de secuencias. Se utiliza ampliamente en Natural Language Processing (NLP) para la generación de texto, como en Machine Translation (traducción automática), donde modelos como los basados en Transformers lo emplean para decodificar la secuencia de salida. Por ejemplo, en Google Translate o DeepL, después de que un modelo neuronal codifica la frase de entrada, Beam Search explora las posibles palabras de salida para construir la traducción más probable. También se aplica en Speech Recognition (reconocimiento de voz) para encontrar la secuencia de palabras más probable a partir de un audio, y en Computer Vision para tareas como Image Captioning (generación de descripciones de imágenes).

Para un Arquitecto de Sistemas, entender Beam Search es crucial al diseñar o integrar sistemas que requieren la generación de secuencias o la búsqueda en espacios de estados grandes. El principal trade-off es entre la calidad de la solución (que mejora con un 'beam width' mayor) y la eficiencia computacional (que disminuye con un 'beam width' mayor). Un 'beam width' pequeño puede llevar a soluciones subóptimas, mientras que uno muy grande puede agotar los recursos computacionales y aumentar la latencia. Los arquitectos deben considerar cómo el 'beam width' impacta el rendimiento del sistema, la latencia de respuesta y el costo de infraestructura, especialmente en escenarios de alta concurrencia. La elección del 'beam width' es una decisión de diseño crítica que debe ser calibrada cuidadosamente, a menudo mediante experimentación, para cumplir con los SLAs y los requisitos de calidad del producto.