Intelligence Artificielle Distribuée. Dossier technique. IAD TeamZ

Dimension: px
Commencer à balayer dès la page:

Download "Intelligence Artificielle Distribuée. Dossier technique. IAD TeamZ"

Transcription

1 Intelligence Artificielle Distribuée Dossier technique IAD TeamZ 29 mai 2004

2 Table des matières 1 Introduction Historique d Othello Othello But du jeu Support Algorithmique Fonction d évaluation MinMax et Alpha Beta L algorithme MinMax Alpha Beta ou MinMax amélioré Codage de l othellier Algorithmique distribuée le maître l esclave Amélioration LAM/MPI Introduction à LAM/MPI Installation de LAM/MPI Avec les sources Sous Debian Parc Informatique EPITA Configuration problèmes communs problèmes liés au PIE IAD compilation Paramètres environnement du PIE le./configure Configuration Spécification automatique Spécification avancee Exécution LAM/MPI plusieurs esclaves sur une seule machine Autres modes

3 6 Résultats Résultats techniques XMPI Webographie 24 3

4 1 Introduction Le but de ce projet était de réaliser une version d othello avec une IA utilisant efficacement plusieurs ordinateurs. 1.1 Historique d Othello Le jeu d Othello 1 sous sa forme actuelle a été commercialisé pour la première fois au Japon en Toutefois, ce jeu est très proche d un jeu anglais vieux d une centaine d années, connu sous le nom de Reversi. Qui a inventé le Reversi alors? Il est difficile de répondre à cette question. Deux gentlemen anglais, Lewis Waterman et John W. Mollett, se disputent la paternité de ce jeu dans les années 1880 et se traitent mutuellement d escrocs. A la fin des années 1880, où le Reversi était extrêmement populaire en Angleterre, les deux protagonistes avaient publié des livrets de règles et soutenaient des fabricants rivaux. Le plus vieil article de presse sur le jeu connu à ce jour est paru dans "The Saturday Review" daté du 21 août Le jeu est peu diffusé jusqu à ce que l auteur de jeux Walter H. Peel écrive au printemps 1888 une série d articles publiés dans "The Queen", un magazine spécialisé dans "des sujets intéressant les dames". Plusieurs livrets sont alors publiés mais le jeu perd de sa popularité au début du siècle. On trouve tout au long du vingtième siècle des références au jeu de Reversi mais celui-ci reste très confidentiel malgré une diffusion en Europe Centrale et aux Etats-Unis. Othello a été inventé en 1971 au Japon par Goro Hasegawa. Son père, professeur de littérature anglaise, suggéra le nom Othello par analogie avec les rebondissements de la pièce de Shakespeare. Il y a seulement deux différences avec Reversi : une seule position de départ est autorisée, et on peut emprunter des pions à l adversaire s il est obligé de passer. Dès 1973, le jeu devient un succès commercial au Japon et le premier championnat national est organisé. En 1976 le jeu d Othello envahit les Etats-Unis et l Angleterre. Parallèlement àà ce succès, des fédérations nationales se créent ; le premier championnat du monde est ainsi organisé en 1977 sur une base annuelle. En 1980, pour la première fois, le titre n est pas remporté par un Japonais : le joueur américain Jonathan Cerf bat le champion asiatique Takuya Mimura en finale. Le jeu d Othello apparaît en France à la fin des années 70 tandis que le premier championnat de France est organisé en En 1983, la Fédération 1 Othello est une marque déposé, on préférera le terme "Reversi" 4

5 Française d Othello est créée et va monter en puissance grâce, notamment, au journal "Jeux & Stratégie" qui fait du jeu un de ses "Grands Classiques". En 1984, Paul Ralle, alors âgé de 16 ans, devient le premier Français (et le deuxième non- Japonais) à remporter le titre suprême. La seconde moitié des années 80 voit un développement lent mais constant de la pratique du jeu. Toujours parmi les meilleurs au niveau mondial, l équipe de France remporte en 1990 le titre par équipe (performance qu elle rééditera en 1994 et 1998), tandis que Marc Tastet devient en 1992 le deuxième champion du monde français. 1.2 Othello Othello est un jeu de stratégie à deux joueurs : Noir et Blanc. Il se joue sur un plateau unicolore de 64 cases, 8 sur 8, appelé othellier. Ces joueurs disposent de 64 pions bicolores, noirs d un côté et blancs de l autre. Par commodité, chaque joueur a devant lui 32 pions mais ils ne lui appartiennent pas et il doit en donner à son adversaire si celui-ci n en a plus. Un pion est noir si sa face noire est visible et blanc si sa face blanche est sur le dessus. Pour jouer, il faut poser un pion sur une case vide, de manière à encadrer une ou plusieurs rangées de pions adverses qui sont alors retournées et qui nous appartiennent. 1.3 But du jeu Avoir plus de pions de sa couleur que l adversaire à la fin de la partie. Celle-ci s achève lorsque aucun des deux joueurs ne peut plus jouer de coup légal. Cela intervient généralement lorsque les 64 cases sont occupées. 1.4 Support Le projet est sous licence GPL 2 et est hébergé sur GNA 3 ici 4. Il sera bientôt téléchargeable en tar.bz2 ici 5. En attendant un accès au CVS en anonyme est proposé : cvs -d:pserver:anonymous@cvs.gna.org:/cvs/iad co iad

6 2 Algorithmique Nous avons implementé un minimax et un minimax_alpha_beta non-distribué de référence pour que chaque membre du groupe puisse comprendre l algorithme facilement. On peut jouer contre l ordinateur sans distribuer l algorithme (option -IA). 2.1 Fonction d évaluation Les algorithmes doivent être capables d évaluer une situation, c est a dire la valeur d un échiquier par rapport à un coup considéré. Ainsi à un echiquier dans une certaine configuration est associé une note pour un joueur consideré. Plus la note est grande plus le coup est pertinent et permettra de se diriger vers une victoire. C est la fonction d évaluation qui fournie cette note en évaluant une situation selon plusieurs critères : Les pions positionnés Il s agit des pions définitif groupés autour d un angle. Les pions C-X Les 3 pions autour d un angle sont les 3 pions C-X (les 2 du bord sont les pions C et celui en diagonale est le X) Les pions insérés Il s agit d un groupe de pions entièrement cernés par des pions adverses (cheval de troie) Les pions incrustés C est une invention maison : c est moins bien noté que les pions insérés : en fait les pions insérés sont tous incrustés Il s agit de pions complètement entourés, avec possibilité d avoir des voisins enemis. La mobilité Plus un coup laisse de possibilités a l adversaire, plus il aura statistiquement de chances de jouer un bon coup, il faut donc réduire ses possibilités avec la technique dite du bétonnage. Tous ces critères sont évalués par la suite pour donner une note au coup joué. pour un même critère, une note peut être positive ou négative selon la situation : un pion X est souvent malheureux mais dans certaines situations, cela peut-être très rentable. 6

7 L algorithme va chercher à trouver les coups maximisants sa note et minimisant la note du joueur adverses. Les valeurs d évaluation des différentes stratégies décrites ci-dessus ont été modifiées par bon sens et tâtonnement, et en jouant de nombreuses parties, soit contre un humain, soit contre le générateur aléatoire. 2.2 MinMax et Alpha Beta L algorithme MinMax Son principal atout est de tester tous les coups possibles jusqu à une certaine profondeur, y compris donc les coups tels que les sacrifices, etc..., qui paraissent dans un premier temps mauvais. Son principal défaut est, à l inverse, d être très lent : le nombre de configurations à tester évolue exponentiellement en fonction de la profondeur de réflexion, et donc le temps de réflexion également. La stratégie minmax suppose tout d abord que chacun des joueurs joue son meilleur coup (par rapport aux valeurs calculées par l algorithme) à chaque fois ; ça paraît discutable, mais ça n a pas l air de marcher si mal que ça : si l adversaire ne joue pas son meilleur coup, alors par définition c est qu il arrivera à une position moins forte qu il n aurait pu (toujours par rapport aux valeurs calculées par l algorithme lui-même). On commence donc par développer l arbre des coups possibles jusqu à la profondeur maximale. Pour cela on regarde l échiquier et on calcule les positions jouables pour le joueur courant (l ordinateur). Pour ce début de partie : Si c est "à l algorithme" de jouer en premier il a quatre coups possibles : C3, D2, F4, E5. Supposons qu il joue C3, au coup suivant l adversaire à trois coups possibles C2, E2 et C4 : Ainsi de suite. On aura donc un "arbre" des coups possibles comme celui visible sur la figure 3 page 9. Après chaque coup, on obtient une position : après le coup C3, une position dans laquelle c est à l adversaire de "l algorithme" de jouer, après la suite C3 - C2, c est à nouveau à l algorithme de jouer, et ainsi de suite. Après chaque suite de trois coups, notamment (donc aux feuilles de l arbre), c est à l adversaire de l algorithme de jouer. La fonction coût devient alors primordiale : c est elle qui va decider de la meilleur branche, c est a dire celle menant à un score le plus élevé possible. 7

8 FIG. 1 Début de partie FIG. 2 Après un premier coup 8

9 FIG. 3 Arbre de l algorithme MinMax Cela est notamment necessaire du fait qu on ne peut pas calculer absolument tous les coups possibles mais qu on doivent se limiter à une certaine profondeur d arbre selon les ressources allouées (nombre de nodes,...). L algorithme MiniMax, dû à Von Neumann, est très simple : on visite l arbre de jeu pour faire remonter à la racine une valeur (appelée "valeur du jeu") qui est calculée récursivement. On peut aller à n importe quelle profondeur de réflexion, en gardant bien à l esprit cependant que ce n est pas très rapide (on regarde tout l arbre, dont la taille croit exponentiellement en fonction de la profondeur). Pour être sûr d aller jusqu a la fin de la partie il faut compter une profondeur au moins égale au nombre de case sur l échiquier (dans le cas fictif ou l on passerait tout le temps). Il faut également garder à l esprit que cette stratégie dépend énormément de la qualité de la fonction d évaluation (on peut par exemple lorsque l on detecte que l on va gagner la partie à coup sur dans une certaine branche lui donner plus de poid). Le pseudo code de l algorithme est le suivant : minimax(in game board, in int depth, in int max_depth, out score chosen_score, out score chosen_move) begin 9

10 if (depth = max_depth) then chosen_score = evaluation(board); else moves_list = generate_moves(board); if (moves_list = NULL) then chosen_score = evaluation(board); else for (i = 1 to moves_list.length) do best_score = infinity; new_board = board; apply_move(new_board, moves_list[i]); minimax(new_board, depth+1, max_depth, the_score, the_move); if (better(the_score, best_score)) then best_score = the_score; best_move = the_move; endif enddo chosen_score = best_score; chosen_move = best_move; endif endif end Alpha Beta ou MinMax amélioré On observe que l algorithme MINIMAX effectue l évaluation pour tous les noeuds de l arbre de jeu d un horizon donné. Mais il existe des situations dans lesquelles, pour déterminer la valeur MiniMax associée à la racine, il n est pas nécessaire de calculer les valeurs associées à tous les noeuds de l arbre. On peut remarquer une telle situation dans la figure suivante, où la racine a un fils avec la valeur maximale possible (+100), donc les valeurs des autres fils n importent pas : elles ne peuvent pas changer la valeur MiniMax : La valeur 100 du fils central permet d éviter d explorer les autres branches : elle ne pourront pas changer la valeur MiniMax L algorithme alpha-beta est une optimisation du MiniMax, qui "coupe" des sous-arbres dès que leur valeur devient inintéressante aux fins du calcul de la valeur MiniMax du jeu. Cette optimisation permet souvant de diviser par deux le temps de calcul, sur le jeu othello le gain est de 30%. De plus en pratique ce gain permet de doubler la profondeur de l arbre. 10

11 FIG. 4 Nécessité d utiliser alpha-beta Le nom de l algorithme vient du nom donné a des valeurs portées par les noeuds dans le cas où il est utilisé : 1. alpha d un noeud : est une approximation par le bas de la vraie valeur du noeud. Elle est égale à la valeur sur les feuilles, et est initialisée à inf ailleurs. Ensuite, sur les noeuds joueur elle est maintenue égale à la plus grande valeur obtenue sur les fils visités jusque là, et elle est égale à la valeur alpha de son prédécesseur sur les noeuds opposant. 2. beta d un noeud : c est une approximation par le haut de la vraie valeur du noeud. Elle est égale à la valeur sur les feuilles, et est initialisée à +inf ailleurs. Ensuite, sur les noeuds opposant elle est maintenue égale à la plus petite valeur obtenue sur les fils visités jusque là, et elle est égale à la valeur beta de son prédécesseur sur les noeuds joueur. Le pseudo code de l algorithme est le suivant : minimax (in game board, in int depth, in int max_depth, in boolean alpha_beta, in score black_best, in score white_best, out score chosen_score, out score chosen_move) begin : 11

12 end. : minimax(new_board, depth+1, max_depth, alpha_beta, black_best, white_best, the_score, the_move); if (alpha_beta) then if (to_move(black) and (the_score > black_best)) if (the_score > white_best) break; /* alpha_beta cutoff */ else black_best = the_score; endif endif if (to_move(white) and (the_score < white_best)) if (the_score < white_best) break; /* alpha_beta cutoff */ else white_best = the_score; endif endif endif : : Codage de l othellier L othellier est de taille variable, le choix intervenant à la compilation. Ceci permet de tester plus facilement l algorithme et nécessite plus de puissance de calcul. 3 Algorithmique distribuée Il y a principalement deux manière de distribuer minmax : 1. Méthode du split : le maitre execute le corps de l algorithme et chaque exclave ne fait qu évaluer des positions avec la fonction coût 6. 6 cf Principle Variation Splitting (Marsland, Olafsson, and Schaeffer, 1986) 12

13 2. Méthode du depth : le maître évalue le premier niveau et répartit sur les esclaves les calculs à faire. Chaque esclaves s occupant lui même des sous niveaux de l algorithme (chaque esclave execute MinMax mais en commençant à une profondeur différente). Ces deux méthodes ont leurs points faibles et leurs avantages : Pour la méthode du split : + Tous les esclaves travaillent en permanence + Si un esclave meurt on peut facilement redistribuer - Beaucoup de transfert réseau Pour la méthode du depth : + Peu de transfert réseau + Fiabilité : à chaque coup on envoi uniquement aux esclaves "vivants" - Si un esclave meurt on devra peut être refaire beaucoup de calcul en fonction de son niveau. - Certains esclaves peuvent ne pas travailler pour certains coups. Nous avons choisis la deuxième méthode. Notre minimax est distribué de la sorte : le maître Calcul de la liste des coups possibles Traitement des cas triviaux (un ou zero coups possibles) Creation des jobs 7 par le dispatcher Envoi des jobs aux processus esclaves Recuperation des meilleurs coups et comparaison Renvoi du meilleur coup Pour jouer en distribuant l algorithme il faut utiliser l option NETWORK l esclave Réception d une situation à tester Algorithme alpha beta dessus Renvoi au maître du meilleur coup trouvé et de sont coût 7 Un job un est un noeud de l arbre à évaluer 13

14 3.0.6 Amélioration En faisant cela on se rend vite compte que au dela de 6 esclaves (le nombre moyen de coup jouables) beaucoups ne servent que très peu ou pas du tout. Par exemple si au premier coup on a 5 possibilités et 20 esclaves le maitre n enverra des jobs que à 5 esclaves. La solution est d envoyer en même temps que les situation une liste d esclaves utilisable pour chaque exclaves. Par exemple dans le cas précédents si les esclaves sont numérotés de 1 à 20 on aura : esclave 1 : évalue cout de position 1 avec les esclaves 6,7,8 esclave 2 : évalue cout de position 2 avec les esclaves 9,10,11 esclave 3 : évalue cout de position 3 avec les esclaves 12,13,14 esclave 4 : évalue cout de position 4 avec les esclaves 15,16,17 esclave 5 : évalue cout de position 5 avec les esclaves 18,19,20 4 LAM/MPI 4.1 Introduction à LAM/MPI LAM/MPI est une bibliothèque de calcul parallèlle. MPI signifie Message Passing Interface et est un standard qui nous permet d écrire des applications distribuées portables. Il en existe plusieurs implémentations. Nous avons choisi LAM, qui est disponible sur toutes les distributions dignes de ce nom, et pour laquelle nous disposions d une documentation de qualité. LAM/MPI 8 est un environnement de programmation MPI développé par Ohio Supercomputer Center 9. Il permet à la fois le débuggage des applications MPI grace à des démons (comme PVM) et l éxécution performante des codes en courtcircuitant ces démons lorsque l application est testée

15 4.2 Installation de LAM/MPI Avec les sources Les sources de la version utilisée sont disponibles depuis l url suivante : Une fois les sources récupérée on compile les binaires :./configure --prefix=~/lam/ --without-romio make make install Sous Debian Pour compiler IAD, vous aurez besoin du paquet lam4-dev. Le problème est que ce paquet contient la version 7 de LAM, non compatible avec les versions inferieures (ou du moins posant suffisamment de problèmes de deploiment). Ceci venant de format de message incompatibles et d une liaison avec une version précise lors de la compilation. Pour eviter les problèmes d execution en cas de communication avec les machines du PIE, mieux vaut compiler LAM a partir des sources 10 afin d uniformiser les versions utilisées. Pour les autres distributions. Attention aux problèmes des versions. Utilisez bien la et pas les 7.*.* Parc Informatique EPITA Choix de la version de LAM : Nous n avons pas pu compiler les dernières versions de LAM sur le PIE, et nous sommes donc rabattus sur des versions anterieures : la Ceci ne devrait pas être pénalisant étant donné l usage que l on compte en faire. Une version compilée se trouve ici : " cessie_g/www/lam_install.tar.bz2". ou Lieu de l installation : Il faut que les binaires soient accessibles à toutes les machines participant a la distribution. Il faut donc installer les binaires sur votre compte ou sur le sgoinfre en cas de problème de quotas. 10 cf section

16 4.3 Configuration problèmes communs Clefs ssh : Lorsque vous lancez lamboot, il ne doit y avoir aucune sortie standard, c est à dire que aucune confirmation ou action ne doit être nécessaire. Ainsi vos clefs ssh ne doivent pas vous demander de mot de passe. deux solutions, soit vous creez vos clefs sans passphrase (non securisé), soit vous utilisez ssh-agent comme suit : eval ssh-agent -s ssh-add qui lorsque la passphrase sera demandé la renverra automatiquement problèmes liés au PIE environnement avoir un.mytcshrc comme celui qui suit (remplacer bien sur cessie_g par votre login ;), ne rien laisser d autre et la dernière ligne est indispensable!) : setenv PATH /u/a2/cessie\_g/lam/bin:/u/a2/cessie\_g/iad/bin\${path} setenv LAMHOME /u/a2/cessie\_g/lam/ setenv LAMRSH "ssh -x" alias. echo Je ne buggerais plus N.B : même si vous utilisez zsh, bash ou autre d habitude cela concerne toujours le.mytcshrc qui est utilisé par lamboot pour les vm. En effet lors du lancement des machines virtuelles sur les différents noeuds du réseau le shell par défaut est obligatoirement utilisé. En l occurence à l école le shell tcsh 11. Le PATH et LAHMOME permettent aux machines virtuelles de trouver LAM, LAMRSH indique que l on utilise ssh et pas rsh. Enfin l alias résoud un problème spécifique au PIE. Les machines virtuelles pourront alors être lancées sur des pcs distants

17 5 IAD 5.1 compilation Paramètres Les seuls paramètres intéressants à modifier sont : BOARD_SIZE : Dans board.h qui représente la taille de la board. MAX_LEVEL : La profondeur d évaluation de l algorithme (dans minmax_othello.h) ELAGUEUR : La puissance des cut-offs de l algorithme alpha-beta (dans minmax_othello.h) environnement du PIE Pour génerer le configure, il vous faut une version correcte des autotools : export PATH=/u/prof/yaka/bin/:\$PATH./autogen.sh NB : n utilisez surtout pas ceux d akim avec lesquels j ai eu de nombreux problèmes! le./configure Pour compiler IAD avec MPI il faut faire : CC=mpicc./configure --prefix=\$home/iad && make all install pour compiler avec le débuggage : CC=mpicc./configure --prefix=\$home/iad --enable-debug && make all install cela definira : IAD_DEBUG : macro a utiliser : IAD_DEBUG(command) ; IAD_DEBUG_FLAG : define a utiliser avec un #ifdef./configure --help vous donnera plus d informations. La compilation abouti à deux exécutables dans le répertoire src/ : iad et iadslave. L exécutable iad s occupe de l affichage graphique et de l envoi de données aux esclaves, alors que iadslave s occupe uniquement de retourner les coups (en utilisant minmax) pour une position et une profondeur donnée. 17

18 5.2 Configuration Spécification automatique Le "./configure" genère "/tmp/lamhosts" automatiquement avec la machine sur laquelle vous etes en premier (le maître) et une liste de nodes listés dans le fichier lamnodes. Ensuite on lance la vm sur les différents noeuds avec la commande : lamboot /tmp/lamhosts -vd Les deux dernieres lignes du résultat de la commande précédente doivent être les suivantes : topology done lamboot completed successfully Les machines virtuelles sont alors lancées sur les différents noeuds en attente de travaux Spécification avancee On peut mettre plus de travaux sur un pc avec l option CPU, le fichier lamhosts ressemblant alors à : localhost machine1 CPU=2 machine2 CPU=1 Le nom (ou l ip) de sa propre machine doit toujours être en debut de liste. 5.3 Exécution Il faut ensuite faire un fichier add.shema qui précise ce qui est lancé sur chaque noeud du réseau : n0 iad -b NETWORK n1 iadslave Ici on a indiqué que le noeud 0 fait tourner iad et le noeud 1 l éxecutable iadslave. NB : verifiez votre PATH pour qu il comprenne bien iad et iadslave. Ensuite pour lancer IAD qui utilisera tous les noeuds du réseau on lance sur le maître la commande : 18

19 mpirun add.schema NB : Attention bien distinguer les messages affichés par le maître et les esclaves car ils sont tous affichés sur le maître LAM/MPI plusieurs esclaves sur une seule machine Il suffit de changer les fichiers précédents avec : $ cat add.schema n0 iad -b NETWORK n0 -np X iadslave $ cat lamhosts localhost Remplacer X par le nombre d esclaves voulu. Ensuite le mpirun add.schema les utilisera tous sur le pc courant Autres modes Iad supporte de nombreuses options : Usage: iad [-h] [-b <input>] [-w <input>] [-o <output>] -h Help -b Input player (Black) [GRAPHIC] -w Input player (White) [GRAPHIC] -o Output [GRAPHIC] I/O values: TEXT GRAPHIC PIPE IA NETWORK RANDOM text mode graphic mode pipe mode (interface) EXPERIMENTAL! computer (input only) computer (input only) random mode (input only) Par exemple pour jouer contre l IA sans distribution on peut faire :./iad -b IA Ou pour tester la distribution de l algorithme contre un random :./iad -b NETWORK -w RANDOM 19

20 6 Résultats 6.1 Résultats techniques Malgré la distribution de l algorithme le jeu reste jouable (environ une seconde entre chaque coup pour une profondeur de 9 avec 15 esclaves 12 ). Les parties ont été testées contre de nombreux autres jeux d othello de niveaux conséquents 13 et les resultats semblent bons. Une procédure de test intensive à été mise au point en utilisant une IA random et l ordinateur gagne à 100% (environ 300 parties testées). Seulement deux points sont à améliorer : MPI ne gère pas facilement la mort des esclaves : si un esclave meurt (sigkill par exemple) la partie s arrete sans alternative : Lamboot stop directement tous les noeuds du réseau y compris le programme maitre. La redistribution des travaux en cas de problèmes ou d esclave inocupés n a pas été faite (problème avec la communication MPI qui ne permet pas d envoyer facilement des types complexes 14 ) Débug MPI du de l envoi et de la réception des coups et coûts : DEBUT MPI Je suis le maitre et il y a 13 process (moi compris). Master: debut create jobs: J ai 12 esclaves, chaque esclave va faire AU MIN 1 jobs parmis les 12. job numero 11 [pour player 2] Liste des coup a tester: 53, job numero 10 [pour player 2] Liste des coup a tester: 54, job numero 9 [pour player 2] Liste des coup a tester: 62, job numero 8 [pour player 2] Liste des coup a tester: 63, job numero 7 [pour player 2] Liste des coup a tester: 64, job numero 6 [pour player 2] Liste des coup a tester: 65, job numero 5 [pour player 2] Liste des coup a tester: 70, job numero 4 [pour player 2] Liste des coup a tester: 71, job numero 3 [pour player 2] Liste des coup a tester: 74, 12 Simulé sur un seul ordinateur Les structs par exemple 20

21 FIG. 5 Capture d écran en cours de partie job numero 2 [pour player 2] Liste des coup a tester: 76, job numero 1 [pour player 2] Liste des coup a tester: 78, job numero 0 [pour player 2] Liste des coup a tester: 79, Master: fin create job: 12 jobs crees. Master: debut de l envoi des donnees: Master: send jobs 11 to slave number 1 Master: send jobs 10 to slave number 2 Master: send jobs 9 to slave number 3 Master: send jobs 8 to slave number 4 Master: send jobs 7 to slave number 5 Master: send jobs 6 to slave number 6 Master: send jobs 5 to slave number 7 Master: send jobs 4 to slave number 8 Master: send jobs 3 to slave number 9 Master: send jobs 2 to slave number 10 Master: send jobs 1 to slave number 11 Master: send jobs 0 to slave number 12 21

22 Master: fin envoi des donnees. Master: debut reception des donnees sur 13 proc. * slave 1: La board recue contient 1 positions a tester pour le player 2. * slave 1: Envoi la meillleure position 53 (coutant 229) au maitre * slave 1: Fin envoi. Attente next job * slave 2: La board recue contient 1 positions a tester pour le player 2. * slave 2: Envoi la meillleure position 54 (coutant 234) au maitre * slave 2: Fin envoi. Attente next job * slave 3: La board recue contient 1 positions a tester pour le player 2. * slave 3: Envoi la meillleure position 62 (coutant 212) au maitre * slave 3: Fin envoi. Attente next job * slave 4: La board recue contient 1 positions a tester pour le player 2. * slave 4: Envoi la meillleure position 63 (coutant 221) au maitre * slave 4: Fin envoi. Attente next job * slave 5: La board recue contient 1 positions a tester pour le player 2. * slave 5: Envoi la meillleure position 64 (coutant 220) au maitre * slave 5: Fin envoi. Attente next job * slave 6: La board recue contient 1 positions a tester pour le player 2. * slave 6: Envoi la meillleure position 65 (coutant 231) au maitre * slave 6: Fin envoi. Attente next job * slave 7: La board recue contient 1 positions a tester pour le player 2. * slave 7: Envoi la meillleure position 70 (coutant 229) au maitre * slave 7: Fin envoi. Attente next job * slave 8: La board recue contient 1 positions a tester pour le player 2. * slave 8: Envoi la meillleure position 71 (coutant 221) au maitre 22

23 * slave 8: Fin envoi. Attente next job * slave 9: La board recue contient 1 positions a tester pour le player 2. * slave 9: Envoi la meillleure position 74 (coutant 227) au maitre * slave 9: Fin envoi. Attente next job * slave 10: La board recue contient 1 positions a tester pour le player 2. * slave 10: Envoi la meillleure position 76 (coutant 236) au maitre * slave 10: Fin envoi. Attente next job * slave 11: La board recue contient 1 positions a tester pour le player 2. * slave 11: Envoi la meillleure position 78 (coutant 228) au maitre * slave 11: Fin envoi. Attente next job * slave 12: La board recue contient 1 positions a tester pour le player 2. * slave 12: Envoi la meillleure position 79 (coutant 230) au maitre * slave 12: Fin envoi. Attente next job Master: a recut la position 53 avec le cout 229 Master: a recut la position 54 avec le cout 234 Master: a recut la position 62 avec le cout 212 Master: a recut la position 63 avec le cout 221 Master: a recut la position 64 avec le cout 220 Master: a recut la position 65 avec le cout 231 Master: a recut la position 70 avec le cout 229 Master: a recut la position 71 avec le cout 221 Master: a recut la position 74 avec le cout 227 Master: a recut la position 76 avec le cout 236 Master: a recut la position 78 avec le cout 228 Master: a recut la position 79 avec le cout 230 Master: fin reception des donnees Master: Le coup choisi est FIN MPI resultat:

24 FIG. 6 XMPI 6.2 XMPI Une des caractéristiques les plus intéressantes de LAM est la possibilité d exploiter les traces générées avec l option -ton de LAM mpirun. Le script lamjob appelle automatiquement lamtrace qui collecte ces traces dans le fichier lamjob.lamtr. L application XMPI 15 permet d exploiter les traces produites. A la fin de l exécution du code on lance xmpi sur le noeud maitre. On observe sur la figure 6 page 24 en vert les temps d activité (calcul), en rouge l inactivité et en jaune la communication. 7 Webographie

Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes

Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes MEMOIRE DE FIN D ETUDES MASTER D INFORMATIQUE Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes Étudiant Superviseurs : HOANG Duc Viet : HO Tuong

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck) Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck) Stéphane Cardon Nathalie Chetcuti-Sperandio Fabien Delorme Sylvain agrue CRI - Université d Artois {cardon,chetcuti,delorme,lagrue}@cril.univ-artois.fr

Plus en détail

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin Linux Gazette n 110 Janvier 2005 Majid Hameed Copyright 2005 Majid Hameed Copyright 2005 Gauthier Savart Copyright 2005 Joëlle Cornavin Article paru dans le n 110 de la Gazette Linux de janvier 2005. Traduction

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Dossier projet isn 2015 par Victor Gregoire

Dossier projet isn 2015 par Victor Gregoire Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

SSH, le shell sécurisé

SSH, le shell sécurisé , le shell sécurisé Objectifs : 1. Présenter le protocole et les outils associés Sébastien JEAN Pourquoi 1/2? Les services standards ne supportent que peu de propriétés de sécurité souvent l identification,

Plus en détail

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-F-404 : Techniques avancées de systèmes d exploitation Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table

Plus en détail

Manuel de System Monitor

Manuel de System Monitor Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...

Plus en détail

L annuaire et le Service DNS

L annuaire et le Service DNS L annuaire et le Service DNS Rappel concernant la solution des noms Un nom d hôte est un alias assigné à un ordinateur. Pour l identifier dans un réseau TCP/IP, ce nom peut être différent du nom NETBIOS.

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Théorie des Jeux Et ses Applications

Théorie des Jeux Et ses Applications Théorie des Jeux Et ses Applications De la Guerre Froide au Poker Clément Sire Laboratoire de Physique Théorique CNRS & Université Paul Sabatier www.lpt.ups-tlse.fr Quelques Définitions de la Théorie des

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

MANUEL D INSTALLATION

MANUEL D INSTALLATION Data Processing Commission Fast Advanced Software for Table soccer - v 1.0 Logiciel de gestion de tournoi de football de table MANUEL D INSTALLATION INSTALLATION INFORMATIQUE DE LA TABLE DE MARQUE & CONFIGURATION

Plus en détail

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement Pharmed gestion de pharmacie hospitalière Installation / déploiement Version 1.0 du 23/05/2006 Date Auteur Version Modification 23/05/06 Pierre CARLIER 1.0 14/06/06 Matthieu Laborie Table des matières

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales Cécile Cavet cecile.cavet at apc.univ-paris7.fr Centre François Arago (FACe), Laboratoire

Plus en détail

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4 TP de Réseaux IP pour DESS Domaine Name System Auteur: Congduc Pham, Université Lyon 1 1 Schéma de départ Figure 1: Schéma des salles TP11 et TD4 Le schéma de départ pour aujourd hui est celui de la figure

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Automatisation de l administration système

Automatisation de l administration système Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications

Plus en détail

PocketNet SNMP/Modbus

PocketNet SNMP/Modbus Volume 1 RBEI-ADISCOM Manuel utilisateur PocketNet SNMP/Modbus CONVERTISSEUR SERIE - ETHERNET Manuel utilisateur PocketNet SNMP/Modbus Table des matières CHAPITRE 1 Caractéristiques utiles à la mise en

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques (bourse EPSRC numéro GR/S21717/01) Enhancing the Perf. Predictability of Grid Appli. with Patterns and

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

UFR de Sciences Economiques Année 2008-2009 TESTS PARAMÉTRIQUES

UFR de Sciences Economiques Année 2008-2009 TESTS PARAMÉTRIQUES Université Paris 13 Cours de Statistiques et Econométrie I UFR de Sciences Economiques Année 2008-2009 Licence de Sciences Economiques L3 Premier semestre TESTS PARAMÉTRIQUES Remarque: les exercices 2,

Plus en détail

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie 1 Présenté par: Yacine KESSACI Encadrement : N. MELAB E-G. TALBI 31/05/2011 Plan 2 Motivation

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond

Plus en détail

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX 3 Network Shutdown Module Network

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

L apprentissage automatique

L apprentissage automatique L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer

Plus en détail

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Evaluation des performances de programmes parallèles haut niveau à base de squelettes Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Les clients puissance cube

Les clients puissance cube LETTRE CONVERGENCE Les clients puissance cube L intelligence artificielle au service du marketing des services N 28 To get there. Together. A PROPOS DE BEARINGPOINT BearingPoint est un cabinet de conseil

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

Tests de SlipStream sur les plateformes StratusLab@LAL et OpenStack@CC-IN2P3 : vers la. Vers la fédération du Cloud computing

Tests de SlipStream sur les plateformes StratusLab@LAL et OpenStack@CC-IN2P3 : vers la. Vers la fédération du Cloud computing Tests de sur les plateformes StratusLab@LAL et OpenStack@CC-IN2P3 : vers la fédération du Cloud computing Cécile Cavet1 & Charles Loomis2 (1) Centre François Arago, Laboratoire, Université Paris Diderot,

Plus en détail

VoIP - TPs Etude et implémentation

VoIP - TPs Etude et implémentation VoIP - TPs Etude et implémentation Auteurs : RUIZ Nicolas, LOR Maurice, Julien FERNANDES Relecture : Version 3.0 23 Novembre 2005 SUPINFO - Ecole Supérieure d Informatique de Paris 23. rue de Château Landon

Plus en détail

Canevas théoriques du projet sur le poker Partie A

Canevas théoriques du projet sur le poker Partie A Partie A Dans une partie de poker, particulièrement au Texas Hold em Limit, il est possible d effectuer certains calculs permettant de prendre la meilleure décision. Quelques-uns de ces calculs sont basés

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

Chess Arbiter Pro (version Dames) Notice d utilisation

Chess Arbiter Pro (version Dames) Notice d utilisation Chess Arbiter Pro (version Dames) Notice d utilisation Notice traduite et adaptée avec le concours de la Fédération Française de Jeu de Dames (FFJD) Aug2013 version 2.0 1 Tables des matières 1. CARACTERISTIQUES

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse Questions - Révision- - 1 er Semestre Informatique Durée de l examen : 1h pour 40 questions. Aucun document n est autorisé. L usage d appareils électroniques est interdit. Les questions faisant apparaître

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet Tutorial NL220 Objectifs : Fournir un guide utilisateur pour NL220 Présenter une méthodologie efficace pour la création de projet Newron System http://www.newron-system.com Objectifs :... 1 1. Créer un

Plus en détail

Le réseau et les tables virtuelles Synapse

Le réseau et les tables virtuelles Synapse Le réseau et les tables virtuelles Synapse 1. Les tables virtuelles Synapse...2 1.1 L organisation réseau Synapse et la campagne Cap sur l indépendance...2 1.2 Les tables virtuelles de travail...3 1.3

Plus en détail

Les liaisons SPI et I2C

Les liaisons SPI et I2C DAMÉCOURT BENJAMIN AVRIL 28 Liaisons synchrones Les liaisons SPI et I2C Face arrière d un imac : trois ports USB, un port Firewire 4 et un port Firewire 8 CHRONOLOGIE ANNÉES 7 La liaison SPI et la création

Plus en détail

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE COMMUNICATION TECHNIQUE N TCV060 Ed. 01 OmniVista 4760 Nb de pages : 18 Date : 12-07-2005 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : GESTION ANNUAIRE Veuillez trouver ci-après une documentation

Plus en détail

PRO CED U RE D I N STALLATI O N

PRO CED U RE D I N STALLATI O N Date : 03 Janvier 2012 Date de creation : 03 Janvier 2012 De : Tof006 Nb de pages : 31 Version : 1.00 Objet : Installation d un serveur OCSNG sous Windows 2008 R2 Principe : Ce document décrit dans les

Plus en détail

Travailler avec les télécommunications

Travailler avec les télécommunications Travailler avec les télécommunications Minimiser l attrition dans le secteur des télécommunications Table des matières : 1 Analyse de l attrition à l aide du data mining 2 Analyse de l attrition de la

Plus en détail

La sécurité des réseaux sans fil à domicile

La sécurité des réseaux sans fil à domicile La sécurité des réseaux sans fil à domicile par Martin Felsky Novembre 2009 Table des matières Introduction... 1 L installation de votre réseau sans fil à domicile... 2 Les adresses IP dynamiques... 9

Plus en détail

1 Modélisation d être mauvais payeur

1 Modélisation d être mauvais payeur 1 Modélisation d être mauvais payeur 1.1 Description Cet exercice est très largement inspiré d un document que M. Grégoire de Lassence de la société SAS m a transmis. Il est intitulé Guide de démarrage

Plus en détail

Formation Iptables : Correction TP

Formation Iptables : Correction TP Table des matières 1.Opérations sur une seule chaîne et sur la table filter:...2 2.Opérations sur plusieurs chaînes et sur la table filter:...5 3.Opérations sur plusieurs chaires et sur plusieurs tables

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Master Poly Trader. Manuel d utilisateur. Group IV Benoît Perroud Marius Erni Lionel Matthey David Wenger Lotfi Hussami

Master Poly Trader. Manuel d utilisateur. Group IV Benoît Perroud Marius Erni Lionel Matthey David Wenger Lotfi Hussami Master Poly Trader Manuel d utilisateur Group IV Benoît Perroud Marius Erni Lionel Matthey David Wenger Lotfi Hussami MasterPoly Trader est un logiciel réalisé dans le cadre d un projet de génie logiciel.

Plus en détail

Figure 1a. Réseau intranet avec pare feu et NAT.

Figure 1a. Réseau intranet avec pare feu et NAT. TD : Sécurité réseau avec Pare Feu, NAT et DMZ 1. Principes de fonctionnement de la sécurité réseau Historiquement, ni le réseau Internet, ni aucun des protocoles de la suite TCP/IP n était sécurisé. L

Plus en détail

Matériel. . 9 cartes Personnage

Matériel. . 9 cartes Personnage Avec cette extension, les règles de base peuvent être modifiées de cinq façons différentes et combinables comme bon vous semble Les dames de Troyes font leur apparition sous la forme de trois nouvelles

Plus en détail

CAPTURE DES PROFESSIONNELS

CAPTURE DES PROFESSIONNELS CAPTURE DES PROFESSIONNELS 2 Téléchargement 3 Installation 8 Prise en main rapide 10 Lancement Recherche 14 Gestion des fichiers 23 Compare et Sépare 24 Fichiers annexes 2/ Le menu Utilitaires 32 Internet

Plus en détail

Apprentissage par renforcement (1a/3)

Apprentissage par renforcement (1a/3) Apprentissage par renforcement (1a/3) Bruno Bouzy 23 septembre 2014 Ce document est le chapitre «Apprentissage par renforcement» du cours d apprentissage automatique donné aux étudiants de Master MI, parcours

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

Préparation à l installation d Active Directory

Préparation à l installation d Active Directory Laboratoire 03 Étape 1 : Installation d Active Directory et du service DNS Noter que vous ne pourrez pas réaliser ce laboratoire sans avoir fait le précédent laboratoire. Avant de commencer, le professeur

Plus en détail

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US Introduction Pourquoi utiliser DEL.ICIO.US? Cet outil permet à plusieurs personnes de partager la même liste de sites favoris et ce sur n importe

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Mesurer les performances (CPU) sous Linux

Mesurer les performances (CPU) sous Linux Titre : Mesurer les performances (CPU) sous Linux Date : 22/07/2015 Page : 1/7 Mesurer les performances (CPU) sous Linux Résumé : Il existe des outils permettant de tracer les temps CPU utilisés (profiling).

Plus en détail

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1

Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1 Master 1 ère année UE Réseaux avancés I Projet Réalisation d un portail captif d accès authentifié à Internet Présentation du projet Le but du projet est de mettre en place un portail captif permettant

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Probabilités Loi binomiale Exercices corrigés

Probabilités Loi binomiale Exercices corrigés Probabilités Loi binomiale Exercices corrigés Sont abordés dans cette fiche : (cliquez sur l exercice pour un accès direct) Exercice 1 : épreuve de Bernoulli Exercice 2 : loi de Bernoulli de paramètre

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Vous incarnez un surdoué en informatique qui utilise son ordinateur afin de pirater des comptes bancaires un peu partout dans le monde et s en mettre

Vous incarnez un surdoué en informatique qui utilise son ordinateur afin de pirater des comptes bancaires un peu partout dans le monde et s en mettre Vous incarnez un surdoué en informatique qui utilise son ordinateur afin de pirater des comptes bancaires un peu partout dans le monde et s en mettre plein les poches. Problème : vous n êtes pas seul!

Plus en détail

Table des matières. Date : Version : 29/06/2013 1.1. Objet : OpenVas 6.0

Table des matières. Date : Version : 29/06/2013 1.1. Objet : OpenVas 6.0 Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Pas d'utilisation Commerciale 3.0 non transposé. Le document est librement diffusable dans le contexte de

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Passage du marketing par e-mail à l automatisation du marketing

Passage du marketing par e-mail à l automatisation du marketing Passage du marketing par e-mail à l automatisation du marketing L automatisation du marketing est une technologie qui permet de fidéliser les prospects grâce à des campagnes automatisées. Étant donné que

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Bon ben voilà c est fait!

Bon ben voilà c est fait! Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion

Plus en détail

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE SIN STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE 1 MISE EN SITUATION Le plan réseau

Plus en détail