1
SimExplorer,SimExplorer,une interface d’exploration de une interface d’exploration de
simulations en Javasimulations en Java
par Jérôme TRUFFOT
2
IntroductionIntroduction
Modélisation – SimulationModélisation – Simulation
Systèmes complexesSystèmes complexes
Réseaux et outilsRéseaux et outils
3
PlanPlan
1. Présentation du projet1. Présentation du projet1.1. Description du cadre du projet1.1. Description du cadre du projet1.2. Description des objectifs1.2. Description des objectifs
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres3.2 Le plan d’expérience factoriel3.2 Le plan d’expérience factoriel
4
Le cadre du projetLe cadre du projet
1. Présentation du projet1. Présentation du projet1.1. Description du cadre du 1.1. Description du cadre du projetprojet1.2. Description des objectifs1.2. Description des objectifs
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception
outils d'aide à la décisionoutils d'aide à la décision
simulation de systèmes simulation de systèmes complexes diversescomplexes diverses
temps de calcul importantstemps de calcul importants
besoin d'outils génériques performants
5
Les objectifs Les objectifs
1. Présentation du projet1. Présentation du projet1.1. Description du cadre du 1.1. Description du cadre du projetprojet1.2. Description des objectifs1.2. Description des objectifs
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception
interface génériqueinterface générique
outils d'aide à l'exploration outils d'aide à l'exploration des simulationsdes simulations
outils de traitement des outils de traitement des résultatsrésultats
distribution des expériences distribution des expériences dans un réseaudans un réseau
6
PlanPlan
1. Présentation du projet1. Présentation du projet1.1. Description du cadre du projet1.1. Description du cadre du projet1.2. Description des objectifs1.2. Description des objectifs
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres3.2 Le plan d’expérience factoriel3.2 Le plan d’expérience factoriel
7
Les cas d’utilisation simplesLes cas d’utilisation simples
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
Initialisation des paramètres Initialisation des paramètres de la simulationde la simulation
Exécution de la simulationExécution de la simulation
Visualisation des résultatsVisualisation des résultats
besoin d’automatisation pour l’exploration
8
Les cas d’utilisation évoluésLes cas d’utilisation évolués
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
Exploration d’une partie de Exploration d’une partie de l’espace des paramètresl’espace des paramètres
Distribution des expériencesDistribution des expériences
Traitement des résultatsTraitement des résultats
Interface adaptée au domaine Interface adaptée au domaine de la simulationde la simulation
9
Systèmes, modèles et simulationSystèmes, modèles et simulation
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
Système
Modèle
Simulation
10
Modèle de Lotka et VolterraModèle de Lotka et Volterra
Prédateurs
Proies
mangent nourrissent
11
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
12
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
13
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
14
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
15
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
16
dL/dt = a.L – b.L.R
dR/dt = d.(b.L.R) – c.R
L = nombre de Lapins (proies)
R = nombre de Renards (prédateurs)
a = taux de croissance des lapins
b = taux de mortalité des lapins
c = taux de mortalité des renards
d = facteur décrivant la quantité de lapins attrapés permettant de créer de nouveaux renards
Modèle de Lotka et VolterraModèle de Lotka et Volterra
Paramètres d’entrée• Paramètres de l’état initial :
L0 et R0
• Paramètres de la dynamique :
a, b, c et d
• Scénarios : épidémie
Variables d’état :
L et R Contraintes :
0 < c < 1
17
La distribution des simulationsLa distribution des simulations
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
utilisation d'un réseau localutilisation d'un réseau local– plusieurs machines inter-plusieurs machines inter-
connectéesconnectées– multi-plate-formesmulti-plate-formes
exécution des simulationsexécution des simulations– boite noireboite noire– langages de programmation langages de programmation
différentsdifférents distribution des expériencesdistribution des expériences
architecture adaptéearchitecture adaptée
18
Le paquetage SimExplorerLe paquetage SimExplorer
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
le paquetage Explorationle paquetage Exploration– le paquetage Paramètresle paquetage Paramètres
– le paquetage Contraintesle paquetage Contraintes
– le paquetage Plan d'expériencele paquetage Plan d'expérience
le paquetage Distributionle paquetage Distribution
le paquetage Résultatle paquetage Résultat
19
Le paquetage SimExplorerLe paquetage SimExplorer
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
le paquetage Explorationle paquetage Exploration– le paquetage Paramètresle paquetage Paramètres
– le paquetage Contraintesle paquetage Contraintes
– le paquetage Plan d'expériencele paquetage Plan d'expérience
le paquetage Distributionle paquetage Distribution
le paquetage Résultatle paquetage Résultat
20
Relations entre les paquetagesRelations entre les paquetages
Exploration Résultat
Distribution
21
Le paquetage ParamètresLe paquetage Paramètres
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
Paramètres simplesParamètres simples
Paramètres complexesParamètres complexes
Groupes de paramètresGroupes de paramètres
Utilisation de la notion Utilisation de la notion d’objetd’objet
22
Diagramme de classes UML du Diagramme de classes UML du paquetage Paramètrespaquetage Paramètres
23
Objectifs d’une architecture Objectifs d’une architecture réseauréseau
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
Utilisation des ressources à Utilisation des ressources à dispositiondisposition
Multi-plate-formesMulti-plate-formes
Multi-utilisateursMulti-utilisateurs
Les acteurs en présenceLes acteurs en présence
24
Les acteursLes acteurs
utilisateur
Les partenaires
25
Les parties du réseauLes parties du réseau
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception
L’interface SimExplorerL’interface SimExplorer
Le wrapper et l’application Le wrapper et l’application de simulationde simulation
Le serveurLe serveur
Le démonLe démon
Architecture réseau finaleArchitecture réseau finale
SimExplorer SimExplorer
Serveur
ApplicationSimulation
Wrapper
D
ApplicationSimulation
Wrapper
D
ApplicationSimulation
Wrapper
D
27
PlanPlan
1. Présentation du projet1. Présentation du projet1.1. Description du cadre du projet1.1. Description du cadre du projet1.2. Description des objectifs1.2. Description des objectifs
2. Phase d’analyse2. Phase d’analyse2.1. Besoins des utilisateurs2.1. Besoins des utilisateurs2.2. Architecture du logiciel2.2. Architecture du logiciel2.3. Architecture réseaux2.3. Architecture réseaux
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres3.2 Le plan d’expérience factoriel3.2 Le plan d’expérience factoriel
28
Implémentation des paramètresImplémentation des paramètres
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
Exemple 1 : l’individu Exemple 1 : l’individu – String : nomString : nom
– String : prénomString : prénom
– Entier : âgeEntier : âge
– Réel : tailleRéel : taille
Individu
Nom : stringPrénom : stringAge : entierTaille : réel
29
Implémentation des paramètresImplémentation des paramètres
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
Exemple 2 : la familleExemple 2 : la famille– Individu : pèreIndividu : père
» String : nomString : nom
» String : prénomString : prénom
» Entier : âgeEntier : âge
» Réel : tailleRéel : taille
– Individu : mèreIndividu : mère» String : nomString : nom
» String : prénomString : prénom
» Entier : âgeEntier : âge
» Réel : tailleRéel : taille
– ……
Individu
Famille
*
30
XML, eXtensible Markup LanguageXML, eXtensible Markup Language
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
SGML et HTMLSGML et HTML
Fichier texte structuréFichier texte structuré
Caractères unicodesCaractères unicodes
Outils associésOutils associés– Outils de validationOutils de validation
– Outils de transformationOutils de transformation
– Outils de traitementOutils de traitement
31
Exemple de fichier XMLExemple de fichier XML
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
<Famille><Famille>
<Individu membre=<Individu membre=““pèrepère””>>
<Nom>Martin</Nom><Nom>Martin</Nom>
<Prénom>Arthur</<Prénom>Arthur</Prénom>Prénom>
<Age>44</Age><Age>44</Age>
<Taille>1.80</Taille><Taille>1.80</Taille>
</Individu></Individu>
<Individu membre=<Individu membre=“m“mèreère”>”>
……
</Individu></Individu>
</Famille></Famille>
32
Structure du fichier XMLStructure du fichier XML
33
Diagramme de classes UMLDiagramme de classes UML
34
Interface Homme-MachineInterface Homme-Machine
arbre
titre
Description
paramètres
35
Le plan d’expérience factorielLe plan d’expérience factoriel
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
CompletComplet
Sans ordreSans ordre
StatiqueStatique
Une méthode simple et Une méthode simple et rapiderapide
36
La structure de donnéeLa structure de donnée
Paramètre A Valeur 0 Valeur 1 Valeur 2
Index A
Paramètre B Valeur 0 Valeur 1
Index B
Paramètre C Valeur 0 Valeur 1 Valeur 2 Valeur 3 Valeur 4
Index C
Structure arborescente des paramètres
Paramètre A
Paramètre B
Paramètre C
Valeur A
Valeur B
Valeur C
37
L’algorithmeL’algorithme
Paramètre A Valeur 0 Valeur 1 Valeur 2
Index A
Paramètre B Valeur 0 Valeur 1
Paramètre C Valeur 0 Valeur 1 Valeur 2 Valeur 3 Valeur 4
Index B
Index C Index C
Index B
Index C
Index B
Index C
Index B
Index C
Index B Index B
Index C Index C
Index B
Index C
Index B
Index C
Index B
Index C
Index B
38
La version 1.0La version 1.0
1. Présentation du projet1. Présentation du projet
2. Phase d’analyse2. Phase d’analyse
3. Détails de conception3. Détails de conception3.1 Les paramètres3.1 Les paramètres
3.2 Le plan d’expérience 3.2 Le plan d’expérience factorielfactoriel
Gestion des paramètresGestion des paramètres
Distribution en localDistribution en local
Plan d’expérience factorielPlan d’expérience factoriel
Version 2.0 :Version 2.0 : Fichiers de sauvegardeFichiers de sauvegarde GrammairesGrammaires Distribution sans serveurDistribution sans serveur
39
ConclusionConclusion
Mise en place des spécificationsMise en place des spécifications
Bases de la conceptionBases de la conception
Poursuite du projetPoursuite du projet
Utilisation par les chercheursUtilisation par les chercheurs