1 / 198

Cours d’Algorithmique

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. Les grandes lignes du cours. Trier et chercher, recherche textuelle Listes et arbres

sabina
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related