ถ้าไม่เช่นนั้นจะมีความหมายว่าอย่างไรสำหรับบางรัฐและบางสัญลักษณ์ ,ไม่มีอยู่?a δ ( q , a )
ถ้าไม่เช่นนั้นจะมีความหมายว่าอย่างไรสำหรับบางรัฐและบางสัญลักษณ์ ,ไม่มีอยู่?a δ ( q , a )
คำตอบ:
คุณดูเหมือนจะสะดุดกับปัญหาที่ถกเถียงกัน เห็นได้ชัดว่านักวิทยาศาสตร์คอมพิวเตอร์ชอบที่จะโต้แย้ง ฉันอยากจะโต้แย้งอย่างแน่นอนดังนั้นที่นี่ไป!
คำตอบของฉันคือแจ่มแจ้ง: ไม่ออโต จำกัด แน่นอนไม่จำเป็นต้องเปลี่ยนจากทุกสถานะสำหรับทุกสัญลักษณ์ ความหมายเมื่อไม่มีอยู่เพียงว่า DFA ไม่ยอมรับสตริงอินพุต
ในขณะที่คุณสามารถสร้างความหมายของ DFA ที่ต้องว่าไม่อยู่ก็เป็นเพียงไม่กรณีที่มีการเปลี่ยนแปลงที่ขาดหายไปทำให้โครงสร้างที่เกิด (สิ่งที่คุณเรียกว่า) ในทางใดทางnondeterministicเป็นจำนวนมากของผู้แสดงความคิดเห็นที่มี ที่อ้างว่า หากคุณกำลังเรียนวิชาทฤษฎีออโตมาตาหัวข้อถัดไปจะเป็นภาษาที่ไม่มีบริบทและออโตมาดาวน์แบบกดลงซึ่งความแตกต่างระหว่างออโตนิต้าแบบกำหนดค่าได้กับคอนเซ็ปต์แบบกึ่งอัตโนมัติและคุณจำเป็นต้องใช้คำจำกัดความที่ถูกต้อง
ไม่ใช่ระดับที่เกี่ยวข้องกับการมีการเปลี่ยนแปลงทางกฎหมายมากกว่าหนึ่ง
ฉันคิดว่าเราทุกคนเห็นด้วยกับนิยามของ Wikipedia ดังต่อไปนี้ (ซึ่งฉันจะแสดงในไม่กี่วินาทีนั้นมีความคลุมเครือเล็กน้อย):
ยานยนต์ จำกัด แน่นอนคือ 5 tuple, ( , , , , ) ประกอบด้วย
Let เป็นสตริงมากกว่าอักษรΣautomaton ยอมรับสตริงหากลำดับของสถานะ , มีอยู่ในด้วยเงื่อนไขดังต่อไปนี้:
กำกวมและความขัดแย้งที่มีมากกว่า defintion ของฟังก์ชั่นการเปลี่ยนแปลงที่ (หมายเลข "3" ในครั้งแรกที่รายการสัญลักษณ์.) เราทุกคนยอมรับว่าสิ่งที่แตกต่าง DFA จาก NFA คือเป็นฟังก์ชั่นมากกว่าความสัมพันธ์ แต่ฟังก์ชั่นบางส่วนหรือฟังก์ชั่นรวม ?
คำจำกัดความของ DFA นั้นใช้งานได้ดีถ้าเป็นฟังก์ชันบางส่วน รับสายป้อนถ้าคุณไปถึงสถานะด้วยสัญลักษณ์อินพุตที่ไม่มีสถานะถัดไปออโตมาตาก็ไม่ยอมรับ
ยิ่งไปกว่านั้นเมื่อคุณขยายคำจำกัดความนี้เพื่อสร้างคำนิยามของออโตมาตาแบบกดลงจะเป็นกรณีที่คุณต้องสร้างความแตกต่างที่ออโตมาตาแบบกดลงด้วยฟังก์ชั่นการเปลี่ยนภาพ
ถ้ารบกวนฟังก์ชั่นบางส่วนคุณแล้วนี่คือการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ที่ทำให้ฟังก์ชั่นทั้งหมด (การเปลี่ยนแปลงนี้ไม่เหมือนกับอัลกอริทึมการก่อสร้างชุดย่อยซึ่งจะเพิ่มที่สถานะ O (1) ส่วนใหญ่เป็นเส้นตรงในจำนวนเดิมของรัฐและสามารถขยายการทำงานกับ PDAs ได้ไม่มีข้อเท็จจริงเหล่านี้เป็นจริงของอัลกอริทึมการสร้างชุดย่อย .)
ออโตมาตะนี้มีที่เป็นฟังก์ชั่นทั้งหมดและยอมรับและปฏิเสธชุดสถานะเดียวกันกับที่ออโตมาตาดั้งเดิมของคุณยอมรับและปฏิเสธ
Commenter @Alex Smart วิจารณ์ฉันอย่างถูกต้องเพราะไม่ให้การอ้างอิงหรืออธิบายว่าทำไมเราควรสนใจ ดังนั้นที่นี่ไป:
เหตุผลที่เราดูแลเกี่ยวกับความหมายที่แท้จริงของชะตา VS ไม่ใช่ชะตาเป็นที่เรียนของออโตไม่ใช่กำหนดบางส่วนมีประสิทธิภาพมากขึ้นกว่าญาติกำหนดของพวกเขาและการเรียนของออโตไม่ใช่กำหนดบางคนไม่ได้มีประสิทธิภาพมากขึ้นกว่าญาติของพวกเขากำหนด สำหรับเครื่องจักรออโตมาตะและทัวริง จำกัด ตัวแปรที่กำหนดและไม่กำหนดจะมีกำลังเท่ากัน สำหรับการกดออโตเมต้ามีภาษาที่มีความแตกต่างที่สำคัญ: มี NPDA ที่ยอมรับภาษาและไม่มี DPDA ที่รับภาษา สำหรับออโตมาต้าที่ จำกัด ขอบเขตเชิงเส้นคำถามคือ (หรือเป็นครั้งสุดท้ายที่ฉันตรวจสอบ) เปิด การเพิ่มพลังงานของ NPDA เหนือ DPDA นั้นมาจากการอนุญาตหลาย การเปลี่ยนไม่ใช่จากการเปลี่ยนฟังก์ชั่นการเปลี่ยนจากฟังก์ชั่นรวมเป็นฟังก์ชั่นบางส่วน
หนังสือจากคอมไพเลอร์ชุมชน:
Aho และ Ullman หลักการออกแบบคอมไพเลอร์ , 1977: ก่อนกำหนด NFA (หน้า 88) ด้วยความสัมพันธ์การเปลี่ยนจากนั้น (หน้า 90-91):
เราบอกว่าหุ่นยนต์ จำกัด มีกำหนดถ้า 1. มีการเปลี่ยนที่ไม่มีในการป้อนข้อมูลε2. สำหรับแต่ละรัฐและใส่สัญลักษณ์มีที่มากที่สุดขอบหนึ่งที่มีป้ายกำกับออกs
Aho, Sethi, และ Ullman, Compilers, หลักการ, tecniques, และเครื่องมือ , 1988 การพิมพ์ซ้ำ, มันคล้ายกัน, มันเป็นตัวกำหนด NFA ครั้งแรกด้วยความสัมพันธ์ในการเปลี่ยนภาพ, (หน้า 115-116):
กำหนดขอบเขตออโต (DFA สำหรับสั้น) เป็นกรณีพิเศษของหุ่นยนต์ finitie ไม่ใช่กำหนดขึ้นในการที่ ... มีที่มากที่สุดขอบหนึ่งที่มีป้ายกำกับออกs
(โปรดทราบว่าในความคิดเห็น @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 ของคู่ทั้งหมดของรัฐและสัญลักษณ์." (ซึ่งผมจะแปลความหมายเป็นความหมายฟังก์ชั่นทั้งหมด)
Rabin และ Scott ที่น่าสนใจยังกำหนดออโต จำกัด อัน จำกัด ที่ไม่สามารถกำหนดได้ในแง่ของฟังก์ชั่นทั้งหมด! หน้า 120, คำจำกัดความ 9:
nondeterministic ( จำกัด ) หุ่นยนต์ ... เป็นระบบที่ที่ ... เป็นฟังก์ชั่น [!] ของด้วยค่าในชุดย่อยทั้งหมดของS
นั่นคือฟังก์ชั่นการเปลี่ยนแปลงเป็นผลรวมไม่ได้ทำให้ระบบกำหนดขึ้น!
Sipser 2006 ติดตามราบินและสก็อตต์และใช้ฟังก์ชั่นการเปลี่ยนภาพรวมจากสถานะ / สัญลักษณ์ไปยังชุดพลังของรัฐสำหรับคำจำกัดความของออโตมาตา จำกัด แบบไม่ จำกัด ตัว, พีดีเอที่ไม่ได้กำหนดขึ้นและไม่ใช่ทัวริง พีดีเอ
ทั้ง Hopcroft และ Ullman, 1979 และ Lewis และ Papadimitriou, 1981 ใช้ฟังก์ชันบางส่วนในคำจำกัดความของ PDAs ที่กำหนดขึ้น พวกเขากำหนด NPDAs ด้วยความสัมพันธ์ในการเปลี่ยนภาพจากนั้นเมื่อพวกเขาไปถึงพีดีเอลูอิสและ Papadimitriou พูด (หน้า 135)
ออโตเมติกแบบกดลงจะถูกกำหนดอย่างแน่นอนและพูดง่ายถ้ามีการเปลี่ยนอย่างมากที่สุดครั้งเดียวที่ใช้กับแต่ละการกำหนดค่า
ในขณะที่ Hopcroft และ Ullman พูด (หน้า 112):
PDA ... นั้นถูกกำหนดไว้ในแง่ที่ว่าการเคลื่อนไหวหนึ่งครั้งนั้นสามารถทำได้จาก ID ใด ๆ
ในแง่ของความสามารถในการคำนวณ NFA นั้นเทียบเท่ากับ DFAs - มีอัลกอริทึมในการแปลงจาก NFA เป็น DFA และ DFA เป็นเพียงเล็กน้อย NFA ที่ไม่ได้ใช้ nondeterminism ดังนั้นพวกเขาทั้งสองจึงกำหนดชุดภาษาปกติ
มีคำจำกัดความของ DFA ตามแนวของ
ในกรณีนี้คุณไม่จำเป็นต้องมีการเปลี่ยนแปลงทั้งหมด หากหุ่นยนต์ไม่มีการปรับเปลี่ยนให้เหมาะสมกับสัญลักษณ์อินพุตถัดไปมันจะปฏิเสธ
เป็นแบบฝึกหัดที่ดีที่แสดงว่าคำจำกัดความทั้งสองนั้นเทียบเท่ากันในแง่ของภาษาที่สามารถยอมรับได้
ในคำจำกัดความของ DFA ทุกรัฐควรมีตัวอักษรทั้งหมดเป็นปอนด์ ตัวอย่างเช่นหาก£ = {a, b, c} และ Q = {q0, q1, q2} สถานะทั้งหมดนี้ควรมีสัญลักษณ์ a, b, c ทั้งหมดที่เปลี่ยนไปเป็นสถานะอื่นหรือรัฐเดียวกัน
คำตอบที่ง่ายที่สุดสำหรับเรื่องนี้คือคุณเพิ่มตายรัฐสำหรับสัญลักษณ์ด้านซ้าย เช่นเดียวกับการแปลงจาก NFA เป็น DFA เราจะได้รับสัญลักษณ์บางอย่างซึ่งบ่งบอกว่าเราสร้างสถานะตายสำหรับมัน