Professional Documents
Culture Documents
Structures de donnes
STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
CONCEPTION DE PROGRAMMES:
BACKTRACKING
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Objectifs
Problmes viss
La recherche dune rponse au problme ncessite la recherche dun nombre important de solutions plausibles
Structures de donnes
Sudoko
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Plan de la leon
Problme du sac dos Permutation Problme des n reines
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Le poids permis: S
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
Algorithme
Structures de donnes
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
Laddition : +1
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
13 = 1+1+0+1 14 = 1+1+1+0
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
O(n 2n)
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Backtracking
Principe
Essayer toutes les combinaisons pour trouver une ou plusieurs solutions Mthode consistant faire des essais et rebrousser chemin en cas d'chec
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Backtracking
Principe
En gnral, des algorithmes reprsents de manire arborescente. Chaque branche symbolisant un appel rcursif Croissance exponentielle
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Permutations
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
(1,3,2) Il y a n! permutations de n lments {1,2,3}, {1,3,2},
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Enumration des permutations
On procde rcursivement, en gnrant les permutations d'ordre n-1 et en rajoutant n toutes les positions possibles
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Enumration des permutations
Permutation t[1..i0-1] construite Mettre dans t[i0] les n-i0+1 valeurs non utilises auparavant, tour de rle
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Enumration des permutations
On va grer un tableau auxiliaire de boolens choisi, tel que choisi[j] est vrai si le nombre j a dj t choisi
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Le programme
// approche en O(n!) void permRec(int[]t,int n,bool[]choisi,int i0){ if(i0 > n) afficher(t, n); else{ for(int v = 1; v <= n; v++){ if(! choisi[v]){ choisi[v] = true; t[i0] = v; permRec(t, n, choisi, i0+1); } } } }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Le programme
// approche en O(n!) void permutations(int n){ int* t = (int *) malloc( (n+1)*sizeof(int)); bool*choisi=(bool*)malloc((n+1)*sizeof(bool)); permRec(t, n, choisi, 1); }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Permutations
Le programme
// approche en O(n!) void permutations(int n){ } Pour n=3, on gnre les permutations dans l'ordre : 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
Une solution:
Permutation de 1..n
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
2 4 1 3
Structures de donnes
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI
Structures de donnes
Structures de donnes
Structures de donnes
8 92
Prof. A. EL FAKER
23 24233937684440
Structures de donnes
Exercice
Problme des phrases cohrentes
Dans cette phrase il y a 2 fois le nombre 1, 3 fois le nombre 2, 2 fois le nombre 3, et 1 fois le nombre 4
Structures de donnes
Exercice
Problme des phrases cohrentes
Dans cette phrase il y a 2 fois le nombre 1, 3 fois le nombre 2, 2 fois le nombre 3, et 1 fois le nombre 4
Structures de donnes
Exercice
Problme des phrases cohrentes
Dans cette phrase il y a 2 fois le nombre 1, 3 fois le nombre 2, 2 fois le nombre 3, et 1 fois le nombre 4
Structures de donnes
STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI