Vous êtes sur la page 1sur 8

18/10/2020

FORCE BRUTE

PLAN
Force Brute
Exemples

Recherche Exhaustive
Exemples

1
18/10/2020

Force Brute
Une approche simple, généralement basée directement
sur la déclaration du problème et les définitions des
concepts impliqués
Exemples:
1. Calculer an (a > 0, n positif)

2. Calculer n!

3. Rechercher un élément dans une liste

Un algorithme Force Brute pour le


tri
Tri par Sélection Sur un tableau de n éléments (numérotés de 0 à
n-1), le principe du tri par sélection est le suivant :
• rechercher le plus petit élément du tableau, et l'échanger avec
l'élément d'indice 1 ;
• rechercher le second plus petit élément du tableau, et l'échanger
avec l'élément d'indice 2 ;
• continuer de cette façon jusqu'à ce que le tableau soit
entièrement trié.

A[0]  . . .  A[i-1] | A[i], . . . , A[min], . . ., A[n-1]


positions finales

Exemple: 7 3 2 5

2
18/10/2020

Analyse de l’algorithme de sélection

Complexité temporelle: O(n^2)

Complexité spatiale: O(n)

Stabilité: Oui
4

Algorithmes Force Brute pour


l’évaluation d’un polynôme
Problème: Calculer la valeur d’un polynôme
p(x) = anxn + an-1xn-1 +… + a1x1 + a0
à un point donné x = x0

Algorithme force brute

p  0.0
for i  n down to 0 do
power  1
for j  1 to i do //calculer xi
power  power  x
p  p + a[i]  power
return p
Complexité:
0in i = O(n^2) multiplications
9

3
18/10/2020

Evaluation polynomiale:
Amélioration
On peut améliorer l’algorithme en changeant le sens de l’évaluation de
droite à gauche:

Un algorithme force brute version 2


p  a[0]
power  1
for i  1 to n do
power  power  x
p  p + a[i]  power
return p
Complexité: O(n) multiplications

Le schéma de Horner est également une méthode d’évaluation linéaire.

10

Recherche des deux points les plus


rapprochés
La recherche des deux points les plus rapprochés consiste à
trouver une paire de points d'un ensemble fini de points dont
la distance est minimale(Cas de dimension 2: Plan cartésien).

Un algorithme Force Brute


Calculer la distance entre chaque paire de points distincts et
renvoyer les index des points pour lesquels la distance est la
plus petite.

11

4
18/10/2020

Recherche des deux points les plus


rapprochés

Complexité: O(n^2) multiplications ( sqrt)

Comment l’améliorer? Utiliser la stratégie Diviser


pour Reigner
12

Avantages et inconvénients de la
stratégie Force brute
• Avantages
large applicabilité
simplicité
génère des algorithmes raisonnables pour certains problèmes
importants (par exemple, multiplication de matrice, tri,
recherche, etc.)?
• Inconvénients
donne rarement des algorithmes efficaces
certains algorithmes de force brute sont trop lents
pas aussi constructive que d'autres techniques de conception

13

5
18/10/2020

Recherche exhaustive
Une solution de force brute à un problème impliquant la recherche
d'un élément avec une propriété spéciale, généralement parmi
des objets combinatoires tels que des permutations, des
combinaisons ou des sous-ensembles d'un ensemble.
Méthode:
• générer une liste de toutes les solutions potentielles au
problème de manière systématique
• évaluer les solutions possibles les unes après les autres, en
éliminant les solutions irréalisables et, en cas de problème
d'optimisation, en gardant une trace de la meilleure solution
trouvée jusqu'à présent
• à la fin de la recherche, annoncer la ou les solutions trouvées

14

Exemple 1: Le problème du
voyageur de commerce
• Le problème du voyageur de commerce, consiste en la
recherche d’un trajet minimal permettant à un voyageur de
visiter n villes.
• En d’autre termes: trouver le circuit hamiltonien le plus court
dans un graphe connecté pondéré
• Exemple:
2
a b
5 3
8 4

c 7 d

15

6
18/10/2020

PVC par la recherche exhaustive


Tour Coût
a→b→c→d→a 2+3+7+5 = 17
a→b→d→c→a 2+4+7+8 = 21
a→c→b→d→a 8+3+4+5 = 20
a→c→d→b→a 8+7+4+2 = 21
a→d→b→c→a 5+4+3+8 = 20
a→d→c→b→a 5+7+3+2 = 17

Complexité:

O((n-1)!)

16

Exemple 2: Problème du sac à dos


Soit n objets:
• poids: w1 w2 … wn
• valeurs: v1 v2 … vn
• Le poids du sac à dos W
quels objets faut-il mettre dans le sac de manière à maximiser la
valeur totale sans dépasser le poids maximal autorisé pour le
sac.
Exemple: un sac à dos avec une capacité W=16
objet poids valeur
1 2 $20
2 5 $30
3 10 $50
4 5 $10

17

7
18/10/2020

PSD par la recherche exhaustive


Sous-ensemble Poids total Valeur totale
{1} 2 $20
{2} 5 $30
{3} 10 $50
{4} 5 $10
{1,2} 7 $50
{1,3} 12 $70
{1,4} 7 $30
{2,3} 15 $80
{2,4} 10 $40
{3,4} 15 $60
{1,2,3} 17 irréalisable
{1,2,4} 12 $60
{1,3,4} 17 irréalisable
{2,3,4} 20 irréalisable
{1,2,3,4} 22 Complexité:O(2^n)
irréalisable
Each subset can be represented by a binary string (bit vector, Ch 6).
18

Conclusions
• Les algorithmes de recherche exhaustive sont rapides
uniquement pour de très petites instances
• Dans certain cas, il y a de bien meilleures alternatives
• Problème du plus court chemin
• Arbre de recouvrement minimum
• Etc.

• Dans de nombreux cas, la recherche exhaustive est le seul


moyen connu d'obtenir la solution exacte.

21

Vous aimerez peut-être aussi