background preloader

Algorithmique

Facebook Twitter

Sans titre. Le langage Python est très pratiqué en IA en particulier pour le deep learning (apprentissage profond).

sans titre

On va montrer ici comment Python permet de trouver une stratégie gagnante à un jeu : Le jeu des deux parkings. Historique du jeu Ce jeu a été créé il y a 2 ans (fin juillet 2016) : jeu péï jeu à deux joueurs, chacun ayant 3 pions À la rentrée suivante, il a été intégré à l’atelier « jeux mathématiques » de l’IREM et imprimé pour les animations de l’IREM : Ce jeu a donc été exploré, par des joueurs humains (parfois très jeunes, voire plus jeunes que la créatrice du jeu), à ces occasions : Ces explorations n’ont pas permis de dégager une éventuelle stratégie gagnante ni pour les bleus ni pour les rouges. Algorithmic Puzzles [Levitin & Levitin 2011 10 14] Sans titre. Les algorithmes de tri. Décrire la façon dont les algorithmes sont implémentés dans un ordinateur n’est pas si difficile, car les langages se basent sur des constructions simples et standard.

Les algorithmes de tri

D’un langage à l’autre, ces instructions de base se retrouvent. Variables Les calculs sont stockés dans des variables ou dans des tableaux de variables. Pour des nombres entiers, on écrira entier n ; pour décrire un entier de nom « n » ou entier[] tab pour décrire un tableau de nom « tab » dont les éléments sont numérotés à partir de 1 : tab[1], tab[2]... Affectation Le symbole <- représente l’affectation de la valeur de la variable à droite du symbole à la variable à gauche du symbole. Procédures ou « fonctions » Les portions de codes réutilisables sont regroupées dans une procédure. Procedure nom_de_procedure (entier n, entier[] tab) tab[n] - visualising data structures and algorithms through animation. - visualising data structures and algorithms through animation. Jeux de Nim.

Dans l’animation que nous vous proposons, trois niveaux de difficulté sont disponibles lorsque vous affrontez l’ordinateur : le joueur débutant joue aléatoirement à chaque coup ;le joueur maître joue un coup sur deux aléatoirement, un coup sur deux avec la stratégie gagnante ;et le joueur expert joue avec la stratégie gagnante à chaque coup.

Jeux de Nim

Historique Les origines des jeux de Nim remontent très loin dans le temps, si bien qu’il est impossible d’indiquer avec certitude leur provenance. Ils sont signalés en Chine sous le nom de fan-tan et connus en Afrique sous le nom de tiouk-tiouk. Leur nom actuel nous vient de l’allemand nimm qui signifie prends ! Un peu de théorie des jeux Avant de préciser la stratégie des jeux de Nim, il convient d’aborder plus généralement la théorie des jeux. Un jeu se joue à plusieurs, au minimum deux adversaires. On distingue deux grandes catégories de jeux : Stratégie gagnante Dans tous les jeux, le nombre de situations possibles est fini. Algorithme de tri par insertion. C'est le tri du joueur de cartes.

Algorithme de tri par insertion

On fait comme si les éléments à trier étaient donnés un par un, le premier élément constituant, à lui tout seul, une liste triée de longueur 1. On range ensuite le second élément pour constituer une liste triée de longueur 2, puis on range le troisième élément pour avoir une liste triée de longueur 3 et ainsi de suite... (115) Les marmottes au sommeil léger. Algorithmes & Programmes.

Algorithmes de tri animés. Algo1 livret. Select-sort with Gypsy folk dance. Sorting Algorithms Animations. Algorithms in Java, Parts 1-4, 3rd edition by Robert Sedgewick. Addison Wesley, 2003. Quicksort is Optimal by Robert Sedgewick and Jon Bentley, Knuthfest, Stanford University, January, 2002. Dual Pivot Quicksort: Code by Discussion.

Bubble-sort with Hungarian (“Csángó”) folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Select-sort with Gypsy folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Sorting Out Sorting, Ronald M. Category:Animations of sort algorithms. Chapitre 05 - Programmation dynamique. Le but de ce chapitre va être de présenter un paradigme de programmation alternatif à celui diviser pour régner.

Nous allons en effet mettre en évidence l'une des faiblesses de celui-ci, en un mot des appels récursifs redondants, et voir comment y remédier. Cette nouvelle technique s'appellera programmation dynamique, et l'on verra qu'elle prend deux formes, l'une récursive et l'autre itérative. Après en avoir exposé le principe général, nous la mettrons en application sur deux grands problèmes classiques, celui du rendu de monnaie et celui du sac à dos. Nous allons dans cette partie pointer du doigt l'un des grands problèmes de la récursivité, puis proposer deux solutions pour y pallier. La récursivité a ses limites Commençons par rappeler une fois de plus les trois étapes du paradigme "diviser pour régner" : Le problème est que dans certaines situations, les sous-problèmes ne sont pas indépendants.

Présentons de suite un exemple afin que chacun comprenne bien les enjeux. Chapitre 06 - Algorithmes gloutons. Le problème du sac à dos. Comme vous l’avez peut-être remarqué, le niveau maître n’est déjà pas très facile.

Le problème du sac à dos

Pourtant, il n’y a pas beaucoup d’objets.