W swojej odpowiedzi na cstheory.SE Lev Reyzin skierował mnie do tezy Roberta Schapire'a, która poprawia powiązanie z zapytaniami o członkostwo w rozdziale 5.4.5. Liczba zapytań kontrprzykładowych pozostaje niezmieniona. Algorytm wykorzystywany przez Schapire różni się tym, co robi po zapytaniu kontrprzykładowym.O(n2+nlogm)
Szkic ulepszenia
Na najwyższym poziomie, Schapire zmusza z algorytmu Angluina do spełnienia dodatkowego warunku, że dla zamkniętego i każdego jeśli to . To gwarantuje, że , a także sprawia, że konsystencja własność algorytmu Angluin za trywialne do spełnienia. Aby to zapewnić, musi inaczej traktować wyniki kontrprzykładu.( 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≠s2row(s1)≠row(s2)|S|≤n
Biorąc kontrprzykład , Angluin prostu dodaje i wszystkie jej prefiksy do . Schapire robi coś bardziej subtelnego zamiast przez dodanie jednego elementu na . To nowe sprawi, że nie będą zamknięte w sensie Angluina, a aktualizacja umożliwiająca zamknięcie z wprowadzeniem co najmniej jednego nowego ciągu do przy jednoczesnym zachowaniu odrębności wszystkich wierszy. Warunkiem na jest: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, s e ) ) ≠ o ( δ( q0, s′e ) )
Gdzie jest funkcją wyjściową, jest stanem początkowym, a regułą aktualizacji prawdziwego „nieznanego” DFA. W otherwords, musi służyć jako świadka do odróżnienia przyszłość od .q 0 δ e s s ′ aoq0δmiss′za
Aby to z , wykonujemy wyszukiwanie binarne, aby znaleźć podłańcuch taki, że itak, że zachowanie naszej domyślnej maszyny różni się w zależności od jednego znaku wejściowego. Bardziej szczegółowo, pozwalamy być ciągiem odpowiadającym stanowi osiągniętemu w naszej domniemanej maszynie, wykonując . Używamy wyszukiwania binarnego ( stąd pochodzi ), aby znaleźć taki, że . Innymi słowy,z r i z = p i r i 0 ≤ | p i | = i < | z | s i p i log m k o ( δ ( q 0 , s k r k ) ) ≠ o ( δ ( q 0 , s k + 1 r k + 1 ) r kmizrjaz= pjarja0 ≤ |pja| =i< |z|sjapjalogmko ( δ( q0, skrk) ) ≠ o ( δ( q0, sk + 1rk + 1) eE.rk + 1rozróżnia dwa stany przypuszczał, że nasze maszyny znajdzie równoważne i tym samym spełnia warunek na , więc możemy go dodać do .mimi