Disons que l'on a une langue , mais on ne sait pas quelles chaînes font réellement partie de la langue. Tout ce que l'on a est une vue finie du langage: un ensemble fini de chaînes qui sont connues pour être dans le langage, et un ensemble fini de chaînes qui sont connues ne pas être dans la langue.
Par exemple, disons que j'ai et . Je pourrais avoir la langue , puisque et sont cohérents avec , ou je pourrais avoir un complètement langue différente.B = { b , a a b , a a a b a } L = { a 2 i + 1 b j | i , j ∈ N } A B L
Ma question est: existe-t-il un moyen connu de créer un DFA (automates finis déterministes) qui accepte les chaînes de et rejette les chaînes de , avec un nombre d'états minimal ou presque minimal? Quelle est la complexité de ce problème? Quelle est sa capacité à approximer (en supposant que a une complexité descriptive assez faible et que et sont grands)?B L L A B
Question originale sur math.stackexchange.com. J'ai décidé de republier ici après avoir obtenu aucune réponse à la question d'origine, et n'ayant aucune idée où les chercher. Si quelqu'un pouvait m'orienter vers des recherches dans ce domaine, ce serait grandement apprécié.
la source
Réponses:
Comme vous le savez déjà dans les commentaires, trouver le DFA minimal satisfaisant un ensemble fini d'exemples positifs et négatifs est -hard. Cependant, tout espoir n'est pas perdu, si vous êtes prêt à modifier légèrement votre paradigme d'apprentissage, nous pouvons revenir dans .PNP P
Supposons que vous essayez d'apprendre un DFA inconnu qui est minimal pour une langue . Si vous autorisez les requêtes d'adhésion à Oracle et que vous agissez en tant qu'enseignant en répondant à la question suivante: étant donné un DFA proposé, reconnaît-il ? Sinon, pouvez-vous fournir un contre-exemple?L W G L WW LW G LW
Notez que si l'oracle a accès à il peut comparer à en poly-temps, car tester l'égalité entre les langues régulières est facile. La génération d'un contre-exemple peut également se faire en temps polynomial.G WW G W
Dans ce cadre, vous pouvez apprendre en temps polynomial en utilisant l'algorithme d'Angluin ( 1987 ; pdf ) (ou le perfectionnement de Schapire ; voir la section 5.4.5). Pour plus d'informations sur ce modèle, voici deux questions sur cstheory et CS.SE à ce sujet:W
Limites inférieures pour l'apprentissage dans la requête d'appartenance et le modèle de contre-exemple
Y a-t-il des améliorations sur l'algorithme de Dana Angluin pour l'apprentissage des ensembles réguliers
la source
Il me semble que vous pouvez utiliser un raffinement de l'équivalence Myhill-Nerode pour ce problème.
On peut définir s'il existe tel que et . Cela signifie que tout automate séparant de doit être dans des états différents après avoir lu et .u≁v x∈Σ ux∈A vx∈B A B u v
Il suffit d'étudier cette relation sur préfixes d'éléments de et . Cela vous donnera une limite inférieure sur le nombre d'états dont vous avez besoin. Je ne suis pas sûr que cela vous donne directement un moyen de construire l'automate minimal, mais c'est au moins un chemin à explorer.A B
la source
Je pense que ce problème a peut-être été mal formulé par le questionneur. Le questionneur veut apparemment un algorithme qui généralise des mots infinis basés sur des exemples de mots finis spécifiques, en utilisant une sorte d'induction mécanisée, c'est-à-dire en reconnaissant des motifs apparents dans les exemples.
En plus de certaines recherches sur la théorie des CS citées dans les commentaires, il y a aussi d'autres recherches empiriques dans ce domaine, par exemple ci-dessous, en utilisant les ANN pour créer des FSM à partir d'exemples. Notez que l'on peut toujours exécuter un algorithme de minimisation DFA standard sur le résultat. La bibliothèque AT&T FSM est idéale pour travailler dans ce domaine.
L'interrogateur n'est pas spécifique sur son domaine de problème, ce qui peut aider à comprendre la structure des exemples et obtenir des références plus spécifiques. Cependant, un exemple qui peut être vu est les algorithmes d'IA dans les jeux qui utilisent des algorithmes FSM. Je soupçonne qu'il y a des cas où les FSM sont tirés d'exemples utilisant des algorithmes d'apprentissage.
[1] Apprentissage d'une classe de grandes machines à états finis avec un réseau de neurones récurrent C. Lee Giles, 1, BG Horne, T. Lin 1995
[2] Apprentissage des FSM avec des réseaux récurrents auto-clustering par Zeng & Smyth 1993
[3] Bibliothèque AT&T FSM
la source