У своїй відповіді на cstheory.SE Лев Рейзін направив мене на тезу Роберта Шапіра, яка покращує прив’язаність до запитів членства у розділі 5.4.5. Кількість запитів контрприкладів залишається незмінною. Алгоритм, який використовує Schapire, відрізняється тим, що він робить після контрприкладного запиту.О ( н.)2+ n журналм )
Ескіз поліпшення
На найвищому рівні сили Шапіра з алгоритму Англуйна мають додаткову умову, що для закритого ( S , E , T ) і кожного s 1 , s 2 ∈ S, якщо s 1 ≠ s 2, то r o w ( s 1 ) ≠ r o w ( s 2 ) . Це гарантує, що | S |( S, Е, Т)( S, Е, Т)с1, с2∈ Sс1≠ с2р о ш ( с1) ≠ r o w ( s2) а також робитьвластивістьпослідовностіалгоритму Англуйна тривіальною для задоволення. Для цього він повинен по-різному обробляти результати контрприкладу.| S| ≤n
З огляду на контрприклад , Angluin просто додав г і все префікси до S . Schapire робить що - то більш тонке шляхом замість додавання одного елемента е в Е . Це нове е змусить ( S , E , T ) не бути закритим у сенсі Англуїна та оновленням, щоб закрити, ввести принаймні одну нову рядок до S , зберігаючи чіткі всі рядки. Умова на e :zzSеЕе( S, Е, Т)Sе
∃ s , s'∈ S, a ∈ Σвулr o w ( s ) = r o w ( s'а )іo ( δ( q0, s e ) ) ≠ o ( δ( q0, с'а д ) )
Якщо - вихідна функція, q 0 - початковий стан, а δ правило оновлення справжнього "невідомого" DFA. Іншими словами , e має бути свідком, щоб відрізнити майбутнє s від s ′ a .оq0δесс'а
Щоб з'ясувати це з z, ми робимо двійковий пошук, щоб з'ясувати підрядку r i таку, що z = p i r i і 0 ≤ | p i | = i < | z | таким чином, що поведінка нашої гіпотезованої машини відрізняється на основі одного символу введення. Більш детально, дозвольмо s i - рядок, що відповідає стану, досягнутому в нашій гіпотезованій машині, дотримуючись p i . Ми використовуємо двійковий пошук (тут знаходиться журнал mеzriz= рiri0 ≤ | pi| =i< | z|сipiжурналмпоходить від) знайти a такий, що o ( δ ( q 0 , s k r k ) ) ≠ o ( δ ( q 0 , s k + 1 r k + 1 ) . Іншими словами, r k + 1 розрізняє два йдеться , що наші машини висловили припущення знаходить еквівалентні і , таким чином , задовольняє умову на е , тому ми додамо його в E .кo ( δ( q0, скrк) ) ≠ o ( δ( q0, сk + 1rk + 1)rk + 1еЕ