Mon problème a-t-il déjà été résolu, il me suffit donc de lire les bonnes références?
La théorie de la famille abstraite des langues est pertinente. Par exemple, les morphismes définis par les transducteurs à états finis conduisent à la famille des cônes . Le court exposé ICM d' Eilenberg de 1970 explique bien ce cadre, voir aussi le chapitre 11 "Propriétés de fermeture des familles de langues" de Introduction to Automata Theory, Languages, and Computation (1ère éd.) Par J. Hopcroft et J. Ullman de 1979. Cependant , seules les langues non déterministes s'inscrivent dans ce cadre 1 . Finalement, le livre Theory of codes de J. Berstel et D. Perrin de 1985 m'a aidé à trouver des solutions raisonnables à mon problème. Codes et automatespar J. Berstel, D. Perrin et C. Reutenauer à partir de 2009 est une révision majeure de ce livre avec une couverture beaucoup plus large.
Ce raisonnement a-t-il une chance de "résoudre" mon problème? Mon problème lui-même a-t-il un sens, ou est-ce aussi erroné que ...?
L'hypothèse selon laquelle il existe une catégorie correcte pour modéliser les isomorphismes entre les langues afin de "formaliser le concept d'un problème" est erronée. Il existe de nombreuses catégories différentes qui peuvent être intéressantes dans le contexte des langues formelles.
Voici trois catégories intéressantes liées à plusieurs réductions, qui seront appelées totales , partielles et relationnelles . Les objets des catégories sont des paires d'un alphabet fini Σ et d'une langue L ⊂ Σ ∗ de mots sur Σ . Pour le total , les morphismes entre l'objet source ( Σ , L ) et l'objet cible ( Σ ′ , L ′ ) sont des fonctions totales f( Σ , L )ΣL ⊂ Σ∗Σ(Σ , L )( Σ′, L′) avec L = f - 1 ( L ′ ) . Pourpartiel, les morphismes sont des fonctions partielles f : Σ ∗ → - 1 ( L ′ ) , où deux fonctions partielles f , g sont considérées comme égales (comme morphismes) si f ( x ) = g ( x )F: Σ∗→ Σ′ ∗L = f- 1( L′) avec L = fF: Σ∗→ Σ′ ∗L = f- 1( L′)FgF( x ) = g( x )pour tous les . Pour le relationnel , les morphismes sont des relations R ⊂ Σ ∗ × Σ ′ ∗ avec L = R - 1 ( L ′ ) , et deux morphismes quelconques entre la même source et la même cible sont considérés comme égaux. L'ensemble des fonctions ou relations autorisées peut être limité à divers "traducteurs" simples pour obtenir des catégories avec des isomorphismes intéressants.x ∈ LR ⊂ Σ∗× Σ′ ∗L = R- 1( L′)
- Les homomorphismes monoïdes de à Σ ′ ∗ donnent une catégorie totale très basique . Les isomorphismes de cette catégorie ne sont fondamentalement que les bijections entre Σ et Σ ′ . Toute famille raisonnable de langues devrait mieux respecter ces isomorphismes, c'est-à-dire être fermée sous des homomorphismes inverses.Σ∗Σ′ ∗ΣΣ′
- Les fonctions partielles définies par les traducteurs machine de Turing à espace logarithmique déterministe donnent une catégorie partielle assez naturelle . Il est capable d'effectuer de nombreuses transformations syntaxiques triviales (comme l'application des lois de De Morgan pour déplacer les négations vers les atomes), inclut le morphisme défini par les transducteurs fonctionnels à états finis 1 , et peut également trier. Pourtant, il n'identifiera pas deux langues complètement indépendantes comme isomorphes, car l'égalité de la composition de deux morphismes à un morphisme d'identité est une exigence beaucoup plus forte que la simple existence de plusieurs réductions dans les deux sens.
- Les relations définies par les traducteurs automatiques de Turing à espace log non déterministe donnent une catégorie relationnelle intéressante . Le SAT est isomorphe à HORNSAT dans cette catégorie, mais il reste à savoir si la TAUTOLOGIE ou tout autre problème co-NP-complet est isomorphe à HORNSAT.
Deux langues et L ′ sur les alphabets Σ = { a , b } et Σ ′ =LL′Σ = { a , b } (où a , b , c et d sont des lettres distinctes) ne peuvent jamais être égales, même si elles décrivent "exactement" le même problème." Mais ils devraient être isomorphes s'ils décrivent vraiment "exactement" le même "problème".Σ′= { c , d}unebcré
La catégorie totale très basique décrite ci-dessus résout ce problème.
Le problème devient plus intéressant si "exactement le même" est remplacé par "presque le même pour la plupart des cas pratiques": Soit un langage sur Σ = { U , C , A , G }LΣ = { U, C, A , G } et Soit le langage sur Σ ′ = { 0 , 1 } obtenu à partir de L par la substitution U → 00 , C → 01 , A → 10 et G → 11L′Σ′= { 0 , 1 }LU→ 00C→ 01A → 10G → 11. Notez que dans toute catégorie totale , et L ′ ne sont pas isomorphes pour L = Σ ∗ . Il en irait de même pour les catégories partielles , si la partie "où deux fonctions partielles f , g sont considérées comme égales (en tant que morphismes) si f ( x ) = g ( x ) pour tout x ∈ L " était omise de la définition.LL′L = Σ∗FgF( x ) = g( x )x ∈ L
La catégorie partielle assez naturelle décrite ci-dessus suffit pour rendre et L ' isomorphes. Ce serait bien d'avoir une catégorie plus basique (c'est-à-dire plus restrictive) qui les rend isomorphes. Les catégories suivantes (successivement plus restrictives) me semblent raisonnables:LL′
- Les fonctions partielles réalisées par des transducteurs à états finis sans ambiguïté 2 où le seul état acceptant est l'état initial. Les isomorphismes de cette catégorie partielle sont (un sous-ensemble des) bijections entre des codes de longueur variable reconnaissables .
- Les fonctions partielles réalisées par des transducteurs à états finis déterministes où le seul état acceptant est l'état initial. Les isomorphismes de cette catégorie partielle sont (un sous-ensemble des) bijections entre codes préfixes .
- Les fonctions partielles réalisées simultanément par un transducteur déterministe avant et arrière où le seul état acceptant est l'état initial. Les isomorphismes de cette catégorie partielle sont (un sous-ensemble des) bijections entre les codes bifix .
- Une restriction supplémentaire des fonctions partielles telles que les isomorphismes sont (un sous-ensemble des) bijections entre les codes de bloc pourrait également avoir un sens.
On peut utiliser les langages dans la théorie de la complexité pour formaliser le concept de «problème».
Avant même que j'apprenne la théorie des catégories, je me suis demandé s'il existait des moyens "plus fidèles" de formaliser le concept de "problème". Après m'être familiarisé avec la théorie des catégories, j'ai parfois essayé de trouver des solutions possibles, mais j'abandonnais toujours rapidement au premier obstacle (parce que personne ne s'en soucie de toute façon). Je sais que Yuri Gurevich a résolu quelques questions connexes, mais ses solutions sont pratiquement applicables, alors que je cherchais plus quelque chose de gentil et abstrait, indépendant de l'applicabilité pratique.
La majeure partie de mon temps libre au cours des trois dernières semaines a finalement été consacrée à des progrès sur ce problème. Le plus souvent, le temps était consacré à trouver des problèmes gênants dans les solutions possibles que j'avais à l'esprit. Le sens du progrès est né de la lecture de livres (anciens) et d'articles et de l'apprentissage de nombreux concepts et faits de base sur les transducteurs et les ensembles rationnels. Enfin, j'ai appris les notions de code préfixe et de code bifix (anciennement code biprefix dans le livre de Berstel), ce qui m'a permis de proposer les 3 catégories raisonnables décrites ci-dessus.
Il peut être difficile d'apprécier ces catégories (liées au code), sans avoir vu certains problèmes des catégories les plus évidentes. Un problème général est que la fermeture sous composition peut rendre difficile la définition d'une classe de fonctions partielles bien restreinte. Un autre problème est lié au fait que l'ajout d'un (ou la multiplication par une constante) est une "fonction facile à calculer" si les chiffres du nombre sont donnés dans l'ordre bas de gamme, mais pas si les chiffres sont donnés en gros. ordre endien.
1
Un transducteur à états finis fonctionnel est un transducteur à états finis non déterministe qui réalise une fonction partielle. Ces fonctions partielles ne peuvent pas être réalisées par des transducteurs à états finis déterministes. Ils peuvent être réalisés par des bimachines déterministes , mais celles-ci peuvent nécessiter O ( n )O ( 1 )
2
Un transducteur à états finis sans ambiguïté est un transducteur à états finis non déterministe avec au plus un chemin d'acceptation pour chaque entrée. Il réalise une fonction partielle, il est donc également un transducteur à états finis fonctionnel. Il est possible de décider si un transducteur à états finis donné n'est pas ambigu.
R ⊂ Σ∗× Σ′ ∗L = R- 1( L′) - R- 1( Σ′ ∗- L′), et deux morphismes quelconques entre la même source et la même cible sont considérés comme égaux.