Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,14 MB
Nội dung
TOÁNRỜIRẠC CHƯƠNG I MỘT SỐ KIÉN THỨC CƠ BẢN 1.1 Logic mệnh đề 1.2 Logic vị từ 1.3 Lý thuyết tập hợp 1.4 Thuật toán độ phức tạp 1.5 Bài tập PGS NCVC TS LÊ HUY THẬP PGS.,TS Le Huy Thap 1.1 LOGIC MỆNH ĐỀ 1.1.1 Khái niệm a Định nghĩa Mệnh đề logic phát biểu để diễn tả ý tưởng trọn vẹn khẳng định cách khách quan phát biểu sai (không thể vừa lại vừa sai, hay mang tính chất mập mờ) Giá trị trị hay sai mệnh đề gọi chân trị mệnh đề Chân trị mệnh đề thường kí hiệu T True, chân trị sai kí hiệu F False Ví dụ “2 số chẵn” mệnh đề nên cho chân trị T “2 không số nguyên tố” mệnh đề sai nên cho chân trị F “Ra đi” mệnh đề nên chân trị “x + ay = z” mệnh đề nên chân trị b Cú pháp Là quy tắc dùng đối tượng phép kết nối logic để tạo biểu thức logic chuẩn (theo nghìa đó) c Ngữ nghĩa Là ý nghĩa biểu thức logic Có thể dùng phương pháp: quy nạp, đệ quy, suy luận, quy tắc, lược đồ chứng minh, để biểu thức logic cho trước chuẩn hay không chuẩn cho biết chân trị biểu thức PGS.,TS Le Huy Thap 1.1.2 Các loại mệnh đề phép toán mệnh đề Hai loại mệnh đề : mệnh đề sơ cấp (elementary) mệnh đề phức tạp (compound) a Mệnh đề sơ cấp Mệnh đề sơ cấp hay gọi mệnh đề đơn giản, nguyên tử (atom)-không thể chia nhỏ Chẳng hạn “2 số nguyên tố” b Mệnh đề phức hợp Mệnh đề phức hợp mệnh đề tạo từ nhiều mệnh đề khác cách sử dụng phép toán logic mệnh đề Ví dụ: “15 MOD = 0” AND “3 số nguyên tố”, mệnh đề phức hợp Biến mệnh đề hay ký hiệu mệnh đề Để máy tính hiểu được, dùng kí hiệu cho mệnh đề đơn giản, gọi biến mệnh đề, biến mệnh đề thường dùng chữ thường Ví dụ p = “2 số chẵn” q = “2 số nguyên tố” PGS.,TS Le Huy Thap Các phép toán mệnh đề NOT (Phép phủ định) AND (Phép hội - Conjunction) OR (Phép tuyển - Disjunction) () If…Then… (Phép điều kiện hay kéo theo hay suy ra) () If … AND Only If … (Cần đủ, kéo theo hai chiều hay tương đương) () XOR (Tổng trực giao) () nhóm ưu tiên biểu thức logic c Bảng chân trị phép toán mệnh đề (Bảng 1.1-1) Chú ý : Một biểu thức logic có m biến có 2m giá trị PGS.,TS Le Huy Thap Các phép toán cấp bít ứng dụng ngôn ngữ LT A 13 = 1101 B not A A and B A or B A xor B Đổi bit thành bit ngược lại Cho bit vị trí ngược lại bit Cho bit vị trí ngược lại bit Cho bit vị trí ngược lại bit 2= 0010 = 1000 13 = 1101 = 0101 8= 1000 Mức ưu tiên phép toán logic Thứ tự ưu tiên phép toán logic liệt kê theo mức yếu dần từ trái sang phải xuống bảng sau Ký hiệu phép toán Nghĩa phép toán , , Not Phủ định , And, or, xor Hội, tuyển , PGS.,TS Le Huy Thap Kéo theo, tương đương 1.1.3 Biểu thức logic Biểu thức logic mệnh đề phức hợp, biểu thức logic thường ký hiệu chữ in to kết hợp của: Các mệnh đề hay giá trị Các biến mệnh đề biểu thức logic Các phép toán logic dấu ( ) Ví dụ: Cho p, q, r biến mệnh đề logic, F, G, H biểu thức logic Khi đó: E = (p ( q r) ) (r s), P = E, F G, (G H) (G E) Là biểu thức logic Biểu thức đúng: Nếu biểu thức logic E với giá trị biến thành phần ta gọi E biểu thức (còn gọi khả thỏa) PGS.,TS Le Huy Thap Biểu thức sai: Nếu biểu thức logic E sai với giá trị biến thành phần ta gọi E biểu thức sai (hay mâu thuẫn) Ví dụ E = pp đúng, F = pp sai hay mâu thuẫn Biểu thức hội (hay hội sơ cấp): Cho biến mệnh đề Biểu thức logic Ek = p1p2 … pk gọi biểu thức hội sơ cấp Biểu thức tuyển (hay tuyển sơ cấp): Cho biến mệnh đề Biểu thức logic Ek = p1p2 … pk gọi biểu thức tuyển sơ cấp Biểu thức chuẩn hội: Biểu thức logic F = E1 E2 … Em Ei biểu thức logic tuyển bản, gọi biểu thức chuẩn hội (hay gọi hội tắc) Biểu thức chuẩn tuyển: Biểu thức logic F = E1 E2 … Em Ei biểu thức logic hội bản, gọi biểu thức chuẩn tuyển (hay gọi tuyển tắc) Biểu thức vững Một biểu thức vững với giá trị chân lý mệnh đề thành phần PGS.,TS Le Huy Thap Các biểu thức logic tương đương Hai biểu thức logic E F gọi tương đương với viết E F E F có chân trị Để kiểm tra xem biểu thức logic có tương đương với hay không ta nên lập bảng chân trị cho biểu thức đó, dựa vào kết qủa để rút kết luận Hoặc chứng minh biểu thức biến đổi để biểu thức ngược lại Ví dụ: Kiểm tra xem biểu thức logic E = p q có tương đương với F = p q ta nên lập bảng chân trị sau: p q pq p pq 0 1 1 1 1 0 0 1 1 Vậy: p q p q PGS.,TS Le Huy Thap Tương đương nhiều biểu thức Xem xét ba mệnh đề P, Q R Để chứng minh mối quan hệ tương đương P Q R, cần chứng minh P Q, Q R R P Ta tổng quát hóa n mệnh đề P1, P2… Pn Để chứng minh mối quan hệ tương đương P1 P2 … Pn, cần chứng minh quan hệ kéo theo: P1 P2, P2 P3… Pn-1 Pn Pn P1 Cách chứng minh gọi chứng minh vòng Các quy tắc thay quy tắc bất biến - Quy tắc thay tương đương Cho E biểu thức logic, thay biểu thức biểu thức tương đương với biểu thức đó, biểu thức logic E’ nhận tương đương với E - Quy tắc bất biến biểu thức logic đúng/sai Cho E biểu thức / sai, thay biến mệnh đề p E biểu thức logic ta nhận biểu thức logic E’ / sai PGS.,TS Le Huy Thap Vững Một mệnh đề vững với giá trị chân lý mệnh đề thành phần Các luật tương đương logic hay dùng PGS.,TS Le Huy Thap 10 1.3.11 Tổ hợp PGS.,TS Le Huy Thap 34 BÀI TẬP Bài Cho tập A, B, C chứng minh công thức sau đây: (A-B)- C = (A-C)-(B-C) (B-A)(C-A) = (BC)-A (AB)(AB) = A (ABC)= (ABC) (ABC) (AB) (A-B)-C (A-C) (A-C)(C-B) = (B-A)(C-A) = (BC)-A A-B = AB 10 (AB)(AB) = A PGS.,TS Le Huy Thap 35 BÀI TẬP X = Tập học sinh khoa, R quan hệ lớp X = {1, 2, 3, 5}, cho R(X) = {(1, 2), (1, 3) , (2,5)} có phải quan hệ Chỉ rằng: X tập học sinh khoa CNTT quan hệ sau quan hệ tương đương: Cùng lớp, quê quán, Ta nói a, b X có quan hệ với ký hiệu a b a b lớp, quê quán, Xét tập số nguyên Zm = {1, 2, , m}, m > ta nói quan hệ i, j có mod k, i X , k < m quạ hệ tương đương Ta nói a, b X có quan hệ với ký hiệu a b a b có số dư chia cho k Quan hệ bạn bè không tạo quan hệ tương đương Một đoàn vận động viên tham gia hai môn bắn súng bơi Nam có 10 người, số vận động viên thi bắn súng (cả nam nữ) 14 Số vân động viên nữ thi bơi số vận động viên nam thi bắn súng Hỏi đoàn có người PGS.,TS Le Huy Thap 36 BÀI TẬP Giải Đoàn = lớp NAM NU |NAM| = |NAM(Bắn súng)| + |NAM(Bơi)| = 10 |NU| = |NU(Bắn súng)| + |NU(Bơi)| |NAM(Bắn súng)| + |NU(Bắn súng)| = 14 Do |NU(Bơi)| = |NAM(Bắn súng)| Theo nguyên lý cộng ta có tổng số vận động viên |NU| = |NU(Bơi)| + |NU(Bắn súng)| = 14 |NAM| + |NU| = 10 + 14 = 24 Có 60 thí sinh, tham gia thi ba môn ngoại ngữ: Anh, Pháp, Nhật Trong đó: 30 thí sinh thi tiếng Anh 16 thí sinh thi tiếng Pháp 12 thí sinh thi tiếng Nhật Đặc biệt có thí sinh thi ngoại ngữ Hỏi có thí sinh không thi ngoại ngữ nào? PGS.,TS Le Huy Thap 37 BÀI TẬP Hãy tìm số đơn ánh từ k-tập X vào n-tập Y Giải Hãy biểu diễn hàm k thành phần, thành phần thứ i Y ảnh thành phần thứ i n tạp B (1 i k) Với ý ảnh không lặp lại Vậy số đơn ánh là chỉnh hợp không lặp k chập n, tức là: n(n1)…(n-k+1) học sinh xếp hàng chụp ảnh có cách Giải Có 4! = 24 cách xếp hàng khác Số cách bố trí thực có thứ tự chương trình máy tính 6! = 720 cách PGS.,TS Le Huy Thap 38 1.4 THUẬT TOÁN VÀ ĐỘ PHỨC TẠP 1.4.1 Định nghĩa thuật toán cách biểu diễn thuật toán Định nghĩa thuật toán Thuật toán tập hợp quy tắc dùng để giải lớp toán mà dựa vào với liệu ban đầu cho, sau số hữu hạn thao tác dẫn đến kết luân xác định Khái niệm thuật toán nhà bác học Ả rập tên Kharezmi nêu vào cuối kỷ đầu kỷ đưa quy tắc phép tính số học Cách biểu diễn thuật toán Thuật toán biểu diễn (mô tả) ngôn ngữ quy ước như: ngôn ngữ nhiên, giả mã hay lưu đồ, giới thiệu ví dụ để minh họa cách biểu diễn thuật toán PGS.,TS Le Huy Thap 39 Ví dụ Hãy biểu diễn thuật toán tìm số cực đại - dãy số x1, x2, …, xn 1/ Dùng ngôn ngữ tự nhiên Bước 1: Đặt số cực đại tạm thời số dãy: Max = x1 Tiếp bước sau Bước 2: So sánh số cực đại với số tiếp, số cực đại nhỏ thay số cực đại số tiếp Tiếp bước sau Bước 3: Nếu số tiếp chưa phải số cuối lên bước 2, ngược lại tiếp bước sau Bước 4: In số cực đại kết thúc 2/ Dùng giả mã Algorithm So_Max Input: Danh sách X Output: Max Max = X[1] For i = To n If Max < X[i] Then Max = X[i] EndIf EndFor Print Max PGS.,TS Le Huy Thap 40 3/ Dùng lưu đồ PGS.,TS Le Huy Thap 41 Các tính chất thuật toán Với thuật toán phải đảm bảo tính chất sau đây: 1/ Giá trị đầu: Các thuật toán phải có giá trị đầu 2/ Kết qủa cuối cùng: Thuật toán phải đưa giá trị cuối (kết qủa) thiết bị 3/ Tính xác định: Mỗi bước thuật toán phải rõ ràng xác có kết luận cụ thể 4/ Tính hữu hạn: Thuật toán phải có kết luận sau số hữu hạn bước 5/ Tính hiệu qủa: Phải có kết qủa cụ thể xác với thời gian ngắn 6/ Tính tổng quát: Phải áp dụng dược cho lớp toán dạng 7/ Tính đúng: Phải có kết qủa mong muốn PGS.,TS Le Huy Thap 42 1.4.2 Độ phức tạp thuật toán 1.4.2.1 Khái niệm độ phức tạp thuật toán Thước đo hiệu thuật toán thời gian mà máy tính sử dụng để giải toán theo thuật toán xét, giá trị đầu vào có kích thước xác định Một thước đo thứ hai dung lượng nhớ (không gian) đòi hỏi để thực thuật toán giá trị đầu vào có kích thước xác định Chúng ta mô tả độ phức tạp thuật toán theo cấu trúc liệu để thay cho xem xét độ phức tạp thuật toán theo thời gian 1.4.2.2 Định nghĩa độ phức tạp thuật toán Một toán thường có nhiều cách giải, có nhiều thuật toán để giải, thuật toán có độ phức tạp khác Ví dụ: Tính giá trị đa thức P(x) = (anxn+an-1xn-1+ +a1x+a0)|x = x0 Thuật toán 1: sum:=a0 for i:=1 to n sum := sum + aix0i {sum giá trị đa thức P(x) x0} PGS.,TS Le Huy Thap 43 Thuật toán bước 2, phải thực phép nhân phép cộng với i=1; phép nhân phép cộng với i=2, , n phép nhân phép cộng với i=n Vậy số phép tính (nhân cộng) mà thuật toán đòi hỏi là: (1+1)+(2+1)+ +(n+1) = n(n+3)/2 Thuật toán 2: {Viết đa thức P(x) dạng: P(x)=( ((anx+an-1)x+an-2)x )x + a0 Ta tính P(x) theo thuật toán sau} P:=an for i:=1 to n P:=P.x0+an-i {P giá trị đa thức P(x) x0} Đối với thuật toán 2, bước phải thực n lần, lần đòi hỏi phép tính (nhân cộng), số phép tính (nhân cộng) mà thuật toán đòi hỏi 2n Rõ ràng thời gian thực thuật toán so với thời gian thực thuật toán Hàm f2(n) = 2n hàm bậc nhất, tăng chậm nhiều so với hàm bậc hai f1(n) = Ta nói thuật toán có độ phức tạp tuyến tính hữu hiệu (hay nhanh hơn) so với thuật toán có độ phức tạp hàm bậc PGS.,TS Le Huy Thap 44 Định nghĩa Ta nói hàm f(n) có cấp thấp hay hàm g(n) tồn số C > số tự nhiên n0 cho |f(n)| C|g(n)| với n n0 Ta viết f(n) = O(g(n)) nói f(n) thoả mãn quan hệ big-O g(n) Theo định nghĩa này, hàm g(n) hàm đơn giản được, đại diện cho “sự biến thiên” f(n) Khái niệm big-O dùng toán học gần kỷ Trong tin học, sử dụng rộng rãi để phân tích thuật toán Người đưa khái niệm big-O vào năm 1892 nhà toán học người Đức Paul Bachmann Định nghĩa Nếu thực thuật toán mà số bước cần sử dụng hàm f(n), n số tự nhiên ta nói thuật toán có độ phức tạp f(n) Định nghĩa Nếu thuật toán có độ phức tạp f(n) với f(n) = O(g(n)) ta nói thuật toán có độ phức tạp O(g(n)) Nếu có hai thuật toán giải toán, thuật toán có độ phức tạp O(g1(n)), thuật toán có độ phức tạp O(g2(n)), mà g1(n) có cấp thấp g2(n), ta nói thuật toán hữu hiệu (hay nhanh hơn) thuật toán PGS.,TS Le Huy Thap 45 PGS.,TS Le Huy Thap 46 BÀI TẬP Tìm độ phức tạp tính toán thuật toán xếp bọt (bubble sort) function bubble_sort(List L, number n) // n chiều dài L for i from n downto for j from to (i - 1) if L[j] > L[j + 1] then //nếu chúng không thứ tự swap(L[j], L[j + 1]) //đổi chỗ chúng cho end if end for end for end function PGS.,TS Le Huy Thap 47 Tìm độ phức tạp tính toán thuật toán tìm kiếm nhị phân danh sách xếp function binary_search(A, x, L, R) if L > R then return Fail else i ← (L + R)/2 if A[i] == x then return i else if A[i] > x then return binary_search(A, x, L, i − 1) else return binary_search(A, x, i+1, R) end if end if end if end function PGS.,TS Le Huy Thap 48 ... = 0101 8= 1000 Mức ưu tiên phép toán logic Thứ tự ưu tiên phép toán logic liệt kê theo mức yếu dần từ trái sang phải xuống bảng sau Ký hiệu phép toán Nghĩa phép toán , , Not Phủ định ,... tiên biểu thức logic c Bảng chân trị phép toán mệnh đề (Bảng 1.1-1) Chú ý : Một biểu thức logic có m biến có 2m giá trị PGS.,TS Le Huy Thap Các phép toán cấp bít ứng dụng ngôn ngữ LT A 13 = 1101... thường dùng chữ thường Ví dụ p = “2 số chẵn” q = “2 số nguyên tố” PGS.,TS Le Huy Thap Các phép toán mệnh đề NOT (Phép phủ định) AND (Phép hội - Conjunction) OR (Phép tuyển - Disjunction)