En informatique théorique et en théorie des langages, l'algorithme de Cocke-Younger-Kasami (CYK) est un algorithme d'analyse syntaxique pour les grammaires non contextuelles, publié par Itiroo Sakai en 1961. Il permet de déterminer si un mot est engendré par une grammaire, et si oui, d'en donner un arbre syntaxique. L'algorithme est nommé d'après les trois personnes qui l'ont redécouvert indépendamment, J. Cocke, dont l'article n'a jamais été publié, D. H. Younger et T. Kasami qui a publié un rapport interne aux US-AirForce. L'algorithme opère par analyse ascendante et emploie la programmation dynamique. L'algorithme suppose que la grammaire est en forme normale de Chomsky. Cette restriction n'est pas gênante dans la mesure où toute grammaire non contextuelle admet une grammaire en forme normale de Chomsky équivalente. Le temps de calcul de cet algorithme est en , où est la longueur du mot à analyser et est la taille de la grammaire. Sans perte de généralité, on suppose que la grammaire n'engendre pas le mot vide . Ainsi, on peut supposer que la grammaire est sous forme normale de Chomsky et qu'elle ne contient pas de règles de la forme (on parle de grammaire propre, voir grammaire non contextuelle). Soit un mot non vide à analyser. L'algorithme emploie la programmation dynamique. Les sous-problèmes sont les suivants : est l'ensemble des non-terminaux qui engendrent le mot pour tout tels que où est la longueur du mot . thumb|380x380px|Principe de l'algorithme CYK : cas de base et cas récursif. On peut calculer les ensembles par récurrence sur . Cas de base : est l'ensemble des non-terminaux tel que est une règle de la grammaire. Cas récursif : Si , est l'ensemble des non-terminaux tels qu'il existe une règle où et sont des non-terminaux et un entier tels que est dans et est dans . La figure à droite montre le cas de base et le cas récursif. On en déduit un algorithme de programmation dynamique qui calcule tous les ensembles . Le mot est engendré par la grammaire si et seulement si est dans où est l'axiome de la grammaire et est la longueur du mot .

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (1)
CS-320: Computer language processing
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language in
Séances de cours associées (31)
CYK Algorithme pour l'analyse des grammaires générales
Explore l'analyse des grammaires générales à l'aide de l'algorithme CYK et de Chomsky Normal Form.
Bandits contextuels : une stratégie simplifiée pour la sélection de contenu
Introduit des bandits contextuels pour la sélection de contenu en fonction de différents contextes.
CYK Parsing Algorithme pour les grammaires générales
Introduit l'algorithme d'analyse CYK pour les grammaires sans contexte, expliquant sa gestion de l'ambiguïté et de l'importance dans l'analyse des grammaires générales.
Afficher plus
Publications associées (44)

Adaptive projected variational quantum dynamics

Giuseppe Carleo, Stefano Barison, David Linteau

We propose an adaptive quantum algorithm to prepare accurate variational time evolved wave functions. The method is based on the projected variational quantum dynamics (pVQD) algorithm, that performs a global optimization with linear scaling in the number ...
Amer Physical Soc2024

Update on yesterday's dose-Use of delivery log-files for daily adaptive proton therapy (DAPT)

Marco Matter

In daily adaptive proton therapy (DAPT), the treatment plan is re-optimized on a daily basis. It is a straightforward idea to incorporate information from the previous deliveries during the optimization to refine this daily proton delivery. A feedback sign ...
2020
Afficher plus
Concepts associés (12)
Analyse syntaxique
L' consiste à mettre en évidence la structure d'un texte, généralement une phrase écrite dans une langue naturelle, mais on utilise également cette terminologie pour l'analyse d'un programme informatique. L' (parser, en anglais) est le programme informatique qui réalise cette tâche. Cette opération suppose une formalisation du texte, qui est vue le plus souvent comme un élément d'un langage formel, défini par un ensemble de règles de syntaxe formant une grammaire formelle.
Analyse Earley
En théorie des langages, l'algorithme d'Earley est un algorithme d'analyse syntaxique pour les grammaires non contextuelles décrit pour la première fois par Jay Earley. À l'instar des algorithmes CYK et GLR, l'algorithme d'Earley calcule toutes les analyses possibles d'une phrase (et pas seulement une de ces analyses). Il repose sur de la programmation dynamique. On peut construire un analyseur Earley pour toute grammaire non contextuelle. Il s'exécute en temps cubique (O (n3), où n est la longueur de la chaîne d'entrée).
Grammaire formelle
Une grammaire formelle est un formalisme permettant de définir une syntaxe et donc un langage formel, c'est-à-dire un ensemble de mots admissibles sur un alphabet donné. La notion de grammaire formelle est particulièrement utilisée en programmation logique, compilation (analyse syntaxique), en théorie de la calculabilité et dans le traitement des langues naturelles (tout particulièrement en ce qui concerne leur morphologie et leur syntaxe).
Afficher plus

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.