REGAL: une bibliothèque pour la génération des automates déterministes

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

Download "REGAL: une bibliothèque pour la génération des automates déterministes"

Transcription

1 161 Prépublication n 26 Fascicule n 2 REGAL: une bibliothèque pour la génération des automates déterministes Julien David Institut Gaspard Monge, UMR CNRS 8049 Université de Marne-la-Vallée Marne-la-Vallée Cedex 2 France jdavid01@univ-mlv.fr Résumé : Ce papier présente une bibliothèque permettant la génération aléatoire et exhaustive d automates déterministes finis. Ce package fournit une boîte à outils pour l étude expérimentale de propriétés sur les automates, la complexité en moyenne d algorithmes et permet également de comparer différentes implantations d un même algorithme. Mots-clés : Automates déterministes, génération aléatoire et exhaustive. 1 Introduction Ce papier présente une bibliothèque en C++ permettant d engendrer des automates déterministes finis. La génération aléatoire des automates peut être utilisée, par exemple, pour tester des propriétés sur les automates, pour étudier expérimentalement la complexité en moyenne d algorithmes sur les automates ou enfin pour comparer différentes implantations d un même algorithme. La génération exhaustive permet de vérifier des conjectures sur des automates de petite taille. Les algorithmes implantés dans REGAL sont basés sur les travaux de Nicaud [1], Champarnaud et Paranthoën [2] et Bassino et Nicaud [3]. Dans la section 2, on fera un bref rappel sur le fonctionnement des générateurs et on détaillera les points clé de l implantation. La bibliothèque elle-même est décrite dans la section 3. Pour finir, la section 4 est dédiée à la présentation de résultats expérimentaux liés à la notion d automate minimal. Julien David «REGAL: une bibliothèque pour la génération des automates déterministes»

2 162 2 Génération d automates 2.1 Préliminaires Rappelons tout d abord quelques définitions sur les automates finis. Les notions de base de la théorie des automates finis peuvent être trouvées dans [4]. Un automate fini déterministe A sur un alphabet fini A est un quintuplet A = (A, Q,, q 0, F ) où Q est l ensemble fini des états, q 0 Q est l état initial, F Q est l ensemble des états finals et où la fonction de transition est un élément de Q A Q. On dit qu un automate fini déterministe est accessible quand, pour chaque état q de A, il existe un mot u A tel que q 0 u = q. Un automate fini A est complet quand pour chaque (q, α) Q A, q α est défini. La structure de transitions d un automate accessible A = (A, Q,, q 0, F ) est D = (A, Q,, q 0 ) : on ne distingue plus les états finals. Une telle structure correspond à 2 n automates, puisque l accessibilité garantit que deux ensembles d états finals distincts ne formeront pas le même automate. Notre but est d engendrer des automates déterministes, accessibles et complets. Les algorithmes utilisés se fondent sur deux bijections qui permettent la transformation d un automate en un objet combinatoire appelé diagramme marqué. Pour tout n, m N avec n m, on note [[ m, n ]] l ensemble d entiers {i N m i n}. Un diagramme de largeur m et de hauteur n est une suite croissante (x 1,..., x m) d entiers positifs telle que x m = n et peut être représenté comme un diagramme de boîtes (voir Figure 1). Un diagramme de Dyck d indice k de taille n est un diagramme de largeur (k 1)n + 1 et de hauteur n tel que x i i/(k 1) pour tout i (k 1)n. Un diagramme marqué est un couple de suites ((x 1,..., x m), (y 1,..., y m)) où (x 1,..., x m) est un diagramme et pour tout i [[ 1, m ]], la y i ème boîte de la colonne i du diagramme est marquée, autrement dit, y i x i (voir Figure 1). Un diagramme de Dyck d indice k et de taille n marqué est un diagramme marqué dont la première suite (x 1,..., x (k 1)n+1 ) est un diagramme de Dyck d indice k et de taille n. (1,1,2,4,4) (1,1,2,4,4) (1,1,2,1,3) (1,3,3,4,4) (1,3,3,4,4) (1,1,2,2,4) Fig. 1: Un diagramme de largeur 5 et de hauteur 4, un diagramme marqué, un diagramme de Dyck d indice 2 et de taille 2 et un diagramme de Dyck d indice 2 marqué. Le diagramme ci-dessous décrit les différentes étapes de la génération aléatoire, pour la distribution uniforme sur l ensemble des automates déterministes accessibles et complets de taille fixée et de la génération exhaustive.

3 163 Deux bijections (voir Section 2.2) sont utilisées pour transformer les structures de transitions accessibles complètes et déterministes en diagrammes de Dyck d indice k marqués et pour changer les diagrammes marqués en partitions d ensemble. L étape entre les diagrammes marqués et les diagrammes de Dyck d indice k marqués consiste à tester la hauteur des colonnes des diagrammes. Lorsque le test échoue, ce qui arrive en gros une fois sur 4 en moyenne [3], le diagramme est rejeté et une nouvelle partition d ensemble est produite. Le générateur exhaustif est basé sur la génération ordonnée de tous les diagrammes de Dyck d indice k marqués d une taille fixée (voir Section 2.3) La génération aléatoire repose sur la génération de partitions d ensemble par un générateur de Boltzmann [5] (voir Section 2.4). La méthode récursive [6] pourrait également être utilisée comme l ont décrit Nicaud [1] et Champarnaud et Paranthoën [2], mais cette méthode requiert un espace mémoire important. Enfin le choix aléatoire d un sous-ensemble des états de la structure de transitions comme ensemble des états finals permet d obtenir un automate déterministe, accessible et complet. 2.2 Bijections pour transformer les automates en objets plus simples La bijection suivante qui permet la représentation des automates en diagramme de Dyck d indice k marqué est due à Nicaud [1] pour les alphabets à 2 lettres et à Champarnaud et Paranthoën [2] pour un alphabet fini arbitraire. Théorème 1 [1, 2] L ensemble des structures de transitions déterministes, accessibles et complètes de taille n sur un alphabet à k lettres est en bijection avec l ensemble des diagrammes de Dyck d indice k et de taille n marqués. Une description précise de cette bijection est donnée dans [1, 2], où la preuve complète de sa validité peut être trouvée. Les algorithmes linéaires correspondant sont présentés dans [3]. On rappelle brièvement comment une structure de transitions de taille n sur un alphabet à k lettres est transformée en un diagramme de Dyck d indice k et de taille n marqué. En utilisant un parcours en profondeur, selon l ordre lexicographique, on construit à partir de l état initial un arbre recouvrant (correspondant aux transitions en gras sur la Figure 2) et on numérote les états selon leur ordre d apparition. Dans le parcours en profondeur, la ième transition j j qui n est pas dans l arbre recouvrant est codée comme la ième colonne du diagramme de Dyck d indice k marqué : c est une colonne de hauteur j dont la j ème boîte est marquée. L information contenue dans le diagramme de Dyck d indice k marqué obtenu est suffisante pour retrouver la structure de transitions initiale. Fig. 2: Une structure de transitions de taille 6 dont l état 1 est l état initial et le diagramme de Dyck d indice 2 et de taille 6 marqué correspondant. La seconde bijection, que nous n utilisons que pour la génération aléatoire, est la suivante :

4 164 Théorème 2 [3] L ensemble des diagrammes marqués de largeur m et de hauteur n et l ensemble des partitions d un ensemble à n + m éléments en n sous-ensembles non-vides sont en bijection. La preuve de ce résultat et les algorithmes correspondant sont donnés dans [3]. L idée est la suivante : considérons une partition d un ensemble à m + n éléments en n sousensembles non-vides. Pour représenter la partition d ensemble, on code chaque entier i [[ 1, m + n ]] en une colonne de hauteur égale au nombre de sous-ensembles distincts qui contiennent un entier inférieur ou égal i et dont la boîte marquée est la même que celle qui est marquée dans le codage du plus petit entier contenu dans le même sous-ensemble que i. Réciproquement, la partition d ensemble est transformée en un diagramme de hauteur n et de largeur m en suppimant pour tout j [[ 1, n ]], la colonne la plus à gauche de hauteur j dont la jème boîte est marquée. Un exemple est donnée dans la Figure 3. n n m m + n Fig. 3: Le diagramme marqué (((1, 3, 3, 5, 5, 5), (1, 2, 1, 4, 3, 4)) et la partition d ensemble {{1, 3, 6}, {2, 5}, {4, 10}, {7, 9, 11}, {8}}. 2.3 Génération exhaustive On utilise une méthode standard [7] pour engendrer tous les automates déterministes accessibles et complets de taille n donnée. On définit un ordre total sur leurs représentations en diagrammes de Dyck d indice k marqués (voir Théorème 1) et on fournit 3 méthodes pour calculer le minimum (first), le successeur d un diagramme donné (next) et pour vérifier si le maximum est atteint (last) ou non. Tous les ensembles possibles d états finals sont également engendrés. Soient D = (x, y) et D = (x, y ) deux diagrammes de Dyck d indice k et de taille n marqués. On dit que D est plus petit que D, soit lorsque le vecteur x est strictement inférieur à x, soit lorsque x = x et le vecteur y est plus petit que y. Le plus petit diagramme Dyck d indice k et de taille n marqué pour cet ordre est D min = ((x 1,, x (k 1)n+1 ), (1,, 1)), où x i = i/(k 1), et le plus grand est D max = ((n,, n), (n,, n)). Soit D = (x, y) un diagramme de Dyck d indice k marqué qui n est pas égal à D max : (a) Si x y, le successeur de D est obtenu en changeant y i en y i + 1, où i est le plus grand indice tel que y i < x i. (b) Si x = y, soit i le plus grand indice tel que x i < n. Le successeur de D est D = ((x 1,, x i 1, x i + 1, x i+1,, x (k 1)n+1 ), (1,, 1)) où pour tout j i + 1, x j = max (x i + 1, j/(k 1) ). Fig. 4: D min,d max et next appliqué au cas (b) avec i = 2.

5 165 En utilisant cet ordre sur l ensemble des diagrammes de Dyck d indice k marqués de taille fixée, les trois algorithmes first, next et last ont une complexité linéaire. 2.4 Générateur de Boltzmann Un générateur de Boltzmann [5] est un programme qui engendre aléatoirement des objets selon une probabilité essentiellement proportionnelle à une exponentielle de leur taille. Plus précisément, un objet étiqueté γ est engendré avec une probabilité x γ où x est γ! un paramètre à valeur réelle positive. Cette méthode n engendre pas d objets de taille fixe mais garantit que deux éléments de même taille ont la même probabilité d être engendrés. Elle dépend du paramètre x, dont la valeur peut être déterminée afin que la taille moyenne des éléments engendrés soit égale une valeur prédéfinie. Des constructions génériques de générateurs de Boltzmann pour des structures décomposables sont données dans [5, 8]. L évaluation de x est le seul précalcul requis et la complexité de génération elle-même est linéaire, si on autorise une petite variation de la taille. Un générateur en taille exacte peut être obtenu en utilisant un algorithme avec rejet. On utilise ici un générateur de Boltzmann pour engendrer uniformément l ensemble des partitions d un ensemble à kn éléments en n sous-ensembles non-vides. Pour cela on tire aléatoirement, avec une loi de Poisson de paramètre x, la taille de chacun des n sousensembles de la partition. La taille moyenne de la partition d ensemble est alors nx ex e x 1. On choisit donc x tel que nx ex e x = kn et on obtient (voir [3]) 1 X x = ζ k = W 0 ( ke k ( p) ) + k et p 1 W 0 (z) = z p p! p=1 qui ne dépend que de la taille k de l alphabet. Pour finir, on étiquette la structure obtenue avec une permutation de [[ 1, kn ]]. Le nombre moyen de rejets pour obtenir une partition d ensemble de taille kn est O( n) et la complexité moyenne de la génération aléatoire d une telle partition est O(n 3/2 ). Pour plus de détails sur cette construction, le lecteur peut se référer à [3]. Le tableau ci-dessous donne le temps moyen requis pour engendrer uniformément des automates sur un alphabet à 2 lettres avec REGAL. Les tests ont été effectués avec automates de chaque taille, sur un Intel 2.8 GHz. Taille des automates Temps moyen 0.04 s 1.43 s s 3 Description de la bibliothèque REGAL Pour combiner la généricité et l efficacité, REGAL a été écrit en C++ 1. Automates. Bien que les algorithmes de REGAL utilisent des entiers pour décrire les étiquettes des états et des transitions, ces dernières ont été codées comme des types paramétrés, avec un système de maps, pour que l utilisateur puisse facilement définir ses propres étiquettes. La figure 5 présente la description de la classe AbstractAutomaton. Les utilisateurs doivent implanter les méthodes écrites en italique, les autres étant prédéfinies dans REGAL. Notons que la méthode createstate, qui renvoie un nouvel état pour l automate, doit être implantée. Elle sera utilisée par REGAL lorsque la méthode addstate sera appellée. REGAL définit également une implantation d automate déterministe qui peut être directement utilisée. 1. La bibliothèque ainsi que la documentation sont disponibles à : http ://igm.univ-mlv.fr/ jdavid01/ regal.php

6 166 namespace regal{ template<typename StateLabel_t,typename Sigma> class AbstractAutomaton{ private : StateLabel_t createstate() ; public : Alphabet<Sigma> getalphabet() ; int getsize() ; int getalphabetsize() ; StateLabel_t addstate() ; int getintegervalue(const StateLabel_t & s) ; StateLabel_t getrealvalue(const int & ind) ; void addtransition(const StateLabel_t & start,const StateLabel_t & end, const Sigma & value) ; bool isfinal(const StateLabel_t & sl) ; bool isinitial(const StateLabel_t & sl) ; void setstateasfinal(const StateLabel_t & sl, const bool & value) ; void setstateasinitial(const StateLabel_t & sl, const bool & value) ; } ; } Fig. 5: Automate abstrait dans REGAL. Grâce à sa généricité, REGAL a été facilement relié à la plateforme VAUCANSON [9, 10], en implantant une façade qui hérite de la classe AbstractAutomaton et qui contient un automate de VAUCANSON. REGAL est fourni avec des méthodes permettant d écrire les automates en format GasteX ou DoT. Générateurs aléatoire et exhaustif Pour engendrer des automates, aléatoirement ou exhaustivement, un générateur doit être instancié avec les paramètres suivants : le type des états, de l alphabet, la classe de l automate en sortie, le nombre d états et enfin l alphabet lui-même. Les étiquettes des états de l automate engendré appartiennent à [[ 0, n 1 ]] et correspondent à l ordre induit par le parcours en profondeur du graphe sous-jacent. Comme on l a vu dans la section 2.3, le générateur exhaustif fournit des méthodes pour calculer le premier automate, obtenir l automate suivant, et pour tester si l on a atteint le dernier automate. Il peut être utilisé avec une simple boucle for (voir Figure 6). DFAAutomaton<int,char> * result ; //Result DFA Alphabet<char> alpha ; //Create an alphabet alpha.insert( a ) ; alpha.insert( b ) ; ExhaustiveDFAGenerator<int,char,DFAAutomaton<int,char>> eg(8,alpha) ; for(result=eg.first() ; result!=eg.end() ; result=eg.next() ) {} } Fig. 6: Génération exhaustive des automates déterministes à 8 états sur A = {a, b}. Il existe deux méthodes pour engendrer aléatoirement un automate : random() où pour tout état la probabilité d être final est 1 2 (le nombre moyen d états finals est donc n 2 ) et randomonefinalstate() où seulement un état est final. Voir la Figure 7 pour un exemple d utilisation. DFAAutomaton<int,char> * result ; //Result DFA Alphabet<char> alpha ; //Create an alphabet alpha.insert( a ) ; alpha.insert( b ) ; RandomDFAGenerator<int,char,DFAAutomaton<int,char>> rg(20000,alpha) ; for(int counter=0 ; counter<10000 ; counter++) result=rg->random() ; Fig. 7: Génération aléatoire de automates à états sur A = {a, b}.

7 167 4 Applications Cette section est dédiée à la présentation de résultats expérimentaux obtenus avec REGAL. Dans les tableaux qui suivent, les tests ont été effectués avec un alphabet de taille 2. Préliminaire. Rappelons que deux états p et q d un automate A reconnaissant le même langage L A sont équivalents quand pour tout mot u A, p u L q u L. Cette relation est appelée équivalence de Nerode. L automate minimal de L est l automate défini sur les classes d équivalence des états de tout automate déterministe reconnaissant L. Les algorithmes de minimisation de Moore et de Hopcroft calculent cette relation d équivalence en raffinant des partitions, à partir {F, F }, où F est l ensemble des états finals. Si P est une partition des états de l automate, on note P la relation d équivalence induite par P. La complexité dans le pire des cas de l algorithme de Moore est en O(n 2 ), mais sa complexité en moyenne est toujours inconnue. Algorithme 1: Moore Data : P = {F, F } begin repeat P = P raffiner P en P avec q P q q P q et a A, q a P q a until P = P end L algorithme de Hopcroft est plus compliqué mais plus efficace dans le pire des cas, avec une complexité de Θ(n log n) [11]. Soient P un ensemble d états et a une lettre, dans l algorithme d Hopcroft, un ensemble B est raffiné en B = {q B q a P } et B = {q B q a / P } par (P, a) lorsque B et B ne sont pas vides. Les détails d implantation de l algorithme de Hopcroft peuvent être trouvés dans [12]. Algorithme 2: Hopcroft Data : P = {F, F } et S = begin foreach a A do ajouter (C, a) dans S, où C est le plus petit des deux ensembles F et F while S do extraire (P, a) de S foreach block B de la partition raffinée par (P, a) do remplacer B par B et B dans la partition foreach b A do if (B, b) S then remplacer (B, b) par (B, b) et (B, b) dans S else ajouter (C, b) dans S où C est le plus petit des deux ensembles B and B end Automate minimal. Avec le générateur exhaustif, on peut calculer le nombre exact d automates minimaux sur un alphabet à k lettres. Mais comme le nombre d automates déterministes accessibles et complets de taille n est asymptotiquement proportionnel à n 2 n kn n [13, 3] où knn est le nombre de Stirling de seconde espèce (soit le nombre

8 168 Temps (sec) Hopcroft avec pile Hopcroft avec file Moore Nombre d iterations Ecart-type Taille de l automate Taille de l automate Fig. 8: Complexités en temps des algorithmes de Moore et de Hopcroft. Fig. 9: Nombre d itérations de la boucle principale de l algorithme de Moore. de façons de partitionner un ensemble à kn éléments en n sous-ensembles non-vides), le nombre exact d automates minimaux ne peut être calculé que pour de petites valeurs de n. Nombre d états Automates minimaux En utilisant le générateur aléatoire, la proportion d automates minimaux parmi les déterministes accessibles peut être estimée. Cette proportion croit très rapidement avec la taille de l alphabet. Le tableau suivant présente le résultat de tests faits avec automates de chaque taille (et un alphabet de taille 2). Taille Automates minimaux (%) Efficacité des algorithmes de Moore et de Hopcroft. Dans cette section on compare expérimentalement la complexité moyenne en temps d algorithmes de minimisation d automates (voir Figure 8) et on calcule le nombre moyen d itérations dans celui de Moore (voir Figure 9). Dans la Figure 8, le temps moyen d exécution des algorithmes de Moore et Hopcroft a été mesuré sur un Intel 2.8Ghz avec automates pour chaque taille. Le résultat des tests ne révèle pas une différence claire entre l efficacité des deux structures de données (pile et file) pour l implantation de S dans l algorithme de Hopcroft. Bien que l algorithme de Moore n ait pas la meilleure complexité dans le pire des cas, il semble plus efficace en moyenne que l algorithme d Hopcroft. La raison pourrait être la très lente augmentation du nombre de raffinements de la partition avec la taille de l automate (voir Figure 9). Dans la Figure 9, le nombre moyen de raffinements de partition dans l algorithme de Moore a été calculé avec automates pour chaque taille. Il s agit du nombre de fois où la boucle principale de l algorithme, de complexité Θ(n), est exécutée. Références [1] C. Nicaud. Étude du comportement en moyenne des automates finis et des langages rationnels. PhD thesis, Université Paris 7, [2] J.M. Champarnaud and T. Paranthoën. Random generation of DFAs. Theoret. Comput. Sci., 330 : , [3] F. Bassino and C Nicaud. Enumeration and random generation of accessible automata. Theoret. Comput. Sci., available at http ://www-igm.univ-mlv.fr/ bassino/publi.html, to appear.

9 169 [4] J.E. Hopcroft and J. Ullman. Introduction to automata theory, languages, and computation. Addison-Wesley, N. Reading, MA, [5] P. Duchon, P. Flajolet, G. Louchard, and G. Schaeffer. Boltzmann samplers for the random generation of combinatorial structures, combinatorics, probability, and computing. Special issue on Analysis of Algorithms, 13 : , [6] P. Flajolet, P. Zimmermann, and B. Van Cutsem. A calculus of random generation of labelled combinatorial structures. Theoret. Comput. Sci., 132(1-2) :1 35, [7] A. Nijenhuis and H.S. Wilf. Combinatorial Algorithms, 2nd ed. Academic Press, [8] P. Flajolet, E. Fusy, and Pivoteau. Boltzmann sampling of unlabelled structures. In Proceedings of ANALCO 07. SIAM Press, [9] S. Lombardy, Y. Régis-Gianas, R. Poss, and J. Sakarovitch. Introducing vaucanson. Theoret. Comput. Sci., 328 :77 96, [10] T. Claveirole, S. Lombardy, L.N. Pouchet, and J. Sakarovitch. Inside vaucanson. CIAA 05, LNCS 4094 : , [11] J. Berstel and O. Carton. On the complexity of Hopcroft s state minimization algorithm. CIAA 2004, LNCS 3317 :35 44, [12] J. Berstel. Eléments d algorithmique. Masson, chapter 9, p [13] D. Korshunov. Enumeration of finite automata. Problemy Kibernetiki, 34 :5 82, In Russian.

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Quelques Algorithmes simples

Quelques Algorithmes simples Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été

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

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Yves Aragon, David Haziza & Anne Ruiz-Gazen GREMAQ, UMR CNRS 5604, Université des Sciences

Plus en détail

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

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

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Programmation linéaire

Programmation linéaire Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

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

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo

Plus en détail

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs!

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs! CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE Information importante : Ces conseils ne sont pas exhaustifs! Conseils généraux : Entre 25 et 60 pages (hormis références, annexes, résumé) Format d un

Plus en détail

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Université Paris-Sud Licence d Informatique Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Adresse de l auteur : LIX École Polytechnique

Plus en détail

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet

Plus en détail

Qu est-ce qu une probabilité?

Qu est-ce qu une probabilité? Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

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

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

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Chapitre 3. Mesures stationnaires. et théorèmes de convergence Chapitre 3 Mesures stationnaires et théorèmes de convergence Christiane Cocozza-Thivent, Université de Marne-la-Vallée p.1 I. Mesures stationnaires Christiane Cocozza-Thivent, Université de Marne-la-Vallée

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

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Algorithmique et Programmation

Algorithmique et Programmation École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................

Plus en détail

Introduction à la théorie des graphes. Solutions des exercices

Introduction à la théorie des graphes. Solutions des exercices CAHIERS DE LA CRM Introduction à la théorie des graphes Solutions des exercices Didier Müller CAHIER N O 6 COMMISSION ROMANDE DE MATHÉMATIQUE 1 Graphes non orientés Exercice 1 On obtient le graphe biparti

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

FIMA, 7 juillet 2005

FIMA, 7 juillet 2005 F. Corset 1 S. 2 1 LabSAD Université Pierre Mendes France 2 Département de Mathématiques Université de Franche-Comté FIMA, 7 juillet 2005 Plan de l exposé plus court chemin Origine du problème Modélisation

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34 Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Probabilités. C. Charignon. I Cours 3

Probabilités. C. Charignon. I Cours 3 Probabilités C. Charignon Table des matières I Cours 3 1 Dénombrements 3 1.1 Cardinal.................................................. 3 1.1.1 Définition............................................. 3

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

Optimisation, traitement d image et éclipse de Soleil

Optimisation, traitement d image et éclipse de Soleil Kléber, PCSI1&3 014-015 I. Introduction 1/8 Optimisation, traitement d image et éclipse de Soleil Partie I Introduction Le 0 mars 015 a eu lieu en France une éclipse partielle de Soleil qu il était particulièrement

Plus en détail

LE RÔLE DE LA STATISTIQUE DANS UN PROCESSUS DE PRISE DE DÉCISION

LE RÔLE DE LA STATISTIQUE DANS UN PROCESSUS DE PRISE DE DÉCISION LE RÔLE DE LA STATISTIQUE DANS UN PROCESSUS DE PRISE DE DÉCISION Sylvie Gervais Service des enseignements généraux École de technologie supérieure (sylvie.gervais@etsmtl.ca) Le laboratoire des condensateurs

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

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

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Bachir Bekka Février 2007 Le théorème de Perron-Frobenius a d importantes applications en probabilités (chaines

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3 8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant

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

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA 75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Théorie et codage de l information

Théorie et codage de l information Théorie et codage de l information Les codes linéaires - Chapitre 6 - Principe Définition d un code linéaire Soient p un nombre premier et s est un entier positif. Il existe un unique corps de taille q

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Théorèmes de Point Fixe et Applications 1

Théorèmes de Point Fixe et Applications 1 Théorèmes de Point Fixe et Applications 1 Victor Ginsburgh Université Libre de Bruxelles et CORE, Louvain-la-Neuve Janvier 1999 Published in C. Jessua, C. Labrousse et D. Vitry, eds., Dictionnaire des

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

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

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

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

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Odile VERBAERE UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Résumé : Cet article présente une réflexion sur une activité de construction de tableau, y compris

Plus en détail

PROBABILITES ET STATISTIQUE I&II

PROBABILITES ET STATISTIQUE I&II PROBABILITES ET STATISTIQUE I&II TABLE DES MATIERES CHAPITRE I - COMBINATOIRE ELEMENTAIRE I.1. Rappel des notations de la théorie des ensemble I.1.a. Ensembles et sous-ensembles I.1.b. Diagrammes (dits

Plus en détail

Cours de Probabilités et de Statistique

Cours de Probabilités et de Statistique Cours de Probabilités et de Statistique Licence 1ère année 2007/2008 Nicolas Prioux Université Paris-Est Cours de Proba-Stat 2 L1.2 Science-Éco Chapitre Notions de théorie des ensembles 1 1.1 Ensembles

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Algorithmes de recherche

Algorithmes de recherche Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème

Plus en détail

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes

Plus en détail

Moments des variables aléatoires réelles

Moments des variables aléatoires réelles Chapter 6 Moments des variables aléatoires réelles Sommaire 6.1 Espérance des variables aléatoires réelles................................ 46 6.1.1 Définition et calcul........................................

Plus en détail

Calcul différentiel sur R n Première partie

Calcul différentiel sur R n Première partie Calcul différentiel sur R n Première partie Université De Metz 2006-2007 1 Définitions générales On note L(R n, R m ) l espace vectoriel des applications linéaires de R n dans R m. Définition 1.1 (différentiabilité

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Contents. 1 Introduction Objectifs des systèmes bonus-malus Système bonus-malus à classes Système bonus-malus : Principes

Contents. 1 Introduction Objectifs des systèmes bonus-malus Système bonus-malus à classes Système bonus-malus : Principes Université Claude Bernard Lyon 1 Institut de Science Financière et d Assurances Système Bonus-Malus Introduction & Applications SCILAB Julien Tomas Institut de Science Financière et d Assurances Laboratoire

Plus en détail

Chaînes de Markov au lycée

Chaînes de Markov au lycée Journées APMEP Metz Atelier P1-32 du dimanche 28 octobre 2012 Louis-Marie BONNEVAL Chaînes de Markov au lycée Andreï Markov (1856-1922) , série S Problème 1 Bonus et malus en assurance automobile Un contrat

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail