DFA le plus petit qui accepte des chaînes données et rejette d'autres chaînes données

11

Étant donné deux ensembles de chaînes sur l'alphabet , pouvons-nous calculer le plus petit automate déterministe à états finis (DFA) tel que et ?A,BΣMAL(M)L(M)ΣB

En d'autres termes, représente un ensemble d'exemples positifs. Chaque chaîne de doit être acceptée par le DFA. représente un ensemble d'exemples négatifs. Aucune chaîne en ne doit être acceptée par le DFA.UNEUNEBB

Existe-t-il un moyen de résoudre ce problème, peut-être en utilisant des techniques de minimisation DFA ? Je pourrais imaginer créer un automate de type DFA qui a trois types d'états: accepter les états, rejeter les états et les états "indifférents" (toute entrée se terminant par un état "insouciante" peut être acceptée ou rejeté). Mais pouvons-nous alors trouver un moyen de réduire cela à un DFA ordinaire?

Vous pourriez considérer cela comme le problème de l'apprentissage d'un DFA, compte tenu des exemples positifs et négatifs.

Ceci est inspiré par Regex Golf NP-Complete? , qui pose une question similaire pour les expressions rationnelles au lieu des DFA.

DW
la source
1
Je pense que vous aurez besoin de mettre une sorte de restriction sur les types de langues et et comment ils peuvent être spécifiés. UNEB
reinierpost
Il existe de nombreux ouvrages sur les fonctions / langages d'apprentissage, par exemple classés dans le cadre de l'apprentissage dans la limite (également apprentissage de type Gold). Ceux-ci ne correspondent pas exactement à votre problème mais peuvent être intéressants.
Raphael

Réponses:

7

Un DFA comme vous le décrivez est appelé un DFA de séparation . Il existe de la littérature sur ce problème lorsque et sont des langages réguliers, tels que Learning Minimal Separating DFA's for Compositional Verification, par Yu-Fang Chen, Azadeh Farzan, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw WangUNEB

Notez que comme l'indique @reinierpost, sans aucune restriction sur A et B, le problème peut devenir indécidable.

Shaull
la source
Si A et B sont tous deux des langages normaux, et si l'on est autorisé à accepter ou à rejeter arbitrairement toute entrée pour laquelle A et B donneraient le même résultat, je ne vois pas comment le problème pourrait être indécidable. Pour un DFA de n'importe quelle taille particulière, il serait possible de construire un ensemble complet d'entrées qu'il devrait accepter et des entrées qu'il devrait rejeter, de sorte que tout DFA avec le même nombre d'états ou moins qui gère correctement tous les cas de test peut garantir un comportement identique dans tous les cas. Puisqu'une machine qui accepte tout A accepte et rejette tout le reste ...
supercat
... satisfaire les contraintes, on peut mettre une limite supérieure sur le nombre d'états qu'une machine devrait contenir; comme il existe un nombre fini de machines possibles de toute taille donnée, et un nombre fini de cas de test à évaluer, on pourrait générer toutes les machines possibles qui sont plus petites que A et voir si certaines d'entre elles remplissent les conditions nécessaires. Pas exactement un moyen rapide de résoudre le problème, mais certainement décidable si A et B sont réguliers. S'ils ne sont pas réguliers, un DFA ne pourrait pas résoudre A ou B. La "différence" peut parfois être régulière même si A et B ne le sont pas, mais cela ...
supercat
... serait un cas "inhabituel".
supercat
8

UNEBUNEB=UNEUNEB

La recherche du DFA minimum compatible avec un ensemble de chaînes donné est NP-complete. Ce résultat apparaît comme Théorème 1 dans l'article d'Angluin Sur la complexité de l'inférence minimale des ensembles réguliers . Il est donc clair que votre problème est également NP-complet.

Pour de nombreux bons liens et discussions sur l'apprentissage des langues régulières, consultez le blog de CSTheory sur l'apprentissage des langues régulières .

alto
la source
Si les exigences étaient modifiées pour qu'un automate puisse arbitrairement accepter ou rejeter tout ce qui se trouve à la fois en A et en B, le problème serait toujours résolu pour tout A et B; si trouver l'automate optimal serait NP-complet sans cela, il serait NP-complet même avec cette exigence.
supercat