Recherche force brute
La recherche force brute ou recherche exhaustive, aussi connu comme générer et tester, est une technique très générale ainsi qu’un algorithme paradigme de résolution de problèmes et algorithmiques paradigme qui consiste à énumérer systématiquement tous les candidats possibles pour la solution et c Hecking si chaque candidat satisfait est le problème déclaration.
Un algorithme de force brute permettant de trouver les diviseurs d'un nombre naturel n énumérerait tous les entiers de 1 à n et vérifierait si chacun d'entre eux divisait n sans reste. Une approche de force brute pour le casse - tête des huit reines examinerait tous les arrangements possibles de 8 pièces sur un échiquier de 64 cases et, pour chaque arrangement, vérifierait si chaque pièce (reine) pouvait en attaquer une autre.
Alors que la recherche de force brute est simple à mettre en œuvre, et trouvera toujours une solution si elle existe, son coût est proportionnel au nombre de solutions candidats - qui pour de nombreux problèmes pratiques tend à grossir très rapidement (explosion combinatoire). Par conséquent, la recherche par force brute est généralement utilisée lorsque la taille du problème est limitée ou lorsqu'il existe des méthodes heuristiques spécifiques au problème qui peuvent être utilisées pour réduire l’ensemble des solutions candidates à une taille gérable. La méthode est également utilisée lorsque la simplicité de mise en œuvre est plus importante que la rapidité.
Tel est le cas, par exemple, dans des applications critiques où toute erreur dans l’algorithme aurait des conséquences très graves; ou lorsque vous utilisez un ordinateur pour prouver un théorème mathématique. La recherche par force brute est également utile comme méthode de base pour comparer d' autres algorithmes ou métaheuristiques . En effet, la recherche par force brute peut être considérée comme le métaheurisme le plus simple . La recherche par force brute ne doit pas être confondue avec le backtracking, où de grands ensembles de solutions peuvent être rejetés sans être explicitement énumérés (comme dans la solution informatique au problème des huit reines ci-dessus).