Vídeo: Lecture 13 - Validation 2024
A solução de força bruta é uma na qual você tenta cada resposta possível, uma de cada vez, para localizar a melhor resposta possível. É minucioso, isso é certo, mas também desperdiça tempo e recursos na maioria dos casos. Testar todas as respostas, mesmo quando é fácil provar que uma resposta específica não tem chance de sucesso, desperdiça o tempo que um algoritmo pode usar em respostas que tenham melhores chances de sucesso.
Além disso, testar as várias respostas usando essa abordagem geralmente desperdiça recursos, como a memória. Pense nisso desta maneira: Você quer quebrar a combinação para um bloqueio, então você começa em 0, 0, 0, embora você saiba que essa combinação particular não tem chances de sucesso, dado as características físicas dos bloqueios combinados. Uma solução de força bruta prosseguiria com o teste 0, 0, 0 de qualquer maneira e depois passaria para o igualmente ridículo 0, 0, 1.
É importante entender que cada tipo de solução vem com vantagens, às vezes bastante pequeno. Uma solução de força bruta tem uma dessas vantagens. Como você teste todas as respostas, você não precisa executar qualquer tipo de pré-processamento quando estiver trabalhando com uma solução de força bruta. No entanto, o tempo economizado em saltar o pré-processamento não é provável que pague o tempo perdido na tentativa de cada resposta. No entanto, você pode encontrar a ocasião para usar uma solução de força bruta quando
- Encontrar uma solução, se existir, é essencial.
- O tamanho do problema é limitado.
- Você pode usar heurísticas para reduzir o tamanho do conjunto de soluções.
- Simplicidade de implementação é mais importante do que a velocidade.