Trong câu trả lời của mình về cstheory.SE, Lev Reyzin đã hướng dẫn tôi đến luận án của Robert Schapire nhằm cải thiện các truy vấn thành viên trong phần 5.4.5. Số lượng truy vấn mẫu không thay đổi. Thuật toán Schapire sử dụng khác nhau về những gì nó thực hiện sau một truy vấn mẫu.O(n2+nlogm)
Phác thảo cải tiến
Ở cấp độ cao nhất, các lực Schapire từ thuật toán của Angluin có thêm điều kiện để đóng ( S , E , T ) và mỗi s 1 , s 2 ∈ S nếu s 1 ≠ s 2 thì r o w ( s 1 ) ≠ r o w ( s 2 ) . Điều này đảm bảo rằng | S |(S,E,T)(S,E,T)s1,s2∈Ss1≠s2row(s1)≠row(s2) và cũng làm chotính thống nhấttài sản của thuật toán Angluin của tầm thường để đáp ứng. Để đảm bảo điều này, anh ta phải xử lý các kết quả của một ví dụ khác nhau.|S|≤n
Cho một phản ví dụ , Angluin chỉ cần thêm z và tất cả các tiền tố của nó để S . Schapire làm điều gì đó tinh tế hơn bằng cách thay vì thêm một yếu tố duy nhất e để E . E mới này sẽ làm cho ( S , E , T ) không bị đóng theo nghĩa của Angluin và bản cập nhật để kết thúc với việc giới thiệu ít nhất một chuỗi mới cho S trong khi giữ cho tất cả các hàng khác biệt. Điều kiện trên e là:zzSeEe(S,E,T)Se
∃s,s′∈S,a∈Σs.trow(s)=row(s′a)ando(δ(q0,se))≠o(δ(q0,s′ae))
Ở đâu là chức năng đầu ra, q 0 là trạng thái ban đầu, và δ sự cai trị cập nhật của true 'vô danh' DFA. Nói cách khác, e phải làm nhân chứng để phân biệt tương lai của s với s ′ a .oq0δess′a
Để con số ra này từ z chúng ta thực hiện tìm kiếm nhị phân để tìm ra một substring r i như rằng z = p i r i và 0 ≤ | p i | = tôi < | z | sao cho hành vi của máy được phỏng đoán của chúng tôi khác nhau dựa trên một ký tự đầu vào. Cụ thể hơn, chúng ta để cho s i là chuỗi tương ứng với nhà nước đạt được trong máy phỏng đoán của chúng tôi bằng cách làm theo p i . Chúng tôi sử dụng tìm kiếm nhị phân (đây là nơi đăng nhập mezriz=piri0≤|pi|=i<|z|sipilogmko(δ(q0,skrk))≠o(δ(q0,sk+1rk+1)rk+1eE