Dans sa réponse sur cstheory.SE, Lev Reyzin m’a orienté vers la thèse de Robert Schapire qui améliore la liaison aux requêtes d’appartenance à dans la section 5.4.5. Le nombre de requêtes de contre-exemple reste inchangé. L'algorithme utilisé par Schapire diffère par ce qu'il fait après une requête contre-exemple.O ( n2+ n journalm )
Esquisse de l'amélioration
Au plus haut niveau, Schapire oblige de l’algorithme d’Angluin à avoir la condition supplémentaire que pour un fermé et chaque si alors . Cela garantit que et permet également la cohérence propriété de l'algorithme de Angluin trivial pour satisfaire. Pour ce faire, il doit gérer les résultats d'un contre-exemple différemment.( S , E , T ) s 1 , s 2 ∈ S s 1 ≠ s 2 r o w ( s 1 ) ≠ r o w ( s 2 ) | S | ≤ n( S, E, T)( S, E, T)s1, s2∈ Ss1≠ s2r o w ( s1) ≠ r o w ( s2)| S| ≤n
Étant donné un contre , Angluin simplement ajouté et tous ses préfixes à . Schapire fait quelque chose de plus subtil en ajoutant à la place un seul élément à . Ce nouvel fera en sorte que ne soit pas fermé au sens angluin et que la mise à jour pour obtenir la fermeture introduise au moins une nouvelle chaîne dans tout en gardant toutes les lignes distinctes. La condition sur est:z S e e e ( S , E , T ) S ezzSeEe( S, E, T)Se
∃s,s′∈S,a∈Σs.trow(s)=row(s′a)ando(δ(q0,se))≠o(δ(q0,s′ae))
Où est la fonction de sortie, est l'état initial et la règle de mise à jour du véritable DFA "inconnu". Autrement dit, doit servir de témoin pour distinguer l’avenir de de .q 0 δ e s s ′ aoq0δess′a
Pour comprendre ce partir de nous effectuons une recherche binaire pour déterminer une sous-chaîne telle que etde telle sorte que le comportement de notre machine conjecturée diffère selon le caractère saisi. Plus en détail, nous allons laisser la chaîne correspondant à l'état atteint dans notre machine conjecturée en suivant . Nous utilisons la recherche binaire (c’est de là que vient le ) pour trouver un tel que . En d'autres termes,z r i z = p i r i 0 ≤ | p i | = i < | z | S i p i connecte m k o ( δ ( q 0 , s k r k ) ) ≠ o ( δ ( q 0 , s k + 1 r k + 1 ) r kezriz=piri0≤|pi|=i<|z|sipilogmko(δ(q0,skrk))≠o(δ(q0,sk+1rk+1) eErk+1distingue deux états que nos machines conjecturé trouve équivalentes et ainsi satisfait à la condition sur , donc nous ajoutons à .eE