Il existe un problème ouvert dans les langages formels connu sous le nom de problème de séparation; qui est brièvement indiqué comme étant donné deux chaînes distinctes de longueur , la taille d'un DFA est nécessaire pour les "séparer", ce qui signifie accepter une chaîne mais rejeter l'autre.
Voici quelques articles pertinents 1 , 2 . (J'en ai quelques autres mais je n'ai pas assez de réputation pour les poster).
Tous discutent du problème de la séparation de deux chaînes distinctes. Je me demande s'il y a eu des travaux dans le domaine de la séparation des listes de chaînes, sens donné deux listes de chaînes, et B , quelle taille DFA est nécessaire d'accepter toutes les chaînes en A et rejeter toute chaîne dans B . Ce problème est équivalent au regex golf.
Il y a quelques questions de base sur lesquelles j'ai travaillé, par exemple si l'une des listes est de taille ou si toutes les chaînes sont de longueurs différentes.
J'ai cherché autour mais je n'ai trouvé aucun document traitant de ce type de problème. Y a-t-il eu des recherches dans ce domaine?
Merci d'avance.
Réponses:
Dans un article de 2013 , les auteurs indiquent:
Ils mentionnent cependant plusieurs cas particuliers qui ont été résolus, et qui englobent très certainement le cas fini.
Vous pouvez également examiner l' interpolant Craig , un problème similaire sur les formules logiques. L'interpolation est utilisée par exemple dans la vérification de modèle basée sur SAT, dans un cadre qui, je pense, est plus proche de ce que vous recherchez (en particulier en ce qui concerne la finitude de l'entrée). Ce document devrait être un bon point de départ.
la source
C'est ce qu'on appelle le «problème des mots de séparation». Les diapositives de Shallit couvrent à peu près tout ce qui est connu sur le problème (voir diapositives1 et diapositives2 ).
la source