Algoritmo+Força+Bruta+(definição)

ALGORITMO DE FORÇA BRUTA - O QUE É?
Em ciência de computação, força bruta (ou procura exaustiva) é um algoritmo trivial mas de uso geral que consiste em enumerar todas as soluções possíveis e verificar se cada uma satisfaz o problema.

Por exemplo, um algoritmo para encontrar os divisores de um número natural n é enumerar todos os inteiros de 1 a n, e verificar para cada um se ele dividido por n resulta em resto 0.

Esse algoritmo possui uma implementação muito simples, e encontra-se sempre uma solução se ela existir. Entretanto, o seu custo computacional é proporcional ao número de posséveis soluções, que, em problemas reais, tende a crescer exponencialmente. Portanto, a força bruta é tipicamente usada em problemas cujo tamanho é limitado, ou quando há uma heurística usada para reduzir o conjunto de soluções para uma espaço aceitável. Também pode ser usado quando a simplicidade da implementação é mais importante que a velocidade de execução, como nos casos de aplicações críticas em que os erros de algoritmo possuem em sérias consequências.

Aplicação na ordenação
Um exemplo clássico de aplicação de algoritmos da classe da força bruta é a ordenação, que pode ser aplicada nos diferentes tipos de dados.

Por exemplo, uma das formas de resolver o problema consiste em procurar o menor elemento e colocá-lo na primeira posição, operando sucessivamente com os demais elementos da lista a ser classificada até finalizar a operação, um método conhecido como ordenação por inserção.

Outro exemplo é a procura de padrões. Dada uma cadeia de caracteres de tamanho n (o "texto") e outra cadeia com tamanho m menor ou igual chamada "padrão". É realizada uma procura no "texto" pelo "padrão", verificando-se todo o texto procurando múltiplas ocorrências. O funcionamento da procura de padrão é simples: se o primeiro caracter é idêntico a um referente no texto, todos os sucessores devem ser idênticos também, até finalizar o padrão. Caso ocorra que um caracter não seja igual, desloca-se o padrão num caracter até chegar ao fim do texto ou encontrar o padrão.



Note que o algoritmo desloca-se após a comparação do primeiro caracter, porém nem sempre é assim. O pior caso é : o algoritmo tem que comparar todos os m caracteres antes de se deslocar, e isso pode ocorrer para cada uma das n − m + 1 tentativas. Portanto, o pior caso para este algoritmo está em θ(n.m). Para textos de linguagem natural, o caso médio é melhor (pois ocorre nas primeiras comparações). Até em textos aleatórios, o comportamento se mostra linear, θ(n + m) = θ(n).

Aplicação em problemas avançados
Um exemplo é o problema do par mais próximo, que consiste em encontrar os dois pontos mais próximos num conjunto de n pontos. Para o exemplo a seguir, por simplicidade assume-se o plano cartesiano, de forma que a distância é calculada pela distância euclidiana. O algoritmo de força bruta percorrerá o conjunto, e selecionará o par com menor distância, ignorando pontos na mesma posição.



Informação procurada - http://pt.wikipedia.org/wiki/For%C3%A7a_bruta

David Martins

12º15 Nº24