Home

Rapport du projet.

image

Contents

1. SimpleIndex SimpleIndex getData getData Public Member Functions Simplelndex std vector lt Data x gt amp _data Constructor e virtual std vector lt Data x gt getData Get data TODO Get data with a predicate Protected Attributes std vector lt Data x gt data Indexed data 5 39 1 Detailed Description template lt class Data gt class sif Simplelndex lt Data gt Simplexe Stock information in vector Simpliest indexing data ever Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 40 sif SimpleSP Class Reference 89 See Also sif Tree p Definition at line 48 of file simplelndex hpp 5 39 2 Constructor amp Destructor Documentation 5 39 2 1 template lt class Data gt sif Simplelndex lt Data gt Simplelndex std vector lt Data x gt amp data Constructor Parameters _ data Vector of data to index Definition at line 33 of file simplelndex cpp 5 39 3 Member Function Documentation 5 39 3 1 template lt class Data gt std vector lt Data x gt sif Simplelndex lt Data gt getData virtual Get data TODO Get data with a predicate Returns Vector of all data Implements sif Tree lt Data gt p Definition at line 38 of file simplelndex cpp The documentation for this class was generated from the following fil
2. on a 0 taille humaine a a a ye r l chelle du monde AR of ROUEN eae CHAPITRE 2 MODELISATION 2 6 Sc nario et diagrammes de s quences On peut distinguer plusieurs sc narios pour notre application Le sc nario utilisateur o l acteur principal est l utilisateur final c est dire celui qui va utiliser le framework pour r soudre un probl me en fonction de son contexte Des sc narios annexes existent relatifs aux sous syst mes du framework et l interac tion entre ses composants Le principal est celui qui intervient durant toute la simulation r solution et dont l acteur principal est le contr leur du framework 2 6 1 Sc nario principal e L utilisateur d finit ses t ches D finition des contraintes e L utilisateur d finit l environnement D finition de l espace dimensions fronti res D finition des objets statiques obstacles D finition des objets dynamiques o D finition des ressources D finition d une fonction de co t o D finition des emplacements de travail Observation de l emplacement par un type de t che Param trage de l environnement o D lais de mise jour e D finition de l algorithme de partitionnement de l espace e D finition de l algorithme d indexation des objets dynamiques e Cr ation des strat gies D finition des fonctions d valuation D finition de l algorithme d affectation e Cr ation de l
3. on a9 taille humaine puu E l chelle du monde ae ROUEN ee CHAPITRE 2 MODELISATION 27 Annexes 2 8 Pr sentation des pattern r currents 2 8 1 Idiome NVI Pr sentation L idiome NVI pour Non Virtual Interface est la r alisation en C du design pattern Template Method Il poss de plusieurs avantages notamment dans le d veloppement d un framework Il consiste maintenir la consistance de certains comportements en un point de contr le du code d fini par le d veloppeur Cela permet d une inversion de contr le b n fique dans de nombreux cas dont le cas d un framework puisqu il d responsabilise l utilisateur final de certaines contraintes qui ne pourraient tre exprim es que par de la documentation et dont le non respect entraineraient des comportements inattendus difficiles localiser NVI est guid par 4 r gles d crites par Herb Sutter dans son article sur la virtualit e Prefer to make interfaces nonvirtual using Template Method design pattern e Prefer to make virtual functions private e Only if derived classes need to invoke the base implementation of a virtual function make the virtual function protected e A base class destructor should be either public and virtual or protected and nonvir tual Exemple Imaginons une biblioth que de manipulation de matrices La biblioth que propose une classe abstraite Matrice avec l API globale de toute matrice On consid
4. 8 2 23 Framework AA 9 2 2 4 Partitionnement Indexation 9 20 Mod lisation des entit s o oo a 10 2 Thes wc ne ee a ca ra a Oe Ra ue 10 VIr COMTES a acer a Sake ir ne Sts a ins Wee Wha es 10 2 8 3 Syst me de CONTAMOS 4 2 0 eb Weg ae Ride Wee a Swe Kw Se Row 11 234 L environnement 11 299 SE DAS e ea pora tn de os jes bn he E wh a 11 23 6 Les coordonn es 2 su ss sure he uvb puede aaa 11 29 7 VCS CODES En ei i Sy sica Seek Be nu a a 12 2 3 8 Les politiques de chevauchement 13 2 3 9 Les fonctions de co ts 4446454246423 bo oo don RS 13 29 10 Les strat gieS sa s si sad mda a Et A Bre GS BA 13 29 EIA ere e AE AO E A at aa 14 23 12 PROVES ss amp om 4 44 aa biad a a ed a dei 14 2 3 13 Donn es spatiales e entera aa 15 2 3 14 Les algorithmes Lis dass dia di o do A 15 on E 0 taille humaine a a Ae ye r l chelle du monde es 9 ROUEN TABLE DES MATI RES 2 4 Architecture du framework 15 241 CONTO emi 4 a de eue da Ne D RU onu Ne 15 aa LOSE A PR A a op Ne A A ee CD a De PR perce 16 2 4 3 Le mod le multi thread 16 24 4 Les observateurs observables 16 20 Diagtamte de classes oa ue pos ua de ne tive oh es we 18 Pel JANOME s se a ath re so ordi eat iv oe a 18 25 2 ATDr S sore na do nde ons a NUE ow
5. Defines the behavior of the IA p at a precise moment include lt strategy hpp gt Inheritance diagram for sif Strategy lt Dim Type gt sif Strategy lt Dim Type gt assignment couples Strategy evalSituation assign sif SimpleStrategy lt Dim Type gt firstNotSatisfied taskSpotEval taskSpotsTable SimpleStrategy evalSituation Public Member Functions Strategy Assignment amp _assignment Constructor e virtual int evalSituation SpatialData amp _spatialData ConstraintSystem amp _constraintSystem 0 Perform the evaluation of the situation e virtual std map lt AResource x ATaskSpot x gt assign Perform the assignment of resources Protected Attributes Assignment amp assignment Assignment p algorithm std map lt std pair lt AResource x ATaskSpot gt int gt couples Couples to be assigned Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 49 sif Strategy lt Dim Type gt Class Template Reference 109 5 49 1 Detailed Description template lt int Dim class Type gt class sif Strategy lt Dim Type gt Strategy p Defines the behavior of the IA p at a precise moment The strategy define the whole process of the evaluation and assignment See Also sif Model p Definition at line 48 of file strategy hpp 5 49 2 Constructor amp Destru
6. Inheritance diagram for sif SimpleStrategy lt Dim Type gt sif Strategy lt Dim Type gt assignment couples Strategy evalSituation assign sif SimpleStrategy lt Dim Type gt firstNotSatisfied taskSpotEval taskSpotsTable SimpleStrategy evalSituation Public Member Functions SimpleStrategy Assignment amp _assignment Constructor e virtual int evalSituation SpatialData amp _spatialData ConstraintSystem amp _constraintSystem Evaluation of the situation e virtual std map lt AResource x ATaskSpot x gt assign Perform the assignment of resources Protected Attributes Constraint x firstNotSatisfied First constraint not satisfied TaskSpotEval taskSpotEval Eval function for taskSpot EvalTable lt ATaskSpot gt taskSpotsTable Evaluation of taskspots Assignment amp assignment Assignment p algorithm e std map lt std pair lt AResource x ATaskSpot gt int gt couples Couples to be assigned Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 92 Class Documentation 5 41 1 Detailed Description template lt int Dim class Type gt class sif SimpleStrategy lt Dim Type gt SimpleStrategy p Defines a simple strategy See Also sif Model p Definition at line 46 of file simpleStrategy hpp 5 41 2 Constructor amp Destructor Documentation 5 41 2 1 te
7. _status Bool Definition at line 46 of file aResource cpp References sif AResource busy Referenced by sif AResource setAssignment 5 36 3 7 void sif AResource setSpatialData SpatialData amp _spatialData inherited Set spatialData Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 37 sif RTree lt Data gt Class Template Reference 85 Parameters _spatialData New SpatialData p Definition at line 51 of file aResource cpp References sif AResource spatialData 5 36 3 8 void sif AResource setAssignment ATaskSpot amp _assignment inherited Set a new assignement if it is possible Parameters _assignment New assignment Definition at line 56 of file aResource cpp References sif AResource assignment and sif AResource setBusy 5 36 3 9 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files resource hpp e src SIF environment resource cpp 5 37 sif RTree lt Data gt Class Template Reference RTree p
8. a E taille humaine E l chelle du monde e ROUEN D partement G nie Math matique Affectation spatiale sous contraintes LT Rapport final Janvier 2013 Juin 2013 Adeline Bailly amp Alexandre Quemy Table des mati res Introduction 1 1 Analyse des besoins 2 1 1 Pr sentation du sujet 43 40 4 dde 24 da D Sh S45 44444544 2 1 2 Framework Description du syst me et objectifs 2 1 2 1 Module d IA et d environnement 3 1 2 2 Module d indexation spatiale et de partitionnement spatial 3 12 3 Module d algorithmes de plus court chemin 4 124 Module d affectation 4 4 4 4 8 6 ob BG Www ee ew 4 12 5 Note sur l impl mentation et les objectifs 4 1 3 Application Description du syst me et objectifs 4 14 Notes sur les besoins lt lt Lesage wR eus PR am M ga am des 5 2 Mod lisation 6 2 1 Identification des briques logicielles lt o o 6 2 1 1 Module d IA et d environnement 6 2 12 Module d indexation spatiale et de partitionnement spatial 6 2 13 Module d algorithmes de plus court chemin 7 2 1 4 Module affectation ss ooa Ga EGA GSES EWE OH EWS Z 22 Cas d utilisation a cea iea oe a de e i GTA dei ie Hs Bd BHR Heo HH 8 2 2 1 Environnement et A 8 2 2 2 Ressources
9. D finir une distance math matique FIGURE 2 2 Cas d utilisation li s aux ressources eee y on a a A taille humaine _ r l chelle du monde gt o ROUEN it CHAPITRE 2 MOD LISATION 2 2 3 Framework Framework Contr leur D finir crit res d arr t Ajouter tape au contr leur Utilisateur final I lt include gt gt D finir fr quence d appel FIGURE 2 3 Cas d utilisation li s au framework 2 2 4 Partitionnement Indexation Modifier structure d indexation gt D finir structure de partitionnement Utilisateur final lt lt extend gt gt lt lt extend gt Changer mode de construction FIGURE 2 4 Cas d utilisation li s au partitionnement et l indexation r a H taille humaine RR a a r l chelle du monde ns T ROUEN peee CHAPITRE 2 MOD LISATION Mod lisation des entit s 2 3 1 T che Une t che est d finie par une repr sentation num rique Ne doit pas tre confondue avec l emplacement de travail TaskSpot qui est un objet concret de l environnement qui peut modifier la t che 2 3 2 Contraintes Une contrainte est une assertion et sera mod lis e sous forme de foncteur renvoyant vrai ou faux Il existe plusieurs types de contraintes ayant plusieurs fonctionnements Chacune poss de une priorit qui pourra repr senter soit un
10. getData data data SimpleIndex SimpleIndex getData getData Public Member Functions e virtual std vector lt Data x gt getData 0 Return a vector of all objects of the tree 5 54 1 Detailed Description template lt class Data gt class sif Tree lt Data gt Tree p General API for tree Tree p is the class which list trees Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 118 Class Documentation See Also sif TreeFactory p sif RTree p sif QuadTree p sif AtlasGrid p Definition at line 43 of file tree hpp 5 54 2 Member Function Documentation 5 54 2 1 template lt class Data gt virtual std vector lt Datax gt sif Tree lt Data gt getData pure virtual Return a vector of all objects of the tree Returns Vector of objets Implemented in sif Simplelndex lt Data gt p 7 sif Simplelndex lt sif ATaskSpot gt p and sif Simplelndex lt sif AResource gt p The documentation for this class was generated from the following file e tree hpp 5 55 sif TreeFactory Class Reference TreeFactory p General API for tree include lt treeFactory hpp gt 5 55 1 Detailed Description TreeFactory p General API for tree TreeFactory p is the factory for trees See Also sif Tree p Definition at line 42 of file
11. pure virtual Implementation of the test Returns boolean Implemented in sif TimeContinue p and sif StepsContinue p Referenced by operator The documentation for this class was generated from the following files continue hpp e continue cpp 5 17 sif Controller Class Reference Controller p Main controller of the application include lt controller hpp gt Public Member Functions e Controller Default contructor e Controller Default destructor Static Public Member Functions e static void setEnvironment AEnvironment amp _env Set the environment e static void addContinue Continue amp _cont Add a stop criterion e static void addStep Step _step Add a step to the controller at the end of the list e static void addStep Step _step unsigned _pos Add a step to the controller e template lt int Dim class Type class Data gt static void init IA lt Dim Type gt amp _ia Environment lt Dim Type Data gt amp _env Static initialization Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 42 Class Documentation e static void startPartitioning Start the space partitioning e static void startindexing Start the space indexing e static void run Run the simulation computation Static Protected Member Functions static bool checkContinue Check if a stop criterion is reached
12. IA e D finition du mod le de d cision et d observation e Ajout des strat gies e Param trage de l IA D lais entre chaque cycle observation apprentissage prise de d cision affec tation e Lancement de la simulation r solution par le contr leur du framework on a 0 taille humaine a a a ye r l chelle du monde AR of ROUEN a CHAPITRE 2 MODELISATION 2 6 2 Sc narios annexes Initialisation L initialisation est la premi re tape effectu e lors de l ex cution Elle se d roule comme suit e Cr ation de l objet contenant les donn es spatiales e Partionnement de l espace e Indexation Des ressources Des emplacements de travail Des obstacles e Donne un acc s en lecture aux donn es spatiales Voir Diagramme de s quence d initialisation 2 10 page 25 Contr leur principal e Le contr leur principal appelle le contr leur de l IA si la contrainte de temps est res pect e e Le contr leur de VIA Observation du monde par la strat gie courante o R cup ration des changements o Evaluation de la situation Apprentissage non tudi ici Prise de d cision non tudi ici peut tre effectu manuellement par l utilisateur Affectation par la strat gie courante Notification aux ressources des nouvelles affectations e Le contr leur principal appelle le contr leur de l environnement si la contrainte de te
13. IA dispose pour pouvoir les affecter diverses t ches en vu de satisfaire les contraintes du syst me de contraintes Il s agit encore d une classe abstraite dont le but est de clarifier l architecture des objets On retrouvera diff rents types de ressources ayant des comportements diff rents Ainsi on peut imaginer une ressource qui n est pas r affectable lorsqu elle commence une t che qui lui est donn e par l IA on peut imaginer une ressource qui n accepte qu un seul type de t che etc Toutes ses variantes d pendent du probl me et seront rajout es mesure que le besoin s en fera sentir Dans notre cas on n envisagera qu une unit simple qui pourra tre r affect e n importe quand et une unit qui ne pourra pas tre r affect e Chaque ressource est un agent au sens o il est partiellement autonome Il volue ind pendamment de IA qui ne fait que lui communiquer un ordre une affectation C est la ressource qui se d place de son propre chef pour se d placer vers l objectif Ainsi chaque on a 0 taille humaine a a a ye r l chelle du monde AR ROUEN A CHAPITRE 2 MOD LISATION ressource possede un algorithme de plus court chemin ainsi qu une vitesse de d placement Comme l int r t du partionnement spatial et de l indexation astucieuse des objets r side dans la diminution du temps de calcul des algorithmes en g n ral cela implique que les ressources doivent acc
14. Les niveaux de logs sont les suivants e PROGRESS Indique une tape de progression de la simulation e ERROR Indique une erreur qui va arr ter la simulation e DEBUG Affiche des informations suppl mentaires utiles pour le d bugage e WARNING Affiche un avertissement ou une modification de comportement pour viter une erreur Par exemple dans le cas o une fonction d update re oit une valeur on a 4 A taille humaine a r l chelle du monde ee 11 ROUEN ae CHAPITRE 4 IMPLEMENTATION de temps n gative celle ci est mise 4 0 avant tout traitement et un message de niveau WARNING est envoy afin de ne pas interrompre la simulation e INFO Informations suppl mentaires g n ralement li es une tape de progression Ces informations ne sont pas li es directements aux r sultats de la simulation qui sont plut t affich es sur PROGRESS Quelques exemples d utilisation Desactivation du mode DEBUG logger startSerialize log txt On s rialize tout dans log txt logger setQuiet Logger PROGRESS Pas de message de progression affich logger startSerialize Logger ERROR error txt On s rialize les erreurs part Exemples logger Logger PROGRESS lt lt Step1 completed logger lt lt Step2_completed logger Logger ERROR lt lt An_error has occurred logger Logger DEBUG lt lt Entering function _y logger Logger
15. TaskSpot e Evaluation globale d individu evallndi evalTaskSpot e Evaluation situation Somme des valuations globales des individus Dans cet exemple tr s simple on ne veut affecter des ressources qu aux emplacements susceptibles de faire augmenter la quantit non satisfaite Ainsi dans l algorithme d affecta tion les couples individu emplacement o l emplacement n est pas rattach cette quan tit seront nuls et donc ne pourront tre choisi L valuation de la situation est un indicateur pour l IA afin qu elle puisse d cider si elle doit changer de strat gie ou non 2 3 11 LIA Il s agit d un conteneur de strat gies qui sont organis es selon un mod le couple d un mod le de d cision et d observation pour pouvoir plus facilement traiter le probl me d af fectation 2 3 12 Arbres Utilis s pour indexer les objets pour partitionner l espace On retrouve beaucoup d arbres diff rents ayant chacun leurs avantages et d savantages En voici une liste assez compl te qui pourront tre impl ment s par la suite e AtlasGrid R tree Quadtree Octree BSP KD tree implicit KD tree vantage KD tree R Tree R Tree X Tree M Tree Hilbert R Tree r a H taille humaine RR a a r l chelle du monde ns ROUEN CHAPITRE 2 MOD LISATION e UB Tree 2 3 13 Donn es spatiales Etant donn que plusieurs objets qui ne se connaissent pas doivent acc der aux structures de donn
16. gt _reachCondition std function lt void gt _breakCondition int_rT 0 int_IT 0 Default constructor Parameters _priority Priority of the task _task Task p concerned by the constraint _comp Comparaison operator _step Step value _reachCondition Callback function called when the constraint is satisfied _breakCondition Callback function called when the constraint is not satisfied _rT Right value of the tolerance interval _IT Left value of the tolerance interval Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 47 sif StepConstraint Class Reference 105 Definition at line 33 of file stepConstraint cpp References lastValue 5 47 3 Member Function Documentation 5 47 3 1 bool sif StepConstraint operator virtual Check the constraint satisfaction and launch callback function if needed Returns boolean Implements sif Constraint p Definition at line 52 of file stepConstraint cpp References breakCondition sif Task getValue lastValue leftTolerance op reachCondition rightTolerance step and sif Constraint t 5 47 3 2 void sif Constraint setPriority unsigned priority inherited Change the priority Parameters _ priority Constraint p priority Definition at line 39 of file constraint cpp References sif Constraint priority 5
17. 0 __ em e Ataille humai E AINSA ro a o ROUEN ae CHAPITRE 2 MODELISATION 11 14 17 20 23 Policy 1 a Policy 2 5 Lock void guarded isConnected boot sequential ZN A A A MultiThread AdjacenceMatrix E IncidenceMatrix A Graph lt class Data class ThreadModel gt Graph parameterized with MonoThread and IncidenceMatrix FIGURE 2 15 Illustration du param trage par politique class MultiThread public ThreadingModel protected virtual void Lock m lock std mutex m j3 class MonoThread public ThreadingModel protected virtual void Lock default Autres modeles Listing 2 2 D finition de la premi re politique On d finit la seconde politique class IncidenceMatrix public GraphRepresentation public virtual bool IsConnected const Determine si un graphe est connexe protected std vector lt std vector lt int gt gt data j2 18 21 10 13 16 o a 0 taille humain cl INSA l chelle du monde eee 7 e ROUEN pene CHAPITRE 2 MODELISATION o ee 12 class AdjacenceMatrix public GraphRepresentation public 15 virtual bool IsConnected const Determine si un graphe est connexe protected std vector lt std vector lt bool gt
18. 2 9 Notes sur la mod lisation Quelques petites choses ont chang lors de l impl mentation Notamment la fabrique pour les algorithmes de plus court chemin a t supprim puisqu elle n avait pas d int r t on a 0 taille humaine a a a ye r l chelle du monde ponet of ROUEN poen CHAPITRE 2 MOD LISATION En r gle g n rale des interfaces sous la forme de classe abstraite ie avec des m thodes virtuelles pures ont t rajout es pour la plupart des entit es templat es afin de pouvoir les manipuler de mani re plus g n rique et viter la multiplication des templates dans des classes qui n en ont pas besoin Les mod lisations des chemins directions et mouvements n avaient pas t faites 2 9 1 Direction Une direction est une simple paire comprenant l indice du vecteur de la base canonique de l environnement qui peut tre n dimensions et un bool en indiquant si le vecteur est dans le sens direct ou indirect On pourrait imaginer un syst me plus g n ral o une direction est une combinaison lin aire de vecteurs de la base canonique ce qui permettrait des d placements autre des d place ments en norme 1 2 9 2 Mouvement Un mouvement repr sente un vecteur C est donc une paire comprenant une direction et sa norme 2 9 3 Chemin Il s agit d une liste de mouvements Ils seront parcourus dans l ordre par une unit qui se d place tout simpl
19. ATaskSpot amp _assignment Set a new assignement if it is possible e void dump Debug function to show all informations about the class Protected Member Functions e virtual void _dump 0 Implementation for dump function Protected Attributes bool busy Status of the resource e double velocity Velocity of the ressource SpatialData spatialData SpatialData p e ATaskSpot assignment Assignment p 5 6 1 Detailed Description ARessource Abstract resource See Also sif Resource p Definition at line 50 of file aResource hpp 5 6 2 Constructor amp Destructor Documentation 5 6 2 1 sif AResource AResource double _velocity bool busy Constructor Parameters _ velocity Velocity of the resource _busy Status of the resource Definition at line 35 of file aResource cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 6 sif AResource Class Reference 25 5 6 3 Member Function Documentation 5 6 3 1 virtual void sif AResource update double time pure virtual Update Resource p Parameters _time Ellapsed time since the last update Implemented in sif Resource lt Dim Type Data gt p 5 6 3 2 bool sif AResource isBusy const Check if the resource is busy it cannot be assigned Returns boolean Definition at line 41 of file aResource cpp References b
20. Class Template Reference 101 Inheritance diagram for sif StaticObject lt Dim Type gt sif AObject sif Object lt Dim Type gt Object getCoordonates sif StaticObject lt im Type gt StaticOb ject sif 0bstacle lt Di Type gt Obstacle A sif Square lt Dim Type gt Square colliding Public Member Functions StaticObject Coordonate lt Dim Type gt _coord Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 102 Class Documentation Constructor Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object Protected Attributes e Coordonate lt Dim Type gt coord Coordonates of the object 5 46 1 Detailed Description template lt int Dim class Type gt class sif StaticObject lt Dim Type gt StaticObject p 2 Objects that cannot evolve in time It defines an abstract API for object that cannot move during the simulation such as sif Obstacle p that defines obstacle in space See Also sif Environment p sif Object p sif DynamicObject p sif Obstacle p 2 Definition at line 46 of file staticObject hpp 5 46 2 Constructor Destructor Documentation 5 46 2 1 template lt int Dim class Type gt sif StaticObject lt Dim Type gt StaticObject Coordonate lt Dim Type gt _coord Co
21. Resource lt Dim Type Data gt Ressource Ressource that can be affected to a task A ressource is an object that can be affected to a task It modelizes a point in space that can move Thanks to a shortest path algorithm it is independant when it know the Task p Spot he has to join See Also sif Environment p sif Object p sif DynamicObject p sif TaskSpot p Definition at line 53 of file resource hpp 5 36 2 Constructor amp Destructor Documentation 5 36 2 1 template lt int Dim class Type class Data gt sif Resource lt Dim Type Data gt Resource Coordonate lt Dim Type gt _coord double _velocity bool busy ShortestPath lt Dim Type gt spa Constructor Parameters _ coord Initial coordonates _ velocity Velocity of the resource _busy Status of the resource _spa Shortest Path p Algorithm Definition at line 34 of file src SIF environment resource cpp 5 36 3 Member Function Documentation 5 36 3 1 template lt int Dim class Type class Data gt void sif Resource lt Dim Type Data gt move Direction lt Dim gt dir double _time Move the resource in specified direction Parameters _dir Direction p _time Ellapsed time since the last move Definition at line 42 of file src SIF environment resource cpp References sif Direction lt Dim gt getValue 5 36 3 2 template lt
22. Returns Constraint p priority Definition at line 44 of file constraint cpp References sif Constraint priority Referenced by sif Constraint operator lt 5 19 3 4 bool sif Constraint operator lt Constraint amp const inherited Comparaison operator based on priority Parameters _const Constraint p to compare Returns boolean Definition at line 49 of file constraint cpp References sif Constraint getPriority and sif Constraint priority Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 48 Class Documentation 5 19 3 5 const Task sif Constraint getTask const inherited Get task Returns Associated task Definition at line 59 of file constraint cpp References sif Constraint t Referenced by sif SimpleStrategy lt Dim Type gt SimpleStrategy The documentation for this class was generated from the following files customConstraint hpp e customConstraint cpp 5 20 _ sif Direction lt Dim gt Class Template Reference Direction p Vector of an orthonormal base of the space include lt direction hpp gt Public Member Functions e Direction unsigned _pos bool _way Direction p e std pair lt int bool gt getValue const getValue Protected Attributes e std pair lt int bool gt dir Direction p information 5 20 1 Detailed Description template lt lt int Dim gt cl
23. Simplelndex lt sif ATaskSpot gt p and sif Simplelndex lt sif AResource gt p The documentation for this class was generated from the following file quadTree hpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 36 sif Resource lt Dim Type Data gt Class Template Reference 81 5 36 sif Resource lt Dim Type Data gt Class Template Reference Ressource Ressource that can be affected to a task include lt resource hpp gt Inheritance diagram for sif Resource lt Dim Type Data gt sif Object lt Dim Type gt Object getCoordonates A sif AResource busy velocity spatialData sif DynamicObject assignment lt Dim Type gt update isBusy DynamicObject setBusy update setSpatialData 2 setAssignment dump _ dump sif Resource lt Dim yes Deira gt spa path Resource move update Resource move _ dump lliding Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 82 Class Documentation Public Member Functions Resource Coordonate lt Dim Type gt _coord double _ velocity bool _busy ShortestPath lt Dim Type gt _Spa Constructor e void move Direction lt Dim gt _dir double _ time Move the resource in specified direction e virtual void update double _ t
24. Space p Defines the space class SpatialData SpatialData p Contains the index of the objets and the partition of the space class Square Square p A square shaped obstacle class StaticObject StaticObject p Objects that cannot evolve in time class Task Task p Abstract object class TaskSpot TaskSpot p Physical object that can modify a task class APath APath p Abstract path class AtlasGrid AtlasGrid p Tree p data structure class Path Generated on Thu May 23 2013 21 46 28 for Spat ial Intelligence Framework by Doxygen 4 1 sif Namespace Reference 11 Path p Path p data structure class QuadTree QuadTree p Tree p data structure class RTree RTree p Tree p data structure for indexing multi dimensional information class Simplelndex Simplexe Stock information in vector class Tree Tree p General API for tree class TreeFactory TreeFactory p General API for tree class IA IA p class ManualModel ManualModel p Model p without any decision or learning process class Model Model p Defines relationship between strategies and how the observation is done class SimpleStrategy SimpleStrategy p Defines a simple strategy class Strategy Strategy p Defines the behavior of the IA p at a precise moment class AStar AStar p Computer algorithm that is
25. Static Protected Attributes e static std vector lt Continue x gt cont Continuators e static std list lt std pair lt Step unsigned gt gt steps Functions to call during the main loop e static SpatialData spatialData SpatialData p information e static bool initialized false True if the controller has been initialized static AEnvironment env Environment p of the simulation 5 17 1 Detailed Description Controller p Main controller of the application The controller is a static class that is the entry point of the execution flux Definition at line 51 of file controller hpp 5 17 2 Member Function Documentation 5 17 2 1 void sif Controller setEnvironment AEnvironment amp env static Set the environment Parameters _env The environment of the simulation Definition at line 55 of file controller cpp References env 5 17 2 2 void sif Controller addContinue Continue 4 cont static Add a stop criterion Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 17 sif Controller Class Reference 43 Parameters _cont Criterion Definition at line 60 of file controller cpp References cont 5 17 2 3 void sif Controller addStep Step step static Add a step to the controller at the end of the list Parameters _ step Step to add Definition at line 65 of file co
26. WARNING lt lt Size invalid Set_to_0 logger Logger INFO lt lt Init _IA Listing 4 1 Utilisation du logger Contr leur Le contr leur de l application est la classe centrale du framework C est le point d entr e de toute simulation Il s agit d une classe dont toutes les m thodes et membres sont statiques L utilisateur d finit ses crit res d arr ts de la simulation en temps ou en tapes pour les crit res impl ment s ainsi que les tapes qui doivent tre effectu es chaque tour de boucle Chaque tape doit tre param tr e par un temps de rafra chissement Ainsi on peut rafra chir l environnement toutes les 100ms alors qu on ne souhaite effectuer un cycle d affectation toutes les 500ms et un affichage d informations toutes les secondes De plus chaque tape lorsqu elle est appel e re oit le temps qui s est coul en millise condes depuis le dernier appel permettant de g rer correctement le temps r el par exemple le d placement d une unit ne d pendra pas du temps de rafraichissement de sa m thode d update mais uniquement de sa vitesse le d placement tant pond r par la dur e depuis le dernier appel de la fonction d update Une fonction d initialisation qui prend en param tre VIA et l environment de la simu lation permet d effectuer l tape de partitionnement et d indexation et de cr er un objet SpatialData invisible l utilisateur qui est pass to
27. and ZSurrondSameCol 5 24 2 2 bool sif Kuhn isFullmarked std vector lt bool gt amp mdL std vector lt bool gt amp mdR protected Checks if the matrix is totally marked Parameters mdL Vector of boolean which enable to know if a line is marked mdR Vector of boolean which enable to know if a row is marked Returns true if the 2 vectors are completely true ie only filled with 1 false otherwise Definition at line 251 of file kuhn cpp Referenced by operator 5 24 2 3 void sif Kuhn subtractionMins typeMat amp mat protected Subtracts minimum on each row amp column Parameters mat Cost matrix Definition at line 267 of file kuhn cpp Referenced by operator 5 24 2 4 int sif Kuhn lineWLessZUncrossed typeMat amp m protected Looks for the line with less zero with Normal state Parameters Cost matrix ma Returns Index of the line with less zero Definition at line 301 of file kuhn cpp Referenced by operator 5 24 2 5 void sif Kuhn strikeZLocatedSameArea typeMat amp m int inte protected Changes state of the zero on line and row c to Crossed Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 24 sif Kuhn Class Reference 61 Parameters mat Cost matrix value of the line to consider value of the row to consider D
28. e Si c est le cas et qu elle se trouve dans les chemins standards elle peut tre trouv grace CMake Le site de la SFML est le suivant http www sfml dev org index fr php Elle peut tre compil e via CMake mais se trouve normalement dans la plupart des d p ts des distributions Linux attention prendre la version 2 0 et pas 1 6 L installation n a pas t v rifi e sous Mac OS X Pour construire et compiler l application en m me temps que le framwork il faut rajou ter l option DSFML_EXAMPLE lors de l appel cmake 50 ong A taille humaine ee T l chelle du monde so e ROUEN E p CHAPITRE 6 GUIDE UTILISATEUR gt cmake DSFML_EXAMPLE true gt make 6 2 2 Lancement amp utilisation L application requiert une police d criture qui est pr sente et copi e dans la racine du dossier de construction Ainsi pour lancer l application il faut se trouver la racine du build et pas dans un dossier parent ou fils gt app SFML sifExample lt time gt La simulation dure lt time gt secondes et se terminera quoiqu il arrive apr s ce temps Si aucun argument n est sp cifi la dur e est de 25 secondes On peut ajouter des emplacements de travail en cliquant avec le bouton droit de la souris et des ressources avec le bouton gauche Comme la seule contrainte d finie est sur la t che 1 et requiert que la t che soit plus de 5000 une fois la constrainte sa
29. es peut avoir lieu 2 4 Architecture du framework Cette section s attele d crire l architecture globale du framework 2 4 1 Contr leur Le contr leur principal g re le d roulement globale de la simulation Il s agit d une boucle principale avec des crit res d arr t d finis par l utilisateur nous proposerons un cri t re temporel La boucle principale va effectuer en permanence les m me actions dans le m me ordre Ces actions sont des appels des contr leurs locaux ou des actions d finis par l utilisateur parce qu il en a besoin dans son application interception et traitement des entr es claviers affichage on a 0 taille humaine a a a ye r l chelle du monde AR ROUEN A CHAPITRE 2 MOD LISATION Par d faut seules deux actions sont pr sentes l appel au contr leur local de l IA et au contr leur local de l environnement Ces actions seront mod lis es sous forme d une liste de fonctions appeler dans l ordre Chaque fonction sera assortie d un d lais d activation toutes les 100ms par exemple 2 4 2 Logger Un logger est absolument n cessaire pour un framework afin de rep rer le d roulement du flux d ex cution et de localiser d ventuel s probl me s ou simplement visualiser le processus de calcul C est d ailleurs tr s utile pour faire des tests unitaires ou d int gration Nous mettrons en place un logger sous forme de Design Pattern Chaine d
30. lt D sif DynamicObject lt Dim Type gt DynamicObject update J A sif StaticObject lt Dim Type gt StaticObject sif Resource lt Dim Type gt Type gt Resource MN move update Resource move _ dump colliding TaskSpot update dump Obstacle A Public Member Functions Object Coordonate lt Dim Type gt _coord Constructor Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object sif Square lt Dim Type gt Square colliding Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 72 Class Documentation Protected Attributes Coordonate lt Dim Type gt coord Coordonates of the object 5 28 1 Detailed Description template lt int Dim class Type gt class sif Object lt Dim Type gt Object p Abstract class for objects contained in the environment Abstract class for objects contained in the environment See Also sif Environment p sif Space p sif DynamicObject p sif StaticObject p Definition at line 46 of file object hpp 5 28 2 Constructor amp Destructor Documentation 5 28 2 1 template lt int Dim class Type gt sif Object lt Dim Type gt Object Coordonate lt Dim Type gt coord Constructor Parameters
31. 26 3 3 template lt int Dim class Type gt void sif Model lt Dim Type gt setCurrentStrategy unsigned pos Set current strategy Parameters _pos Position of the strategy in the vector Definition at line 48 of file model cpp 5 26 3 4 template lt int Dim class Type gt void sif Model lt Dim Type gt setCurrentStrategy Strategy lt Dim Type gt amp _Strategy Set current strategy only if the strategy is in the model Parameters _ strategy Strategy p to set as current strategy Definition at line 55 of file model cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 27 sif MultiThread Class Reference 69 5 26 3 5 template lt int Dim class Type gt virtual int sif Model lt Dim Type gt evalSituation SpatialData _spatialData ConstraintSystem amp _constraintSystem protected pure virtual Evaluation of the situation define how the situation has to be evaluated according to the current strategy Returns Value of the evaluation Implemented in sif ManualModel lt Dim Type gt p Referenced by sif ManualModel lt Dim Type gt evalSituation The documentation for this class was generated from the following files model hpp model cpp 5 27 sif MultiThread Class Reference MultiThread p Multithread policy include lt multiThread hpp gt Inheritance diagram for sif MultiThrea
32. 28 for Spatial Intelligence Framework by Doxygen 98 Class Documentation Inheritance diagram for sif Square lt Dim Type gt sif A0oject sif Object lt Dim Type gt Object getCoordonates sif StaticObject lt Dim Type gt StaticOb ject sif 0bstacle lt Di Type gt Obstacle A sif Square lt Dim Type gt Square colliding Public Member Functions e Square Coordonate lt Dim Type gt _coord std vector lt std pair lt Type Type gt gt _boundaries Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 45 sif Square lt Dim Type gt Class Template Reference 99 Constructor e virtual bool colliding Coordonate lt Dim Type gt _coord Colliding Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object Protected Attributes e Coordonate lt Dim Type gt coord Coordonates of the object 5 45 1 Detailed Description template lt lt int Dim class Type gt class sif Square lt Dim Type gt Square p A square shaped obstacle It defines a square shaped obstacle See Also sif Environment p sif Object p sif DynamicObject p sif Obstacle p 2 Definition at line 45 of file square hpp 5 45 2 Constructor amp Destructor Documentation 5 45 2 1 template lt int Dim class Type gt sif Squar
33. 47 3 3 unsigned sif Constraint getPriority const inherited Get the priority Returns Constraint p priority Definition at line 44 of file constraint cpp References sif Constraint priority Referenced by sif Constraint operator lt 5 47 3 4 bool sif Constraint operator lt Constraint amp const inherited Comparaison operator based on priority Parameters _ const Constraint p to compare Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 106 Class Documentation Returns boolean Definition at line 49 of file constraint cpp References sif Constraint getPriority and sif Constraint priority 5 47 3 5 const Task sif Constraint getTask const inherited Get task Returns Associated task Definition at line 59 of file constraint cpp References sif Constraint t Referenced by sif SimpleStrategy lt Dim Type gt SimpleStrategy The documentation for this class was generated from the following files e stepConstraint hpp stepConstraint cpp 5 48 sif StepsContinue Class Reference StepsContinue p Criterion for ending the calculation simulation after a user defined number of steps include lt stepsContinue hpp gt Inheritance diagram for sif StepsContinue operator check sif StepsContinue steps StepsContinue _check Public Member Functions Steps
34. AEnvironment addObject 5 22 2 2 template lt int Dim class Type class Data gt void sif Environment lt Dim Type Data gt addObject Obstacle lt Dim Type gt _obstacle Add obstacle to the environment Parameters _obstacle New obstacle Definition at line 39 of file src SIF environment environment cpp References sif Object lt Dim Type gt getCoordonates 5 22 2 3 template lt int Dim class Type class Data gt void sif Environment lt Dim Type Data gt addObject std vector lt ATaskSpot gt 4 _taskSpots Add taskSpots to the environment Parameters _taskSpots Vector of taskSpots Definition at line 53 of file src SIF environment environment cpp References sif AEnvironment addObject 5 22 2 4 void sif AEnvironment update double time inherited Update environment by updating all its components Parameters _time Ellapsed time since the last update Definition at line 37 of file aEnvironment cpp References sif AEnvironment resources 5 22 2 5 void sif AEnvironment addObject AResource amp resource inherited Add resource to the environment Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 22 sif Environment lt Dim Type Data gt Class Template Reference 55 Parameters _ resource New resource Definition at line 56 of file aEnvironme
35. All objects that need this information need to use its interface Final user should not see this class Definition at line 51 of file spatialData hpp 5 44 2 Constructor amp Destructor Documentation 5 44 2 1 sif SpatialData SpatialData AEnvironment x _env Constructor Parameters _env Environment p 2 to work on Definition at line 34 of file spatialData cpp 5 443 Member Function Documentation 5 443 1 Tree lt ATaskSpot gt amp sif SpatialData getTaskSpots const Get TaskSpots Returns Tree p that contains taskspots Definition at line 59 of file spatialData cpp References taskSpots Referenced by sif SimpleStrategy lt Dim Type gt evalSituation Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 45 sif Square lt Dim Type gt Class Template Reference 97 5 44 3 2 Tree lt AResource gt amp sif SpatialData getResources const Get Resources Returns Tree p that contains Resources Definition at line 64 of file spatialData cpp References resources Referenced by sif SimpleStrategy lt Dim Type gt evalSituation The documentation for this class was generated from the following files e spatialData hpp spatialData cpp 5 45 sif Square lt Dim Type gt Class Template Reference Square p A square shaped obstacle include lt square hpp gt Generated on Thu May 23 2013 21 46
36. IA p process has to be carried out See Also sif lA p sif Strategy p Definition at line 45 of file model hpp 5 26 2 Constructor amp Destructor Documentation 5 26 2 1 template lt int Dim class Type gt sif Model lt Dim Type gt Model Strategy lt Dim Type gt amp _currentStrategy Constructor Parameters _curreniStrategy Main strategy Definition at line 35 of file model cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 68 Class Documentation References sif Model lt Dim Type gt addStrategy 5 26 3 Member Function Documentation 5 26 3 1 template lt int Dim class Type gt virtual void sif Model lt Dim Type gt update double time SpatialData _SpatialData ConstraintSystem 4 _constraintSystem pure virtual Update Model p Parameters _time Ellapsed time since the last update _spatialData Data _constraint Constraint p system related to tasks System Implemented in sif ManualModel lt Dim Type gt p 5 26 3 2 template lt int Dim class Type gt void sif Model lt Dim Type gt addStrategy Strategy lt Dim Type gt 4 strategy Add a strategy to the model Parameters _strategy Strategy p to add to the model Definition at line 42 of file model cpp Referenced by sif Model lt Dim Type gt Model 5
37. RUE te Bien we Ae a ddd he oe Bat D hands wad ha a h dise Sif TaskSpot lt DiM Type esse Er ae ies Wo os Rea ee een ae Go ae ee sit Object lt Dim TYPe gt ci yon ep Ee oe bbe es ee SE a y AN sif DynamicObject lt Dim Type gt 1 1 aa a sif Resource lt Dim Type Data gt 2 a sift TaskSpot lt DIM TYPE s m cee nad td Ay dan aa Ge lh ok Gy tet wae Se bag tia ada Sa sif StaticObject lt Dim Type gt a sifvObstacle lt DIM Type Sin ti arte ue Sedo ae tere A PG ae we Bart Em amp sif Square lt Dim Type 00 ee ewe ag Oe ae Ee bie we oe E SUSAR AULT bah cio codes eeri darts te ded tc Gh Bae 8 tay hy QUE See wen oR ef NA rende ad hy NAN RONA tn Boas otal sifv Patn lt DIME an ee Goh eo Re har Se baw ae ee ee Se eee a A Ee SIF ASSIQNIMONt cio Lu Boe He DORA Ree wp ease dk do ea BL we es a CITES CE Le a 4 dese se A SS Saree ee SE Ele es Se ee Ga a eee a ae SIf AssignmentFactory 2 0 2 dose Say Ge ee de oy aha F a ee aw be 4 SI ASIE Se descr arte enh ARCS avis cb tet inlays aa EE cg dt arty NEA Als ens Oe hgh en sif Basekogger Suoran EL eh ahh wh A and oe ao ea ed Si Constraint dias ates Japan Eo ok Geneva el ete Salt ater Bey OS Ge cae e BS sif CustomConstraint e ee wa ee dur E ER OR ae Se ee de SF SepOONStrAIN te slats A Ba et Baa A a mn ro sif ConstraintCompare SH GOMUNUG es ram eue olen Me Panne Seon Ge that ia de AMAR Seat ct aha B
38. Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 40 Class Documentation 5 16 sif Continue Class Reference Continue p Criterion for ending the calculation simulation include lt continue hpp gt Inheritance diagram for sif Continue operator _check sif TimeContinue sif StepsContinue start startTime StepsContinue _ check TimeContinue _ check Public Member Functions e virtual bool operator Check the criterion Protected Member Functions e virtual bool _check 0 Implementation of the test 5 16 1 Detailed Description Continue p Criterion for ending the calculation simulation Hierarchie of functors that defines criteria in order to continue the calculation simulation The implementation is based on NVI idiom C implementation of the Design Pattern Template Method See Also sif StepsContinue p sif TimeContinue p sif Controller p 2 Definition at line 42 of file continue hpp 5 16 2 Member Function Documentation Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 17 sif Controller Class Reference 41 5 16 2 1 bool sif Continue operator virtual Check the criterion Returns boolean Definition at line 34 of file continue cpp References _check 5 16 2 2 virtual bool sif Continue check protected
39. Tree p data structure for indexing multi dimensional information include lt rTree hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 86 Class Documentation Inheritance diagram for sif RTree lt Data gt sif Tree lt Data gt A s1f RIree lt Data gt Public Member Functions e virtual std vector lt Data x gt getData 0 Return a vector of all objects of the tree 5 37 1 Detailed Description template lt class Data gt class sif RTree lt Data gt RTree p Tree p data structure for indexing multi dimensional information RTree p is a tree data structure for spatial access methods ie for indexing multi dimensional information See Also sif Tree p Definition at line 45 of file rTree hpp 5 37 2 Member Function Documentation 5 37 2 1 template lt class Data gt virtual std vector lt Datax gt sif Tree lt Data gt getData pure virtual inherited Return a vector of all objects of the tree Returns Vector of objets Implemented in sif Simplelndex lt Data gt p sif Simplelndex lt sif ATaskSpot gt p and sif Simplelndex lt sif AResource gt p The documentation for this class was generated from the following file e rTree hpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 38 sif ShortestPathFactory Class Reference 87 5 38 s
40. _ coord Coordonates of the resource Definition at line 32 of file object cpp 5 28 3 Member Function Documentation 5 28 3 1 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files e object hpp object cpp 5 29 _ sif Observable lt NotifyPolicy gt Class Template Reference Observable p Notify observer when state change occured include lt observable hpp gt Inherits NotifyPolicy Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 29 sif Observable lt NotifyPolicy gt Class Template Reference 73 Public Member Functions void addObserver Observer amp _obs Add observer void removeObserver Observer amp _obs Remove an observer Protected Member Functions e virtual void _setChange 0 Implemention of the setChange method Protected Attributes e std vector lt Observer x gt observers Observers list 5 29 1 Detailed Description template lt class NotifyPolicy gt class sif Observable lt NotifyPolicy gt Observable p Notify observer when state change occured Th
41. der aux structures de partitionnement et d indexation Ainsi ce n est pas VIA qui s occupe de stocker ces structures on peut imaginer dans un jeu vid o que l IA soit remplac par un joueur Les emplacements de travail Ce sont les repr sentations physiques d une t che C est dire des objets qui vont pou voir modifier une t che son compteur en fonction de certaines conditions Ainsi ce sont des observateurs d une t che particuli re qu elle notifie en cas de change ment L encore on peut imaginer beaucoup de variantes des emplacements temporaires l emplacement est d truit au bout de tant de temps d utilisation des emplacements avec un compteur l emplacement se d truit apr s tant d utilisation etc 2 3 8 Les politiques de chevauchement Les objets sont param tr s par une politique de chevauchement certains objets peuvent ne pas en chevaucher d autres Il s agit concr tement d un entier qui permet de d finir une priorit sur le chevauche ment Un objet ne peux pas surpasser un objet ayant une valeur plus haute que la sienne Des constantes sont pr vues pour d finir des objets fant mes et des objets que l on ne peut pas chevaucher comme les obstacles par exemple 2 3 9 Les fonctions de co ts Il existe plusieurs types de fonctions de co ts dont le r le est similaire valuer un ob jet ou une quantit en fonction de diff rents param tres Classiquement on peut
42. diagram for sif PassivePolicy sif ObservablePolicy setChange _setChange sif PassivePolicy _setChange Public Member Functions e virtual void setChange final Set change the meaning of this function depends on the policy Protected Member Functions e virtual void _setChange Implemention of the setChange method 5 33 1 Detailed Description PassivePolicy p Change the internal state of the observable This policy will change the internal state of the observable It is the responsability of the observer to check the state in order to know if the observable has changed since the last observation See Also sif Observer p sif ObservablePolicy p sif ActivePolicy p Definition at line 44 of file passivePolicy hpp The documentation for this class was generated from the following files passivePolicy hpp passivePolicy cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 34 sif Path lt Dim gt Class Template Reference 79 5 34 sif Path lt Dim gt Class Template Reference Path p Path p data structure include lt path hpp gt Inheritance diagram for sif Path lt Dim gt sif APath A Sa Diin gt Public Attributes T elements STL member 5 34 1 Detailed Description template lt int Dim gt class sif Path lt Dim gt Path p Path p data structure A pa
43. ee a 8 2 sif Space lt Dim Type 48 sant bua a m Los cha alot aa Se ay ae ee eh A eet 22 Sif Spatial Data ii o E a A A has ae 2 Sif Strategy lt DIM TYPES 2 tes aa en oe ela Ri ee Gea es er nie Ar A AD nan Ek 22 sif SimpleStrategy lt Dim Type gt ee 22 SifzsThreadingModel wss z a et nn to thee whos al A que la Ms De led de en st 2 sii Multiintead 6 5 23 eo SES A A ee ee on ee 2 Sif Singl Thread 2 242 sce de A a Se a Pe E AD AURA 2 sifsitr e Data gt ste Pe ae A Ee ERAS PS EE ot oes Se an ch due 22 siizAtlasGrid lt Data La mk oo ea e aa rada hy td iS alas okies sh e 22 sit QuadTree lt Dald gt il A A A ee Pen A 22 sit Rilree lt Data gt id ah aS a a ea Ge a a A A ee 22 sif Simplelndex lt Data gt ee 2 Sites Tree lt lt St AROSQUICO gt 4 5 hs dees hos a eel els LA AE ahd aos Got Se GL Mia a he bed EU gi gi Ga 22 sif Simplelndex lt sif AResource gt ee 2 Sif Tree lt sifhATaskSpot a wok ak A Be E Ge ee ES og a Se ie 2 sif Simplelndex lt sif ATaskSpot gt 22 SITO SO Factory coto atan da A ta gt lt da a a o G as aal a da iY 2 std vector lt T gt sift Coordonate lt Dim Typ eich fare BRE aS A ee a a EE EU 22 Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen Chapter 3 Class Index 3 1 Class List Here are the classes structs unions and interfaces with
44. es spatiales que ce soit la partition de l espace ou l index des objets dynamiques il nous faut une classe d di a cela Cet objet poss de 3 structures de donn es qui indexent la structure de l espace donc les objets statiques les taches et les ressources a partir des conteneurs basiques des tableaux de l environnement Lors de l initialisation le contr leur cr era cet objet automatiquement et passera une r f rence aux ressources en passant par l environnement et VIA 2 3 14 Les algorithmes Chaque type d algorithme d finit une hi rarchie de classes h ritant toutes d une classe abstraite d finissant l interface de ce type d algorithme On utilisera un design pattern Factory pour permettre une instanciation ais e pour l utilisa teur Algorithmes de plus court chemin Les algorithmes de plus court chemin renvoient une liste de noeuds parcourir pour une ressource pour arriver son objectif Il se peut qu il y ait des d placements pr voir au sein d un noeud mais c est la ressource de s en occuper Algorithmes d affectation Les algorithmes d affectation prennent en entr e les emplacements de travail Etant donn que les algorithmes ne travaillent pas n cessairement sur le m me type de donn es par exemple la m thode hongroise travaille sur une matrice alors que la recherche du plus proche voisin peut faire appel des structures d arbre etc une tape de transfor mation des donn
45. galement les tests gt cmake DINSTALL TYPE full gt make 6 1 2 Lancer les tests Les tests peuvent tre lanc s tous ensemble via la commande ctest gt ctest Ou ind pendamment en se placant dans le r pertoire build test et en ex cutant chaque test 6 13 Utilisation dans un projet Comme l installation n est pas pr vue par CMake il faudra donner directement le che min du dossier des includes au compilateur ainsi que linker explicitement la librairie g n r e dans le dossier build L inclusion des headers complet du framework se faisant l aide de la commande sui vante include lt sif hpp gt 47 E EINSA taille humaine mu r l chelle du monde a MN 10 13 _ ROUEN A CHAPITRE 6 GUIDE UTILISATEUR o o 6 1 4 Le on Les le ons permettent d apprendre un aspect du framework Nous n avons cr e qu une le on qui pr sente tout le processus de cr ation d une simulation basique Celle ci donne un bon exemple d utilisation des m canismes basiques et d ailleurs les seuls impl ment s Le on 1 simulation basique Tout d abord nous cr ons un g n rateur al atoire avec une distribution uniforme sur 0 10 de sorte placer al atoirement des objets dans l environnement Random engine std random_device rd std mt19937 gen rd std uniform_int_distribution lt gt dis 0 10 Listing 6 1 G n rateur al atoir
46. int Dim class Type class Data gt void sif Resource lt Dim Type Data gt update double _time virtual Update dynamic object Parameters _time Ellapsed time since the last update Implements sif AResource p Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 84 Class Documentation Definition at line 57 of file src SIF environment resource cpp 5 36 3 3 template lt int Dim class Type class Data gt void sif Resource lt Dim Type Data gt move double time protected Move the resource along its path Parameters _time Ellapsed time since the last move Definition at line 88 of file src SIF environment resource cpp References sif Object lt Dim Type gt getCoordonates 5 36 3 4 template lt lt int Dim class Type class Data gt bool sif Resource lt Dim Type Data gt colliding Direction lt Dim gt dir protected Check the collision according to the direction of the movement Parameters _dir Direction p Returns true is colliding false otherwise 5 36 3 5 bool sif AResource isBusy const inherited Check if the resource is busy it cannot be assigned Returns boolean Definition at line 41 of file aResource cpp References sif AResource busy 5 36 3 6 void sif AResource setBusy bool status inherited Set the status of the resource Parameters
47. object Protected Member Functions e void dump Implementation of dump function Protected Attributes e std function lt int int amp double gt f Function in order to update task e Task 8 t Attached task e Coordonate lt Dim Type gt coord Coordonates of the object 5 51 1 Detailed Description template lt int Dim class Type gt class sif TaskSpot lt Dim Type gt TaskSpot p Physical object that can modify a task The TaskSpot p is an object that can modify a task when a specific action occured Different types of TaskSpot p 2 are provided such as periodic ones See Also sif Task p sif PeriodicTaskSpot sif Observable p Definition at line 52 of file taskSpot hpp 5 51 2 Constructor amp Destructor Documentation 5 51 2 1 template lt int Dim class Type gt sif TaskSpot lt Dim Type gt TaskSpot Coordonate lt Dim Type gt _coord Task t std function lt int int amp double gt f Constructor Parameters _coord Coordonates of the taskSpot t The associated task f Function which serves to update the task Definition at line 35 of file taskSpot cpp 5 51 3 Member Function Documentation Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 114 Class Documentation 5 51 3 1 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt get
48. ordre de traitement par l IA soit une p nalit lors de l valuation Note Il serait int ressant de pouvoirs d tecter les contraintes impossibles tenir en fonction de l environnement ou tout simplement parce que deux contraintes s opposent Le probl me de satisfaction de contraintes est lui tout seul un probl me NP difficile dans la plupart des cas On supposera durant ce projet que ce point ne pose pas de soucis et que l utilisateur n entrera pas des contraintes qui pourront amener le syst me se bloquer ou ne pouvoir satisfaire l ensemble des contraintes dans un temps raisonnable Par la suite il pourra n anmoins tre int ressant de proposer des algorithmes de d duc tion de contraintes et de r solution du probl me CSP Constraint satisfaction problem Contraintes de seuils Une contrainte de seuil appliqu e une t che est compos e d un op rateur lt ou gt et d une valeur num rique Ces contraintes poss dent deux fonctions de callback qui doivent se d clencher lorsque l on franchi le seuil d fini d un c t et de l autre ie cela implique de garder en m moire la valeur lors de la v rification pr c dente Optionnellement on peut d finir un intervalle de tol rance non n cessairement sym trique Contraintes de de proportionnalit D fini une relation de proportionnalit entre 2 ou plusieurs t ches On peut imaginer par exemple vouloir 30 de pierres contre 70 d or dan
49. pepu uejsa 8811 Quo ue guezjsa 2811 Wepsoz Jul i lt 9321N0559y 1 gt U0 9UNJ ip s lt gt A Buisn lt 1 ssej9 gt 8 e dueaj dejan ssejo seounossa sep uolen ena nod ajdwax3 UO JIUNJNPJs Se Ins sele sap yuawajdws juolas uoenjeaa p SUOIJIUOY 527 enbiy od ap asse Aug 8811 isjodsysey9 2811 S891n055819 8811 lt gt BAQ E 2 lt Aal og gt aqeruasgo qnd lt buiddeyaag gt joalqgaiweudg qnd JodS SEL ssejo lt Buiddeyeag gt alqgaiweudg aqnd 821n0s5s84 ssej9 ejegieneds ssejo aj9e3sqo agnd auoBAoy ssep palgoayeys agnd aj9e3sgo sseja M p1009 lt ed L LIg S8JEU0P1007 lt lt edf uig seeu0p1009 128 40 qnd JDS GOINEIS SSEJO lt MOF gt S qenaasqo qnd lt lt edfj uig s8 eu0p1009 28 q0 SSEJO lt 91 0d gt 9 qem1asqo ssejo ejeqlenedsjes pion lt ad L gt J0 93A 55219 spelgooueufp lt JOdSASE 1 y39NOSsay gt deL p s ajepdn pion appezsqo ap9ezsqo palqoppe pion 1s9 9e 5q0 lt 3 92I5q0 gt 0 934 p 5 is od5458 lt jods se gt 10 934 p 5 IS891N05581 lt 99 M0SS9Y gt J0 93A pJS eseds lt lt ad wig gt sayeuopiooj gt aseds lt edf1 10 981 p 5 211gnd lt ad L WIJ gt S9JPUOPIOO SSEJD lt lt edfl luIg S8Jeu0pi00 29ed5 SSEJI daruasqo 55E 2 Jarasqo aiqnd lt fal o4 8 qe u85qo qnd lt lt 8J2U0pI1009 82Ed5 JU8LISUUOIAUZ ssejo jueueuuoinua FIGURE 2 9 Diagramme de classes de l environnement
50. plus on a 0 taille humaine A SN a a ye r l chelle du monde AA ROUEN A CHAPITRE 4 IMPL MENTATION faible C est assez basique on pourrait imaginer un estimateur des moindres carr s avec correction par rapport au nombre de couples etc Dimension et politique multithread Il s agit plus d une astuce permettant de faciliter la vie de l utilisateur qu une r elle fonc tionnalit d autant que celle ci est partiellement impl ment e La plupart des classes sont templat es avec deux attributs l un entier repr sentant la di mension de l espace utilis pour la simulation et le second le type des coordonn es utilis es De m me une politique multithread tait envisag e dans la mod lisation ce qui rajouterait un template Pour une utilisation donn e tous ces templates vont tre identiques et il est possible gr ce CMake de d finir la valeur de ces templates par d fault Une constante du pr processeur d finie une dimension et un type par d faut ainsi qu une politique multithread par d faut Ces constantes sont ensuite utlis es pour cr er un alias sur une classe qui viendra remplacer l ensemble des arguments par d faut des templates L int r t est que ces constantes peuvent tre red finie par l utilisateur dans son code mais aussi et surtout via CMake au moment de la construction logicielle Ainsi si l on est sur une machine multi thread on pourra par d fault l a
51. positif les coordonn es de la resource peuvent chang es On tes tera les diff rentes directions possibles qui d pendent de l espace La troisi me est la fonction isBusy celle ci teste si la fonction peut tre r affect e ou non On doit tester si une ressource libre devient occup e apr s avoir t affect e La quatri me est la fonction colliding Cette fonction teste si la ressource ne rentre pas en collision avec un autre objet dynamique Deux cas sont tester le cas o il y a une collision la fonction doit renvoyer true et le cas o il n y a pas de collision false 3 3 4 Space Une fonction tester inSpace Coordonate lt Dim Type gt _coord qui v rifie si les coor donn es sont dans l espace e Premier cas Les coordonn es ne sont pas dans l espace La fonction doit retourner faux e Deuxi me cas Les coordon es sont dans l espace On va v rifier sur chaque extr mit de l espace aux fronti res que la fonction renvoie bien vraie 3 3 5 Task On doit tester la fonction update std function lt int int amp gt _f Cette fonction est as soci e une fonction d valuation _f pour le test on va cr er une fonction qui renvoie on a 4 A taille humaine eee T l chelle du monde A so ROUEN ee a CHAPITRE 3 PLAN DE TESTS toujours la m me chose Il suffira donc de tester si la valeur de la t che est gale ce que renvoie la fonction 3 3 6 Ta
52. rera ici la calcul du d terminant D coule de cette classe une hi rarchie de matrices pour les cas particuliers matrice triangulaire matrice diagonale etc Matrice det double concurrent det double sequential TriangMat DiagMat det double sequential det double sequential FIGURE 2 14 Illustration du NVI ong A taille humaine 7 9 r l chelle du monde ARA e ROUEN Lr CHAPITRE 2 MODELISATION 10 13 16 19 22 25 28 31 34 37 40 class Matrice public double det const Pre traitement verification d invariants lock multithread BE m lock assert data_ check_invariants true Appel de l implementation return _det Post traitement assert data_ check_invariants true m unlock private virtual double _det const 0 protected Data data mutex m i class TriangMat public Matrice private virtual double _det const Retourne le produit de la diagonale class DiagMat public Matrice private virtual double _det const Retourne le produit de la diagonale Listing 2 1 NVI principe Ainsi lorsque l utilisateur voudra ajouter une nouvelle matrice disons de forme Hes senberg il aura simplement a impl menter le calcul du d terminant les invariants tant toujours v rifi s dans le code de la classe de base qui v
53. valuer la satisfaction d une contrainte les paires ressource emplacement de travail la situation globale La mani re dont l valuation est faite d pend de la strat gie adopt e L impl mentation est tr s libre et souple au vu de ce que le C permet de faire surtout avec le nouveau standard 2 3 10 Les strat gies Il s agit d une mani re de r soudre le probl me d affectation pour satisfaire les contraintes Elle comporte une mani re d valuer la situation et un algorithme d affectation Une strat gie tr s simple consiste ne traiter la satisfaction que d une contrainte la fois Il s agira de la seule strat gie que nous impl menterons L valuation de la situation est faite en fonction de la strat gie Voici la strat gie que nous impl menterons visible galement sur le diagramme de s quence du contr leur de VIA on a 0 taille humaine a a a ye r l chelle du monde AR of ROUEN a CHAPITRE 2 MODELISATION Evaluation des contraintes Evaluation des paires ressource emplacement Evaluation globale des ressources Evaluation de la situation Voici un exemple concret des fonctions de cotits associ s La contrainte x non satisfaite cette contrainte portait sur la tache y dont la valeur est trop faible e Evaluation de l int r t des taskSpots Le co t des taskSpots rattach s y est 1 sinon 0 e Evaluation d un individu Distance des couples Indi
54. 1 2 1 template lt int Dim class Type gt sif DynamicObject lt Dim Type gt DynamicObject Coordonate lt Dim Type gt _coord Constructor Parameters _ coord Coordonates of the resource Definition at line 33 of file dynamicObject cpp 5 21 3 Member Function Documentation 5 21 3 1 template lt int Dim class Type gt virtual void sif DynamicObject lt Dim Type gt update double _time pure virtual Update dynamic object Parameters _time Ellapsed time since the last update Implemented in sif Resource lt Dim Type Data gt p and sif TaskSpot lt Dim Type gt p 5 21 3 2 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 52 Class Documentation Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files dynamicObject hpp e dynamicObject cpp 5 22 sif Environment lt Dim Type Data gt Class Template Reference Environment p Modelize the environment of the problem include lt environment hpp gt Inheritance diagram for s
55. 33 eediouud a9eJ13 u 136607 ssej Ses lt d8 15 gt PP 52 E fd eke Heil 486607 ssejo ha o 8nU1jU0 lt yZSNUIJUOD gt JOJISIA pys of CO a 2 anbijejs assejo ENT im A gt N Z 2 Om N en 2 CHAPITRE 2 MODELISATION jUI8138U09 a1jgnd Julesjsuo WO SND 55219 qulesjsuo9 aygnd ju21sU09d014 552 Jule13suo ayqnd JUIE1J5U09d8 S 55 2 feruesao aignd lt 491104 gt 3 qe113sqo a1qnd lt lt 8JEU0p1009 82EdS gt JU8LSUUOIAUT sser I POW 31qnd japoyisaje3s enuejy ssejo chajogmaiqeniasqo 56 Apo a1gnd UIEUDAOHIEMUSPPIH ssejo Qepbap pion Quee pion Jeruesgo pion Dejegjenedsjas pion ameugiqo ju 10j2418d0 pion daruesgo aiqnd y 55219 Jaruasqo 55219 48 U85q0 aiqnd lt adAy gt sel ssejo FIGURE 2 8 Diagramme de classes d IA et contraintes e lt 91 0d gt 8 qesasqo 55219 sl lt a10d gt 8 qemesqo aqnd lt Buiddeysag gt joalqgaiweudg agnd jodsyse sser E SSIUIEIUOD 3 YI E s Q cs 2 se lt aH LO N 2 CHAPITRE 2 MODELISATION l chelle du monde taille humaine og IEDR 2 5 5 Environnement tre le diagramme de classe du rapport sur isparai Une erreur de copi coll avait fait d la mod lisation sjodsyse 386 lt 0dsJSeL 410 23A p S ejegjeneds pioa pald plosjsaonossayjeb lt 45891n05584 10 98n p S
56. Chaque repr sentation ses avantages et ses inconv nients en fonction des applications On pourrait ais ment cr er 3 classes diff rentes mais cela ne serait pas tr s pertinent On pourrait simplement templa ter la classe de graphe mais chaque type donn e n a pas la m me API De plus imaginons qu un graphe puisse tre partag entre plusieurs thread ou non selon les applications Sans param trage par politique il faudrait un nombre de classes gales au nombre de fac teurs multipli par le nombre de modes par facteur Cela apporterait videmment du code redondant et une maintenabilit moindre puisque dans le cas d un param trage par poli tique on peut isoler compl tement un comportement Pour modifier l int gralit du mod le multithread d une application la modification d une seule classe de politique est n cessaire Chaque facteur est repr sent par une classe abstraite permettant de d finir l API com mune tous les modes et qui pourra tre utilis e par les classes param tr es avec ce facteur Les classes concr tes impl mentent chacun des modes de la politique Enfin la classe de services qui doit tre param tr e par politique va tre templat avec cha cune des politique et en h riter de mani re publique ou priv e selon les besoins Exemple On d finit la premi re hi rarchie de classes correspondant la premi re politique class ThreadingModel protected virtual void Lock
57. Continue unsigned _steps Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 48 sif StepsContinue Class Reference 107 Default constructor e virtual bool operator Check the criterion Protected Member Functions e virtual bool _check Implementation of the test Protected Attributes unsigned steps Number of steps to reach 5 48 1 Detailed Description StepsContinue p Criterion for ending the calculation simulation after a user defined number of steps Criterion for ending the calculation simulation after a user defined number of steps See Also sif Continue p sif TimeContinue p sif Controller p Definition at line 44 of file stepsContinue hpp 5 48 2 Member Function Documentation 5 48 2 1 virtual bool sif StepsContinue check protected virtual Implementation of the test Returns boolean Implements sif Continue p 5 48 2 2 bool sif Continue operator virtual inherited Check the criterion Returns boolean Definition at line 34 of file continue cpp References sif Continue _check The documentation for this class was generated from the following files e stepsContinue hpp stepsContinue cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 108 Class Documentation 5 49 sif Strategy lt Dim Type gt Class Template Reference Strategy p
58. Coordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files e taskSpot hpp e taskSpot cpp 5 52 sif ThreadingModel Class Reference ThreadingModel p Threading Policy include lt threadingModel hpp gt Inheritance diagram for sif ThreadingModel sif ThreadingModel lock unlock _ lock _unlock sif MultiThread _lock sif SingleThread _lock _unlock unlock Public Member Functions e virtual void lock final Lock the scope e virtual void unlock final Unlock the scope Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 53 sif TimeContinue Class Reference 115 Protected Member Functions e virtual void _lock 0 Implemention of the lock method e virtual void _unlock 0 Implemention of the unlock method 5 52 1 Detailed Description ThreadingModel p Threading Policy Define a policy regarding the threading environnement See Also sif SingleThread p sif MultiThread p 2 Definition at line 42 of file threadingModel hpp The documentation for this class was generated from t
59. GRAN RAS BRL NE ww 0 19 2 5 3 Framework 444 mous eu aus ee o ee ew 20 2 5 4 IA amp Contraintes 21 2 5 5 Environnement 22 2 6 Sc nario et diagrammes de s quences 23 2 6 1 Sc nario principal 34 4 4 5 4 44 4 44 4 ds Pb ee eee ste 23 2 6 2 Sc narios annexes 24 27 ANNEXES 2 hd a ed haut A dun dd ain du dd dede 29 2 8 Pr sentation des pattern r currents 0 20 0 renos 29 ol LOIRE INV s i sie a ea he ae Rede Ged Bde ee phe HE He BH Bed BH 29 2 8 2 Param trage par politiques 25 4 ink ka dew hed raras as 31 29 Notes sur la mod lisation 6 466546 6684854 ana pa uv ES 33 DOA Directos aca ace ch as Sars She Goes Bhs Bus dee Henle Geka se wes 34 2 9 2 Mouvement 34 29 3 ENCARAR AE AE de OR NS Ro No de 34 3 Plan de tests 35 31 ASSISNMEN possede td a desdits a id rie 35 Sel KUMAR AA GEE Ge NT a MR NS 35 3 2 Constraint 2 8 2 db 4440 4 dds da oe te ban Mb dan da ed eed ee ode d 35 S21 Constraint 444 44 Dub aoe ie Lin ta a eR a eS S 35 3 9 ENVifONMMeNt 44 4 do de da A da dan du dede dd du dt k 35 3 3 1 Environnement 35 Bot VAS dada Da RASE LR SAR LAN eh ae DU da t 36 33 9 E A ene a ane aie 36 3 3 4 Space ac da ed dan Ne are OES ES OE SUN SUPER 4 36 399 Wash at are ok
60. Les objets Les objets voluent dans l environnement et plus particuli rement dans l espace qu il contient Ainsi tous les objets poss dent des coordonn es qui doivent tre du m me type que ceux de l espace consid r Il existe deux types d objets pour le moment les objets statiques et les objets dyna miques Chacun de ces deux types donnent lieu une hi rarchie d objets Tous les objets impl mentent une g om trie qui permettra d effectuer des calculs de col lision selon diverses techniques Par exemple on peut d finir un objet par un polygone convexe un polygone quelconque un carr un cercle Chaque repr sentation ses avan tages et inconv nients sur les m thodes de collisions algorithme du point dans un poly gone convexe Bounding Box rayon de collision etc Tous les objets poss dent galement une fonction update qui sert mettre jour leur tat interne r guli rement Les objets statiques Il s agit des objets de l environnement qui ne peuvent pas bouger Leur int r t principal est de d finir des obstacles dans l espace bloquant le passage aux ressources Les obstacles Il s agit du seul objet statique concret dont nous avons per u l int r t pour l instant Il est la pour mod liser comme son nom l indique un obstacle dans l espace Les objets dynamiques Ce sont des objets qui sont capables d voluer Les ressources Elles repr sentent des objets dont l
61. Logger setNext BaseLogger x_next Set next element in reponsability chain BaseLogger getNext const Get next element in reponsability chain e void handle const std string msg int _ priority Try to handle the message e void startSerialize int _level std string _logFile Start to serialize e void startSerialize std string _logFile Start to serialize all levels e void stopSerialize int _level Stop to serialize e void stopSerialize Start to serialize all levels e void setQuiet Stop writting on printing stream all levels e void setQuiet int _level Stop writting on printing stream e void setVerbose Start writting on printing stream all levels e void setVerbose int _ level Start writting on printing stream e void print const std string _msg std ostream _stream Print message on the specified stream e void log std string _msg Log the message and dispatch on streams Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 12 sif BaseLogger Class Reference 33 5 12 1 Detailed Description BaseLogger p Element of the reponsability chain of logging The BaseLogger p class define an element of the logger It defines a level of logging and have two streams one for printing and one for serialize logs in a specified file See Also sif Logger Definition at line 46 of file baseLogger hpp 5 12 2 Constructor amp Destruc
62. Space lt Dim Type gt Space p Defines the space 22 sif SpatialData SpatialData p 2 Contains the index of the objets and the partition of the space 2 sif Square lt Dim Type gt Square p A square shaped obstacle 22 sif StaticObject lt Dim Type gt StaticObject p 2 Objects that cannot evolve intime 22 sif StepConstraint StepConstraint p 2 Special constraint 22 Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 3 1 Class List 7 sif StepsContinue StepsContinue p Criterion for ending the calculation simulation after a user defined number Of Steps ox co al ta a Pe Be bah ee a ES a Se VE 2 sif Strategy lt Dim Type gt Strategy p Defines the behavior of the IA p 2 at a precise moment 2 sif Task Task p 2 Abstract object 22 sif TaskSpot lt Dim Type gt TaskSpot p Physical object that can modify a task 22 sif ThreadingModel ThreadingModel p 2 Threading Policy 2 sif TimeContinue TimeContinue p Criterion for ending the calculation simulation after a user defined time sif Tree lt Data gt Tree p General API for tree 2 sif TreeFactory 22 TreeFact
63. Start writting on printing stream Parameters _level Level of logging Definition at line 161 of file baseLogger cpp References setVerbose 5 12 3 9 void sif BaseLogger print const std string _msg std ostream x _stream Print message on the specified stream Parameters _msg Message to write _ stream Stream Definition at line 169 of file baseLogger cpp References sif currentTime Referenced by log 5 12 3 10 void sif BaseLogger log std string msg Log the message and dispatch on streams Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 36 Class Documentation Parameters _msg Message to log Definition at line 181 of file baseLogger cpp References print The documentation for this class was generated from the following files baseLogger hpp baseLogger cpp 5 13 sif Constraint Class Reference Constraint p General class for constraints include lt constraint hpp gt Inheritance diagram for sif Constraint sif Constraint t priority Constraint setPriority getPriority operator lt operator getTask sif StepConstraint op step lastValue leftTolerance rightTolerance breakCondition reachCondition StepConstraint operator sif CustomConstraint cond lastValue b
64. Type gt sif AObject A sif 0bject lt Dim Type gt Object getCoordonates sif DynamicObject lt Dim Type gt DynamicObject update 4 D if Resource lt Di Type gt if TaskSpot lt Di Type gt Resource move update Resource move _dump colliding TaskSpot update _dump Public Member Functions DynamicObject Coordonate lt Dim Type gt _coord Constructor e virtual void update double _time 0 Update dynamic object Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 21 sif DynamicObject lt Dim Type gt Class Template Reference 51 Protected Attributes e Coordonate lt Dim Type gt coord Coordonates of the object 5 21 1 Detailed Description template lt int Dim class Type gt class sif DynamicObject lt Dim Type gt DynamicObject p Objects that can evolve in time It defines an abstract API for object that can move during the simulation By moving we suggest physically or just changing its internal state See Also sif Environment p sif Object p sif StaticObject p sif Ressource sif TaskSpot p Definition at line 48 of file dynamicObject hpp 5 21 2 Constructor amp Destructor Documentation 5 2
65. a appeler l impl mentation Il y a donc une r elle inversion de contr le et c est le d veloppeur du framework qui dirige le client l utiliser correctement on a 0 taille humaine _ ee r l chelle du monde ee ROUEN ee CHAPITRE 2 MODELISATION Nous utiliserons par la suite du projet l idiome NVI de mani re intensive pour permettre de guider le flux d ex cution 2 8 2 Param trage par politique Pr sentation Le param trage par politique est une technique de programmation d velopp e et d mocratis e par Andrei Alexandrescu dans son livre Modern C Design Generic Pro gramming and Design Patterns Applied et dans la biblioth que Loki d di e la m ta programmation en C dont beaucoup d l ments ont t repris dans Boost puis dans le standard 2011 Concr tement il s agit de profiter de l h ritage multiple et de la m taprogrammation pour permettre de s parer les diff rents comportements d une classe ou de plusieurs classes et de cr er sur mesure des comportements en combinant plusieurs politiques Fonctionnement La clef d un param trage par politique efficace r side dans l analyse des diff rents com portements d une classe ou d un ensemble de classes Imaginons que nous ayons cr er une biblioth que de gestion de graphes Un graphe peut tre repr sent sous diff rentes formes matrice d adjacence matrice d incidence ou liste de successeurs
66. adTree Indexation R Tree Plus Court Chemin A Affectation M thode hongroise 1 3 Application Description du syst me et objectifs L application servira de d monstration a l IA construite avec le Framework Il s agira d un petit jeu de strat gies en temps r el L environnement sera une carte 2D avec des murs les obstacles des ouvriers les res sources et des mines d or et des mines de pierres les taches qui sont donc au nombre one A taille humaine r l chelle du monde n ROUEN _ CHAPITRE 1 ANALYSE DES BESOINS de deux L action de miner durera un certain temps qui occupera un ouvrier et lui permet tra de faire augmenter le compteur g n ral d or ou de pierres Les fonctionnalit s suivantes permettront l utilisateur d interagir avec le monde pour voir la r action de VIA e Supprimer Cr er un ouvrier e Augmenter Diminuer le nombre d or pierres en r serve e Fixer un ratio entre or et pierres e Fixer un objectif atteindre pour l or ou et la pierre 1 4 Notes sur les besoins Le d coupage en modules a t respect e et les besoins n ont pas chang s Seuls l impl mentation a t encore un peu r duite par rapport ce qui a t pr vu le rapport ayant t crit lorsque nous pensions tre 4 pour r aliser le projet Pour le d tail de l impl mentation se r f rer la section correspondante Concernant l application de d monstration pou
67. anualModel lt Dim Type gt Class Template Reference 65 Parameters _time Ellapsed time since the last update __spatialData Data _constraint Constraint p system related to tasks System Implements sif Model lt Dim Type gt p Definition at line 40 of file manualModel cpp 5 25 3 2 template lt int Dim class Type gt int sif ManualModel lt Dim Type gt evalSituation SpatialData amp _spatialData ConstraintSystem amp _constraintSystem protected virtual Evaluation of the situation define how the situation has to be evaluated according to the current strategy Returns Value of the evaluation Implements sif Model lt Dim Type gt p Definition at line 50 of file manualModel cpp References sif Model lt Dim Type gt evalSituation 5 25 3 3 template lt int Dim class Type gt void sif Model lt Dim Type gt addStrategy Strategy lt Dim Type gt amp strategy inherited Add a strategy to the model Parameters _ strategy Strategy p to add to the model Definition at line 42 of file model cpp Referenced by sif Model lt Dim Type gt Model 5 25 3 4 template lt int Dim class Type gt void sif Model lt Dim Type gt setCurrentStrategy unsigned pos inherited Set current strategy Parameters _pos Position of the strategy in the vector Definition at line 48 of fil
68. ass sif Direction lt Dim gt Direction p Vector of an orthonormal base of the space See Also sif Environment p sif Object p sif Ressource Definition at line 43 of file direction hpp 5 20 2 Constructor amp Destructor Documentation 5 20 2 1 template lt int Dim gt sif Direction lt Dim gt Direction unsigned _pos bool way Direction p Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 21 sif DynamicObject lt Dim Type gt Class Template Reference 49 Parameters _ pos Position of the vector in the base _way Indicate the way Definition at line 37 of file direction cpp 5 20 3 Member Function Documentation 5 20 3 1 template lt int Dim gt std pair lt int bool gt sif Direction lt Dim gt getValue const getValue Returns Direction p information Definition at line 47 of file direction cpp Referenced by sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files e direction hpp e direction cpp 5 21 sif DynamicObject lt Dim Type gt Class Template Reference DynamicObject p Objects that can evolve in time include lt dynamicObject hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 50 Class Documentation Inheritance diagram for sif DynamicObject lt Dim
69. ath p Definition at line 44 of file aStar hpp 5 9 2 Member Function Documentation 5 9 2 1 template lt int Dim class Type gt Path lt Dim gt sif AStar operator const Coordonate lt Dim Type gt amp _from const Coordonate lt Dim Type gt amp to Start the shortest path computation Parameters _from Origin _to Goal Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 10 sif ATaskSpot Class Reference 29 Returns A path Definition at line 35 of file aStar cpp The documentation for this class was generated from the following files e aStar hpp aStar cpp 5 10 sif ATaskSpot Class Reference TaskSpot p Physical object that can modify a task include lt aTaskSpot hpp gt Inheritance diagram for sif ATaskSpot A sif ATaskSpot ATaskSpot update getTask dump _dump sif TaskSpot lt Dim Type gt TaskSpot update _dump Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 30 Class Documentation Public Member Functions ATaskSpot Task amp _t std function lt int int amp double _time gt _f Constructor e virtual void update double _ time Update Ressource const Task amp getTask const Return Task p e void dump Debug function to show all informations about the class Protected Me
70. bjets C est pourquoi nous avons imagin s deux types de politiques li es l observation une politique active et une politique passive Politique active La politique active est le comportement classique lorsque l on parle du patron Observa teur D s qu un changement appara t sur un observ il notifie l observateur qui s est abonn aux observ s On retrouve ce comportement au niveau du couple Emplacement T che o l emplace ment sous certaines conditions va notifier la t che qui devra se mettre jour em 0 taille humaine o INSA l chelle du monde _ _ ROUEN ad CHAPITRE 2 MODELISATION Politique passive La politique passive consiste pour l observ simplement changer son tat indiquant qu il a chang et pr parer le message qui doit tre transmis l observateur C est donc l ob servateur qui est actif et va explicitement demander la notification d tat et r cuperer les messages des observables qui ont indiqu s qu ils taient modifi s Ce comportement appara t par exemple au niveau de l observation de l environnement par I TA LA va p riodiquement choisir de regarder l tat de l environnement r a 4 taille humaine e r l chelle du monde e ROUEN a CHAPITRE 2 MODELISATION 25 Diagramme de classes 2 5 1 Algorithmes class AssignmentFactory At ant class Assignment lt Data gt virtua
71. ble lt Data gt sif EvalLoop Eval lt Data gt _eval std vector lt Data x gt data EvalLoop Evaluate a vector of Data Parameters _ eval Evaluation function _ data Vector of data to evaluate Returns EvalTable Definition at line 33 of file eval cpp Referenced by sif SimpleStrategy lt Dim Type gt evalSituation 4 1 3 2 const std string sif currentTime Get the current time Returns String according to the current time Definition at line 34 of file timeManagement cpp Referenced by sif BaseLogger print 4 1 3 3 Logger amp sif operator lt lt Logger amp _logger const std string msg Parameters _logger Reference on the Logger _msg Message to show Returns Reference on the Logger Definition at line 112 of file logger cpp References sif BaseLogger handle Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 14 Namespace Documentation Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen Chapter 5 Class Documentation 5 1 sif ACoordonate Class Reference ACoordonate p Abstract coordonate include lt aCoordonate hpp gt Inheritance diagram for sif ACoordonate sif ACoordonate A sif Coordonate lt Dim Type gt Coordonate 5 1 1 Detailed Description ACoordonate p Abstract coordonate See Als
72. brief descriptions sif sif sif sif sif sif sif sif sif sif sif sif sif sif sif sif sif sif sif ACoordonate ACoordonate p Abstract coordonate ActivePolicy ActivePolicy p Directly notify observer when state change occured AEnvironment AEnvironment p Abstract class for environment AObject AObject p APath APath p Abstract path AResource ARessource Abstract resource Assignment Assignment p General class for the assignment AssignmentFactory AssignmentFactory p Instanciate assignment algorithm AStar AStar p Computer algorithm that is widely used in pathfinding ATaskSpot TaskSpot p Physical object that can modify a task AtlasGrid lt Data gt AtlasGrid p Tree p data structure BaseLogger BaseLogger p Element of the reponsability chain of logging Constraint Constraint p General class for constraints ConstraintCompare ConstraintCompare p Functor to compare constraints on priority level ConstraintSystem ConstraintSystem p List of constraints Continue Continue p Criterion for ending the calculation sim
73. c Member Functions e virtual void setChange final Set change the meaning of this function depends on the policy Protected Member Functions virtual void _setChange 0 Implementation of setChange method 5 30 1 Detailed Description ObservablePolicy p Abstract class to determine observable behavior Define different observable behaviors The implementation is based on NVI idiom C implementation of the Design Pattern Template Method See Also sif Observer p sif ActivePolicy p sif PassivePolicy p Definition at line 42 of file observablePolicy hpp The documentation for this class was generated from the following files observablePolicy hpp e observablePolicy cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 31 sif Observer Class Reference 75 5 31 sif Observer Class Reference Observer p Get notification from observable include lt observer hpp gt Inheritance diagram for sif Observer Y A gt sif Environment lt Dim Type Data gt Es __ addObject TA Task update addObject update getValue addObject setModel _dump setSpatialData Public Member Functions e void notify Notify observable 5 31 1 Detailed Description Observer p Get notification from observable The Observer p part of the D
74. cours du projet Les pr c dents documents sont introduits tels quels avec simplement des para graphes suppl mentaires dont les titres sont en bleu dans la table des mati res afin de faire gagner du temps Les ajouts de ce rapport sont dans un premier temps un description de l impl mentation et du livrable un guide utilisateur et un manuel d installation ainsi que dans second temps une conclusion sur l ensemble du projet Chapitre 1 Analyse des besoins 1 1 Pr sentation du sujet L affectation est un probl me d optimisation combinatoire qui consiste dans sa version simple affecter un certain nombre de ressources disponibles un certain nombre de t ches dans l objectif d optimiser une fonction objectif Il peut s agir de minimiser des co ts ou maximiser les b n fices Ce probl me peut tre r solu en temps polynomial par la m thode hongroise galement appel e algorithme de Kuhn On peut tendre ce probl me par des objectifs multiples des contraintes changeantes en temps r el ou encore des contraintes probabilit s traduisant une observation ou une connais sance partielle de l environnement On peut alors parler plus largement de planification qui est un domaine ouvert de l intelligence artificielle o de nombreuses formulations font ap para tre des probl mes de la classe NP difficile ou NP complet sur lesquels de nombreuses quipes de recherches travaillent Dans le cadre de notre projet C nous avo
75. ctions e virtual std vector lt Data x gt getData 0 Return a vector of all objects of the tree 5 11 1 Detailed Description template lt class Data gt class sif AtlasGrid lt Data gt AtlasGrid p Tree p data structure AtlasGrid p is a simple data structure for partitionning See Also sif Tree p Definition at line 48 of file atlasGrid hpp 5 11 2 Member Function Documentation 5 11 2 1 template lt class Data gt virtual std vector lt Datax gt sif Tree lt Data gt getData pure virtual inherited Return a vector of all objects of the tree Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 32 Class Documentation Returns Vector of objets Implemented in sif Simplelndex lt Data gt p sif Simplelndex lt sif ATaskSpot gt p and sif Simplelndex lt sif AResource gt p The documentation for this class was generated from the following file e atlasGrid hpp 5 12 sif BaseLogger Class Reference BaseLogger p Element of the reponsability chain of logging include lt baseLogger hpp gt Public Member Functions e BaseLogger int _level std string _label std ostream amp _os std clog bool _quiet false Constructor e BaseLogger int _level std string label std string _logFile std ostream 8_os std clog bool _ quiet false Constructor BaseLogger Destructor Base
76. ctiver au moment de la compilation et si l on veut principalement travailler en dimension 4 sur des coordonn es enti res on peut compiler l ensemble du framework pour que ce soit le comportement par d faut et ainsi s affranchir de l criture explicite de tous les param tres des templates Algorithme d affectation L algorithme d affectation impl ment est la m thode de Khun Il s agit d une m thode en O n dans sa version impl ment e mais des impl mentations existent en O n notam ment en utilisant des graphes bipartis L algorithme va transformer les couples de ressources emplacements en une matrice de co ts et affecter un emplacement une seule ressource S il y a plus de resources que de t ches elles devront attendre le prochain passage afin d tre affect es Ce comportement pourrait tre am lior en utilisant l algorithme plusieurs fois sur des sous matrices de co ts mais la contrepartie est que s il y a un nombre de ressources trop important l application peut tre fortement ralenti puisque l algorithme a une complexit tout de m me lev e La version de base est donc un bon compris entre la fluidit et l efficacit S il y a plus d emplacements que de ressources les emplacements en trop sont ignor s Algorithme d indexation Le seul algorithme d indexation utilis est l identit l environnement fourni ses conte neurs comportants les diff rents objets et l algorithme va les s
77. ctor Documentation 5 49 2 1 template lt int Dim class Type gt sif Strategy lt Dim Type gt Strategy Assignment amp _assignment Constructor Parameters _assignment Assigment algorithm Definition at line 33 of file strategy cpp 5 49 3 Member Function Documentation 5 49 3 1 template lt int Dim class Type gt virtual int sif Strategy lt Dim Type gt evalSituation SpatialData amp _spatialData ConstraintSystem 4 _constraintSystem pure virtual Perform the evaluation of the situation Parameters _spatialData Data structures of the environments _constraint Constraints on tasks System Returns Value of the evaluation Implemented in sif SimpleStrategy lt Dim Type gt p 5 49 3 2 template lt int Dim class Type gt std map lt AResource ATaskSpot x gt sif Strategy lt Dim Type gt assign virtual Perform the assignment of resources Returns assigment information Definition at line 38 of file strategy cpp The documentation for this class was generated from the following files Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 110 Class Documentation e strategy hpp e strategy cpp 5 50 sif Task Class Reference Task p Abstract object include lt task hpp gt Inheritance diagram for sif Task sif Ooserver A Task update getValue Pub
78. d sif ThreadingModel lock unlock _ lock _unlock sif MultiThread _ lock _unlock Public Member Functions e virtual void lock final Lock the scope e virtual void unlock final Unlock the scope Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 70 Class Documentation Protected Member Functions e virtual void _lock Implemention of the lock method e virtual void _unlock Implemention of the unlock method Protected Attributes std mutex m Mutex to lock the scope 5 27 1 Detailed Description MultiThread p Multithread policy Provide mecanisms for a thread safe environnement in order to allow parallel computation See Also sif SingleThread p sif ThreadingModel p Definition at line 46 of file multiThread hpp The documentation for this class was generated from the following files e multiThread hpp multiThread cpp 5 28 sif Object lt Dim Type gt Class Template Reference Object p Abstract class for objects contained in the environment include lt object hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 28 sif Object lt Dim Type gt Class Template Reference 71 Inheritance diagram for sif Object lt Dim Type gt sif Object lt Dim Type gt Object getCoordonates
79. e Nous cr ons un simple environnement 2D dont les coordon es seront des int Le dernier template n est pas utilis pour l impl mentation l heure actuelle Create simple 2D environment Environment lt 2 int int gt env Listing 6 2 Environnement Nous ajoutons quelques ressources de mani re al atoire Chaque ressource a besoin d un algorithme de plus court chemin Nous choisissons l algorithme le plus simple qui ne tient pas compte des obstacles La valeur 100 correspond la vitesse de la ressource et nous lui donnons un statut non occup par d faut En dernier lieu nous ajoutons les ressources ainsi cr es l environne ment Add some resources randomly SimpleSP spa Coordonate lt 2 int gt coord std vector lt AResourcex gt res for unsigned i 0 i lt 5 i coord 0 dis gen coord 1 dis gen res push_back new Resource lt 2 int int gt coord 100 false spa Y env addObject res Listing 6 3 Cr ation de ressources Nous faisons de m me avec des emplacements de travail que nous g n rons al atoire ment Pour cela il nous faut cr er une tache et tant qu a faire une contrainte de seuil dessus qui sera ajout e dans le syst me de contraintes La contrainte est initialis e avec une priorit 0 utilisant la t che t qui doit tre sup rieure 500 ona 0 taille humaine ee e11N5SA l chelle du mond
80. e A e ROUEN ae CHAPITRE 6 GUIDE UTILISATEUR A Create some tasks and the constraintSystem 2 Task t StepConstraint sc 0 t ConstraintComp GREATER 500 ConstraintSystem constraintSystem 5 constraintSystem push amp sc Add some taskSpots 8 std vector lt ATaskSpotx gt taskSpots for unsigned i 0 i lt 5 i 11 coord 0 dis gen coord 1 dis gen taskSpots push_back new TaskSpot lt 2 int gt coord std ref t int amp i double _time return i 0 001x_time 14 env addObject taskSpots Listing 6 4 Cr ation des t ches contraintes et emplacements Nous cr ons alors notre IA Dans un premier temps nous choisisson un algorithme d af fectation pour la seule strat gie que nous donnerons l IA Entre temps il faut cr er un mod le qui sert en temps normal a agencer les strat gies Assignment 2 Kuhn assignment Strategies creation 5 SimpleStrategy lt 2 int gt sl assignment Model creation 8 ManualModel lt 2 int gt model s1 IA Creation 11 IA lt 2 int gt ia model constraintSystem Listing 6 5 D claration de l IA La derni re tape consiste d finir les param tres de la simulation crit res d arr ts et tapes 1 Stop criterion TimeContinue cont 5 Controller addContinue cont 4 Step Environment unsigned envDelay 500 ms 7 auto envController bind amp Environme
81. e Observable p part of the Design Pattern Observer p The notifying policy determines the behavior of the observable concerning the way of notifying the observer See Also sif Observer p sif ObservablePolicy p sif ActivePolicy p sif PassivePolicy p Definition at line 45 of file observable hpp 5 29 2 Member Function Documentation 5 29 2 1 template lt class NotifyPolicy gt void sif Observable lt NotifyPolicy gt addObserver Observer amp _obs Add observer Parameters _obs New observer Definition at line 35 of file observable cpp 5 29 2 2 template lt class NotifyPolicy gt void sif Observable lt NotifyPolicy gt removeObserver Observer amp _obs Remove an observer Parameters _obs Observer p to remove Definition at line 41 of file observable cpp The documentation for this class was generated from the following files Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 74 Class Documentation observable hpp e observable cpp 5 30 sif ObservablePolicy Class Reference ObservablePolicy p Abstract class to determine observable behavior include lt observablePolicy hpp gt Inheritance diagram for sif ObservablePolicy sif OoservablePolicy setChange _setChange sif PassivePolicy _setChange _setChange Publi
82. e Responsabi lit Chaque maillon de la cha ne sera un logger avec un niveau de log diff rent DEBUG INFO ERROR et le message transite de maillon en maillon jusqu ce que le bon niveau soit atteint On pourra utiliser une s rialisation dans un fichier texte ou non Il existera une instance statique du logger pour permettre une utilisation globale On n utilisera pas de DP Singleton d une part parce qu il est tr s dur rendre thread safe et d autre part parce pour une raison ou une autre l utilisateur final trouvera peut tre une utilit avoir plusieurs loggers 2 4 3 Le mod le multi thread Nous n impl menterons pas le mod le multithread pour des raisons de temps mais nous le rendrons facilement int grable notamment avec la fonction du contr leur principal En effet les actions du contr leur sont normalement toutes ind pendantes et peuvent donc tre lanc es en parall le Pour rendre l application thread safe un niveau de granularit plus fin on utilisera le param trage par politique qui permettra de d coupler totalement le mod le multi thread du reste et d activer d sactiver le support multi thread la vol e 244 Les observateurs observables Le design pattern Observateur occupe une place importante notamment lors de la r cu p ration d information sur l environnement par 1 IA mais galement par la notification de mise jour de plus petites entit s au sein de l environnement les o
83. e fonction de co t e D finir un algorithme d affectation Une strat gie peut tre vu comme un algorithme dont on va pouvoir changer les briques voqu es ci dessus Cela fait appara tre plusieurs axes de travail qui seront autant de modules du projet e LIA et l environnement e Un module d algorithmes d indexation spatiale et de partitionnement spatial e Un module d algorithmes de plus court chemin composant principal d une fonction de co t e Un mod le d algorithmes d affectation On pourrait imaginer un module d di aux m thodes d apprentissage et au mod le d observation mais tant donn le temps consacrer au projet on choisira un mod le simple d terministe et omniscient c est dire que l on aura pas d apprentissage que l on consi d rera avoir toujours prit la bonne d cision et l ensemble de l environnement est connu chaque instant par 1 IA 1 2 1 Module d IA et d environnement Il s agit du module de plus haut niveau qui doit donner une API simple permettant de d crire un environnement spatial et ses objets unit s t ches obstacles les contraintes li es aux t ches et enfin de quoi concevoir des strat gies donn es VIA qu on pourra intervertir pour par exemple constater de leurs diff rents effets Il devrait galement reposer sur une technique d apprentissage par exemple Algo rithmes d apprentissage par renforcement et un mod le de prise de d cision par ex
84. e in seconds Parameters _sec Time in seconds Definition at line 37 of file timeContinue cpp 5 53 3 Member Function Documentation 5 53 3 1 virtual bool sif TimeContinue check protected virtual Implementation of the test Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 54 sif Tree lt Data gt Class Template Reference 117 Returns boolean Implements sif Continue p 5 53 3 2 bool sif Continue operator virtual inherited Check the criterion Returns boolean Definition at line 34 of file continue cpp References sif Continue _check The documentation for this class was generated from the following files e timeContinue hpp timeContinue cpp 5 54 sif Tree lt Data gt Class Template Reference Tree p General API for tree include lt tree hpp gt Inheritance diagram for sif Tree lt Data gt sif Tree lt Data gt getData lt sif ATaskSpot gt z lt gt A F 211 Sipleraders Date sif Tree lt sif AResource gt data SimpleIndex sif AtlasGrid lt Data gt sif QuadTree lt Data gt sif RTree lt Data gt sift Tree lt sif ATaskSpot gt getData getnets 0 lt sif AlaskSpot gt lt um sif SimpleIndex lt sif sif SinpleIndex lt sif ATaskSpot gt AResource gt
85. e lt Dim Type gt Square Coordonate lt Dim Type gt _coord std vector lt std pair lt Type Type gt gt _boundaries Constructor Parameters _ coord Coordonates _boundaries Boundaries in a Dim space Definition at line 33 of file square cpp 5 45 3 Member Function Documentation 5 45 3 1 template lt int Dim class Type gt bool sif Square lt Dim Type gt colliding Coordonate lt Dim Type gt coord virtual Colliding Returns Boolean to check collision Definition at line 39 of file square cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 100 Class Documentation 5 45 3 2 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files square hpp square cpp 5 46 sif StaticObject lt Dim Type gt Class Template Reference StaticObject p Objects that cannot evolve in time include lt staticObject hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 46 sif StaticObject lt Dim Type gt
86. e model cpp 5 25 3 5 template lt int Dim class Type gt void sif Model lt Dim Type gt setCurrentStrategy Strategy lt Dim Type gt amp strategy inherited Set current strategy only if the strategy is in the model Parameters _ strategy Strategy p to set as current strategy Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 66 Class Documentation Definition at line 55 of file model cpp The documentation for this class was generated from the following files manualModel hpp manualModel cpp 5 26 sif Model lt Dim Type gt Class Template Reference Model p Defines relationship between strategies and how the observation is done include lt model hpp gt Inheritance diagram for sif Model lt Dim Type gt sif Model lt Dim Type gt strategies COLTO Mp omiscleceys Model update addStrategy setCurrentStrategy setCurrentStrategy evalSituation learn decide assign sif ManualModel lt Dim Type gt ManualModel update evalSituation learn decide assign Public Member Functions Model Strategy lt Dim Type gt amp _currentStrategy Constructor e virtual void update double _time SpatialData amp _spatialData ConstraintSystem amp _constraintSystem 0 Update Model p Generated on Thu May 23 2013 21 46 28 for S
87. eek we Se ok Ss Se Se a Ee io de 36 So TaskSpot ic diatiad tenia Ghee desire ae eRe oe og 37 OA CEP AREA be ROS AAA A RR e 37 34 1 simplelndek A NN 37 95 Mesara We st RAR 37 O IN on A ae 37 3 5 2 manualModel 6a 444 ia a rares ere et 37 4 Impl mentation 38 41 Etatd livrable ses i com amp cae A Lada Ni a ake ha ede Et Ra D eat al 38 A A GG xe aso EII 38 4 1 2 Gestionnaire de version 38 4 1 3 Systeme de construction 44 Gea Ge a a a 38 414 Documentation 39 4 2 D tail de l impl mentation ice pers presa ue rene EGR HS 39 4 2 1 Les principales fonctionnalit s 44 44 ess eK ee A 39 4 2 2 Les d fauts de l impl mentation 5 Application Dal resentida der que d cret Aus 2 5 24 CAP Mires a ETA A A a 6 Guide utilisateur 6 1 Framework A ne De aid ee nid el alen de nine nt CAT Compilation a athe ee oh Seat De de gh Sea te ada al ee ads 6 1 2 Lancer les tests a Paes Oa OS 6 1 3 Utilisation dans un projets aiw wale wie eee eke Be sae Bese GLA AL COM 2302 8 e Vs oies tse tee es 62 Application Her Se AAA AAA oS ty Aah ok Aa 621 Compilaton ad tr se eek tae teeter ake een ei he Se tie Sse eke Sete SO 6 2 2 Lancement amp utilisation 2 44 66 Agee eo aw AAA DE GADEA Conclusion Documentation compl te Introduction Le pr sent document est une synth se de tous les documents de travail produit au
88. efinition at line 337 of file kuhn cpp Referenced by operator 5 24 2 6 bool sif Kuhn zeroOnAllRC typeMat amp m protected Checks if there is one zero surrounded on each line amp column Parameters Cost matrix ma Returns true if there is a zero on each line amp column false otherwise Definition at line 350 of file kuhn cpp Referenced by operator 5 24 2 7 bool sif Kuhn ZSurrondSameCol typeMat amp m inte protected Looks if there is already a zero on the row c Parameters mat Cost matrix c Index of the row to consider Returns true if there is already a zero false otherwise Definition at line 324 of file kuhn cpp Referenced by operator 5 24 2 8 void sif Kuhn markLinesinit typeMat amp m std vector lt bool gt amp mdL protected Marked all lines containing no zero surrounded Parameters mat Cost matrix mdl Vector marked lines Definition at line 372 of file kuhn cpp Referenced by operator Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 62 Class Documentation 5 24 2 9 bool sif Kuhn markLines typeMat amp m std vector lt bool gt amp mdL std vector lt bool gt amp mdR protected Marks all rows containing a zero crossed on a marked line Parameters mat Cost matrix mdL Vector marked l
89. ement parce le chemin calcul peut d pendre de l ordre des mouvements peut tre qu un autre ordre de parcours poserait probl me cause d obstacles Chapitre 3 Plan de tests 3 1 Assignment 3 1 1 Kuhn On va tester la fonction operator deux cas sont tester Cas simple o l on a une ressource pour une t che voir deux ressources et deux t ches C est dire un cas o l on peut conna tre facilement l affectation que l on aura Cas o l on a pas le m me nombre de ressources que de t ches 2 ressources pour 3 t ches 3 ressources pour 2 t ches 3 2 Constraint 3 2 1 Constraint On va tester la fonction update des diff rentes contraintes existantes Selon les para m tres de la t che on v rifiera si on obtient les bons r sultats 3 3 Environnment 3 3 1 Environnement On doit tester la fonction update double _time cette fonction met jour l environne ment en fonction d un param tre de temps e Cas d erreur Si on passe un param tre n gatif une erreur doit appara tre En effet cela reviendrait un retour dans le pass e Cas aux limites Si le param tre pass est nul on doit obtenir le m me environnement qu avant la mise jour e Cas nominal Enfin si on passe un param tre positif l environnement peut tre diff rent en effet celui ci change avec le temps On va galement tester les diff rentes fonctions add0bject Pour cela on va ajou
90. emple Processus de d cision markovien partiellement observable mais comme pr cis plus haut nous n aurons jamais le temps d envisager divers mod les de la sorte 1 2 2 Module d indexation spatiale et de partitionnement spatial Ce module devra proposer deux choses e Des structures de donn es permettant l indexation et le partitionnement spatial e Des algorithmes permettant de r aliser l indexation et le partitionnement Il s agira de proposer une API la plus unifi e possible pour permettre de changer de structures de donn es ind pendamment de l algorithme afin de pouvoir comparer leurs performances par exemple On peut citer quelques structures de donn es qui pourront tre tudi es les Arbre kd R Tree Hilbert R Tree BSP QuadTree ong A taille humaine l chelle du monde ROUEN CHAPITRE 1 ANALYSE DES BESOINS L objectif de ce module est d avoir des algorithmes qui vont permettre VIA de transfor mer un environnement brut savoir un plan avec une liste d objets dessus en une ou plusieurs structures plus intelligente pour r duire la complexit de certaines heuristiques de plus court chemin ou d affectation 1 2 3 Module d algorithmes de plus court chemin tant donn que nous travaillons avec une dimension spatiale les fonctions de co ts d affectation d une unit une t che vont tre majoritairement bas es sur la distance par courir De plus il fa
91. ent time e Logger amp operator lt lt Logger amp _logger const std string _msg 41 1 Detailed Description Logger Logger class The Logger class is based on a Chain of Responsability pattern using logging level It defines 5 levels of logging that can be manipulated separatly through its interface See Also sif BaseLogger p 4 1 2 Typedef Documentation 4 1 2 1 template lt class Data gt using sif EvalTable typedef std map lt Datax int gt Eval Different types of eval function EvalTable A map of cost indexed by Data pointers Definition at line 51 of file eval hpp 4 1 2 2 template lt int Dim gt using sif Movement typedef std pair lt Direction lt Dim gt unsigned gt Movement Define a movement for a DynamicObject p See Also sif Direction p Definition at line 45 of file movement hpp 4 1 2 3 template lt int Dim class Type gt using sif ShortestPath typedef std function lt Path lt Dim gt const Coordonate lt Dim Type gt amp _from const Coordonate lt Dim Type gt amp _to gt Shortest Path p Parameters _ from Origine _to Destination Returns A Path p between _from and _ to Definition at line 49 of file shortestPath hpp 4 1 3 Function Documentation Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 4 1 sif Namespace Reference 13 4 1 3 1 template lt class Data gt EvalTa
92. es e simplelndex hpp e simplelndex cpp 5 40 sif SimpleSP Class Reference SimplePath include lt simpleSP hpp gt Public Member Functions SimpleSP default Default constructor e template lt int Dim class Type gt Path lt Dim gt operator const Coordonate lt Dim Type gt amp _from const Coordonate lt Dim Type gt amp _to Start the shortest path computation 5 40 1 Detailed Description SimplePath Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 90 Class Documentation See Also sif ShortestPath p Definition at line 40 of file simpleSP hpp 5 40 2 Member Function Documentation 5 40 2 1 template lt int Dim class Type gt Path lt Dim gt sif SimpleSP operator const Coordonate lt Dim Type gt from const Coordonate lt Dim Type gt amp to Start the shortest path computation Parameters _from Origin _to Goal Returns A path Definition at line 40 of file simpleSP cpp The documentation for this class was generated from the following files e simpleSP hpp e simpleSP cpp 5 41 sif SimpleStrategy lt Dim Type gt Class Template Reference SimpleStrategy p Defines a simple strategy include lt simpleStrategy hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 41 sif SimpleStrategy lt Dim Type gt Class Template Reference
93. esign Pattern Observer p An observer can be notified directly by its observers or have to check them depending on the policy of the observables See Also sif Observable p sif ObservablePolicy p Definition at line 43 of file observer hpp The documentation for this class was generated from the following files observer hpp observer cpp 5 32 sif 0bstacle lt Dim Type gt Class Template Reference Obstacle p Obstacle p in the environment include lt obstacle hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 76 Class Documentation Inheritance diagram for sif Obstacle lt Dim Type gt sif AObject sif Object lt Dim Type gt Object getCoordonates sif StaticObject lt Dim Type gt StaticOb ject sif Obstacle lt Dim Type gt Obstacle A sif Square lt Dim Type gt Square colliding Public Member Functions Obstacle Coordonate lt Dim Type gt _coord Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 32 sif Obstacle lt Dim Type gt Class Template Reference 77 Constructor Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object Protected Attributes e Coordonate lt Dim Type gt coord Coordonates of the object 5 32 1 Detailed Desc
94. ferences value Referenced by sif StepConstraint operator The documentation for this class was generated from the following files e task hpp e task cpp 5 51 sif TaskSpot lt Dim Type gt Class Template Reference TaskSpot p Physical object that can modify a task Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 112 Class Documentation include lt taskSpot hpp gt Inheritance diagram for sif TaskSpot lt Dim Type gt sif Object lt Dim Type gt coord Object getCoordonates A si f ATaskSpot DynamicObject lt Dim Type gt ataskspot0 update getTask dump _dump A sif TaskSpot lt Dim Type gt TaskSpot update ct Fh DynamicOb ject update _dump Public Member Functions TaskSpot Coordonate lt Dim Type gt _coord Task amp _t std function lt int int 8 double gt _f Constructor e virtual void update double _time Update Ressource const Task amp getTask const Return Task p Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 51 sif TaskSpot lt Dim Type gt Class Template Reference 113 e void dump Debug function to show all informations about the class Coordonate lt Dim Type gt getCoordonates const Get coordonates of the
95. ght Set boundaries for a specific dimension e std pair lt Type Type gt getBoundaries unsigned _pos const Get boundaries for a specific dimension bool inSpace Coordonate lt Dim Type gt _coord const Check if a point is in the space 5 43 1 Detailed Description template lt int Dim class Type gt class sif Space lt Dim Type gt Space p Defines the space It defines the space by its coordonates system and its boundaries See Also sif Coordonate p sif Environment p Definition at line 48 of file space hpp 5 43 2 Member Function Documentation 5 43 2 1 template lt int Dim class Type gt void sif Space lt Dim Type gt setBoundaries unsigned _pos Type _left Type right Set boundaries for a specific dimension Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 44 sif SpatialData Class Reference 95 Parameters _pos Dimension index _left Left value _right Right value Definition at line 39 of file space cpp 5 43 2 2 template lt int Dim class Type gt std pair lt Type Type gt sif Space lt Dim Type gt getBoundaries unsigned _pos const Get boundaries for a specific dimension Parameters Pos Returns left and right values in a std pair Definition at line 46 of file space cpp 5 43 2 3 template lt int Dim class Type gt bool sif Space lt Dim Type g
96. gt data Jo Autres representations Listing 2 3 D finition de la seconde politique On d finit la classe principale de graphe et on la param trise l instanciation selon les besoins template lt class Rep AdjacenceMatrix class ThreadModel MonoThread gt class Graph public Rep public ThreadModel public bool IsConnected const ThreadModel Lock return Rep IsConnected using GraphInciMT Graph lt IncidenceMatrix MultiThread gt using GraphAdjMT Graph lt AdjacenceMatrix MultiThread gt Exemples Graph a Adjacence MonoThread GraphInciMT b Incidence MultiThread GraphAdjMT c Adjacence MultiThread Listing 2 4 Illustration de la param trisation La classe Graph fait appelle l aveugle sa politique de thread ainsi qu sa politique de repr sentation La bonne criture d une politique est guid e par l API de la classe abstraite en haut de la hi rarchie mais aucune v rification de type n est effectu e par la classe Graph Ainsi un utilisateur pourrait crire sa propre politique qui ne serait pas bas e sur une des classes abstraites La partie using n est pas du simple sucre synthaxique puisqu il contribue galement la maintenabilit de l application L utilisateur final utilise des types en dur sans template ce qui permet si le besoin s en fait sentir de ne changer le template qu un unique endroit
97. he following files e threadingModel hpp e threadingModel cpp 5 53 sif TimeContinue Class Reference TimeContinue p Criterion for ending the calculation simulation after a user defined time include lt timeContinue hpp gt Inheritance diagram for sif TimeContinue sif Continue operator check sif TimeContinue i Start sec z star thie TimeContinue _check Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 116 Class Documentation Public Member Functions e TimeContinue double sec Constructor with time in seconds e virtual bool operator Check the criterion Protected Member Functions e virtual bool _check Implementation of the test Protected Attributes bool start Boolean to know if the chrono is started double sec Number of seconds to reach e std chrono steady_clock time_point startTime Time when the chrono has been started 5 53 1 Detailed Description TimeContinue p Criterion for ending the calculation simulation after a user defined time Criterion for ending the calculation simulation after a user defined time See Also sif Continue p sif StepsContinue p sif Controller p 2 Definition at line 46 of file timeContinue hpp 5 53 2 Constructor amp Destructor Documentation 5 53 2 1 sif TimeContinue TimeContinue double _sec Constructor with tim
98. if Environment lt Dim Type Data gt Environment taskSpots resources spatialData update sif Observer addob ject addob ject setSpatiall addObjeci addob ject getTaskSpots getResources dump _ dump notify sif Environment lt Dim Type Data gt space obstacles addObject addObject addObject _dump Public Member Functions e void addObject std vector lt AResource x gt amp _ resources Add resources to the environment void addObject Obstacle lt Dim Type gt amp _obstacle Add obstacle to the environment e void addObject std vector lt ATaskSpot gt amp _taskSpots Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 22 sif Environment lt Dim Type Data gt Class Template Reference 53 Add taskSpots to the environment void update double time Update environment by updating all its components void addObject AResource amp _resource Add resource to the environment void addObject ATaskSpot amp _taskSpot Add taskSpot to the environment e void setSpatialData SpatialData amp _spatialData setSpatialData e std vector lt ATaskSpot gt amp getTaskSpots Get TaskSpots e std vector lt AResource gt amp getResources Get Resources e void dump Debug function to show all informations about the class e void notify No
99. if ShortestPathFactory Class Reference ShortestPathFactory p include lt shortestPathFactory hpp gt Static Public Member Functions e template lt int Dim class Type gt static AStar 88 AStarlnstance TaskSpot lt Dim Type gt amp _taskSpot AStar p instanciation tranform a TaskSpot p into coordonates 5 38 1 Detailed Description ShortestPathFactory p See Also sif ShortestPath p Definition at line 45 of file shortestPathFactory hpp 5 38 2 Member Function Documentation 5 38 2 1 template lt int Dim class Type gt static AStar amp amp sif ShortestPathFactory AStarInstance TaskSpot lt Dim Type gt taskSpot static AStar p instanciation tranform a TaskSpot p into coordonates Returns AStar p instance right value The documentation for this class was generated from the following file e shortestPathFactory hpp 5 39 sif Simplelndex lt Data gt Class Template Reference Simplexe Stock information in vector tinclude lt simplelndex hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 88 Class Documentation Inheritance diagram for sif Simplelndex lt Data gt getData A sif SimpleIndex lt Data gt SimpleIndex getData if ATaskSpot gt lt sif AResource gt if SimpleIndex lt sif sif Simplelndex lt sif ATaskSpot gt AResource gt
100. ime Update dynamic object Resource Destructor e bool isBusy const Check if the resource is busy it cannot be assigned e void setBusy bool _ status Set the status of the resource e void setSpatialData SpatialData amp _spatialData Set spatialData void setAssignment ATaskSpot amp _assignment Set a new assignement if it is possible e void dump Debug function to show all informations about the class Coordonate lt Dim Type gt getCoordonates const Get coordonates of the object Protected Member Functions e void move double _ time Move the resource along its path e void dump Implementation of dump function bool colliding Direction lt Dim gt dir Check the collision according to the direction of the movement Protected Attributes e ShortestPath lt Dim Type gt spa Shortest path algorithm e Path lt Dim gt x path Path p to follow to reach the assigned taskSpot bool busy Status of the resource double velocity Velocity of the ressource SpatialData spatialData SpatialData p e ATaskSpot assignment Assignment p e Coordonate lt Dim Type gt coord Coordonates of the object Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 36 sif Resource lt Dim Type Data gt Class Template Reference 83 5 36 1 Detailed Description template lt int Dim class Type class Data gt class sif
101. ind teta ee Sif StEPSCONTNUE is sk ee ut cn a den a ete ae et an do ne Pe ee he a del de Sif TIME CONTINUE 4 sausik ah A er Ye Set DR ak te Reed ak wh nr Sif COntroller a DEN one cies ae Gey Rha tee cee Be at ae OE AS Sa So ing JA Mn Pt aos iz sif Direction lt DIM S oa E 245 00 OW ASE Se be ee A ae he eee ben D AEA ie std list lt T gt si Pathe DIN gt 3 ids eee Ate Bak 5 ra A a en es NS la AN sif Model lt Dim Type rra dp a e A ee ee ed 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 Hierarchical Index sif ManualModel lt Dim Type gt 2 sif Observable lt NotifyPolicy gt lt 2 222528 08 aide ob a ee a a Med ee eo eee de 2 sif ObservablePolicy lt lt cs yos ob eee dee a eae ae Ree ae ee a Red ue ee 2 SI ACUVORO CY Larra a he a A A Aa ke A bee 2 SifePasSIVEPOICY res Sh eee ooh Sarde ice ar fous dob a i a A en 2 Sif OBSEVE uT ardo Ye RES AT Nm ar Las oe a re woh au An soe wus Gi gh ae 2 sif Environment lt Dim Type Data gt 22 SAS Dim Types ares kk ee BA AR A A A Barge eds 2 Sif ask 4c Beh NS 2 std priority_queue lt T gt sif ConstraintSystem 2 sifs ShortestPathFactoOryis 2 02 2 4 aa E gages e mue fa pis Lene oR eae alerting Mele 2 sifsSimpleSP 5 4ee3 het en e oe ee ae ee a Baie RE eS ee Ee
102. ines mdR Vector marked rows Returns true if there have been changes false otherwise Definition at line 432 of file kuhn cpp Referenced by operator 5 24 2 10 bool sif Kuhn markRows typeMat amp m std vector lt bool gt mdL std vector lt bool gt amp mdR protected Marks all lines containing a zero surrounded on a marked column Parameters mat Cost matrix mdL Vector marked lines mdR Vector marked rows Returns true if there have been changes false otherwise Definition at line 400 of file kuhn cpp Referenced by operator 5 24 2 11 void sif Kuhn subtractionPartTable typeMat amp m std vector lt bool gt amp mdL std vector lt bool gt amp maR protected Subtracts the minimum in the partial table Parameters mat Cost matrix mdL Vector marked lines mdR Vector marked rows Definition at line 464 of file kuhn cpp Referenced by operator The documentation for this class was generated from the following files e kuhn hpp e kuhn cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 25 sif ManualModel lt Dim Type gt Class Template Reference 63 5 25 sif ManualModel lt Dim Type gt Class Template Reference ManualModel p Model p without any decision or learning process include lt manualModel hpp gt Inheritance diagram for sif Manua
103. ion at line 34 of file constraint cpp 5 13 3 Member Function Documentation 5 13 3 1 void sif Constraint setPriority unsigned _priority Change the priority Parameters _priority Constraint p priority Definition at line 39 of file constraint cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 38 Class Documentation References priority 5 13 3 2 unsigned sif Constraint getPriority const Get the priority Returns Constraint p priority Definition at line 44 of file constraint cpp References priority Referenced by operator lt 5 13 3 3 bool sif Constraint operator lt Constraint amp const Comparaison operator based on priority Parameters _ const Constraint p to compare Returns boolean Definition at line 49 of file constraint cpp References getPriority and priority 5 13 3 4 virtual bool sif Constraint operator pure virtual Check the constraint satisfaction and launch callback function if needed Returns boolean Implemented in sif StepConstraint p and sif CustomConstraint p 5 13 3 5 const Task sif Constraint getTask const Get task Returns Associated task Definition at line 59 of file constraint cpp References t Referenced by sif SimpleStrategy lt Dim Type gt SimpleStrategy The documentation for this class was genera
104. ion for this class was generated from the following files e simpleStrategy hpp e simpleStrategy cpp 5 42 sif SingleThread Class Reference SingleThread p Singlethread policy include lt singleThread hpp gt Inheritance diagram for sif SingleThread sif ThreadingModel lock O _lock _unlock sif SingleThread _lock pa Public Member Functions e virtual void lock final Lock the scope e virtual void unlock final Unlock the scope Protected Member Functions e virtual void _lock 0 Implemention of the lock method e virtual void _unlock 0 Implemention of the unlock method Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 94 Class Documentation 5 42 1 Detailed Description SingleThread p Singlethread policy Dummy policy in case or the user does not want to use SIF in a multithread environnement This permits to avoid overhead due to parallel communications See Also sif MultiThread p sif ThreadingModel p Definition at line 44 of file singleThread hpp The documentation for this class was generated from the following file e singleThread hpp 5 43 sif Space lt Dim Type gt Class Template Reference Space p Defines the space include lt space hpp gt Public Member Functions Space Constructor void setBoundaries unsigned _pos Type _left Type _ ri
105. ions sif CustomConstraint e CustomConstraint Task amp _t unsigned _priority std function lt bool gt _cond std function lt void gt _ reachCondition std function lt void gt _breakCondition Default constructor e virtual bool operator Check the constraint satisfaction and launch callback function if needed Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 46 Class Documentation e void setPriority unsigned _ priority Change the priority unsigned getPriority const Get the priority bool operator lt Constraint amp _const Comparaison operator based on priority const Task amp getTask const Get task Protected Attributes e std function lt bool gt cond Constraint p satisfaction bool lastValue Value at the last check e std function lt void gt breakCondition Called when the constraint is not satisfied e std function lt void gt reachCondition Called when the constraint is satisfied Task 8 t Task p concerned by the constraint e unsigned priority Priority of the constraint 5 19 1 Detailed Description CustomConstraint p Special constraint CustomConstraint p is a special constraint defined by the user See Also sif Constraint p Definition at line 46 of file customConstraint hpp 5 19 2 Constructor amp Destructor Documentation 5 19 2 1 sif Cust
106. itance diagram for sif AEnvironment sif AEnvironment taskSpots resources spatialData update addOob ject addob ject setSpatialData addob ject addob ject getTaskSpots getResources dump _dump sif Environment lt Dim Type Data gt space obstacles addob ject addob ject addob ject _dump Public Member Functions void update double time Update environment by updating all its components void addObject AResource amp _ resource Add resource to the environment e void addObject std vector lt AResource x gt amp _ resources Add resources to the environment void setSpatialData SpatialData amp _spatialData setSpatialData void addObject ATaskSpot amp _taskSpot Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 18 Class Documentation Add taskSpot to the environment e void addObject std vector lt ATaskSpot gt amp _taskSpots Add taskSpots to the environment e std vector lt ATaskSpot gt amp getTaskSpots Get TaskSpots e std vector lt AResource gt amp getResources Get Resources void dump Debug function to show all informations about the class Protected Member Functions e virtual void _dump 0 Implementation for dump function Protected Attributes e std vector lt ATaskSpot gt taskSpots TaskSpots of the environment std vector lt ARes
107. l std map lt Ressource TaskSpot gt operator std map lt Ressources int gt ressources std wvector lt TaskSpot gt _taskSpot virtual Data adaptData std vector Ressources gt ressources std vector lt TaskSpot gt taskSpot class Kuhn public Assignment lt Data gt class NearestNeighboor public Assignment lt Data gt Flus courtichemiri class ShortestPathFactory lt k lt instanciate gt gt class ShortestPath I LTS ZN ZA class SMAX public ShortestPath class FringeSearch public ShortestPath class Johnson public ShortestPath class AStar public ShortestPath slass Floydwarshall public ShortestPath class AnyAnglePath public ShortestPath class DStar public ShortestPath class Johnson public ShortestPath class IDAStar public ShortestPath class Djikstra public ShortestPath FIGURE 2 5 Diagramme de classes des algorithmes Pour faciliter l instanciation des algorithmes de plus court chemin et d affectation un Design Pattern Factory est pr vu Il instanciera un objet d rivant de la classe abstraite As sigment ou ShortestPath qui repr sentent l interface de manipulation des algorithmes on a E taille humaine ee r l chelle du monde ARA ROUEN SE CHAPITRE 2 MOD LISATION 2 5 2 Arbres class TreeFactory 1 Asinstanciate class PATTree public Tree LA clas
108. lModel lt Dim Type gt sif Model lt Dim Type gt strategies currentStrategy Model update addStrategy setCurrentStrategy setCurrentStrategy eval Situation learn decide assign sif ManualModel lt Dim Type gt ManualModel update evalSituation learn decide assign Public Member Functions ManualModel Strategy lt Dim Type gt amp _currentStrategy Constructor virtual void update double _time SpatialData amp _spatialData ConstraintSystem amp _constraintSystem Update Model p e void addStrategy Strategy lt Dim Type gt amp _strategy Add a strategy to the model e void setCurrentStrategy unsigned _pos Set current strategy e void setCurrentStrategy Strategy lt Dim Type gt amp _strategy Set current strategy only if the strategy is in the model Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 64 Class Documentation Protected Member Functions e virtual int evalSituation SpatialData amp _spatialData ConstraintSystem amp _constraintSystem Evaluation of the situation define how the situation has to be evaluated according to the current strategy e virtual void learn Learning process e virtual void decide Decision process mainly dedicated to change the strategy according to evaluation e virtual std map lt AResource x ATaskSpot g
109. la mod lisation tienne globalement la route et pose les bases d un logiciel correct mal gr une impl mentation partielle Cependant chaque module pourrait largement tre raffin que ce soit la gestion de l en vironnement de l TA des contraintes etc L objectif tant plut t d amorcer le projet et de fournir un prototype fonctionnel de ce que pourrait tre un tel framework pour le conti nuer par la suite en dehors du cours C 52 Spatial Intelligence Framework Generated by Doxygen 1 8 3 1 Thu May 23 2013 21 46 29 Contents Chapter 1 Namespace Index 1 1 Namespace List Here is a list of all documented namespaces with brief descriptions sif Logger Logger class 5 sara or Seiya Bi dea ae des awa ea Boe OS Namespace Index Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen Chapter 2 Hierarchical Index 2 1 Class Hierarchy This inheritance list is sorted roughly but not completely alphabetically Sif ACogrdonate 2 2 3 5 8 doo MR Oh rd Heth amp Abe an deg ion a EE See Ex sif Coordonate lt DIM Ty Pe gt so an e A Men cd Be hat gue WR A A RS gt a de da sifAEnvironment ici ic bk doe ea a ea ee ba a a ae ee ee sif Environment lt Dim Type Data gt SIFFAODI ET ema te ale nai ds A de n ne a at e yard She 2 SIE ARGSOUICE ct hi A A rh A a NOTA Een pe ds a ee CNE sif Resource lt Dim Type Data gt a MECA z s ue ins
110. leur lA Autre action L d finie par l utilisateur Fin Boucle gt end FIGURE 2 11 S quence de simulation 2 CHAPITRE 2 MODELISATION l chelle du monde taille humaine og 0 IEDR Ressource SpatialData Assignment lt Data gt lobalRessaurces G evali 1 1 1 1 1 I 1 l 1 l l E i v p a a rl l coy a 5 o E qee A col er aes See E e ie 2 i pe 1 D 5 oO 9 E 1 T H S i 5 8a 1 Lan 1 9 E 1 3 gt 1 i S u i o 1 6 o 1 o i a E 1 2 I E 1 Le c 1 g i S i g g a 1 1 a 1 wo 1 1 1 i 9 in oy A l A A 2 i fy A 1 A A 3 A ted i 1 i o 1 Fa 1 Pa 1 fa 1 rot 1 1 1 1 Poy i E i Loja Load Load NS xls aly als al 5 vl yw val yj y Lyi a Baas td a o a 11 ps En E amp O a detTaskSpot FIGURE 2 12 S quence du contr leur de l IA cycle observation apprentissage prise de d cision affectation 2 CHAPITRE 2 MODELISATION l chelle du monde taille humaine og 0 IEDR Qeyepdn SUOISI OD Sap 101199190 juawasejdap np najeo lt _ NULO UILUSU9 1S ulways unos snid np jaiped no jajdwos INn2 E3 fajepdn FIGURE 2 13 S quence de mise jour de l environnement
111. lic Member Functions Task int _value 0 Constructor void update double _ time std function lt int int amp double _time gt _f Update Task p e int getValue const Get the current value e void notify Notify observable Protected Attributes int value Value of the task 5 50 1 Detailed Description Task p Abstract object Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 51 sif TaskSpot lt Dim Type gt Class Template Reference 111 A Task p is materialized by a counter See Also sif Task p sif PeriodicTaskSpot sif Observable p Definition at line 46 of file task hpp 5 50 2 Constructor Destructor Documentation 5 50 2 1 sif Task Task int value 0 Constructor Parameters _value Defaut value Definition at line 35 of file task cpp 5 50 3 Member Function Documentation 5 50 3 1 void sif Task update double _time std function lt int int amp double time gt f Update Task p Parameters _time Ellapsed time since the last update f The result will remplace value and the int parameter will be the initial value Definition at line 38 of file task cpp References value Referenced by sif ATaskSpot update 5 50 3 2 int sif Task getValue const Get the current value Returns value Definition at line 44 of file task cpp Re
112. map lt AResource x ATaskSpot x gt operator std map lt std pair lt AResource x ATaskSpot x gt int gt 0 Start the assignment problem resolution 5 7 1 Detailed Description Assignment p General class for the assignment This class enabled to reassign the different units Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 8 sif AssignmentFactory Class Reference 27 See Also sif Assignment p sif Kuhn p sif NearestNeighboor Definition at line 47 of file assignment hpp 5 7 2 Member Function Documentation 5 7 2 1 virtual std map lt AResourcex ATaskSpotx gt sif Assignment operator std map lt std pair lt AResource x ATaskSpot x gt int gt pure virtual Start the assignment problem resolution Returns A map from resource to TaskSpot p Implemented in sif Kuhn p The documentation for this class was generated from the following file assignment hpp 5 8 sif AssignmentFactory Class Reference AssignmentFactory p Instanciate assignment algorithm include lt assignmentFactory hpp gt Static Public Member Functions e static Kuhn amp amp Kuhninstance std map lt AResource x int gt _resource std vector lt ATaskSpot gt _taskSpot Kuhn p instanciation 5 8 1 Detailed Description AssignmentFactory p Instanciate assignment algorithm This factory converts general da
113. mber Functions e virtual void _dump 0 Implementation for dump function Protected Attributes e std function lt int int amp double gt f Function in order to update task e Task amp t Attached task 5 10 1 Detailed Description TaskSpot p Physical object that can modify a task The TaskSpot p is an object that can modify a task when a specific action occured Different types of TaskSpot p 2 are provided such as periodic ones See Also sif Task p sif PeriodicTaskSpot sif Observable p Definition at line 50 of file aTaskSpot hpp 5 10 2 Constructor amp Destructor Documentation 5 10 2 1 sif ATaskSpot ATaskSpot Task amp _t std function lt int int amp double time gt f Constructor Parameters The associated task Function which serves to update the task Definition at line 35 of file aTaskSpot cpp The documentation for this class was generated from the following files aTaskSpot hpp aTaskSpot cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 11 sif AtlasGrid lt Data gt Class Template Reference 31 5 11 sif AtlasGrid lt Data gt Class Template Reference AtlasGrid p Tree p data structure include lt atlasGrid hpp gt Inheritance diagram for sif AtlasGrid lt Data gt getData A sif AtlasGrid lt Data gt Public Member Fun
114. mplate lt int Dim class Type gt sif SimpleStrategy lt Dim Type gt SimpleStrategy Assignment amp assignment Constructor Parameters _assignment Assigment algorithm Definition at line 41 of file simpleStrategy cpp References sif SimpleStrategy lt Dim Type gt firstNotSatisfied sif Constraint getTask and sif SimpleStrategy lt Dim Type gt taskSpotEval 5 41 3 Member Function Documentation 5 41 3 1 template lt int Dim class Type gt int sif SimpleStrategy lt Dim Type gt evalSituation SpatialData amp _SpatialData ConstraintSystem 8 _consiraintSystem virtual Evaluation of the situation Parameters _spatialData SpatialData p information _constraint Constraint p system System Returns Value of the situation Implements sif Strategy lt Dim Type gt p Definition at line 55 of file simpleStrategy cpp References sif EvalLoop sif SpatialData getResources and sif SpatialData getTaskSpots 5 41 3 2 template lt int Dim class Type gt std map lt AResource ATaskSpot x gt sif Strategy lt Dim Type gt assign virtual inherited Perform the assignment of resources Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 42 sif SingleThread Class Reference 93 Returns assigment information Definition at line 38 of file strategy cpp The documentat
115. mps est respect e e Le contr leur de l environnement Mise jour des ressources o Si pas d affectation ne rien faire o Si affectation calcul du chemin le plus court o Si chemin connu d placement et calcul de collisions O e La boucle recommence tant que les conditions sont respect es Voir Diagramme de s quence de simulation 2 11 page 26 Contr leur IA Contr leur Environnement 2 CHAPITRE 2 MODELISATION l chelle du monde taille humaine INSR ROUEN Yl exegjeideds as ES PE ti Oejeqenedsyes 1 i i I 1 1 1 1 i i i i i i 1 1 1 1 i i 1 f QUOTE 411875 1 1 i j J 1 1 1 1 1 i l 1 I 1 1 1 1 i peepupejs I 1 1 l l 1 1 1 1 j l 1 1 j 291N05584 lt lt 8JEU0p1009 29Ed5 JUS8LISULUOIAUT ejegieneds Qejegieneds 4811043009 popul Inajesi yn suwesBboid FIGURE 2 10 S quence d initialisation e betta MS IINSR re ee e ROUEN a CHAPITRE 2 MODELISATION SSS Controller Environnement lt Space lt Coordonate gt gt initOO La E de s quence Initialisation D but boucle operator i Toutes les yyy ms Diagramme de s quence Contr leur Environnement operatorii l L Toutes les x ms D Diagramme de s quence Contr
116. nde AR ROUEN ae CHAPITRE 4 IMPLEMENTATION Partionnement Comme il n y a pas d obstacle il n y a pas non plus d algorithme de partitionnement Il s agit la encore d un manque de temps et la fonctionnalit n est pas essentielle pour avoir une simulation fonctionnelle Elle permettrait simplement de r duire le co t de calcul des heuristiques de plus court chemin Observateur Observ Les classes du patron de conception observateur ne sont pas mises en place malgr que la plupart des classes poss dent une m thode update La raison est que pour cr er un sys t me efficace et g n rique il aurait fallu plus de temps et donc les m thodes update et de notification sont pr sentes dans les interfaces des objets directement et pas h rit es par des classes sp cifiquement d di es cela Multithreading Bien que facile mettre en place dans le cas pr sent le parall lisme n a pas t mis en place Les interfaces sont pr sentes mais utilis es nul part Il ne s agit pas d une priorit d impl mentation pour le moment Chapitre 5 Application 5 1 Pr sentation Une application de d monstration a t d velopp e Elle se trouve dans le r pertoire app SFML de la racine du projet Il s agit gobalement de la m me simulation que celle pr sente dans la le on 1 Seuls les param tres changent et sur tout une interface graphique basique est ajout e afin de visualiser le proces
117. nds les commandes personnalis es La seule commande dis ponible permet d ajouter facilement de nouvelles lessons e Package cmake qui g re le packaging basique e Target cmake comprenant des cibles personnalis es notamment quelques raccourcis d utilisation Le livrable n tant pas compl tement impl ment le processus d installation n a pas t ajout 4 1 4 Documentation La documentation est g n r e par doxygen gr ce un fichier de configuration pr sent dans le dossier doc L ensemble des rapports et des fichiers de mod lisation sous argoUML a galement t versionn et est pr sent dans le dossier doc 4 2 D tail de l impl mentation 4 2 1 Les principales fonctionnalit s L impl mentation est tr s incompl te par rapport l ensemble de la mod lisation effec tu e Cependant un certain nombre d l ments essentiels au principal cycle d affectation sont pr sents permettant de fournir un framework fonctionnel avec un exemple d applica tion graphique l utilisant Le logger Le logger est mis en place afin de garder une trace de l ensemble des tapes de la si mulation Diff rents niveaux de verbosit s sont pr sents afin de permettre l utilisation de g rer le degr d information qu il souhaite De m me un syst me de s rialisation par fi chier permet de r gler s paremment les informations afficher dans le terminal et celles directement enregistrer dans un fichier
118. ns choisi de r aliser un d but de framework permettant la mod lisation et l impl mentation de probl me de planification spatiale sous contraintes Il s agira de proposer des briques logicielles permettant la cr ation et la gestion d IA pour la r solution de ce probl me Enfin pour illustrer la r solution temps r el des probl mes en plus du framework une application de simulation d une Intelligence Artificielle sera d velopp e Il s agira d une application graphique montrant des unit s d un jeu vid o affect es divers postes pour maximiser divers objectifs pouvant changer au court du temps quilibrage de ressources objectif de construction par exemple 1 2 Framework Description du syst me et objectifs Le syst me doit permettre pour l utilisateur la cr ation d une intelligence artificielle pour r soudre le probl me d affectation La cr ation de IIA se fait en plusieurs tapes e D finition de l environnement t ches objectifs amp contraintes unit s e D finition d une m thode d apprentissage et d un mod le d observation de l environ nement e Cr ation d une ou plusieurs strat gies de r solution du probl me d affectation 5 taille humaine _ E l chelle du monde ROUEN ee g CHAPITRE 1 ANALYSE DES BESOINS Une strat gie classique consiste e Discr tiser l espace e Indexer les unit s les t ches et en r gle g n rale les objets de l environnement e D finir un
119. nstructor Parameters _ coord Coordonates of the resource Definition at line 33 of file staticObject cpp 5 46 3 Member Function Documentation 5 46 3 1 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files e staticObject hpp e staticObject cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 47 sif StepConstraint Class Reference 103 5 47 sif StepConstraint Class Reference StepConstraint p Special constraint include lt stepConstraint hpp gt sif Constraint t priority Inheritance diagram for sif StepConstraint Constraint setPriority getPriority operator lt operator getTask OP step lastValue leftTolerance rightTolerance breakCondition reachCondition StepConstraint operator Public Member Functions StepConstraint unsigned _ priority Task 8_task ConstraintComp _comp int _step std function lt void gt _reachCondition std function lt void gt _breakCondition i
120. nt lt 2 int int gt update std ref env placeholders _1 Step envStep envController envDelay Controller addStep envStep 10 Step DUMP E EINSA taille humaine A r l chelle du monde m AS AA _ e ROUEN ae CHAPITRE 6 GUIDE UTILISATEUR 13 16 19 unsigned dumpDelay 500 ms auto dump bind amp Environment lt 2 int int gt dump std ref env Step dumpStep dump dumpDelay Controller addStep dumpStep TI SLE HET unsigned iaDelay 1000 ms auto iaController bind amp lA lt 2 int gt update std ref ia placeholders _1 Step iaStep iaController iaDelay Controller addStep iaStep Listing 6 6 Parametrage de la simulation Nous devons initialiser le contr leur qui se chargera alors de lancer l indexation et le partitionnement et transmettre les informations r colt es aux entit s en ayant besoin Init and launch the simulation Controller init ia env Controller run Listing 6 7 Initialisation et lancement du contr leur En dernier lieu nous lib rons la m moire li e la cr ation dynamique des diff rents objets Free Memory for auto e taskSpots delete e for auto e res delete e Listing 6 8 Lib ration des resources 6 2 Application 6 2 1 Compilation La compilation de l application requiert que la SFML 2 0 soit install
121. nt _rT 0 int _IT 0 Default constructor e virtual bool operator Check the constraint satisfaction and launch callback function if needed e void setPriority unsigned _ priority Change the priority unsigned getPriority const Get the priority bool operator lt Constraint amp _const Comparaison operator based on priority Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 104 Class Documentation const Task amp getTask const Get task Protected Attributes ConstraintComp op Comparaison operator e int step Value of the step bool lastValue Value at the last check int leftTolerance Value for the left tolerance int rightTolerance Value for the right tolerance e std function lt void gt breakCondition Called when the constraint is not satisfied e std function lt void gt reachCondition Called when the constraint is satisfied Task amp t Task p concerned by the constraint unsigned priority Priority of the constraint 5 47 1 Detailed Description StepConstraint p Special constraint StepConsiraint p is a special constraint related to the step See Also sif Constraint p Definition at line 53 of file stepConstraint hpp 5 47 2 Constructor amp Destructor Documentation 5 47 2 1 sif StepConstraint StepConstraint unsigned _priority Task amp _task ConstraintComp _comp int step std function lt void
122. nt cpp References sif AEnvironment resources Referenced by sif Environment lt Dim Type Data gt addObject 5 22 2 6 void sif AEnvironment addObject ATaskSpot amp _taskSpot inherited Add taskSpot to the environment Parameters _taskSpot New taskSpot Definition at line 69 of file aEnvironment cpp References sif AEnvironment taskSpots 5 22 2 7 void sif AEnvironment setSpatialData SpatialData amp spatialData inherited setSpatialData Parameters __spatialData New spatialData Definition at line 62 of file aEnvironment cpp References sif AEnvironment resources and sif AEnvironment spatialData 5 22 2 8 std vector lt ATaskSpot gt amp sif AEnvironment getTaskSpots inherited Get TaskSpots Returns Vector of TaskSpots Definition at line 80 of file aEnvironment cpp References sif AEnvironment taskSpots Referenced by sif SpatialData startIndexing 5 22 2 9 std vector lt AResource x gt amp sif AEnvironment getResources inherited Get Resources Returns Vector of Resources Definition at line 85 of file aEnvironment cpp References sif AEnvironment resources Referenced by sif SpatialData startIndexing The documentation for this class was generated from the following files Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 56 Class Documentation environmen
123. ntSystem amp _constraintSystem Constructor Parameters _model Model p of IA p _constraint Constraint p system related to tasks System Definition at line 35 of file ia cpp 5 23 3 Member Function Documentation 5 23 3 1 template lt int Dim class Type gt void sif 1A lt Dim Type gt update double time Update IA p Parameters _time Ellapsed time since the last update Definition at line 41 of file ia cpp 5 23 3 2 template lt int Dim class Type gt void sif 1A lt Dim Type gt setModel Model lt Dim Type gt model Set the model Parameters _ model New strategy model Definition at line 50 of file ia cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 58 Class Documentation 5 23 3 3 template lt int Dim class Type gt void sif 1A lt Dim Type gt setSpatialData SpatialData amp _spatialData Set the spatial data Parameters __spatialData New spatialData Definition at line 56 of file ia cpp The documentation for this class was generated from the following files e ia hpp e ia cpp 5 24 sif Kuhn Class Reference Kuhn p Algorithm which solves the assignment problem include lt kuhn hpp gt Inheritance diagram for sif Kuhn operator A operator isFullmarked subtractionMins lineWLessZUnc
124. ntroller cpp References steps 5 17 2 4 void sif Controller addStep Step _step unsigned pos static Add a step to the controller Parameters _ step Step to add _ pos Position of the step in the list Definition at line 70 of file controller cpp References steps 5 17 2 5 template lt int Dim class Type class Data gt static void sif Controller init IA lt Dim Type gt amp _ia Environment lt Dim Type Data gt amp env static Static initialization Parameters _ia IA p for the simulation _env Environment p 2 for the simulation 5 17 2 6 bool sif Controller checkContinue static protected Check if a stop criterion is reached Returns boolean Definition at line 149 of file controller cpp References cont Referenced by run The documentation for this class was generated from the following files e controller hpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 44 Class Documentation controller cpp 5 18 sif Coordonate lt Dim Type gt Class Template Reference Coordonate p Cartesian coordonates for n dimensional space include lt coordonate hpp gt Inheritance diagram for sif Coordonate lt Dim Type gt sif ACoordonate A sif Coordonate lt Dim Type gt Coordonate Public Member Functions e Coordonate Default constructo
125. ntroller of the application e class MultiThread MultiThread p Multithread policy e class Observable Observable p Notify observer when state change occured 10 Namespace Documentation class ObservablePolicy ObservablePolicy p Abstract class to determine observable behavior class Observer Observer p Get notification from observable class PassivePolicy PassivePolicy p Change the internal state of the observable class SingleThread SingleThread p Singlethread policy class ThreadingModel ThreadingModel p Threading Policy class ACoordonate ACoordonate p Abstract coordonate class AEnvironment AEnvironment p Abstract class for environment class AObject AObject p class AResource ARessource Abstract resource class ATaskSpot TaskSpot p Physical object that can modify a task class Coordonate Coordonate p Cartesian coordonates for n dimensional space class Direction Direction p Vector of an orthonormal base of the space class DynamicObject DynamicObject p Objects that can evolve in time class Environment Environment p Modelize the environment of the problem class Object Object p Abstract class for objects contained in the environment class Obstacle Obstacle p Obstacle p in the environment class Resource Ressource Ressource that can be affected to a task class Space
126. o sif Environment p sif Space p Definition at line 44 of file aCoordonate hpp The documentation for this class was generated from the following file aCoordonate hpp 16 Class Documentation 5 2 sif ActivePolicy Class Reference ActivePolicy p Directly notify observer when state change occured include lt activePolicy hpp gt Inheritance diagram for sif ActivePolicy sif ObservablePolicy setChange _setChange sif ActivePolicy _setChange Public Member Functions e virtual void setChange final Set change the meaning of this function depends on the policy Protected Member Functions e virtual void _setChange Implemention of the setChange method 5 2 1 Detailed Description ActivePolicy p Directly notify observer when state change occured This policy will notify directly the observer when a state change occured See Also sif Observer p sif ObservablePolicy p sif PassivePolicy p Definition at line 44 of file activePolicy hpp The documentation for this class was generated from the following files e activePolicy hpp e activePolicy cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 3 sif AEnvironment Class Reference 17 5 3 sif AEnvironment Class Reference AEnvironment p Abstract class for environment include lt aEnvironment hpp gt Inher
127. of file aEnvironment cpp References resources and spatialData 5 3 2 5 void sif AEnvironment addObject ATaskSpot 4 _taskSpot Add taskSpot to the environment Parameters _taskSpot New taskSpot Definition at line 69 of file aEnvironment cpp References taskSpots 5 3 2 6 void sif AEnvironment addObject std vector lt ATaskSpot gt 4 _taskSpois Add taskSpots to the environment Parameters _taskSpots Vector of taskSpots Definition at line 74 of file aEnvironment cpp References taskSpots Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 20 Class Documentation 5 3 2 7 std vector lt ATaskSpot gt amp sif AEnvironment getTaskSpots Get TaskSpots Returns Vector of TaskSpots Definition at line 80 of file aEnvironment cpp References taskSpots Referenced by sif SpatialData startIndexing 5 3 2 8 std vector lt AResource x gt sif AEnvironment getResources Get Resources Returns Vector of Resources Definition at line 85 of file aEnvironment cpp References resources Referenced by sif SpatialData startIndexing The documentation for this class was generated from the following files aEnvironment hpp e aEnvironment cpp 5 4 sif AObject Class Reference AObject p include lt aObject hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Frame
128. omConstraint CustomConstraint Task amp _t unsigned _priority std function lt bool gt _cond std function lt void gt _reachCondition std function lt void gt _breakCondition Default constructor Parameters t Task p which is concerned by the constraint _ priority Priority of the constraint _cond Condition to satisfy the constraint _reachCondition Callback function called when the constraint is satisfied _breakCondition Callback function called when the constraint is not satisfied Definition at line 34 of file customConstraint cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 19 sif CustomConstraint Class Reference 47 5 19 3 Member Function Documentation 5 19 3 1 bool sif CustomConstraint operator virtual Check the constraint satisfaction and launch callback function if needed Returns boolean Implements sif Constraint p Definition at line 47 of file customConstraint cpp References breakCondition cond lastValue and reachCondition 5 19 3 2 void sif Constraint setPriority unsigned _priority inherited Change the priority Parameters _ priority Constraint p 2 priority Definition at line 39 of file constraint cpp References sif Constraint priority 5 19 3 3 unsigned sif Constraint getPriority const inherited Get the priority
129. on de la situation et d affectation est mise en place et ce travail est effectu e par la strat gie courante du mod le Les tapes d apprentissage et de d cision ne sont pas impl ment es tout simplement par manque de temps et parce que l objectif du mod le impl ment est d tre manuel les strat gies peuvent tre chang es uniquement par demande de l utilisateur Cependant ces tapes sont indiqu es dans le logger pour montrer qu il ne reste plus qu impl menter ces tapes pour d autres mod les pour lesquels elles sont n cessaires Strat gie La classe abstraite des strat gies est impl ment e ainsi qu une strat gie dite simple Cette strat gie recherche la premi re contrainte non satisfaite et rep re la t che associ e Si cette contrainte existe elle cherche les emplacements de travails relatifs cette t che Elle va ensuite chercher toutes les ressources libres et cr er tous les couples possibles re sources libres emplacements qu elle va valuer en utilisant la distance de manhattan entre les deux entit es de chaque couple La liste de couples et leur co t evalu est ensuite envoy au mod le qui va lui m me la transmettre l algorithme d affectation choisi L valuation de la situation est repr sent e par un entier qui est la somme des co ts de tous les couples A nsi au fur et mesure que les unit s se d placent vers leur affectation la strat gie renverra une valeur d autant
130. ory p General API for tree Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen Class Index Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen Chapter 4 Namespace Documentation 4 1 sif Namespace Reference Logger Logger class Classes class Assignment Assignment p General class for the assignment e class AssignmentFactory AssignmentFactory p Instanciate assignment algorithm e class Kuhn Kuhn p Algorithm which solves the assignment problem e class Constraint Constraint p General class for constraints e class ConstraintCompare ConstraintCompare p Functor to compare constraints on priority level e class ConstraintSystem ConstraintSystem p List of constraints e class CustomConstraint CustomConstraint p Special constraint e class StepConstraint StepConstraint p Special constraint e class ActivePolicy ActivePolicy p Directly notify observer when state change occured e class Continue Continue p Criterion for ending the calculation simulation e class StepsContinue StepsContinue p Criterion for ending the calculation simulation after a user defined number of steps e class TimeContinue TimeContinue p Criterion for ending the calculation simulation after a user defined time e class Controller Controller p Main co
131. ource gt resources Resources of the environment SpatialData spatialData SpatialData p 5 3 1 Detailed Description AEnvironment p Abstract class for environment See Also sif Environment p Definition at line 48 of file aEnvironment hpp 5 3 2 Member Function Documentation 5 3 2 1 void sif AEnvironment update double _time Update environment by updating all its components Parameters _time Ellapsed time since the last update Definition at line 37 of file aEnvironment cpp References resources 5 3 2 2 void sif AEnvironment addObject AResource resource Add resource to the environment Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 3 sif AEnvironment Class Reference 19 Parameters _ resource New resource Definition at line 56 of file aEnvironment cpp References resources Referenced by sif Environment lt Dim Type Data gt addObject 5 3 2 3 void sif AEnvironment addObject std vector lt AResource x gt _resources Add resources to the environment Parameters _ resources Vector of resources Definition at line 50 of file aEnvironment cpp References resources 5 3 2 4 void sif AEnvironment setSpatialData SpatialData amp _spatialData setSpatialData Parameters __spatialData New spatialData Definition at line 62
132. patial Intelligence Framework by Doxygen 5 26 sif Model lt Dim Type gt Class Template Reference 67 e void addStrategy Strategy lt Dim Type gt amp _strategy Add a strategy to the model e void setCurrentStrategy unsigned _pos Set current strategy e void setCurrentStrategy Strategy lt Dim Type gt amp _strategy Set current strategy only if the strategy is in the model Protected Member Functions e virtual int evalSituation SpatialData amp _spatialData ConstraintSystem amp _constraintSystem 0 Evaluation of the situation define how the situation has to be evaluated according to the current strategy e virtual void learn 0 Learning process e virtual void decide 0 Decision process mainly dedicated to change the strategy according to evaluation e virtual std map lt AResource x ATaskSpot x gt assign 0 Assignment p process mainly dedicated to assign through the assignment algorithm of the main strategy Protected Attributes e std vector lt Strategy lt Dim Type gt gt strategies Strategy p used by the model Strategy lt Dim Type gt amp currentStrategy Current strategy 5 26 1 Detailed Description template lt int Dim class Type gt class sif Model lt Dim Type gt Model p Defines relationship between strategies and how the observation is done Model p defines the arrangement bewteen strategies and how the observation and all the
133. ps bitbucket org aquemy taskassignment Architecture du d p t Le d p t est constitu des r pertoires suivants app Applications utilisant le framework cmake Fichiers de construction du framework include Fichiers d ent te du framework lessons Le ons d apprentissage sur le framework src Sources du framework test Ensemble de tests Quelques fichiers sont pr sents la racine crit pour la plupart en Markdown auteurs du projet guide d installation licence notes et liste des t ches effectuer 4 1 3 Systeme de construction Un syst me de construction a t mis en place pour le livrable gr ce CMake et les outils gravitants autour CMake permet de g rer l ensemble des d pendances g n rer les ex cu tables pour les tests les binaires de librairies etc 38 on a 0 taille humaine A SN a a ye r l chelle du monde AA ROUEN ee a CHAPITRE 4 IMPLEMENTATION Le syst me de build mis en place est principalement localis dans le dossier cmake de la racine du projet Il comprend les fichiers suivant e Config cmake qui g re les diff rentes options de compilation e Files cmake qui liste l ensemble des fichiers n cessaires la cr ation de la biblio th que Notamment il liste la fois les fichiers cpp ne contenant que l impl men tation mais galement les fichiers hpp des classes templat es qui appellent eux m me l impl mentation e Macro cmake qui compre
134. r Check the Type template is a numeric type with type_trait Public Attributes T elements STL member 5 18 1 Detailed Description template lt int Dim DEF_DIM class Type DEF_COORD_TYPE gt class sif Coordonate lt Dim Type gt Coordonate p Cartesian coordonates for n dimensional space The coordonate object is designed to describe the space First template represents the number of dimensions and the second one represents the type of each coordonate This allows only cartesian system and uniform type representation at the moment Some inherited functions from std vector have been deleted such as push_back and other size related functions Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 19 sif CustomConstraint Class Reference 45 See Also sif Environment p sif Space p Definition at line 51 of file coordonate hpp The documentation for this class was generated from the following files coordonate hpp coordonate cpp 5 19 sif CustomConstraint Class Reference CustomConstraint p Special constraint include lt customConstraint hpp gt Inheritance diagram for sif CustomConstraint sif Constraint t priority Constraint setPriority getPriority operator lt operator getTask cond lastValue breakCondition reachCondition CustomConstraint operator Public Member Funct
135. r la m me raison elle a t abandonn e mais le temps nous a finalement permis d en cr er une version tr s simplifi e Chapitre 2 Mod lisation 2 1 Identification des briques logicielles 2 1 1 Module d IA et d environnement Dans ce module on distingue plusieurs entit s e L environnement espace dans lequel volue les objets En pratique g n ralement R ou R e Les objets tant de plusieurs types 1 Les ressources que l on peut affecter une t che et qui sont donc mobiles dans l environnement 2 Les t ches fixes dans l environnement et qui permettent de modifier un ou plu sieurs objectifs 3 Les obstacles fixes dans l environnement et qui mod lisent la structure de l es pace e LA qui va selon une ou plusieurs strat gies observer l environnement et prendre des d cisions pour r soudre le probl me d affectation e Les contraintes et objectifs qui permettent de d finir des seuils minimal maximal proportion par rapport un type de t che e Les strat gies qui d finissent un d roulement du processus d affectation fonction de co t algorithmes utilis s e Les mod les d apprentissage et de prise de d cision non tudi ici 2 1 2 Module d indexation spatiale et de partitionnement spatial Les entit s de ce module sont e Les arbres servant stocker l information spatiale et y acc der rapidemment e Les techniques de con
136. reakCondition reachCondition CustomConstraint operator Public Member Functions Constraint Task amp _t unsigned _ priority Default constructor e void setPriority unsigned _ priority Change the priority Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 13 sif Constraint Class Reference 37 unsigned getPriority const Get the priority bool operator lt Constraint amp _const Comparaison operator based on priority e virtual bool operator 0 Check the constraint satisfaction and launch callback function if needed const Task amp getTask const Get task Protected Attributes Task amp t Task p concerned by the constraint e unsigned priority Priority of the constraint 5 13 1 Detailed Description Constraint p General class for constraints General class for constraints has the level of the priority int Several types of constraints exist See Also sif ConstraintSystem p sif StepConstraint p sif PropConstraint sif CustomConstraint p Definition at line 44 of file constraint hpp 5 13 2 Constructor amp Destructor Documentation 5 13 2 1 sif Constraint Constraint Task 4 t unsigned _priority Default constructor Parameters t Task p 2 which is concerned by the constraint priority Constraint p priority Definit
137. ription template lt int Dim class Type gt class sif Obstacle lt Dim Type gt Obstacle p Obstacle p in the environment It defines obstacle that cannot be overlapped by any objet See Also sif Environment p sif Object p sif DynamicObject p sif Square p Definition at line 45 of file obstacle hpp 5 32 2 Constructor amp Destructor Documentation 5 32 2 1 template lt int Dim class Type gt sif Obstacle lt Dim Type gt Obstacle Coordonate lt Dim Type gt coord Constructor Parameters _ coord Coordonates of the resource Definition at line 33 of file obstacle cpp 5 32 3 Member Function Documentation 5 32 3 1 template lt int Dim class Type gt Coordonate lt Dim Type gt sif Object lt Dim Type gt getCoordonates const inherited Get coordonates of the object Returns Coordonate p Definition at line 36 of file object cpp Referenced by sif Environment lt Dim Type Data gt addObject and sif Resource lt Dim Type Data gt move The documentation for this class was generated from the following files e obstacle hpp obstacle cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 78 Class Documentation 5 33 sif PassivePolicy Class Reference PassivePolicy p Change the internal state of the observable include lt passivePolicy hpp gt Inheritance
138. rossed strikeZLocatedSameArea zeroOnAlIRC ZSurrondSameCol markLinesInit markLines markRows subtractionPartTable Public Member Functions std map lt AResource x ATaskSpot x gt operator std map lt std pair lt AResource x ATaskSpot x gt int gt _mymap Start the Kuhn p method Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 24 sif Kuhn Class Reference 59 Protected Member Functions bool isFullmarked std vector lt bool gt amp mdL std vector lt bool gt amp mdR Checks if the matrix is totally marked e void subtractionMins typeMat amp mat Subtracts minimum on each row amp column int lineWLessZUncrossed typeMat amp m Looks for the line with less zero with Normal state e void strikeZLocatedSameArea typeMat amp m int int c Changes state of the zero on line and row c to Crossed bool zeroOnAllRC typeMat amp m Checks if there is one zero surrounded on each line amp column bool ZSurrondSameCol typeMat amp m int c Looks if there is already a zero on the row c void markLineslnit typeMat amp m std vector lt bool gt amp mdL Marked all lines containing no zero surrounded bool markLines typeMat amp m std vector lt bool gt amp mdL std vector lt bool gt amp mdR Marks all rows containing a zero crossed on a marked line bool markRo
139. s Tree A AAA class AtlasGrid public Tree class QuadTree public Tree class RPlusTree public RTree ns class RTree public Tree class Octree public Tree AAA ZN class UBTree public RPlustree class BinaryTree public Tree class KDTree public BinaryTree ZN i rl ZN A A class XTree public RTree class ImplicitKDTree public KDTree class RStarTree public RTree class HilbertRTree public RTree class VantageKDTree public KDTree Builder pour certains arbres class TreeConstMethod A A class ZOrder public TreeConstMethod class SpaceFilingCurve public TreeConstMethod FIGURE 2 6 Diagramme de classes des arbres De la m me mani re qu avec les algorithmes une Factory permettra d instancier un arbre concret Certains arbres peuvent se constuire de plusieurs mani res c est pourquoi on pr voira un Design Pattern Builder pour permettre de monter diff remment ces arbres Aajodajqeruasgg aiyqnd aayy 55219 Sayogajqeruasqo qnd anissed ssejo 2 CHAPITRE 2 MODELISATION JOUE p 5818 19 lt lt pIOA PIOA LOU PJs UOljEANp OU0119 p5 J1IEd ssejo eiqesuodsai ap aureys wiayed UBISSQ OQanuyuos ooq Jenya FIGURE 2 7 Diagramme de classes du framework Jabbo7aseg 55e19 AKORU PES PA SIEIS a UOTHEAUETS JU 917875 5 z WUT PIOA 311875 F Uy isda s lt da s gt anbap p s
140. s le cadre d un jeu de stat gie L encore on peut d finir de mani re optionnelle un intervalle de tol rance et deux fonc tions de rappel qui seront appel es en cas de changement de statut de la contrainte passage du respect au non respect et inversement Contraintes personnalis es Une contrainte personnalis e est une contrainte mod lis e par une fonction renvoyant un bool en vrai si la condition est v rifi e faux sinon Elles servent exprimer des contraintes diverses sur les t ches mais aussi sur d autres l ments de l environnement en fonction du r a H taille humaine RR a a r l chelle du monde ns of ROUEN oneee CHAPITRE 2 MOD LISATION probl me de l utilisateur Ces contraintes portent galement deux fonctions de rappel pour le changement de statut de la contrainte 2 3 3 Syst me de contraintes Il s agit d un syst me comprenant les t ches ainsi que les contraintes Les t ches contraintes sont potentiellement ind pendantes de I TA qui va r soudre le probl me puisqu elles appar tiennent au probl me lui m me Ainsi le but du syst me de contraintes est de centraliser les t ches et les contraintes pour en faciliter l acc s par l utilisateur et l IA Le syst me pourra galement proposer des m thodes de r solution du CSP voqu es plus haut Note La description des contraintes peut se faire de mani re plus g n rale et plus souple par l u
141. skSpot On doit tester la fonction update Cette fonction met jour la t che l aide de la fonc tion asoci e a l emplacement de travail De la m me mani re que pour la fonction update de Task on cr e une fonction dont on connait le r sultat On teste ensuite si la nouvelle valeur de la t che est la valeur qu on attendait 3 4 Graph 3 4 1 simplelndex On va v rifier que les donn es fournies aux constructeurs sont bien r cup rer dans le vecteur de donn es 3 5 IA 3 5 1 ia On va tester la fonction update double _time qui met jour le model Lorsque le pa ram tre de temps est n gatif cela doit retourner une erreur Lorsqu il est nul cela ne doit rien changer enfin s il est positif il peut y avoir des changements 3 5 2 manualModel On va tester la fonction update double _time SpatialData amp _spatialData Lorsque le param tre de temps est n gatif cela doit retourner une erreur Lorsqu il est nul cela ne doit rien changer enfin s il est positif il peut y avoir des changements Chapitre 4 Impl mentation 4 1 Etat du livrable 4 1 1 Licence Le code source a t plac sous licence CECILL quivalente francaise de la GPL Il inter dit l utilisation commercial du code 4 1 2 Gestionnaire de version L ensemble de l avancement du projet a t versionn gr ce au syst me Git et un d p t cr e sur Bitbucket L adresse du d p t est la suivante htt
142. stance qu elles peuvent effectuer cette it ration vitesse pond r e par le temps depuis la derni re mise jour gr ce au mouvement courant Une fois le point indiqu par le mouvement atteint il est retir de la liste 4 2 2 Les d fauts de l impl mentation Beaucoup de choses n ont pas pu tre impl ment par manque de temps Certaines choses sont cod es en dur dans certaines classes notamment les foncteurs de distance la structure d indexation dans SpatialData qui est Simplelndex etc A chaque fois une note TODO est pr sente en commentaire pour rappeler qu il faudra g n raliser le comportement ou le compl ter Voici une liste des principales fonctionnalit s manquantes Les obstacles et collisions Les obstacles n ont pas t cr s ainsi que les collisions entre les objets dynamiques Ainsi les resources mod lis es par un simple pixel peuvent se chevaucher Le manque d obstacle fait que l algorithme de plus court chemin est tr s basique Espace L espace de l environnement n est pas impl ment en tout cas partiellement mais pas utilis Son utilit premi re est de d finir des bornes l espace Dans la version actuelle l espace est infini dans toutes ses dimensions et donc aucune v rification lors de l ajout d un objet dans l environnement n est effectu e pour savoir s il est bien dans l espace on a 4 A taille humaine a ae E l chelle du mo
143. struction de ces arbres Il s agit principalement d algorithmes qui sont plus sp cifiques chaque structure de donn es et qui peuvent les am liorer On peut citer par exemple le Z order qui permet de construire de mani re efficace des Quadtree ou des arbres de Hilbert on a 4 A taille humaine ee r l chelle du monde of ROUEN a CHAPITRE 2 MODELISATION 2 13 Module d algorithmes de plus court chemin Les entit s de ce module sont simplement les algorithmes travaillant sur l environnement transform grace aux techniques d indexation et de partitionnement spatial 2 1 4 Module d affectation Les entit s de ce module sont simplement les algorithmes qui doivent permettre la r so lution de l affectation 0 m taille humaine A INSA l chelle du monde oes i e ROUEN o CHAPITRE 2 MODELISATION 22 Cas d utilisation 2 2 1 Environnement et IA ra IA Environnement LA D finir fonction de cout lt lt include gt gt __ Cr er environnement ll om Cr er strat gie Y a ae Cr er une IA lt lt include gt gt Utilisateur final Go UE t lt lt include gt lt lt include gt gt afi eds D finir des objets D finir contraintes et objectifs FIGURE 2 1 Cas d utilisation g n raux 2 2 2 Ressources Ressource Changer algorithme d une ressource Utilisateur final 1 1 lt lt extend gt gt
144. sus d affectation en temps r el La biblioth que multim dia utilis e est la SFML qui est donc requise comme d pen dance pour compiler l application Pour compiler et utiliser l application reportez vous la section Guide utilisateur La encore aucun obstacle ne se trouve sur le monde et il n existe pas de fronti re l es pace Il est mod lis l cran par un rectangle Les emplacements de travail sont repr sent s par des carr s rouges et les carr s bleus repr sentent les ressources En haut gauche un compte indique la valeur de la t che d finie Une contrainte est d finie sur cette t che elle doit tre sup rieure 5000 L affichage et la gestion des commandes sont g r es par une seule fonction qui est ajout e au contr leur principal du framework et a un taux de rafraichissement identique celui de l environnement Pour faire l affichage 3 classes sont partiellement wrapp es environnement resource et taskspot 5 2 Captures d cran 45 one A taille humaine r l chelle du monde ROUEN O CHAPITRE 5 APPLICATION Value 35 Value 5462 Contrainte atteinte Chapitre 6 Guide utilisateur 6 1 Framework 6 1 1 Compilation Pour construire et compiler le framework il faut se placer dans un dossier build cr la racine gt mkdir build gt cd build Il suffit ensuite de lancer CMake puis make L option DINSTALL_TYPE full permettra de g n rer
145. t inSpace Coordonate lt Dim Type gt _coord const Check if a point is in the space Parameters _ coord Coordonate p of the point Returns boolean Definition at line 52 of file space cpp The documentation for this class was generated from the following files space hpp space cpp 5 44 sif SpatialData Class Reference SpatialData p Contains the index of the objets and the partition of the space include lt spatialData hpp gt Public Member Functions e SpatialData AEnvironment _env Constructor e void startPartitioning Start the partition of the environment Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 96 Class Documentation e void startindexing Start the indexation of the environment e Tree lt ATaskSpot gt amp getTaskSpots const Get TaskSpots Tree lt AResource gt amp getResources const Get Resources e SpatialData Destructor Protected Attributes Simplelndex lt ATaskSpot gt taskSpots Indexed TaskSpots e Simplelndex lt AResource gt resources Indexed Resource p AEnvironment env Environment p pointer in the case we would like to launch an algorithm once again 5 44 1 Detailed Description SpatialData p 2 Contains the index of the objets and the partition of the space This is the object that partition and index the environment
146. t assign Assignment p process mainly dedicated to assign through the assignment algorithm of the main strategy Protected Attributes e std vector lt Strategy lt Dim Type gt gt strategies Strategy p used by the model Strategy lt Dim Type gt amp currentStrategy Current strategy 5 25 1 Detailed Description template lt int Dim class Type gt class sif ManualModel lt Dim Type gt ManualModel p Model p without any decision or learning process This model is the simpliest model that can be imagined No relationship is defined between strategies and the current strategy is defined by the user See Also sif lA p sif Strategy p sif Model p 2 Definition at line 48 of file manualModel hpp 5 25 2 Constructor Destructor Documentation 5 25 2 1 template lt int Dim class Type gt sif ManualModel lt Dim Type gt ManualModel Strategy lt Dim Type gt _currentStrategy Constructor Parameters _curreniStrategy Main strategy Definition at line 33 of file manualModel cpp 5 25 3 Member Function Documentation 5 25 3 1 template lt int Dim class Type gt void sif ManualModel lt Dim Type gt update double time SpatialData amp _SpatialData ConstraintSystem 8 _constraintSystem virtual Update Model p Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 25 sif M
147. t hpp e src SIF environment environment cpp 5 23 sif 1A lt Dim Type gt Class Template Reference IA p include lt ia hpp gt Inheritance diagram for sif 1A lt Dim Type gt notify A sif IA lt Dim Type gt model spatialData constraintSystem TA update setModel setSpatialData Public Member Functions IA Model lt Dim Type gt amp _ model ConstraintSystem amp _constraintSystem Constructor void update double _ time Update IA p void setModel Model lt Dim Type gt amp _model Set the model void setSpatialData SpatialData amp _spatialData Set the spatial data e void notify Notify observable Protected Attributes Model lt Dim Type gt amp model Model p 2 of the IA p 22 SpatialData spatialData Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 23 sif 1A lt Dim Type gt Class Template Reference 57 SpatialData p e ConstraintSystem amp constraintSystem Constraint p system 5 23 1 Detailed Description template lt int Dim class Type gt class sif 1A lt Dim Type gt IA p IA p 2 See Also sif Observer p Definition at line 45 of file ia hpp 5 23 2 Constructor amp Destructor Documentation 5 23 2 1 template lt int Dim class Type gt sif IA lt Dim Type gt IA Model lt Dim Type gt amp model Constrai
148. ta to specific data used for a specific assignment algorithm See Also sif Assignment p Definition at line 44 of file assignmentFactory hpp 5 8 2 Member Function Documentation 5 8 2 1 Kuhn amp amp sif AssignmentFactory Kuhninstance std map lt AResource x int gt _resource std vector lt ATaskSpot x gt _taskSpot static Kuhn p instanciation Parameters Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 28 Class Documentation _resource Resources to assign _taskSpot taskSpot to be affected Returns Kuhn p instance right value Definition at line 34 of file assignmentFactory cpp The documentation for this class was generated from the following files assignmentFactory hpp assignmentFactory cpp 5 9 sif AStar Class Reference AStar p Computer algorithm that is widely used in pathfinding include lt aStar hpp gt Public Member Functions AStar default Default constructor e template lt int Dim class Type gt Path lt Dim gt operator const Coordonate lt Dim Type gt amp _from const Coordonate lt Dim Type gt amp _to Start the shortest path computation 5 9 1 Detailed Description AStar p Computer algorithm that is widely used in pathfinding AStar p is a computer algorithm that is widely used in pathfinding and graph traversal See Also sif ShortestP
149. ted from the following files e constraint hpp e constraint cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 14 sif ConstraintCompare Class Reference 39 5 14 sif ConstraintCompare Class Reference ConstraintCompare p Functor to compare constraints on priority level include lt constraint hpp gt 5 14 1 Detailed Description ConstraintCompare p Functor to compare constraints on priority level Functor to compare constraints on priority level See Also sif ConstraintSystem p sif StepConstraint p 7 sif PropConstraint sif CustomConstraint p Definition at line 100 of file constraint hpp The documentation for this class was generated from the following files constraint hpp constraint cpp 5 15 sif ConstraintSystem Class Reference ConstraintSystem p List of constraints include lt constraintSystem hpp gt Inherits std priority_queue lt T gt Public Attributes T elements STL member 5 15 1 Detailed Description ConstraintSystem p List of constraints ConstraintSystem p is a container of constraints This list is sorted by priority level At the moment it is a simple priority queue See Also sif Constraint p Definition at line 48 of file constraintSystem hpp The documentation for this class was generated from the following file constraintSystem hpp Generated on
150. ter diff rents l ments et v rifier que l on r cup re bien ce qu on a ajout l aide des getter 35 5 taille humaine a tes T l chelle du monde o ef ROUEN eS ae CHAPITRE 3 PLAN DE TESTS Eval On doit tester la fonction EvalLoop Eval lt Data gt _eval std vector lt Data gt amp _data cette fonction value les donn es selon la fonction _eval 3 3 2 Les diff rents cas tester sont e Si le vecteur de donn es est nul la fonction doit renvoyer une table nulle ou une erreur e Si la fonction d valuation est constante elle doit valuer toutes les donn es de la m me mani re 3 3 3 Resource Quatre fonctions sont valuer La premiere est la fonction update double _time Pour cette focntion trois cas sont tester e _time lt 0 gt Retourne une erreur e _time 0 gt Pas de modification par rapport avant la mise jour e _time gt 0 gt Deux cas peuvent survenir et sont donc tester Le premier correspond au cas o aucune modification ne survient par exemple lorsqu une ressource n a pas t r affect Le second cas correspond au cas o au moins une modification de la res source par exemple lorsque la ressource a t r affect La seconde est la fonction move Direction _dir double _time Si le temps est n ga tif on doit avoir une erreur Si le temps est nul les coordonn es de la resource doivent rester inchang es Si le temps est
151. th hpp gt Inheritance diagram for sif APath sif APath AN sif Path lt Dim gt 5 5 1 Detailed Description APath p Abstract path See Also sif Tree p Definition at line 42 of file aPath hpp The documentation for this class was generated from the following file aPath hpp 5 6 sif AResource Class Reference ARessource Abstract resource include lt aResource hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 6 sif AResource Class Reference 23 Inheritance diagram for sif AResource sif A0bject A sif AResource busy velocity spatialData assignment AResource update isBusy setBusy setSpatialData setAssignment dump _dump sif Resource lt Dim Type Data gt Resource move update Resource move _dump colliding Public Member Functions AResource double _ velocity bool _busy Constructor Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 24 Class Documentation e virtual void update double _time 0 Update Resource p e bool isBusy const Check if the resource is busy it cannot be assigned void setBusy bool _ status Set the status of the resource e void setSpatialData SpatialData amp _spatialData Set spatialData void setAssignment
152. th is list of data elements used for resources in order they know how to reach an aim See Also sif Tree p Definition at line 48 of file path hpp The documentation for this class was generated from the following file path hpp 5 35 sif QuadTree lt Data gt Class Template Reference QuadTree p Tree p data structure include lt quadTree hpp gt Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 80 Class Documentation Inheritance diagram for sif QuadTree lt Data gt sif Tree lt Data gt getData sif QuadTree lt Data gt Public Member Functions e virtual std vector lt Data x gt getData 0 Return a vector of all objects of the tree 5 35 1 Detailed Description template lt class Data gt class sif QuadTree lt Data gt QuadTree p Tree p data structure QuadTree p is a tree data structure in which each internal node has exactly four children used to partition a space generally a two dimensional one See Also sif Tree p Definition at line 45 of file quadTree hpp 5 35 2 Member Function Documentation 5 35 2 1 template lt class Data gt virtual std vector lt Datax gt sif Tree lt Data gt getData pure virtual inherited Return a vector of all objects of the tree Returns Vector of objets Implemented in sif Simplelndex lt Data gt p sif
153. tify observable Protected Member Functions e void dump Debug function to show all informations about the class Protected Attributes e Space lt Dim Type gt space Space p e std vector lt Obstacle lt Dim Type gt gt obstacles Obstacle p of the environment e std vector lt ATaskSpot gt taskSpots TaskSpots of the environment std vector lt AResource gt resources Resources of the environment SpatialData spatialData SpatialData p 5 22 1 Detailed Description template lt int Dim class Type class Data gt class sif Environment lt Dim Type Data gt Environment p Modelize the environment of the problem The environment is a description of the world used for the simulation or the calculation It contains the different objets that can evolve in a specific space See Also sif Space p sif Object p Definition at line 53 of file environment hpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 54 Class Documentation 5 22 2 Member Function Documentation 5 22 2 1 template lt int Dim class Type class Data gt void sif Environment lt Dim Type Data gt addObject std vector lt AResource x gt resources Add resources to the environment Parameters _ resources Vector of resources Definition at line 33 of file src SIF environment environment cpp References sif
154. tifyPolicy gt Observable p Notify observer when state change occured 2 sif ObservablePolicy ObservablePolicy p Abstract class to determine observable behavior 2 sif Observer Observer p Get notification from observable 22 sif Obstacle lt Dim Type gt Obstacle p Obstacle p 2 in the environment 22 sif PassivePolicy PassivePolicy p Change the internal state of the observable 2 sif Path lt Dim gt Path p Path p data structure 2 sif QuadTree lt Data gt QuadTree p 2 Tree p 2 data structure a 2 sif Resource lt Dim Type Data gt Ressource Ressource that can be affected to a task 2 sif RTree lt Data gt RTree p Tree p data structure for indexing multi dimensional information 22 sif ShortestPathFactory ShortestPathFactory p 22 22 sif Simplelndex lt Data gt Simplexe Stock information in vector 2 sif SimpleSP simplePathh magg ARR haus RAMS O Aa ia 2 sif SimpleStrategy lt Dim Type gt SimpleStrategy p Defines a simple strategy 2 sif SingleThread SingleThread p Singlethread policy 2 sif
155. tilisateur gr ce un design pattern interpr teur que nous n impl menterons pas dans l imm diat 2 3 4 L environnement Il est compos d un espace au sens math matique ainsi que de 3 types d objets les obs tacles les points de travail et les ressources Il a donc principalement un r le de conteneur tant donn que la cr ation de l environnement peut tr s vite devenir complexe un design pattern builder est envisag permettant par exemple de charger un fichier d envi ronnement depuis diff rents types de fichiers Ce sera d ailleurs le cas pour l application d exemple L environnement est la fois un observateur et un observable Il est observ par I TA et observe les objets dynamiques qu il contient Ainsi il s agit d un m diateur entre les objets qu il contient et VIA 2 3 5 L espace L espace est simplement d fini par un nombre de dimensions et le type de ses coordon n es Il contient galement les limites de l espace L espace peut donc tre imagin comme un parall lotope droit 2 3 6 Les coordonn es Les coordonn es permettent de localiser l ensemble des objets dans l espace Elles pr sentent deux caract ristiques le nombre de composantes et le type de ces composantes Il s agit d un vecteur stockant n composantes d un type num rique on a 0 taille humaine a a a ye r l chelle du monde AR of ROUEN a CHAPITRE 2 MODELISATION 2 3 7
156. tisfaite la strat gie impl ment e n affectera pas les nouvelles ressources cr es m me si elles sont libres un message s affiche alors l cran Le contr leur graphique tant ind pendant du contr leur principal de la simulation il est possible de faire l interface graphique sans interrompre la simulation en appuyant sur la touche echap On peut galement r ouvrir l interface en appuyant sur cette m me touche Conclusion Le projet bien que tr s incomplet en terme d impl mentation a t tr s int ressant et en richissant d un point de vue g nie logiciel Malgr quelques difficult s sur la mod lisation et quelques modifications effectuer lors de l impl mentation le projet nous a permis de renforcer une m thodologie efficace de d veloppement On regrettera peut tre que la m thode utilis e n ait pas t incr mentale mais le temps d di au projet est certainement trop court pour cela La diff rence de niveau technique en C n a pas du tout t un probl me et les changes techniques ont t int ressant et enrichissant permettant l un d en apprendre plus en C et l autre membre du projet de tester de nouvelles choses en terme d architecture et de techniques Le regret li au manque de temps provient du fait que le projet tait la base calibr pour 4 personnes mais que les effectifs ont t r duit 2 sans changer le sujet Ceci dit il semble que
157. tocker sous forme de conte neurs identiques et non d un arbre int ressant pour l acc s telle ou telle donn e Il s agit clairement d un manque de temps mais l interface globale des algorithmes est impl ment e on a 0 taille humaine A SN a a ye r l chelle du monde AA ROUEN A CHAPITRE 4 IMPL MENTATION Comme pr cis dans les modifications de la mod lisation la fabrique est supprim e et les algorithmes demand s se retrouve tre de simples std function avec le bon type de retour et les bons arguments Cela permet l utilisateur de d finir ses propres classes qui n ont rien voir avec celles de base du framework et de ne pas avoir de hi rarchie de foncteurs h ritant d un foncteur abstrait ce qui peut poser des problemes l utilisation D placements basiques Toujours par manque de temps seuls des d placements basiques ont t impl ment s ne tenant pas compte des collisions d une part au moment du d placement des ressources et d autre part lors du calcul du plus court chemin Le plus court chemin ne tient pas compte des obstacles de l environment et va simple ment cr er un chemin en utilisant des mouvements en norme 1 Pour rappel le mouvement a t ajout la mod lisation par la suite et est constitu d une direction et d une norme Le chemin tant alors une liste de mouvement Les unit s se d placent alors le long du chemin en calculant la di
158. tor Documentation 5 12 2 1 sif BaseLogger BaseLogger int _level std string label std ostream amp os std clog bool _quiet false Constructor Parameters _level Level of logging _ label Label of the level os Printing stream _ quiet Quiet mode Definition at line 39 of file baseLogger cpp 5 12 2 2 sif BaseLogger BaseLogger int _level std string label std string _logFile std ostream amp os std clog bool _quiet false Constructor Parameters _level Level of logging _ label Label of the level _logFile Log file for serialization _os Printing stream _ quiet Quiet mode Definition at line 52 of file baseLogger cpp 5 12 3 Member Function Documentation 5 12 3 1 BaseLogger sif BaseLogger setNext BaseLogger _next Set next element in reponsability chain Parameters _next Pointer on next element Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 34 Class Documentation Returns This element Definition at line 66 of file baseLogger cpp References getNext 5 12 3 2 BaseLogger sif BaseLogger getNext const Get next element in reponsability chain Returns Pointer on next element Definition at line 72 of file baseLogger cpp Referenced by setNext 5 12 3 3 void sif BaseLogger handle const std string msg int priorit
159. treeFactory hpp The documentation for this class was generated from the following file e treeFactory hpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen
160. udra ensuite que chaque unit puisse se d placer vers la t che qui lui a t affect e le plus rapidement L objectif de ce module est donc de proposer divers algorithmes de plus court chemin toujours avec une API la plus unifi e possible 1 2 4 Module d affectation Il existe plusieurs approches pour l affectation et ce module doit proposer plusieurs al gorithmes pour r soudre le probl me une fois l valuation des solutions possibles obtenues On peut citer l algorithme de Kuhn mais galement la recherche des voisins les plus proches o l algorithme des axes principaux 1 2 5 Note sur l impl mentation et les objectifs Le projet tant ambitieux a la vue de la multitude des algorithmes existants tant pour le plus court chemin que pour l indexation spatiale voire pour la description des contraintes et objectifs le travail r alis sera ax sur la mod lisation et l architecture du framework L impl mentation sera partielle mais les bonnes pratiques de d veloppement occuperont une part importante de celle ci dans le but de valoriser le livrable et permettre une impl mentation compl te en dehors du cadre de ce projet et d ajouter de nouveaux algorithmes facilement On choisira de n impl menter qu un algorithme de chaque module pour pouvoir pro poser une IA fonctionnelle Notre choix s est port sur des algorithmes classiques et relati vement simple d impl mentation Partitionnement Simple grille et Qu
161. ulation Controller Controller p Main controller of the application Coordonate lt Dim Type gt Coordonate p Cartesian coordonates for n dimensional space CustomConstraint CustomConstraint p Special constraint 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 Class Index sif Direction lt Dim gt Direction p Vector of an orthonormal base of the space 22 sif DynamicObject lt Dim Type gt DynamicObject p Objects that can evolve intime 22 sif Environment lt Dim Type Data gt Environment p 2 Modelize the environment of the problem 22 sif IA lt Dim Type gt WA P52 oe saone ee a de eue Eo a ge de blew en RUE ge tn ew See 2 sif Kuhn Kuhn p Algorithm which solves the assignment problem 2 sif ManualModel lt Dim Type gt ManualModel p Model p without any decision or learning process 2 sif Model lt Dim Type gt Model p Defines relationship between strategies and how the observation is done sif MultiThread MultiThread p 2 Multithread policy 2 sif Object lt Dim Type gt Object p Abstract class for objects contained inthe environment 2 sif Observable lt No
162. us les objets qui doivent acc der aux informations de l environment resources et IA principalement Voici un exemple de d finition de crit res et d tapes Stop criterion TimeContinue cont 5 Arr t de la simulation apr s 5 minutes on a 4 A taille humaine a r l chelle du monde ee W a 12 15 ROUEN ae CHAPITRE 4 IMPLEMENTATION Controller addContinue cont Step Environment unsigned envDelay 500 Rafraichissement tout les 500 ms La fonction appel e sera la fonction d update de l environnement auto envController bind amp Environment lt 2 int int gt update std ref env placeholders _1 L tape est constitu e d une fonction et du temps de rafraichissement Step envStep envController envDelay Controller addStep envStep Step DUMP On cr e une tape pour afficher en d tail les informations de l environnement toutes les 2 secondes unsigned dumpDelay 2000 ms auto dump bind amp Environment lt 2 int int gt dump std ref env Step dumpStep dump dumpDelay Listing 4 2 Param tres du contr leur IA amp Mod le La classe principale repr sentant l IA est impl ment e Il ne s agit que d un receptacle prenant un mod le La classe abstraite repr sentant un mod le est impl ment e ainsi qu un mod le tr s basique simple conteneur de strat gies Seule l tape d valuati
163. usy 5 6 3 3 void sif AResource setBusy bool _status Set the status of the resource Parameters _status Bool Definition at line 46 of file aResource cpp References busy Referenced by setAssignment 5 6 3 4 void sif AResource setSpatialData SpatialData amp _spatialData Set spatialData Parameters _spatialData New SpatialData p Definition at line 51 of file aResource cpp References spatialData 5 6 3 5 void sif AResource setAssignment ATaskSpot amp _assignment Set a new assignement if it is possible Parameters _assignment New assignment Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 26 Class Documentation Definition at line 56 of file aResource cpp References assignment and setBusy The documentation for this class was generated from the following files aResource hpp e aResource cpp 5 7 sif Assignment Class Reference Assignment p General class for the assignment include lt assignment hpp gt Inheritance diagram for sif Assignment sif Assignment operator operator isFullmarked subtractionMins lineWLessZUncrossed strikeZLocatedSameArea zeroOnAlIRC ZSurrondSameCol markLinesInit markLines markRows subtractionPartTable Public Member Functions e virtual std
164. widely used in pathfinding class ShortestPathFactory ShortestPathFactory p class SimpleSP SimplePath class BaseLogger BaseLogger p Element of the reponsability chain of logging Typedefs template lt class Data gt using EvalTable std map lt Data x int gt Eval Different types of eval function template lt class Data gt using Eval std function lt int Data amp gt Eval Base for eval function using ConstraintEval Eval lt Constraint gt ConstraintEval Typedef for the constraint evaluation using TaskSpotEval Eval lt ATaskSpot gt TaskSpotEval Typedef for the TaskSpot p evaluation using ResourceEval Eval lt AResource gt ResourceEval Typedef for the Resource p evaluation template lt int Dim gt using Movement std pair lt Direction lt Dim gt unsigned gt Movement Define a movement for a DynamicObject p template lt int Dim class Type gt using ShortestPath std function lt Path lt Dim gt const Coordonate lt Dim Type gt 8 from const Coordonate lt Dim Type gt 8_to gt Shortest Path p Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 12 Namespace Documentation Functions e template lt class Data gt EvalTable lt Data gt EvalLoop Eval lt Data gt _ eval std vector lt Data gt amp _data EvalLoop Evaluate a vector of Data e const std string currentTime Get the curr
165. work by Doxygen 5 4 sif AObject Class Reference 21 Inheritance diagram for sif AObject sif AResource busy spatialData 4E assignment t sif Object lt Dim Type gt coord Re update Object setBusy getTask getCoordonates dump setSpatialData A setAssignment _dump dump _dump ete tte sif Resource lt Dim Type Data gt sif DynamicObject lt Dim Type gt move update DynamicObject Resource update move _dump J A colliding sif Resource lt Dim Type gt sif TaskSpot lt Dim Type gt sif Obstacle lt Dim Type gt P Resource as TaskSpot move update update Resource Obstacle A _dump move dump colliding sif Square lt Dim Type gt boundaries Square colliding 5 4 1 Detailed Description AObject p See Also sif Environment p sif Space p sif DynamicObject p sif StaticObject p Definition at line 41 of file aObject hpp The documentation for this class was generated from the following file Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 22 Class Documentation e aObject hpp 5 5 sif APath Class Reference APath p Abstract path include lt aPa
166. ws typeMat amp m std vector lt bool gt amp mdL std vector lt bool gt amp mdR Marks all lines containing a zero surrounded on a marked column void subtractionPartTable typeMat amp m std vector lt bool gt amp mdL std vector lt bool gt amp mdR Subtracts the minimum in the partial table Protected Attributes e std vector lt std vector lt int gt gt cost Cost matrix 5 24 1 Detailed Description Kuhn p Algorithm which solves the assignment problem Kuhn p is an algorithm wihch solves the asssignment problem Kuhn p is also named the Hungarian method See Also sif Assignment p Definition at line 49 of file kuhn hpp 5 24 2 Member Function Documentation 5 24 2 1 std map lt AResource x ATaskSpot gt sif Kuhn operator std map lt std pair lt AResource ATaskSpot gt int gt _mymap virtual Start the Kuhn p method Parameters _mymap A map which associates a pair of resource taskSpot with a cost Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 60 Class Documentation Returns A map from resource to TaskSpot p Implements sif Assignment p Definition at line 35 of file kuhn cpp References cost isFullmarked lineWLessZUncrossed markLines markLinesinit markRows strikeZ LocatedSameArea subtractionMins subtractionPartTable zeroOnAIIRC
167. y Try to handle the message Parameters msg Message to handle priority Level of the message Definition at line 77 of file baseLogger cpp References handle Referenced by handle and sif operator lt lt 5 12 3 4 void sif BaseLogger startSerialize int level std string _logFile Start to serialize Parameters _level Level of logging _logFile Log file for serialization Definition at line 85 of file baseLogger cpp References startSerialize Referenced by startSerialize 5 12 3 5 void sif BaseLogger startSerialize std string _logFile Start to serialize all levels Parameters _logFile Log file for serialization Definition at line 106 of file baseLogger cpp Generated on Thu May 23 2013 21 46 28 for Spatial Intelligence Framework by Doxygen 5 12 sif BaseLogger Class Reference 35 References startSerialize 5 12 3 6 void sif BaseLogger stopSerialize int _level Stop to serialize Parameters _level Level of logging Definition at line 124 of file baseLogger cpp References stopSerialize Referenced by stopSerialize 5 12 3 7 void sif BaseLogger setQuiet int Jevel Stop writting on printing stream Parameters _level Level of logging Definition at line 146 of file baseLogger cpp References setQuiet 5 12 3 8 void sif BaseLogger setVerbose int _level

Download Pdf Manuals

image

Related Search

Related Contents

OWNERS MANUAL HTV Series Barrier  DLC-AV1300取説裏.ai    AT-DL5HD 取扱説明書  Honeywell 9782 Series pH/ORP Analyzer/Controller Operator Manual    Samsung DVD-P493 User Manual(1/2)  

Copyright © All rights reserved.
Failed to retrieve file