Search by property
This page provides a simple browsing interface for finding entities described by a property and a named value. Other available search interfaces include the page property search, and the ask query builder.
List of results
- Seminar/2016-09-28 + (Traditionnellement, la prospection commerc … Traditionnellement, la prospection commerciale B2B se fait grâce à des</br>listes d'entreprises classées manuellement, sur la base de données</br>administratives renseignées à la création des entreprises. Ces listes</br>sont donc souvent dépassées, très chères et peu qualifiées.</br></br>C-Radar, produit développé par la société Data Publica, veut</br>transformer la prospection commerciale en enrichissant ces données</br>administratives par des données issues du web. Ainsi, on obtient des</br>données fraîches, plus ciblées. Et grâce aux techniques de machine</br>learning et de clustering, on peut obtenir automatiquement des listes</br>d'entreprises pertinentes à faible coût.</br></br>Lors de cette présentation, nous aborderons les différentes techniques</br>de science des données mises en œuvre dans ce produit, en relation</br>avec les fonctionnalités du produit.ation avec les fonctionnalités du produit.)
- Seminar/2012-03-21 + (Une question fondamentale pour mes recherc … Une question fondamentale pour mes recherches est de savoir ce qu'est</br>une image. Cela peut sembler à première vue une question trop simple :</br>une image, c'est un ensemble de points. Mais ces points sont reliés</br>entre eux, c'est ce qu'on appelle une structure, et ils ont des</br>données de types multiples qui leur sont attachées. La bibliothèque</br>Milena, développée au LRDE, est une bibliothèque générique dédiée au</br>traitement d'images. Dans Milena, trois axes indépendants sont</br>développés : l'axe des structures, l'axe des données, et celui des</br>algorithmes, c'est-à-dire de ce qu'on peut faire avec une image.</br></br>Dans cet exposé, je vais développer plusieurs exemples dans lesquels</br>je choisirai un algorithme et un type de données, en faisant varier la</br>structure. Changer la structure, c'est penser les images d'une manière</br>différente, et c'est quelque chose d'extrêmement porteur en recherche.</br></br>- Un premier exemple est celui d'un algorithme classique de</br> segmentation : la ligne de partage des eaux. Originellement pensé sur</br> les pixels, sa traduction dans le cadre des arêtes donne le problème</br> classique d'arbre couvrant de poids minimum. Si la ligne de partage</br> des eaux est très connue en traitement d'images, les arbres de</br> poids minimum sont très utilisés en classification. Un pont naturel</br> est alors établi entre deux communautés différentes, et les idées</br> provenant de ces deux communautés peuvent être combinées.</br></br>- Un deuxième exemple est celui de la représentation arborescente des</br> images. Pour illustrer, tant les lignes de niveaux que les</br> composantes connexes des ensembles de niveaux (les coupes) des</br> images sont naturellement structurées en arbre : deux lignes ou deux</br> composantes sont soit disjointes soit emboîtées. On peut filtrer</br> une image en éliminant de l'arbre tous les nœuds qui ne vérifient</br> pas un critère. Mais on peut aussi considérer l'arbre lui-même comme</br> une image, et appliquer sur cet arbre un algorithme de traitement</br> d'images. C'est une idée récursive très riche.</br></br>D'autres exemples pourront être développés en fonction du temps : liens</br>entre ligne de partage des eaux topologique et segmentation</br>hiérarchique, topologie discrète dans divers cadres...</br></br>La bibliothèque Milena permet d’appliquer la plupart des algorithmes</br>existants à une nouvelle structure, ce qui est un gain de temps</br>incontestable. Cela permet de se concentrer sur ce qui fait le cœur</br>de mon métier: chercher un algorithme plus efficace, adapté à un type</br>de structure, ou encore chercher quelles sont les propriétés</br>mathématiques d’un algorithme sur une structure donnée. d’un algorithme sur une structure donnée.)
- Seminar/2017-02-08 + (Vcsn est une plateforme consacrée aux auto … Vcsn est une plateforme consacrée aux automates et aux expressions</br>rationnelles. Parce qu'elle traite une large variété de natures</br>d'automates, elle place en son coeur le concept de "contexte", qui</br>type les automates, les expressions rationnelles, etc. La plateforme</br>repose sur une bibliothèque C++14 "templatée" par des contextes, au</br>dessus de laquelle la couche "dyn" qui, grâce à de l'effacement de</br>type et de la compilation à la volée, offre à l'utilisateur le confort</br>d'une bibliothèque traditionnelle avec la généricité et les</br>performances d'une bibliothèque templatée. Ces bibliothèques sont</br>ensuite exposées au travers d'outils en ligne de commande, mais aussi</br>Python et surtout IPython, qui permettent une exploration interactive</br>simple d'algorithmes.</br>La bibliothèque Vcsn repose sur un ensemble d'objets - automates,</br>étiquettes, poids, polynômes, expressions rationnelles et</br>développements rationnels - sur lesquels sont fournis plus de trois</br>cents algorithmes. Dans certains cas, Vcsn offre des fonctionalités</br>inégalées, et certains de ces algorithmes ont des performances</br>supérieures à celles des projets comparables.</br></br>Nous ferons une présentation de l'architecture générale de Vcsn, sous</br>la forme d'une démonstration guidée par les questions, ainsi qu'un</br>exposé des objectifs de Vcsn 3.0.si qu'un exposé des objectifs de Vcsn 3.0.)
- Seminar/2021-02-10 + (We introduce iposets - posets with interfa … We introduce iposets - posets with interfaces - equipped with a novel gluing</br>composition along interfaces and the standard parallel composition. We study</br>their basic algebraic properties as well as the hierarchy of gluing-parallel</br>posets generated from singletons by finitary applications of the two</br>compositions. We show that not only series-parallel posets, but also</br>interval orders, which seem more interesting for modeling concurrent and</br>distributed systems, can be generated, but not all posets. Generating posets</br>is also important for constructing free algebras for concurrent semi-rings</br>and Kleene algebras that allow compositional reasoning about such systems.ompositional reasoning about such systems.)
- Seminar/2022-06-22 + (We present a framework for modelling and v … We present a framework for modelling and verifying epistemic properties over</br>parameterized multi-agent systems that communicate by truthful public</br>announcements. In this framework, the number of agents or the amount of certain</br>resources are parameterized (i.e. not known a priori), and the corresponding</br>verification problem asks whether a given epistemic property is true regardless</br>of the instantiation of the parameters. As in other regular model checking (RMC)</br>techniques, a finite-state automaton is used to specify a parameterized family</br>of systems.</br></br>Parameterized systems might also require an arbitrary number of announcements,</br>leading to the introduction of the so-called iterated public announcement.</br>Although model checking becomes undecidable because of this operator, we provide</br>a semi-decision procedure based on Angluin's L*-algorithm for learning finite</br>automata. Moreover, the procedure is guaranteed to terminate when some</br>regularity properties are met. We illustrate the approach on the Muddy Children</br>puzzle, and we further discuss dynamic protocol encodings through the Dining</br>Cryptographer example.</br></br>Initial publication at AAMAS21, joint work with Anthony Lin and Felix Thomasint work with Anthony Lin and Felix Thomas)
- Seminar/2018-05-30 + (We show a symbolic-execution-based algorit … We show a symbolic-execution-based algorithm computing the precise</br>effect of a program cycle on program variables. For a program variable,</br>the algorithm produces an expression representing the variable value</br>after the number of cycle iterations specified by parameters of the</br>expression. The algorithm is partial in the sense that it can fail to</br>find such an expression for some program variables (for example, it</br>fails in cases where the variable value depends on the order of paths in</br>the cycle taken during iterations).</br></br>We present two applications of this loop summarization procedure. The</br>first is the construction of a nontrivial necessary condition on program</br>input to reach a given program location. The second application is a</br>loop bound detection algorithm, which produces tighter loop bounds than</br>other approaches.tighter loop bounds than other approaches.)
- Seminar/2008-04-30 + (Mouldable programming is about looking at … Mouldable programming is about looking at programs as mouldable</br>fragments of code, not as the static, brittle syntax software often</br>turns out to be. Some simple examples follow. The notation for calling</br>a method "push" which adds an element "E" to a stack "S" can be OO or</br>static method style, it can modify "S" or return the new stack</br>etc. Can we simplify usage to just one form, and mould it to the</br>actual call? A function which breaks down for some input can signal</br>this using return flags, special return values, or exceptions, to name</br>some common ways. Can we abstract over this, and mould to the relevant</br>error handling technique? Often we need to do run-time checking of</br>arguments, e.g., array indexing bounds, forcing us to introduce lots</br>of code to deal with the unwanted cases. Can we use mouldable ideas to</br>simplify the code? In the presentation, we will elaborate on such</br>examples, discussing how we can free us from awkward syntactic</br>constraints.ree us from awkward syntactic constraints.)
- Seminar/2012-02-15 + («The effective exploitation of his powers … «The effective exploitation of his powers of abstraction must be</br>regarded as one of the most vital activities of a competent</br>programmer.» disait Dijsktra.</br></br>En effet, pour aborder la complexité d'un problème, l'explicitation</br>des concepts utiles à sa formalisation et à sa résolution est bien</br>souvent une étape clé. Lorsque que l'on étend ce processus à une</br>classe de problèmes qui partagent les mêmes concepts, il est naturel</br>de se doter d'un langage le plus approprié possible pour manipuler ces</br>abstractions spécifiques à un domaine (en anglais, «Domain Specific</br>Language»).</br></br>Comment implémenter ces DSLs? Une première approche classique reflète</br>les constructions du DSL sous la forme d'un jeu de fonctions de</br>bibliothèque. L'avantage de cette approche est d'utiliser directement</br>son langage généraliste préféré, et sa chaîne de compilation</br>optimisée, de façon à générer du code machine à moindre frais. Par</br>contre, dans ce cadre, l'écriture de passe d'optimisations spécifiques</br>au DSL - à moins d'utiliser des techniques pointues de</br>méta-programmation - est a priori impossible.</br></br>Une seconde approche, opposée, consiste à écrire un compilateur pour</br>le DSL à partir de zéro. Toute liberté est alors donnée à</br>l'implémenteur d'intégrer à son compilateur des passes d'optimisation</br>spécifiques… mais au prix d'une réimplémentation de passes de</br>compilation déjà présentes, et certainement plus abouties, dans le</br>compilateur de son langage généraliste favori.</br></br>Dans cet exposé, je présenterai les travaux de Martin Odersky et</br>son équipe sur la virtualisation de DSLs à l'intérieur du langage de</br>programmation Scala. La virtualisation de langage utilise</br>intensivement le polymorphisme et la composition mixin de Scala ainsi</br>que des techniques de génération de code à l'exécution pour embarquer</br>des langages spécifiques dans Scala dont la compilation peut</br>réutiliser des modules du compilateur mais aussi étendre ces derniers</br>par des optimisations spécifiques au domaine. des optimisations spécifiques au domaine.)