นำเสนอโดย ดร.สุธี สุดประเสริฐ

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
พิชิตโครงงานวิทยาศาสตร์ คณะวิทยาศาสตร์ มหาวิทยาลัยมหิดล
Advertisements

วิธีการตั้งค่าและทดสอบ เครื่องคอมพิวเตอร์ก่อนใช้งาน
พีชคณิตบูลีน Boolean Algebra.
จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
A1 Real Numbers (จำนวนจริง).
Number Theory (part 1) ง30301 คณิตศาสตร์ดิสครีต.
E-R Model บรรยายโดย สุรางคนา ธรรมลิขิต.
Object Oriented Language ภาษาเชิงวัตถุ
ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)
Control Statement if..else switch..case for while do-while.
วิทยาการเชิงการคำนวณ?
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
Functional programming part II
การใช้งานโปรแกรม Excel เบื้องต้น
ฟังก์ชัน(Function).
AVL Tree.
ออโตมาตาจำกัด FINITE AUTOMATA
REGULAR EXPRESSION การบรรยายแบบสม่ำเสมอ
ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒
การแก้ปัญหาด้วยคอมพิวเตอร์
MATHTEMATICS M .4 Teacher SET This is the first time
Data Transmission Encoding Techniques and Transmission mode
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
ประพจน์ และค่าความจริง
Mathematics for computing I
CHAPTER 1 Major Sources of Errors in Numerical Methods
บทที่ 3 แบบจำลองข้อมูล Data Models Algebra
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
A.5 Solving Equations การแก้สมการ.
A.1 Real Numbers and Their Properties
Asst.Prof. Dr.Surasak Mungsing
Asst.Prof. Dr.Surasak Mungsing
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (4) ความสัมพันธ์ (Relations)
บทที่ 3 ตัวดำเนินการ และ นิพจน์
การเขียนรายงานการใช้เอกสารประกอบการสอน
ตัวแปร (variable) ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ใน หน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผล การตั้งชื่อตัวแปร ชื่อตัวแปรในภาษา.
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
ไวยากรณ์ของภาษาการทำโปรแกรม (1) (Syntax of programming languages)
C# Operation สุพจน์ สวัตติวงศ์ Reference:
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
โครงสร้างควบคุมการทำงาน
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ProQuest Nursing & Allied Health Source
Week 2 Variables.
สรุปที่เรียนมา วิเคราะห์การบ้านงานกลุ่ม
Computer Programming for Engineers
CHAPTER 4 Control Statements
การทำผลงานวิชาการ สงวนลิขสิทธิ์.....โดย ดร.สุรชาติ สังข์รุ่ง.
ความหมายของวิทยาศาสตร์
In-Class Exercises Discrete Mathematics
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
Chapter 3 - Stack, - Queue,- Infix Prefix Postfix
School of Information Communication Technology,
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
โมเดลเชิงสัมพันธ์ The relational model.
กราฟเบื้องต้น.
โครงสร้างข้อมูลแบบ สแตก (stack)
กราฟเบื้องต้น.
การแบ่งแยกและเอาชนะ Divide & Conquer
การแบ่งแยกและเอาชนะ Divide & Conquer
CHAPTER 2 Operators.
Trees Hierarchical Structures. Outlines Definition of trees Modeling by trees Properties of trees Applications – Binary search trees – Prefix codes –
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
Graph Lecturer : Kritawan Siriboon, Boontee Kruatrachue Room no. 913
การวิเคราะห์และออกแบบขั้นตอนวิธี
ใบสำเนางานนำเสนอ:

นำเสนอโดย ดร.สุธี สุดประเสริฐ Introduction to the Theory of Computation (complexity, computability, and automata) นำเสนอโดย ดร.สุธี สุดประเสริฐ Source: Chapter 0 - Introduction to the Theory of Computation by Michael Sipser

อะไรคือความสามารถพื้นฐานของคอมพิวเตอร์และขีดจำกัดของคอมพิวเตอร์คืออะไร? ปัญหานี้เริ่มขึ้นในช่วงปี 1930 เมื่อนักคณิตศาสตร์เริ่มสนใจที่จะหาความหมายของ “การคำนวณ” (computation) มี 3 สาขาวิชาที่เกี่ยวเนื่องกับปัญหานี้ โดยแต่ละสาขามีมุ่งมองในการตอบปัญหานี้แตกต่างกันไป Complexity theory Computability theory Automata theory

Complexity theory (1) ปัญหาทางคอมพิวเตอร์มีความหลากหลาย; บางปัญหาง่าย เช่น ปัญหาการจัดเรียงลำดับ บางปัญหายาก เช่น ปัญหาการจัดตารางเวลา อะไรคือองค์ประกอบที่ทำให้ปัญหาหนึ่ง ยากกว่าอีกปัญหาหนึ่ง ซึ่งปัญหานี้คือหัวใจหลักของ complexity theory

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

Complexity theory (3) สาขาวิชาหนึ่งที่มีการใช้ complexity theory โดยตรงคือสาขาวิทยาการเข้ารหัสลับ (cryptography) ในสาขาวิชาอื่นๆ ส่วนมากจะชอบปัญหาที่ง่ายมากกว่าปัญหาที่ยาก แต่สาขาวิทยาการเข้ารหัสลับ จะแตกต่างออกไปคือต้องการที่จะหาปัญหาที่แก้ได้ยากแทน

Computability theory ในช่วงปี 1900-1950, นักคณิตศาสตร์ (Kurt Godel, Alan Turing, และ Alonzo Church) ได้ค้นพบว่ามีปัญหารูปแบบหนึ่งที่คอมพิวเตอร์ไม่สามารถแก้ปัญหาได้ ปัญหานั้นคือการบอกว่านิพจน์ทางคณิตศาสตร์หนึ่งเป็นจริงหรือเท็จ ไม่มีลำดับวิธีการทางคอมพิวเตอร์ไหนที่สามารถแก้ไขนี้ได้ ใน computability theory การจำแนกปัญหาจะจำแนกว่าปัญหาแบบไหนแก้ไขได้และปัญหาแบบไหนแก้ไขไม่ได้

Automata theory (1) Automata theory จะสนใจในการนิยามและคุณสมบัติของจำลองทางคณิตศาสตร์ของการคำนวณ แบบจำลองหนึ่งคือ finite automaton ซึ่งนิยมใช้ใน text processing, compilers, และ hardware design อีกแบบจำลองหนึ่งคือ context-free grammar ซึ่งนิยมใช้ใน programming languages และ artificial intelligence (natural language processing)

Automata theory (2) Automata theory เป็นจุดเริ่มต้นที่เหมาะสมในการเริ่มต้นศึกษาทฤษฎีการคำนวณเพราะว่า computability theory และ complexity theory ต้องการนิยามที่ชัดเจนของคอมพิวเตอร์ก่อน การศึกษา automata theory จะทำให้เราเข้าใจนิยามทั่วไปของคอมพิวเตอร์ได้ชัดเจนมากขึ้น

สัญลักษณ์ทางคณิตศาสตร์และคำศัพท์ที่ควรรู้ก่อนเรียนวิชานี้ Sets Sequences and Tuples Functions and Relations Graphs Strings and Languages Boolean Logic

Sets {7, 21, 57} 7  {7, 21, 57} {7,21}  {7, 21, 57} {7, 7, 7, 21, 57} = {7, 21, 57} Infinite set N = {1, 2, 3, …}  is empty set

Sets Union A  B { 1, 2, 3 }  { 2, 3, 4, 5 } = { 1, 2, 3, 4, 5 } Intersect A  B { 1, 2, 3 }  { 2, 3, 4, 5 } = { 2, 3 } Complement A’ { 0, 2, 4, … }’ = { 1, 3, 5, … } Power set is the set of all subsets. A = { 0, 1 } A* = { , {0}, {1}, {0, 1} }

Sequence and Tuples Sequence (7, 21, 57)  (21, 7, 57)  (7, 7, 21, 57) Tuple A sequence with k elements is a k-tuple. (1, 3) : 2-tuple (also called pair) (2, 4, 6) : 3-tuple

Functions and Relations Functions : A function also is called a mappings. f(a) = b f: D → R abs (-1) = abs(-1) = 1 ads: Integer → Integer add (3, 5) = 8 add: Integer  Integer → Integer divide (5, 2) = 2.5 divide: Integer  Integer → Real Input Output Domain Range

Functions and Relations A predicate or property is a function whose range is {TRUE, FALSE}. even(4) = TRUE, odd(4) = FALSE A property whose domain is a set of k-tuples is called a relation, a k-ary relation. A 2-ary relation is called a binary relation. aRb means aRb = TRUE or R(a, b) = TRUE infix prefix

Graphs An undirected graph or a graph nodes (vertices) edges (arcs) degree 3 degree = 2 5 nodes, 6 edges 4 nodes, 6 edges An undirected graph or a graph

Graphs G = (V, E) where V is the set of nodes and E is the set of edges G = ({1,2,3,4,5}, {(1,2), (2,3), (3,4), (4,5), (5,1)})

Graphs a path in a graph a cycle in a graph a tree

Graphs A directed graph indegree = 1 indegree = 2 outdegree = 2

Strings and Languages  = {a, b, c ,d ,e, 0, 1} An alphabet is any nonempty finite set. Members of the alphabet are the symbols of the alphabet. A string over an alphabet is a finite sequence of symbols from that alphabet. ab01, 01aed, 001, aabb alphabet symbols

Strings and Languages If w is a string, the length of w, written |w|, is the number of symbols. w = abcde, |w| = 5 |w| = 0 is call the empty string and is written . wR is the reverse of w. w = abcde, wR = edcba w = abracadabra, cad is substring of w.

Strings and Languages w1 = abcd and w2 = 0011, the concatenation of w1 and w2, written w1w2. w1w2 = abcd0011. A language is a set of strings.

Often represented by the value 1 and 0. Boolean Logic The value TRUE and FALSE are called the Boolean values. Often represented by the value 1 and 0. conjunction or AND disjunction or OR negation or NOT

Boolean Logic exclusive or or XOR equality implication Two expressions in each row are equivalent.

Boolean Logic Distributive Law P  (Q  R) equals (P  Q)  (P  R)

Definitions, Theorems, and Proofs Mathematical statements Proof Theorem Lemmas Corollaries

Definitions Definitions describe the objects and notions that we use.

Mathematical statements A meaningful composition of words which can be considered either true or false is called a mathematical statement or simply a statement. “ABC is an equilateral triangle.” “E is a set of even numbers.”

Proofs A proof is a convincing logical argument that a statement is true. A theorem is a mathematical statement proved true. Generally we reserve the use of that word for statements of special interest. A lemma is a proved statement that is interesting only because they assist in the proof of another, more significant statement. A corollary is a proved statement that may allow us to conclude easily that other, related statements are true.

Types of Proof Proof by construction Proof by contradiction Proof by induction