67 research outputs found

    Quelques contributions en logique mathématique et en théorie des automates

    Get PDF
    This work deals mainly with automata theory, mathematical logic and their applications. In the first part, we use finite automata to prove the automaticity of several logical structures over finite words written in a countable infinite alphabet. These structures involve predicates like ≺, "clone" and "diff", where x ≺ y holds if x is a strict prefix of y, clone(x) holds when the two last letters of x are equal, and diff(x) holds when all letters of x are pairwise distinct. The automaticity results allow to deduce the decidability of logical theories associated with these structures. Other related decidability/undecidability results are obtained by logical interpretation. In the second part, we generalize the concept of Common Follow Sets of a regular expression to homogeneous finite automata. Based on this concept and a particular class of binary trees, we devise an efficient algorithm to reduce/minimize the number of transitions of triangular automata. On the one hand, we prove that the produced reduced automaton is asymptotically minimal, in the sense that for an automaton with n states, the number of transitions in the reduced automaton is equivalent to n(log₂ n)², which corresponds at the same time to the upper and the lower known bounds. On the other hand, experiments reveal that for small values of n, all minimal automata are exactly those obtained by our reduction, which lead us to conjecture that our construction is not only a reduction but a minimization. In the last part, we present an experimental study on the use of special automata on partial words for the approximate pattern matching problem in dictionaries. Despite exponential theoretical time and space upper bounds, our experiments show that, in many practical cases, these automata have a linear size and allow a linear search timeLes problèmes traités et les résultats obtenus dans ce travail s'inscrivent essentiellement dans le domaine de la théorie des automates, la logique mathématique et leurs applications. Dans un premier temps on utilise les automates finis pour démontrer l'automaticité de plusieurs structures logiques sur des mots finis écrits dans un alphabet infini dénombrable. Ceci nous permet de déduire la décidabilité des théories logiques associées à ces structures. On a considéré par exemple la structure S=(Σ∗;≺,clone) où Σ∗ désigne l'ensemble des mots finis sur l'alphabet infini dénombrable Σ, ≺ désigne la relation de préfixe et "clone" désigne le prédicat qui est vrai pour un mot se terminant par deux lettres identiques. On a démontré l'automaticité de la structure S et la décidabilité de sa théorie du premier ordre et de sa théorie monadique du second ordre. On a aussi considéré des extensions de la structure S obtenues en ajoutant des prédicats comme ∼ qui est vrai pour deux mots de même longueur. Nous avons en particulier démontré la M-automaticité de la structure (Σ∗;≺,clone,∼), d'où la décidabilité de sa théorie du premier ordre. On a par ailleurs étudié des structures qui comportent le prédicat "diff" qui est vrai pour un mot dont les lettres sont toutes distinctes. En particulier on a démontré l'automaticité de la structure D=(Σ∗;≺,clone,diff) et la décidabilité de sa théorie du premier ordre et de sa théorie monadique du second ordre. On a également obtenu, par interprétation logique, des résultats de décidabilité et des résultats d'indécidabilité pour plusieurs variantes des structures S et D, ainsi que pour des familles de structures appelées structure d'applications exclusives et structure de décomposition. Dans un deuxième temps on s'est intéressé au problème de la réduction du nombre de transitions dans les automates finis. On a commencé par étendre le concept de Common Follow Sets d'une expression régulière aux automates finis homogènes. On a montré comment établir une liaison assez directe entre des systèmes de CFS spécifiques et les arbres binaires complets. Ce lien est prouvé en utilisant un objet combinatoire appelé triangle d'Ératosthène - Pascal. Cette correspondance permet de transformer la valeur qui nous intéresse (le nombre de transitions) en une valeur assez naturelle associée aux arbres (le poids d'un arbre). En effet, construire un automate ayant un minimum de transitions revient à trouver un arbre de poids minimal. On a montré, d'une part, que ce nombre de transitions est asymptotiquement équivalent à n(log₂ n)² (la borne inférieure). D'autre part, les tests expérimentaux montrent que pour les petites valeurs de n, les automates minimaux en nombre de transitions coïncident (en nombre et en taille) avec ceux obtenus par notre construction. Cela nous mène à suggérer que notre réduction est finalement une minimisation pour les automates triangulaires. Dans un dernier temps on a présenté une étude expérimentale concernant l'application des automates à trous dans le domaine de la recherche approchée de motif dans les dictionnaires de mots. Contrairement aux complexités théoriques, temps de recherche et espace de stockage exponentiels, nos expérimentations montrent la linéarité de l'automate à trou

    Décidabilité et Complexité

    Get PDF
    International audienceL'informatique fondamentale est un vaste sujet, comme en témoignent les 2 283 et 3 176 pages des "Handbooks" (228; 1). Couvrir en quelques dizaines de pages, l'ensemble de l'in- formatique nous a semblé une entreprise hors de notre portée. De ce fait, nous nous sommes concentrés sur la notion de calcul, sujet qui reflète le goût et la passion des auteurs de ce chapitre. La notion de calcul est omniprésente et aussi ancienne que les mathématiques

    Diagnostic, opacité et test de conformité pour des systèmes récursifs

    Get PDF
    L'une des façons les plus efficace de s'assurer du bon fonctionnement d'un système informatique est de les représenter par des modèles mathématiques. De nombreux travaux ont été réalisés en utilisant des automates finis comme modèles, nous essayons ici d'étendre ces travaux à des modèles infinis. Dans cette thèse, nous nous intéressons à quelques problèmes dans lesquels un système est observé de façon incomplète. Dans ce cas, il est impossible d'accéder à certaines informations internes. La diagnosticabilité d'une propriété donnée consiste à vérifier qu'à l'exécution du système, un observateur sera en mesure de déterminer avec certitude que la propriété est vérifiée par le système. L'opacité consiste, réciproquement, à déterminer qu'un doute existera toujours. Une autre application concerne la génération de cas de test. Une fois encore, on considère qu'un observateur n'accède qu'à une partie des événements se produisant dans le système (en général les entrées et les sorties). À partir d'une spécification, on produit automatiquement des cas de test, qui ont pour but de détecter des non-conformités (elles même formalisées de façon précise). Ces trois problèmes ont été étudiés pour des modèles finis. Dans cette thèse, nous étendons leur étude aux modèles récursifs, pour cela nous avons introduit notre propre modèle, les RTS, qui sont une généralisation des automates à pile, et d'autres modèles de la récursivité. Nous adaptons ensuite les techniques utilisées sur des modèles finis, qui servent à résoudre les problèmes qui nous intéressent.An effective way to ensure the proper functioning of a computer system is to represent it by using mathematical models . Many studies have been conducted using finite automata as models, in this thesis we try to extend these works to infinite models. We focus on three problems in which a system is partially observed. In this case, it is impossible to access certain internal informations. Diagnosability of a given property consist in checking, that, during the execution of the system, an observer will be able to determine with certainty that the property is verified by the system. Conversely, the opacity consists in determining if a doubt will always exist. Another application is the generation of test cases. Once again, we consider that an observer accesses only some events of the system (typically the inputs and outputs): from a specification, we automatically generate test cases, which are designed to detect non-conformance. These three problems have been studied for finite models. In this thesis, we extend their study to recursive models. For this purpose, we have introduced a new model, the RTS, which are a generalization of pushdown automata and other models of recursion. In order to solve problems of interest, we adapt the techniques used in finite models.RENNES1-Bibl. électronique (352382106) / SudocSudocFranceF

    Algorithmes et architectures pour l'implémentation de la détection d'expressions régulières

    Get PDF
    La prochaine génération de réseau mobile, la 5G, devrait supporter des latences 10 fois plus faibles avec des débits et un nombre d’appareils connectés 100 fois plus importants qu’aujourd’hui. Dans le même temps, les opérateurs et les gestionnaires de réseaux veulent des systèmes plus modulaires qui puissent s’adapter rapidement aux nouveaux protocoles, mais qui ne consomment pas plus d’énergie que les solutions actuelles. Les opérateurs et administrateurs sont donc de plus en plus intéressés par des plateformes reconfigurables telles que des FPGA. Cependant, ces plateformes nécessitent encore des experts pour être utilisées et ont des temps de développement qui peuvent être longs ce qui les rend difficiles à intégrer. De plus, les infrastructures informatiques sont des éléments de plus en plus critiques pour le fonctionnement de l’économie. La sécurité des réseaux est donc devenue un point important pour protéger ces infrastructures. Actuellement la protection des réseaux est effectuée en utilisant des Systèmes de Détection d’Intrusions — Intrusion Detection System (IDS) qui effectuent l’inspection en profondeur de paquets — Deep Packet Inspection (DPI). Pour permettre la protection, les IDS comparent le contenu des paquets transitant sur le réseau à des règles prédéterminées. Ces règles sont représentées soit par des chaînes de caractères ou bien des expressions régulières. Dans ce mémoire, nous proposons trois contributions en rapport à l’utilisation de FPGA pour effectuer de la recherche de texte et d’expressions régulières dans les réseaux. Ces trois réalisations sont implémentées sur des FPGA et respectent les contraintes de latence liées aux réseaux.----------ABSTRACT: The next generation of mobile networks, called 5G, is expected to achieve significantly better performance than present networks : latency 10x smaller, throughput 100x higher with 100x more connected devices over the so-called 4G. Moreover, service providers and network administrators will need more configurable systems able to rapidly support new protocols. Furthermore, the power consumption of the resulting network infrastructure remains a critical consideration. A possible solution to meet all those requirements involves the use of FPGAs. However, the development complexity causes integration difficulties. In addition, computers and data-centers are more and more critical systems. Consequently, security is an important issue. This motivates introducing Intrusion Detection Systems (IDS), which perform Deep Packet Inspection (DPI). IDSs compare the network flow against a set of rules that are expressed with strings and regular expressions. This thesis proposes three contributions in regard to FPGAs utilization for text and regular expression search. Those contributions respect the latency constraint of networks and are implemented into FPGAs

    Automates Cellulaires : Aspects algorithmiques des configurations périodiques en toute dimension

    Get PDF
    This thesis analyses the computational capabilities of cellular automata working on periodical configurations of any dimension. We first study the maximal objects these cellular automata can identify; we call those objects primitive roots of periodical configurations of any dimension. We characterize them and show some of their properties.Secondly, we present a set of algorithms on cellular automata, each one adapted to one or more dimensions, that extract primitive roots from the periodical configurations on which they are applied. Those algorithms use original tools that extend the notion of signals on cellular automata.Beyond its technical and algorithmical aspects, this thesis lays the foundations of uniform periodical computation, \emph{i.e.} computation performed on a model whose program and entry data are isotropic. In particular, we address the issues of halting such computation, reading its result and defining its temporal or spatial complexity.Cette thèse analyse les capacités de calcul des automates cellulaires travaillant sur les configurations périodiques de dimension quelconque. D'une part, nous étudions les objets maximaux identifiables par ces automates cellulaires; nous appelons ces objets les racines primitives des configurations périodiques de dimension quelconque. Nous en présentons une caractérisation et mettons en évidence certaines de leurs propriétés. D'autre part, nous présentons un ensemble d'algorithmes, chacun adapté à une ou plusieurs dimensions particulières, permettant aux automates cellulaires d'extraire les racines primitives des configurations périodiques sur lesquelles ils sont appliqués. Ceux-ci utilisent des outils algorithmiques originaux étendant la notion de signal sur les automates cellulaires en dimension quelconque.Au-delà des aspects techniques et algorithmiques, cette thèse pose les bases du calcul périodique uniforme, c'est-à-dire du calcul effectué sur un modèle dans lequel le programme et l'entrée sont isotropes. Nous y abordons notamment les problématiques de l'arrêt d'un tel calcul, de lecture de son résultat et de sa complexité en temps et en espace

    Mise au point d'un formalisme de haut niveau pour le traitement automatique des langues

    Get PDF
    The goal of computational linguistics is to provide a formal account linguistical knowledge, and to produce algorithmic tools for natural language processing. Often, this is done in a so-called generative framework, where grammars describe sets of valid sentences by iteratively applying some set of rewrite rules. Another approach, based on model theory, describes instead grammaticality as a set of well-formedness logical constraints, relying on deep links between logic and automata in order to produce efficient parsers. This thesis favors the latter approach.Making use of several existing results in theoretical computer science, we propose a tool for linguistical description that is both expressive and designed to facilitate grammar engineering. It first tackles the abstract structure of sentences, providing a logical language based on lexical properties of words in order to concisely describe the set of grammaticaly valid sentences. It then draws the link between these abstract structures and their representations (both in syntax and semantics), through the use of linearization rules that rely on logic and lambda-calculus.Then in order to validate this proposal, we use it to model various linguistic phenomenas, ending with a specific focus on languages that include free word order phenomenas (that is, sentences which allow the free reordering of some of their words or syntagmas while keeping their meaning), and on their algorithmic complexity.La linguistique informatique a pour objet de construire un modèle formel des connaissances linguistiques, et d’en tirer des algorithmes permettant le traitement automatique des langues. Pour ce faire, elle s’appuie fréquemment sur des grammaires dites génératives, construisant des phrases valides par l’application successive de règles de réécriture. Une approche alternative, basée sur la théorie des modèles, vise à décrire la grammaticalité comme une conjonctionde contraintes de bonne formation, en s’appuyant sur des liens profonds entre logique et automates pour produire des analyseurs efficaces. Notre travail se situe dans ce dernier cadre.En s’appuyant sur plusieurs résultats existants en informatique théorique, nous proposons un outil de modélisation linguistique expressif, conçu pour faciliter l’ingénierie grammaticale. Celui-ci considère dans un premier temps la structure abstraite des énoncés, et fournit un langage logique s’appuyant sur les propriétés lexicales des mots pour caractériser avec concision l’ensemble des phrases grammaticalement correctes. Puis, dans un second temps, le lien entre ces structures abstraites et leurs représentations concrètes (en syntaxe et en sémantique) est établi par le biais de règles de linéarisation qui exploitent la logique et le lambda-calcul.Par suite, afin de valider cette approche, nous proposons un ensemble de modélisations portant sur des phénomènes linguistiques divers, avec un intérêt particulier pour le traitement des langages présentant des phénomènes d’ordre libre (c’est-à-dire qui autorisent la permutation de certains mots ou groupes de mots dans une phrase sans affecter sa signification), ainsi que pour leur complexité algorithmique

    Mise au point d'un formalisme syntaxique de haut niveau pour le traitement automatique des langues

    Get PDF
    The goal of computational linguistics is to provide a formal account linguistical knowledge, and to produce algorithmic tools for natural languageprocessing. Often, this is done in a so-called generative framework, where grammars describe sets of valid sentences by iteratively applying some set of rewrite rules. Another approach, based on model theory, describes instead grammaticality as a set of well-formedness logical constraints, relying on deep links between logic and automata in order to produce efficient parsers. This thesis favors the latter approach. Making use of several existing results in theoretical computer science, we propose a tool for linguistical description that is both expressive and designed to facilitate grammar engineering. It first tackles the abstract structure of sentences, providing a logical language based on lexical properties of words in order to concisely describe the set of grammaticaly valid sentences. It then draws the link between these abstract structures and their representations (both in syntax and semantics), through the use of linearization rules that rely on logic and lambda-calculus. Then in order to validate this proposal, we use it to model various linguistic phenomenas, ending with a specific focus on languages that include free word order phenomenas (that is, sentences which allow the free reordering of some of their words or syntagmas while keeping their meaning), and on their algorithmic complexity.La linguistique informatique a pour objet de construire un modèle formel des connaissances linguistiques, et d’en tirer des algorithmes permettant le traitement automatique des langues. Pour ce faire, elle s’appuie fréquemment sur des grammaires dites génératives, construisant des phrases valides par l’application successive de règles de réécriture. Une approche alternative, basée sur la théorie des modèles, vise à décrire la grammaticalité comme une conjonction de contraintes de bonne formation, en s’appuyant sur des liens profonds entre logique et automates pour produire des analyseurs efficaces. Notre travail se situe dans ce dernier cadre. En s’appuyant sur plusieurs résultats existants en informatique théorique, nous proposons un outil de modélisation linguistique expressif, conçu pour faciliter l’ingénierie grammaticale. Celui-ci considère dans un premier temps la structure abstraite des énoncés, et fournit un langage logique s’appuyant sur les propriétés lexicales des mots pour caractériser avec concision l’ensemble des phrases grammaticalement correctes. Puis, dans un second temps, le lien entre ces structures abstraites et leurs représentations concrètes (en syntaxe et en sémantique) est établi par le biais de règles de linéarisation qui exploitent la logique et le lambda-calcul. Par suite, afin de valider cette approche, nous proposons un ensemble de modélisations portant sur des phénomènes linguistiques divers, avec un intérêt particulier pour le traitement des langages présentant des phénomènes d’ordre libre (c’est-à-dire qui autorisent la permutation de certains mots ou groupes de mots dans une phrase sans affecter sa signification), ainsi que pour leur complexité algorithmique

    Étendre la spécification de programmes C concurrents et les vérifier par une transformation de source à source

    Get PDF
    L’utilisation croissante de systèmes informatiques critiques et l’augmentation de leur complexité rendent leur bon fonctionnement essentiel. Le model-checking logiciel permet de prouver formellement l’absence d’erreurs dans un programme. Il reste cependant limité par deux facteurs : l’explosion combinatoire et la capacité à spécifier le comportement correct d’un programme. Ces deux problèmes sont amplifiés dans le cas de programmes concurrents, à cause des différents entrelacements possibles entre les fils d’exécutions. Les assertions et les formules logiques LTL sont les deux formalismes de spécification les plus utilisés dans le cadre du model-checking logiciel. Cependant, ils sont limités dans un contexte concurrent : les assertions ne permettent pas d’exprimer des relations temporelles entre différents fils d’exécutions alors que les formules LTL utilisées par les outils actuels ne permettent pas d’exprimer des propriétés sur les variables locales et les positions dans le code du programme. Ces notions sont pourtant importantes dans le cas de programmes concurrents. Dans ce mémoire, nous établissons un formalisme de spécification visant à corriger ces limitations. Ce formalisme englobe LTL et les assertions, en permettant d’exprimer des relations temporelles sur des propositions faisant intervenir les variables locales et globales d’un programme ainsi que les positions dans le code source. Nous présentons aussi un outil permettant de vérifier une spécification exprimée dans ce formalisme dans le cas d’un programme concurrent codé en C. Notre formalisme se base sur la logique LTL. Il permet de surmonter deux des principales limitations rencontrées par les variantes de LTL utilisées par les outils de model-checking logiciel : manipuler des positions dans le code et des variables locales dans les propositions atomiques. La principale difficulté est de définir correctement dans l’ensemble du programme une proposition atomique lorsqu’elle dépend d’une variable locale. En effet, cette variable locale n’a de sens que dans une partie limitée du programme. Nous résolvons ce problème en utilisant le concept de zones de validité. Une zone de validité est un intervalle de positions dans le code source du programme dans laquelle la valeur d’une proposition atomique est définie à l’aide de sa fonction d’évaluation. Une valeur par défaut est utilisée hors de la zone de validité. Ceci permet de limiter l’utilisation de la fonction d’évaluation aux contextes où tous ses paramètres locaux sont définis.----------ABSTRACT : Critical programs and IT systems are more and more broadly used. Simultaneously, their complexity increase. More than ever, it is crucial to ensure their correctness. Software model-checking is a verification technique that allows to formally prove the absence of errors in a program. However, it faces two main issues: combinatorial explosion and the ability to specify the correct behavior of a program. These issues are amplified for concurrent programs because of the interleaving between threads. Assertions and LTL formulas are the most used specification formalism for software model-checking. However they are restricted in a concurrent context. On the one hand, it is not possible to express temporal relations between threads or events of the program using only assertions. On the other hand, LTL formulas that are supported by the main software model-checkers does not allow to use local variables and program locations, whereas program locations are often a convenient way to check the synchronization between threads. In this report, we establish a specification formalism aiming to overcome these issues. This formalism is a superset of both LTL and assertions. It allows to express propositions that use global and local variables and propositions, and to build temporal relations on these propositions. Then, we introduce a tool allowing to check for the correctness of concurrent C programs specified with the formalism we introduce. Our formalism is based on the LTL logic. It tackles the problems of code location manipulation in specification and the use of local variable in atomic propositions. The main difficulty is to properly define an atomic proposition in the whole program when it depends on a local variable, as the local variable is defined only in part of the program. We solve this issue using the concept of validity area. A validity area is an interval of code locations in which the value of an atomic proposition is computed using its evaluation function. A default value is used out of the validity area. Hence, it is possible to limit the use of the evaluation function to the lexical contexts where all local parameters are defined

    Qualité de service et calcul de chemins dans les réseaux inter-domaine et multicouches

    Get PDF
    Quality of Service (QoS) is a guarantee of network parameters (high bandwidth, short delay, etc.). In an inter-domaine network, it can be provided by contracts between domains, called Service Level Agreements (SLAs). In this thesis, we first focus on the SLA negotiation step, i.e., the selection of SLAs proposed by a domain. We provide exact and approximate methods that allow the domains to propose the SLAs that maximize their revenues. We also study the impact of the domain reputation on the negotiation process. Regarding the SLA instantiation step, we focus on path computation processes that take into account the encapsulation of protocols (in order to overcome the domain technological heterogeneity). Using tools from Language Theory, we provide the first polynomial solution to the path computation problem in this context.La Qualité de Service (Quality of Service - QoS) est une garantie de paramètres réseau (bande passante élevée, délai court, etc.). Dans un réseaux inter-domaine, elle peut être assurée par des contrats entre domaines appelés Service Level Agreements (SLA). Dans cette thèse, nous nous intéressons d’abord à l’étape de négociation de SLA : la sélection des SLA proposés par un domaine. Nous proposons des méthodes exactes et approchées permettant aux domaines de proposer les SLA qui maximisent leurs revenus. Nous étudions également l'impact de la réputation des domaines sur cette négociation. Au niveau de l’instanciation des SLA, nous nous intéressons au calcul de chemins qui prennent en compte les encapsulations de protocoles (afin de pallier l’hétérogénéité technologique des domaines). En utilisant des outils de théorie des langages, nous proposons la première solution polynomiale au calcul de chemins dans un tel context
    corecore