Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1110 janvier 200710 janvier 2007
Cours d’AlgorithmiqueCours d’Algorithmique
Exploration combinatoire complèteExploration combinatoire complète
Branch-and-BoundBranch-and-Bound
Solutions approchéesSolutions approchées
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 22
• Trier et chercher, recherche textuelleTrier et chercher, recherche textuelle• Listes et arbresListes et arbres• Le back-track, Le back-track, solutions approchéessolutions approchées• Arbres équilibrésArbres équilibrés• Récursivité et induction sur la structureRécursivité et induction sur la structure• Divide and conquer, algorithmes gloutonsDivide and conquer, algorithmes gloutons• Minimax, alpha-betaMinimax, alpha-beta• DérécursionDérécursion• NP-complétude,NP-complétude, Branch-and-Bound Branch-and-Bound • Logique de HoareLogique de Hoare• Programmation dynamiqueProgrammation dynamique• Complexité et calculabilitéComplexité et calculabilité
Les grandes lignes du coursLes grandes lignes du cours
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 33
• Le « Voyageur de Commerce », en anglais Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ) :« Traveling Salesman Problem » ( TSP ) :
• « n » villes,« n » villes,
• un réseau routier complet entre ces villes avec un réseau routier complet entre ces villes avec les distances,les distances,
• La question :La question :
Quel est le coût du circuit (point de Quel est le coût du circuit (point de départdépart
= point d’arrivée) le moins cher qui visite= point d’arrivée) le moins cher qui visite chaque ville une et une seule fois ?chaque ville une et une seule fois ?
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 44
• Exemple :Exemple :
AA
BB
CC
DD3030
3535
20204545
1717
1515
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
Un tour à coût 110 !Un tour à coût 110 !
Un tour à coût 87 !Un tour à coût 87 !
Il suffit d’un inspecter tous les circuits !Il suffit d’un inspecter tous les circuits !
Seulement, il y en a n ! pour n villes !Seulement, il y en a n ! pour n villes !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 55
• Exemple :Exemple :
• La matrice M des distances :La matrice M des distances :
AA
BB
CC
DD3030
3535
20204545
1717
1515
++
++
++
++(( ))AA
BB
CC
DD
3030 2020 3535
3030
2020
3535
1717 1515
1717
1515
4545Par symétrie !Par symétrie !
4545
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 66
• Pour avoir un circuit il faut sélectionner « n » arêtes !Pour avoir un circuit il faut sélectionner « n » arêtes !
• La représentation du problème :La représentation du problème :
– « c » est le nombre d’arêtes déjà choisies,« c » est le nombre d’arêtes déjà choisies,
– « E » est l’ensemble de ces arêtes,« E » est l’ensemble de ces arêtes,
– « s » est la somme des longueurs des arêtes de « E »,« s » est la somme des longueurs des arêtes de « E »,
– « M » est la matrice courante avec les arêtes interdites ou « M » est la matrice courante avec les arêtes interdites ou déjà choisies mises à +déjà choisies mises à +..
• Le principe du back-track :Le principe du back-track :
– Nous choisissons une arête pour l’imposer ou l’interdire !Nous choisissons une arête pour l’imposer ou l’interdire !
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 77
• Lorsque nous avons sélectionné « n » arêtes,Lorsque nous avons sélectionné « n » arêtes,
– il faut rendre « s » comme résultat !il faut rendre « s » comme résultat !
• Sinon,Sinon,
– nous choisissons une arête ( a , b ) de poids fini !nous choisissons une arête ( a , b ) de poids fini !
– Si ce n’est pas possible, nous sommes dans une Si ce n’est pas possible, nous sommes dans une impasse et nous rendons +impasse et nous rendons +(pas de circuit !)(pas de circuit !)..
• Si l’arête ( a , b ) ferme le circuit trop tôt,Si l’arête ( a , b ) ferme le circuit trop tôt,
– nous ne pouvons que l’interdire !nous ne pouvons que l’interdire !
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 88
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
Les arêtes sélectionnées !Les arêtes sélectionnées !
Nous pouvons compléter vers un circuit !Nous pouvons compléter vers un circuit !
aa
bb
Nous ne pouvons plus compléter vers un circuit !Nous ne pouvons plus compléter vers un circuit !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 99
• Interdire une arête revient à :Interdire une arête revient à :
– garder le même nombre « c » d’arêtes sélectionnées,garder le même nombre « c » d’arêtes sélectionnées,
– le même ensemble « E »,le même ensemble « E »,
– la même somme « s »,la même somme « s »,
– mettre l’entrée ( a , b ) de « M » à +mettre l’entrée ( a , b ) de « M » à + . .
• Notation :Notation :
– M [ ( a , b ) <M [ ( a , b ) <-- v , ( c , d ) < v , ( c , d ) <-- w ] : 2 entrées sont w ] : 2 entrées sont changées.changées.
– M [ ( a , _ ) <M [ ( a , _ ) <-- v ] : une ligne est modifiée. v ] : une ligne est modifiée.
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1010
• Lorsque l’arête ( a , b ) est de poids fini et acceptable, Lorsque l’arête ( a , b ) est de poids fini et acceptable, nous pouvons décider denous pouvons décider de
– soit l’interdire, nous avons vu comment faire,soit l’interdire, nous avons vu comment faire,
– soit, la sélectionner. A ce moment :soit, la sélectionner. A ce moment :
– c <c <-- c + 1 c + 1
– e <e <-- E v { ( a , b ) } E v { ( a , b ) }
– s <s <-- s + M( a , b ) s + M( a , b )
– M <M <-- M[ ( a , _ ) < M[ ( a , _ ) <- +- + , ( _ , b ) < , ( _ , b ) <- +- + ] ]
– Ensuite, nous continuons l’exploration et nous rendons la Ensuite, nous continuons l’exploration et nous rendons la meilleure des deux solutions !meilleure des deux solutions !
TSPTSP----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1111
• L’idée est la suivante :L’idée est la suivante :
– Si les arêtes que nous avons déjà choisies sont très Si les arêtes que nous avons déjà choisies sont très chères,chères,
– alors, même en continuant de la meilleure manière, alors, même en continuant de la meilleure manière, notre solution sera très chère,notre solution sera très chère,
– et même plus chère qu’une solution complète déjà et même plus chère qu’une solution complète déjà connue !connue !
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1212
• Le programme gère une variable Le programme gère une variable opt*opt* qui mémorise la qui mémorise la longueur de la meilleure solution trouvée jusqu’à longueur de la meilleure solution trouvée jusqu’à présent.présent.
• Nous explorons un arbre (problème) « A » à la Nous explorons un arbre (problème) « A » à la recherche de la meilleure solution locale : opt( A ) .recherche de la meilleure solution locale : opt( A ) .
• Nous espérons que opt( A ) soit meilleure que opt* .Nous espérons que opt( A ) soit meilleure que opt* .
• Avant d’explorer complètement A , nous aimerions Avant d’explorer complètement A , nous aimerions avoir une « petite idée » des solutions que nous avoir une « petite idée » des solutions que nous risquons d’y trouver ! ! !risquons d’y trouver ! ! !
• Supposons qu’une fonction « lb », pas trop compliquée Supposons qu’une fonction « lb », pas trop compliquée à calculer, nous donne un minorant de la meilleure à calculer, nous donne un minorant de la meilleure solution :solution :
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
lb( A ) <= opt( A )lb( A ) <= opt( A )
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1313
• Nous allons comparer lb( A ) à opt* :Nous allons comparer lb( A ) à opt* :
• Si opt* <= lb( A ) alors opt* <= lb( A ) <= opt( A ) .Si opt* <= lb( A ) alors opt* <= lb( A ) <= opt( A ) .
– Ce n’est pas la peine d’explorer A ! ! !Ce n’est pas la peine d’explorer A ! ! !
– Le calcul lb( A ) est beaucoup plus rapide que celui de opt( A ).Le calcul lb( A ) est beaucoup plus rapide que celui de opt( A ).
– Tout bénef !Tout bénef !
• Si opt* > lb( A ) alors on ne peut rien en déduire.Si opt* > lb( A ) alors on ne peut rien en déduire.
– En effet, lb( A ) <= opt( A ) et lb( A ) < opt* , mais . . . ? ? ?En effet, lb( A ) <= opt( A ) et lb( A ) < opt* , mais . . . ? ? ?
– Le calcul lb( A ) ne sert à rien !Le calcul lb( A ) ne sert à rien !
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1414
• Principe du Branch-and-Bound ( Séparer et évaluer ) :Principe du Branch-and-Bound ( Séparer et évaluer ) :
• Nous connaissons opt* !Nous connaissons opt* !
• Nous calculons lb( A ) en « temps raisonnable » !Nous calculons lb( A ) en « temps raisonnable » !
• Si opt* <= lb( A ) , nous pouvons éliminer A !Si opt* <= lb( A ) , nous pouvons éliminer A !
• Si opt* > lb( A ) , nous explorons A normalement !Si opt* > lb( A ) , nous explorons A normalement !
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1515
• Le calcul spéculatif :Le calcul spéculatif :
• Si nous lui consacrons trop peu de temps, la borne sera mauvaise et Si nous lui consacrons trop peu de temps, la borne sera mauvaise et ne servira à rien !ne servira à rien !
• Si nous lui consacrons trop de temps, c’est contre-productif ! Si nous lui consacrons trop de temps, c’est contre-productif ! Augmenter, encore et encore, le temps n’améliore pas Augmenter, encore et encore, le temps n’améliore pas nécessairement la borne !nécessairement la borne !
• Tout est une question d’expérience, purement empirique !Tout est une question d’expérience, purement empirique !
• Pour le TSP, des bornes en complexité n^3 ont donné les meilleurs Pour le TSP, des bornes en complexité n^3 ont donné les meilleurs résultats, si n est grand.résultats, si n est grand.
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1616
• Pour notre TSP :Pour notre TSP :
• Nous avons « c » , « E » , « s » et « M » .Nous avons « c » , « E » , « s » et « M » .
• Donc, il y a « c » lignes complètement remplies avec +Donc, il y a « c » lignes complètement remplies avec + . .
• Il y a « nIl y a « n--c » lignes contenant des valeurs finies !c » lignes contenant des valeurs finies !
• Dans chaque ligne, il faut choisir une valeur.Dans chaque ligne, il faut choisir une valeur.
• Cette valeur sera au moins aussi grande que la plus petite valeur finie dans Cette valeur sera au moins aussi grande que la plus petite valeur finie dans la ligne.la ligne.
• Nous obtenons une borne inférieure en sommant « s » et les « n-c » minima Nous obtenons une borne inférieure en sommant « s » et les « n-c » minima des lignes non complètement remplis de +des lignes non complètement remplis de + . .
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1717
• Exemple :Exemple :
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
++
++
++(( ))3030
1010
3535
1515
1717 4545
++ ++ ++
++
++
++
++
s = 42s = 42
L’idée :L’idée :
Il faudra bien partir de la seconde ville et cela coûteraIl faudra bien partir de la seconde ville et cela coûteraau moins 15, de même pour les autres villes !au moins 15, de même pour les autres villes !
Notre raisonnement reste incomplet car il ne tientNotre raisonnement reste incomplet car il ne tientpas compte du fait que nous ne pourrons pas allerpas compte du fait que nous ne pourrons pas allerdeux fois vers la première ville !deux fois vers la première ville !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1818
• Exemple :Exemple :
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
++
++
++(( ))3030
1010
3535
1515
1717 4545
++ ++ ++
++
++
++
++
s = 42s = 42
Donc :Donc :
lb ( A ) = 102 =lb ( A ) = 102 = 42 42 + 15+ 15 + 10+ 10 + 35+ 35
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 1919
• Exemple :Exemple :
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
++
++
++(( ))1515
00
00
00
77 3535
++ ++ ++
++
++
++
++
s = 42s = 42
Donc :Donc :
lb ( A ) = 102 =lb ( A ) = 102 = 42 42 + 15+ 15 + 10+ 10 + 35+ 35
Mieux, nous diminuons chaque ligne de son minimumMieux, nous diminuons chaque ligne de son minimumet nous appliquons le même raisonnement aux colonnes !et nous appliquons le même raisonnement aux colonnes !
lb ( A ) = 109 = 102lb ( A ) = 109 = 102 + 7+ 7
Cette borne inférieure correspondCette borne inférieure correspondpar chance à la longueur du pluspar chance à la longueur du pluscourt circuit : court circuit : A – C – B – D – A A – C – B – D – A
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2020
• Principe du Branch-and-Bound ( Séparer et évaluer ) :Principe du Branch-and-Bound ( Séparer et évaluer ) :
• Nous connaissons opt* !Nous connaissons opt* !
• Nous calculons lb( A ) en « temps raisonnable » !Nous calculons lb( A ) en « temps raisonnable » !
• Si opt* <= lb( A ) , nous pouvons éliminer A !Si opt* <= lb( A ) , nous pouvons éliminer A !
• Si opt* > lb( A ) , nous explorons A normalement !Si opt* > lb( A ) , nous explorons A normalement !
Branch and BoundBranch and Bound----------------------------------------------------------------------------------------------------------------------------------
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2121
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
• Nous renonçons à l’optimum !Nous renonçons à l’optimum !
• Une solution rapide et pas trop mauvaise fera Une solution rapide et pas trop mauvaise fera l’affaire !l’affaire !
• Calculons juste un réseau connexe de poids minimal !Calculons juste un réseau connexe de poids minimal !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2222
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
Il n’est pas complet, mais ce n’est pas grave !Il n’est pas complet, mais ce n’est pas grave !
3030
1515
1212 1010
1818
88
7755
Nous relions tout le monde au coût minimal !Nous relions tout le monde au coût minimal !
991111
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2323
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
• Nous renonçons à l’optimum !Nous renonçons à l’optimum !
• Une solution rapide et pas trop mauvaise fera l’affaire !Une solution rapide et pas trop mauvaise fera l’affaire !
• Calculons juste un réseau connexe de poids minimal !Calculons juste un réseau connexe de poids minimal !
• C’est un « arbre de recouvrement minimal » (ARM) !C’est un « arbre de recouvrement minimal » (ARM) !
• Son calcul est en O( n^2 ) .Son calcul est en O( n^2 ) .
• Nous allons en déduire un circuit, peut-être pas optimal ! Nous allons en déduire un circuit, peut-être pas optimal !
• Mais, notre solution sera rapide à calculer !Mais, notre solution sera rapide à calculer !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2424
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
3030
1515
1212 1010
1818
88
7755
991111
coût( ARM ) = 45coût( ARM ) = 45
Nous doublonsNous doublonschaque arête etchaque arête etconstruisons unconstruisons uncircuit : CIRCcircuit : CIRC
coût( CIRC ) = 90coût( CIRC ) = 90
coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2525
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
3030
1515
1212 1010
1818
88
7755
991111
coût( ARM ) = 45coût( ARM ) = 45
Nous doublonsNous doublonschaque arête etchaque arête etconstruisons unconstruisons uncircuit : CIRCcircuit : CIRC
coût( CIRC ) = 90coût( CIRC ) = 90
Nous évitons de passerNous évitons de passerplusieurs fois dans unplusieurs fois dans unsommet en prenant unsommet en prenant unraccourci ! ! !raccourci ! ! !
coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2626
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
3030
1515
1212 1010
1818
88
7755
991111
coût( ARM ) = 45coût( ARM ) = 45
Nous doublonsNous doublonschaque arête etchaque arête etconstruisons unconstruisons uncircuit : CIRCcircuit : CIRC
coût( CIRC ) = 90coût( CIRC ) = 90
Nous évitons de passerNous évitons de passerplusieurs fois dans unplusieurs fois dans unsommet en prenant unsommet en prenant unraccourci ! ! !raccourci ! ! !
coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )coût( ARM ) <= coût( TSP ) <= coût( CIRC ) = 2*coût( ARM )
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2727
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
3030
1515
1212 1010
1818
88
7755
991111
coût( ARM ) = 45coût( ARM ) = 45
Nous doublonsNous doublonschaque arête etchaque arête etconstruisons unconstruisons uncircuit : CIRCcircuit : CIRC
coût( CIRC ) = 90coût( CIRC ) = 90
Nous évitons de passerNous évitons de passerplusieurs fois dans unplusieurs fois dans unsommet en prenant unsommet en prenant unraccourci ! ! !raccourci ! ! !
coût( ARM ) <= coût( TSP ) <= coût( ARM ) <= coût( TSP ) <= coût( SOL )coût( SOL ) <= coût( CIRC ) = 2*coût( ARM ) <= coût( CIRC ) = 2*coût( ARM )
Si l’inégalité triangulaireSi l’inégalité triangulaireest vérifiée le circuitest vérifiée le circuit
SOL que nous trouvonsSOL que nous trouvonsest plus court que CIRC ! ! !est plus court que CIRC ! ! !
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2828
Solutions approchéesSolutions approchées----------------------------------------------------------------------------------------------------------------------------------
• Nous obtenons un circuit en temps O( n^2 ) !Nous obtenons un circuit en temps O( n^2 ) !
• Notre solution est au pire deux fois plus longue que le Notre solution est au pire deux fois plus longue que le circuit optimal !circuit optimal !
• C’est en fait très mauvais, dans le pire des cas !C’est en fait très mauvais, dans le pire des cas !
• En moyenne, nous sommes à 5% ou 10% de l’optimum !En moyenne, nous sommes à 5% ou 10% de l’optimum !
• Il y a des algorithmes approchés meilleurs que celui-ci .Il y a des algorithmes approchés meilleurs que celui-ci .
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 2929
• Trier et chercher, recherche textuelleTrier et chercher, recherche textuelle• Listes et arbresListes et arbres• Le back-track, solutions approchéesLe back-track, solutions approchées• Arbres équilibrésArbres équilibrés• Récursivité et induction sur la structureRécursivité et induction sur la structure• Divide and conquer, algorithmes gloutonsDivide and conquer, algorithmes gloutons• Minimax, alpha-betaMinimax, alpha-beta• DérécursionDérécursion• NP-complétude, Branch-and-Bound NP-complétude, Branch-and-Bound • Logique de HoareLogique de Hoare• Programmation dynamiqueProgrammation dynamique• Complexité et calculabilitéComplexité et calculabilité
Nous avons parlé de tout ceci :Nous avons parlé de tout ceci :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3030
• Langages objetsLangages objets
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3131
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3232
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3333
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3434
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3535
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3636
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3737
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3838
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
• Traitement d’images, son, . . .Traitement d’images, son, . . .
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 3939
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
• Traitement d’images, son, . . .Traitement d’images, son, . . .
• Optimisation combinatoireOptimisation combinatoire
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 4040
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
• Traitement d’images, son, . . .Traitement d’images, son, . . .
• Optimisation combinatoire Optimisation combinatoire
• Génie logicielGénie logiciel
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 4141
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
• Traitement d’images, son, . . .Traitement d’images, son, . . .
• Optimisation combinatoire Optimisation combinatoire
• Génie logicielGénie logiciel
• Tests de programmesTests de programmes
Nous n’avons pas parlé de :Nous n’avons pas parlé de :
10 janvier 200710 janvier 2007 Cours d'algorithmique 12 / IntranetCours d'algorithmique 12 / Intranet 4242
• Langages objetsLangages objets
• Langages fonctionnelsLangages fonctionnels
• Langages logiquesLangages logiques
• GraphesGraphes
• Analyse numériqueAnalyse numérique
• Calcul parallèleCalcul parallèle
• Calcul répartiCalcul réparti
• Du Web et ses langagesDu Web et ses langages
• Traitement d’images, son, . . .Traitement d’images, son, . . .
• Optimisation combinatoire Optimisation combinatoire
• Génie logicielGénie logiciel
• Tests de programmesTests de programmes
• . . . et bien d’autres !. . . et bien d’autres !
Nous n’avons pas parlé de :Nous n’avons pas parlé de :