FSA สามารถนับได้หรือไม่


11

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

ในการวางไว้ในรูปของ FST แทน: ฉันคิดว่ามันเป็นไปไม่ได้ที่จะสร้าง FST ที่สามารถแมปสตริงของความยาวโดยพลการกับการแทนฐานสอง (เช่นตัวเลขในระบบเลขฐาน 2) ของความยาว แต่แน่นอนว่ามันไม่สำคัญที่จะสร้าง FST ที่สามารถแมปสตริงของความยาวตามอำเภอใจกับสตริงของ zeroes (หรืออัน) ที่มีความยาวเท่ากัน แต่นั่นอาจนับได้ว่านับไม่ได้หรือไม่เพราะสิ่งที่ FST กำลังทำอยู่กำลังสร้างการแสดงความยาวของอินพุต การเป็นตัวแทนที่ค่อนข้างแปลก แต่ก็ยังเป็นตัวแทนอยู่ใช่ไหม?


1
ดังนั้นคุณจะถามคำถามจริง ๆ นั่นไม่ได้เสียงเหมือนวิทยาศาสตร์คอมพิวเตอร์กับฉัน มันจะเป็นวิทยาการคอมพิวเตอร์หากคำถามของคุณคือ "สำหรับคำจำกัดความของการนับ FSA นี้สามารถนับได้หรือไม่"
Sasho Nikolov

คำตอบ:


8

คำถามนี้ค่อนข้างคลุมเครือดังนั้นนี่คือคำตอบที่คลุมเครือ: การแปลคำว่า unary เป็น unary นั้นไม่นับอย่างแน่นอนเนื่องจากเครื่องไม่ได้ "รู้" ขนาดของอินพุตที่เป็น "ในตอนท้าย"

คุณตระหนักถึงสิ่งนี้แน่นอนซึ่งเป็นเหตุผลที่คุณตั้งคำถามถึงความจริงที่ว่ามันมีการนับแน่นอน

อย่างไรก็ตามการแปลจาก unary เป็นไบนารี่ดูเหมือนว่าเป็นการดำเนินการขั้นสูงมากกว่าเพราะมันไม่เพียง แต่เกี่ยวข้องกับการนับเท่านั้น แต่ยังเกี่ยวข้องกับการคำนวณ

ดังนั้นอาจจะเป็นความคิดที่แม่นยำยิ่งขึ้นไปดูที่แทนการนับจะเปรียบเทียบ นั่นคือการกำหนดตัวเลขสอง (ในเอก)และตรวจสอบถ้า m1 m n = m1n1mn=m

ความสามารถในการทำการเปรียบเทียบนี้คือสิ่งที่ก่อให้เกิดความมีชื่อเสียงภาษาที่ไม่ปกติ\} และการไร้ความสามารถของ NFA ที่จะนับเป็นสิ่งที่ทำให้ภาษานี้ไม่ปกติ{anbn:n0}

ที่น่าสนใจคือภาษานี้เป็น CFL และแน่นอนว่าโมเดลออโตมาตะที่สอดคล้องกัน - PDAs มีความสามารถในการทำการเปรียบเทียบแบบ จำกัด

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

หมายเหตุเพิ่มเติม: อย่างไม่เป็นทางการความสามารถในการเปรียบเทียบตัวเลขสองตัวมักจะถูกนำมาใช้เพื่อจำลองเครื่องMinsky Machine 2 ตัวนับซึ่งเทียบเท่ากับ TMs


4

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

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

ในตัวอย่างของคุณ fsa ทดสอบว่าสตริงมีจำนวน 'และ ' s เท่ากันหรือไม่โดยการนับตัวเลขเหล่านี้ไปยังเทปเอาต์พุตอื่นสองแผ่น อุปกรณ์อื่นจะต้องทำการเปรียบเทียบขั้นสุดท้ายเว้นแต่คุณจะมีเคล็ดลับในการจัดการตัวอักษรและเป็นคู่และ cros ปิดหนึ่งต่ออีก เหมือนในจัตุรัสb a babab

ตอนนี้เป็นแบบอย่างที่เป็นทางการมากขึ้นเพื่อเปรียบเทียบกับ ตามที่ชัม-Schutzenberger ทฤษฎีบททุกบริบทภาษาฟรีเป็นผกผันของรัฐพลังงาน จำกัด ของ Dyck ภาษาในคู่ที่สองของวงเล็บ (มันไม่ได้ระบุไว้เช่นนั้น บนวิกิพีเดีย แต่คุณต้องเชื่อฉัน) ตอนนี้ตัวแปลงสัญญาณสถานะ จำกัดสามารถ "ยอมรับ" ภาษาที่ไม่มีบริบทดังต่อไปนี้ (สำหรับแต่ละภาษาตัวแปลงสัญญาณของมันเอง) ในอินพุตแปลงสตริงเป็นชุด (เดา) ของ pops และพุชของ pda สำหรับจากนั้นทดสอบว่าผลลัพธ์คือพฤติกรรมการกดลงหรือไม่นั่นคือผลลัพธ์เป็นสตริงในT D 2 L = T - 1 ( D 2 ) T L T L D 2 w T - 1 ( D 2 ) T ( w ) D 2LTD2L=T1(D2)TLTLD2D_2(ไม่ได้ระบุรายละเอียดทางเทคนิค แต่นี่เป็นทฤษฎีของ Ch-Sch ที่อ้างสิทธิ์: มี iff )wT1(D2)T(w)D2

จุดของฉันที่นี่คือที่บางคน "คำนวณ" จะกระทำโดยการแปลงสัญญาณ แต่อำนาจมากถูกซ่อนอยู่ในการทดสอบกับD_2ในทำนองเดียวกันตัวอย่างของคุณโดยที่ตัวอักษรสองตัวถูกจัดเรียงบนเทปสองแผ่น D2


ฉันสามารถสร้าง DFA นับว่าระหว่างที่จะ (สำหรับการแก้ไข ) หรือแม้กระทั่งใน{N} นั่นเป็นมากกว่ามนุษย์คนใดหรือคอมพิวเตอร์ตัวจริงจัดการ คุณจะเรียกการนับอะไร 2 n ! n N02n!nN
ราฟาเอล

@Raphael แน่ใจ และตัวเลขที่ง่ายกว่านั้น หยุดสอนว่าภาษาที่ไม่มีบริบทมีประสิทธิภาพมากกว่าภาษาปกติ: เป็นภาษาเดียวกัน (อย่างน้อยก็สำหรับความยาวสูงสุด ) แค่ล้อเล่น. การอ้างถึงภาษาคอมพิวเตอร์จริงเช่นนั้นทำให้มีสถานะ จำกัด ใช่ไหม ออโต จำกัด สถานะไม่นับ! พวกเขาแยกแยะจำนวนที่แน่นอนของรัฐแม้ว่าจำนวนนั้นอาจมีขนาดใหญ่มาก 2n!
Hendrik

แต่วิธีที่นำเสนอ FSAs มักเป็นเพียง "อนุญาต" ให้พูดว่า "ใช่" (ยอมรับ) หรือ "ไม่" (ไม่ยอมรับ) รับนี้ไม่มีใครสามารถสร้าง FSA ที่นับ หากเราอนุญาตให้รายงาน (เช่นพิมพ์) สถานะ (จำนวนของ) ที่อยู่ในสถานะเมื่อสิ้นสุดแล้วก็สามารถนับได้ แต่ขึ้นอยู่กับขอบเขตที่กำหนดโดยจำนวนของรัฐเท่านั้น แต่ถ้าเราอนุญาตให้มันพิมพ์มันเป็นเรื่องไม่สำคัญที่จะสร้าง FSA ของรัฐเดี่ยวที่พิมพ์ (พูด) 1 ทุกครั้งที่มันอ่านสัญลักษณ์จากสตริงอินพุต เกิดอะไรขึ้นกับความคิดนี้
Torbjörn

และถ้าเราลืมเกี่ยวกับการรายงาน / การพิมพ์และคิดในแง่ของการเป็นตัวแทนภายในแทน FSA สามารถนับสัญลักษณ์ในสตริง แต่ไม่ได้อยู่ในความยาวโดยพลการ แน่นอนว่า FSA นั้นไม่สามารถนับได้เลย
Torbjörn

Hendrik ฉันคิดว่าเรากำลัง "ถกเถียง" เรื่องของความหมาย: สำหรับฉัน "การนับ" สามารถเป็น "จากหนึ่งถึงสิบ" ซึ่ง FA สามารถทำได้ ยกตัวอย่างเช่นเมื่อตัดBüchi-automata เรานับจำนวนของออโตมาตะ(ถึงคงที่) เป็นจำนวนถึงสถานะสุดท้ายในขณะที่คนอื่น ๆ ดำเนินการต่อ ดังนั้นฉันคิดว่าคำว่า "ไม่สามารถนับได้" นั้นแรงเกินไป ข้อความจริง (เท่านั้น) คือ "ไม่สามารถนับได้ไกลไปกว่าค่าคงที่" k
กราฟิลส์

1

@Shaull: ขอบคุณสำหรับคำตอบของคุณ! ฉันใหม่กับ StackExchange และไม่ทราบวิธีแสดงความคิดเห็นเกี่ยวกับคำตอบดังนั้นฉันเลือกที่จะเขียนคำตอบแทนด้วยความหวังว่าฉันอาจได้รับการอภัย

อืมข้าคิดว่าคนเลี้ยงแกะนับแกะของเขาด้วยการเขียนเครื่องหมายลงบนแผ่นกระดาษสำหรับแกะแต่ละตัวที่เขาเห็นหรือนักโทษนับวันที่เขาอยู่ในคุกด้วยการเขียนเครื่องหมายบนผนังกำลังนับ ทำไมจะไม่มีเครื่องหมาย n บนกระดาษหรือบนผนังเป็นตัวแทนของตัวเลข n? นั่นไม่ใช่สิ่งที่เรียกว่าการเป็นตัวแทน? AFAICS ไม่มีความหมายที่ชัดเจนน้อยไปกว่าการแสดงฐานสองยกเว้นว่ามันใช้พื้นที่มากขึ้น

ฉันคิดว่าสำหรับคุณแล้ว "รู้" หมายความว่ามันมีตัวแทนภายในของการนับในที่สุด แน่นอนว่า FSA ของ FST ไม่สามารถคำนวณความยาวของสตริงที่กำหนดเองได้ แต่ถ้าเราไม่ต้องการความรู้ในแง่นั้น แต่เรียกร้องเพียงว่า FSA หรือ FST ควรจะสามารถบอกผลการทดสอบกับผู้สังเกตการณ์ภายนอกได้ดูเหมือนว่าสำหรับฉันแล้วการแสดงจำนวนในรูปแบบควรจะโอเค

นอกจากนี้หาก FSA มีการติดตั้งทั้งอินพุตที่เพิ่มขึ้นและเอาท์พุทดังนั้นโดยหลักการแล้วมันควรจะสามารถใช้สภาพแวดล้อมภายนอกเป็นหน่วยความจำแบบอ่าน / เขียนและมีประสิทธิภาพเท่ากับเครื่องทัวริง ขวา?

ขอขอบคุณที่นำกรณีของการเปรียบเทียบขึ้นมา ตอนนี้ดูเหมือนจะเป็นกรณีที่ถ้าเรายกความต้องการของการเป็นตัวแทนภายในและเราเพียงต้องการให้เครื่องสามารถนำเสนอผลการ en en สังเกตการณ์ภายนอกแล้วเราสามารถสร้าง FSM ที่สามารถผลิตชนิดของ การนำเสนอกราฟิกของผลลัพธ์ สมมติว่า FSM อ่าน "aaaaaabbbbbb" ของผู้อ่าน

000000
000000

จากนั้นเนื่องจากแท่งมีความยาวเท่ากัน FSM จึงยอมรับสตริง "aaaaaabbbbbb" แท่งสองแท่งที่มีความยาวเท่ากันหมายถึง "ใช่" ความยาวที่ต่างกันหมายถึง "ไม่"

ฉันเดาว่าฉันกำลังก้มกฎ แต่นั่นคือสิ่งที่ฉันต้องการเนื่องจากฉันสนใจในข้อสันนิษฐานที่มากขึ้นหรือน้อยที่เกิดขึ้นในสาขาภาษาศาสตร์คณิตศาสตร์


FSAWOC{an|n is prime }

ฉันคิดว่าความแตกต่างระหว่างตัวอย่างที่คุณให้กับ FST-output คือคนเลี้ยงแกะสามารถอ่านบรรทัดหลังจากที่พวกมันถูกเขียนในขณะที่ FSM ไม่สามารถทำได้ กันไปสำหรับการเปรียบเทียบ
Shaull

คุณสามารถแสดงความคิดเห็นได้โดยคลิกลิงก์ "เพิ่มความคิดเห็น" ใต้โพสต์ใด ๆ
ราฟาเอล

FSA ใด ๆ ที่สร้างขึ้นเพื่อนับฝูงสามารถนับฝูงนั้นได้ ไม่มี FSA ที่สร้างขึ้นสามารถนับฝูงได้ คำถามพื้นฐานคือว่าคนเลี้ยงแกะรู้เพียงวิธีการนับไกลพอที่จะนับฝูงแกะของเขาอย่างน้อยที่สุดหรือสามารถใช้ตัวเลขธรรมชาติอย่างเต็มรูปแบบได้ จากประสบการณ์ของฉันมนุษย์เราต้องทำการเปลี่ยนแปลงอย่างชัดเจนระหว่างความสามารถทั้งสองในบางจุดในการศึกษาคณิตศาสตร์ของเรา
reinierpost

1

FSMสามารถ "นับ" ภายในขอบเขต / จำนวนขั้นตอนที่มีนัยซึ่งบ่งชี้โดยการเปลี่ยนสถานะ อย่างไรก็ตามพวกเขาไม่สามารถนับจำนวนก้าวที่ผ่านมาได้

มีความรู้สึกว่าเครื่องจักรที่มีลักษณะคล้าย FSA สามารถนับได้ เครื่องที่เกี่ยวข้องอย่างใกล้ชิดเรียกว่าไฟไนต์รัฐ Transducer ตัวแปลงสัญญาณสามารถนับได้ในความหมายของอินพุตและเอาต์พุต "piped" ตัวแปลงสัญญาณเดี่ยวสามารถรับลำดับการป้อนข้อมูล (พูดเป็นเลขฐานสอง) และ "แปลง" ให้เป็นลำดับเอาต์พุตที่เพิ่มขึ้น จากนั้น "โซ่" หนึ่งตัว (เหมือนกัน) นับ - ต่อ -1 ทรานสดิวเซอร์แต่ละอันจะเพิ่มอินพุตโดย 1 และส่งออกมัน ยังเหมือนพื้นฐาน"ขั้นตอนวิธีการสตรีมมิ่ง"


รายละเอียดเพิ่มเติม: transducer สามารถเพิ่มการทำงานใน "lsb" กับ "MSB" สั่งเช่น "บิต sig น้อย" เพื่อ "บิต sig ที่สุด" ใช้ตรรกะที่คล้ายกับ EE บวกเต็ม
vzn

ตัวแปลงสัญญาณสถานะ fyi ดูเหมือนว่าจะไม่ได้รับการศึกษามากนัก มีแอปพลิเคชั่นที่น่าสนใจอีกอย่างสำหรับcollatz conjectureในการสร้างเครื่องที่คำนวณซ้ำ ทุกคนที่สนใจในอีกทฤษฎี / อภิปรายติดต่อ plz ฉันในการแชทหรือบนของบล็อก
vzn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.