Conception de Programmes Evolutifs

Slides:



Advertisements
Présentations similaires
Conférence « Compétences Informatiques » 10 avril 2006
Advertisements

E-learning Evolutif Albarelli Corinne Behem Patrice Guillot Jérôme
C# 2.0, un an après Mitsuru FURUTA
Introduction à l’Algorithmique
Etudiants : Benjamin BLANC Cyrille KLUZEK Encadreur :
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
Sujet BL1 : Simulateur de comportement réactif Bernard Clément Barelli Nicolas Maitrehut Loïc Ould Sidina Mahi Encadrant : Mr Michel Buffa.
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
Sujet BL1 : Simulateur de comportements réactifs
Mise en œuvre d’une démarche d’investigation en BTS MAI
La fonction « Méthodes d’usinage »
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
Systèmes Experts implémentation en Prolog
Optimisation dans les télécommunications
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Architecture de machines Principes généraux
CSI3525: Concepts des Langages de Programmation Notes # 5: Langages de Programmation Fonctionelle I: Introduction au Scheme.
Chapitre II.Rappels mathématiques et complexité
Cours d’Automatique MASTER OIV
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
ST40 – Stage Professionnel
Algorithmique et Programmation
Analyse et Conception orientée objet
Maths, Fourmis, Informatique et Petits Chevaux - 1
Evaluation par compétences informatisée dans plusieurs disciplines
Création d’un programme :
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Thomas LOPEZ - Equipe BUNRAKU Candidature au monitorat IFSIC – Mardi 6 Octobre 2008.
Modèle, Méthode et Conception
Présentation Structures de Données et TDA
Présentation du mémoire
Universté de la Manouba
Les systèmes multiplateformes
Chapitre 9 Les sous-programmes.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Programmation non procédurale Le projet ECOLE 2000
Patrons de conceptions de créations
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Présenté par : Attia Hamza Merzouk Abdelkrim 2003/2004
EXIGE Un avenir dans le web....
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
L. Gzara, E. Khouri, M Tollenaere 1 MSI 2A ICL – Initiation ACCESS Interfaces 2014 Initiation MS Access 2010 Interfaces – Formulaires Dynamique des données.
LEMKE LaurentBITSCH José TERRIER VincentLAALA Yoann MONTAVONT GuillaumeBRIBI Mohamed 1.
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Logiciel de construction de matériaux virtuels
PLAN 1. Introduction 1.1. Sites de presse actuels 1.2. Objectif de notre site 2. Description du modèle 3. Outils utilisés 3.1. SVG 3.2. PHP et MySQL 4.
Simulation du rôle de la communication dans l’établissement d’un réseau de liens sociaux Projet GPL :
La programmation par objets Principes et concepts Etude de Smalltalk.
Initiation au JavaScript
Le Browser hiérarchique de Classes Java : En quoi cette application pourra faciliter le travail de Mr Leblanc ?
Sommaire : La programmation arduino
GÉNÉRATEUR DE DOCUMENTS 3D INTERACTIFS PDF U3D Projet de Bachelor | RICHARD Mathieu | 2009.
Projet de génie logiciel
Simulateur de microcontrôleur Intel 80C51
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Introduction à la Programmation Orientée Objet
Scripts et fonctions Instructions de contrôle
Objectifs du développement Des agendas culturels et services quotidiens de La Libre Belgique et de La Dernière Heure et proposera des services d’informations.
1.1: notions de bases de l’informatique
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
IFT 703 Informatique cognitive ACT-R Modèle symbolique et perceptuel
Modélisation des Actions Mécaniques Première sti2d
Année Universitaire : 2013/2014 Réalisée par: Rahma DAIKHI Encadrants : M. Jean-Yves TIGLI M. Stéphane LAVIROTTE Au sein de : Laboratoire I3S, Equipe RAINBOW.
1 Le dispositif d’évaluation Présentation de XiTi Mise à disposition d’un outil d’analyse statistique : XiTi  Accessible en ligne pour le chef d’EPLE.
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
KOSMOS 1 Les activités de l’enseignant Module 6 1.Le cahier de textes des classes 2.Le travail à faire et les corrections 3.Le classeur pédagogique 4.Les.
Transcription de la présentation:

Conception de Programmes Evolutifs Auteurs: Paul-Kenji Cahier Sylvain Mahé Laurent Toselli Pré Soutenance de TER Année 2004-2005 Conception de Programmes Evolutifs Encadrants : Cathy Escazut et Michel Gautero

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Introduction Problème qui nous a amené à ce TER: Existe-il des programmes s’auto modifiant qui sont codés une fois pour toute ? Réponse négative à notre connaissance. Réponse positive pour une fonction de la sorte fam : fonction auto modifiante (define (fam x) (let ((g (lambda (x) (* k x)))) (define (modifg) . ) (define (iter) (if (not (= (g x) y)) (modifg) g)) (iter))

Introduction (suite) Modification de la fonction g mais son aspect reste globalement le même à l’intérieur de la fonction f. On est dans une approche « fermée » de l’auto modification (dépendant du problème). D’où utilisé pour des cas particuliers. Notre application générera du code n’ayant peut-être aucun rapport avec le code précédent. On est dans une approche « ouverte » (indépendant du problème). Le cas général sera présenté dans notre projet avec une application représentant un cas particulier.

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

programmes statiques Vs. programmes évolutifs. Les programmes classiques , en général, ne sont pas vus pour être modifiés après compilation. La modification de code à l’extérieur du programme (finalisé) n’est pas possible. D’où notion de patchs correctifs (en cas de bogue). Intérêt de notre part de trouver un mécanisme.

programmes statiques Vs. programmes évolutifs. Programmes dynamiques. (f a m vues précédemment) Programmes 2 en 1. Modification et exécution du programme non dissocié. Pas d’idées pour le moment, pas de connaissances à ce sujet. Projet TER (notre proposition ) Donc un choix de la représentation des programmes personnalisée pour obtenir cette capacité. Modification possible des programmes sans que l’idée soit changée et en temps réel.

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Projet de colonie de fourmis. Simulation de comportement de fourmis dans un certain environnement. Un seul caste de fourmis au départ (ouvrière). Actions de base (fonctions de base) permises pour chaque fourmis : Chercher de la nourriture. Déplacement. Faire face à une attaque de prédateur (extension) …

Projet de colonie de fourmis. Visibilité via une interface graphique : Suivi du comportement global des fourmis. Obtention d’informations sur l’une d’entre elles. Modifications de paramètres (extension). Génération de programme à l’instant t. (lié au moteur) Extensions: Prédateurs (araignées) Fourmilière(s) avec plus d’une classe de fourmis (ouvrière, soldat, nurse, reine, princesse, …) Notion d’ordres dans les besoins d’une fourmi. Une fourmilière codé statiquement face à une autre évolutive Classeur d’a.g. sur 2 niveaux (suivre l’héritage entre générations) ? Environnement changeant.( utilisation des règles d’inférences ) ?

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Moteur de sélection Composition du moteur général: moteur d’inférences algorithmes génétiques (générateur de classeurs). Sélection d’un classeur = algorithmes appartenant à une même classe de problèmes (« déplacement », « chercher nourriture », « chercher quelqu’un », …) Vue sur les règles d’inférences: Ensemble de règles de type env -> action (fonctions de base) appelées classeur. Ensemble de règles de type action -> ‘algon‘

Moteur de sélection Les algorithmes génétiques, évolution : Trouver des règles plus convenables pour une fourmi dans un certain environnement. Re-génération de nouveaux classeurs. Possibilité d’avoir plusieurs actions pour un environnement. Le moteur d’inférences se charge de calculer la liste des algorithmes possibles. Choix de l’algorithme pour la fourmi parmi ceux retenues.

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Application graphique Écrit en langage java: Portabilité du projet Confirmer la capacité du moteur à rester indifférent aux langages de l’application. Interface graphique en Java 2D avec possible extension en Java 3D via JOGL Liaison entre application et moteur Le moteur est en scheme et est converti en C via Chicken/Stalin Il est compile sous forme de librairie ensuite liee au java via JNI Combinaison permet de garder une bonne vitesse sur le partie Scheme qui sera tres solicite Pourquoi pas Bigloo? Bigloo ne gere pas call-cc et bigloo serait trop lent pour un moteur qui risque d’etre appele plusieurs dizaines de fois par seconde.

Application graphique Detail de l’application Chaque fourmi est visionable pour voir ses specificites La fenetre principale presente la vue d’ensemble de la fourmiliere Certaines interactions sont possibles (uniquement a des desseins d’experience) Au debut de l’application la fourmiliere est cree, ainsi que l’environement, puis on fait appel au moteur scheme a chaque fois qu’une fourmi a besoin de prendre une decision (ie a fini d’executer une action) Portabilite A cause des JNI l’execution ne peut se faire dans un applet, et elle requiert des binaires differents pour chaque architecture Le code reste aisement portable de par sa nature, c’est a dire generee depuis le scheme/java

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Risques Défaut de conception du moteur sélection (moteur inférences + système de classeurs) : Trouver la bonne représentation des classeurs pour les faire interagir avec le moteur d’inférence. Défaut de liaison moteur sélection/GUI Divers problèmes liés aux systèmes d’exploitations. GUI : Lenteur de l’interface. Le nombre de fourmis à gérer ne doit pas ralentir l’application. Environnement dynamique dans l’extension pour simplifier les capacités de gestion et d’altération dans l’environnement.

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Planification

Sommaire Introduction (6 min.) Détails de l’application (7 min.) Direction donnée par des problèmes rencontrés. Programmation statique vs programmation évolutive. Présentation du projet. Détails de l’application (7 min.) Moteur de sélection. Application graphique. Risques (2 min.) Planification (1 min.) Questions ( le temps restant )

Questions Environnement changeant ? Possibilité d’avoir d’autres comportements de fourmis ? Codes statiques ? …

Conception de programmes évolutifs That's all folks