ทฤษฎีออโตมาต้ามีประโยชน์อย่างไร?


37

มีวิธีการสมัครในหัวข้อที่เกี่ยวข้องกับวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีอยู่เสมอ แต่ตำราและหลักสูตรระดับปริญญาตรีมักจะไม่อธิบายเหตุผลที่ว่าทฤษฎีออโตมาตะเป็นหัวข้อที่สำคัญและไม่ว่ามันจะยังคงมีการใช้งานในทางปฏิบัติ ดังนั้นนักศึกษาระดับปริญญาตรีอาจมีปัญหาในการทำความเข้าใจความสำคัญของทฤษฎีออโตมาตะและอาจคิดว่ามันไม่ได้มีประโยชน์อะไรอีกต่อไป

ทฤษฎีออโตมาต้ายังคงมีประโยชน์ในทางปฏิบัติหรือไม่?

มันควรเป็นส่วนหนึ่งของหลักสูตร CS ระดับปริญญาตรีหรือไม่?


4
ฉันคิดว่านี่เป็นนอกหัวข้อที่นี่; โปรดดูคำถามที่พบบ่อย
Jukka Suomela

3
ฉันมีความรู้สึกผสมเกี่ยวกับ 'ปิด = topic'-ness ของสิ่งนี้ เห็นได้ชัดว่าไม่ใช่ระดับการวิจัย แต่คำถามนี้โดยเฉพาะเกี่ยวกับความเกี่ยวข้องของทฤษฎีออโตมาตะเป็นคำถามที่เกิดขึ้นบ่อยครั้ง
Suresh Venkat

18
ฉันคิดว่านี่เป็นหัวข้อที่สมบูรณ์แบบ การประยุกต์ใช้ทฤษฎีออโตไฟไนต์ จำกัด คืออะไร? ไม่แตกต่างจากแอปพลิเคชัน Vertex Cover ในโลกแห่งความจริงและเราไม่ได้ปิดคำถามนั้น
Peter Shor

4
โดยวิธีการคำถามนี้มีความเกี่ยวข้องอย่างใกล้ชิดและคำตอบของมันอาจให้แรงจูงใจในทางปฏิบัติสำหรับการศึกษาทฤษฎีออโตมาตา จำกัด ด้วยเช่นกัน: " อะไรคือนิพจน์ปกติที่ดีสำหรับ? "
Jukka Suomela

2
ฉันต้องบอกว่าคุณภาพและความหลากหลายของคำตอบทำให้ปัญหา "ขอบเขต" ไม่เกี่ยวข้อง ฉันหวังว่าด้วยคะแนนโหวตสามครั้งแล้วคำถามนี้ก็ไม่ได้สั่นคลอน
Suresh Venkat

คำตอบ:


51
  1. เคยใช้เครื่องมือเช่น grep / awk / sed หรือไม่? นิพจน์ทั่วไปเป็นหัวใจสำคัญของเครื่องมือเหล่านี้

  2. คุณจะประหลาดใจกับจำนวนการเข้ารหัสที่คุณสามารถหลีกเลี่ยงได้ด้วยการใช้นิพจน์ทั่วไป - ใน "โปรเจ็กต์เชิงปฏิบัติ" เช่นเซิร์ฟเวอร์อีเมล

  3. หากคุณเป็น CS สำคัญคุณจะต้องเขียนคอมไพเลอร์ / ล่ามสำหรับภาษา (อย่างน้อยเล็ก ๆ ) หากคุณเคยลองงานนี้มาก่อนและติดอยู่คุณจะประทับใจกับทฤษฎีเล็ก ๆ น้อย ๆ (อาคาไวยากรณ์อิสระ) ที่สามารถช่วยคุณได้ ทฤษฏีนี้ได้ทำสิ่งที่เป็นไปไม่ได้ครั้งหนึ่งลงไปในสิ่งที่สามารถทำให้เสร็จในช่วงสุดสัปดาห์ (และได้รับรางวัลนักประดิษฐ์รางวัลทัวริง - google BNF)

  4. หากคุณเป็น CS ที่สำคัญในบางครั้งคุณจำเป็นต้องนั่งลงและคิดเกี่ยวกับรากฐานทางปรัชญาของการคำนวณและไม่ใช่แค่ว่า Android API รุ่นต่อไปจะยอดเยี่ยมแค่ไหน ในบันทึกที่เกี่ยวข้องเป็นหน้าที่ของมหาวิทยาลัยที่จะไม่เตรียมคุณให้พร้อมสำหรับ 5 ปีถัดไปในชีวิตของคุณ แต่เพื่อเตรียมคุณให้พร้อมสำหรับ 50 ปีข้างหน้าสิ่งเดียวที่พวกเขาสามารถทำได้ในเรื่องนี้คือการช่วยให้คุณคิด - คิด ทฤษฎีออโตมาตะเป็นหนึ่งในหลักสูตรเหล่านั้น


32

สิ่งที่แสดงให้เห็นถึงการปฏิบัติจริงของ CS คือคอมไพเลอร์ก่อสร้าง ในปี 1965 Knuth เริ่มศึกษา parsers LR อย่างรวดเร็ว (ในเวลาน้อยกว่าหนึ่งทศวรรษ) เรามีตัวแยกวิเคราะห์ LALR ซึ่งเป็นส่วนหนึ่งของออโตมาตาแบบกดลงที่กำหนดไว้ซึ่งช่วยให้เราสามารถใช้ตัวแยกวิเคราะห์กะ / ลด

หัวใจสำคัญของความเป็นไปได้และประสิทธิภาพของการแยก LALR เป็นข้อพิสูจน์ (โดย Knuth) ว่า "คำนำหน้า" ของภาษากลายเป็นเรื่องปกติ (หุ่นยนต์ จำกัด ของคุณ) นี่คือแหล่งกำเนิดของตัวแยกวิเคราะห์อัตโนมัติเช่น yacc / bison เป็นต้น

มันปลอดภัยที่จะพูดว่าภาษาการเขียนโปรแกรมที่เรารู้ว่าพวกเขาเป็นหนี้มากประสิทธิภาพการรวบรวมการพัฒนาเหล่านี้

นี่คืออีกตัวอย่าง: หัวใจของโปรโตคอล TCP / IP เป็นเครื่องสถานะ จำกัด จะมีประโยชน์มากกว่านี้อีกไหม?

นักเรียน CS ที่จริงจังทุกคนโดยเฉพาะอย่างยิ่งผู้ที่ปฏิบัติจริงควรให้ความสนใจกับทฤษฎีออโตมาตะ มันเป็นพื้นฐานสำหรับความอุดมสมบูรณ์ของวิทยาศาสตร์คอมพิวเตอร์


การแยกวิเคราะห์ไฟล์ต้นฉบับไม่ใช่ส่วนที่น่าสนใจ (และสำคัญ) ของคอมไพเลอร์ดังนั้นฉันไม่คิดว่ามันปลอดภัยที่จะพูดว่า "ภาษาโปรแกรมที่เรารู้จักพวกเขามีประสิทธิภาพในการพัฒนา ยิ่งไปกว่านั้นมันเป็นไปได้ที่จะแยกวิเคราะห์ภาษาโดยใช้เครื่องมือต่าง ๆ เช่น PEG หรือตัวแยกวิเคราะห์ (เช่น parsec)
ม.ค. Špaček

30

คุณสามารถได้ยินว่าเสียง ? มันเป็นเสียงของทฤษฎีบทที่ยอดเยี่ยมนับพันการใช้งานและเครื่องมือที่หัวเราะในสวรรค์ตามทฤษฎี

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

  1. คุณต้องการค้นหาเหตุการณ์ที่เกิดขึ้นซ้ำของวลีในเอกสารและลบเหตุการณ์ที่สอง ในสาระสำคัญคุณต้องการแทนที่ลำดับในภาษา
  2. โปรแกรมมีการละเมิดการยืนยันหรือไม่ ไดรเวอร์อุปกรณ์เคารพโปรโตคอลบางอย่างเมื่อโต้ตอบกับเคอร์เนลหรือไม่? พฤติกรรมของโปรแกรมคือชุดของการประมวลผล กล่าวอีกนัยหนึ่งภาษา คุณสมบัติความถูกต้องเป็นภาษาอื่น ปัญหาความถูกต้องของโปรแกรมจะตรวจสอบการรวมภาษา
  3. ซอฟต์แวร์ของคุณจะติดอยู่ในการวนซ้ำไม่สิ้นสุดได้หรือไม่? อัลกอริทึมแบบกระจายมี livelock หรือไม่ เราต้องการภาษามากกว่าคำที่ไม่มีที่สิ้นสุด แต่มุมมองการรวมภาษายังคงมีผลอยู่
  4. คุณต้องการสร้างเครื่องฆ่าเชื้อเพื่อตรวจจับจาวาสคริปต์ที่เป็นอันตรายที่ป้อนลงในเว็บแอปพลิเคชัน ชุดของสตริงที่เป็นอันตรายคือภาษา ชุดของสตริงที่ป้อนลงในแบบฟอร์มในภาษาอื่น คุณต้องการตรวจสอบว่าจุดตัดของภาษาเหล่านี้ไม่ว่างเปล่าหรือไม่
  5. การตรวจสอบเวลาทำงานของระบบที่มีปฏิกิริยาและสำคัญต่อภารกิจ คุณต้องการออกแบบจอภาพซอฟต์แวร์ที่ดูแลการทำงานของกระบวนการทางเคมีของคุณหรือติดตามการปรับปรุงฐานข้อมูลทางการเงิน สิ่งเหล่านี้เป็นปัญหาด้านภาษาและปัญหาการแยก
  6. จดจำรูปแบบด้วยแอพพลิเคชั่นมากมาย คุณต้องการตรวจสอบรูปแบบในข้อมูลจีโนมเป็นข้อความในชุดรายงานข้อผิดพลาด นี่คือปัญหาที่เราได้รับคำจากภาษาที่ไม่รู้จักและต้องเดาภาษา นี่คือปัญหาการอนุมานภาษา
  7. เมื่อได้รับชุดของเอกสาร XML คุณต้องการย้อนกลับสร้างสคีมาที่ใช้กับเอกสารเหล่านี้ เอกสาร XML สามารถทำให้ต้นไม้เป็นอุดมคติได้ สคีมานั้นเป็นข้อมูลจำเพาะของภาษาต้นไม้และปัญหาการอนุมานสคีมาเป็นปัญหาการอนุมานภาษาเหนือภาษาต้นไม้
  8. แอปพลิเคชันจำนวนมากต้องการการใช้เหตุผลทางคณิตศาสตร์โดยอัตโนมัติ สมมติว่าเราแก้ไขทฤษฎีเชิงตรรกะเช่นการคำนวณทางคณิตศาสตร์ของ Presburger ซึ่งเรามีจำนวนธรรมชาติการบวกและภาคแสดงน้อยกว่า สูตรที่มีตัวแปร n หมายถึงชุดของเวกเตอร์มิติ n เวกเตอร์เป็นลำดับของตัวเลขและสามารถเข้ารหัสเป็นคำได้ ภาคแสดงเป็นชุดของคำ ภาษา. การดำเนินการเชิงตรรกะเช่นการเชื่อมการแยกและการปฏิเสธกลายเป็นจุดแยกสหภาพและการเติมเต็มของภาษา

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

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

ฉันไม่ได้พูดอะไรเกี่ยวกับตรรกะและกระบวนการตัดสินใจ (ใช่มีแอปพลิเคชั่นที่ใช้งานได้จริง) ดูคำตอบของ Kaveh สำหรับภาพรวมที่เชื่อถือได้


ฮ่าฮ่า, ประชด
Praveen Soni

16

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

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


15

มันไม่ได้เป็นเพียงวานิลลาอัตโนมัติ คุณกำลังเรียนรู้เกี่ยวกับพื้นฐาน (การยอมรับสถานะ epsilon-transitions, ... ) ของรูปแบบ (การคำนวณ) ซึ่งช่วยในการให้เหตุผลเกี่ยวกับสิ่งที่สามารถทำได้และที่สำคัญกว่านั้นคือสิ่งที่ไม่สามารถแสดงด้วยภาษาแบบสอบถามบางอย่าง ผลลัพธ์ที่น่าสนใจ ได้แก่ :

(และแน่นอนว่าฉันข้ามคลาสอื่นไปมาก)

โดยทั่วไปมันเป็นรุ่นที่ทั่วไปมาก ชั้นเรียนของคุณอาจเน้นการเชื่อมโยงระหว่างออโตมาต้าภาษาและตรรกะ

หากฉันกำลังมองหาที่เกี่ยวข้องกับเครื่องมือ "ทางโลก" ที่เป็นรูปธรรมฉันจะใช้เวลาช่วงเช้าที่ห้องสมุดอ่านสองส่วน (AB?) จากมูลนิธิฐานข้อมูลโดย Abiteboul & al และพยายามเชื่อมโยงสิ่งนี้กลับไปที่เนื้อหาของชั้นเรียน . แน่นอนว่ามันเป็นเพียงหนึ่งในหลาย ๆ วิธีในการมองหาแอพพลิเคชั่นของคลาสออโตมาต้าและฉันเดาว่าไม่ชัดเจนที่สุด แต่นั่นเป็นเหตุผลว่าทำไมมันถึงเป็นแบบฝึกหัดที่น่าสนใจ


14

ตามที่ระบุไว้แล้วในคำตอบต่าง ๆ ทฤษฎีออโตมาตะในหลักสูตร UG เป็นกรอบแนวคิดพื้นฐานสำหรับการแนะนำหัวข้อขั้นสูง (และภาคปฏิบัติ) ขั้นสูงและเพื่อชี้ให้เห็นความสัมพันธ์ที่ถูกมองข้าม ตัวอย่างเช่น: Binary Decision Diagrams (พวกมันย่อเล็กสุด DFA หลังจากสอน DFA ฉันมักจะสอนการไขปริศนาด้วย BDD); การเขียนสคริปต์รวมถึงใน BioPerl และ BioPython (และการตั้งค่าที่ยอดเยี่ยมในการเสริมจำนวนการจับคู่ที่ไม่ตั้งใจอาจถูกซ่อนไว้ใน regexps สคริปต์ในโลกแห่งความเป็นจริง) การดีบักอย่างเป็นทางการ (คุณสมบัติของรัฐ (สถานการณ์ความเครียดทุกวันของหุ่นยนต์ที่ระบุไว้ไม่ดีซึ่งสอนผ่านตัวอย่างที่ไม่สมบูรณ์อาจทำเป็นทางการโดยใช้การสังเคราะห์อินเทอร์เฟซผู้ใช้ของ Harel ในการเล่น / เล่น - ออก - สถานการณ์ ฉันใช้การตั้งค่าเพื่อสอน Python '


1
ยินดีต้อนรับพระพิฆเนศ!
Suresh Venkat

1
วิธีที่ดีในการสอนออโตมาตะ คุณยินดีที่จะแบ่งปันบันทึกการบรรยายของคุณหรือไม่
Martin Berger

9

ฉันจะโยนคำตอบอื่นจากมุมมองที่แตกต่างไปจากเดิมอย่างสิ้นเชิง: เครื่องสถานะอัน จำกัด (หรืออย่างน้อยการสรุปทั่วไป / ส่วนขยายอย่างง่าย) มักใช้ในด้าน AI ของการเขียนโปรแกรมเกม พวกเขากลายเป็นโมเดลที่ยอดเยี่ยมในการห่อหุ้มพฤติกรรมของตัวละคร ตัวอย่างเช่นศัตรูอาจมีรัฐที่เป็นตัวแทนของ 'ลาดตระเวน', 'ค้นหา', 'วิธีการ', 'โจมตี', 'ป้องกัน', 'ถอย', 'ตาย' ฯลฯ โดยมีการเปลี่ยนที่ชัดเจนระหว่างพวกเขา สิ่งนี้ไม่เกี่ยวข้องกับแง่มุมที่เป็นทางการของออโตมาตะเช่นภาษาปกติและสิ่งที่คล้ายคลึงกัน แต่แนวคิดของออโตมาตาเป็นแกนกลางที่สำคัญมาก


8

เราได้เห็นแล้วว่าภาษาที่ขัดแย้งกับทฤษฎีและการปฏิบัติการตั้งค่าเหนือสิ่งอื่นเป็นความสมบูรณ์ของความไม่รู้ - ซึ่งพิสูจน์ให้เห็นว่ามนุษย์ไม่คุ้นเคยกับองค์ประกอบความคิดแรกและเป็นวิธีที่ดีในการพิสูจน์ความจริงของเขา ใจที่จะบิดเบือนในทางที่จะไม่สามารถถูกสอนให้พวกเขา

- James Mill (เขียนนามแฝงว่า“ PQ”),“ ทฤษฎีและปฏิบัติ”, London และ Westminster Review , เมษายน 1836


8

มีงานวิจัยจำนวนมากที่เกี่ยวข้องกับทฤษฎีออโตมาตะในการตรวจสอบแบบจำลองที่ใช้ในอุตสาหกรรม ตรวจสอบการบรรยายล่าสุดของ Moshe Vardi ที่สถาบัน Fieldsโดยเฉพาะการบรรยายครั้งที่ 3 "Logic, Automata, Games, และ Algorithms" เพื่อดูว่าทำไมทฤษฎีออโตมาต้ายังคงมีความสำคัญและมีประโยชน์

บทคัดย่อ:

วิธีการทางทฤษฎีแบบออโตมาตะในกระบวนการตัดสินใจซึ่งได้รับการแนะนำโดย Buechi, Elgot, Rabin และ Trakhtenbrot ในปี 1950 และ 1960 เป็นหนึ่งในวิธีการพื้นฐานที่สำคัญที่สุดในกระบวนการตัดสินใจ เมื่อเร็ว ๆ นี้วิธีการนี้ได้พบแอปพลิเคชันอุตสาหกรรมในการตรวจสอบอย่างเป็นทางการของระบบฮาร์ดแวร์และซอฟต์แวร์ เส้นทางจากตรรกะสู่อัลกอริธึมเชิงปฏิบัติไม่เพียง แต่ผ่านออโตมาตาเท่านั้น แต่ยังรวมถึงเกมด้วยซึ่งอัลกอริธึมได้ทำการศึกษาโดยจันทรา Kozen และสต็อคเมเยอร์ในปลายปี 1970 ในภาพรวมการพูดคุยนี้เราอธิบายเส้นทางจากลอจิกถึงอัลกอริทึมผ่านออโตมาตะและเกม

ภาพนิ่งและไฟล์เสียงของการบรรยายที่มีอยู่ที่นี่: 1 , 2 , 3


6

เราควรคำนึงถึงความหมายของคำว่า "ภาคปฏิบัติ" และ "การประยุกต์ใช้" สำหรับนักเรียนบางคนการฝึกฝนก็เป็นทุกสิ่งที่จะช่วยให้พวกเขาสอบผ่านได้ สำหรับคนอื่น ๆ สิ่งที่จะเกิดขึ้นในงาน ในทั้งสองกรณีทฤษฎีออโตมาตะนั้นใช้งานได้จริงมาก

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

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


5

ออโตมาตะสามารถนำเสนอวิธีในการตรวจสอบสถานะเช่นนี้

Aφ

AφAφ

φAφAφL(A)L(Aφ)


3

Finite Automata มักถูกเขียนเกี่ยวกับเครื่องจักรสถานะ จำกัด ในบริบทที่แตกต่างกันหรือกับตัวแปรความน่าจะเป็นของพวกเขา Hidden Markov Models สามารถนำไปใช้กับการจดจำรูปแบบและโครงสร้างเชิงปริมาณของรูปแบบ เช่นสิ่งที่เป็นออโตมาโต จำกัด สุ่มที่เล็กที่สุดที่จะสร้างสตริงตามมากหรือน้อยไปสู่การแจกแจงความน่าจะเป็นที่กำหนดหรือคุณสมบัติทางสถิติของตัวอย่างของสตริง (หรืออนุกรมเวลา) จากการแจกแจงบางอย่าง

ดูตัวอย่างCSSRอัลกอริทึมสำหรับซ่อนสถานะการสร้างใหม่แบบสุ่มสี่สุ่มห้า มันมีประสิทธิภาพและยืดหยุ่นมากกว่ารุ่น Hidden Markov


1
เพื่อเพิ่มด้านการปฏิบัติโมเดล Hidden Markov ถูกใช้ในโปรแกรมรู้จำเสียงพูดเช่น Kurzweil
tdyen

3

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


2

บางคนได้รับคำตอบที่ดีเมื่อพูดถึงความเกี่ยวข้องกับอุตสาหกรรม สิ่งที่ควรสำคัญคือคุณค่าทางวิทยาศาสตร์และทฤษฎี Automata มักเป็นประตูสู่การเข้าใจทฤษฎีการคำนวณในระดับที่สูงขึ้นในการศึกษาของนักศึกษาระดับปริญญาตรี ทฤษฎีออโตมาตะมีทฤษฎีบทที่ยิ่งใหญ่ซึ่งปรากฏขึ้นทั่วสถานที่ในวิชาวิทยาการคอมพิวเตอร์เชิงทฤษฎีและโดยเฉพาะอย่างยิ่งเมื่อเราต้องการพูดถึงการใช้งานเช่นคอมไพเลอร์ คุณค่าทางวิทยาศาสตร์ของมัน (ไม่ล้าสมัยมันจะเป็นไปได้อย่างไรมันเป็นทฤษฎีหลักของสนาม) เป็นประโยชน์สำหรับนักวิทยาศาสตร์ที่สนใจในการคำนวณ เป็นจริงเนื่องจากเป็นความรู้ที่มีประโยชน์สำหรับผู้ที่เข้าใจหรือต้องการเข้าใจธรรมชาติของการคำนวณ หากคุณไม่สามารถใช้ประโยชน์ได้ฉันถามคนที่ค้นคว้าหรือตั้งใจเรียน CS เพราะไม่ใช่การเขียนโปรแกรม (นั่นคือ '

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