cours d algorithmique n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Cours d’Algorithmique PowerPoint Presentation
Download Presentation
Cours d’Algorithmique

Loading in 2 Seconds...

play fullscreen
1 / 198
sabina

Cours d’Algorithmique - PowerPoint PPT Presentation

120 Views
Download Presentation
Cours d’Algorithmique
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Cours d’Algorithmique L’algorithme alpha-beta. Sous-arbres alpha et beta d’un arbre minimax et propriétés. Arbres de recherche équilibrés : la problématique, diverses solutions. Recherche textuelle. Cours d'algorithmique 4 - Intranet

  2. Les grandes lignes du cours • Trier et chercher,recherche textuelle • Listes etarbres • Le back-track • Arbres équilibrés • Récursivité et induction sur la structure • Divide and conquer • Minimax,alpha-beta • Dérécursion • Divers problèmes particuliers • Logique de Hoare • Programmation dynamique • Complexité et calculabilité Cours d'algorithmique 4 - Intranet

  3. alpha - beta----------------------------------------------------------------- A R B R E A L P H A - B E T A Cours d'algorithmique 4 - Intranet

  4. alpha - beta----------------------------------------------------------------- max 5 ? Cours d'algorithmique 4 - Intranet

  5. alpha - beta----------------------------------------------------------------- max 5 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : [ 5 … +inf [ • Nous nous arrêtons dès que nous savons qu’elle sera inférieure à 5 ! Cours d'algorithmique 4 - Intranet

  6. alpha - beta----------------------------------------------------------------- max [ 5 … +inf [ 5 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : [ 5 … +inf [ • Nous nous arrêtons dès que nous savons qu’elle sera inférieure à 5 ! Cours d'algorithmique 4 - Intranet

  7. alpha - beta----------------------------------------------------------------- max [ 5 … +inf [ 5 min 3 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : [ 5 … +inf [ • Nous nous arrêtons dès que nous savons qu’elle sera inférieure à 5 ! Cours d'algorithmique 4 - Intranet

  8. alpha - beta----------------------------------------------------------------- max [ 5 … +inf [ 5 min Coupe ! 3 < 5 !!! 3 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : [ 5 … +inf [ • Nous nous arrêtons dès que nous savons qu’elle sera inférieure à 5 ! Cours d'algorithmique 4 - Intranet

  9. alpha - beta----------------------------------------------------------------- max [ 5 … +inf [ 5 min Poursuite! 7 > 5 !!! 7 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : [ 5 … +inf [ • Nous nous arrêtons dès que nous savons qu’elle sera inférieure à 5 ! Cours d'algorithmique 4 - Intranet

  10. alpha - beta----------------------------------------------------------------- min ? 3 Cours d'algorithmique 4 - Intranet

  11. alpha - beta----------------------------------------------------------------- min ? 3 • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : ] -inf … 3 ] • Nous nous arrêtons dès que nous savons qu’elle sera supérieure à 3 ! Cours d'algorithmique 4 - Intranet

  12. alpha - beta----------------------------------------------------------------- min ] -inf … 3 ] ? 3 • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : ] -inf … 3 ] • Nous nous arrêtons dès que nous savons qu’elle sera supérieure à 3 ! Cours d'algorithmique 4 - Intranet

  13. alpha - beta----------------------------------------------------------------- min ] -inf … 3 ] 3 max 5 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : ] -inf … 3 ] • Nous nous arrêtons dès que nous savons qu’elle sera supérieure à 3 ! Cours d'algorithmique 4 - Intranet

  14. alpha - beta----------------------------------------------------------------- min ] -inf … 3 ] 3 max Coupe ! 5 > 3 !!! 5 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : ] -inf … 3 ] • Nous nous arrêtons dès que nous savons qu’elle sera supérieure à 3 ! Cours d'algorithmique 4 - Intranet

  15. alpha - beta----------------------------------------------------------------- min ] -inf … 3 ] 3 max Poursuite! 1 < 3 !!! 1 ? • Nous parcourons le fils droit pour trouver une valeur dans l’intervalle : ] -inf … 3 ] • Nous nous arrêtons dès que nous savons qu’elle sera supérieure à 3 ! Cours d'algorithmique 4 - Intranet

  16. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 ? Cours d'algorithmique 4 - Intranet

  17. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 ? Cours d'algorithmique 4 - Intranet

  18. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 ? Cours d'algorithmique 4 - Intranet

  19. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  20. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ [ a , b ] 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  21. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ [ a , b ] 3 min a est la borne minimale garantie ! a grandit seulement … [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  22. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ [ a , b ] 3 min a est la borne minimale garantie ! a grandit seulement … [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  23. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ [ a , b ] 3 min b est la borne maximale possible ! b diminue seulement … [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  24. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ [ a , b ] 3 min b est la borne maximale possible ! b diminue seulement … [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  25. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  26. ? ? ? ? alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min 4 <= ? <= 7 Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  27. ? ? ? ? alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min 4 <= ? <= 7 Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  28. ? alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min ? <= 4 Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  29. 4 4 4 4 alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] ? min ? < 4 Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  30. 4 4 4 4 alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] ? min ? < 4 Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Fail Low Cours d'algorithmique 4 - Intranet

  31. alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min 7 < ? Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] 7 ? Cours d'algorithmique 4 - Intranet

  32. 7 7 7 7 7 alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min 7 < ? Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] ? Cours d'algorithmique 4 - Intranet

  33. 7 7 7 7 7 alpha - beta----------------------------------------------------------------- max [ 3 … +inf [ 3 min [ 3 … 9 ] 9 max [ 4 … 9 ] 4 min 7 < ? Discussion de la valeur de « ? » par rapport à l’intervalle [ 4 … 7 ]. [ 4 … 7 ] ? Fail High Cours d'algorithmique 4 - Intranet

  34. alpha - beta----------------------------------------------------------------- int alpha_beta ( un_type situation , int max_ou_pas , int alpha , int beta ) {if ( est_feuille(situation) ) return( valeur(situation) ) ; else if ( max_ou_pas ) xxx else yyy } Cours d'algorithmique 4 - Intranet

  35. alpha - beta----------------------------------------------------------------- int alpha_beta ( un_type situation , int max_ou_pas , int alpha , int beta ) {if ( est_feuille(situation) ) return( valeur(situation) ) ; else if ( max_ou_pas ) xxx else yyy } Cas d’arrêt : Nous rendons la valeur de la situation ! Cours d'algorithmique 4 - Intranet

  36. alpha - beta----------------------------------------------------------------- int alpha_beta ( un_type situation , int max_ou_pas , int alpha , int beta ) {if ( est_feuille(situation) ) return( valeur(situation) ) ; else if ( max_ou_pas ) xxx else yyy } Le cas max ! Cours d'algorithmique 4 - Intranet

  37. alpha - beta----------------------------------------------------------------- int alpha_beta ( un_type situation , int max_ou_pas , int alpha , int beta ) {if ( est_feuille(situation) ) return( valeur(situation) ) ; else if ( max_ou_pas ) xxx else yyy } Le cas min ! Cours d'algorithmique 4 - Intranet

  38. alpha - beta----------------------------------------------------------------- xxx Traitement les fils de max for ( « fils » parmi les fils de situation & tantque alpha < beta ) alpha := max( alpha , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( min(alpha , beta) ); Cours d'algorithmique 4 - Intranet

  39. alpha - beta----------------------------------------------------------------- xxx Traitement les fils de max for ( « fils » parmi les fils de situation & tantque alpha < beta ) alpha := max( alpha , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( min(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que alpha atteint beta ! Cours d'algorithmique 4 - Intranet

  40. alpha - beta----------------------------------------------------------------- xxx Traitement les fils de max for ( « fils » parmi les fils de situation & tantque alpha < beta ) alpha := max( alpha , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( min(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que alpha atteint beta ! alpha peut grandir ! Cours d'algorithmique 4 - Intranet

  41. alpha - beta----------------------------------------------------------------- xxx Traitement les fils de max for ( « fils » parmi les fils de situation & tantque alpha < beta ) alpha := max( alpha , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( min(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que alpha atteint beta ! alpha peut grandir ! Rendre « alpha » ou bien « beta » si alpha > beta ! a <= b Cours d'algorithmique 4 - Intranet

  42. alpha - beta----------------------------------------------------------------- yyy Traitement les fils de min for ( « fils » parmi les fils de situation & tantque alpha <= beta ) beta := min( beta , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( max(alpha , beta) ); Cours d'algorithmique 4 - Intranet

  43. alpha - beta----------------------------------------------------------------- yyy Traitement les fils de min for ( « fils » parmi les fils de situation & tantque alpha < beta ) beta := min( beta , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( max(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que beta atteint alpha ! Cours d'algorithmique 4 - Intranet

  44. alpha - beta----------------------------------------------------------------- yyy Traitement les fils de min for ( « fils » parmi les fils de situation & tantque alpha < beta ) beta := min( beta , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( max(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que beta atteint alpha ! beta peut diminuer ! Cours d'algorithmique 4 - Intranet

  45. alpha - beta----------------------------------------------------------------- yyy Traitement les fils de min for ( « fils » parmi les fils de situation & tantque alpha < beta ) beta := min( beta , alpha_beta( fils , not(max_ou_pas) , alpha , beta ) ); return( max(alpha , beta) ); Parcourons tous les fils, mais arrêtons-nous dès que beta atteint alpha ! beta peut diminuer ! Rendre « beta » ou bien « alpha » si beta < alpha ! a <= b Cours d'algorithmique 4 - Intranet

  46. Arbre alpha----------------------------------------------------------------- A R B R E A L P H A Cours d'algorithmique 4 - Intranet

  47. alpha - beta----------------------------------------------------------------- max min min max max max max min min min min 3 1 6 2 5 3 7 1 3 2 8 7 Cours d'algorithmique 4 - Intranet

  48. Arbre alpha----------------------------------------------------------------- • Nous gardons tous les fils des min . • Nous gardons un fils des max (choisi au hasard). max min min max max max max min min min min 3 1 6 2 5 3 7 1 3 2 8 7 Cours d'algorithmique 4 - Intranet

  49. Arbre alpha----------------------------------------------------------------- • Nous gardons tous les fils des min . • Nous gardons un fils des max (choisi au hasard). 3 max Minimax = minimum ! ! ! min min max max max max min min min min 3 1 6 2 5 3 7 1 3 2 8 7 Cours d'algorithmique 4 - Intranet

  50. Arbre alpha----------------------------------------------------------------- • Nous gardons tous les fils des min . • Nous gardons un fils des max (choisi au hasard). 3 max Minimax = minimum ! ! ! min min max max max max min min min min 3 1 6 2 5 3 7 1 3 2 8 7 Cours d'algorithmique 4 - Intranet