ใน DFA ทุกรัฐมีการเปลี่ยนแปลงในสัญลักษณ์ทุกตัวอักษรหรือไม่?


12

ถ้าไม่เช่นนั้นจะมีความหมายว่าอย่างไรสำหรับบางรัฐและบางสัญลักษณ์ ,ไม่มีอยู่?a δ ( q , a )Qaδ(Q,a)


ฉันจะเรียกออโตเมติก nondeterministic ที่ไม่เคยมีการเปลี่ยนแปลงมากกว่าหนึ่งครั้งในสถานะเดียวกันและสัญลักษณ์อินพุทที่กำหนด มันไม่สอดคล้องกับข้อกำหนด DFA
reinierpost

1
หากมีการจัดระเบียบกฎของ DFA เพื่อไม่ให้อยู่ในสถานะqเมื่อสัญลักษณ์บนเทปเป็นaเราจำเป็นต้องกำหนดδ (q, a)หรือไม่?
Peter Shor

4
คำตอบนั้นชัดเจนว่าขึ้นอยู่กับว่าใครนิยาม "ออโตเมติก จำกัด ที่กำหนด" เช่นนี้ฉันไม่แน่ใจว่าคำถามนี้สร้างสรรค์ทั้งหมดเนื่องจากไม่มีคำตอบที่ถูกต้องที่ยอมรับกันในระดับสากล - เช่นคำถามนี้ขอความคิดเห็นและการอภิปราย
Patrick87

1
ถ้าδควรจะเป็นฟังก์ชั่นก็จะต้องมีการกำหนดไว้สำหรับทุกคู่Q,a
vonbrand

ในความเห็นของฉันเกี่ยวกับ DFA นี่เป็นเงื่อนไข "ยกเลิก" หรือหากคุณต้องการข้ามโดยปริยายไปยังสถานะ "ปฏิเสธ"
Yves Daoust

คำตอบ:


22

คุณดูเหมือนจะสะดุดกับปัญหาที่ถกเถียงกัน เห็นได้ชัดว่านักวิทยาศาสตร์คอมพิวเตอร์ชอบที่จะโต้แย้ง ฉันอยากจะโต้แย้งอย่างแน่นอนดังนั้นที่นี่ไป!

คำตอบของฉันคือแจ่มแจ้ง: ไม่ออโต จำกัด แน่นอนไม่จำเป็นต้องเปลี่ยนจากทุกสถานะสำหรับทุกสัญลักษณ์ ความหมายเมื่อδ(Q,a)ไม่มีอยู่เพียงว่า DFA ไม่ยอมรับสตริงอินพุต

ในขณะที่คุณสามารถสร้างความหมายของ DFA ที่ต้องว่าδ(Q,a)ไม่อยู่ก็เป็นเพียงไม่กรณีที่มีการเปลี่ยนแปลงที่ขาดหายไปทำให้โครงสร้างที่เกิด (สิ่งที่คุณเรียกว่า) ในทางใดทางnondeterministicเป็นจำนวนมากของผู้แสดงความคิดเห็นที่มี ที่อ้างว่า หากคุณกำลังเรียนวิชาทฤษฎีออโตมาตาหัวข้อถัดไปจะเป็นภาษาที่ไม่มีบริบทและออโตมาดาวน์แบบกดลงซึ่งความแตกต่างระหว่างออโตนิต้าแบบกำหนดค่าได้กับคอนเซ็ปต์แบบกึ่งอัตโนมัติและคุณจำเป็นต้องใช้คำจำกัดความที่ถูกต้อง

ไม่ใช่ระดับที่เกี่ยวข้องกับการมีการเปลี่ยนแปลงทางกฎหมายมากกว่าหนึ่ง

ฉันคิดว่าเราทุกคนเห็นด้วยกับนิยามของ Wikipedia ดังต่อไปนี้ (ซึ่งฉันจะแสดงในไม่กี่วินาทีนั้นมีความคลุมเครือเล็กน้อย):

ยานยนต์ จำกัด แน่นอนMคือ 5 tuple, ( Q , Σ , δ , Q0 , F ) ประกอบด้วย

  1. ชุด จำกัด ของรัฐ ( Q )
  2. สัญลักษณ์อินพุตที่ จำกัด เรียกว่าตัวอักษร ( Σ )
  3. ฟังก์ชั่นการเปลี่ยนภาพ( δ:Q×ΣQ )
  4. สถานะเริ่มต้น ( Q0Q)
  5. ชุดของสถานะที่ยอมรับ ( FQ )

Let W=a1a2anเป็นสตริงมากกว่าอักษรΣΣautomaton MยอมรับสตริงWหากลำดับของสถานะR0,R1,...,Rn , มีอยู่ในQด้วยเงื่อนไขดังต่อไปนี้:

  1. R0=Q0
  2. Rผม+1=δ(Rผม,aผม+1)สำหรับผม=0,...,n-1
  3. RnF F

กำกวมและความขัดแย้งที่มีมากกว่า defintion ของฟังก์ชั่นการเปลี่ยนแปลงที่δ (หมายเลข "3" ในครั้งแรกที่รายการสัญลักษณ์.) เราทุกคนยอมรับว่าสิ่งที่แตกต่าง DFA จาก NFA คือδเป็นฟังก์ชั่นมากกว่าความสัมพันธ์ แต่δฟังก์ชั่นบางส่วนหรือฟังก์ชั่นรวม ?

คำจำกัดความของ DFA นั้นใช้งานได้ดีถ้าδเป็นฟังก์ชันบางส่วน รับสายป้อนถ้าคุณไปถึงสถานะQผมด้วยสัญลักษณ์อินพุตaJที่ไม่มีสถานะถัดไปออโตมาตาก็ไม่ยอมรับ

ยิ่งไปกว่านั้นเมื่อคุณขยายคำจำกัดความนี้เพื่อสร้างคำนิยามของออโตมาตาแบบกดลงจะเป็นกรณีที่คุณต้องสร้างความแตกต่างที่ออโตมาตาแบบกดลงด้วยฟังก์ชั่นการเปลี่ยนภาพ

ถ้ารบกวนฟังก์ชั่นบางส่วนคุณแล้วนี่คือการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ที่ทำให้δฟังก์ชั่นทั้งหมด (การเปลี่ยนแปลงนี้ไม่เหมือนกับอัลกอริทึมการก่อสร้างชุดย่อยซึ่งจะเพิ่มที่สถานะ O (1) ส่วนใหญ่เป็นเส้นตรงในจำนวนเดิมของรัฐและสามารถขยายการทำงานกับ PDAs ได้ไม่มีข้อเท็จจริงเหล่านี้เป็นจริงของอัลกอริทึมการสร้างชุดย่อย .)

  1. เพิ่มรัฐQอีRRโอR
  2. สำหรับทุกคู่(Qผม,sJ)ที่δจะไม่ได้กำหนดกำหนดδ(Qผม,sJ)=QอีRRโอR R

ออโตมาตะนี้มีδที่เป็นฟังก์ชั่นทั้งหมดและยอมรับและปฏิเสธชุดสถานะเดียวกันกับที่ออโตมาตาดั้งเดิมของคุณยอมรับและปฏิเสธ

แก้ไข, มกราคม 2019

Commenter @Alex Smart วิจารณ์ฉันอย่างถูกต้องเพราะไม่ให้การอ้างอิงหรืออธิบายว่าทำไมเราควรสนใจ ดังนั้นที่นี่ไป:

เหตุผลที่เราดูแลเกี่ยวกับความหมายที่แท้จริงของชะตา VS ไม่ใช่ชะตาเป็นที่เรียนของออโตไม่ใช่กำหนดบางส่วนมีประสิทธิภาพมากขึ้นกว่าญาติกำหนดของพวกเขาและการเรียนของออโตไม่ใช่กำหนดบางคนไม่ได้มีประสิทธิภาพมากขึ้นกว่าญาติของพวกเขากำหนด สำหรับเครื่องจักรออโตมาตะและทัวริง จำกัด ตัวแปรที่กำหนดและไม่กำหนดจะมีกำลังเท่ากัน สำหรับการกดออโตเมต้ามีภาษาที่มีความแตกต่างที่สำคัญ: มี NPDA ที่ยอมรับภาษาและไม่มี DPDA ที่รับภาษา สำหรับออโตมาต้าที่ จำกัด ขอบเขตเชิงเส้นคำถามคือ (หรือเป็นครั้งสุดท้ายที่ฉันตรวจสอบ) เปิด การเพิ่มพลังงานของ NPDA เหนือ DPDA นั้นมาจากการอนุญาตหลาย การเปลี่ยนไม่ใช่จากการเปลี่ยนฟังก์ชั่นการเปลี่ยนจากฟังก์ชั่นรวมเป็นฟังก์ชั่นบางส่วน

หนังสือจากคอมไพเลอร์ชุมชน:

Aho และ Ullman หลักการออกแบบคอมไพเลอร์ , 1977: ก่อนกำหนด NFA (หน้า 88) ด้วยความสัมพันธ์การเปลี่ยนจากนั้น (หน้า 90-91):

เราบอกว่าหุ่นยนต์ จำกัด มีกำหนดถ้า 1. มีการเปลี่ยนที่ไม่มีในการป้อนข้อมูลεε2. สำหรับแต่ละรัฐsและใส่สัญลักษณ์มีที่มากที่สุดขอบหนึ่งที่มีป้ายกำกับออกsaas

Aho, Sethi, และ Ullman, Compilers, หลักการ, tecniques, และเครื่องมือ , 1988 การพิมพ์ซ้ำ, มันคล้ายกัน, มันเป็นตัวกำหนด NFA ครั้งแรกด้วยความสัมพันธ์ในการเปลี่ยนภาพ, (หน้า 115-116):

กำหนดขอบเขตออโต (DFA สำหรับสั้น) เป็นกรณีพิเศษของหุ่นยนต์ finitie ไม่ใช่กำหนดขึ้นในการที่ ... มีที่มากที่สุดขอบหนึ่งที่มีป้ายกำกับออกsas

(โปรดทราบว่าในความคิดเห็น @Alex Smart กล่าวว่า "มังกรกล่าวถึงฟังก์ชั่นนั้นโดยเฉพาะ" ฉันคิดว่าเขากำลังพูดถึงรุ่นต่อมากับผู้ร่วมเขียน Lam ซึ่งฉันไม่สามารถเข้าถึงได้ในขณะนี้ )

Appel การใช้งานคอมไพเลอร์สมัยใหม่ใน Java , 1988 (หน้า 22):

ในการกำหนดขอบเขตหุ่นยนต์ (DFA) ไม่มีสองขอบออกจากรัฐเดียวกันที่ถูกกำกับด้วยสัญลักษณ์เดียวกัน

จากนั้น Appel จะอธิบายว่าเมื่อใช้ DFA เพื่อรับรู้การแข่งขันที่ยาวนานที่สุดเราใช้การเปลี่ยนที่หายไปเพื่อตัดสินใจว่าจะหยุดเมื่อใด (หน้า 23):

เมื่อถึงสถานะที่ตายแล้ว (ถึงสถานะที่ไม่ใช่ฟินน์ที่ไม่มีการเปลี่ยนเอาท์พุต) ตัวแปร [ซึ่งบันทึกการแข่งขันที่ยาวที่สุดที่เราเคยเห็นมา] บอกสิ่งที่โทเค็นตรงกันและที่สิ้นสุด

หนังสือจากชุมชนทฤษฎีการสลับ:

Kohavi, ทฤษฎีการเปลี่ยนและ จำกัด Automata, 2 / e , 1978, p. 611 พูดว่า:

เนื่องจากไดอะแกรมของรัฐอธิบายถึงเครื่องจักรที่กำหนดค่าได้ดังนั้นการเปลี่ยนสถานะถัดไปจะต้องถูกกำหนดอย่างไม่ซ้ำกันโดยสถานะปัจจุบันและสัญลักษณ์อินพุตที่สแกนในปัจจุบัน

โดยทั่วไปแล้วฉันจะตีความโดยไม่ซ้ำกันเพื่อหมายถึง "หนึ่งเดียว" ไม่ใช่ "ไม่เกินหนึ่ง" (เช่น Kohavi ดูเหมือนว่าจะบอกว่ากำหนดต้องใช้ฟังก์ชั่นทั้งหมด)

หนังสือจากชุมชนทฤษฎีการคำนวณ:

ที่นี่ดูเหมือนว่าจะเป็นเรื่องธรรมดามากขึ้นในการกำหนด DFAs ก่อน NFAs และต้องการให้ DFAs มีฟังก์ชั่นการเปลี่ยนแปลงทั้งหมด แต่จากนั้นกำหนด NPDA ก่อน DPDA และกำหนด "การกำหนด" ว่าเป็นข้อ จำกัด ของความสัมพันธ์ในการเปลี่ยนผ่านที่ไม่มีมากกว่า รายการเดียวสำหรับแต่ละคู่รัฐ / สัญลักษณ์

นี่เป็นความจริงของ Hopcroft และ Ullman, 1979, Lewis และ Papadimitriou, 1981 และโดยเฉพาะอย่างยิ่งของ Sipser, 2006 ผู้ใช้คำจำกัดความของ DFA pedagogically เพื่อแนะนำคำจำกัดความทางการที่แม่นยำและอธิบายความสำคัญของพวกเขาและพูดอย่างชัดเจน (p.36):

ฟังก์ชั่นการเปลี่ยนแปลง, δ , ระบุหนึ่งสถานะถัดไปสำหรับการรวมกันที่เป็นไปได้ของสถานะและสัญลักษณ์อินพุต

ดูเหมือนว่าจะเป็นไปตามการพัฒนาทางประวัติศาสตร์ ออโต้ จำกัด แน่นอนกำหนดขึ้นในยุค 40 และ 50 ออกาไนต์แบบไม่ จำกัด ขอบเขตได้ถูกนำเสนอในบทความโดยราบินและสก็อตต์ "ออโตมาต้า จำกัด และปัญหาการตัดสินใจของพวกเขาIBM J. Rsrch และ Dvpt , 3 (2): 114-125, 1959 ผู้เขียนก่อนหน้านี้ ออโต จำกัด (ซึ่งพวกเขาเรียกสามัญออโต) ที่มีฟังก์ชั่นการเปลี่ยนแปลง "ที่กำหนดไว้ในผลิตภัณฑ์ Cartesian s×Σของคู่ทั้งหมดของรัฐและสัญลักษณ์." (ซึ่งผมจะแปลความหมายเป็นความหมายฟังก์ชั่นทั้งหมด)

Rabin และ Scott ที่น่าสนใจยังกำหนดออโต จำกัด อัน จำกัด ที่ไม่สามารถกำหนดได้ในแง่ของฟังก์ชั่นทั้งหมด! หน้า 120, คำจำกัดความ 9:

nondeterministic ( จำกัด ) หุ่นยนต์ ... เป็นระบบที่ที่ ... Mเป็นฟังก์ชั่น [!] ของS×Σด้วยค่าในชุดย่อยทั้งหมดของSS

นั่นคือฟังก์ชั่นการเปลี่ยนแปลงเป็นผลรวมไม่ได้ทำให้ระบบกำหนดขึ้น!

Sipser 2006 ติดตามราบินและสก็อตต์และใช้ฟังก์ชั่นการเปลี่ยนภาพรวมจากสถานะ / สัญลักษณ์ไปยังชุดพลังของรัฐสำหรับคำจำกัดความของออโตมาตา จำกัด แบบไม่ จำกัด ตัว, พีดีเอที่ไม่ได้กำหนดขึ้นและไม่ใช่ทัวริง พีดีเอ

ทั้ง Hopcroft และ Ullman, 1979 และ Lewis และ Papadimitriou, 1981 ใช้ฟังก์ชันบางส่วนในคำจำกัดความของ PDAs ที่กำหนดขึ้น พวกเขากำหนด NPDAs ด้วยความสัมพันธ์ในการเปลี่ยนภาพจากนั้นเมื่อพวกเขาไปถึงพีดีเอลูอิสและ Papadimitriou พูด (หน้า 135)

ออโตเมติกแบบกดลงจะถูกกำหนดอย่างแน่นอนและพูดง่ายถ้ามีการเปลี่ยนอย่างมากที่สุดครั้งเดียวที่ใช้กับแต่ละการกำหนดค่า

ในขณะที่ Hopcroft และ Ullman พูด (หน้า 112):

PDA ... นั้นถูกกำหนดไว้ในแง่ที่ว่าการเคลื่อนไหวหนึ่งครั้งนั้นสามารถทำได้จาก ID ใด ๆ


คุณกำลังทำกำหนดหุ่นยนต์เมื่อคุณเพิ่มรัฐ R เราสามารถแปลง NFA เป็น DFA ได้ตลอดเวลา คุณพูดถูก: ฟังก์ชั่นบางส่วนหรือฟังก์ชั่นรวม? นักคณิตศาสตร์ส่วนใหญ่จะหมายถึงฟังก์ชั่นทั้งหมดเมื่อพวกเขาพูดว่าฟังก์ชั่น พวกเขาบอกว่าฟังก์ชั่นบางส่วนเมื่อพวกเขาไม่ได้หมายถึงฟังก์ชั่นทั้งหมด นั่นเป็นเหตุผลที่ฉันคิดว่าเราจำเป็นต้องรวมคำจำกัดความที่เป็นทางการของคำถาม QอีRRโอR
scaaahu

2
รุ่นฟังก์ชั่นบางส่วนเป็นรุ่นที่ให้ใน Hopcroft และ Ullman ถ้านั่นสร้างความแตกต่าง ดังนั้นความคิดที่ว่าฟังก์ชั่นบางส่วนนั้นเป็น nondeterministic โดยเนื้อแท้แล้วก็ไม่ได้มาตรฐาน
jmite

1
@jmite มันไม่ใช่ฟังก์ชั่นบางส่วนที่บอกเป็นนัย ๆ ว่า มันเป็นฟังก์ชั่นทั้งหมดที่บ่งบอกถึงการกำหนดที่ทำให้ฟังก์ชั่นทั้งหมดเป็นทางเลือกที่ดีกว่า แน่นอนว่ามันเป็นคำนิยามที่คุณใช้อยู่ไม่มากก็น้อย
Patrick87

3
δ

1
ตามที่คุณได้แสดงรุ่นฟังก์ชั่นบางส่วนนั้นแปลได้ง่ายเป็นเวอร์ชั่นฟังก์ชั่นรวมและเท่าที่ฉันเห็นคุณไม่ได้รับอะไรเลยทั้งทางน้ำท่วมทุ่งหรืออย่างอื่นโดยอนุญาตให้ฟังก์ชั่นการแปลเป็นบางส่วน มังกรกล่าวโดยเฉพาะว่าฟังก์ชั่นทั้งหมด ทำไมในโลกนี้เราจึงสร้างการโต้เถียงเกี่ยวกับบางสิ่งที่ถูกกำหนดไว้อย่างชัดเจนในหนังสือเรียนมาตรฐานที่คนส่วนใหญ่ติดตามเมื่อไม่มีสิ่งใดที่จะได้รับจากการเลือกคำจำกัดความที่ไม่ได้มาตรฐาน
Alex Smart

8

δ(Q,a)QQaΣQΣ

ε

ในแง่ของความสามารถในการคำนวณ NFA นั้นเทียบเท่ากับ DFAs - มีอัลกอริทึมในการแปลงจาก NFA เป็น DFA และ DFA เป็นเพียงเล็กน้อย NFA ที่ไม่ได้ใช้ nondeterminism ดังนั้นพวกเขาทั้งสองจึงกำหนดชุดภาษาปกติ


2
ขึ้นอยู่กับคำจำกัดความ; มีหลายอย่างที่เทียบเท่าในอำนาจ
กราฟิลส์

3
+1 ที่ดีที่สุดที่จะปฏิบัติตามคำจำกัดความนี้ IMHO เนื่องจากทุกคนยอมรับว่า FA ที่กำหนดการเปลี่ยนแปลงหนึ่งรายการสำหรับคู่ (สถานะสัญลักษณ์) แต่ละคู่ถือว่าเป็น DFA ที่ถูกต้อง
Patrick87

1
และคำจำกัดความนี้เรียบออกผิดเมื่อคุณพยายามที่จะขยายออกไปเพื่อตัดสินใจว่าภาษาที่ใช้บริบทอิสระนั้นไม่ได้กำหนดหรือไม่เป็นทางการ ออโตเมดาแบบกดลงที่มีการเปลี่ยนตำแหน่งที่หายไปสามารถเปลี่ยนเป็นออโตเมต้าแบบกดลงที่มีการเปลี่ยนหนึ่งครั้งต่อสถานะสัญลักษณ์อินพุต / สัญลักษณ์สแต็ก ออโตเมติกแบบขยายลงแบบ nondeterministic ที่มีช่วงการเปลี่ยนภาพที่เป็นไปได้หลายต่อสถานะสัญลักษณ์อินพุต / สัญลักษณ์สแต็กไม่สามารถแปลงเป็นออโตเดอร์กดลงแบบกำหนดค่า (ตัวอย่างเช่น: ในกรณีที่ภาษาที่ได้รับการยอมรับไม่มีบริบท nondeterministic)
Wandering Logic

2
@jmite เพียงแค่กำหนด trim ออโตมาตาเป็นอิสระจาก DFAs ฉันคิดว่ามันสำคัญกว่ามากที่ DFA ขั้นต่ำมีจำนวนสถานะที่ถูกต้องตามทฤษฎีบท Myhill - Nerode ซึ่งคุณจะได้รับจากสภาวะที่ตายแล้วเท่านั้น
Patrick87

4
εεε

6

มีคำจำกัดความของ DFA ตามแนวของ

A|δ(Q,a)|1Qaδ(Q,ε)δ(Q,a)=aΣA

ในกรณีนี้คุณไม่จำเป็นต้องมีการเปลี่ยนแปลงทั้งหมด หากหุ่นยนต์ไม่มีการปรับเปลี่ยนให้เหมาะสมกับสัญลักษณ์อินพุตถัดไปมันจะปฏิเสธ

เป็นแบบฝึกหัดที่ดีที่แสดงว่าคำจำกัดความทั้งสองนั้นเทียบเท่ากันในแง่ของภาษาที่สามารถยอมรับได้


ฉันคิดว่าคำถามของ OP ต้องได้รับการแก้ไขเพื่อรวมนิยามที่เป็นทางการของ DFA
scaaahu

0

ในคำจำกัดความของ DFA ทุกรัฐควรมีตัวอักษรทั้งหมดเป็นปอนด์ ตัวอย่างเช่นหาก£ = {a, b, c} และ Q = {q0, q1, q2} สถานะทั้งหมดนี้ควรมีสัญลักษณ์ a, b, c ทั้งหมดที่เปลี่ยนไปเป็นสถานะอื่นหรือรัฐเดียวกัน


1
ความแตกต่างจากคำตอบที่มีอยู่เพื่อให้คุณโพสต์คำตอบใหม่คืออะไร?
xskxzr

0

คำตอบที่ง่ายที่สุดสำหรับเรื่องนี้คือคุณเพิ่มตายรัฐสำหรับสัญลักษณ์ด้านซ้าย เช่นเดียวกับการแปลงจาก NFA เป็น DFA เราจะได้รับสัญลักษณ์บางอย่างซึ่งบ่งบอกว่าเราสร้างสถานะตายสำหรับมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.