ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ลอจิกเกต (Logic Gate).
Advertisements

ทฤษฎีบทลิมิต (Limit Theorem).
ลิมิตและความต่อเนื่อง
บทที่ 3 ลำดับและอนุกรม (Sequences and Series)
(Some Extension of Limit Concept)
การดำเนินการของลำดับ
โครงสร้างทางคณิตศาสตร์และการให้เหตุผล (Mathematical Structure and Reasoning) Chanon Chuntra.
ลำดับทางเดียว (Monotonic Sequences)
ไม่อิงพารามิเตอร์เบื้องต้น
Number Theory (part 1) ง30301 คณิตศาสตร์ดิสครีต.
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
ภาษาที่เป็นรูปแบบ (Formal Languages)
ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)
คอมพลีเมนต์ นิยาม คอมพลีเมนต์ของเซต A เขียนแทนด้วย หมายถึง เซตที่ประกอบด้วยสมาชิก ซึ่งเป็นสมาชิกของเซต แต่ไม่เป็นสมาชิกของเซต A.
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
เกตทางตรรกและพีชคณิตแบบบูล
Functional programming part II
CS Assembly Language Programming
บทเรียนคอมพิวเตอร์ช่วยสอน (CAI)
จำนวนเต็ม จำนวนเต็ม  ประกอบด้วย                   1. จำนวนเต็มบวก    ได้แก่  1 , 2 , 3 , 4, 5 , ....                   2.  จำนวนเต็มลบ      ได้แก่  -1.
นางสาวสุพรรษา ธรรมสโรช
ความหมายเซต การเขียนเซต ลักษณะของเซต.
Week 6 ประกาศค่าตัวแปร.
สับเซต ( Subset ) นิยาม กำหนดให้ A และ B เป็นเซตใด ๆ เรากล่าวว่า A เป็นสับเซต B ก็ต่อเมื่อ สมาชิกทุกตัวของ A เป็นสมาชิกของ B ใช้สัญลักษณ์
สับเซต ( Subset ) นิยาม กำหนดให้ A และ B เป็นเซตใด ๆ เรากล่าวว่า A เป็นสับเซต B ก็ต่อเมื่อ สมาชิกทุกตัวของ A เป็นสมาชิกของ B ใช้สัญลักษณ์
การดำเนินการของเซต 1. ยูเนียน
หน่วยที่ 1 ระบบคอมพิวเตอร์
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
หน่วยที่ 8 อนุพันธ์ย่อย (partial derivative).
Number Representations
บทที่ 3 ตัวดำเนินการ และ นิพจน์
จำนวนทั้งหมด ( Whole Numbers )
ตัวแปร (variable) ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ใน หน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผล การตั้งชื่อตัวแปร ชื่อตัวแปรในภาษา.
ไวยากรณ์ของภาษาการทำโปรแกรม (1) (Syntax of programming languages)
C# Operation สุพจน์ สวัตติวงศ์ Reference:
แผนผังคาร์โนห์ Kanaugh Map
ความสัมพันธ์และความสัมพันธ์ทวิภาค
นิยาม, ทฤษฎี สับเซตและพาวเวอร์เซต
คุณสมบัติการหารลงตัว
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
ประโยคเปิดและตัวบ่งปริมาณ
ค31211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 1
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
การดำเนินการบนความสัมพันธ์
ชนิดของเซต เช่น A = เซตว่าง (Empty set or Null set)
ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยสยาม
บทเรียนสาระการเรียนรู้คณิตศาสตร์ โดยใช้โปรแกรม Microsoft Multipoint
สวัสดี...ครับ.
ระบบเลขในคอมพิวเตอร์
หลักการเขียนโปรแกรม ( )
Recursive Method.
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ อ.วีระ คงกระจ่าง
Set Operations การกระทำระหว่างเซต
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบลิงก์ลิสต์
หลักการเขียนโปรแกรม ( )
ง31102 เทคโนโลยีสารสนเทศ 2 ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ระบบเลขจำนวน ( Number System )
ค่าความจริงของประโยคที่มีตัวบ่งปริมาณ 2 ตัว
สื่อการสอนด้วยโปรมแกรม “Microsoft Multipoint”
บทที่ 1 จำนวนเชิงซ้อน.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบ สแตก (stack)
Summations and Mathematical Induction Benchaporn Jantarakongkul
หลักการโปรแกรมเบื้องต้น
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

การกำหนดภาษา ตัวอย่าง หมายเหตุ ภาษานี้เรียกว่า Palindrome over  กำหนดให้  = { 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 

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

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

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

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

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

Kleene closure นิยาม S* = U Si Sn = SSn-1 เมื่อ n  1 S0 = {} หมายเหตุ Concatenation ของ AB หมายถึง { ab | aA และ bB } I Ii = 0

Kleene closure ทฤษฎีบท หมายเหตุ S** หมายถึง (S*)* กำหนดให้ 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**.

Positive closure นิยาม S+ = U Si Sn = SSn-1 เมื่อ n  1 S0 = {} หมายเหตุ Concatenation ของ AB หมายถึง { ab | aA และ bB } I Ii = 1

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

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

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

การกำหนดภาษา แบบฝึกหัด L1={ xn for n = 1, 2, 3, … } เป็นการบรรยายที่กำกวม และยากต่อการตรวจสอบความเป็นสมาชิก