งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

12/09/47Formal Languages1 บทที่ 6 ภาษาที่เป็นรูปแบบ (Formal Languages)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "12/09/47Formal Languages1 บทที่ 6 ภาษาที่เป็นรูปแบบ (Formal Languages)"— ใบสำเนางานนำเสนอ:

1 12/09/47Formal Languages1 บทที่ 6 ภาษาที่เป็นรูปแบบ (Formal Languages)

2 12/09/47Formal Languages2 Recursive Definition • นิยาม Recursive ของเซ็ท X หมายถึงวิธีการ สร้างอีลีเมนท์ของเซ็ท ด้วยการทวนซ้ำ • แบ่งออกเป็นองค์ประกอบคือ 2 คือ – ฐานเริ่มต้น (Basis) ประกอบด้วยอีลีเมนท์ของเซ็ท X – เซ็ทก่อผล (Set of Operation) ใช้สำหรับสร้างอีลี เมนท์ตัวใหม่ จากอีลีเมนท์ หรือสมาชิกที่มีอยู่ก่อน

3 12/09/47Formal Languages3 นิยาม นิยาม Recursive ของ N ( เซ็ทของเลข 0,1,2,..) สร้างจากฟังค์ชั่นคืนค่าตำแหน่งหลังของมัน (Successor) ชื่อ S i) Basis: 0  N ii) Recursive step: ถ้า n  N ดังนั้น s(n)  N iii) Closure: n  N มันประกอบด้วยค่าเริ่มต้น 0 และเพิ่มอีลีเมนท์ของมันด้วย ด้วยเซ็ทก่อผลใน ขั้นตอนที่ (ii) •Closure เป็นการรับรองว่า เซ็ทที่เกิดใหม่ เกิด จากฐานเริ่มต้นใน (i) และเพิ่มอีลีเมนท์ของมัน ด้วยเซ็ทก่อผลในขั้นตอนที่ (ii) ปกติอาจจะไม่ แสดง

4 12/09/47Formal Languages4 บวก ลบ คูณ หาร • นิยาม แสดงให้เห็นการสร้างตัวเลข 0,1,2,3,… โดยการสร้างจากการนิยามแบบ Recursive • หัวข้อถัดไป เราจะแสดงให้เห็นว่า เราสามารถ บวก ลบ คูณ หาร ฯลฯ จากนิยามแบบ Recursive

5 12/09/47Formal Languages5 นิยาม นิยาม Recursive ของผลบวก m และ n ต่อไปนี้ การ Recursive ของมันกระทำบน n ดังนั้น ผลบวก (sum) ตัวถัดไปของมัน จะเป็นดังนี้ i)Basis: ถ้า n = 0 ดังนั้น m + n = m ii)Recursive step: m + s(n) = s(m + n)

6 12/09/47Formal Languages6 ตัวอย่างที่ • เลข 3 และ 2 เขียนได้เป็น s(s(s(0))) และ s(s(0)) ดังนั้น ผลบวกของมันสามารถคำนวณ แบบ Recursive ได้ดังนี้ s(s(s(0))) + s(s(0)) = s(s(s(s(0))) + s(0)) = s(s(s(s(s(0))) + 0)) = s(s(s(s(s(0)))

7 12/09/47Formal Languages7 การเพิ่มของ X X 0 X 1 X 2 …… X n

8 12/09/47Formal Languages8 คณิตศาสตร์ Induction • การพิสูจน์ โดยเอากรณีเฉพาะรายมาอ้าง

9 12/09/47Formal Languages9 กฎพื้นฐานของ คณิตศาสตร์ Induction • กำหนดให้ X เป็นเซ็ทที่เกิดจากฐานเริ่มต้น Basis เป็น X 0 และกำหนดให้ X 0 X 1 X 2 … X i … เป็นลำดับของเซ็ทที่เกิดจากการ Recursive ของเซ็ทก่อผล กำหนดให้ P เป็น นิยามคุณสมบัติอีลีเมนท์ของเซ็ท X ดังนั้น เราจะได้ i) อีลีเมนท์ใน X 0 มีคุณสมบัติของ P ii) ถ้า X 0 X 1 X 2 … X i มีคุณสมบัติของ P ดังนั้น ที่ X i+1 ก็มีคุณสมบัติของ P ด้วย

10 12/09/47Formal Languages10 X 0 X 1 X 2 …… X n กฎพื้นฐานของ คณิตศาสตร์ Induction

11 12/09/47Formal Languages11 ตัวอย่าง ใช้คณิตศาสตร์ Induction พิสูจน์ว่า 0+1+…+n = n(n+1)/2 โดยการใช้เครื่องหมาย Summation เราสามารถ เขียนใหม่ได้เป็น n  i = n(n+1)/2 i=0

12 12/09/47Formal Languages12 พิสูจน์ •Basis: กำหนดให้ n=0 ดังนั้น n  i = n(n+1)/2 i=0 จะได้ 0  i = 0 = 0(0+1)/2 i=0

13 12/09/47Formal Languages13 พิสูจน์ ( ต่อ ) Inductive Hypothesis: ( ข้อสมมติโดยไม่ต้อง พิสูจน์ ) สมมติฐานว่า k เป็นเลขตั้งแต่ 1,2,…,n เราจะได้ k  i = k(k+1)/2 i=0 Inductive step: ดังนั้น เราต้องพิสูจน์ว่า n+1  i = (n+1)(n+1+1)/2 = (n+1)(n+2)/2 i=0

14 12/09/47Formal Languages14 พิสูจน์ ( ต่อ ) n+1 n  i =  i +(n+1) (associativity of +) i=0 i=0 = n(n+1)/2 + (n+1) (inductive hypothesis) = (n+1)(n/2+1) (distributive property) = (n+1)(n+2)/2

15 12/09/47Formal Languages15 ตัวอย่าง ใช้คณิตศาสตร์ Induction พิสูจน์ว่า n! > 2 n, ที่ n  4 Basis: n = 4. 4! = 24 > 16 = 2 n Inductive hypothesis: ( ข้อสมมติโดยไม่ต้อง พิสูจน์ ) สมมติฐานว่า k! > 2 k ตลอดของค่า k = 4,5,6…..,n Inductive step: ดังนั้น เราต้องพิสูจน์ว่า (n+1)! > 2 n+1

16 12/09/47Formal Languages16 พิสูจน์ (n+1)! = n!(n+1) > 2 n (n+1) (inductive hypothesis) > 2 n 2 ( เพราะว่า n+1 > 2) > 2 n+1

17 12/09/47Formal Languages17 ตัวอักขระ (Alphabet) • ประกอบด้วย ตัวอักษร ตัวเลข และอักขระพิเศษ ต่างๆ – เช่น A – Z, a – z, 1 – 9, # $ % ก – ฮ เป็น ต้น • เป็นเซ็ทที่นับจำนวนได้ (Finite Set)

18 12/09/47Formal Languages18 สตริง (String) • สตริง (String) คือ เซ็ทของตัวอักขระเรียงต่อ กัน – เช่น HELLO, สวัสดี, Program, For, While, คำ ต่างๆ ในภาษาอังกฤษ เป็นต้น •Null string (  ) สตริงที่ไม่มีอักขระ หรือ Elements ภายใน – เช่น strcpy(A, “ ”) เก็บช่องว่างลง A –strcpy(A, “”) เก็บ NULL ลง A – หรือ ‘\0’ ในภาษา C

19 12/09/47Formal Languages19 ภาษา (Languages) • ภาษา (Languages) คือ เซ็ทของสตริงที่เรียง ต่อกัน (A set of strings over an alphabet) • เช่น ประโยคต่างๆ ในภาษาอังกฤษ, Source code ของโปรแกรมในภาษาต่างๆ เช่น C C++ หรือ Pascal เป็นต้น

20 12/09/47Formal Languages20 นิยามที่ • กำหนดให้  เป็นอักขระ 1 ตัว ดังนั้น  * ( ซึ่ง เป็นเซ็ทของสตริงที่ประกอบด้วยตัวอักขระ เรียงต่อกัน ) สามารถนิยามแบบ Recursive ได้ดังนี้ 1.Basis:    * 2.Recursive step: ถ้า w   * และ a   ดังนั้น aw   * 3.Closure: w   * ก็เฉพาะต่อเมื่อมันเริ่มจาก  และอีลีเมนท์ของมันเพิ่มขึ้นตามนิยาม recursive ในข้อ 2.

21 12/09/47Formal Languages21 ตัวอย่างที่ • กำหนดให้  = {a,b,c} ดังนั้น อีลีเมนท์ของ  * จะประกอบด้วย Length 0:  Length 1: a b c Length 2: aa ab ac ba bb bc ca cb cc Length 3: aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc

22 12/09/47Formal Languages22 นิยาม • ภาษา (Language) ภายใต้อักขระ  เป็น Subset ของ  *

23 12/09/47Formal Languages23 นิยาม กำหนดให้ ,    * ดังนั้นการต่อสตริง (Concatenation) ของ  และ  ( เขียนได้เป็น  ) เป็น Binary operation ของสตริงใน  * ซึ่ง นิยามได้ดังนี้ i)Basis: ถ้า Length(  ) = 0 ดังนั้น  =  และ  =  ii)Recursive step: กำหนดให้  เป็นสตริงที่ความ ยาว Length(  ) = n > 0 ดังนั้น  = ωa ที่สตริง ω ความยาว Length n – 1 และ a   และ  = (  ω)a

24 12/09/47Formal Languages24 ตัวอย่าง กำหนดให้  = ab,  = ca และ ω = bb ดังนั้น  = abca  ω = cabb (  )ω = abcabb  (  ω) = abcabb

25 12/09/47Formal Languages25 ทฤษฎี กำหนดให้ , , ω   * ดังนั้น (  )ω =  (  ω) พิสูจน์ Basis: Length(ω) = 0 ดังนั้น ω =  และ (  )ω = (  ) โดยนิยามของ Concatenation หรืออาจกล่าว ใหม่ได้ว่า (  )ω =  (  ) =  Inductive hypothesis: ( ข้อสมมติโดยไม่ต้อง พิสูจน์ ) สมมติฐานว่า (  )ω =  (  ω) สำหรับทุกสตริง ω ที่ Length  n Inductive step: ดังนั้น เราต้องพิสูจน์ว่า (  )ω =  (  ω) สำหรับทุกสตริง ω ที่ Length n + 1

26 12/09/47Formal Languages26 พิสูจน์ (  )ω = (  )(xa) แทน ω ด้วย xa = ((  )x)a) นิยาม Cocatenation = (  (  x)a) Inductive hypothesis =  ((  x)a) นิยาม Cocatenation =  (  (xa)) นิยาม Cocatenation =  (  ω) แทน xa ด้วย ω

27 12/09/47Formal Languages27 ข้อควรรู้  0 เขียนใหม่ได้เป็น   1 เขียนใหม่ได้เป็น   2 เขียนใหม่ได้เป็น   3 เขียนใหม่ได้เป็น  : ถ้า  = ab ดังนั้น  2 = abab ซึ่งไม่ใช่ aabb เพราะมันเท่ากับ a 2 b 2

28 12/09/47Formal Languages28 Substring, Prefix, และ Suffix แบบ Unformal อาจกล่าวได้ว่า  เป็น Substring ของ  ถ้า  ปรากฏอยู่ภายใน  แบบ Formal  เป็น Substring ของ  ถ้ามีสตริง x และ y โดยที่  = x  y  เป็น Prefix ของ  ถ้ามีสตริง x และ y โดยที่  = x  y และ x =   เป็น suffix ของ  ถ้ามีสตริง x และ y โดยที่  = x  y และ y = 

29 12/09/47Formal Languages29 นิยาม กำหนดให้  ป็นสตริงใน  * ดังนั้น ตัวกลับ (Reversal) ของ  R นิยามได้ดังนี้ i)Basis: Length(  ) = 0 ดังนั้น  =  และ  R =  ii)Recursive step: ถ้า Length(  ) = n > 0 ดังนั้น  = wa สำหรับสตริง ω ที่ Length n – 1, a  , และ  R = aω R ( ก็คือ (ωa) R = aω R )

30 12/09/47Formal Languages30 ทฤษฎี กำหนดให้ ,    * ดังนั้น (  ) R =  R  R Basis: Length(  ) = 0 ดังนั้น  =  และ (  ) R =  R ในทำนองเดียวกัน  R  R =  R  R =  R Inductive Hypothesis: สมมติฐาน (  ) R =  R  R ที่ ทุกสตริง  ของ Length  n Inductive Hypothesis: เราต้องพิสูจน์ว่า ที่ทุก สตริง  ของ Length n + 1 ว่า (  ) R =  R  R โดยกำหนดให้  = ωa โดยที่ ω เป็นสตริงของ Length n และ a  ,


ดาวน์โหลด ppt 12/09/47Formal Languages1 บทที่ 6 ภาษาที่เป็นรูปแบบ (Formal Languages)

งานนำเสนอที่คล้ายกัน


Ads by Google