- Xem xét quan hệ giữa những tập hữu hạn hoặc đếm được - Phân tích quá trình có số bước hữu hạn - Cơ bản về tất cả những xử lý thông tin số: Những thao tác trên các cấu trúc rời rạc tron
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG BÀI GIẢNG
TOÁN RỜI RẠC
Trình độ đào tạo: Đại học
Hệ đào tạo: Chính qui
Trang 2LỜI NÓI ĐẦU
Toán học rời rạc (tiếng Anh: discrete mathematics) là tên chung của nhiều ngành toán học có đối tượng nghiên cứu là các tập hợp cấu trúc, đối tượng rời rạc, các ngành này được tập hợp lại từ khi xuất hiện khoa học máy tính làm thành cơ sở toán học của khoa học máy tính Nó còn được gọi là toán học dành cho máy tính Người ta thường kể đến trong toán học rời rạc lý thuyết tổ hợp, lý thuyết đồ thị, lý thuyết độ phức tạp, đại số Boolean
Một quan điểm rộng rãi hơn, gộp tất cả các ngành toán học làm việc với các tập hữu hạn hoặc đếm được vào toán học rời rạc như số học modulo m, lý thuyết nhóm hữu hạn, lý thuyết mật mã,
Trong các cấu trúc, đối tường rời rạc không có một cấu trúc nào là cơ bản thực sự, bởi
vì hầu hết cấu trúc có thể được định nghĩa thông qua hầu như bất kỳ các kiểu khác Do vậy, trong modul này, nội dung sẽ trình bày những cấu trúc cơ bản và quan trọng nhất
Có thể nói toán học rời rạc là môn tiên quyết và hiệu quả nhất để người học nâng cao tư duy toán học trong phân tích, thiết kế thuật toán và rèn luyện kỹ năng lập trình với những thuật toán phức tạp Không những thế nó còn là “cửa ngõ” để người học có thể tiếp cận với rất nhiều modul trong khoa học máy tính (như Chương trình dịch, lý thuyết tính toán, Trí tuệ nhân tạo, )
Mặc dù đã rất cẩn trọng trong quá trình biên soạn, tuy nhiên tài liệu không tránh khỏi những thiếu sót và hạn chế Chúng tôi rất mong được sự góp ý quí báu của tất cả đọc giả và các bạn đồng nghiệp
Mọi góp xin gửi về: Khoa Công nghệ Thông tin – Trường ĐHSPKT Hưng Yên
Trang 3Mục lục
LỜI NÓI ĐẦU 0
Mục lục 2
Danh mục các hình vẽ 6
Bài 1 Tổng quan môn học 8
1.1 Mở đầu 8
1.2 Tại sao học toán rời rạc 9
1.3 Toán học rời rạc nghiên cứu những gì 10
1.4 Học toán rời rạc như thế nào 12
1.5 Toán rời rạc và ứng dụng 13
BÀI 2: Logic mệnh đề (propositional logic) 14
2.1 Mệnh đề 14
2.2 Các phép toán lôgic cơ bản 16
2.2.1 Phép phủ định 16
2.2.2 Phép hội 16
2.2.3 Phép tuyển 17
2.2.4 Phép kéo theo 18
2.2.5 Phép tương đương 19
2.3 Sự tương đương lôgic và luật 20
2.3.1 Giới thiệu 20
2.3.2 Sự tương đương lôgic 20
2.4 Bài tập 23
Bài 3 Logic vị từ (predicate logic) 24
3.1 Vị từ 24
3.1.1 Định nghĩa 24
3.1.1 Các phép toán vị từ 24
3.2 Lượng từ 25
3.2.1 Mệnh đề tồn tại 25
3.2.2 Mệnh đề tất cả 26
3.2.3 Quy tắc phủ định mệnh đề có lượng từ 27
3.2.4 Một số lượng từ hai biến 28
3.2.5 Một số quy tắc phổ dụng 28
3.3 Logic trong tìm kiếm trên mạng 29
3.4 Logic trong lập trình 29
3.5 Logic trong đời sống 29
3.6 Logic trong tính toán 30
3.7 Logic trong suy luận 30
3.8 Logic trong giải bài toán trong kĩ thuật 31
Bài 4 Thảo luận Logic 34
4.1 Logic mệnh đề 34
4.1.1 Logic trong suy luận 34
4.1.2 Mạch logic số 34
4.2 Logic vị từ 34
4.2.1 Logic trong suy luận 34
4.3 Logic mờ (*) 34
4.4 Thảo luận 34
Bài 5 Một số phương pháp chứng minh 35
5.1 Giới thiệu 35
Trang 45.2.2 Một số ví dụ 38
5.3 Các phương pháp chứng minh cho mệnh đề kéo theo 39
5.3.1 Chứng minh trực tiếp 39
5.3.2 Chứng minh gián tiếp 40
5.3.3 Chứng minh bằng cách phân chia trường hợp 41
5.3.4 Chứng minh vacuous 42
5.3.5 Chứng minh trivial 42
5.4 Chứng minh bằng phản chứng 43
5.5 Chứng minh bằng quy nạp 44
5.6 Chứng minh bằng cách đưa ra phản ví dụ 45
5.7 Một số ngộ nhận thường gặp 46
Bài 6 Ứng dụng của phương pháp chứng minh nhờ luật suy diễn 47
6.1 Ứng dụng 47
6.2 Bài tập 47
Bài 7 Số và Ma trận 49
7.1 Thuật toán 49
7.1.1 Giới thiệu 49
7.1.2 Định nghĩa 49
7.1.3 Các đặc trưng của thuật toán: 50
7.2 Độ phức tạp của thuật toán 50
7.2.1 Khái niệm về độ phức tạp của một thuật toán 50
7.2.2 So sánh độ phức tạp của các thuật toán: 52
7.3 Số nguyên và thuật toán 55
7.3.1 Thuật toán Euclide 55
7.3.2 Biểu diễn các số nguyên 57
7.3.3 Thuật toán cho các phép tính số nguyên 58
7.4 Số học đồng dư 60
7.5 Ma trận 62
7.5.1 Giới thiệu ma trận và ứng dụng của ma trận 62
7.5.2 Các phép toán trên ma trận 62
7.5.3 Các loại ma trận đặc biệt 63
Bài 8 Số nguyên và ứng dụng 65
8.1 Số học đồng dư và ứng dụng 65
8.1.1 Hàm băm 65
8.1.2 Các số giả ngẫu nhiên 65
8.1.3 Mật mã 65
8.2 Số nguyên tố và ứng dụng 66
8.2.1 Số nguyên tố 66
8.2.2 Thuật toán sàng số nguyên tố 67
8.3 Giải thuật đệ quy 69
8.3.1 Khái niệm đệ quy 69
8.3.2 Thuật toán đệ qui 70
8.3.3 Đệ quy và lặp 71
BÀI 9 Kỹ thuật đếm cơ bản (Count technique) 74
9.1 Định nghĩa 74
9.2 Nguyên lý cộng và nguyên lý nhân 74
9.2.1 Nguyên lý cộng 74
9.2.2 Nguyên lý nhân 76
9.3 Nguyên lý bù trừ 79
9.4 Nguyên lý Dirichlet 80
9.4.1 Nguyên lý Dirichlet tổng quát 81
9.4.2 Một số ứng dụng của nguyên lý Dirichlet 81
Trang 59.5 Hoán vị, tổ hợp, chỉnh hợp (*) 82
9.5.1 Chỉnh hợp 82
9.5.2 Tổ hợp 83
9.5.3 Hoán vị 85
9.5.4 Hoán vị lặp 86
9.6 Bài tập 87
Bài 10 Quan hệ truy hồi (Recurrence Relations) 88
10.1 Định nghĩa 88
10.2 Một số ví dụ 88
10.3 Kỹ thuật giải phương trình truy hồi 90
10.4 Bài tập 90
Bài 11 Thảo luận về kỹ thuật đếm 91
11.1 Nhắc lại lý thuyết 91
11.2 Bài tập kỹ thuật đếm cơ bản 91
11.3 Bài tập kỹ thuật đếm nâng cao 92
Bài 12 Các khái niệm cơ bản của Lý thuyết đồ thị 93
12.1 Định nghĩa cơ bản về đồ thị 93
12.2 Đường đi - chu trình - Đồ thị liên thông 95
12.3 Phân loại đồ thị 98
12.3.1 Đồ thị vô hướng liên thông 98
12.3.2 Đồ thị có hướng liên thông 99
12.4 Một số loại đồ thị đặc biệt 100
Bài 13 Biểu diễn đồ thị trên máy tính 104
13.1 Ma trận kề - Ma trận trọng số 104
13.2 Danh sách cạnh (cung) 106
13.3 Danh sách kề 107
13.4 Bài tập 108
Bài 14 Đồ thị Euler – Hamilton 109
14.1 Đồ thị Euler 109
14.1.1 Định nghĩa 109
14.1.2 Các ví dụ 109
14.1.3 Định lý Euler 110
14.1.4 Thuật toán Flor tìm đường đi chu trình Euler 113
14.1.5 Một số bài toán liên quan(*) 113
14.2 Đồ thị Hamilton 113
14.2.1 Định nghĩa 114
14.2.2 Định lý Dirak 114
14.2.3 Thuật toán liệt kê tất cả các chu trình Hamilton của đồ thị 115
Bài 15 Cài đặt đồ thị, thuật toán tìm chu trình Euler và liệt kê chu trình Hamilton 118
15.1 Cài đặt biểu diễn đồ thị trên máy tính 118
15.2 Cài đặt thuật toán liệt kê chu trình Euler 118
15.3 Cài đặt thuật toán liệt kê chu trình Hamilton 119
Bài 16 Thuật toán tìm kiếm trên đồ thị và ứng dụng 120
16.1 Duyệt đồ thị theo chiều rộng (BFS) 120
16.2 Duyệt đồ thị theo chiều sâu (DFS) 123
16.3 Bài tập 125
16.4 Ứng dụng 126
Bài 17 Cây và cây khung 128
17.1 Cây và cây khung 128
Trang 617.3 Xây dựng tập các chu trình cơ bản của đồ thị 132
17.4 Thuật toán Kruskal 133
17.5 Thuật toán Prim 135
Bài 18 Ứng dụng của bài toán đồ thị liên thông liên thông và bài toán cây khung nhỏ nhất 137
18.1 Thuật toán duyệt đồ thị và bài toán liên thông 137
18.2 Một số thuật toán xây dựng cây khung(*) 138
18.3 Ứng dụng của bài toán cây khung nhỏ nhất 139
18.4 Cài đặt thuật toán Prim/Kruskal 140
18.4.1 Cài đặt thuật toán Prim 140
18.4.2 Cài đặt thuật toán Kruskal 142
Bài 19 Bài toán tìm đường đi ngắn nhất 146
19.1 Các khái niệm mở đầu 146
19.2 Đường đi ngắn nhất xuất phát từ một đỉnh Thuật toán Ford-Bellman 146
19.3 Trường hợp ma trận trọng số không âm Thuật toán Dijkstra 148
19.4 Đường đi trong đồ thị không có chu trình (*) 150
19.5 Đường đi ngắn nhất giữa tất cả các cặp đỉnh (*) 153
Bài 20 Ứng dụng của bài toán tìm đường đi ngắn nhất 155
20.1 Ứng dụng của bài toán tìm đường đi ngắn nhất 155
20.2 Cài đặt thuật toán Dijkstra 155
Bài 21 Bài toán luồng cực đại trong mạng 158
21.1 Mạng - Luồng trong mạng – Bài toán luồng cực đại 158
21.1.1 Mạng – Luổng trong mạng 158
21.2 Bài toán luồng cực đại 159
21.3 Lát cắt đường tăng luồng Định lý Ford_Fulkerson 159
21.4 Thuật toán tìm luồng cực đại 162
21.5 Bài tập 170
Bài 22 Lý thuyết đồ thị và ứng dụng 171
22.1 Một số bài toán liên quan tới đồ thị 171
22.1.1 Các bài toán liên quan tới bậc của đồ thị 171
22.1.2 Các bài toán liên quan đến tính liên thông của đồ thị 172
22.1.3 Các bài toán có liên quan đến đường đi và chu trình Hamilton 172
22.1.4 Các bài toán liên quan đến đồ thị tô màu 176
22.1.5 Bài toán về cây 180
22.1.6 Bài toán về ghép cặp 181
22.1.7 Đồ thị Euler 181
22.1.8 Các bài toán có tính tổng hợp 182
22.2 Duyệt rộng trên mảng hai chiều 183
22.3 Bài toán đám cưới vùng quê 185
22.4 Bài tập 186
Trang 7Danh mục các hình vẽ
Hình 12.1 Sơ đồ mạng máy tính 93
Hình 12.2 Sơ đồ mạng máy tính với đa kênh thoại 93
Hình 12.3 Sơ đồ mạng máy tính với kênh thoại thông báo 94
Hình 12.4 Mạng máy tính với kênh thoại một chiều 94
Hình 12.5 Đường đi trên đồ thị 95
Hình 12.6 Đồ thị G và H 96
Hình 12.7 Đồ thị liên thông mạnh G và đồ thị liên thông yếu H 97
Hình 12.8 Đồ thị vô hướng 98
Hình 12.9 Đồ thị có hướng 99
Hình 12.10 Đồ thị đầy đủ 100
Hình 12.11 Đồ thị vòng 101
Hình 12.12 Đồ thị bánh xe 101
Hình 12.13 Đồ thị lập phương 101
Hình 12.14 Đồ thị hai phía 102
Hình 12.15 Đồ thị K4 là đồ thị phẳng 102
Hình 12.16 Các miền tương ứng với biểu diễn phẳng của đồ thị 103
Hình 13.1 Đồ thị vô hướng G và Đồ thị có hướng G1 104
Hình 14.1 Mô hình 7 cây cầu ở Konigsberg 109
Hình 14.2 Đồ thị G1, G2, G3 110
Hình 14.3 Đồ thị H1, H2, H3 110
Hình 14.4 Minh hoạ cho chứng minh định lý 14.1 111
Hình 14.5 Du lịch 20 thành phố 113
Hình 14.6 Đồ thị Hamilton G3, nửa Hamilton G2, và G1 không là nửa Hamilton 114
Hình 14.7 Đồ thị đấu loại D5, đấu loại liên thông mạnh D6 115
Hình 16.1 Đồ thị vô hướng 121
Hình 16.2 Đồ thị vô hướng 127
Hình 17.1 Cây và rừng 128
Hình 17.2 Đồ thị và các cây khung của nó 129
Hình 17.3 Đồ thị và cây khung nhỏ nhất 136
Hình 18.1 Minh họa từng bước thuật toán Prim tìm cây khung nhỏ nhất 142
Hình 18.2 Minh họa từng bước thuật toán Kruskal tìm cây khung nhỏ nhất 145
Hình 19.3 Đồ thị minh hoạ PERT 153
Hình 21.1 Mạng G và luồng f Đồ thị có trọng số Gf tương ứng 161
Hình 21.2 Mạng G và minh họa từng bước thuật toán ford-Fullkerson 166
Hình 21.3 Mạng G với luồng cực đại và lát cắt hẹp nhất 167
Hình 21.4 Ví dụ tồi tệ đối với thuật toán ford_Fulkerson 169
Hình 21.5 Tăng luồng dọc theo đường tăng 170
Hình 22.1 Kết quả thi đấu của 5 đội bóng chuyền A, B, C, B, E 173
Trang 8Hình 22.6 Bản đồ có 6 miền 177
Hình 22.7 Lập lịch thi 7 môn 179
Hình 22.8 Tô màu cho đồ thị lịch thi 180
Hình 22.9 Kết quả xếp hạng của các đội 181
Hình 22.10 Tuyển chọn biên dịch viên 183
Hình 22.11 Hướng di chuyển của robot 184
Hình 22.12 Mạng tương ứng với bài toán đám cưới vùng quê 185
Trang 9Bài 1 Tổng quan môn học
1.1 Mở đầu
Toán học rời rạc ngày nay đã trở thành quen thuộc trong những năm gần đây bởi những ứng dụng to lớn của nó trong các ngành tin học Toán học rời rạc là một ngành toán học giải quyết các đối tượng hay cấu trúc rời rạc Đối tượng rời rạc là những đối tượng mà chúng có thể được phân biệt, phân tách ra khỏi nhau để có thể đếm được Số tự nhiên, số hữu
tỉ (được coi như là tỉ số của 2 số tự nhiên), môtô, nhà, người, … là những đối tượng rời rạc Mặt khác số thực bao gồm số vô tỉ là không rời rạc (chúng ta biết rằng giữa hai số thực khác nhau luôn tồn tại một số thực khác chúng)
Thuật ngữ ”Toán học rời rạc”cũng để phân biệt với”Toán học liên tục” Trong khi các đối tượng rời rạc thường được coi như có sự liên quan mật thiết tới số tự nhiên thì các đối tượng liên tục là số thực Trong modul này, chúng ta sẽ nghiên cứu những đối tượng rời rạc như số tự nhiên, mệnh đề, tập, quan hệ, hàm, đồ thị, hay lý thuyết số, …tất cả chúng đều rời rạc Chúng ta sẽ học các khái niệm, tính chất và quan hệ giữa chúng với nhau và với các đối tượng khác
Một quan điểm rộng rãi hơn, gộp tất cả các ngành toán học làm việc với các tập hữu hạn hoặc đếm được vào toán học rời rạc như số học modulo m, lý thuyết nhóm hữu hạn, lý thuyết mật mã,
Có thể nêu ra đây một vài ví dụ dùng tới toán học rời rạc:
- Có bao nhiêu password hợp lệ cho một hệ thống máy tính?
- Có tồn tại một đường nối giữa 2 máy tính trong một mạng?
- Có bao nhiêu địa chỉ internet hợp lệ?
- Đường đi ngắn nhất giữa 2 máy tính trong một mạng là gì?
- Có bao nhiêu bước trong quá trình sắp xếp?
- Có bao nhiêu mạch để cộng 2 số nguyên được thiết kế?
- Khả năng trúng giải thưởng cho một vé số là bao nhiêu?
- Cách tốt nhất để lập lịch 8 cuộc họp hội đồng các thành viên mà không có bất kỳ sự cạnh tranh nào, giả thiết đưa ra là 1 vài người có tên trong hơn 1 hội đồng
- Làm thế nào chúng ta có thể lập lịch tất cả các nhiệm vụ trong dự án lớn này (giống như 1 dự án xây dựng hoặc dự án để bắt đầu đưa 1 sản phẩm mới ra thị trường)
- Sẽ có đủ số điện thoại để cung cấp tất cả điện thoại, máy fax, và điện thoại di động trong cho Việt Nam?
- Làm thể nào chúng ta có thể mô hình và phân tích 1 sự thay đổi dân số, hoặc thay đổi lượng tiền trong một dự án đầu tư
Modul sẽ học những cấu trúc rời rạc và các kỹ thuật để giải quyết những vấn đề
này Vậy một câu hỏi đặt ra là: Toán rời rạc được dùng khi nào? Thực tế toán học rời rạc
Trang 10- Xem xét quan hệ giữa những tập hữu hạn (hoặc đếm được)
- Phân tích quá trình có số bước hữu hạn
- Cơ bản về tất cả những xử lý thông tin số: Những thao tác trên các cấu trúc rời rạc trong bộ nhớ
- Nó là ngôn ngữ cơ bản và là khái niệm nền tảng cho tất cả các lĩnh vực trong khoa học máy tính
- Các khái niệm rời rạc cũng được sử dụng rộng rãi trong toán học, kỹ thuật, kinh tế, sinh học, …
Đặc biệt toán học rời rạc là một công cụ tuyệt vời để suy luận logic
1.2 Tại sao học toán rời rạc
Có một số lý do quan trọng để nghiên cứu toán học rời rạc
Thứ nhất, thông qua modul này, người học có thể phát triển khả năng toán học, đó là khả năng hiểu và tạo ra các chủ đề của toán học Người học sẽ vô cùng khó khăn để tiến xa trong ngành tin học mà không có những kiến thức toán học này
Thứ hai, toán học rời rạc cung cấp cơ sở toán học để mở ra cánh cửa cho người học có thể tiếp tục với những modul cao hơn cho các khóa học của khoa học máy tính, bao gồm: cấu trúc dữ liệu, thuật toán, lý thuyết cơ sở dữ liệu, lý thuyết automat, ngôn ngữ hình thức, trình biên dịch, bảo mật máy tính, thiết kế mạch máy tính, mạng máy tính và hệ điều hành, …sinh viên có thể nhận thấy những khóa học trên vô cùng khó khăn nếu không có một cơ sở toán học của modul toán học rời rạc này
Toán học rời rạc là toán tính toán
Khoa học máy tính hiện đại được xây dựng hầu hết dựa trên toán học rời rạc, đặc biệt là toán tập hợp và lý thuyết đồ thị Điều này có nghĩa là: các nhà lập trình máy tính và sinh viên muốn học các thuật toán cơ bản thì sẽ phải cần một nền tảng toán học rời rạc chắc chắn Bởi vậy, tại hầu hết các trường đại học, môn toán học rời rạc là bắt buộc với sinh viên bậc đại học
Toán học rời rạc là toán thế giới thực
Nhiều sinh viên than phiền về tính truyền thống của toán cấp 3 như: đại số, đồ thị, lượng giác, và phần tương tự như vậy- câu hỏi đặt ra là: “học toán cấp 3 với nội dung truyền thống như vậy tốt ở điểm nào?” Một vài chủ đề trừu tượng của toán học thường làm sinh viên sợ và không vượt qua được Ngược lại, toán học rời rạc , đặc biệt là toán đếm
và xác suất, cho phép sinh viên (kể cả h/s đang học cấp 3 nhanh chóng tìm ra vấn đề quan trọng trong thế giới thực những vấn đề khó nhưng lại rất thú vị)
Toán học rời rạc dạy suy luận toán học và các kỹ thuật chứng minh
Đại số thường dạy sinh viên nhớ chuỗi các công thức và thuật toán (ví dụ, công thức quadratic, các hệ thống phương trình tuyến tính ), và hình học thường được dạy như là 1 chuỗi các bài tập áp dụng”định nghĩa – định lý – chứng minh”
Còn với toán học rời rạc, sinh viên sẽ suy nghĩ linh hoạt và sáng tạo Có các mối quan hệ giữa 1 vài công thức Có 1 số khái niệm cơ bản để làm chủ và ứng dụng toán học
Trang 11rời rạc trong nhiều cách khác nhau
Toán học rời rạc rất vui
Nhiều sinh viên, đặc biêt là những sinh viên sáng dạ và năng động tìm ra rằng đại số, hình học và thậm chí cả tích phân không gây thích thú Hiếm khi những chủ đề này gây thích thú như những chủ đề toán học rời rạc Khi chúng ta hỏi sinh viên về chủ đề mà họ thích, hầu hết đều nhận được trả lời là toán tập hợp hoặc lý thuyết số (Khi chúng ta hỏi sinh viên về chủ
đề mà ít gây thích thú với họ nhất, phần đa trả lời là”hình học”) Và thật đơn giản hầu hết sinh viên đều nhận ra rằng toán học rời rạc nhiều niềm vui hơn đại số và hình học
1.3 Toán học rời rạc nghiên cứu những gì
Toán học rời rạc là tên chung của nhiều ngành toán học có đối tượng nghiên cứu là các tập hợp rời rạc, các ngành này được tập hợp lại từ khi xuất hiện khoa học máy tính làm thành
cơ sở toán học của khoa học máy tính Nó còn được gọi là toán học dành cho máy tính
Có thể nói toán học rời rạc ngày càng có tầm quan trọng trong nhiều ngành khoa học máy tính cũng như trong công việc lập trình Có nhiều khái niệm của toán học được nghiên cứu trong toán học rời rạc Chúng ta có thể nhắc tới một số chủ đề trong toán học rời rạc sau đây khi chúng đã được áp dụng rất nhiều trong khoa học máy tính:
Algorithmics – Thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ
thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán
Nói cách khác, thuật toán là một bộ các qui tắc hay qui trình cụ thể nhằm giải quyết một vấn đề trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào Thuật toán đôi khi còn được gọi là phương thức, thủ tục, hay kỹ thuật Trong ngành khoa học máy tính, thuật toán được thể hiện thông qua một chương trình máy tính (hay một tập hợp các chương trình máy tính) được thiết kế để giải quyết một số loại vấn đề một cách có hệ thống Một ví dụ kinh điển trong ngành khoa học máy tính là thuật toán đệ quy dùng để giải bài toán tháp Hà Nội
Boolean Algebra – cách tính toán và biểu diễn các biểu thức trên hệ cơ số, nó cũng
nghiên cứu các khái niệm điện tử học như cổng logic…
Combinatorics – Là một nhánh của toán học nghiên cứu tới liệt kê, tổ hợp, hoán vị
các tập phần tử, những tính chất và những quan hệ của chúng
Computability and Complexity Theories – Lý thuyết về độ phức tạp và khả năng
tính toán - Liên quan tới combinatorics và algorithmics, nhưng nó tập trung vào những giới hạn về thực hành cũng như lý thuyết trong các mô hình tính toán khác nhauđể giải quyết bài toán Lý thuyết về độ phức tạp và khả năng tính toán Trong khoa học máy tinh, nó thường dùng ký hiệu O (Big-O)
Counting – Liên quan tới các khái niệm và kỹ thuật đếm, liệt kê và tính toán trong
Trang 12thể được biểu diễn bằng một đồ thị có hướng như sau: các đỉnh là các trang web hiện có
tại website, tồn tại một cạnh có hướng nối từ trang A tới trang B khi và chỉ khi A có chứa 1 liên kết tới B Do vậy, sự phát triển của các thuật toán xử lý đồ thị là một trong các mối quan
tâm chính của khoa học máy tính
Information Theory – Lý thuyết thông tin – Áp dụng toán học vào truyền thông, nó
dựa phần lớn vào xác suất và thông kê để nghiên cứu những lĩnh vực như phân tích dữ liệu, mạng, truyền thông, tính toán lượng tử …
Logic – Theo truyền thống, logic được nghiên cứu như là một nhánh của triết học Kể
từ giữa thế kỉ 19 logic đã thường được nghiên cứu trong toán học và luật Gần đây nhất logic được áp dụng vào khoa học máy tính và trí tuệ nhân tạo Là một ngành khoa học hình thức, logic nghiên cứu và phân loại cấu trúc của các khẳng định và các lý lẽ, cả hai đều thông qua việc nghiên cứu các hệ thống hình thức của việc suy luận và qua sự nghiên cứu lý
lẽ trong ngôn ngữ tự nhiên
Mathematical Relations (Quan hệ): Phần này liên quan tới lý thuyết tập, các quan hệ
là việc gán một giá trị cho một tổ hợp của k-phần tử
Number Theory (lý thuyết số): Là một nhánh lớn của toán học nghiên cứu những tính
chất của số nguyên
Proofs (chứng minh): Dùng lập luận logic toán học để chứng minh một biểu thức là
đúng, sai
Functions (Hàm): Trong toán học, khái niệm hàm số (hay hàm) được hiểu tương tự
như khái niệm ánh xạ Nếu như ánh xạ được định nghĩa là một qui tắc tuơng ứng áp dụng lên hai tập hợp bất kỳ (còn được gọi là tập nguồn và tập đích), mà trong đó mỗi phần tử của tập
hợp này (tập hợp nguồn) tương ứng với một và chỉ một phần tử thuộc tập hợp kia (tập hợp
đích), thì ta hoàn toàn có thể coi hàm số là một trường hợp đặc biệt của ánh xạ, khi tập nguồn và tập đích đều là tập hợp số
Set Theory (lý thuyết tập hợp): Nghiên cứu tập các phần tử Mặc dù bất ký một kiểu
đối tượng nào cũng có thể tập hợp lại thành tập nhưng lý thuyết tập thường áp dụng cho các đối tượng trong toán học
Linear algebra (Đại số tuyến tính): Phần này được sử dụng nhiều trong toán học, như
trong đại số đại cương, giải tích hàm, hình học giải tích để giải các bài toán như phép quay trong không gian, nội suy bình phương nhỏ nhất, nghiệm của hệ phương trình vi phân, tìm đường tròn qua ba điểm Nó cũng có vô vàn ứng dụng trong khoa học tự nhiên (vật lý, công nghệ ) và khoa học xã hội (kinh tế ), vì các mô hình phi tuyến tính hay gặp trong
tự nhiên và xã hội thường có thể xấp xỉ bằng mô hình tuyến tính
Ký hiệu “→”:≡”có thể được định nghĩa bởi”
Trang 13HÌnh 1.1 Mối quan hệ giữa các kiểu dữ liệu
Như đã thảo luận phần trước, các cấu trúc toán học có thể được xây dựng hay chỉ ra thông qua các cấu trúc đơn giản hơn Chính biểu đồ trên phác thảo một vài cách mà các cấu trúc rời rạc (và liên tục) đa dạng cuối cùng cũng được tạo nên từ cấu trúc rời rạc rất đơn giản là tập (set) Biểu đồ cũng cho chúng ta thấy được phần nào quan hệ của các đối tượng toán học Tuy nhiên, biểu đồ đã được đơn giản hóa đi rất nhiều, nhiều cấu trúc khác cũng như các cách định nghĩa các cấu trúc thông chúng đã được lược bỏ Ví dụ, các tập có thể được định nghĩa thông qua các hàm, hoặc các quan hệ Không có một cấu trúc nào là cơ bản thực sự, bởi vì hầu hết cấu trúc có thể được định nghĩa thông qua hầu như bất kỳ các kiểu khác Các tập chỉ có thể là điểm bắt đầu nhưng chúng phổ cập được bởi vì định nghĩa của chúng quá đơn giản Trong modul này sẽ xem xét biểu đồ chi tiết để thấy được các cấu trúc này liên hệ với nhau như thế nào
1.4 Học toán rời rạc như thế nào
Một số lời khuyên cho người học để có thể đạt hiệu quả cho modul này như sau:
Thứ nhất, sinh viên hãy coi bài tập như một phần quan trọng trong quá trình học Người học sẽ học được phần lớn kiến thức thông qua bài tập, do vậy sinh viên hãy làm càng nhiều bài tập càng tốt, bao gồm cả bài tập cuối mỗi phần và các bài tập giảng viên cung cấp Sinh viên hãy cố gắng tự giải bài tập trước khi xem lời giải Đây là một yêu cầu rất quan trọng với sinh viên, người học chỉ có thể đạt được nhiều kiến thức nhất khi trải qua quá trình tự làm, tự học
Thứ hai, sinh viên không được bỏ một buổi học nào, thời gian học trên lớp là quá trình trao đổi rất tốt giữa giảng viên và sinh viên
Thứ ba, nếu học viên học ít hơn 3 ngày trong tuần trong quá trình học modul này thì học viên đang lãng phí thời gian của mình, do vậy tốt nhất cho học viên là học tập thường xuyên
Thứ tư, hãy tạo cho mình môi trường học tập thoải mái: có thể đan xen giữa việc giải
Trang 14thi, nhưng với cách học như vậy thì kiến thức toán sẽ chỉ đi vào” bộ nhớ tạm thời”mà thôi Kết quả cuối cùng là kiến thức toán sẽ ở mức độ mà không tồn tại lâu dài do cách học”sổi”,
và chính thói quen học tập nghiên cứu như vậy sẽ làm hại chính mình
Trang 15BÀI 2: Logic mệnh đề (propositional logic) Logic sử dụng để biểu diễn những luận điểm chính xác các mênh đề toán học Những luật trong logic được dùng để phân biệt những luận điểm đúng và sai Bài học này cũng giúp người học cách thức để hiểu và xây dựng các luận điểm toán học đúng đắn
Logic là nội dung trung tâm của khoa học máy tính từ khi ngành này được hình thành: công trình của Alan Turing về Entscheidungsproblem theo sau từ công trình của Kurt Gödel
về các định lý về sự không toàn vẹn, và khái niệm của các máy tính dành cho mục đích tổng quát bắt nguồn từ công trình này đã có tầm quan trọng mang tính nền tảng đối với các nhà thiết kế máy tính trong những năm 1940
Trong những năm 1950 và 1960, các nhà nghiên cứu dự đoán rằng khi tri thức của con người có thể được biểu diễn bằng logic và các ký hiệu toán học, sẽ có khả năng tạo ra một máy tính có khả năng lập luận, hay nói cách khác là trí tuệ nhân tạo Điều này hóa ra là khó khăn hơn đã dự đoán do sự phức tạp trong lập luận của con người Trong lập trình logic, một chương trình bao gồm một tập hợp các tiên đề và các luật Các hệ thống lập trình logic như Prolog tính toán các hệ quả của các tiên đề và luật để trả lời một truy vấn
Ngày nay, logic được ứng dụng rộng rãi trong các lãnh vực của trí tuệ nhân tạo, và khoa học máy tính, và những ngành này cung cấp một nguồn dồi dào các bài toán trong logic hình thức và phi hình thức Lý thuyết lý luận là một ví dụ tốt cho thấy logic được áp dụng vào trí tuệ nhân tạo như thế nào
Thêm vào đó, máy tính có thể được sử dụng như công cụ cho các nhà logic học Ví dụ, trong logic biểu tượng và logic toán học, các chứng minh bởi con người có thể được hỗ trợ bởi máy tính Sử dụng chứng minh định lý tự động, máy tính có thể tìm ra và kiểm tra các chứng minh, cũng như là làm việc với những chứng minh quá dài cho việc viết ra
2.1 Mệnh đề
Các đối tượng cơ bản mà chúng ta khảo sát ở đây là các phát biểu hay các mệnh đề Trong lôgic toán, một phân ngành lôgic học, cơ sở của mọi ngành toán học, mệnh đề, hay gọi đầy đủ là mệnh đề lôgic là một khái niệm nguyên thủy, không định nghĩa
Thuộc tính cơ bản của một mệnh đề là giá trị chân lí của nó, được quy định như sau: Mỗi mệnh đề có đúng một trong hai giá trị chân lí 0 hoặc 1 Mệnh đề có giá trị chân lí 1 là mệnh đề đúng, mệnh đề có giá trị chân lí 0 là mệnh đề sai
Kí hiệu:
Người ta thường dùng các chữ cái a, b, c, để kí hiệu cho các mệnh đề
Nếu mệnh đề a có giá trị chân lí là 1 thì ta kí hiệu G(a) = 1, nếu mệnh đề a có giá trị chân lí là 0 thì ta kí hiệu là G(a) = 0
Chẳng hạn, để kí hiệu a là mệnh đề”Paris là thủ đô của nước Pháp”ta sẽ viết:
Trang 16Chú ý:1 Trong thực tế có những mệnh đề mà tính đúng sai của nó luôn gắn với một thời gian
và địa điểm cụ thể: đúng ở thời gian hoặc địa điểm này nhưng sai ở thời gian hoặc địa điểm khác Nhưng ở bất kì thời điểm nào, địa điểm nào cũng luôn có giá trị chân lí đúng hoặc sai Chẳng hạn:
Sáng nay bạn An đi học
Trời mưa
Học sinh tiểu học đang đi nghỉ hè
2 Ta thừa nhận các luật sau đây của lôgic mệnh đề:
Luật bài trùng: Mỗi mệnh đề phải hoặc đúng, hoặc sai; không có mệnh đề nào không đúng cũng không sai
Luật mâu thuẫn: Không có mệnh đề nào vừa đúng lại vừa sai
3 Có những mệnh đề mà ta không biết (hoặc chưa biết) đúng hoặc sai nhưng biết”chắc chắc”nó nhận một giá trị Chẳng hạn: Trên sao Hỏa có sự sống
Mệnh đề và câu
Mệnh đề có thể là một câu nhưng không phải mọi câu đều là mệnh đề Có thể chia các câu trong khoa học cũng như trong cuộc sống ra làm hai loại: loại thứ nhất gồm những câu phản ánh tính đúng hoặc sai một thực tế khách quan và loại thứ hai gồm những câu không phản ánh tính đúng hoặc sai một thực tế khách quan nào Những câu thuộc loại thứ nhất là chính những mệnh đề Vì vậy có thể nói: “Mệnh đề là một câu khẳng định có tính chất hoặc đúng hoặc sai”
Ví dụ 2.1:
9 Các câu sau đều không phải là mệnh đề
“Cuốn sách này giá bao nhiêu tiền?”
“Bao giờ lớp mình đi tham quan Đền Hùng?”
“Ôi! ngôi nhà mới đẹp làm sao!”
“Tất cả hãy anh dũng tiến lên!”
Nhận xét: nói chung những câu nghi vấn, câu cảm thán, câu mệnh lệnh đều không là mệnh
đề
Mệnh đề lôgic và mệnh đề mờ
Nếu như trong Lôgic toán, một mệnh đề chỉ có thể nhận một trong hai giá trị chân lí 0 hoặc 1 thì trong Trí tuệ nhân tạo người ta dùng lôgic mờ, mà ở đó giá trị chân lí của một
Trang 17mệnh đề là một số nằm giữa 0 và 1 Mệnh đề có giá trị chân lí 0 là sai, có giá trị chân lí 1
là đúng Còn giá trị chân lí nằm giữa 0 và 1 chỉ ra mức độ thay đổi của chân lí
2.2 Các phép toán lôgic cơ bản
Trong toán học, khi có hai số, người ta dùng các phép toán số học (cộng, trừ, nhân, chia, ) tác động vào chúng để nhận được những số mới Tương tự, khi có mệnh đề, người ta dùng các phép lôgic tác động vào chúng để nhận được những mệnh đề mới Dưới đây ta trình bày định nghĩa và các tính chất cơ bản của các phép toán này
đô của nước Pháp” Ở đây G(a) = 1 còn G( ) = 0
Nếu qua xác minh mệnh đề a đúng (hoặc sai) thì mệnh đề phủ định sẽ sai (hoặc đúng)
Chú ý: Mệnh đề phủ định a thường được diễn đạt là “không phải a”
Chú ý: Để thiết lập mệnh đề hội của hai mệnh đề a, b ta ghép hai mệnh đề đó bởi
liên từ “và” hay một liên từ khác cùng loại Những liên từ đó là: mà, nhưng, song, đồng thời, vẫn, cùng, hoặc dùng dấu phảy hoặc không dùng liên từ gì
Ví dụ 2.3 “Lúc 8 giờ sáng nay Hà có mặt ở Hà Nội và thành phố Hồ Chí Minh” là hội của
hai mệnh đề a = “Lúc 8 giờ sáng nay Hà có mặt ở Hà Nội”và b = “Lúc 8 giờ sáng nay Hà có
Trang 18là thủ đô” là hội của hai mệnh đề a = “Thành phố Hồ Chí Minh là thành phố lớn nhất trong
cả nước” và b = “Thành phố Hồ Chí Minh không phải là thủ đô” Rõ ràng là G(a) = 1 và G(b) = 1 nên G(a Λ b) = 1
“Số π lớn hơn 2 song nhỏ hơn 3”
“Chị Nga nói thạo tiếng Pháp mà không biết tiếng Anh”
“ABC là tam giác vuông cân” là hội của của hai mệnh đề a = “ABC là tam giác vuông” và b = “ABC là tam giác cân”
“Không những trời nắng to mà còn gió tây”
“Chồng cày, vợ cấy, con trâu đi bừa”
Chú ý: Đôi khi trong mệnh đề có liên từ “và” nhưng không có nghĩa của mệnh đề hội
Chẳng hạn: “Số lẻ và số chẵn là hai tập con rời nhau của tập số tự nhiên”; “Hùng đạt được tất
Phép tuyển trên còn được gọi là phép tuyển không loại trừ
Phép tuyển loại trừ của hai mệnh đề a và b, chỉ đúng khi hoặc a, hoặc b đúng ta thường
kí hiệu là a b
Chú ý: Để thiết lập mệnh đề tuyển của hai mệnh đề a, b ta ghép hai mệ nh đề đó bởi
liên từ “hoặc” (hay liên từ khác cùng loại)
Chú ý: Trong thực tế, liên từ “hoặc” thường được dùng với hai nghĩa “loại trừ” và
“không loại trừ”; Phép tuyển “hoặc a hoặc b” là phép tuyển loại trừ để chỉ a hoặc b nhưng không thể cả a lẫn b; Phép tuyển “a hoặc b” là phép tuyển không loại trừ để chỉ a hoặc b và
có thể cả a lẫn b
Chẳng hạn:
“Hôm nay là ngày Chủ nhật hoặc ngày lễ” là phép tuyển không loại trừ
Trang 19“20 là số lẻ hoặc nó chia hết cho 2” là phép tuyển loại trừ
“a là điều kiện đủ để có b”
“b là điều kiện cần (ắt có) để có a”
Ví dụ 2.6
“15 có chữ số tận cùng bằng 5 suy ra 15 chia hết cho 5” là mệnh đề đúng
“Nếu dây tóc bóng đèn có dòng điện chạy qua thì bóng đèn sáng” là mệnh đề đúng
Chú ý:
1 Trong lôgic, khi xét giá trị chân lí của mệnh đề a→b người ta không quan tâm đến mối quan hệ về nội dung của hai mệnh đề a, b Không phân biệt trường hợp a có phải là nguyên nhân để có b hay không, mà chỉ quan tâm đến tính đúng, sai của chúng
Ví dụ 2.7
“Nếu mặt trời quay quanh trái đất thì Việt Nam nằm ở Châu Âu” mệnh đề đúng Vì ở đây hai mệnh đề a = “mặt trời quay quanh trái đất”và b = “Việt Nam nằm ở Châu Âu” đều sai
“Nếu tháng 12 có 31 ngày thì mỗi năm có 13 tháng” là mệnh đề sai
2 Theo bảng chân lí trên, ta thấy:
Nếu a sai thì a →b luôn đúng
Nếu a đúng thì a →b đúng khi b đúng
Vì vậy để chứng minh mệnh đề a →b đúng ta chỉ cần xét trường hợp a và b cùng đúng và phép chứng minh mệnh đề a →b được tiến hành theo ba bước:
Trang 20Bước 3 Kết luận a →b luôn đúng
Trong mệnh đề a →b ta gọi a là giả thiết, b là kết luận
3 Nếu ta coi là mệnh đề thuận thì b→a là mệnh đề đảo,
4 Trong văn học, mệnh đề kéo theo còn được diễn đạt bằng nhiều hình thức phong phú Chẳng hạn:
“Bao giờ bánh đúc có xương
Bấy giờ dì ghẻ mới thương con chồng”
“a khi và chỉ khi b”
“a nếu và chỉ nếu b”
“a và b là hai mệnh đề tương đương”
“a là điều kiều kiện cần và đủ để có b”
2 Hai mệnh đề a, b tương đương với nhau hoàn toàn không có nghĩa là nội dung của chúng như nhau, mà nó chỉ nói lên rằng chúng có cùng giá trị chân lí (cùng đúng hoặc cùng sai)
“Hình vuông có một góc tù khi và chỉ khi 100 là số nguyên tố” là mệnh đề đúng
3 Một cách khác, người ta cũng nói rằng a tương đương b khi và chỉ khi cả hai mệnh
đề a→b và b→a cùng đúng Vì vậy để chứng minh mệnh đề a↔b ta chứng minh hai mệnh
đề a→b và b→a
Trang 214 Các cặp mệnh đề thuận và phản đảo, đảo và phản là những cặp mệnh đề tương đương Đây chính là cơ sở của phương pháp chứng minh gián tiếp trong toán học
2.3 Sự tương đương lôgic và luật
2.3.1 Giới thiệu
Trong phần trên ta đã xét năm phép toán trên các mệnh đề Như vậy, nếu có các mệnh đề a, b, c, khi dùng các phép toán lôgic tác động vào, chúng ta sẽ nhận được những mệnh đề ngày càng phức tạp hơn Mỗi mệnh đề như thế và cả những mệnh đề xuất phát ta gọi là công thức Hay nói cách khác:
Mỗi công thức được tạo thành từ những mệnh đề dưới tác dụng của các phép toán lôgic Như vậy ta gán cho mỗi mệnh đề có mặt trong công thức P một giá trị chân lí, dùng bảng chân lí của các phép lôgic ta khẳng định được công thức P là mệnh đề đúng hoặc sai Nếu P là mệnh đề đúng (hoặc sai) thì ta nói công thức P có giá trị chân lí bằng 1 (hoặc 0)
Ví dụ 2.9
(1) là công thức có giá trị chân lí bằng 1 (với mọi mệnh đề a)
Bảng giá trị chân lí của công thức (1)
Trang 22nhau, kí hiệu là P ≡ Q, nếu với mọi hệ chân lí gán cho các mệnh đề có mặt trong hai công thức đó thì chúng luôn nhận giá trị chân lí như nhau
Đặc biệt, hai mệnh đề a, b gọi là tương đương lôgic, kí hiệu là a ≡ b, nếu chúng cùng đúng hoặc cùng sai
Trang 23Dưới đây là một số đẳng thức thường gặp trong lôgic mệnh đề:
Biểu diễn phép kéo theo qua các phép lôgic khác
Biểu diễn tương đương qua các phép lôgic khác
Trang 25Bài 3 Logic vị từ (predicate logic)
3.1 Vị từ
3.1.1 Định nghĩa
Ta xét các ví dụ sau:
Ví dụ 3.1 “Số tự nhiên n chia hết cho 5”
Về phương diện ngôn ngữ thì đây là một câu Nhưng câu này chưa phản ánh tính đúng hoặc sai một thực tế khách quan nào, cho nên nó chưa phải là mệnh đề Song nếu ta thay n bằng số tự nhiên cụ thể, chẳng hạn:
Thay n = 100 ta được mệnh đề đúng: “Số 100 chia hết cho 5”
Thay n = 101 ta được mệnh đề sai: “Số 101 chia hết cho 5”
Ví dụ 3.3 “Ông A là nhà toán học vĩ đại”
Câu trên chưa phải là mệnh đề Nhưng nếu ta chọn”ông A” là”Gausơ”sẽ được mệnh đề đúng: “Gausơ là nhà toán học vĩ đại”, nếu ta chọn” ông A” là” Đinh Bộ Lĩnh”thì sẽ được mệnh đề sai: “Đinh Bộ Lĩnh là nhà toán học vĩ đại”
Từ các ví dụ trên ta đi đến định nghĩa sau:
Những câu có chứa các biến mà bản thân nó chưa phải là mệnh đề nhưng khi ta thay các biến đó bởi các phần tử thuộc tập xác định X thì nó trở thành mệnh đề (đúng hoặc sai) ta
sẽ gọi là hàm mệnh đề (hoặc vị từ, hàm phán đoán, mệnh đề không xác định, mệnh đề chứa biến) Tập X gọi là miền xác định của hàm mệnh đề đó
Ta dùng kí hiệu: T(n), F(x), để chỉ các vị từ
Chẳng hạn:
Vị từ T(n): “Số tự nhiên n chia hết cho 5”có miền xác định là tập các số tự nhiên
N Tập các số tự nhiên có tận cùng bằng 0 hoặc 5 là miền đúng của T(n)
Vị từ F(x) = “x + 3 > 7”có miền xác định là các số thực Tập các số thực lớn hơn
4 ta gọi là miền đúng của vị từ F(x)
3.1.1 Các phép toán vị từ
Phép phủ định
Trang 26(p)( x,y, ) (p(x,y, ))
Phép hội
Cho p(x,y, ) và q(x,y, ) là các vị từ theo các biến x, y, Phép hội của p và q kí hiệu là
p q là một vị từ mà khi thay các biến x, y, bởi các phần tử cụ thể a, b, tương ứng thì ta có mệnh đề p(x,y, ) q(x,y, )
(p q)(x,y, ) p(x,y, ) q(x,y, )
Phép tuyển
Cho p(x,y, ) và q(x,y, ) là các vị từ theo các biến x, y, Phép tuyển của p và q kí hiệu
là p q là một vị từ mà khi thay các biến x, y, bởi các phần tử cụ thể a, b, tương ứng thì ta
có mệnh đề p(x,y, ) q(x,y, )
(p q)(x,y, ) p(x,y, ) q(x,y, )
Phép kéo theo
Cho p(x,y, ) và q(x,y, ) là các vị từ theo các biến x, y, Phép p kéo theo q kí hiệu là
p q là một vị từ mà khi thay các biến x, y, bởi các phần tử cụ thể a, b, tương ứng thì ta
có mệnh đề p(x,y, ) q(x,y, )
(p q)(x,y, ) p(x,y, ) q(x,y, )
Phép tương đương
Cho p(x,y, ) và q(x,y, ) là các vị từ theo các biến x, y, Phép tương đương của p và q
kí hiệu là p q là một vị từ mà khi thay các biến x, y, bởi các phần tử cụ thể a, b, tương ứng thì ta có mệnh đề p(x,y, ) q(x,y, )
(p q)(x,y, ) p(x,y, ) q(x,y, )
3.2 Lượng từ
3.2.1 Mệnh đề tồn tại
Cho T(x) là hàm mệnh đề xác định trên miền X Nếu ta đặt thêm cụm từ “Tồn tại sao cho ” vào trước hàm mệnh đề T(x) ta được mệnh đề:
“Tồn tại sao cho T(x)”
Ta gọi mệnh đề có cấu trúc như trên là mệnh đề tồn tại Kí hiệu là:
Trang 27“Có nhiều người là nhà toán học”
2 Ta dùng kí hiệu với nghĩa “Tồn tại duy nhất một sao cho T(x)”
Trang 28“Người Việt Nam nào cũng nói thạo tiếng Anh”
“Đã là người Việt Nam thì ai chẳng nói thạo tiếng Anh”
3.2.3 Quy tắc phủ định mệnh đề có lượng từ
Phủ định các mệnh đề tồn tại và tổng quát được thiết lập theo hai quy tắc dưới đây:
Như vậy, hai mệnh đề:
P(x) sai với mọi giá trị của x Có một giá trị của x sao cho
P(x) đúng
Có một giá trị của x sao cho P(x) sai
P(x) đúng với mọi giá trị của x
Từ các quy tắc trên có thể nói quy tắc phủ định của mệnh đề có lượng từ như sau: Nếu trong một mệnh đề có lượng từ thì có thể thay thế lượng từ bởi lượng từ và ngược lại có thể thay thế lượng từ bởi lượng từ ; Biểu thức vị từ được thay thế bởi phủ định của
nó sẽ được mệnh đề phủ định của mệnh đề có lượng từ ban đầu, quy tắc này cũng có thể áp dụng cho các mệnh đề với nhiều lượng từ
Trang 29Ví dụ 3.7 Tìm phủ định của mệnh đề sau:
, , : ( , , )
Theo quy tắc chung ta có
3.2.4 Một số lượng từ hai biến
P(x,y) đúng với mọi cặp (x,y) Có một cặp (x,y) sao cho P(x,y)
Trang 303.3 Logic trong tìm kiếm trên mạng
Sử dụng kết hợp các toán tử logic như phép and sẽ thu hẹp kết quả tìm kiếm và cho kết quả chính xác hơn khi kết quả trả về quá nhiều Ngược lại, thay đổi toán tử logic khác như phép or hay phép trừ thì cho nhiều kết quả hơn, khi quá ít kết quả trả về
3.4 Logic trong lập trình
Đặt vấn đề: Bạn muốn đặt điều kiện là nếu 0<x<10 hay x=10 thì tăng x lên 1 đơn vị
if (0<x<10 OR x=10) x++;
Cách giải quyết: Bạn có thể viết lại câu lệnh như sau if (x>0 AND x < = 10) x++ ;
3.5 Logic trong đời sống
Ví dụ 3.8 Mẹ của bé An nói rằng: “Nếu con ngoan thì con có thể được ăn kem hoặc ăn
bánh bông lan” Bé An hiểu rằng nếu nó ngoan thì nó sẽ được ăn kem và ăn bánh bông lan Tuy nhiên, mẹ của bé An tức giận vì thật sự bà ta chỉ cho phép nó được ăn một trong hai thứ
mà thôi
Cách giải quyết là mẹ của bé An phải nói như thế này: “Nếu con ngoan thì con sẽ được
ăn hoặc là kem hoặc là bánh bông lan nhưng không được ăn cả hai”
Ví dụ 3.9 Sau khi nướng 1 chiếc bánh cho 2 đứa cháu trai và 2 đứa cháu gái đến thăm, Dì
Nellie lấy bánh ra khỏi lò nướng và để nguội Sau đó, cô rời khỏi nhà để đến đóng cửa hàng
ở gần đó Lúc trở về thì có ai đó đã ăn 1/4 chiếc bánh và thậm chí còn đặt lại cái dĩa dơ bên phần bánh còn lại Vì không còn ai đến nhà Dì ngày hôm đó trừ 4 đứa cháu nên Dì biết ngay là 1 trong 4 đứa đã ăn mà chưa được cho phép Dì Nellie bèn hỏi 4 đứa thì được các câu trả lời như sau:
- Charles: Kelly đã ăn phần bánh
- Dawn: Con không ăn bánh
- Kelly: Tyler ăn bánh
- Tyler: Con không ăn, Kelly nói chơi khi bảo rằng con ăn bánh
Nếu chỉ 1 trong 4 câu trả lời trên là đúng và chỉ 1 trong 4 đứa cháu là thủ phạm, hãy tìm
ra người mà Dì Nellie phải phạt?
Cách giải quyết: Vì chỉ 1 trong 4 câu trả lời trên là đúng nên chúng ta có thể dùng phép vét cạn để tìm lời giải
- Giả sử Charles nói đúng nghĩa là Kelly ăn bánh Ba câu còn lại là sai Dawn nói” Con không ăn bánh” là sai nghĩa là Dawn có ăn bánh Vậy có đến 2 người ăn bánh, điều này mâu thuẫn giả thiết, giả sử không được chấp thuận
- Giả sử Dawn nói đúng nghĩa là Dawn không ăn bánh và 3 câu còn lại là sai Nhận thấy có mâu thuẫn giữa Kelly và Tyler Bởi vì Kelly nói”Tyler ăn bánh” là sai nghĩa là Tyler không ăn Trong khi đó, Tyler lại nói rằng”Con không ăn ” là sai, vậy thực tế là nó có ăn Giả thuyết này là không chấp nhận được
Trang 31- Giả sử Kelly nói đúng nghĩa là Tyler ăn bánh và 3 câu còn lại là sai Như vậy, cũng có
2 thủ phạm là Kelly và Dawn Mâu thuẫn giả thiết
- Giả sử sau cùng là Tyler nói đúng nghĩa là nó không ăn bánh và 3 câu còn lại là sai Nhận thấy chỉ có một người ăn bánh chính là Dawn Vậy giả thuyết này là hợp lý và thủ phạm chính là Dawn
3.6 Logic trong tính toán
Ví dụ 3.10 Bạn có 3 lần kiểm tra trong lớp học Nếu bạn đạt được 2 lần điểm A, hoặc chỉ
một lần điểm A nhưng không được có một lần nào rớt trong 3 lần kiểm tra đó thì bạn sẽ đạt điểm A cho toàn khóa học Bạn là người không được siêng năng lắm, vậy thì bạn sẽ chọn cách nào để đạt điểm A cho toàn khóa học ?
Cách giải quyết: Bởi vì điều kiện là OR nên cách giải quyết là bạn có thể đạt 2 điểm A
và rớt lần 3, hay là chỉ cần đạt một điểm A và không rớt lần nào Bạn sẽ lựa chọn đạt một điểm
A và không rớt lần nào
3.7 Logic trong suy luận
Ví dụ 3.10 Tìm số tự nhiên a biết rằng trong 3 mệnh đề dưới đây có 2 mệnh đề là đúng và 1
mệnh đề là sai
1/ a + 51 là số chính phương
2/ Chữ số tận cùng của a là 1
3/ a - 38 là số chính phương
Cách giải quyết: Trước hết, chúng ta sẽ phải xác định xem 2 mệnh đề đúng và 1 mệnh
đề sai là mệnh đề nào? Sau đó từ 2 mệnh đề đúng để tìm ra số tự nhiên a
Số chính phương là số nguyên dương khi lấy căn bậc hai Do đó, số chính phương có các chữ số tận cùng là 0, 1, 4, 5, 6, 9
- Nhận thấy giữa mệnh đề 1 và 2 có mâu thuẫn Bởi vì, giả sử 2 mệnh đề này đồng thời là đúng thì a+51 có chữ số tận cùng là 2 nên không thể là số chính phương Vậy trong 2 mệnh đề này phải có 1 mệnh đề là đúng và 1 là sai
- Tương tự, nhận thấy giữa mệnh đề 2 và 3 cũng có mâu thuẫn Bởi vì, giả sử mệnh
đề này đồng thời là đúng thì a-38 có chữ số tận cùng là 3 nên không thể là số chính phương Vậy trong 3 mệnh đề trên thì mệnh đề 1 và 3 là đúng, còn mệnh đề 2 là sai Với x > 0 và
y > 0
Đặt:
a + 51 = x2
Trang 32x + y = 1 (loại vì x, y là nguyên dương nên không thể có x + y = 1)
x - y = 89 Hay là:
x + y = 89
x - y = 1 Giải hệ phuơng trình này ta được x = 45 và y = 44 Vậy a = 1974
Ví dụ 3.11 Tại Tiger Cup 98 có bốn đội lọt vào vòng bán kết: Việt Nam, Singapo, Thái Lan
và Inđônêxia Trước khi thi đấu vòng bán kết, ba bạn Dụng, Quang, Trung dự đoán như sau: Dụng: Singapo nhì, còn Thái Lan ba Quang: Việt Nam nhì, còn Thái Lan tư Trung: Singapo nhất và Inđônêxia nhì
Kết quả, mỗi bạn dự đoán đúng một đội và sai một đội Hỏi mỗi đội đã đạt giải mấy? Giải:
Kí hiệu các mệnh đề:
d1, d2 là hai dự đoán của Dụng
q1, q2 là hai dự đoán của Quang
t1, t2 là hai dự đoán của Trung
Vì Dụng có một dự đoán đúng và một dự đoán sai, nên có hai khả năng:
Nếu G(d1) = 1 thì G(t1) = 0 Suy ra G(t2) = 1 Điều này vô lí vì cả hai đội Singapo
và Inđônêxia đều đạt giải nhì
Nếu G(d1) = 0 thì G(d2) = 1 Suy ra G(q2) = 0 và G(q1) = 1 Suy ra
G(t2) = 0 và G(t1) = 1
Vậy Singapo nhất, Việt Nam nhì, Thái Lan ba còn Inđônêxia đạt giải tư
3.8 Logic trong giải bài toán trong kĩ thuật
Lôgic mệnh đề còn được ứng dụng trong kĩ thuật lắp ráp các mạch điện và thiết bị trong nhà máy Dưới đây là một ví dụ minh họa
Ví dụ 3.12 Giữa công tắc và dây may so của một chiếc Bàn là có rơle tự ngắt (để khi dây
may so nóng đến nhiệt độ quy định cho phép thì rơle tự ngắt mạch điện cho Bàn là được an toàn) Hãy thiết lập nguyên tắc lôgic của quá trình hoạt động của chiếc Bàn là đó (thiết lập mối liên hệ giữa việc đóng, ngắt mạch của công tắc, rơle với nhiệt độ cho phép của dây may so)
Giải:
Kí hiệu các mệnh đề:
c = “Công tắc Bàn là đóng mạch”
r = “Rơ le Bàn là đóng mạch”
t = “Dây may so trong Bàn là nóng tới nhiệt độ cho phép”
Mối liên hệ giữa trạng thái an toàn của Bàn là và giá trị chân lí của các mệnh đề c, r, t
có thể biểu diễn bởi bảng sau:
Trang 33Trạng thái c r t Trạng thái an toàn
Bàn là hoạt động an toàn khi và chỉ khi
Quy trình trên ta có thể phát biểu thành lời như sau: để Bàn là hoạt động an toàn phải đảm bảo nguyên tắc: “Công tắc rơle đóng mạch khi và chỉ khi nhiệt độ dây may so chưa tới hạn cho phép” hay “nhiệt độ dây may so tới hạn cho phép khi và chỉ khi công tắc rơle
Trang 34Bàn là đóng mạch” và mệnh đề “Dây may so trong Bàn là nóng tới nhiệt độ cho phép” ảnh hưởng tới trạng thái an toàn của bàn là
Trang 35Bài 4 Thảo luận Logic
4.1 Logic mệnh đề
4.1.1 Logic trong suy luận
Trong một phiên tòa xử án 3 bị can có liên quan đến vấn đề tài chánh để xét xem ai là người có tội? Trước tòa cả 3 bị cáo đều tuyên thệ khai đúng sự thật và lời khai như sau:
Anh A: Chị B có tội hoặc anh C vô tội
Chị B : Nếu anh A có tội thì anh C cũng có tội
Anh C: Tôi vô tội nhưng một trong hai người kia là có tội
4.1.2 Mạch logic số
Trang 64 (Discrete Mathematics with Application, Susana)
4.2 Logic vị từ
4.2.1 Logic trong suy luận
Ví dụ: Kiểm tra suy luận sau: Là người ai cũng phải chết; Ông A là 1 người; Vậy ông A phải chết
4.3 Logic mờ (*)
Được phát triển từ lý thuyết tập mờ để thực hiện lập luận một cách xấp xỉ thay vì lập luận chính xác theo lôgic vị từ cổ điển Lôgic mờ có thể được coi là mặt ứng dụng của lý thuyết tập mờ để xử lý các giá trị trong thế giới thực cho các bài toán phức tạp (Klir 1997)
Trang 36Bài 5 Một số phương pháp chứng minh
5.1 Giới thiệu
Suy luận được xem là một trong những nền tảng xây dựng nên các ngành khoa học tự nhiên Từ xưa đến nay, nhờ suy luận mà người ta có thể nhận thức được cái chưa biết từ những cái đã biết Suy luận còn là cơ sở của sự sáng tạo Từ các phán đoán, đưa đến các chứng minh để chấp nhận hay bác bỏ một vấn đề nào đó
Suy luận toán học dựa trên nền tảng của các phép toán mệnh đề, chủ yếu là phép kéo theo Để chứng minh một vấn đề nào đó, thông thường người ta phải xác định điểm ban đầu (có thể gọi là giả thiết) và điểm kết thúc (gọi là kết luận) Quá trình đi từ giả thiết đến kết luận gọi là quá trình chứng minh và quá trình này đươc thực thi bằng cách nào thì gọi đó là phương pháp chứng minh Một khẳng định mà chưa được chứng minh được gọi là phỏng đoán
Trong toán học, chứng minh là công việc đưa ra minh chứng thuyết phục (dựa vào những kiến thức chuẩn trong ngành học) một mệnh đề toán học là đúng cho mọi trường hợp, không trừ một trường hợp cụ thể nào Một mệnh đề đã được chứng minh thì gọi là các định lý và nó có thể được sử dụng để chứng minh cho các mệnh đề khác
5.1.1 Vai trò của chứng minh
Các phương pháp chứng minh là rất quan trọng vì không những chúng thường được sử dụng trong toán học mà còn được áp dụng nhiều trong tin học Ví dụ, sự kiểm tra tính đúng đắn của một chương trình, của một hệ điều hành, xây dựng các luật suy diễn trong lĩnh vực trí tuệ nhận tạo Do đó, chúng ta cần phải nắm vững các phương pháp chứng minh
• Trong toán học chứng minh là:
– Một luận cứ đúng đắn (dựa trên lập luận logic vững chắc) and và đầy đủ (rõ ràng và chi tiết) dựa trên những thiết lập không thể chối cái của các khẳng định toán học
• Tại sao luận cứ lại phải đúng đắn và đầy đủ lại?
– Đúng đắn sẽ tránh cho chúng ta những ngộ nhận từ chính chúng ta
– Đầy đủ cho phép bất kỳ ai cũng có thể kiểm định kết quả
• Trong modul này, một yêu cầu rất quan trọng là tính đúng đắn và đầy đủ cho bất kỳ một chứng minh nào!
• Các phương pháp chứng minh một luận cứ toán học có thể được công thức hóa thành các luật suy diến
• Các chứng minh toán học có thể được thể hiện hình thức như là chính các cấu trúc rời rạc
5.1.2 Một số thuật ngữ
Một hệ thống toán học bao gồm
Trang 37• Định lý (Theorem)
– Một mệnh đề được chứng minh là đúng
• Tiên đề, giả thiết (Axioms, hypotheses)
– Một giả định (không chứng minh) định nghĩa về các cấu trúc mà chúng ta dùng để lập luận
• Luật suy diễn (rules of inferences)
– Một hình thức dùng logic để lập luận từ những giả thiết để đi tới kết luận
• Bổ đề (Lemma) - Một định lý nhỏ được dùng như là một bước vững chắc để chứng minh định lý chính
• Hệ quả (Corollary) – Một định lý nhỏ được chứng minh một cách dễ dàng từ định lý chính
• Sự phỏng đoán (Conjecture) – Một khẳng định mà chưa được chứng minh
• Lý thuyết (Theory) – Bao gồm một tập các định lý đã được chứng minh từ một tập các tiên đề
Có hai kiểu chứng minh trong chứng minh toán học [3] Thứ nhất là chứng minh informal proof, ở đó những diễn tả bằng ngôn ngữ tự nhiên nhằm hướng mọi người tới sự thật của định lý Đây là kiểu chứng minh đặc trưng trong toán học Bởi vì dùng ngôn ngữ tự nhiên, nó phụ thuộc nhiều vào kiến thức nền tảng chứng minh của người đọc
Thứ hai là kiểu chứng minh hình thức (formal proof) Đó là việc sử dụng một chuỗi các
ký hiệu và những định nghĩa chính xác Chứng minh hình thức và tính chất của nó được nghiên cứu trong lý thuyết chứng minh Chứng minh hình thức không được phổ biến
5.2 Chứng minh nhờ luật suy diễn
5.2.1 Giới thiệu
Chúng ta sẽ giới thiệu luật suy diễn cho logic mệnh đề Những luật này cung cấp cho chúng ta một chuỗi các bước biến đổi để đi tới kết luận một cách logic nhờ tập các giả
Trang 38-
q
Modus ponens khẳng định rằng nếu cả giả thiết và phép kéo theo là đúng là đúng thì kết luận của phép kéo theo là đúng Giả sử”nếu sinh viên làm hết bài tập vê nhà, thì sinh viên sẽ đạt kết quả cao”và nếu giả sử có”sinh viên làm hết bài tập về nhà”, khi đó theo luật modus ponens, kết luận”sinh viên sẽ đạt kết quả cao” là đúng
Sau đây là một số luật suy diễn hay gặp:
1 Luật thay thế: Bất kỳ một biến nào xuất hiện trong một luận cứ đều có thể được thay thế bằng một biểu thức cùng kiểu mà không ảnh hưởng tới sự chính xác của luận điểm với điều kiện là sự thay thế đó phải được làm tại mọi nơi mà biến đó xuất hiện
2 Bảng sau đây đưa ra các luật suy diễn cho các luận điểm
Bảng5.1 Các luật suy diễn trong logic mệnh đề hay sử dụng
3 Bảng sau đây đưa ra các luật suy diễn cho các luận điểm cho các vị từ
Trang 395.2.2 Một số ví dụ
Ví dụ 5.1 a
Nếu trời mưa, thì đường ướt Về mặt hình thức, chúng ta có thể viết:
p → q: Nếu trời mưa, thì đường ướt
Trong biểu thức này, Nếu trời mưa là tiền đề, còn Đường ướt là hậu đề
Bây giờ, nếu chúng ta biết rõ một thực tế rằng trời mưa, thì chúng ta phải kết luận rằng đường ướt Nếu tiền đề (Trời mưa) đúng, thì hậu đề (Đường ướt) cũng cần phải đúng, theo Modus Ponens Chúng ta hãy viết các bước của mình về mặt hình thức:
p → q: Nếu trời mưa, thì đường ướt
B: Chúng ta có thể đi ra bãi biển
Ví dụ 5.2 Nếu được thưởng cuối năm An sẽ đi Đà Lạt Nếu An đi Đà Lạt An sẽ đến hồ Than Thở An chưa đến hồ Than thở, vậy An không được thưởng cuối năm
Trang 40Ví dụ 5.4
Tất cả sư tử đều hung dữ
Một số sư tử không uống cà phê
-
Một số sinh vật hung dữ không uống cà phê
Gọi P(x) là “x là sư tử”
Q(x) “x hung dữ”
R(x) “x không uống cà phê”
Trong đó x X, X là không gian tất cả sinh vật
Về mặt hình thức, chúng ta có thể viết:
x (P(x)=>Q(x)) “Tất cả sư tử đều hung dữ”
x (P(x) R(x)) “Một số sư tử không uống cà phê”
x (Q(x) R(x)) “Một số sinh vật hung dữ không uống cà phê”
Chúng ta hãy viết các bước của mình về mặt hình thức:
x (P(x)=>Q(x)) “Tất cả sư tử đều hung dữ”
x (P(x) R(x)) “Một số sư tử không uống cà phê”
-
x (Q(x) R(x)) “Một số sinh vật hung dữ không uống cà phê”
5.3 Các phương pháp chứng minh cho mệnh đề kéo theo
Bây giờ chúng ta sẽ làm rõ hơn về các phương pháp xây dựng chứng minh,chúng ta
sẽ mô tả các chứng minh cho các loại mệnh đề khác nhau
Trong nhiều định lý, kỹ thuật chứng minh các mệnh đề kiểu kéo theo là quan trọng Ta thấy p→q sẽ luôn đúng trừ khi p là đúng nhưng q sai Chú ý rằng khi p→q được chứng minh, nếu chúng ta chỉ cần chỉ ra q là đúng nếu p đúng;
5.3.1 Chứng minh trực tiếp
Ta thấy p→q sẽ được chứng minh bằng cách chỉ ra p là đúng, sau đó q phải là đúng Điều này cho thấy rằng không thể có p đúng và q sai cùng xảy ra Một chứng minh như vậy được gọi là chứng minh trực tiếp Để áp dụng chứng minh kiểu này, giả định p là đúng và dùng luật suy diễn cùng các định lý đã được chứng minh để chỉ ra rằng q phải là đúng Chứng minh trực tiếp là phương pháp chứng minh suy diễn trực tiếp dẫn từ giả thiết đến kết luận thông qua việc áp dụng các luật suy diễn (hay qui tắc suy diễn), các định lý, các nguyên lý và các kết quả đã biết Ðây là một kiểu tư duy giải bài toán rất tự nhiên và người ta thường xuyên sử dụng Trong khi suy nghĩ để tìm ra cách chứng minh theo phương pháp này người ta thường phải tự trả lời các câu hỏi sau đây:
- Ta sẽ dùng luật suy diễn nào?