Comparaison entre approche directe et compilée pour un problème de configuration

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

Download "Comparaison entre approche directe et compilée pour un problème de configuration"

Transcription

1 Comparaison entre approche directe et compilée pour un problème de configuration Nicolas Morbieu Mémoire de stage de M2R soutenu le 23 juin 2006 Directrice de recherche : Hélène Fargier Recherche effectuée à l INSTITUT DE RECHERCHE EN INFORMATIQUE DE TOULOUSE dans le laboratoire RPDMP Résumé Dans le cadre d un processus de configuration, nous comparons deux approches permettant de calculer la consistance globale d un réseau de contraintes au fur et à mesure des affectations. La première approche utilise une compilation hors-ligne du réseau de contraintes sous la forme d un automate fini alors que la seconde approche calcule la consistance globale du réseau en ligne, à l aide d un solveur SAT. Nous comparons aussi différentes façons d exprimer un réseau de contraintes sous une forme booléenne.

2 2

3 Introduction La plupart des produits industriels sont le résultat de l assemblage et du paramétrage de composants élémentaires. Cet assemblage est soumis à des contraintes qui empêchent certaines combinaisons. La sélection du produit adapté au client se ramène alors à la sélection et au paramétrage de composants compatibles entre eux. C est ce qu on appelle la configuration. Le but de la configuration est donc de modéliser l ensemble des objets réalisables et de faire spécifier à l utilisateur ses désirs par l ajout de contraintes. Le maintien de la cohérence globale est nécessaire afin d indiquer uniquement les valeurs des paramètres qui sont encore réalisables. Cette requête étant dans le cas général fortement combinatoire et la configuration se faisant en ligne, une solution est de compiler le problème original en une forme permettant un traitement plus efficace. L objectif de ce stage est de comparer expérimentalement deux approches pour la vérification de l existence d une solution, pour la maintenance de la cohérence globale d un réseau de contraintes lors de l affectation d une ou plusieurs variables. L une de ces deux approches que nous appellerons l approche directe consiste à utiliser une modélisation sous forme de CSP et des solveurs CSP ou une modélisation booléenne équivalente et des solveurs SAT. L autre approche que nous appellerons l approche compilée consiste à utiliser une forme compilée de CSP sous forme d automates. La comparaison expérimentale se fera en utilisant l exemple de la configuration interactive. Dans un premier chapitre, la problématique de la compilation et de son application à la configuration sont abordées. Dans un second chapitre, les outils théoriques nécessaires à la suite de l exposé sont introduits et un état de l art des réponses au problème de la configuration est présenté. Dans un troisième chapitre, différentes façons de traduire un réseau de contraintes en un ensemble de clauses sont étudiées. Enfin, dans un quatrième et dernier chapitre, sont comparés expérimentalement deux configurateurs : l un basé sur une forme compilée en automate d un réseau de contrainte, l autre utilisant un solveur SAT et un convertisseur de réseau de contraintes en ensemble de clauses. 3

4 4

5 Table des matières Introduction 3 1 Problématique Utilité de la compilation Un exemple d application : la configuration Problématique État de l art CSP Configurateurs Compilation d un réseau de contraintes décrivant un problème de configuration en automate Compilation d un réseau de contraintes en automate Compilation d un produit configurable SAT De CSP à SAT Types de traductions de réseaux de contraintes en formules booléennes Codages linéaires et codages logarithmiques Unicité de l affectation des variables CSP Codage des contraintes binaires Codage des contraintes non binaires Nomenclature Comparaison Caractéristiques d un réseau de contraintes Taille des clauses générées Conclusion CSP2SAT, un outil pour la traduction de réseaux de contraintes en formules booléennes Fonctionnalités

6 6 TABLE DES MATIÈRES Possibilités d améliorations Efficacité de la SAT-compilation pour un problème de configuration Protocole expérimental Choix de conception Résultats Conclusion Approche directe contre approche compilée Comparaison entre traductions de CSP vers SAT Conclusion 37 A Format XML de description de réseau de contraintes 39 B Format DIMACS CNF 41 Bibliographie 46

7 Chapitre 1 Problématique 1.1 Utilité de la compilation Pour certains problèmes (comme par exemple les problèmes de décision CSP et SAT que l on verra aux sections 2.1 et 2.4), les seuls algorithmes de résolution connus à ce jour s exécutent en un temps exponentiel dans le pire des cas. Si l on doit effectuer plusieurs opérations sur une instance d un tel type de problème, il peut être judicieux de factoriser les calculs en mettant le problème sous une autre forme (ce qu on appelle la compilation), puis de travailler sur cette forme compilée, moins coûteuse à traiter. Dans le cas d une application nécessitant une réponse rapide (dans le cas d une interaction avec un utilisateur par exemple), la compilation pourra se faire hors-ligne et les calculs en ligne se feront sur la forme compilée. La compilation est d autant plus intéressante quand les requêtes sont proches les unes des autres (leur résolution implique de nombreux calculs en commun) comme le remarquent Weigel et Faltings dans [WF99] ainsi que Darwiche et Marquis dans [DM02]. 1.2 Un exemple d application : la configuration Une définition de la configuration proche de l implémentation est proposée dans [AFV01] : «Un produit configurable peut être défini par un ensemble de variables. Chaque variable prend sa valeur dans un domaine de définition (continu ou discret). Il existe des contraintes pouvant conditionner l existence de variables et restreindre leur domaine de définition. Configurer vise à donner une valeur à toutes les variables qui existent dans un produit configurable 7

8 8 CHAPITRE 1. PROBLÉMATIQUE en respectant toutes les contraintes et en satisfaisant au mieux les besoins et préférences de l utilisateur.» On pourra trouver dans [AFV01] une introduction à la problématique de la configuration et dans [Ver01] une approche beaucoup plus détaillée. Le but d un configurateur est de définir un produit respectant les contraintes inhérentes au produit. Il devra aussi satisfaire au mieux les désirs d un utilisateur concernant la personnalisation du produit configurable en garantissant sa faisabilité tout au long du processus de configuration. Le configurateur doit permettre de modéliser le produit générique en tenant compte de sa structure, des entités le composant et des contraintes pesant sur ces éléments. Il est en effet en pratique impossible de lister explicitement tous les produits réalisables. Lors de la configuration, le configurateur doit assurer le maintien de la cohérence du modèle générique augmenté des choix de l utilisateur. Des fonctionnalités intéressantes mais non essentielles d un configurateur sont le calcul automatique d une configuration optimale (pour le critère du prix par exemple) respectant les contraintes et les choix exprimés, l explication de l impossibilité d un choix et la restauration d une configuration consistante. La configuration se prête donc a priori bien à la compilation : sur un même produit, on réalise beaucoup de requêtes proches les unes des autres (les choix). On pourra alors compiler hors-ligne le problème défini par le produit à configurer et réaliser en ligne les processus de configuration 1.3 Problématique A priori, la compilation est adaptée au problème de la configuration et en particulier au maintien de la consistance globale des domaines des variables. Dans [AFV01] est proposée une manière de compiler un problème de configuration exprimé sous la forme d un réseau de contraintes en un automate fini déterministe. Cependant, les solveurs CSP traitant les réseaux de contraintes ainsi que les solveurs SAT ont énormément progressé de leur côté et il n est pas évident que la compilation vaille encore le coup. C est pourquoi il peut être intéressant de comparer expérimentalement l approche compilée (utilisant une telle forme compilée) et l approche directe (utilisant un solveur CSP ou un solveur SAT accompagné d un traducteur de CSP à SAT). La requête traitée sera le maintien de la consistance globale du réseau de contraintes lors d un processus de configuration et on testera les deux approches sur un problème réel de configuration.

9 1.3. PROBLÉMATIQUE 9 Les résultats de compétition de solveurs CSP 1 ont orienté le choix du solveur vers le solveur zchaff accompagné d un traducteur de CSP vers SAT pour l approche directe. Se pose ensuite le choix du type de traduction de CSP vers SAT, choix étudié au chapitre 3. Les résultats de l expérimentation sont présentés et analysés au chapitre

10 10 CHAPITRE 1. PROBLÉMATIQUE

11 Chapitre 2 État de l art 2.1 CSP Il est nécessaire pour la suite d introduire brièvement les réseaux de contraintes ainsi qu un problème associé : CSP. Définition 1 Un réseau de contraintes à domaines finis R est un triplet (X, D, C) où X = (x 1,..., x n ) est un ensemble de variables ; D = (D 1,..., D n ) est un ensemble de domaines finis. D i est le domaine de x i, c est à dire l ensemble des valeurs possibles pour la variable x i ; C = (C 1,..., C e ) est un ensemble de contraintes. C i, contrainte d arité q est définie par S i = (x i1,..., x iq ), les variables sur lesquelles elle pèse et la relation R i, un sous ensemble de D i1... D ip indiquant les affectations des variables x i1,..., x ip compatibles entre elles Les réseaux de contraintes sont souvent appelés abusivement CSP. Un format XML de représentation de réseaux de contraintes est présenté dans l annexe A. Une solution est une instanciation de l ensemble des variables de X qui ne viole aucune contrainte. Les principaux problèmes attachés à un réseau de contraintes sont : Déterminer si le réseau de contraintes est satisfiable (si il existe une solution), problème dit de la satisfiabilité. C est un problème de décision NP-complet. Trouver une solution, problème dit de satisfaction de contraintes (CSP). C est un problème NP-difficile. Trouver toutes les solutions. C est aussi un problème NP-difficile. 11

12 12 CHAPITRE 2. ÉTAT DE L ART Rendre le réseau globalement consistant, c est-à-dire trouver toutes les valeurs des variables qui participent à une solution et éliminer les autres. Les méthodes de recherche complètes, qui assurent que la résolution se fait en un temps fini reposent sur le principe du backtrack. On affecte successivement, dans un ordre prédéfini, une valeur aux variables du problème. Après chaque affectation, on vérifie que l affectation partielle est localement consistante (qu elle ne viole aucune contrainte portant sur les variables affectées). Si c est le cas, on affecte une autre variable, et ainsi de suite jusqu à ce que toutes les variables soient affectées. Sinon, on remet en cause la dernière affectation en choisissant une autre valeur. Si aucune valeur du domaine ne convient, on effectue un backtrack en choisissant une autre valeur pour la variable précédente. On peut trouver dans [Deb98] et dans [AS] un état de l art des techniques de résolution de réseaux de contraintes. 2.2 Configurateurs Plusieurs outils apportant des réponses à la problématique de la configuration ont été proposés dans la littérature. Ils sont décrits abondamment dans [Ver01]. Configurateurs procéduraux : Les premiers configurateurs n étaient pas génériques et mélangeaient le code et les données. Ces configurateurs procéduraux donnent peu de liberté à l utilisateur en lui posant les questions dans un ordre prédéfini. Selon les réponses de l utilisateur aux questions précédentes, certaines questions ne sont pas posées. Configurateurs à base de systèmes experts : Une autre catégorie de configurateurs est constituée par des configurateurs s appuyant sur des systèmes experts. Une base de règles de production (de la forme «SI condition ALORS conséquence») est définie. Ces règles modélisent les contraintes entre les valeurs des variables et les domaines de définition de ces variables. Des faits (comme les choix de l utilisateur), sont déduites de nouvelles connaissances (les nouveaux domaines des variables par exemple). Le raisonnement abductif permet en plus de générer des explications. Un gros problème de cette approche est le grand nombre de règles nécessaires, ce qui complique la maintenance du modèle. [Ver01] explique plus en détails le fonctionnement de tels systèmes.

13 2.3. COMPILATION D UN RÉSEAU DE CONTRAINTES DÉCRIVANT UN PROBLÈME DE CONFIGURATION EN AUTOMATE 13 Configurateurs à base de réseaux de contraintes : Enfin, une autre conception de configurateur, exposée longuement dans [Ver01] utilise les techniques des réseaux de contraintes vus à la section 2.1. En particulier, une proposition d adaptation du formalisme des CSP aux problèmes de configuration est décrite dans [AFM02] : le produit générique est décrit par un réseau de contraintes classique. La configuration revient alors à la résolution interactive du réseau de base par l ajout de contraintes dynamiques supplémentaires, contraintes restreignant les domaines des variables. Les auteurs y expliquent comment utiliser efficacement une forme compilée de CSP dans un configurateur, d une manière vue à la section Compilation d un réseau de contraintes décrivant un problème de configuration en automate Compilation d un réseau de contraintes en automate Vempaty a proposé une méthode de représentation de CSP par des automates dans [Vem92]. Leur étude a été poursuivie par Amilhastre dans [Ami99]. Cette représentation s inspire fortement des ROBDD présentés dans [And97] : pour un ordre fixé sur les n variables du problème, l ensemble des solutions peut s exprimer comme un langage rationnel (dont les mots sont tous de taille n si le CSP est cohérent). Cet ensemble de solutions peut donc être représenté par un automate fini déterministe (FDA) possédant un unique état d arrivée. Sur cette forme compilée (l automate), de nombreuses requêtes peuvent être effectuées en un temps linéaire en la taille de l automate. Les facteurs essentiels influant sur la taille de l automate final (et donc sur son coût de construction et d utilisation) sont l ordre choisi sur les variables et l algorithme de minimisation de l automate. En effet la différence de taille entre deux FDA minimisés décrivant le même CSP peut être exponentielle. Dans [Ami99] sont exposées quelques heuristiques pour obtenir des ordres plus efficaces sur les variables. Satisfiabilité : La satisfiabilité est immédiate puisque si l automate possède au moins un état, le langage qu il reconnaît est non vide (c est un automate émondé). Cette requête s effectue donc en temps constant.

14 14 CHAPITRE 2. ÉTAT DE L ART Affectation satisfaisante : La recherche d une solution se fait en cherchant un chemin du départ à l arrivée. Cette requête s effectue aussi en un temps linéaire en le nombre de variables du CSP. Consistance globale : Afin de savoir si une affectation d une variable participe à une solution, il suffit de vérifier qu il existe un arc de l automate étiqueté par cette affectation. On peut trouver dans [AFM02] une façon de calculer la consistance globale en un temps polynomial en la taille de l automate Compilation d un produit configurable Les CSP compilés par cette méthode peuvent aussi être utilisés pour représenter des produits configurables comme exposé dans [AFM02]. L automate utilisé est le résultat de la compilation du réseau de contraintes décrivant le produit générique. À chaque arc du graphe de l automate, on affecte un coût (initialement nul). Lors du processus de configuration, à chaque affectation d une valeur à une variable, on incrémente d une unité les coûts associés aux arcs correspondant à l affectation d une valeur maintenant interdite pour cette variable. Le coût d un chemin du départ à l arrivée correspond alors au nombre de choix utilisateur violés par l affectation à laquelle il correspond. Tout chemin de coût nul du départ à l arrivée du graphe représente donc une affectation des variables ne violant aucune contrainte. On peut aussi obtenir la consistance globale du réseau de contraintes augmenté des choix : les variables globalement consistantes sont celles qui apparaissent sur un chemin de coût nul reliant le départ à l arrivée. Dans [AFM02] est proposée une façon de maintenir la consistance globale en un temps polynomial. 2.4 SAT Outre CSP, il existe un autre problème de satisfaction de contraintes qui s applique à des variables booléennes (donc à valeur dans des domaines de taille 2) et dont les contraintes s expriment sous la forme d une formule booléenne à satisfaire liant ces variables. C est le problème SAT. Dans le chapitre 3 sont exposées plusieurs méthodes permettant de passer d une instance CSP à une instance SAT.

15 2.4. SAT 15 Définition 2 Un littéral est une variable booléenne ou sa négation ; Une clause est une disjonction de littéraux ; Une clause est satisfaite si au moins l un de ses littéraux est vrai ; Une fonction booléenne est sous la forme CNF (forme conjonctive normale) si elle est mise sous la forme d une conjonction de clauses ; Une fonction booléenne sous la forme CNF est satisfaite si toutes ses clauses le sont ; Une fonction booléenne est satisfiable si il existe au moins une affectation de ses variables qui la satisfait. Définition 3 Soit F une formule du calcul propositionnel utilisant les variables propositionnelles (x 1,..., x n ) Résoudre le problème de la satisfiabilité de F consiste à déterminer s il existe une interprétation des x i telle que F soit satisfaite. Ce problème est appelé problème SAT. Définition 4 Soit F une formule du calcul propositionnel sous la forme CNF utilisant les variables propositionnelles (x 1,..., x n ) Résoudre le problème de la satisfiabilité de F consiste à déterminer s il existe une interprétation des x i telle F soit satisfaite. Ce problème est appelé problème SAT-CNF. Le problème de décision SAT-CNF et donc SAT est NP-complet. Un format de description d instance SAT-CNF (format DIMACS-CNF) est décrit à l annexe B. Chaque année, des compétitions entre solveurs sont organisées, ce qui permet aux différentes équipes de comparer leurs algorithmes. Citons la compétition pour solveurs SAT Comme le fait remarquer Le Berre dans [Ber05], tous les éléments des solveurs SAT-CNF ont été largement étudiés non seulement du point de vue algorithmique, mais aussi du point de vue de l implémentation. Les solveurs SAT-CNF actuels peuvent ainsi être considérés non plus comme des prototypes, mais comme des logiciels utilisables en production. C est pourquoi des ensembles traducteur CSP vers SAT et solveur SAT participent aussi aux compétitions CSP et obtiennent d excellents résultats comme on peut le voir dans [vd05] : le solveur SAT zchaff, accompagné d un traducteur CSP vers SAT écrit en moins de trois jours résout les problèmes à contraintes binaires environ deux fois plus vite que les autres solveurs.

16 16 CHAPITRE 2. ÉTAT DE L ART C est pour ces performances remarquables que la comparaison entre approche directe et approche compilée s est faite non pas avec un solveur CSP mais avec une traduction de CSP vers SAT et le solveur SAT zchaff.

17 Chapitre 3 De CSP à SAT 3.1 Types de traductions de réseaux de contraintes en formules booléennes Les problèmes SAT et CSP sont tous deux NP-complets, on peut donc passer de SAT à CSP et inversement en un temps polynomial. Il existe plusieurs techniques connues pour transcrire un problème exprimé sous la forme d un réseau de contraintes en un problème de satisfaction d un ensemble de clauses. Dans [Pre03] sont décrites et comparées plusieurs variantes de ces codages pour une résolution par recherche locale. Dans [Wal00], Walsh cite deux types de traductions de réseau de contraintes en ensemble de clauses. L un introduit pour chaque variable CSP un nombre de variables booléennes linéaire en la taille du domaine de la variable CSP, d où le nom de codage linéaire. L autre introduit pour chaque variable CSP un nombre de variables booléennes logarithmique en la taille du domaine de la variable CSP, d où le nom de codage logarithmique. Outre le codage des domaines, les traducteurs diffèrent également selon la manière dont ils codent les contraintes d exclusivité, les contraintes binaires et les contraintes non binaires Codages linéaires et codages logarithmiques Codage linéaire : Soit X i une variable du CSP prenant ses valeurs dans un domaine D i de taille n i. Dans la formulation booléenne, on associe à X i les n i variables booléennes x i,1,..., x i,ni valant x i,j = (X i == j). Afin de s assurer que chaque variable du CSP prenne effectivement une valeur dans son domaine, il suffit d ajouter la clause suivante de taille D i 17

18 18 CHAPITRE 3. DE CSP À SAT pour chaque variable X i : n i x i,j j=1 Codage logarithmique : Pour les codages linéaires, on avait une variable booléenne par valeur du domaine. Pour les codages logarithmiques, le domaine D i de taille n i d une variable x i est codé par m i = log 2 (n) variables booléennes x i1...x imi qui codent en binaire les valeurs de ce domaine. L affectation de X i correspond à X i = x i1...x imi 2 Il n y a pas besoin de clauses assurant qu il existe bien une et une seule affectation des variables CSP, en revanche il est nécessaire de disposer de clauses assurant que l affectation de X i ne dépasse pas de son domaine si log 2 (m i ) > log 2 (m i ). Ceci peut se faire simplement en interdisant une à une les valeurs trop grandes. Ceci introduit 2 log 2(m i ) D i clauses de taille log 2 (m i ) chacune Unicité de l affectation des variables CSP Dans le cadre d un codage logarithmique, par nature du codage, chaque variable CSP se verra affecter une et une seule valeur de son domaine. Dans le cadre d un codage linéaire, si on n introduit pas de clauses d exclusivité, une variable CSP pourra se voir affecter plusieurs valeurs de son domaine (rien n interdit à plusieurs variables booléennes correspondant aux valeurs de son domaine d être valuées à VRAI simultanément). On peut forcer l unicité de l affectation, c est-à-dire forcer le fait qu il n y ait, pour une variable CSP X i donnée, qu au plus une des variables booléennes x i,j qui soit valuée à vrai. Clauses d exclusivité naïves : Les clauses d exclusivité peuvent s écrire en ajoutant pour chaque variable X i les n i.(n i 1)/2 clauses de taille 2 : x i,j x i,k j k Clauses d exclusivité de Roussel : Roussel propose dans [Rou05] une autre technique qui, elle, est linéaire en la taille des domaines (et non quadratique), il ajoute pour chaque variable X i les 2n i variables y i,1...y i,ni, z i,1...z i,ni et les 6n i 4 clauses : n i 1 j=1 x i,j y i,j+1 ; n i 1 j=1 y i,j y i,j+1 ; n i j=1 y i,j x i,j

19 3.1. TYPES DE TRADUCTIONS DE RÉSEAUX DE CONTRAINTES EN FORMULES BOOLÉENNES 19 n i j=2 x i,j z i,j 1 ; n i j=2 z i,j z i,j 1 ; n i j=1 z i,j x i,j Cependant, pour de petits domaines, la méthode de Roussel semble peu efficace puisque pour des tailles de domaines inférieures à 13, elle induit plus de clauses que la méthode quadratique, en plus d introduire de nouvelles variables booléennes. Aucune clause d exclusivité : On peut aussi, quand on utilise le codage des conflits vu plus loin, se passer des clauses d exclusivité. Si plusieurs variables booléennes décrivant les valeurs du domaine d une même variable sont valuées simultanément à VRAI, c est que les valeurs correspondantes sont interchangeables dans la solution trouvée. Aucune de ces valeurs n est interdite donc elles sont toutes autorisées Codage des contraintes binaires Dans plusieurs types de codages, les contraintes binaires (c est à dire liant exactement deux variables) peuvent disposer d un traitement particulier qui ne peut être étendu aux contraintes non binaires. Il existe deux façons connues de traduire une contrainte : soit en traduisant le fait que seuls certains tuples sont autorisés (c est le codage des supports), soit en traduisant le fait que certains tuples sont interdits (c est le codage des conflits). Codage des tuples interdits (conflits) : Pour les codages linéaires : Si le tuple (v 1, v 2 ) est interdit pour le couple de variables (X 1, X 2 ) avec (x 1, x 2 ) les variables booléennes correspondantes à v 1 et v 2, on ajoute la clause de taille 2 : x 1 x 2 Cette technique peut s étendre aux contraintes non binaires. Pour les codages logarithmiques : Si le tuple (v 1, v 2 ) est interdit pour le couple de variables (X 1, X 2 ), que v i = x i,1...x 2 i,mi, i {1, 2}, on ajoute la clause x 1,1... x 1,m1 x 2,1... x 2,m2 Cette clause est de taille log 2 ( D 1 ) + log 2 ( D 2 ) où D 1 et D 2 sont les tailles des domaines des variables X 1 et X 2. Cette technique peut s étendre aux contraintes non binaires.

20 20 CHAPITRE 3. DE CSP À SAT Codage des tuples autorisés (supports) : Inversion de contrainte : Quand les contraintes sont décrites par des tuples autorisés, on peut énumérer tous les tuples possibles et retirer de cet ensemble les tuples interdits. On se ramène alors au cas de contraintes définies par des tuples interdits. La complexité de cette opération est en ln(t ). D 1. D 2 opérations et elle génère D 1. D 2 T clauses de taille 2 où T est le nombre de tuples autorisés par la contrainte. Cette technique est utilisable pour les contraintes non binaires. Codage des supports : On peut aussi utiliser le codage des supports décrit dans [Gen02] en codant directement les contraintes binaires définies par leur support. Ce codage n est possible que dans le cadre d un codage linéaire et uniquement pour des contraintes binaires. Soient X 1 et X 2 de domaines D 1 et D2 les variables sur lesquelles porte la contrainte. Soient x 1,1...x 1,i1, x 2,1...x 2,i2 les variables binaires associées. Pour chaque valeur v 2,k du domaine de X 2, si v 1,k1...v 1,kj sont les valeurs autorisées pour X 1 pour X 2 = v 2,k, on ajoute la clause x 2,k x 1,k1... x 1,kj Il est nécessaire d utiliser les clauses d exclusivité pour ce type de codage car sinon, par exemple, la valuation dans laquelle toutes les variables booléennes sont valuées à vrai satisfait toutes les clauses. Cette opération ajoute D 2 clauses de taille au plus D 1 chacune, utilisant en tout D 2 + T littéraux Codage des contraintes non binaires Codage des tuples interdits (conflits) : Pour les codages linéaires : Si une contrainte d arité n est décrite par des tuples interdits, pour chaque tuple interdit (v 1,j1...v i,ji ) avec v 1,j1...v i,ji des valeurs dans les domaines de X 1...X j et (x 1,j1...x i,ji ) les variables booléennes correspondantes, on ajoute la clause de taille 2 : x 1,j1... x i,ji Pour les codages logarithmiques : Si le tuple v 1...v n est interdit pour les variables X 1...X n, que v i = x i,1...x 2 i,mi, il suffit d ajouter la clause x 1,1... x 1,m1... x n,1... x n,mn

21 3.1. TYPES DE TRADUCTIONS DE RÉSEAUX DE CONTRAINTES EN FORMULES BOOLÉENNES 21 Cette clause est de taille n i=1 log 2 ( D i ) où D i est la taille du domaine de la variable X i. Codage des tuples autorisés (supports) : Inversion de contrainte : Dans le cas de contraintes non binaires, on peut aussi énumérer l ensemble de tous les tuples possibles et retirer les tuples autorisés pour obtenir les tuples interdits. La complexité de cette opération est en ln(t ). n i=1 D i opérations et elle génère n i=1 D i T clauses de taille n. Binarisation des contraintes : Il peut être plus judicieux de binariser le CSP afin de pouvoir appliquer les techniques utilisables sur des contraintes binaires. On introduit une nouvelle variable CSP Y dont le domaine est constitué des tuples autorisés par la contrainte (son domaine est donc de taille T ). Sur cette variable pèsent n contraintes binaires qui assurent que X i prend bien la même valeur que celle à laquelle elle a été affectée lors de l affectation de Y. On introduit donc pour Y, des variables booléennes et des clauses (en nombre dépendant de la manière dont on code les variables et les contraintes d exclusivité) ainsi que des clauses traduisant les n contraintes binaires supplémentaires introduites (en nombre dépendant de la manière dont sont codées les contraintes binaires) Nomenclature On peut définir et nommer différents codages selon les techniques qu ils utilisent. On peut voir dans le tableau 3.1 les différences entre les types de codages. Il est à noter que pour les codages linéaires Direct-bin, Direct-bin-roussel et Multivalued-bin, toutes les clauses sont de taille 2 sauf celles assurant l existence de l affectation. Ce qui est intéressant car 2-SAT est dans P alors que n-sat est NP complet. En revanche, pour le codage logarithmique, les clauses d arité 2 ne sont rencontrées que quand les domaines sont petits (possédant au plus deux valeurs).

22 22 CHAPITRE 3. DE CSP À SAT Codage Codage des Contraintes Codage des Binarisation domaines d exclusivité contraintes des contraintes Direct Linéaire Naïf Conflits Non Direct-roussel Linéaire Roussel Conflits Non Direct-bin Linéaire Naïf Conflits Oui Direct-bin-roussel Linéaire Roussel Conflits Oui Multivalued Linéaire Aucune Conflits Non Multivalued-bin Linéaire Aucune Conflits Oui Support Linéaire Naïf Supports Oui Support-roussel Linéaire Roussel Supports Oui Log Logarithmique Aucune Conflits Non Log-bin Logarithmique Aucune Conflits Oui Tab. 3.1 Types de codages de CSP vers SAT 3.2 Comparaison Pour un même réseau de contraintes, la taille de l ensemble de clauses généré dépend fortement du type de codage utilisé. Cette taille dépend aussi des caractéristiques du réseau de contraintes (nombre de variables, taille des domaines, nombre de contraintes, arité des contraintes et dureté des contraintes). On s attache ici à caractériser la taille de l ensemble de clauses résultant en fonction de ces différents paramètres Caractéristiques d un réseau de contraintes Deux grandeurs caractérisant un réseau de contraintes sont couramment utilisées : la densité des contraintes et la dureté des contraintes. Densité d un réseau de contraintes : Pour un réseau de contraintes, on appelle densité des contraintes le nombre de contraintes par rapport au nombre maximal de contraintes. Pour un réseau de n variables avec c contraintes d arité k, on aura alors la densité p 1 : p 1 = c/c n k Dureté d une contrainte : On appelle dureté d une contrainte la proportion de tuples interdits par cette contrainte. Pour une contrainte d arité k portant sur des variables dont les domaines sont de taille d, décrite par c tuples interdits, on aura la dureté p 2 : p 2 = c/d k

23 3.2. COMPARAISON Taille des clauses générées Notations : On note : n le nombre de variables ; d la taille des domaines ; p la dureté des contraintes ; q la densité des contraintes ; k l arité des contraintes. Le tableau 3.2 donne la taille des clauses générées par les différents codages en fonction de tous ces paramètres.

24 24 CHAPITRE 3. DE CSP À SAT Codage Codage des Contraintes Contraintes Taille domaines binaires k-aires asymptotique Nombre n q.n.(n 1) q.c n k Direct d 2 d 2.p d k.k.p Θ(n k.d k ) Direct-roussel 13d 8 d 2.p d k.k.p Θ(n k.d k ) Direct-bin d 2 d 2.p d 2k.(1 p) 2 + d k.(1 p).2.k.(d 1) Θ(n k.d 2k ) Direct-bin-roussel 13d 8 d 2.p d k.(1 p).(2.k(d 1) + 13) 8 Θ(n k.d k ) Multivalued d d 2.p d k.k.p Θ(n k.d k ) Multivalued-bin d d 2.p d k.(1 p).(2.k.(d 1) + 1) Θ(n k.d k ) Support d 2 d + d 2.(1 p) d 2k.(1 p) 2 + d k.(1 p).2.k Θ(n k.d 2k ) Support-roussel 13d 8 d + d 2.(1 p) d k.(1 p).(2.k + 13) 8 Θ(n k.d k ) Tab. 3.2 Taille des clauses générées par les codages de CSP vers SAT

25 3.2. COMPARAISON 25 Dans les graphiques 3.1, 3.2 et 3.3, on considère un problème à 50 variables dont les domaines sont de taille 8 et les contraintes sont d arité 4. Comme les codages directs sont strictement dominés par les codages multivalués (qui sont identiques aux clauses d exclusivité près), ils ne sont pas pris en compte afin de conserver une certaine clarté des courbes. D un graphique au suivant, le codage le moins efficace en terme de taille des clauses produites est supprimé. Fig. 3.1 Taille des codages support, support-roussel, multivalued et multivalued-bin sur un réseau On peut voir sur la figure 3.2 que la binarisation des contraintes non binaires produit une modélisation booléenne occupant plus de mémoire, cependant, il est essentiel de noter que s il n y a pas de binarisation des contraintes, les clauses ne sont pas binaires non plus, ce qui peut influer considérablement sur la difficulté de la résolution (ce qu on pourra observer à la section 3.2.3). Les graphiques 3.4, 3.5 et 3.6 donnent une vue en coupe permettant d observer l évolution de la taille des clauses en fonction de la dureté des contraintes (à densité constante égale à 0, 1). La figure 3.7 permet de comparer toutes choses égales par ailleurs (binarisation des contraintes et contraintes d exclusivité de Roussel) le codage des supports et le codage des conflits. Les graphiques 3.8, 3.9 et 3.10 donnent une vue en coupe permettant d observer l évolution de la taille des clauses en fonction de la densité de contraintes (à dureté des contraintes constante égale à 0, 5).

26 26 CHAPITRE 3. DE CSP À SAT Fig. 3.2 Taille des codages support-roussel, multivalued et multivalued-bin sur un réseau Fig. 3.3 Taille des codages multivalued et support-roussel sur un réseau

27 3.2. COMPARAISON 27 Fig. 3.4 Taille des codages support, support-roussel, multivalued et multivalued-bin sur un réseau à densité constante Fig. 3.5 Taille des codages support-roussel, multivalued et multivalued-bin sur un réseau à densité constante

28 28 CHAPITRE 3. DE CSP À SAT Fig. 3.6 Taille des codages multivalued et support-roussel sur un réseau à densité constante Fig. 3.7 Taille des codages support-roussel et direct-bin-roussel sur un réseau

29 3.2. COMPARAISON 29 Fig. 3.8 Taille des codages support, support-roussel, multivalued et multivalued-bin sur un réseau à dureté constante Fig. 3.9 Taille des codages support-roussel, multivalued et multivalued-bin sur un réseau à dureté constante

30 30 CHAPITRE 3. DE CSP À SAT Fig Taille des codages multivalued et support-roussel sur un réseau à dureté constante

31 3.2. COMPARAISON Conclusion Intérêt des clauses d exclusivité de Roussel : Pour les codages utilisant des contraintes d exclusivité, les clauses de Roussel montrent leur intérêt lors de la binarisation des contraintes n-aires. On introduit en effet de nouvelles variables CSP possédant des domaines très grands, ce qui induit un nombre de clauses quadratique en la taille du domaine pour les clauses d exclusivité naïves, contre un nombre de clauses linéaire en la taille du domaine pour les clauses d exclusivité de Roussel. Codage des supports contre codage des conflits : Selon la figure 3.7, toutes choses égales par ailleurs, le codage des supports génère des clauses occupant moins de place que le codage des conflits. Mais le codage des supports impose les clauses d exclusivité et la binarisation des contraintes. En comparant le codage des supports occupant le moins de place au codage des conflits occupant le moins de place, la conclusion est différente : à part pour des contraintes très dures, le codage des supports génère un ensemble de clauses plus important que le codage des conflits. Cette différence est due aux contraintes d exclusivité principalement, mais aussi à la possibilité de ne pas binariser les contraintes non binaires pour les codages de conflits. Intérêt de la binarisation des contraintes non binaires : Il semblerait que le plus petit ensemble de clauses est généré par le codage multivalué sans binarisation des contraintes, pour la plupart des problèmes (sauf pour les problèmes contenant des contraintes très dures). Cependant, il est important de noter que lors de la binarisation, quasiment toutes les clauses générées sont binaires alors que dans le cas contraire, les clauses ont l arité des contraintes. Donc la résolution par le solveur SAT ne sera pas forcément plus rapide. Cette méthode induit ainsi des clauses de propagation. D après les résultats obtenus à la section 4.3, le codage le plus efficace semble être le codage multivalued-bin, c est à dire le codage des conflits, sans contraintes d exclusivité et utilisant la binarisation des contraintes non binaires.

32 32 CHAPITRE 3. DE CSP À SAT 3.3 CSP2SAT, un outil pour la traduction de réseaux de contraintes en formules booléennes CSP2SAT est une bibliothèque de fonctions écrite en C++ permettant de transcrire un réseau de contraintes en un ensemble de clauses. CSP2SAT est disponible à l adresse Fonctionnalités Le seul format de description accepté en entrée pour décrire le réseau de contraintes est le format XML décrit dans l annexe A. C est le format utilisé pour les compétitions de solveurs CSP. En sortie, CSP2SAT produit un fichier décrivant un ensemble de clauses au format DIMACS CNF (cf annexe B) ainsi qu un fichier XML permettant d obtenir les noms des variables et des valeurs des domaines du réseau de contraintes 1. Dans CSP2SAT sont pour l instant programmés les codages suivants (décrits à la section 3.1.5) : Direct Direct-roussel Direct-bin Direct-bin-roussel Multivalued Multivalued-bin Support Support-roussel Possibilités d améliorations CSP2SAT est conçue pour être facilement extensible par l ajout de nouveaux codages. Il est par exemple prévu d implanter des codages logarithmiques ainsi que des codages hybrides (permettant de choisir un codage différent selon la dureté et l arité de chaque contrainte). Les performances ne sont pas la priorité, mais elles peuvent cependant être améliorées notamment en ce qui concerne la rapidité de la traduction. 1 Ce qui est nécessaire pour pouvoir revenir aux solutions du CSP après résolution du problème SAT-CNF associé

33 Chapitre 4 Efficacité de la SAT-compilation pour un problème de configuration 4.1 Protocole expérimental Pour répondre au problème de la configuration, trois outils utilisant une formalisation CSP ont été envisagés : Un configurateur basé sur un automate (forme compilée) comme décrit à la section 2.3 ; Un configurateur basé sur un solveur CSP ; Un configurateur basé sur un solveur SAT traduisant le réseau de contraintes original en formule booléenne selon des techniques vues au chapitre 3. Une séquence de configuration d un produit se déroule de la façon suivante : Tant qu il reste une variable libre (dont le domaine n est pas un singleton) Tirer une variable libre v au hasard Tirer une valeur a au hasard dans le domaine de v Faire l affectation v a Réduire les domaines par consistance globale Lors d une séquence d expériences, pour un produit générique décrit par un réseau de contraintes, on effectue plusieurs séquences de configuration. La même séquence de configuration (qui aboutit donc à la même séquence de produits configurés) est effectuée avec les trois configurateurs et les temps de calcul de la réduction des domaines sont comparés. 33

34 34 CHAPITRE 4. EFFICACITÉ DE LA SAT-COMPILATION POUR UN PROBLÈME DE CONFIGURATION Il est à noter que pour le configurateur basé sur l automate, le temps de compilation en automate n est pas comptabilisé (puisqu il est fait hors-ligne une fois pour toute). De même, pour le configurateur basé sur un solveur SAT, le temps de conversion en un ensemble de clauses n est pas non plus comptabilisé. Le configurateur basé sur le solveur CSP a été rapidement abandonné à cause de performances catastrophiques : le temps utilisé pour trouver une seule solution du CSP était plus long que tout une séquence de configuration pour le configurateur basé sur l automate. 4.2 Choix de conception Les configurateurs fournissent tous la même interface simple comprenant les fonctions : Parsage du fichier décrivant le produit à configurer (fichier décrivant un automate ou un réseau de contraintes) et création d un configurateur ; Affectation d une valeur à une variable ; Obtention des domaines des variables globalement consistants ; Annulation de toutes les affectations (remise à zéro avant de configurer un nouveau produit). Ainsi, le programme principal choisissant l ordre d affectation des variables ainsi que les valeurs dans les domaines est commun aux configurateurs, ce qui permet de s assurer que les produits issus des processus de configuration sont identiques indépendamment du type de configurateur utilisé. À la compilation du projet, on obtient un exécutable par type de configurateur. Le configurateur basé sur l automate est basé sur un configurateur écrit par Jérôme Amilhastre et Hélène Fargier. Le configurateur basé sur le solveur SAT utilise le solveur zchaff et la bibliothèque CSP2SAT développée en cette intention. Il peut donc utiliser tous les types de traduction de CSP vers SAT présentés à la section Le choix du solveur SAT-CNF s est porté sur zchaff pour ses excellentes performances aux compétitions de solveurs SAT (et de solveurs CSP, accompagné par un traducteur de CSP à SAT), ainsi que sa disponibilité sous forme de bibliothèque. 4.3 Résultats Les expérimentations ont été effectuées sur deux produits réels : une souffleuse et la Renault Mégane. Les résultats des tableaux 4.1 et 4.2 ont été obtenus sur un processeur Pentium 4 3GHz, muni de 1Go de RAM sous

35 4.4. CONCLUSION 35 GNU/Linux avec g et l option -O3. Configurateur Temps de réduction Occupation des domaines (s) mémoire (ko) Automate zchaff Direct zchaff Direct-roussel zchaff Direct-bin zchaff Direct-bin-roussel zchaff Multivalued zchaff Multivalued-bin zchaff Support zchaff Support-roussel zchaff Log zchaff Log-bin Tab. 4.1 Temps moyen de réduction des domaines par consistance globale suite à une affectation sur l exemple de la souffleuse Configurateur Temps de réduction Occupation des domaines (s) mémoire (Mo) Automate zchaff Direct Échec - zchaff Direct-roussel Échec - zchaff Direct-bin Dépassement RAM - zchaff Direct-bin-roussel 9, zchaff Multivalued Échec - zchaff Multivalued-bin zchaff Support Dépassement RAM - zchaff Support-roussel zchaff Log Échec - zchaff Log-bin Échec - Tab. 4.2 Temps moyen de réduction des domaines par consistance globale suite à une affectation sur l exemple de la Renault Mégane 4.4 Conclusion Approche directe contre approche compilée Pour les deux problèmes de test, le configurateur utilisant l automate est effectivement bien plus efficace que les configurateurs utilisant le solveur

36 36 CHAPITRE 4. EFFICACITÉ DE LA SAT-COMPILATION POUR UN PROBLÈME DE CONFIGURATION zchaff, en temps de calcul comme en occupation mémoire. La compilation est donc entièrement justifiée pour la maintenance de la consistance globale Comparaison entre traductions de CSP vers SAT Pour un petit problème tel que celui de la souffleuse, les traductions utilisant un codage linéaire des domaines permettent des performances assez proches les unes des autres alors que les traductions utilisant des codages logarithmiques des domaines sont bien moins efficaces. Ceci peut s expliquer par le fait que les codages logarithmiques génèrent des clauses impliquant plus de deux variables, alors que la plupart des clauses générées par les codages linéaires des domaines sont des 2-clauses. Pour un gros problème tel que celui de la Renault Mégane, seuls trois codages permettent d obtenir la solution, les autres aboutissant soit à un échec du solveur zchaff, soit à une consommation mémoire trop importante pour la machine de test. Les codages logarithmiques (Log et Log-bin) sont inutilisables sur le gros problème (ce qui pouvait se prévoir en analysant les résultats sur la souffleuse) car ils produisent beaucoup de clauses non binaires et très peu de clauses binaires qui permettent la propagation. Les codages sans binarisation des contraintes non binaires (Direct, Directroussel, Multivalued et Log) mènent à un échec du solveur SAT (ils produisent beaucoup de clauses non binaires). Les codages utilisant les clauses d exclusivité de Roussel (Direct-bin et Support) et la binarisation des contraintes non binaires explosent en RAM, car les tailles des domaines des variables CSP introduites par la binarisation des contraintes sont importantes et le nombre de clauses d exclusivité est quadratique en leur taille. On retrouve parmi les trois traductions utilisables les deux traductions occupant le moins de place (Support-roussel et Multivalued-bin) et une traduction assez proche de Multivalued-bin : Support-bin-roussel, ajoutant seulement un nombre raisonnable de clauses (clauses d exclusivité). Bien que le codage Support-roussel occupe moins de place que le codage Multivaluedbin, il est dominé par celui-ci, car Multivalued-bin ne génère quasiment que des 2-clauses. On peut noter que dans ces cas là, les clauses d exclusivité sont inutiles voire pénalisantes, contrairement à ce qu affirme Roussel dans [Rou05].

37 Conclusion Une synthèse des façons de passer d un réseau de contraintes à une formule booléenne à été réalisée. Plusieurs de ces techniques ont été comparées sur le critère de l occupation en mémoire de la formule booléenne obtenue. Un bibliothèque permettant de transcrire un réseau de contraintes en un ensemble de clauses a aussi été écrite, ce qui permettra à des travaux futurs de comparer expérimentalement ces traductions pour différents types d utilisation. Une comparaison expérimentale entre deux configurateurs à été menée, montrant que l approche compilée sous forme d automate est tout à fait justifiée par rapport à l approche directe utilisant un solveur CSP ou un solveur SAT avec un traducteur de CSP vers SAT. 37

38 38 CHAPITRE 4. EFFICACITÉ DE LA SAT-COMPILATION POUR UN PROBLÈME DE CONFIGURATION

39 Annexe A Format XML de description de réseau de contraintes Ce format permettant de décrire un réseau de contraintes (ou CSP) est présenté dans [BHL]. C est le format utilisé lors des compétitions de solveurs CSP telle que Voici sa syntaxe : <instance> <presentation name = nom de l instance description = description de l instance nbsolutions = nombre de solutions (? si inconnu) solution = une solution (? si inconnu) format = format XML de l instance /> <domains nbdomains= q > <domain name = nom du domaine nbvalues = nombre de valeurs values = description du domaine />... </domains> <variables nbvariable= n > <variable name = nom de la variables domain = nom du domaine />... </variables> <relations nbrelations= r > <relation name = nom de la relation domain = domaine de la relation nbsupports nbconflicts = nombre de supports ou de conflits supports conflicts = ensemble des supports ou des conflits />... </relations> 39

40 40 ANNEXE A. FORMAT XML DE DESCRIPTION DE RÉSEAU DE CONTRAINTES <constraints nbconstraints= m > <constraint name = put here the name of the constraint scope = put here the names of the variables involved in the constraint relation = put here the name of the relation />... </constraints> </instance> Et voici un exemple utilisant des contraintes non binaires : <instance> <presentation name="instancenonbinaire" description="un exemple" nbsolutions="au moins une" format="1.1"/> <domains nbdomains="3"> <domain name="dom0" nbvalues="7" values="0..6"/> <domain name="dom1" nbvalues="3" values="1 5 10"/> <domain name="dom2" nbvalues="10" values="1..15"/> </domains> <variables nbvariables="5"> <variable name="x0" domain="dom0"/> <variable name="x1" domain="dom0"/> <variable name="x2" domain="dom1"/> <variable name="x3" domain="dom2"/> <variable name="x4" domain="dom0"/> </variables> <relations nbrelations="4"> <relation name="rel0" domain="dom0 dom0" nbconflicts="7" conflicts="(0,0)(1,1)(2,2)(3,3)(4,4)(5,5)(6,6)"/> <relation name="rel1" domain="dom2 dom0" nbconflicts="25" conflicts="(1,0)(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(2,1)(2,2) (2,3)(2,4)(2,5)(2,6)(3,2)(3,3)(3,4)(3,5)(3,6)(4,3)(4,4) (4,5)(4,6)(5,4)(5,5)(5,6)"/> <relation name="rel2" domain="dom1 dom0" nbsupports="1" supports="(5,3)"/> <relation name="rel3" domain="dom0 dom1 dom2" nbsupports="17" supports="(0,1,3)(0,5,3)(0,10,12)(1,1,4)(1,5,2)(1,10,13) (2,1,5)(2,5,1)(2,10,14)(3,10,5)(3,10,15)(4,5,11)(4,10,4) (5,5,12)(5,10,3)(6,5,13)(6,10,2)"/> </relations> <constraints nbconstraints="5"> <constraint name="c0" scope="x0 X1" relation="rel0"/> <constraint name="c1" scope="x3 X0" relation="rel1"/> <constraint name="c2" scope="x2 X0" relation="rel2"/> <constraint name="c3" scope="x1 X2 X3" relation="rel3"/> <constraint name="c4" scope="x1 X4" relation="rel0"/> </constraints> </instance>

41 Annexe B Format DIMACS CNF Un format de description d instance SAT (format DIMACS) est présenté dans [Dim]. Voici sa syntaxe : Commentaires : c. Les lignes de commentaires commencent par le caractère c Ceci est un commentaire Problème : Une ligne décrit le problème : p cnf NombreDeVariables NombreDeClauses Clauses : Les variables booléennes sont numérotées de 1 à n où n est le nombre de variables. Chaque clause est représentée par une succession d entiers séparés par des caractère blancs (espace, tabulation ou retour chariot) et terminée par l entier 0. Le littéral positif de la variable i sera représenté par i alors que le littéral négatif sera représenté par i. Exemple : Pour (x 1 x 3 x 4 ) (x 4 ) (x2 x 3 ), une représentation possible sera : c Un exemple de fichier au format c DIMACS CNF p cnf

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

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

Stratégie de recherche adaptative en programmation par contrainte

Stratégie de recherche adaptative en programmation par contrainte Université Paul Sabatier École Nationale de l Aviation Civile Master 2 Recherche Informatique et Télécommunication parcours Intelligence Artificielle Simon Marchal Stratégie de recherche adaptative en

Plus en détail

Rapport d'analyse des besoins

Rapport d'analyse des besoins Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration

Plus en détail

Programmation Par Contraintes

Programmation Par Contraintes Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien

Plus en détail

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire 2008-2009. Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire 2008-2009. Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera. Cours Optimisation Partie Optimisation Combinatoire 3ième année ISAE Année scolaire 2008-2009 Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.fr Septembre 2008 Résumé Ce document couvre

Plus en détail

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit Revue à mi parcours du projet ANR Blanc «BR4CP» Hélène Fargier - IRIT Résolution interactive Le «catalogue»

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

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com)

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com) TABLE DES MATIERES I) Le logiciel JADE 2 II) Etablissements 3 1) Configuation de l établissement 3 2) Importation des classes avec SCONET 4 3) Les groupes d élèves 6 4) Les variables supplémentaires 6

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

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

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

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Programmation par contraintes. Laurent Beaudou

Programmation par contraintes. Laurent Beaudou Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution

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

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

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

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

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

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

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

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

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

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

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 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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

Plus en détail

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet Curriculum Name Guide du participant CCENT 3 Section 9.3 Dépannage de l adressage IP de la couche 3 Cette section consacrée au dépannage vous permettra d étudier les conditions nécessaires à l obtention

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP Université de Strasbourg Licence Pro ARS UFR de Mathématiques et Informatique Année 2009/2010 1 Adressage IP 1.1 Limites du nombre d adresses IP 1.1.1 Adresses de réseaux valides Réseaux Locaux TP 04 :

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

Outils pour les réseaux de neurones et contenu du CD-Rom

Outils pour les réseaux de neurones et contenu du CD-Rom Outils pour les réseaux de neurones et contenu du CD-Rom Depuis le développement théorique des réseaux de neurones à la fin des années 1980-1990, plusieurs outils ont été mis à la disposition des utilisateurs.

Plus en détail

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

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

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Chapitre VIII. Les bases de données. Orientées Objet. Motivation Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Table des matières. I Mise à niveau 11. Préface

Table des matières. I Mise à niveau 11. Préface Table des matières Préface v I Mise à niveau 11 1 Bases du calcul commercial 13 1.1 Alphabet grec...................................... 13 1.2 Symboles mathématiques............................... 14 1.3

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Projet INF242. Stéphane Devismes & Benjamin Wack. Pour ce projet les étudiants doivent former des groupes de 3 ou 4 étudiants.

Projet INF242. Stéphane Devismes & Benjamin Wack. Pour ce projet les étudiants doivent former des groupes de 3 ou 4 étudiants. Projet INF242 Stéphane Devismes & Benjamin Wak Pour e projet les étudiants doivent former des groupes de 3 ou 4 étudiants. 1 Planning Distribution du projet au premier ours. À la fin de la deuxième semaine

Plus en détail

Fondements de l informatique Logique, modèles, et calculs

Fondements de l informatique Logique, modèles, et calculs Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring Année académique 2006-2007 Professeurs : Marco Saerens Adresse : Université catholique de Louvain Information Systems

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

Écriture de journal. (Virement de dépense)

Écriture de journal. (Virement de dépense) Écriture de journal (Virement de dépense) SERVICE DES FINANCES Équipe de formation PeopleSoft version 8.9 Août 2014 TABLES DES MATIERES AVERTISSEMENT... 3 INTRODUCTION... 4 RAISONS JUSTIFIANT LA CRÉATION

Plus en détail

Chap17 - CORRECTİON DES EXERCİCES

Chap17 - CORRECTİON DES EXERCİCES Chap17 - CORRECTİON DES EXERCİCES n 3 p528 Le signal a est numérique : il n y a que deux valeurs possibles pour la tension. Le signal b n est pas numérique : il y a alternance entre des signaux divers

Plus en détail

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Problème d ordonnancement de véhicules en variables booléennes

Problème d ordonnancement de véhicules en variables booléennes Problème d ordonnancement de véhicules en variables booléennes Freddy Hetman 2 juillet 2013 Faculté des sciences Jean Perrin Freddy Hetman () 2 juillet 2013 1 / 22 Sommaire 1 Introduction 2 Le problème

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Méthodes d évolution de modèle produit dans les systèmes du type PLM Résumé de thèse étendu Méthodes d évolution de modèle produit dans les systèmes du type PLM Seyed Hamedreza IZADPANAH Table des matières 1. Introduction...2 2. Approche «Ingénierie Dirigée par les Modèles»

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Correction du baccalauréat ES/L Métropole 20 juin 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

F411 - Courbes Paramétrées, Polaires

F411 - Courbes Paramétrées, Polaires 1/43 Courbes Paramétrées Courbes polaires Longueur d un arc, Courbure F411 - Courbes Paramétrées, Polaires Michel Fournié michel.fournie@iut-tlse3.fr http://www.math.univ-toulouse.fr/ fournie/ Année 2012/2013

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

Chapitre 0 Introduction à la cinématique

Chapitre 0 Introduction à la cinématique Chapitre 0 Introduction à la cinématique Plan Vitesse, accélération Coordonnées polaires Exercices corrigés Vitesse, Accélération La cinématique est l étude du mouvement Elle suppose donc l existence à

Plus en détail

Fiche Technique. Cisco Security Agent

Fiche Technique. Cisco Security Agent Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit

Plus en détail

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

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

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

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

2 disques en Raid 0,5 ou 10 SAS

2 disques en Raid 0,5 ou 10 SAS Serveur GED: INFO EN + Afin d obtenir des performances optimales il est préférable que le serveur soit dédié. Matériel : Processeur Jusqu à 10 utilisateurs 2.0 Ghz environ Jusqu à 30 utilisateurs 2.6 Ghz

Plus en détail

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie Partie I : Séries statistiques descriptives univariées (SSDU) A Introduction Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie et tous sont organisés selon le même

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

CHAPITRE 5. Stratégies Mixtes

CHAPITRE 5. Stratégies Mixtes CHAPITRE 5 Stratégies Mixtes Un des problèmes inhérents au concept d équilibre de Nash en stratégies pures est que pour certains jeux, de tels équilibres n existent pas. P.ex.le jeu de Pierre, Papier,

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

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

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 L. POINSOT Contact client : Laurent Poinsot (laurent.poinsot@lipn.univ-paris13.fr) Résumé : Ce document est le cahier des charges du projet INFO 1.

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 Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric

Plus en détail

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

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

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services 69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard

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

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

I. Cas de l équiprobabilité

I. Cas de l équiprobabilité I. Cas de l équiprobabilité Enoncé : On lance deux dés. L un est noir et l autre est blanc. Calculer les probabilités suivantes : A «Obtenir exactement un as» «Obtenir au moins un as» C «Obtenir au plus

Plus en détail

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0 Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive Sommaire - Le Robot M.I.M.I. (Multipode Intelligent à Mobilité Interactive) - Présentation du Système à Enseigner. - Composition

Plus en détail

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) 87 FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) Dans le cadre de la réforme pédagogique et de l intérêt que porte le Ministère de l Éducation

Plus en détail