1 / 20

ทฤษฎีคณนา

ทฤษฎีคณนา. Theory of Computation. ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒. Athasit Surarerks. ภ าษา. หน่วยของภาษา อักขระ letters / คำ words / ประโยค sentences / ย่อหน้า paragraphs / เรื่องราว coherent stories หน่วยของภาษาคอมพิวเตอร์ อักขระ letters / คำสำคัญ keywords /

jeslyn
Download Presentation

ทฤษฎีคณนา

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ทฤษฎีคณนา Theory of Computation ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒ AthasitSurarerks

  2. ภาษา หน่วยของภาษา อักขระ letters/ คำ words/ ประโยค sentences/ ย่อหน้า paragraphs/ เรื่องราว coherent stories หน่วยของภาษาคอมพิวเตอร์ อักขระ letters/ คำสำคัญ keywords/ คำสั่ง commands/ โปรแกรม programs/ ระบบ systems

  3. ภาษารูปนัย (Formal language) • คุณสมบัติของภาษา • มี กฎ กติกา ที่ชัดเจน ในการกำหนดลำดับของสัญลักษณ์ เพื่อสร้างสมาชิกในภาษา • ตีความตามรูปแบบโดยไม่ต้องใช้ ความรู้อื่น ๆ ในการตีความหมาย

  4. ภาษารูปนัย (Formal language) • นิยามเบื้องต้น • เซตจำกัดของอักขระ (character) เรียกว่า เซตของอักขระ (alphabet) ใช้สัญลักษณ์  • ภาษา (language) หมายถึง เซตของสายอักขระ (string) ที่มีการกำหนดคุณสมบัติของ การเป็นสมาชิกที่ชัดแจ้ง • สมาชิกในภาษา เรียกว่า คำ (word) • สายอักขระที่ไม่มีอักขระใด ๆ เรียกว่า สายอักขระว่าง (empty string) ใช้สัญลักษณ์  • ภาษาที่ไม่มีคำใด ๆ เลย เรียกว่า เซตว่าง (empty set) ใช้สัญลักษณ์ 

  5. สัญลักษณ์ที่นิยม Union operation + Different operation  Alphabet  Empty string ,  Language L,  Empty language 

  6. การกำหนดภาษา • ตัวอย่าง • บรรยายแบบแจกแจงสมาชิก • { 0, 00, 000, 0000, … } • บรรยายด้วยรูปแบบทั่วไป • { 0n| n = 0, 1, 2, … } • หมายเหตุยกกำลังนิยม n ใช้ในกรณี การเขียนซ้ำ n ครั้ง

  7. การกำหนดภาษา ตัวอย่าง บังคับการเดิน ของหุ่นยนต์ 0 : ขวา 1 : ซ้าย สอบผ่าน สอบตก เข้า { 1, 010, 01110, 0111110, … } { 1 }  { 01m0 | m = odd integer}

  8. การกำหนดภาษา • ตัวอย่าง • กำหนดให้  = { 0, 1 } • จงบรรยายภาษาของสายอักขระที่เมื่อเรียนย้อนกลับ (reverse) จะได้ผลลัพธ์ • เหมือนกับสายอักขระเดิม • { , 0, 1, 00, 11, 000, 010, 101, 111, … } • บรรยายด้วยรูปแบบทั่วไป • { x  bit string | rev(x) = x} • { x  bit string | x-1 = x} • หมายเหตุภาษานี้เรียกว่า Palindrome over 

  9. การกำหนดภาษา • ตัวอย่าง • กำหนดให้  = { 0, 1 } • จงบรรยายภาษาของสายอักขระที่มีจำนวนของ 0 เท่ากับจำนวนของ 1 • { , 01, 10, 0011, 0101, … } • บรรยายด้วยรูปแบบทั่วไป • { x  bit string | n0(x) = n1(x) } • หมายเหตุนิยมใช้ ny(x) แทนฟังก์ชันการนับจำนวนของอักขระ y ในสายอักขระ x

  10. Kleene closure นิยาม ภาษาที่สายอักขระทุกรูปแบบที่เป็นไปได้จากอักขระใน  จะถูกเรียกว่าเป็น closure ของ  โดยใช้สัญลักษณ์เป็น *. หมายเหตุ บางครั้งจะเรียกว่า Kleene star วิธีการนี้เป็นการนำเสนอแนวทางในการบรรยายภาษาที่เป็น เซตอนันต์ ตัวอย่าง กำหนดให้ = { 0, 1 } จะได้ว่า *={ , 0, 1, 00, 01, 10, 11, 000, … } ในกรณีของ S* (เมื่อ S เป็นภาษา หรือ เซตของสายอักขระ) จะหมายถึง เซตของสายอักขระทุกรูปแบบที่เป็นไปได้จากการนำสมาชิกใน S มาเรียงต่อกันจำนวนเท่าใดก็ได้

  11. Kleene closure • ตัวอย่าง • กำหนดให้ S= { 0, 11 } • จะได้ว่า S*={ , 0, 00, 11, 000, 011, 110, … } กำหนดให้ S = { 01, 10 } จงหา S* ? S* = { , 01, 10, 0101, 0110, 1001, 1010, … } หมายเหตุ การเรียงลำดับของสมาชิกเป็นแบบ lexicographic ordering

  12. Kleene closure • แบบฝึกหัด • กำหนดให้S = { 0, 1, 10 } • T = { 0, 1, 01 ) • U = { 0, 1 } • จงแสดงให้เห็นความสัมพันธ์ของ S* T* และ U* ? จงแสดงให้เห็นว่า ถ้า A B แล้ว A*B* เป็นความจริงหรือไม่ ?

  13. Kleene closure แบบฝึกหัด กำหนดให้S = { xx, xxxxx}จงแสดง S* ? S* = { , xx, xxxx, xxxxx, xxxxxx, xxxxxxx, … } S* = { , x2, x4, x5, x6, … } เราจะพิสูจน์ว่าเป็นความจริงได้อย่างไร

  14. Kleene closure นิยาม กำหนดให้S เป็นเซต จะได้ว่า S* = U Si Sn = SSn-1เมื่อ n  1 S0 = {} หมายเหตุConcatenation ของ AB หมายถึง { ab | aA และ bB } I Ii = 0

  15. Kleene closure ทฤษฎีบท กำหนดให้S เป็นเซต จะได้ว่า S** = S* หมายเหตุS** หมายถึง (S*)* Proof:Every words in S** is made up of factors from S*. Every words in S* is made up of factors from S. Therefore every words in S** is made up of factors from S. We can write this S** S*. In general, it is true that S  S*. So S* S**. Then S*= S**.

  16. Positive closure นิยาม กำหนดให้S เป็นเซต จะได้ว่า S+ = U Si Sn = SSn-1เมื่อ n  1 S0 = {} หมายเหตุConcatenation ของ AB หมายถึง { ab | aA และ bB } I Ii = 1

  17. ? โจทย์น่าคิด แบบฝึกหัด ให้ L เป็นภาษาใด ๆ ที่นิยามบน  = {0, 1} จงอธิบายความสัมพันธ์ของL*+และ L+*

  18. การกำหนดภาษา • ตัวอย่าง • กำหนดให้ EVEN เป็นภาษาของจำนวนเต็มคู่บวก • ดังนั้น EVEN = { 2, 4, 6, 8, … } • การบรรยายโดยใช้ กฎการสร้าง (production rule) สามารถทำได้ดังนี้ • 1. 2 เป็นสมาชิกใน EVEN • 2. ถ้า x เป็นสมาชิกใน EVEN แล้ว x + 2 จะเป็นสมาชิกใน EVEN ด้วย • 3. สมาชิกใน EVEN เกิดจาก ข้อ 1 และ ข้อ 2 เท่านั้น จงพิสูจน์ว่า 1000000 เป็นสมาชิกใน EVEN ด้วย

  19. การกำหนดภาษา • ตัวอย่าง • กำหนดให้ EVEN เป็นภาษาของจำนวนเต็มคู่บวก • ดังนั้น EVEN = { 2, 4, 6, 8, … } • การบรรยายโดยใช้ กฎการสร้าง (production rule) สามารถทำได้ดังนี้ • 1. 2 เป็นสมาชิกใน EVEN • 2. ถ้า x และ y เป็นสมาชิกใน EVEN แล้ว x + y จะเป็นสมาชิกใน EVEN ด้วย • 3. สมาชิกใน EVEN เกิดจาก ข้อ 1 และ ข้อ 2 เท่านั้น จงพิสูจน์ว่า 1000000 เป็นสมาชิกใน EVEN ด้วย

  20. การกำหนดภาษา แบบฝึกหัด L1={ xn for n = 1, 2, 3, … } L2={ xn for n = 1, 3, 5, 7, … } L3={ xn for n = 1, 4, 9, 16, … } L4={ xn for n = 3, 4, 8, 22, … }. เป็นการบรรยายที่กำกวม และยากต่อการตรวจสอบความเป็นสมาชิก

More Related