DFA minimal satisfaisant une vue finie d'une langue


12

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.LΣALB(ΣL)

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 LA={ab,aaab,aaaaabb}B={b,aab,aaaba}L={a2i+1bj | i,jN}ABL

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 BABLLAB

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é.



2
La réponse bien écrite de Lev à la question que j'ai liée couvre déjà l'inapproximabilité.
Tsuyoshi Ito le

6
J'ai également écrit un article de blog qui va plus en détail que ma réponse d'origine cstheory.blogoverflow.com/2011/08/on-learning-regular-languages
Lev Reyzin

1
Je ne vois pas la différence entre «votre version» et le résultat d'inapproximabilité Lev cité dans la réponse. De plus, je ne vois pas le lien entre «votre version» et «aller dans l'autre sens».
Tsuyoshi Ito

1
@TsuyoshiIto En fait, il semble que la réponse de Lev réponde à "ma version"! Je lisais le billet de blog ci-dessus, et il ne l'a pas fait (du moins, je ne l'ai pas trouvé). Mais la réponse originale de Lev l'a fait. Quant au lien entre "ma version" et "aller dans l'autre sens" ... Si nous pouvons générer de tels et , cela signifie que la réponse à "ma version" n'est pas toujours négative. L'article de Parekh et Honavar utilise en fait cette idée pour prouver que les DFA simples peuvent être appris avec une probabilité arbitrairement élevée. Dans tous les cas, comment faut-il ou comment clore cette question? BAB
Francisco Mota

Réponses:


5

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 .PNPP

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 WWLWGLW

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 WWGW

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


0

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 .uvxΣuxAvxBABuv

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.AB


-1

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


1
votre deuxième lien renvoie simplement à cette question. Où est-il supposé créer un lien?
Artem Kaznatcheev

oups, thx, fixe
vzn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.