161 |
Data of scanned points' pre-process and curved surface's reconstructionWang, Haiyan January 2009 (has links) (PDF)
Basing on the whole processing of color three-dimensional model laser scanning data, the algorithms and software development was analyzed and researched. The whole procedure includes two parts. One is the pre-processing of point clouds and the other is surface reconstruction. It is the main purpose of this thesis to establish the color three-dimensional model and implement the data interface with other applications. The purpose has been achieved partly, and the software for processing is designed at the same time, which has the standard interface with the laser scanning system. So the processing system and software can be applied in the manufacturing and virtual reality technique, such as the network museum.
The main research work of this thesis is:
1. The main procedure and key algorithms of the pre-processing for color three-dimensional model point clouds has been analyzed, and the integrated method of system judgment and manual selection is used to delete the noise data effectively (Chapter 2).
2. The point clouds data reduction algorithm with the color-boundary preservation in RGB color space is proposed in this paper. The algorithm can avoid both the shape and color distortion (Chapter 3).
3. The smoothing algorithm based on the B-Spline surface fitting is implemented. It is proved by the theory and experiments that this smoothing algorithm has the favorably controllable ability (Chapter 3).
4. In the processing of color surface reconstruction, the mesh algorithm is implemented using the half-edge structure. And it can realize easily the post processing, such as mesh smoothing and mesh reduction (Chapter 4).
5. The key problems on the display of color model in the OpenGL platform are solved (Chapter 5). The robust processing software, 3D Color Surf Verl.O, is developed using C++ language. The framework is layered, that fulfills the function partition lightly. So the software can be revised and updated flexibly (Chapter 6).
|
162 |
An intelligent tutoring system based on agentLi, Long January 2009 (has links) (PDF)
In this paper, the author reviews the history of Intelligent Tutoring System (ITS) and discusses their development in the context of Artificial Intelligence (AI) and educational theory.
This paper also introduces the relatively knowledge of Intelligent Agent ( IA ) and Multi-Agent system, such as the background of the appearance of Multi-Agent system, the commutation language and system of agents, the correspondence model of Multi-Agent system and the collaboration model of Multi-Agent system. And introduces a Multi-Agent system on the base of WWW, the structure of the system and the design of each components are also mentioned in this paper.
Based on this Multi-Agent system, the author brings in an example an intelligent tutoring system based on agent. In this part, the component and the structure of the system are presentation, especially the core of the system tutor agent's function and it's realization.
At the end of this paper, the author concludes the thesis and analyses the use of agent in ITS. And finally talks about the future trend of the ITS.
|
163 |
The vehicle routing problem based on the immune algorithmXu, Jiangang January 2009 (has links) (PDF)
The Vehicle Routing Problem has been a popular research topic in logistics (Physical distribution) which is of much practical value. This thesis studies has the research technique toward vehicle routing problem and the advantage that the immune algorithm has over other algorithms. It also puts forward the method of solving vehicle routing problem by the immune algorithm. In the solution procedure, this thesis creates a new encoded model which can increase the operational efficiency of the algorithm presented by decreasing the encoding length. Through the design of immune memory data and the accelerating or restraining mechanism of the density between the antibodies, this algorithm enables the multiformity of the solution, avoids convergence to partial optimal solution and at the same time effectively avoids the optimal solution in the process of evolution. The experimental result shows that this algorithm is one effective algorithm solving the problem of vehicle routing which makes it possible to get the optimal solution fast.
|
164 |
Ordonnancement de projet sous contraintes de ressources à l'aide d'un algorithme génétique à croisement hybride de type OEPLemamou, Eunice Adjarath January 2009 (has links) (PDF)
Le problème de gestion de projet sous contraintes de ressources (Resource Constrained Project Scheduling Problem) consiste en l'ordonnancement de tâches, également appelées activités, à l'aide d'une ou plusieurs ressources renouvelables ou non, en quantité limitée. Le but visé par la résolution de ce problème est la détermination des dates d'exécution des activités en fonction de la disponibilité des ressources et de façon à satisfaire des objectifs fixés. Les activités sont liées entre elles par des contraintes de préséance qui doivent être respectées lors de l'ordonnancement.
Depuis plus de 30 ans, de nombreuses études ont été consacrées au RCPSP qui est un problème NP-difficile au sens fort. L'aspect pratique de ce problème dans des contextes industriels divers a conduit à de nombreuses recherches et ainsi à des résolutions par des méthodes heuristiques et métaheuristiques. Les algorithmes génétiques (AG) figurent parmi les métaheuristiques qui perforaient le mieux pour la résolution de ce problème. L'optimisation par essaims particulaire (OEP), quant à elle, est une méthode émergente qui intéresse de plus en plus de chercheurs dans le domaine de l'optimisation discrète et qui donne d'assez bons résultats.
Ce mémoire propose une hybridation de ces.deux méthodes dans le but d'améliorer leurs performances individuelles sur des instances de taille moyenne. L'hybridation se fait au niveau du croisement en combinant deux méthodes de croisement, l'une étant le croisement classique à deux points largement répandu au sein de la littérature. La seconde méthode de croisement est nouvelle et se base sur un concept de distances entre deux solutions emprunté à un algorithme d'OEP de la littérature traitant du problème de minimisation du retard total pondéré sur une machine unique. Cet algorithme a d'abord été reproduit et adapté au RCPSP. La comparaison des performances obtenues avec celles des deux autres algorithmes d'OEP connus dans la littérature du RCPSP a été favorable à cette adaptation. Cela a donné lieu à la conception d'une méthode de croisement qui s'inspire des principes de l'OEP et du concept de distances pour générer de nouvelles solutions. Les performances observées lors de l'hybridation des deux méthodes de croisement ci-dessus énumérées montrent bien l'apport de cette technique innovatrice que constitue l'OEP discrète pour la résolution du RCPSP.
Ce travail de recherche représente surtout une première exploration du potentiel offert par la technique de l'OEP et sa combinaison avec deux autres champs de recherche en évolution continue : le RCPSP et les AG. L'association de ces trois domaines de recherche laisse entrevoir des possibilités intéressantes pouvant mener à la conception de nouveaux algorithmes plus performants pour la résolution du RCPSP. Ce mémoire constitue une contribution non seulement vers une meilleure connaissance de l'OEP mais aussi vers l'amélioration des outils d'optimisation en gestion de projet.
|
165 |
Conception d'algorithmes probabilistes pour l'estimation des génotypes d'un corpus de généalogie par chaînes de MarkovCoulibaly, Ismaël January 2009 (has links) (PDF)
La fréquence d'un trait génétique dans une population contemporaine dépend de la fréquence de ce trait chez les ancêtres. Cependant, la seule information génotypique disponible sur ces ancêtres est essentiellement constituée des analyses d'ADN sur un échantillon de contemporains. Aussi, l'intégration des données moléculaires et des données généalogiques se heurtent naturellement à un problème de complétude. L'un des principaux problèmes en génétique des populations est alors d'inférer sur les génotypes de ces ancêtres en se basant sur un échantillon d'individus contemporains. On ne peut cependant reproduire de façon exacte les génotypes des individus. En effet, les lois de transmission des gènes sont telles qu'il est rarement possible d'obtenir un génotype certain pour un ancêtre ; au mieux il est possible d'obtenir qu'une estimation de la loi de probabilité des génotypes ancestraux. L'utilisation d'algorithmes déterministes permet dans des cas simples de trouver les solutions à ce problème. Néanmoins, certains algorithmes probabilistes, particulièrement les méthodes de Monte Carlo par Chaînes de Markov (MCMC), sont particulièrement adaptés à l'analyse des génotypes liée à une structure généalogique. Elizabeth A. Thompson utilise cette technique pour effectuer des analyses de liaisons génétiques (linkage) sur des noyaux familiaux étendus (Wijsman et al. [28]). Le contexte général d'un algorithme probabiliste en informa11 tique étant l'utilisation d'un générateur de nombres pseudo aléatoires, la mise en place de tels algorithmes est donc relativement facile et s'adapte très bien à des problèmes d'inférence. Notre objectif est alors de concevoir des algorithmes efficaces pour l'estimation des génotypes d'un corpus de généalogie en utilisant la technique des MCMC. Le caractère théorique de ces algorithmes et leur efficacité ont été largement étudiés dans plusieurs ouvrages sur lesquelles nous nous sommes basés. Dans ce mémoire, nous nous appliquons principalement à utiliser les méthodes de Monte Carlo par chaînes de Markov (MCMC) à l'analyse de corpus de généalogie. Nous montrons comment nous réussissons à adapter la méthode de l'échantillonnage de Gibbs à l'élaboration d'algorithmes efficaces pour l'inférence des distributions de probabilité génotypique dans le contexte de généalogies profondes.
|
166 |
Algorithmes de génération de musique pour application dans les jeux vidéoGilbert, Jean-Michel January 2008 (has links) (PDF)
Ce mémoire porte sur les algorithmes de génération de musique et leurs applications dans les jeux vidéo. Nous avons choisi ce domaine d'application car, en tant que média interactif complexe, les jeux vidéo représentent un défi de taille pour les compositeurs de musique. Nous commencerons donc par une introduction générale au domaine d'application pour poursuivre avec une présentation ciblée de la problématique. Ensuite, nous passerons en revue une série d'algorithmes de génération de musique issus de la littérature scientifique et basés sur différents modèles mathématiques et nous expliquerons pourquoi aucun d'entre eux ne convient à nos besoins. Nous passerons aussi en revue un éventail d'outils de composition et de mise en séquence de musique interactive. Parmi ces outils, certains ciblent spécifiquement l'industrie du jeu vidéo. Nous expliquerons aussi pourquoi ceux-ci ne correspondaient pas à nos besoins.
Afin de répondre à nos besoins, la troisième partie de ce mémoire présente un nouveau modèle d'automates que nous avons introduit pour la première fois à la conférence Futureplay 2007 : les automates étendus probabilistes. Ce modèle combine la flexibilité des automates étendus et la variabilité des automates probabilistes. Nous décrirons ces modèles d'automates en détails au cours de ce mémoire.
En dernière partie du mémoire, nous présenterons notre outil de composition, introduit aux côtés de notre modèle d'automates étendus probabilistes : IMTool. Cet outil permet à l'utilisateur d'exploiter toute la puissance des automates étendus probabilistes dans un contexte de composition et de mise en séquence de musique pour un jeu vidéo (ou pour toute autre application interactive). En ce sens, celui-ci peut associer des séquences musicales aux états de l'automate, créer des conditions de transition, créer des fonctions de mise-à-jour et associer des probabilités aux transitions. Les conditions de transition et les fonctions de mise-à-jour sont des propriétés des automates étendus et seront expliquées en détails plus loin dans ce mémoire.
|
167 |
Un modèle de reconnaissance d'activités temporelles : extension du modèle de WeidaAjroud, Amir January 2010 (has links) (PDF)
Le vieillissement de la population représente une préoccupation grandissante des gouvernements en raison de l'ampleur qu'il prendra au cours des prochaines décennies et de la rapidité de son évolution. Une des évolutions préconisées pour répondre à cette transformation de la société concerne l'assistance technologique aux personnes âgées en perte d'autonomie à l'intérieur d'un habitat dit intelligent. L'une des problématiques clé inhérente à l'habitat intelligent émane du besoin intrinsèque, pour fournir un service utile, de reconnaître les activités de la vie quotidienne réalisées par le patient à l'intérieur de son habitat. Cette difficulté correspond en fait à une forme particulière d'une problématique bien connue du domaine de l'intelligence artificielle qui est appelée la reconnaissance de plans. Celle-ci réfère au fait qu'on suppose l'existence d'une structure d'activité (ensemble d'actions organisées dans le temps) planifiée au départ par l'entité observée, et qui constitue le résultat que l'agent observateur cherche à reconnaître à partir de sa base de connaissances (librairie de plans). En effet, l'ensemble des informations collectés reliées au temps comme l'ordonnancement des actions, durée d'une action, laps de temps entre deux actions, etc., se révèle d'une très grande importance afin de minimiser les hypothèses plausibles et identifier les erreurs de réalisation : une activité peut être exécutée de manière erronée si la durée acceptable entre deux étapes du plan est dépassée ou bien insuffisante, de même, le patient peut effectuer deux actions en parallèle d'où l'importance du facteur temps.
Ce mémoire de maîtrise apporte des pistes de solutions à la problématique énoncée, qui porte sur la reconnaissance temporelle des activités de la vie quotidienne d'une personne en perte d'autonomie. Il propose une extension à un modèle de reconnaissance d'activités existant, développé par Weida, en incorporant la notion de concepts d'action en logique de description et en introduisant une nouvelle structuration temporelle augmentée permettant de tenir compte de l'aspect quantitatif lié aux durées et aux délais des actions, qui était absent du modèle original. Cette addition d'une couche temporelle numérique offre un moyen efficace d'exploiter les intervalles de temps dans le processus de reconnaissance et permet d'augmenter la performance et la précision du modèle de Weida. Elle permet également la détection de nouvelles anomalies liées au comportement d'un individu en perte d'autonomie. Enfin, le modèle présenté a été implémenté et validé lors de simulations effectuées à l'aide d'un ensemble de scénarios de cas réels tirés d'une étude clinique. Les résultats ont été analysé et comparé à ceux obtenus avec le modèle original de façon à bien montrer l'apport de notre proposition.
|
168 |
Développement d'un modèle de gestion d'objets géo-localisables centralisé utilisant différents moyens de communication dans une environnement OSGIGoundafi, Abdelali January 2010 (has links) (PDF)
Pendant la dernière décennie, la vente des GPS a connue une explosion à l'échelle planétaire. Les applications logicielles et les améliorations matérielles liées à cette industrie, ne cessent de proliférer et ce à une vitesse exponentielle.
Désormais, les systèmes de géo-localisation, et plus précisément le GPS, sont utilisés dans plusieurs domaines. Plusieurs compagnies de transport l'utilisent pour contrôler l'itinéraire de leurs conducteurs afin d'optimiser l'utilisation du réseau routier, d'économiser la consommation d'essence, le temps de transit, etc. Les soldats l'utilisent lors des conflits pour se localiser dans les endroits les plus difficiles d'accès, ils utilisent le GPS aussi pour le guidage précis de leurs bombes et missiles afin de minimiser les dégâts collatéraux. Dans le domaine de la santé, le GPS permet d'augmenter les chances de survie des personnes atteintes d'Alzheimer en les localisant très vite. Un dispositif appelé VPS peut, via un cardiogramme intégré, déceler l'imminence d'une crise cardiaque et envoyer la position du patient aux services de santé afin d'intervenir à temps et par conséquent sauver le patient en question.
Afin de pouvoir gérer tous les services de localisation mentionnés précédemment de manière automatique, nous avons besoin d'un système qui puisse interconnecter tous ces services de façon transparente sans que le code soit un frein pour le développement ni que l'ajout de nouveaux services alourdisse le système et rende la maintenance une tâche très difficile au programmeur.
Le deuxième point de la problématique concerne la communication, les données peuvent être envoyées à distance, dans un système de géo-localisation classique, via un réseau cellulaire. L'usage du réseau cellulaire est coûteux et nous avons besoin d'autres alternatives pour assurer une communication sans-fil à distance à moindre coût.
Le troisième point à résoudre est la précision des dispositifs de géo-localisation. Cette précision n'est pas toujours assurée avec l'usage classique du GPS. Des erreurs dans le système GPS peuvent augmenter considérablement l'imprécision de l'erreur sur le positionnement, pour palier ce problème nous devons disposer de solutions qui permettent d'augmenter la précision et de déterminer si le relevé de la position calculée par le GPS est fiable pour le service de géo-localisation.
En mettant tous les services de géo-localisation dans un même système, nous parviendrons à créer un environnement coopératifs où chaque service pourra utiliser un ou plusieurs autres services pour optimiser le temps de réponse et d'intervention ce qui constitue un quatrième point de notre problématique. La vision globale des services coexistant dans le même système permettra aux décideurs de haut niveau de trouver la logistique optimale pour que les services gérés soient dans leurs pleines capacités opérationnelles.
Les approches de localisation existantes sont basées sur une architecture client serveur où on utilise une connexion GPRS qui est très coûteuse pour envoyer les relevés de positionnement à distance et de manière périodique au serveur. Au niveau du serveur on dispose d'une application pour un service de géo-localisation souvent spécifique à un seul domaine d'application. Toute évolutivité du système devient difficile et onéreuse dépendamment de la complexité de l'application.
Dans ce mémoire, j'ai conçu un modèle pour la gestion des objets géo-localisables qui nous permet de gérer plusieurs services de géo-localisation dans une même plateforme. Cette solution apportera des améliorations par rapport aux modèles standards au niveau du système de communication, la fiabilité des données de localisation, la programmation des composantes du système, de leur intégration et de leur maintenance. Nous avons implémenté ce modèle (dans un outil de gestion et de contrôle d'objets géo-localisables) pour répondre aux quatre problématiques mentionnées précédemment.
|
169 |
Gestion de mémoire dynamique et implicite par aspect pour des logiciels C++Dhiab, Heni January 2010 (has links) (PDF)
Le langage C++ est un langage destiné pour des projets complexes et de taille importante. En effet, il permet la programmation sous de multiples paradigmes, comme la programmation procédurale, la programmation orientée objet et la programmation générique. Sa facilité d'utilisation et son efficacité, soutenues avec une bonne flexibilité et une bonne portabilité, font de lui un langage performant et le 3ème utilisé dans le monde.
Toutefois, les dispositifs de sécurité sont soit absents, soit mal supportés par la programmation C++; malheureusement, la flexibilité et le contrôle explicite des données que C++ offre au programmeur représentent une importante source de vulnérabilité et d'erreurs critiques. Certes, les librairies C++ sont fournies aux programmeurs avec des fonctions pour la gestion des privilèges, la gestion des fichiers, ou encore la gestion du réseau, mais négligent les problèmes de sécurité. Notons que la sécurité est celle de la gestion de mémoire et celle des types tels que les débordements de mémoire tampon, les erreurs de format de chaîne et les mauvaises conversions de type.
Malgré la disponibilité de nombreux livres et documents sur lesquels un programmeur peut s'appuyer pour développer un code sécuritaire, des erreurs de mise en ?uvre ayant des conséquences graves pour la sécurité existent toujours dans le code source. Plus le nombre de lignes augmente, plus un contrôle manuel des violations de la sécurité devient difficile. N'étant pas appuyée par une gestion implicite, la gestion de la mémoire en C++ s'est vue toujours comme un exercice difficile, voire parfois périlleux. Cette contrainte a toujours posé un défi considérable.
Ce travail de recherche vise à développer une méthode et un outil qui permettront une gestion et un débogage implicite de la mémoire C++. Nous nous sommes inspirés des limites de débogueurs de mémoire connues dans le domaine pour réviser certains choix de structuration et de conception de notre outil. La programmation par aspect, incarnant la séparation des préoccupations et formant un support méthodologique de modélisation et de programmation, a servi de support pour 1'implementation d'un outil générique et nous avons pu regrouper l'aspect mémoire en un seul aspect. Et en étant soutenus par la programmation par aspect, nous avons pu aussi contourner les limites du modèle de programmation par objet.
Nous avons opté pour une solution raffinée des solutions déjà proposées {Purify et Memcheck&Valgrind). Cette dernière inclut i) un aspect permettant la sécurisation des allocations et des désallocations des espaces mémoire C++, ii) un aspect de détection et de traitement des erreurs qui sont dues à une mauvaise gestion de mémoire C++, et iii) un aspect capable de calculer le besoin d'une application C++ en mémoire ainsi que son temps d'exécution. L'outil incarnant la solution proposée a été expérimenté sur une application existante et a été comparé avec l'outil Purify selon six critères bien identifiés (Chapitre 5).
|
170 |
Intégration d'un modèle d'adaptation dynamique et de sécurité d'objets avec vueDallaire, Éric January 2010 (has links) (PDF)
La programmation orientée objet est une solution idéale pour une multitude de problèmes depuis plus de deux décennies. Des langages tels que le C++ et le Java ont largement contribué à l'expansion. Ce succès repose en partie sur une raison toute simple : il est plus naturel d'utiliser des objets qui se rapprochent de la réalité « humaine » que de travailler avec des fonctions séquentielles généralement associées à des processus informatiques. Il est relativement aisé d'identifier les caractéristiques et les comportements d'un objet et toute bonne analyse permet de gérer adéquatement les interrelations entre les objets dans un système.
Toutefois, on limite parfois notre réflexion à un stade d'abstraction insuffisant pour aller chercher un maximum d'avantages des objets. Les objets sont correctement développés, dans un système répondant à un nombre fini d'événements, mais on néglige le fait que ce même système est en contact avec un élément chaotique et imprévisible, l'humain.
Prenons exemples des comportements dynamiques entre les objets, des divers patrons de conception déjà avancés, mais surtout de la question des comportements de ces objets (ayant des comportements figés) face aux besoins réels d'un utilisateur en constant changement. Après un certain temps, un système informatique peut évoluer dans ses comportements et ses rôles. De nouvelles fonctionnalités sont, à travers son cycle de vie, ajoutées, supprimées ou deviennent tout simplement non disponibles. Aussi, chacun des acteurs du système, autant les clients humains que les systèmes informatiques externes, a des besoins variables qui peuvent exiger un changement de vocation du système utilisé. Ce dernier doit être évolutif pour y répondre. À une échelle d'entreprise, on peut dire que plusieurs clients observent et utilisent des aspects distincts du même objet. Que faire si cet objet ne peut satisfaire aux différents intérêts du client?
La programmation par vue a pour mission de répondre à cette situation. Elle permet à différents usagers de percevoir et utiliser différents sous-ensembles des fonctionnalités présentes au sein de l'objet a un moment donné. Le client a un besoin un jour, la programmation par vue lui propose une interface adaptée, son besoin change le lendemain, les vues évoluent en conséquence.
La programmation par vue existe depuis quelques années, mais certains questionnements étaient demeurés sans réponse. Le sujet du présent mémoire sera de fournir quelques-unes des réponses à une série de problématiques entourant principalement i) la sécurisation de l'objet partagé selon les privilèges de chaque programme client, ii) la transparence et la gestion de changement de comportements de l'objet en question, et iii) l'intégration de mécanismes de partage des ressources.
Nous avons étendu le modèle de sécurité de Java afin de pouvoir gérer l'évolution des comportements. Java propose un modèle d'utilisation simple demandant une configuration minimale. Notre solution vise à garder une approche le plus transparente possible pour le client et aussi pour la classe de base (le système) que l'on désire faire évoluer.
Notre recherche abordera la programmation par vue avec extension de sécurité à l'aide d'énoncés de problématiques. Le développement de notre outil sera accompli via une solution conceptuelle en UML et une implementation en Java.
|
Page generated in 0.0443 seconds