อีกวิธีหนึ่งที่ไม่ได้รับการคุ้มครองโดยคำตอบข้างต้นคือการเปลี่ยนแปลงแน่นอนหุ่นยนต์ ตัวอย่างง่ายๆให้เราแสดงว่าภาษาปกติปิดภายใต้การดำเนินการสลับแบบกำหนดไว้ดังนี้:
คุณสามารถแสดงการปิดภายใต้การสับเปลี่ยนโดยใช้คุณสมบัติการปิด แต่คุณยังสามารถแสดงมันได้โดยตรงโดยใช้ DFAs สมมติว่าเป็น DFA ที่ยอมรับ (สำหรับ ) เราสร้าง DFAดังนี้:
L1SL2={x1y1…xnyn∈Σ∗:x1…xn∈L1,y1…yn∈L2}
Ai=⟨Σ,Qi,Fi,δi,q0i⟩Lii=1,2⟨Σ,Q,F,δ,q0⟩
- ชุดสถานะคือซึ่งองค์ประกอบที่สามจำได้ว่าสัญลักษณ์ต่อไปคือ (เมื่อ 1) หรือ (เมื่อ 2)Q1×Q2×{1,2}xiyi
- สถานะเริ่มต้นคือ\q0=⟨q01,q02,1⟩
- รัฐยอมรับเป็น\}F=F1×F2×{1}
- ฟังก์ชันการเปลี่ยนแปลงถูกกำหนดโดยและ\δ(⟨q1,q2,1⟩,σ)=⟨δ1(q1,σ),q2,2⟩δ(⟨q1,q2,2⟩,σ)=⟨q1,δ2(q2,σ),1⟩
รุ่นที่มีความซับซ้อนมากขึ้นของวิธีการนี้เกี่ยวข้องกับการคาดเดา ตัวอย่างเช่นให้เราแสดงว่าภาษาปกติปิดใต้การกลับรายการนั่นคือ
(ที่นี่ .) นี่เป็นหนึ่งในการดำเนินการปิดมาตรฐานและการปิดภายใต้การพลิกกลับอย่างง่ายดายดังต่อไปนี้จากการควบคุมการแสดงออกปกติ (ซึ่งอาจถือได้ว่าเป็นคู่ของการเปลี่ยนแปลงหุ่นยนต์ จำกัด นิพจน์ทั่วไป) - เพียงแค่ย้อนกลับนิพจน์ปกติ แต่คุณสามารถพิสูจน์ได้ว่าการปิดบัญชีโดยใช้ NFA สมมติว่าเป็นที่ยอมรับโดย DFA\ เราสร้าง NFA
LR={wR:w∈Σ∗}.
(w1…wn)R=wn…w1L⟨Σ,Q,F,δ,q0⟩⟨Σ,Q′,F′,δ′,q′0⟩ , ที่ไหน
- ชุดของรัฐเป็น\}Q′=Q∪{q′0}
- สถานะเริ่มต้นคือq'_0q′0
- รัฐยอมรับไม่ซ้ำกันคือq_0q0
- ฟังก์ชันการเปลี่ยนแปลงถูกกำหนดไว้ดังนี้:และสำหรับสถานะใด ๆและ ,\}δ′(q′0,ϵ)=Fq∈Qσ∈Σδ(q′,σ)={q:δ(q,σ)=q′}
(เราสามารถกำจัดหากเราอนุญาตให้เริ่มต้นหลายสถานะ) องค์ประกอบการเดาที่นี่คือสถานะสุดท้ายของคำหลังจากกลับรายการq′0
การคาดเดามักเกี่ยวข้องกับการยืนยันเช่นกัน ตัวอย่างง่ายๆอย่างหนึ่งคือการปิดภายใต้การหมุน :
สมมติว่าเป็นที่ยอมรับโดย DFA\ เราสร้าง NFAซึ่งทำงานดังนี้ NFA คาดเดาแรกx) จากนั้นตรวจสอบว่าและ , ย้ายจากไปยังไม่ใช่ non-deterministically นี่สามารถทำเป็นกรงเล็บดังนี้:
R(L)={yx∈Σ∗:xy∈L}.
L⟨Σ,Q,F,δ,q0⟩⟨Σ,Q′,F′,δ′,q′0⟩q=δ(q0,x)δ(q,y)∈Fδ(q0,x)=qyx
- รัฐมี\} นอกเหนือจากสถานะเริ่มต้นรัฐที่มีที่เป็นรัฐที่เราเดาเป็นรัฐในปัจจุบันและระบุว่าเราอยู่ที่ส่วนหนึ่งของการป้อนข้อมูล (เมื่อ 1) หรือที่เป็นส่วนหนึ่งของการป้อนข้อมูล (เมื่อ 2)Q′={q′0}∪Q×Q×{1,2}q′0⟨q,qcurr,s⟩qqcurrsyx
- สุดท้ายรัฐเป็น : เรายอมรับเมื่อ QF′={⟨q,q,2⟩:q∈Q}δ(q0,x)=q
- การเปลี่ยนดำเนินการคาดเดาQδ′(q′0,ϵ)={⟨q,q,1⟩:q∈Q}q
- การเปลี่ยน (สำหรับทุกและ ) จำลอง DFA ดั้งเดิมδ′(⟨q,qcurr,s⟩,σ)=⟨q,δ(qcurr,σ),s⟩q,qcurr∈Qs∈{1,2}
- การเปลี่ยน , สำหรับทุกและ , ทำการย้ายจากส่วนไปยังส่วนที่สิ่งนี้จะได้รับอนุญาตเฉพาะเมื่อเราถึงสถานะสุดท้ายในส่วนδ′(⟨q,qf,1⟩,ϵ)=⟨q,q0,2⟩q∈Qqf∈Fyxy
อีกตัวแปรหนึ่งของเทคนิครวมเคาน์เตอร์ที่มีขอบเขต เป็นตัวอย่างให้เราพิจารณาเปลี่ยนการปิดการแก้ไขระยะทาง :
ให้ DFAสำหรับ , e สร้าง NFAสำหรับดังต่อไปนี้:
Ek(L)={x∈Σ∗: there exists y∈L whose edit distance from x is at most k}.
⟨Σ,Q,F,δ,q0⟩L⟨Σ,Q′,F′,δ′,q′0⟩Ek(L)
- ชุดสถานะคือซึ่งรายการที่สองนับจำนวนการเปลี่ยนแปลงที่ทำได้Q′=Q×{0,…,k}
- สถานะเริ่มต้นคือ\q′0=⟨q0,0⟩
- รัฐยอมรับเป็น\}F′=F×{0,…,k}
- ทุกเรามีการเปลี่ยนซิก)q,σ,i⟨δ(q,σ),i⟩∈δ′(⟨q,i⟩,σ)
- แทรกจะถูกจัดการโดยการเปลี่ยนสำหรับทุกเช่นที่<k⟨q,i+1⟩∈δ′(⟨q,i⟩,σ)q,σ,ii<k
- การลบถูกจัดการโดยการเปลี่ยนสำหรับทั้งหมดอย่างที่ .⟨δ(q,σ),i+1⟩∈δ′(⟨q,i⟩,ϵ)q,σ,ii<k
- การทดแทนคือการจับโดยการเปลี่ยนสำหรับเช่นที่<k⟨δ(q,σ),i+1⟩∈δ′(⟨q,i⟩,τ)q,σ,τ,ii<k