В своем ответе на cstheory.SE Лев Рейзин направил меня к тезису Роберта Шапира, который улучшает привязку к запросам на членство в разделе 5.4.5. Количество контрпримеров запросов остается неизменным. Алгоритм, который использует Schapire, отличается от того, что он делает после контрпримерного запроса.O ( n2+ n logм )
Эскиз улучшения
На самом высоком уровне, Шапире заставляет из алгоритма Англуина иметь дополнительное условие, что для закрытых и каждого если то . Это гарантирует, что , а также делает консистенцию свойство алгоритма Angluin тривиальным удовлетворить. Чтобы обеспечить это, он должен по-разному обрабатывать результаты контрпримеров.( С , Е , Т ) с 1 , s 2 ∈ S s 1 ≠ с 2 г о ш ( с 1 ) ≠ г о ш ( с 2 ) | S | ≤ n( S, E, Т)( S, E, Т)s1, с2∈ Ss1≠ с2г о ш ( х1) ≠ г о ш ( ы2)| S| ≤n
Учитывая контрпример , Angluin просто добавил и все префиксы к . Schapire делает что - то более тонкое путем вместо добавления одного элемента в . Этот новый сделает не закрытым в смысле Англуина, а обновление, чтобы получить замыкание, введет по крайней мере одну новую строку в , сохраняя при этом все строки различными. Условие на :z S e E e ( S , E , T ) S eZZSеЕе( S, E, Т)Sе
∃ s , s'∈ S, a ∈ Σулицаг о ш ( ы ) = г о ш ( ы'а )а такжеo ( δ( д0, Ев е ) ) ≠ O ( δ( д0, с'а е ) )
Где - выходная функция, - начальное состояние и правило обновления истинного «неизвестного» DFA. Другими словами, должен служить свидетелем, чтобы отличить будущее от .q 0 δ e s s ′ aоQ0δеss'a
Чтобы выяснить это из мы выполняем двоичный поиск, чтобы выяснить подстроку такую что итакое, что поведение нашей предполагаемой машины отличается в зависимости от одного входного символа. Более подробно, мы позволим быть строкой, соответствующей состоянию, достигнутому в нашей предполагаемой машине, после . Мы используем бинарный поиск (отсюда ), чтобы найти , для которого . Другими словами,z r i z = p i r i 0 ≤ | р я | = я < | 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 kеZряZ= ряря0 ≤ | пя| =я< | Z|sяпяжурналмКo ( δ( д0, сКрК) ) ≠ o ( δ( д0, ск + 1рк + 1) еЕрк + 1различает два государства наши машины высказал предположение находит эквивалентные и , таким образом , удовлетворяет условию на , поэтому мы добавим его в .еЕ