Aller au contenu

Force Brute

Vocabulaire

Un algorithme dit « de force brute » consiste à énumérer toutes les solutions possibles à un problème puis à identifier, parmi ces solutions, laquelle est la plus pertinente.

Exemple

Pour acheter une bouteille d'eau qui coûte 1 euro, un client glisse un billet de 10 euros dans le distributeur. Celui-ci doit rendre 9 euros de monnaie.

Un algorithme de force brute va énumérer les huit façons différentes de rendre cette somme en utilisant les valeurs 1, 2, 5, 10, 20, 50, 100 et 200.

Sur votre cahier, détaillez les huit décompositions possibles.

Une réponse

Répartition Nombre de pièces et/ou de billets
9 × 1 € 9
7 × 1 € + 1 × 2 € 8
5 × 1 € + 2 × 2 € 7
3 × 1 € + 3 × 2 € 6
1 × 1 € + 4 × 2 € 5
4 × 1 € + 1 × 5 € 5
2 × 1 € + 1 × 2 € + 1 × 5 € 4
2 × 2 € + 1 × 5 € 3

Cette méthode permettra à coup sûr de trouver la solution optimale du problème.
Mais le nombre de possibilités est très important (essayez de trouver toutes les répartitions possibles pour une somme de 42 € par exemple) donc utiliser ce type d'algorithme est très coûteux à la fois en terme de temps de calcul et d'espace mémoire.

Il faut donc trouver un moyen plus « efficace » de raisonner.

Retour à l'exemple

Dans le cas du rendu de 9 euros en monnaie, il est facile, pour un humain, de déterminer « de tête » cette façon optimale de faire, à savoir une pièce de 5 euros et deux pièces de 2 euros.

Mais comment programmer un automate pour qu'il y parvienne ?