ในคำตอบของเขา ใน cstheory.SE เลฟเรซินกำกับให้ฉันไปทำวิทยานิพนธ์ของ Robert Schapireซึ่งปรับปรุงขอบเขตการสืบค้นสมาชิกในหัวข้อ 5.4.5 จำนวนการค้นหาตัวอย่างการนับยังคงไม่เปลี่ยนแปลง Schapire อัลกอริทึมใช้แตกต่างกันในสิ่งที่มันทำหลังจากแบบสอบถามตัวอย่างO(n2+nlogm)
ร่างของการปรับปรุง
ในระดับสูงสุด Schapire บังคับจากอัลกอริทึมของ Angluin เพื่อให้มีเงื่อนไขพิเศษสำหรับการปิดและแต่ละถ้าแล้ว(s_2) สิ่งนี้รับประกันได้ว่าและยังทำให้คุณสมบัติความสอดคล้องของอัลกอริทึมของ Angluin เล็กน้อยเพื่อตอบสนอง เพื่อให้แน่ใจว่าสิ่งนี้เขาจะต้องจัดการกับผลลัพธ์ของตัวอย่างที่แตกต่างกัน( 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
กำหนด counterexample , Angluin เพิ่มเพียงและคำนำหน้าทั้งหมดที่จะSSchapire ทำบางสิ่งที่ลึกซึ้งยิ่งขึ้นโดยการเพิ่มองค์ประกอบเดียวถึงแทน ใหม่นี้จะทำให้ไม่ถูกปิดในความหมายของ Angluin และการปรับปรุงเพื่อปิดด้วยการแนะนำสตริงใหม่อย่างน้อยหนึ่งรายการไปยังในขณะที่ทำให้แถวทั้งหมดไม่เหมือนกัน เงื่อนไขในคือ:z S e E e ( S , E , T ) S ezzSอีEอี(S,E,T)Se
∃s,s′∈S,a∈Σs.trow(s)=row(s′a)ando(δ(q0,se))≠o(δ(q0,s′ae))
โดยที่คือฟังก์ชันเอาต์พุตเป็นสถานะเริ่มต้นและกฎการอัพเดตของ DFA จริง 'ไม่ทราบ' ใน otherwords,ต้องทำหน้าที่เป็นพยานในการแยกแยะความแตกต่างในอนาคตของจากs'aQ 0 δ อีs s 'oq0δอีss'a
ในการหาจากเราจะทำการค้นหาแบบไบนารีเพื่อหาสตริงย่อยซึ่งและเช่นว่าพฤติกรรมของเครื่องที่คาดคะเนของเรานั้นแตกต่างกันไปตามอักขระอินพุตหนึ่งตัว ในรายละเอียดมากขึ้นเราให้เป็นสตริงที่สอดคล้องกับรัฐถึงในเครื่องของเราโดยคาดคะเนต่อไปp_iเราใช้การค้นหาแบบไบนารี (นี่คือที่ที่มาจาก) เพื่อค้นหาที่ . ในคำอื่น ๆอีZRผมZ= pผมRผม0 ≤ | พีผม| =i< | Z|sผมพีผมเข้าสู่ระบบม.ko ( δ( q0, skRk) ) ≠ o ( δ( q0, sk + 1Rk + 1)Rk + 1แตกต่างสองรัฐว่าเครื่องคาดคะเนของเราพบว่าเทียบเท่าและทำให้ตอบสนองเงื่อนไขในเพื่อให้เราเพิ่มเข้าไปในEอีE