INFO-F-302 Informatique Fondamentale Projet : Logique du Premier Ordre et Utilisation de l Outil Z3
|
|
- Camille Françoise Doré
- il y a 8 ans
- Total affichages :
Transcription
1 UNIVERSITÉ LIBRE DE BRUXELLES (corrected version ) INFO-F-302 Informatique Fondamentale Projet : Logique du Premier Ordre et Utilisation de l Outil Z3 L objectif de ce projet est de modéliser des problèmes en logique du premier ordre, et de les résoudre avec l outil Z3. Cet outil permet de chercher des modèles aux formules du premier ordre. Le principal problème considéré est une énigme de la vie quotidienne des informaticiens. 1 L Outil Z3 L outil Z3 est un outil de démonstration automatique de théorèmes (aussi connu comme solveur du premier ordre) développé chez Microsoft Research. Il est disponible à l adresse suivante pour des plateformes Windows, MacOS, et Linux 1 : Z3 prend en entrée une formule de la logique du premier ordre et en fonction du but spécifié, tentera de trouver un modèle à la formule ou de conclure que la formule n est pas satisfaisable, ou que la formule est un théorème, ou de trouver un modèle qui ne satisfait pas la formule. Dans la suite du projet, on ne s intéressera qu à la fonctionnalité de Z3 qui permet soit de trouver un modèle, soit de conclure que la formule n est pas satisfaisable. On va encoder les formules au format TPTP lisible par Z3 (TPTP est un format qui est utilisé aussi par des autres solveurs). Format TPTP La syntaxe complète du format TPTP est détaillée dans le document à l adresse suivante dans la section The Formulae Section : Nous donnons ici les éléments de syntaxe à utiliser pour le projet. Le language TPTP est plus riche mais on vous demande de seulement utiliser une partie assez puissant pour nos besoins. Une spécification au format TPTP est une suite de déclarations de formules de l ordre premier (fof : first order form) de la forme : fof(<nom de la formule>,<type de la formule>,<formule>). tel que nom de la formule est un nom que vous donnez à la formule, type de la formule est toujours axiom pour ce projet. Finalement, formule est une formule dans la syntaxe TPTP. Commençons par un exemple : 1. Vous pouvez aussi utiliser l outil directement en ligne à l adresse cgi-bin/systemontptp mais nous vous recommandons fortement de l installer sur votre machine.
2 Info-F-302 Projet fof(au_moins_deux, axiom,? [X,Y] : X!= Y). fof(tous_rouges, axiom,! [X] : rouge(x)). Cette spécification est composée de deux formules (n oubliez pas le point après chaque déclaration). Ces deux formules sont prises en conjonction (donc, le solveur regarde internement une formule plus grande). La première formule s appelle au moins deux est correspond à X Y X Y. La deuxième formule correspond à X rouge(x) où rouge est interprété comme un prédicat unaire. Quelques remarques : les variables commencent toujours par une majuscule les prédicats et symboles de fonction commencent toujours par une minuscule les symboles de constantes commencent toujours par une minuscule les espaces n ont pas d importance (sauf pour la lisibilité) les commentaires sont toujours précédés de % (et terminent à la fin de la ligne) Voici une liste de symboles logiques du format TPTP : quantification existentielle? [liste variables] : formule quantification universelle! [liste variables] : formule disjonction conjonction & négation ~ (tilde) égalité = différence!= implication => équivalence <=> Il ne faut pas spécifier le langage utilisé explicitement. Tout mot de la formule qui commence par une majuscule est considéré comme une variable. Tout mot qui commence par une minuscule est considéré comme une constante, un prédicat, ou une fonction. Selon l utilisation qui en ai faite, l outil décide automatiquement si c est une constante, un prédicat, ou une fonction. Par exemple, dans la formule ci-dessus, rouge(x) est utilisé comme une valeur vrai/faux, c est donc nécessairement un prédicat. Remarque importante : toute faute de frappe donnera potentiellement de nouveaux symboles de prédicats/fonctions/constantes. Par exemple, si vous taper rouge(x) et plus loin rrouge(x), alors rrouge sera interprété comme un nouveau symbole de prédicat. Attention donc aux fautes de frappes. Utilisation de l outil En supposant que vous avez écrit votre spécification dans un fichier nomdefichier.tptp, on vous demande de lancer Z3 par la commande suivante qui inclut déjà quelques paramètres adaptés à l usage du format TPTP : z3 PULL NESTED QUANTIFIERS=true MODEL COMPACT=true -m -tptp <nomdefichier> 2
3 Projet Info-F-302 Sortie générée par l outil Par défaut, Z3 dit si la formule est satisfaisable. Dans le cas contraire, il se peut qu il ne termine pas et continue à chercher des modèles. Parfois, il est capable de conclure que la formule n est pas satisfaisable. Dans le cas où elle est satisfaisable, l option -m permet d afficher un modèle. Prenons la sortie de Z3 pour l exemple ci-dessus : sortie de Z3 SZS status Satisfiable for example.tptp Y!0 -> $i!val!2 X!1 -> $i!val!1 rouge -> { true La première ligne donne le résultat de Z3 : notre exemple est Satisfaisable. En suite, Z3 donne un modèle qui satisfait la formule. Notez que le modèle trouvé n est pas nécessairement le modèle le plus compact il contient des constantes, et fonctions que Z3 a introduites pour faciliter son raisonnement automatique (même si elles semblent superflues d un point de vue de l utilisateur). Le modèle est donné dans un format fonctionnel qu il faut lire de la manière suivante : il y a une constante y 0 (écrit Y!0) interprétée (->) par l entier 2 ($i!val!2 : int value 2) il y a une constante x 1 interprétée par 1 il y a une fonction rouge qui retourne toujours la valeur true Notez : Les modèles de Z3 représentent des prédicats et relations par des fonctions. Donc, un prédicat rouge est vu comme une fonction caractéristique qui dit pour tous les éléments dans mon modèle (fini) si le prédicat est vrai ou faux pour cet élément. Dans l exemple, pour tout élément du domaine, le prédicat rouge est vrai. Dans ce cas Z3 représente le prédicat rouge comme une fonction qui retourne toujours la valeur vrai. De manière plus générale, lorsqu un prédicat n est pas vrai partout, Z3 devra spécifier pour quels paramètres la prédicat est vrai ou pas. Par exemple, sur les formules fof(au_moins_deux, axiom,? [X,Y] : X!= Y). fof(tous_rouges, axiom, (? [X] : rouge(x)) & (? [X] : ~rouge(x))). Z3 retourne le modèle représenté par X!6 -> $i!val!2 Y!4 -> $i!val!1 X!7 -> $i!val!3 X!5 -> $i!val!0 rouge -> { $i!val!2 -> true $i!val!3 -> false else -> false sortie de Z3 3
4 Info-F-302 Projet qui comprend au moins quatre éléments différents 0, 1, 2, 3, et le prédicat unaire rouge, est vrai pour 2, mais par pour 3, ni pour les autres éléments. Avant de passer aux questions, prenons un exemple plus compliqué : % l élément special n est pas rouge fof(element_special, axiom, ~rouge(special)). % il existe un élément différent de special fof(element_diff_special, axiom,? [X] : X!= special). % la fonction f retourne toujours l élément special sauf s il est l entrée fof(fonction_f, axiom,! [X]: (X!=special <=> f(x)=special)). Le modèle retourné par le système est : special -> $i!val!0 X!0 -> $i!val!1 k!5 -> { $i!val!0 -> $i!val!0 else -> $i!val!1 f!6 -> { $i!val!1 -> $i!val!0 else -> $i!val!2 rouge -> { false f -> { (f!6 (k!5 #0)) sortie de Z3 Donc, la constante special est interprétée par 0, la constante x 0 par 1, et donc il y a un élément différent de special. Le prédicat rouge est toujours faux (donc, en particuliar il est faux pour special). Maintenant il faut regarder les autres fonctions : la fonction k 5 que Z3 a introduite retourne special si l input est special et autrement x 0 ; la fonction f 6 retourne 0 (donc special) pour x 0 et 2 autrement ; la fonction f compose les deux fonctions tel que f(n) = f 6 (k 5 (n)) pour tout élément n du domaine du modèle (#0 représente le premier paramètre (et dans ce cas l unique) de la fonction f). Donc finalement, f(special) = 2 et f retourne special autrement. 4
5 Projet Info-F-302 Question 1 Simplifier le modèle retourné par Z3 sur cet exemple en gardant le format de sortie utilisé par Z3 pour représenter les modèles. Parenthésage des quantifications Attention,! [X]: p(x) & q(x) est équivalent à (! [X]: p(x)) & q(x). La variable X apparaît donc libre dans la deuxième partie. Ceci est valable avec la quantification existentielle et les autres connecteurs logiques (ou, implique, etc.). N hésitez donc pas à parenthéser pour lever toute ambiguité! 2 Prise en Main de Z3 Question 2 Écrire une formule au format TPTP telle que tout modèle de cette formule possède au moins quatre éléments. Vérifier que Z3 retourne bien un modèle qui contient au moins quatre éléments. En théorie des langages, un mot est une suite de caractères sur un alphabet fini. Par exemple, sur l alphabet {0, 1, est un mot. Un mot sur {0, 1 peut être représenté par une structure sur le langage {pluspetit, zero, un, où pluspetit est un prédicat binaire représentant une relation d ordre stricte et totale (toute paire d élements est comparable). zero et un sont des prédicats unaires qui représentent les éléments dont les lettres sont 0 et 1 respectivement. Par exemple, le mot 011 est représentée par la structure M qui a trois éléments {e 1, e 2, e 3 et les relations suivantes : pluspetit M = {(e 1, e 2 ), (e 1, e 3 ), (e 2, e 3 ) zero M = {e 1 un M = {e 2, e 3 Question 3 Écrire une formule au format TPTP telle que tout modèle de cette formule est un mot de longueur au moins 4 sur l alphabet {0, 1. Donner un mot satisfiant cette formule trouvé par Z3. Attention : chaque élément du domaine n est assigné qu à une et une seule lettre. Une relation successeur pour l ordre pluspetit fait correspondre chaque élément à son élément suivant dans l ordre. Nous noterons succ le prédicat binaire représentant la fonction successeur. Par exemple, pour le mot 011, ce prédicat est interprété dans M par : succ M = {(e 1, e 2 ), (e 2, e 3 ) Question 4 Écrire une formule au format TPTP définissant le prédicat successeur, à partir de la relation d ordre. 5
6 Info-F-302 Projet 3 Résoudre des Énigmes avec Z3 Dans cette section, l objectif est de formaliser une énigme en logique du premier ordre, d utiliser Z3 pour trouver un modèle s il existe, et si oui d interpréter ce modèle pour résoudre l énigme. Énigme du local serveur Le nouvel apprenti de l équipe système doit changer l ancien disque dur de 20GB d une machine du local serveur pour un disque de 1.5TB. En arrivant dans le local, il trouve cinq machines alignées les unes à côté des autres. Ses collègues logiciens, en guise d initiation, ne lui ont pas indiqué de quelle machine il s agissait, mais lui ont donné plusieurs indices. Il y a une séquence linéaire de cinq ordinateurs, chaque machine a les propriétés suivantes : chaque serveur appartient à une et seulement une équipe de l ULB, et chacune offre un et seulement un service. En plus, chaque machine utilise un processeur d une plateforme différente, un système d exploitation différent et il y a un et seulement un disque dur par machine, tous de tailles différentes. Les possibilités sont les suivantes : équipes : mathématique, informatique, physique, économie, géographie. systèmes d exploitation : Linux, MacOS, Windows, Solaris, OpenBSD. plateformes : Sparc, Itanium, x86-64, PowerPC, x86-32 services offerts : serveur www, une base de données, un serveur smtp, un serveur svn, une machine pour des simulations numériques taille des disque durs : 2TB, 20GB, 1TB, 350GB, 500GB On lui a donné les indices suivants : 1. la machine avec le disque dur de 500GB est voisin du serveur smtp 2. la plateforme de la base de données est Itanium 3. la machine svn est voisine de la machine avec platerforme Sparc 4. la machine des physiciens a un disque dur de 2TB 5. la machine placé au centre des cinq est un PowerPC 6. les mathématiciens utilisent Linux 7. les économistes font des simulations sur leur serveur 8. le processeur du serveur des informaticiens est un x le premier serveur appartient à la géographie 10. la machine à côté du serveur svn a un disque de 1TB 11. le Windows est installé sur un machine x la machine de la géographie est à côté d une avec MacOS 13. le serveur www a un disque dur de 350GB 14. la machine Windows est à gauche de la machine avec Solaris 15. on utilise OpenBSD pour le serveur smtp. 6
7 Projet Info-F-302 Après quelques minutes de reflexion, l apprenti a trouvé dans quelle machine il faut changer le disque dur. Vous aussi? Question 5 Si vous deviez tester toutes les possibilités, combien y en aurait-il? Justifier. (Attention pour cette question l ordre des ordinateurs a de l importance.) Question 6 Écrire un ensemble de formules du premier ordre au format TPTPdans un fichier enigme.tptp qui modélise le problème posé ci-dessus. Exécuter Z3 pour qu il trouve un modèle et donner la réponse à l énigme. Le but principal de cette question est d écrire une formalisation correcte du problème en logique du premier ordre. Le modèle trouvé doit vous indiquer exactement, pour chacune des cinq machines, sa position par rapport aux autres, sa plateforme, son système d exploitation, la taille du disque dur et l équipe à laquelle il appartient. Vous êtes libres d utiliser le langage de prédicats que vous voulez, mais choisissez-les de telle sorte que votre spécification soit lisible. Commentez dans le fichier toutes les formules que vous écrivez en donnant leur signification intuitive. Par exemple, si vous écrivez une formule fof(f,axiom,? [X,Y]: X!=Y)., ajoutez audessus le commentaire il existe deux éléments dans la structure. La clarté et la lisibilité de votre fichier sera prise en compte dans l évaluation. Il est conseillé de représenter les modèles du problème comme des structures à cinq éléments ordonnés, chaque élément représentant un ordinateur. Les autres informations (plateforme, équipe, etc.) seront représentées par des prédicats unaires. Question 7 L apprenti veut vérifier qu on ne lui a pas tendu un piège. Utiliser Z3 pour montrer qu il existe une unique solution à l énigme. Autrement dit, montrer qu il n existe pas d autre propriétaire possédant le disque dur de 20GB. Question 8 L apprenti aimerait bien se venger et donner une petite leçon de logique aux logiciens. Est-ce que tous les indices sont nécessaires pour résoudre l énigme? Expliquer comment répondre à cette question avec Z3. Donner les indices inutiles s il en existe. Modalités Le projet se fait en binôme, il est à rendre au bureau de Maryka Peetroons au plus tard pour le 27 Avril 2012 midi 12h (fuseau horaire de Bruxelles). Il doit comprendre un rapport papier qui répond aux questions dans ce énoncé (mettre aussi le contenu des fichiers TPTP générés dans le rapport). Envoyez également les fichiers TPTP dans un dossier compressé (zip) portant les noms de famille des deux étudiants du binôme par à Alexander Heußner et avec la ligne de sujet de courrier Projet Logique 7
8 Info-F-302 Projet 2012: nom de famille1-nom de famille2. Le fichier est à envoyer pour la même date que la version papier. Si l évaluation n est pas possible sur base du rapport seul (et du fichier.tptp), on vous demandera de défendre vos solutions dans une présentation orale. Quelques astuces Utiliser des commentaires dans vos fichiers TPTP pour donner la sémantique intuitive de toutes vos formules. Cela permet d argumenter sur la nécessité d une formule. Rappelez vous le principe KISS ( keep it simple stupid! ). Donc, essayez de ne pas ajouter des constantes, prédicats, relations, formules,... superflus dans vos fichiers TPTP. Le format TPTP est utilisé aussi par d autres solveurs du premier ordre. Il y a une interface web commune à un ensemble de solveurs qui est accessible ici : N hésitez pas à essayer votre spécification TPTP avec un autre solveur pour comparer le résultat avec Z3 (attention : le format de modèle trouvé sera possiblement différent de celui de Z3!). 8
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étailTP 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étailCours 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étailInitiation à la Programmation en Logique avec SISCtus Prolog
Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées
Plus en détailLogique. Plan du chapitre
Logique Ce chapitre est assez abstrait en première lecture, mais est (avec le chapitre suivant «Ensembles») probablement le plus important de l année car il est à la base de tous les raisonnements usuels
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailL 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étail1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailLES 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étailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailAlgorithme. 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étailINITIATION 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étailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailPremière étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel
A.-M. Cubat Démo (Apli) : imprimer des cartes de lecteurs ou une «planche-contact» - avec les codes-barres Page 1 Première étape : créer le fichier de données - extraire les données de PMB et les transférer
Plus en détailChapitre 1 Qu est-ce qu une expression régulière?
Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailINF 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étailImage d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Plus en détailCré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étailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Plus en détailRecherche 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étailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailUtilisation des tableaux sémantiques dans les logiques de description
Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal bergerja@iro.umontreal.ca
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailLicence 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étailR, Bonnes pratiques. Christophe Genolini
R, Bonnes pratiques Christophe Genolini 1 Table des matières 1 Des bonnes pratiques, pour quoi faire? 4 2 Choix de l éditeur de texte 4 3 Architecture du code 6 4 Variables 10 5 Commentaires et documentation
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailSeconde Généralités sur les fonctions Exercices. Notion de fonction.
Seconde Généralités sur les fonctions Exercices Notion de fonction. Exercice. Une fonction définie par une formule. On considère la fonction f définie sur R par = x + x. a) Calculer les images de, 0 et
Plus en détailFondements 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étailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailINF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Plus en détail2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Plus en détailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Plus en détailCORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»
Corrigé Cours de Mr JULES v3.3 Classe de Quatrième Contrat 1 Page 1 sur 13 CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!» «Correction en rouge et italique.» I. Les nombres décimaux relatifs.
Plus en détailManuel 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étailCours 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étailSQL Server Installation Center et SQL Server Management Studio
SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server
Plus en détailSystèmes décisionnels et programmation avancée
Systèmes décisionnels et programmation avancée M1 SIR Philippe Muller et Mustapha Mojahid, Matthieu Serrurier, Marie-Christine Scheix 2014-2015 Introduction structure du cours intervenants introduction
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détailCours 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étailTitre : Communiquer avec des formules mathématiques
Titre : Communiquer avec des formules mathématiques Auteurs : Jean-François Nicaud, Christophe Viudez jeanfrancois.nicaud@laposte.net - cviudez@free.fr La communication sur dispositif informatique avec
Plus en détail1 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étailActivité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels
Activité 4 Tour de cartes Détection et correction des erreurs Résumé Lorsque les données sont stockées sur un disque ou transmises d un ordinateur à un autre, nous supposons généralement qu elles n ont
Plus en détailTP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?
TP Codage numérique des caractères Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte? I Le code ASCII 1. Une première approche Ouvrir un fichier Excell Sur la ligne 1 du tableau,
Plus en détailSuites numériques 3. 1 Convergence et limite d une suite
Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n
Plus en détailPourquoi 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étailCours 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étailF7n COUP DE BOURSE, NOMBRE DÉRIVÉ
Auteur : S.& S. Etienne F7n COUP DE BOURSE, NOMBRE DÉRIVÉ TI-Nspire CAS Mots-clés : représentation graphique, fonction dérivée, nombre dérivé, pente, tableau de valeurs, maximum, minimum. Fichiers associés
Plus en détailCalcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.
1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le
Plus en détailIntroduction à l étude des Corps Finis
Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailExonet : sauvegarde automatisée d une base de données
Exonet : sauvegarde automatisée d une base de données Description Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Outils Mots-clés Durée 4h. Auteur(es)
Plus en détailOrdinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un
ESZ Introduction à l informatique et à l environnement de travail Éric Gaul (avec la collaboration de Dominic Boire) Partie 1: Concepts de base Ordinateur Logiciel Mémoire Données Entrées/sorties Périphériques
Plus en détailLicence 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étailCompléments de documentation Scilab : affichage de texte et formatage de nombres
Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de
Plus en détailVous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad
1. Découvrir l ipad Vous allez le voir au cours de ce premier chapitre, l utilisation de l ipad est très intuitive et, surtout, votre tablette obéit au doigt et à l œil. Vous ne pourrez bientôt plus vous
Plus en détailDébuter avec Excel. Excel 2007-2010
Débuter avec Excel Excel 2007-2010 Fabienne ROUX Conseils & Formation 10/04/2010 TABLE DES MATIÈRES LE RUBAN 4 LE CLASSEUR 4 RENOMMER LES FEUILLES DU CLASSEUR 4 SUPPRIMER DES FEUILLES D UN CLASSEUR 4 AJOUTER
Plus en détailTD : Codage des images
TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment
Plus en détailIUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -
IUT de Laval Année Universitaire 2008/2009 Département Informatique, 1ère année Mathématiques Discrètes Fiche 1 - Logique - 1 Logique Propositionnelle 1.1 Introduction Exercice 1 : Le professeur Leblond
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.
ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de
Plus en détailTP 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étailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailExercices 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étailAide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.
Aide Webmail 1. Découverte de l environnement : L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels. 1. La barre d application (1) Les
Plus en détailVoici un extrait du guide de rédaction. Le guide complet est téléchargeable sur le lien suivant
Voici un extrait du guide de rédaction. Le guide complet est téléchargeable sur le lien suivant Guide de rédaction d un BUSINESS PLAN dans la restauration Auteur : Amandine Prat Conseils en création et
Plus en détailIntelligence 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étailMODE D EMPLOI OUTLOOK ADD-IN POUR SELECTLINE
MODE D EMPLOI OUTLOOK ADD-IN POUR SELECTLINE IOWARE SA WARPELSTRASSE 10 3186 DÜDINGEN +41 26 492 90 30 WWW.IOWARE.SA INFO@IOWARE.CH MODE D EMPLOI MODULE ADD IN (pour Outlook) L Add In est un programme
Plus en détailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailDotez-vous des moyens de communication d une grande entreprise au prix d une petite entreprise. Avaya vous aide à atteindre vos objectifs.
Avaya vous aide à atteindre vos objectifs. Toute TPE-PME est à la recherche de solutions pour réduire ses coûts et améliorer son mode de fonctionnement. Comme n importe quelle entreprise, vous souhaitez
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailUniversité 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étail1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailLes nombres entiers. Durée suggérée: 3 semaines
Les nombres entiers Durée suggérée: 3 semaines Aperçu du module Orientation et contexte Pourquoi est-ce important? Dans le présent module, les élèves multiplieront et diviseront des nombres entiers concrètement,
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailAnalyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I
Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I Roxane Duroux 1 Cadre de l étude Cette étude s inscrit dans le cadre de recherche de doses pour des essais cliniques
Plus en détailPLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)
PLAN DE COURS Titre du cours : Logiciels appliqués en sciences Numéro du cours : 360-ESZ-03 Programme : Sciences de la Nature 200B0 Pondération : 1-2-3 Session : Hiver 2010 Enseignant : Éric Gaul François
Plus en détail[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows
Ce dossier a une forme un peu différente des précédentes : c est un ensemble de «fiches» décrivant chacune une des opérations que l on peut effectuer avec un fichier (enregistrer, renommer, etc.). Chaque
Plus en détailChapitre 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étailChapitre 2 Devine mon nombre!
Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction
Plus en détailPetit guide des sous-réseaux IP
Petit guide des sous-réseaux IP Robert Hart, hartr@interweft.com.au version française par Laurent Caillat-Vallet, caillat@univ-lyon1.fr v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailProgrammation 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étailChapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailGuide de l administrateur DOC-OEMCS8-GA-FR-29/09/05
Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05 Les informations contenues dans le présent manuel de documentation ne sont pas contractuelles et peuvent faire l objet de modifications sans préavis.
Plus en détailVé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étailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailGEI 465 : Systèmes répartis
Université de Sherbrooke GEI 465 : Systèmes répartis Travaux à effectuer Ahmed Khoumsi Automne 2004 Page 1 Les deux premiers travaux que vous effectuerez vous donneront, respectivement, l occasion d utiliser
Plus en détailInstallation de TeamLab sur un serveur local Ce guide est destiné aux utilisateurs ayant des connaissances de base en administration Windows
Information sur la version serveur TeamLab Serveur TeamLab est une version du portail destinée à ceux qui ont décidé d'installer et de configurer TeamLab sur leur propre serveur. A partir de la version
Plus en détail