Contexte:
Étant donné deux automates finis déterministes A et B, nous formons le produit C en laissant les états dans C être le produit cartésien des états dans A et des états dans B. Ensuite, nous choisissons les transitions, l'état initial et les états finaux de sorte que le langage accepté par C est l'intersection des langages pour A et B.
Des questions:
(1) Peut-on "diviser" C par B pour trouver A? A est-il même unique, jusqu'à l'isomorphisme? Nous nous soucions des diagrammes d'état, pas des langues ici et ci-dessous. Ainsi, nous ne permettons pas de compresser les diagrammes d'états pour réduire le nombre d'états.
(2) Si A est unique, existe-t-il un algorithme efficace pour le trouver?
(3) Est-ce que chaque automate fini déterministe a une factorisation unique en "nombres premiers". Un nombre premier signifie ici un automate qui ne peut pas être factorisé, c'est-à-dire écrit comme un produit de 2 automates plus petits.
- Travailler avec @MichaelWehar
la source
Réponses:
Jetez un œil à cet article du MFCS 2013 , qui étudie la compositionnalité dans les automates. Peut-être que cela vous aidera.
la source
Donnons un moyen évident de récupérer un "facteur" de l'automate produit. Si et A = A 1 × A 2 désigne l'automate produit, alors si nous définissons π 1 ( ( q , q ′ ) ) : = q c'est-à-dire juste oublier A 2UNEje= ( Qje, δje, q0 i, Fje) , i = 1 , 2 UNE= A1× A2
Donc, si nous savons qu'un automate est un automate produit cartésien (ou externe), nous pouvons récupérer les facteurs facilement.
Mais je suppose que ce n'est pas ce que vous avez en tête concernant vos autres questions. Deux questions se posent ici (dans ce qui suit par isomorphisme d'automate, je veux dire isomorphe comme graphe d'état, c'est-à-dire sans égard aux états initial ou final, comme vous l'avez dit, le langage n'est pas tellement une préoccupation ici):
1) Étant donné un automate isomorphe à un automate produit (c'est-à-dire pouvant être décomposé d'une manière ou d'une autre) d'un nombre fini d'automates, cette décomposition est-elle essentiellement unique? (étant donné que les facteurs ne pouvaient pas être décomposés davantage, car sinon, évidemment pas). Plus précisément si pour les automates indécomposables A i , B j cela implique k = l et A i ≅ B π ( i )
2) Étant donné deux automates , existe-t-il un troisième automate C tel que A = B × CUNE, B C UNE= B× C .
Il est facile de dériver les conditions nécessaires pour que cela soit le cas, mais je ne vois pas de critères suffisants et faciles pour qu'un automate soit un facteur pour un autre.
H. Straubing, P. Weil Une introduction aux automates finis et leur connexion à la logique,
Site Web du cours avec beaucoup d'informations.
Remarque : Il existe également une autre notion de " quotienting ", voir wikipedia: automate de quotient , mais ce n'est qu'une règle pour réduire les états et utilisée dans les algorithmes d'apprentissage / inférence de langage ou de minimisation d'état.
la source