Étant donné deux chaînes x et y, je veux créer une taille minimale DFA qui accepte x et rejette y. Une façon de le faire est la recherche par force brute. Vous énumérez les DFA en commençant par le plus petit. Vous essayez chaque DFA jusqu'à ce que vous en trouviez un qui accepte x et rejette y.
Je veux savoir s'il existe un autre moyen connu de trouver ou de créer un DFA de taille minimale qui accepte x et rejette y. En d'autres termes, pouvons-nous battre la recherche par force brute?
Plus de détails:
(1) Je veux vraiment qu'un algorithme trouve une taille minimale DFA, pas une taille DFA proche de la taille minimale.
(2) Je ne veux pas seulement savoir quelle est la taille du DFA minimum.
(3) Ici, je ne me concentre que sur le cas où vous avez deux chaînes x et y.
Modifier :
Informations supplémentaires pour le lecteur intéressé:
Supposons que et sont des chaînes binaires de longueur au plus . C'est un résultat connu qu'il existe un DFA qui accepte et rejette avec au plus états. Notez qu'il y a environ DFA avec un alphabet binaire et au plus états. Par conséquent, l'approche par force brute ne nous obligerait pas à énumérer plus de DFA. Il s'ensuit que l'approche par force brute ne pouvait pas prendre beaucoup plus que temps.
Diapositives que j'ai trouvées utiles: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf