543 resultados para Informatique quantique
Resumo:
En 1975, Wilson et King ont proposé que l'évolution opère non seulement via des changements affectant la structure des protéines, mais aussi via des mutations qui modifient la régulation génétique. L'étude des éléments régulateurs de l'expression génétique a un rôle important dans la compréhension de l'expression de différentes maladies et de la réponse thérapeutique. Nous avons développé un algorithme bio- informatique qui nous permet rapidement de trouver des sites de régulation génétique à travers tout le génome et pour une grande quantité de gènes. Notre approche consiste à trouver des sites polymorphes (SNPs) qui sont en déséquilibre de liaison avec le débalancement allélique (AI) afin de cartographier la région régulatrice et le site responsable. Notre méthode est avantageuse par rapport à d'autres méthodes, car elle n'a pas besoin des données « phasées». De plus, les données de débalancement allélique ne sont pas affectées par des facteurs externes étant donné qu'ils sont mesurés dans la même cellule. Nous avons démontré que notre approche est fiable et qu'elle peut détecter des sites loin du gène. De plus, il peut être appliqué à des données de génotypage sans avoir besoin de les « phaser » .
Resumo:
Sous le régime du Code civil du Bas-Canada, le devoir d’exécuter le contrat de bonne foi était une condition implicite de tout contrat suivant l’article 1024 C.c.B.C. Le 1er janvier 1994, ce devoir a toutefois été codifié à l’article 1375 du Code civil du Québec. Parallèlement à ce changement, le contrat a subi plusieurs remises en question, principalement en raison des critiques émises contre la théorie de l’autonomie de la volonté. En réponse à ces critiques, la doctrine a proposé deux théories qui supposent une importante coopération entre les contractants durant l’exécution du contrat, à savoir le solidarisme contractuel et le contrat relationnel. La notion de bonne foi a aussi évolué récemment, passant d’une obligation de loyauté, consistant généralement en une abstention ou en un devoir de ne pas nuire à autrui, à une obligation plus active d’agir ou de faciliter l’exécution du contrat, appelée devoir de coopération. Ce devoir a donné lieu à plusieurs applications, dont celles de renseignement et de conseil. Ce mémoire étudie la portée et les limites du devoir de coopération. Il en ressort que le contenu et l’intensité de ce devoir varient en fonction de critères tenant aux parties et au contrat. Une étude plus particulière des contrats de vente, d’entreprise et de franchise ainsi que des contrats conclus dans le domaine informatique indique que le devoir de coopération est plus exigeant lorsque le contrat s’apparente au contrat de type relationnel plutôt qu’au contrat transactionnel. Le créancier peut, entre autres choses, être obligé d’« aider » son débiteur défaillant et même de renégocier le contrat devenu déséquilibré en cours d’exécution, bien que cette dernière question demeure controversée. Le devoir de coopération n’est cependant pas illimité parce qu’il s’agit d’une obligation de moyens et non de résultat. Il est également limité, voire inexistant, lorsque le débiteur de cette obligation est tenu à d’autres obligations comme un devoir de réserve ou de non-ingérence, lorsque le cocontractant est de mauvaise foi ou qu’une partie résilie unilatéralement le contrat ou décide de ne pas le renouveler.
Resumo:
La compréhension de la structure d’un logiciel est une première étape importante dans la résolution de tâches d’analyse et de maintenance sur celui-ci. En plus des liens définis par la hiérarchie, il existe un autre type de liens entre les éléments du logiciel que nous appelons liens d’adjacence. Une compréhension complète d’un logiciel doit donc tenir compte de tous ces types de liens. Les outils de visualisation sont en général efficaces pour aider un développeur dans sa compréhension d’un logiciel en lui présentant l’information sous forme claire et concise. Cependant, la visualisation simultanée des liens hiérarchiques et d’adjacence peut donner lieu à beaucoup d’encombrement visuel, rendant ainsi ces visualisations peu efficaces pour fournir de l’information utile sur ces liens. Nous proposons dans ce mémoire un outil de visualisation 3D qui permet de représenter à la fois la structure hiérarchique d’un logiciel et les liens d’adjacence existant entre ses éléments. Notre outil utilise trois types de placements différents pour représenter la hiérarchie. Chacun peut supporter l’affichage des liens d’adjacence de manière efficace. Pour représenter les liens d’adjacence, nous proposons une version 3D de la méthode des Hierarchical Edge Bundles. Nous utilisons également un algorithme métaheuristique pour améliorer le placement afin de réduire davantage l’encombrement visuel dans les liens d’adjacence. D’autre part, notre outil offre un ensemble de possibilités d’interaction permettant à un usager de naviguer à travers l’information offerte par notre visualisation. Nos contributions ont été évaluées avec succès sur des systèmes logiciels de grande taille.
Resumo:
Il est avant-tout question, dans ce mémoire, de la modélisation du timbre grâce à des algorithmes d'apprentissage machine. Plus précisément, nous avons essayé de construire un espace de timbre en extrayant des caractéristiques du son à l'aide de machines de Boltzmann convolutionnelles profondes. Nous présentons d'abord un survol de l'apprentissage machine, avec emphase sur les machines de Boltzmann convolutionelles ainsi que les modèles dont elles sont dérivées. Nous présentons aussi un aperçu de la littérature concernant les espaces de timbre, et mettons en évidence quelque-unes de leurs limitations, dont le nombre limité de sons utilisés pour les construire. Pour pallier à ce problème, nous avons mis en place un outil nous permettant de générer des sons à volonté. Le système utilise à sa base des plug-ins qu'on peut combiner et dont on peut changer les paramètres pour créer une gamme virtuellement infinie de sons. Nous l'utilisons pour créer une gigantesque base de donnée de timbres générés aléatoirement constituée de vrais instruments et d'instruments synthétiques. Nous entrainons ensuite les machines de Boltzmann convolutionnelles profondes de façon non-supervisée sur ces timbres, et utilisons l'espace des caractéristiques produites comme espace de timbre. L'espace de timbre ainsi obtenu est meilleur qu'un espace semblable construit à l'aide de MFCC. Il est meilleur dans le sens où la distance entre deux timbres dans cet espace est plus semblable à celle perçue par un humain. Cependant, nous sommes encore loin d'atteindre les mêmes capacités qu'un humain. Nous proposons d'ailleurs quelques pistes d'amélioration pour s'en approcher.
Resumo:
Analyser le code permet de vérifier ses fonctionnalités, détecter des bogues ou améliorer sa performance. L’analyse du code peut être statique ou dynamique. Des approches combinants les deux analyses sont plus appropriées pour les applications de taille industrielle où l’utilisation individuelle de chaque approche ne peut fournir les résultats souhaités. Les approches combinées appliquent l’analyse dynamique pour déterminer les portions à problèmes dans le code et effectuent par la suite une analyse statique concentrée sur les parties identifiées. Toutefois les outils d’analyse dynamique existants génèrent des données imprécises ou incomplètes, ou aboutissent en un ralentissement inacceptable du temps d’exécution. Lors de ce travail, nous nous intéressons à la génération de graphes d’appels dynamiques complets ainsi que d’autres informations nécessaires à la détection des portions à problèmes dans le code. Pour ceci, nous faisons usage de la technique d’instrumentation dynamique du bytecode Java pour extraire l’information sur les sites d’appels, les sites de création d’objets et construire le graphe d’appel dynamique du programme. Nous démontrons qu’il est possible de profiler dynamiquement une exécution complète d’une application à temps d’exécution non triviale, et d’extraire la totalité de l’information à un coup raisonnable. Des mesures de performance de notre profileur sur trois séries de benchmarks à charges de travail diverses nous ont permis de constater que la moyenne du coût de profilage se situe entre 2.01 et 6.42. Notre outil de génération de graphes dynamiques complets, nommé dyko, constitue également une plateforme extensible pour l’ajout de nouvelles approches d’instrumentation. Nous avons testé une nouvelle technique d’instrumentation des sites de création d’objets qui consiste à adapter les modifications apportées par l’instrumentation au bytecode de chaque méthode. Nous avons aussi testé l’impact de la résolution des sites d’appels sur la performance générale du profileur.
Resumo:
La version intégrale de ce mémoire est disponible uniquement pour consultation individuelle à la Bibliothèque de musique de l’Université de Montréal (http://www.bib.umontreal.ca/MU).
Resumo:
Les logiciels de correction grammaticale commettent parfois des détections illégitimes (fausses alertes), que nous appelons ici surdétections. La présente étude décrit les expériences de mise au point d’un système créé pour identifier et mettre en sourdine les surdétections produites par le correcteur du français conçu par la société Druide informatique. Plusieurs classificateurs ont été entraînés de manière supervisée sur 14 types de détections faites par le correcteur, en employant des traits couvrant di-verses informations linguistiques (dépendances et catégories syntaxiques, exploration du contexte des mots, etc.) extraites de phrases avec et sans surdétections. Huit des 14 classificateurs développés sont maintenant intégrés à la nouvelle version d’un correcteur commercial très populaire. Nos expériences ont aussi montré que les modèles de langue probabilistes, les SVM et la désambiguïsation sémantique améliorent la qualité de ces classificateurs. Ce travail est un exemple réussi de déploiement d’une approche d’apprentissage machine au service d’une application langagière grand public robuste.
Resumo:
Les gènes sont les parties du génome qui codent pour les protéines. Les gènes d’une ou plusieurs espèces peuvent être regroupés en "familles", en fonction de leur similarité de séquence. Cependant, pour connaître les relations fonctionnelles entre ces copies de gènes, la similarité de séquence ne suffit pas. Pour cela, il est important d’étudier l’évolution d’une famille par duplications et pertes afin de pouvoir distinguer entre gènes orthologues, des copies ayant évolué par spéciation et susceptibles d’avoir conservé une fonction commune, et gènes paralogues, des copies ayant évolué par duplication qui ont probablement développé des nouvelles fonctions. Étant donnée une famille de gènes présents dans n espèces différentes, un arbre de gènes (obtenu par une méthode phylogénétique classique), et un arbre phylogénétique pour les n espèces, la "réconciliation" est l’approche la plus courante permettant d’inférer une histoire d’évolution de cette famille par duplications, spéciations et pertes. Le degré de confiance accordé à l’histoire inférée est directement relié au degré de confiance accordé à l’arbre de gènes lui-même. Il est donc important de disposer d’une méthode préliminaire de correction d’arbres de gènes. Ce travail introduit une méthodologie permettant de "corriger" un arbre de gènes : supprimer le minimum de feuilles "mal placées" afin d’obtenir un arbre dont les sommets de duplications (inférés par la réconciliation) sont tous des sommets de "duplications apparentes" et obtenir ainsi un arbre de gènes en "accord" avec la phylogénie des espèces. J’introduis un algorithme exact pour des arbres d’une certaine classe, et une heuristique pour le cas général.
Resumo:
Thèse numérisée par la Division de la gestion de documents et des archives de l'Université de Montréal
Resumo:
Thèse numérisée par la Division de la gestion de documents et des archives de l'Université de Montréal
Resumo:
Thèse numérisée par la Division de la gestion de documents et des archives de l'Université de Montréal
Resumo:
Thèse diffusée initialement dans le cadre d'un projet pilote des Presses de l'Université de Montréal/Centre d'édition numérique UdeM (1997-2008) avec l'autorisation de l'auteur.
Resumo:
Les films de simulations qui accompagnent le document ont été réalisés avec Pymol.
Resumo:
Avec la complexité croissante des systèmes sur puce, de nouveaux défis ne cessent d’émerger dans la conception de ces systèmes en matière de vérification formelle et de synthèse de haut niveau. Plusieurs travaux autour de SystemC, considéré comme la norme pour la conception au niveau système, sont en cours afin de relever ces nouveaux défis. Cependant, à cause du modèle de concurrence complexe de SystemC, relever ces défis reste toujours une tâche difficile. Ainsi, nous pensons qu’il est primordial de partir sur de meilleures bases en utilisant un modèle de concurrence plus efficace. Par conséquent, dans cette thèse, nous étudions une méthodologie de conception qui offre une meilleure abstraction pour modéliser des composants parallèles en se basant sur le concept de transaction. Nous montrons comment, grâce au raisonnement simple que procure le concept de transaction, il devient plus facile d’appliquer la vérification formelle, le raffinement incrémental et la synthèse de haut niveau. Dans le but d’évaluer l’efficacité de cette méthodologie, nous avons fixé l’objectif d’optimiser la vitesse de simulation d’un modèle transactionnel en profitant d’une machine multicoeur. Nous présentons ainsi l’environnement de modélisation et de simulation parallèle que nous avons développé. Nous étudions différentes stratégies d’ordonnancement en matière de parallélisme et de surcoût de synchronisation. Une expérimentation faite sur un modèle du transmetteur Wi-Fi 802.11a a permis d’atteindre une accélération d’environ 1.8 en utilisant deux threads. Avec 8 threads, bien que la charge de travail des différentes transactions n’était pas importante, nous avons pu atteindre une accélération d’environ 4.6, ce qui est un résultat très prometteur.
Resumo:
La flexibilité est une caractéristique intrinsèque des protéines qui doivent, dès le mo- ment de leur synthèse, passer d’un état de chaîne linéaire à un état de structure tridimen- sionnelle repliée et enzymatiquement active. Certaines protéines restent flexibles une fois repliées et subissent des changements de conformation de grande amplitude lors de leur cycle enzymatique. D’autres contiennent des segments si flexibles que leur structure ne peut être résolue par des méthodes expérimentales. Dans cette thèse, nous présentons notre application de méthodes in silico d’analyse de la flexibilité des protéines : • À l’aide des méthodes de dynamique moléculaire dirigée et d’échantillonnage pa- rapluie, nous avons caractérisé les trajectoires de liaison de l’inhibiteur Z-pro- prolinal à la protéine Prolyl oligopeptidase et identifié la trajectoire la plus pro- bable. Nos simulations ont aussi identifié un mode probable de recrutement des ligands utilisant une boucle flexible de 19 acides aminés à l’interface des deux domaines de la protéine. • En utilisant les méthodes de dynamique moléculaire traditionnelle et dirigée, nous avons examiné la stabilité de la protéine SAV1866 dans sa forme fermée insérée dans une membrane lipidique et étudié un des modes d’ouverture possibles par la séparation de ses domaines liant le nucléotide. • Nous avons adapté auproblème de la prédiction de la structure des longues boucles flexibles la méthode d’activation et de relaxation ART-nouveau précédemment uti- lisée dans l’étude du repliement et de l’agrégation de protéines. Appliqué au replie- ment de boucles de 8 à 20 acides aminés, la méthode démontre une dépendance quadratique du temps d’exécution sur la longueur des boucles, rendant possible l’étude de boucles encore plus longues.