Optimization of string transducers
Optimisation de transducteurs sur les mots
Résumé
Transducers are finite-state machines which compute functions (or relations) from words to words. They can be seen as simple programs with limited memory which manipulate strings. These machines have been studied for long in fundamental computer science as a part of automata theory, and are used in many areas such as compiling, natural language processing or stream processing. Various transducer models have been defined in the literature, thanks to many features (such as non-determinism, two-wayness or nesting) which enable to increase the expressive power of the machines. In this setting, a natural question is to solve the related class membership problems: given a function computed by a transducer with "complex" features, can it be computed by a "simpler" transducer? Some of these problems have been solved, using somehow disparate proof techniques. They are generally considered as difficult. In practice, such problems can be interpreted as program optimization issues: given a program using a lot of resources, can we build a "more efficient" equivalent program? This thesis solves various membership problems between existing classes of transductions, both over finite or infinite words. Among others, the celebrated models of two-way transducers and pebble transducers are investigated in detail. Each time, the membership procedure is non-trivial and turns out to be effective (in the sense that it builds a "simpler" transducer whenever it exists). Therefore our results can be considered as program optimization statements. Furthermore, we offer a systematic high-level strategy for solving these problems, which relies on semantic properties (i.e. dealing intrinsically with the functions) as well as syntactic properties (referring to the transducers which compute these functions). Additionally, this thesis provides new computation models and characterizations in order to capture known classes of transductions. These results complete the previous understanding of these classes and provide new insights on their expressive power. The author believes that the various techniques of this manuscript form a rather extensive toolbox for investigating other open membership problems.
Les transducteurs sont des machines à états finis qui calculent des fonctions (ou des relations) des mots vers les mots. Ils peuvent être considérés comme des programmes dont la mémoire est limitée et qui manipulent des chaînes de caractères. Ces machines ont été étudiées depuis longtemps en informatique fondamentale, au sein de la théorie des automates, et sont utilisées dans de nombreux domaines comme la compilation, le traitement des langages naturels, ou le traitement des flux de données. Dans la littérature, de nombreux modèles de transducteurs ont été définis grâce à des fonctionnalités qui permettent d'augmenter l'expressivité des machines (comme le non-déterminisme, la bidirectionnalité ou l'imbrication). Dans ce contexte, une question naturelle est celle de l'appartenance à une classe : étant donnée une fonction calculée par un transducteur avec des fonctionnalités "complexes", peut-on la calculer par un transducteur "plus simple" ? Certains de ces problèmes ont déjà été résolus, et ils sont en général considérés comme difficiles. D'un point de vue pratique, ils s'interprètent comme des questions d'optimisation de programmes : étant donné un programme qui utilise beaucoup de ressources, peut-on construire un programme équivalent qui est "plus efficace" ? Cette thèse propose de résoudre plusieurs problèmes d'appartenance entre des classes de transductions existantes, à la fois sur les mots finis et infinis. Les modèles bien connus de transducteurs bidirectionnels et de transducteurs à jetons sont notamment étudiés. À chaque fois, la procédure d'appartenance est non triviale, et elle s'avère effective (dans le sens où elle construit un transducteur "plus simple" dès qu'il en existe un). C'est pourquoi les résultats de ce manuscrit peuvent être vus comme des techniques d'optimisation de programmes. En outre, nous résolvons ces problèmes par une méthode générique basée sur l'utilisation de propriétés sémantiques (c'est-à-dire qui parlent intrinsèquement des fonctions) et syntaxiques (qui parlent des transducteurs qui calculent ces fonctions). Enfin, cette thèse fournit de nouveaux modèles et de nouvelles caractérisations pour décrire des classes de transductions connues. Ces résultats améliorent et complètent la compréhension de ces classes. L'auteur est convaincu que les différentes techniques développées dans ce manuscrit fournissent une boîte à outils pour étudier d'autres problèmes d'appartenance, qui sont encore ouverts.
Origine | Version validée par le jury (STAR) |
---|