TRƯỜNG ĐẠI HỌC THỦY LỢI
Khoa Công nghệ thông tin - Bộ mơn Khoa học máy tính
LÝ THUYẾT TÍNH TỐN
Tên giảng viên: Đinh Phú Hùng
Email:
Điện thoại: 0912509973
Tổng quan mơn học
• Mục tiêu mơn học:
Trang bị cho học viên những hiểu biết cũng như kĩ năng về
nền tảng tính tốn trong tin học, bao gồm:
- Hiểu biết rõ về các cơ sở toán học, cơ sở thuật tốn và lý
thuyết khoa học máy tính để có thể thiết kế một hệ thống hay
mơ hình tính tốn trên máy tính
- Có khả năng phân tích vấn đề và xác định các thành phần cần
thiết để có thể giải quyết vấn đề đó trên máy tính
- Có kiến thức nền tảng về một số mơ hình tính tốn phổ biến
- Có khả năng thực hiện một số thuật tốn tính tốn cơ bản
• Trang web mơn học
/>
1
Tổng quan mơn học
• Giáo trình
- Nhập mơn Lý thuyết tính tốn (Khoa CNTT, ĐH Thủy Lợi,
2009)
- Introduction to the theory of computation (2nd Michael Sipser,
MIT, 2004)
2
Đánh giá mơn học
• Điểm mơn học:
- Điểm q trình: 40%
• Kiểm tra giữa kỳ: 90%
• Chuyên cần 10%
- Thi cuối kỳ: 60%
• Thời gian thi: Kiểm tra 60 phút và thi 90 phút
• Hình thức: Viết, Khơng sử dụng tài liệu
3
Điều kiện thi cuối kỳ
Môn học: 30 tiết lý thuyết (LT) + 15 tiết thực hành (TH) = 15
buổi
- 15 buổi LT 2 tiết (bắt đầu từ tuần 1)
- 5 buổi TH 3 tiết (bắt đầu từ tuần 3)
Điều kiện:
• Khơng nghỉ q 2 buổi Thực hành
• Thi đạt bài kiểm tra giữa kỳ (≥ 4 điểm, thang điểm 10)
4
Nội dung mơn học
Bài giảng
Lý thuyết
1
Kiến thức nền tảng
2
Ơtơmat hữu hạn
3
4
5
6
Ơtơmat hữu hạn khơng đơn định
Biểu thức chính quy
Ngơn ngữ khơng chính quy
Văn phạm phi ngữ cảnh
7
8
9
10
11
12
13
14
15
Ơtơmat đẩy xuống
Ngơn ngữ không phi ngữ cảnh
Máy Turing
Các biến thể của máy Turing
Định nghĩa giải thuật
Các ngơn ngữ quyết định được
Bài tốn dừng
Quy dẫn
Thi giữa kỳ
Thực hành
Bài TH 1
Bài TH 2
Bài TH 3
Bài TH 4
Bài TH 5
5
Questions?
5
TRƯỜNG ĐẠI HỌC THỦY LỢI
Khoa Công nghệ thông tin - Bộ mơn Khoa học máy tính
LÝ THUYẾT TÍNH TỐN
Tên giảng viên: Đinh Phú Hùng
Email:
Điện thoại: 0912509973
Nội dung bài giảng
1. Tập hợp
2. Đồ thị, cây
3. Chuỗi và ngôn ngữ
4. Boolean Logic
5. Định nghĩa, định lý và chứng minh
1
Tập hợp
Tập hợp
• Tập hợp: Là tập các đối tượng khơng trùng lặp
VD: N = {1, 2, 3, . . .}, Z = {. . . , −2, −1, 0, 1, 2, . . .}
• Biểu diễn:
- Liệt kê: D = {a, b, c, d}
- Mơ tả đặc tính D = {x | x là một ngày trong tháng 9}
- Biểu đồ Venn:
A
B
2
Một số tập đặc biệt
• Tập rỗng: Ø = {}
• Tập hợp con: A ⊂ B (Ngược lại: A 6⊂ B )
{1, 2, 4} ⊂ {1, 2, 3, 4, 5}
{2, 4, 6} 6⊂ {1, 2, 3, 4, 5}
• Tập bằng nhau: A = B (Ngược lại: A 6= B )
{1, 2} = {2, 1}
{1, 2, 3} 6= {2, 1}
• Tập lũy thừa: P(A) hoặc 2A
A = {1, 2, 3} thì 2A = {Ø, {1}, {2}, {3}, {1, 2}, {2,
3}, {3, 1}, {1, 2, 3}}
3
Các phép tốn với tập hợp
• Phép hợp (Union): A ∪ B = { x | x ∈ A hoặc x ∈ B }
A
B
• Phép giao (Intersection): A ∩ B = { x | x ∈ A và x ∈ B }
A
B
• Phần bù (Complement): A = {x | x 6∈ A}
• Tích Đề các: A x B = {(a,b) | a ∈ A và b ∈ B}
• Phép trừ: A \ B = { x | x ∈ A nhưng x 6∈ B }
4
Hàm (Functions)
• Hàm: là một ánh xạ từ miền xác định sang miền giá trị
f: D → R
VD: f(x) = 2x + 5, ∀ x ∈ R
• Hàm một ngơi: f: D → R
• Hàm hai ngơi: f: A1 x A2 → R
- Trung tố: a+b, a*b, a-b
- Tiền tố: add(a,b), multiply(a,b), sub(a,b)
• Hàm k-ngơi: f: A1 x A2 x . . . x Ak → R
• Vị từ (thuộc tính): P: D → {True, False}
VD: even(4) = true, even(5) = false
5
Quan hệ
• Nếu R là một quan hệ hai ngơi ⇔ aRb = True
• Tương tự, Nếu R là một quan hệ k ngôi ⇔ R(a1 , a2 , . . . , ak )
= True
VD: cho S = {0, 1, 2, 3}
- Quan hệ "thứ tự nhỏ hơn"
L = { (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3) }
- Quan hệ "bằng"
E = { (0, 0), (1, 1), (2, 2), (3, 3)}
- Quan hệ "chẵn hoặc lẻ"
P = { (0, 0), (1, 1), (2, 2), (3, 3), (0, 2), (2, 0), (1, 3), (3, 1)}
6
Các tính chất của quan hệ
Quan hệ tương đương phải thỏa mãn:
• Phản xạ (reflexive): nếu aRa là đúng với ∀a ∈ S
• Đối xứng (symmetric): nếu aRb ⇔ bRa
• Bắc cầu (transitive): nếu aRb và bRc thì aRc
VD:
- L không là quan hệ ???
- E là quan hệ ???
- P là quan hệ ???
7
Đồ thị, cây
Đồ thị (Graphs)
• Đồ thị (Ký hiệu G = (V,E)): là tập hợp các điểm cùng với các
đường nối giữa các điểm đó
Đồ thị vơ hướng:
6
5
4
1
2
3
8
Đồ thị (Graphs)
Đồ thị có hướng:
6
5
4
1
2
3
9
Đồ thị (Graphs)
Đồ thị có trọng số:
6
7
5
2
12
4
1
4
5
9
6
2
3
10
Đồ thị (Graphs)
Đồ thị con (Subgraphs):
6
5
4
1
2
3
11
Đồ thị (Graphs)
• Đường đi (path): là dãy các đỉnh được nối với nhau bởi các
cạnh
• Đường đi đơn: là đường đi mà nó khơng lặp lại bất cứ đỉnh
nào
• Chu trình: là một đường đi mà đỉnh bắt đầu ≡ đỉnh kết
thúc
• Đồ thị là liên thơng (connected components): ∃ đường đi
giữa 2 đỉnh bất kỳ
12
Đồ thị (Graphs)
Xét đồ thị có hướng G=(V,E)
Bán bậc vào
Bán bậc ra
Quan hệ hai ngơi ≡ Đồ thị có hướng
R(a,b) = True
aRb
a
b
13
Cây (Trees)
• Cây (Trees) là một đồ thi
- Khơng có chu trình
- Có một nút gốc
a
c
b
d
e
14
Chuỗi và ngôn ngữ