5.2. Modules 69a population. In this function, aJob()for each AP is queued in the Simulator andconfigured with the free parameter values obtained from gene values of the organisminstance.The different free parameters of the model have to be declared in thegenomeclass variable of theRadioPropConverger(). Each element of thegenomeis anamed subclass ofpygene.Gene (), for example in the Optimizer implementationtheMaterialGene(pygene.FloatGene)gene class is used.If all submitted jobs are returned, the fitness of organism can be computed whichleads to progress in the population evaluation. If all organisms are fitness-evaluated,the Optimizer can decide to stop the process. This is either decided by a hard limitonto the number of allowed generations of if the difference between the quality oftwo populations becomes to small.The individualfitness()results with the corresponding free parameters are storedand the full convergence process can be visualized with the Plotter. The output ofsuch a visualization can be seen in figure A.10.Plotter/EvaluatorA smaller component that is only implemented at the module level, is the Plotter. Itsmain responsibility, which can be derived from the name, is the output of differentgraphics that are used to understand the localization results of the framework. It isaccessed by the Evaluator and the Server component. Whereas the Evaluator usesthe Plotter to produce plots of the evaluated localization results(see figure A.9)or other special details of the algorithms, the Server only retrieves these plots anddelivers them to the clients. The plotter uses primarily the presented Matplotliblibrary and a generic 2D drawing engine, the Python Image Library(PIL). Since thedifferent produced plots share only minor properties, the Plotter consists only of alist of functions instead of being implemented at the class level.The Evaluator is implemented as a Python class that it responsible to evaluate theerror rates and other properties of the localization results. The instantiation of anEvaluator class is configured by a set of initialization parameters that describe thesetup of the environment and the configuration of the chosen localization algorithm.The instance can then be instrumented to analyze a part of the evaluation corpusby calling theevalAll(pathid2runids)method. The pathid2runids represents thechosen subset of the corpus and is a mapping from pathids to lists of sample runs.The chosen samples of the corpus are evaluated in parallel by using the convenientconcurrentpackage from the Python standard library. Since all algorithms are ex-ecuted in GIL-free C-space, the Evaluator is able to exploit multiple cores efficiently.After computing the localization results for the chosen samples, the different variantsof the error rates are determined and stored in path-separated XML files for laterinspection.RendererThe last subsystem of the Server is the Renderer that is used for generating HTML pages for the various web-browser based user interfaces. It consists only of a col-
Diplomarbeit
Indoor Localization of Mobile Devices Based on Wi-Fi Signals Using Raytracing Supported Algorithms
Einzelbild herunterladen
verfügbare Breiten