Video: Lecture 05 - Training Versus Testing 2025
Una solución de fuerza bruta es aquella en la que prueba cada posible respuesta, una a la vez, para encontrar la mejor respuesta posible. Es minucioso, esto es cierto, pero también desperdicia tiempo y recursos en la mayoría de los casos. Probar cada respuesta, incluso cuando es fácil probar que una respuesta en particular no tiene posibilidades de éxito, desperdicia tiempo que un algoritmo puede usar en respuestas que tienen más posibilidades de éxito.
Además, probar las diversas respuestas utilizando este enfoque generalmente desperdicia recursos, como la memoria. Piénselo de esta manera: quiere romper la combinación de un candado, por lo que comienza en 0, 0, 0, aunque sepa que esta combinación particular no tiene posibilidades de éxito debido a las características físicas de los bloqueos de combinación. Una solución de fuerza bruta procedería a probar 0, 0, 0 de todos modos y luego pasaría a la igualmente ridícula 0, 0, 1.
Es importante entender que cada tipo de solución tiene ventajas, a veces bastante pequeñas. Una solución de fuerza bruta tiene una de esas ventajas. Debido a que prueba todas las respuestas de todos modos, no es necesario realizar ningún tipo de preprocesamiento cuando se trabaja con una solución de fuerza bruta. Sin embargo, es poco probable que el tiempo ahorrado al omitir el preprocesamiento devuelva el tiempo perdido al intentar cada respuesta. Sin embargo, puede encontrar la ocasión de usar una solución de fuerza bruta cuando
- Encontrar una solución, si existe, es esencial.
- El tamaño del problema es limitado.
- Puede usar la heurística para reducir el tamaño del conjunto de soluciones.
- La simplicidad de la implementación es más importante que la velocidad.
