Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
1,07 MB
Nội dung
Trang TRR & LTĐT (CĐCNTT Tp.HCM) MƠN TĨAN RỜI RẠC & LÝ THUYẾT ĐỒ THỊ (HỌC 30 TIẾT LÝ THUYẾT) Chương 1: Cơ sở logic Chương 2: Phép đếm Chương 3: Hàm Boole mạch tổ hợp Chương 4: Đại cương đồ thị Chương 5: Bài tóan đường Chương 6: Cây Tài liệu tham khảo Đỗ Văn Nhơn – Giáo trình Tóan rời rạc – ĐHQG TpHCM Kenneth HH Rosen – Tóan học rời rạc ứng dụng tin học (bản dịch tiếng Việt) – NXB Khoa học Kỹ thuật 1997 Nguyễn Đức Nghĩa – Lý thuyết đồ thị - NXB Giáo dục 1998 Năm học 2014 Trang TRR & LTĐT (CĐCNTT Tp.HCM) Chương Cơ sở Logic I LOGIC MỆNH ĐỀ 1.KHÁI NIỆM MỆNH ĐỀ VÀ CHÂN TRỊ • Mệnh đề tóan học phát biểu xác định rõ tính hay sai phát biểu • Tính hay sai gọi chân trị mệnh đề: o Đúng ký hiệu o Sai ký hiệu Ví dụ: Các phát biểu sau mệnh đề (toán học) a= “6 số nguyên tố.” (0) b= “5 số nguyên tố.” (1) c= “1 < 2” (1) Ví dụ: Các phát biểu sau khơng phải mệnh đề (tốn học) tính sai chúng khơng xác định a= “Ai đọc sách?” (một câu hỏi) b= “Cho x số nguyên dương.” c= “x + y >z” CÁC PHÉP TOÁN MỆNH ĐỀ A PHÉP PHỦ ĐỊNH Cho p mệnh đề, "Phép phủ định p" định nghĩa sau đây: • Kí hiệu tóan học là: ¬ p (hoặc ~p ) • Kí hiệu ngơn ngữ lập trình C là: !p • Trong tiếng Việt là: khơng p • Trong tiếng Anh là: not p • Bảng chân trị Ví dụ: Cho mệnh đề a= số nguyên tố (0) b= số nguyên tố (1) c= < (1) p ¬p 0 Trang TRR & LTĐT (CĐCNTT Tp.HCM) phủ định chúng ¬a= khơng số ngun tố (1) ¬b= khơng số nguyên tố (0) ¬c= ≥ (0) B PHÉP HỘI Cho p q hai mệnh đề “Phép hội p với q” định nghĩa sau đây: • Kí hiệu tóan học là: p Λ q • Kí hiệu ngơn ngữ lập trình C là: p && q • Trong tiếng Việt là: p q • Trong tiếng Anh là: p and q • Bảng chân trị p q pΛq 0 1 1 0 Ví dụ: Cho mệnh đề p = An học giỏi Tuấn học giỏi Thì p sai trường hợp • Cả An, Tuấn khơng học giỏi • Chỉ An học giỏi, Tuấn khơng học giỏi • Chỉ Tuấn học giỏi, An khơng học giỏi p trường hợp • Cả An, Tuấn học giỏi Ví dụ: Cho số thực a,b,c điều kiện để chúng độ dài cạnh tam giác sau Viết theo tiếng Việt (a=a+b)) printf(“3 số a,b,c không tạo tam giác”); D PHÉP KÉO THEO Cho p q hai mệnh đề “Phép p kéo theo q” định nghĩa sau đây: Trang TRR & LTĐT (CĐCNTT Tp.HCM) • • • • Kí hiệu tóan học là: p → q Trong tiếng Việt là: p kéo theo q (nếu p q) Trong tiếng Anh là: if p then q Bảng chân trị p q p→q 0 1 1 0 1 Ví dụ: Cho mệnh đề p = Nếu An chăm học An thi đậu Thì p trường hợp • An chăm học, An thi đậu (Cả giả thiết kết luận xẩy ra) • An không chăm học, An thi đậu (Giả thiết không xẩy ra, kết luận xẩy ra) • An khơng chăm học, An thi không đậu (Giả thiết không xẩy ra, kết luận không xẩy ra) p sai trường hợp • An chăm học, An thi không đậu (Giả thiết xẩy ra, kết luận không xẩy ra) E PHÉP KÉO THEO CHIỀU Cho p q hai mệnh đề Phép kéo theo chiều hay phép tương đương, đưa để mơ hình cho loại phát biểu điều kiện hai chiều có dạng : "p q" định nghĩa sau đây: • Kí hiệu tóan học là: p q • Trong tiếng Việt là: p q • Trong tiếng Anh là: if p then q and else • Bảng chân trị p q p q Trang TRR & LTĐT (CĐCNTT Tp.HCM) 0 1 1 0 Mệnh đề p q, đọc "p q", phát biểu dạng khác sau đây: • "p q" • "p điều kiện cần đủ cho q" Mệnh đề p q có chân trị (1) trường hợp p q có chân trị Ðộ ưu tiên phép tóan logic Tương tự phép toán số học, để tránh phải dùng nhiều dấu ngoặc biểu thức logic, ta đưa thứ tự ưu tiên việc tính tốn Ở ta có tốn tử logic:¬ (khơng) , ∧ (và), ∨ (hay), → (kéo theo), ↔ ( tương đương) có độ ưu tiên sau: • Ưu tiên 1: ¬ • Ưu tiên 2: ∧ , ∨ • Ưu tiên 3: →, ↔ Trong đó, tốn tử liệt kê dòng có độ ưu tiên Trường hợp biểu thức có dấu ngoặc làm ngoặc trước, có nhiều dấu ngoặc lồng làm từ ngòai Trường hợp phép tóan độ ưu tiên làm từ trái sang phải Ví dụ: ¬ p∨ q có nghĩa ((¬ p) ∨ q) ¬ p∨ q→ r ∧ s có nghĩa (((¬ p) ∨ q)→ (r ∧ s)) ¬ p∨ q∧ r có nghĩa (((¬ p)∨ q)∧ r) BIỂU THỨC LOGIC A.ÐỊNH NGHĨA • Có hai logic là: , • Các biến logic (hay biến mệnh đề) biến nhận trị 0, • Một biểu thức logic tập hợp logic, biến logic, phép toán logic, dấu ngoặc "( )" để rõ thứ tự thực phép tốn • Giả sử E, F biểu thức logic, ¬ E, E ∧ F, E ∨ F ,E → F, E ↔ F biểu thức logic Ví dụ: E(p,q,r) = (((¬ p) ∨ q)→ (r ∧ p)) biểu thức logic p, q, r biến logic (biến mệnh đề) Trang TRR & LTĐT (CĐCNTT Tp.HCM) B.BẢNG CHÂN TRỊ Bảng chân trị biểu thức logic: bảng tính tóan chân trị biểu thức logic đó, theo giá trị biến tham gia biểu thức Mỗi giá trị biến viết dòng bảng chân trị Với biến mệnh đề, ta có trường hợp (sai) (đúng) Với biến mệnh đề p, q ta có giá trị biến (p,q) giá trị (0,0), (0,1), (1,0), (1,1) Trong trường hợp tổng quát, với n biến mệnh đề ta có 2n giá trị cho n biến Cách lập bảng chân trị • Các cột bên trái, cột ứng với biến biểu thức Các cột bên phải, cột ứng với phép tóan biểu thức (thứ tự cột theo thứ tự thực phép tóan biểu thức) • Các dòng: dòng giá trị biến (ứng với cột bên trái chứa biến) kết tính tóan phép tóan (ứng với cột bên phải chứa phép tóan) Để viết giá trị biến dòng xác, ta làm sau: dòng viết (0,0,…,0), dòng tiếp sau dòng cộng (cộng nhị phân), dòng cuối (1,1, …,1) Cách cộng nhị phân: 0+0=0 0+1=1 1+0=1 1+1=0 (nhớ qua bên trái) Ví dụ: Bảng chân trị biểu thức logic p ∨ ( q ∧ r) theo biến mệnh đề p, q, r sau: p q r q∧ r p∨(q ∧ r) 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 Trang TRR & LTĐT (CĐCNTT Tp.HCM) C.SỰ TƯƠNG ĐƯƠNG LOGIC Hai biểu thức logic E F theo biến mệnh đề gọi tương đương logic E F ln ln có chân trị trường hợp chân trị biến mệnh đề Khi ta viết: E ⇔ F đọc "E tương đương với F" Như vậy, theo định nghĩa ta kiểm tra xem biểu thức logic có tương đương hay khơng cách lập bảng chân trị biểu thức logic Ví dụ: CMR p → q ⇔ ¬ p∨ q Ta CM cách lập bảng chân trị biểu thức logic p→ q ¬ p ∨ q sau: p q p→ q ¬ p ¬ p∨q 0 1 1 1 1 0 0 1 1 D.BIỂU THỨC HẰNG ĐÚNG, BIỂU THỨC HẰNG SAI Biểu thức logic E gọi chân trị E luôn (đúng) trường hợp chân trị biến mệnh đề biểu thức E Nói cách khác, E ta có: E ⇔1 Biểu thức logic E gọi sai chân trị E luôn (sai) trường hợp chân trị biến mệnh đề biểu thức E Nói cách khác, E sai ta có: E ⇔ Như vậy, ta kiểm tra xem biểu thức logic có phải (hằng sai) hay khơng cách lập bảng chân trị biểu thức logic Ví dụ: CMR bIểu thức p ∨ ¬ p p ¬p p∨¬p 1 Trang TRR & LTĐT (CĐCNTT Tp.HCM) Ví dụ: CMR biểu thức p ∧ ¬ p sai p ¬p p∧¬p 1 0 Lưu ý: Giả sử E F biểu thức logic Khi đó, E tương đương logic với F (tức ta có E ⇔ F) biểu thức logic E ↔ F (tức E ↔ F ⇔ 1) Nếu E ⇔ F F ⇔ G E ⇔ G 4.CÁC LUẬT LOGIC Các luật phép phủ định ¬ ¬ p ⇔ p (luật phủ định phủ định) ¬1⇔0 ¬0⇔1 Luật giao hoán p ∧q ⇔ q ∧p p ∨q ⇔ q ∨p Luật kết hợp p ∧ (q ∧ r) ⇔ (p ∧ q) ∧ r p ∨ (q ∨ r) ⇔ (p ∨ q) ∨ r Luật phân bố p ∧ (q ∨ r) ⇔ (p ∧ q) ∨ (p ∧ r) p ∨ (q ∧ r) ⇔ (p ∨ q) ∧ (p ∨ r) Luật De Morgan ¬ (p ∧ q) ⇔ ¬ p ∨ ¬ q ¬ (p ∨ q) ⇔ ¬ p ∧ ¬ q Luật phần tử bù p ∨¬ p ⇔ p ∧¬ p ⇔ Luật kéo theo p → q ⇔ ¬ p ∨q Luật tương đương p ↔ q ⇔ (p → q) ∧ (q → p) TRR & LTĐT (CĐCNTT Tp.HCM) Các luật đơn giản phép tuyển p ∨ p ⇔ p (tính lũy đẳng phép tuyển) p ∨ ⇔ (luật gọi luật thống trị) p ∨ ⇔ p (luật gọi luật trung hòa) p ∨ (p ∧ q) ⇔ p (luật gọi luật hấp thụ) Các luật đơn giản phép hội p ∧ p ⇔ p (tính lũy đẳng phép hội) p ∧ ⇔ p (luật gọi luật trung hòa) p ∧ ⇔ (luật gọi luật thống trị) p ∧ (p ∨ q) ⇔ p (luật gọi luật hấp thụ) Ví dụ 1: Chứng minh (p → q) ⇔ (¬ q → ¬ p) Ta có (p → q) ⇔ ¬ p ∨q ⇔ q ∨¬ p ⇔ ¬(¬ q) ∨ ¬ p ⇔ ¬ q →¬ p (luật kéo theo) (luật giao hoán) (luật phủ định) (luật kéo theo) Ví dụ 2: Chứng minh biểu thức ((p → q) ∧ p) → q Ta có ((p → q) ∧ p) → q ⇔ ¬ ((p → q) ∧ p) ∨ q (luật kéo theo) ⇔ (¬ (p → q) ∨ ¬ p) ∨ q (luật De Morgan) ⇔ ¬ (p → q) ∨ (¬ p ∨ q) (luật kết hợp) ⇔ ¬ (p → q) ∨ (p → q) (luật kéo theo) ⇔1 (luật phần tử bù) Vậy biểu thức ((p → q) ∧ p) → q Ví dụ 3: Chứng minh biểu thức p ∧q → p Ta có p ∧q → p ⇔ ¬ ( p ∧ q) ∨ p ⇔ (¬ p ∨ ¬ q) ∨ p (luật kéo theo) (luật De Morgan) Trang 10 Trang TRR & LTĐT (CĐCNTT Tp.HCM) 51 Deg+(v)=deg- (v), ∀ v ∈ V II ĐƯỜNG ĐI VÀ CHU TRÌNH HAMILTON Trong mục xét toán tương tự mục trước khác ta quan tâm đến đường qua tất đỉnh đồ thị, đỉnh lần Sự thay đổi tưởng chừng không đáng kể thực tế dẫn đến phức tạp hoá vấn đề cần giải Định nghĩa Đường qua tất đỉnh đồ thị đỉnh lần gọi đường Hamilton Chu trình đỉnh v qua tất đỉnh lại đỉnh lần quay trở v gọi chu trình Hamilton Đồ thị G gọi đồ thị Hamilton chứa chu trình Hamilton gọi đồ thị Hamilton có đường Hamilton Rõ ràng đồ thị Hamilton nửa Hamilton, điều ngược lại khơng Thí dụ Trong hình 4: G3 Hamilton, G2 nửa Hamilton G1 khơng nửa Hamilton Hình Đồ thị Hamilton G3, nửa Hamilton G2 , G1 Cho đến việc tìm tiêu chuẩn nhận biết đồ thị Hamilton mở, vấn đề trung tâm lý thuyết đồ thị Hơn nứa, chưa có thuật tốn hiệu để kiểm tra đồ thị có Hamilton hay không Các kết thu phần lớn điều kiện đủ để đồ thị đồ thị Hamilton Phần lớn chúng điều có dạng "nếu G có số cạnh đủ lớn G Hamilton" Một kết phát biểu định lý sau Định lý (Dirak) Đơn đồ thị vô hướng G với n>2 đỉnh, đỉnh có bậc khơng nhỏ n/2 đồ thị Hamilton Định lý sau tổng quát hoá định lý Dirak cho đồ thị có hướng: Trang TRR & LTĐT (CĐCNTT Tp.HCM) 52 Định lý Giả sử G đồ có hướng liên thông với n đỉnh Nếu deg+ (v)≥n/2, deg – (v) ≥ n/2, ∀ v G Hamilton III.BÀI TỐN ĐƯỜNG ĐI TỐT NHẤT Trong ứng dụng thực tế, tốn tìm đường ngắn hai đỉnh đồ thị liên thơng có ý nghĩa to lớn Có thể dẫn tốn nhiều tốn thực tế quan trọng Ví dụ, tốn chọn hành trình tiết kiệm (theo tiêu chuẩn khoảng cách thời gian chi phí) mạng giao thông đường bộ, đường thủy đường khơng; tốn chọn phương pháp tiết kiệm để đưa hệ thống động lực từ trạng thái xuất phát đến trạng trạng thái đích, tốn lập lịch thi cơng cơng cơng đoạn cơng trình thi cơng lớn, tốn lựa chọn đường truyền tin với chi phí nhỏ mạng thơng tin, v.v… Hiện có nhiều phương pháp để giải toán Thế nhưng, thơng thường, thuật tốn xây dựng dựa sở lý thuyết đồ thị tỏ thuật tốn có hiệu cao Trong phần xét số thuật toán KHÁI NIỆM Trong phần xét đồ thị G =(V,E) có trọng số dương, nghĩa là, cạnh (u,v) ∈ E đặt tương ứng với số thực dương a[u,v] gọi trọng số Chúng ta đặt a[u,v] = ∞ , khơng có cạnh (u,v) Nếu dãy tổng sau v0, v1, , vplà đường G, độ dài định nghĩa p ∑a[vi-1, vi] i=1 tức là, độ dài đường tổng trọng số cung (Chú ý gán trọng số cho tất cung 1, ta thu định nghĩa độ dài đường số cung đường phải qua) ĐƯỜNG ĐI NGẮN NHẤT XUẤT PHÁT TỪ MỘT ĐỈNH - THUẬT TỐN DIJKSTRA Thuật tốn Dijkstra tìm đường tốt xuất phát từ đỉnh s đến đỉnh v lại đồ thị G=(V,E), có ma trận trọng số với a[u,v] trọng số cạnh (u,v) Việc tìm đường tốt có hai vấn đề: • Tìm độ dài tốt đường TRR & LTĐT (CĐCNTT Tp.HCM) Trang 53 • Tìm lộ trình đường Ta dùng hai mảng để giải hai vấn đề • Mảng d[v] để lưu trữ độ dài đường từ s đến v • Mảng p[v] để lưu trữ đỉnh kế trước đỉnh v đường tốt từ s đến v (mảng sở để xác định lộ trình tốt từ s đến v) Bước khởi đầu: Với đỉnh v ∈ V, ta tạm xem đường từ s đến v trực tiếp (tức không qua đỉnh trung gian nào) Các việc bước khởi đầu gồm: • Đặt d[v] = a[s,v] • Đặt p[v] = s • Đánh dấu tìm đường tốt cho đỉnh xuất phát s Bước lặp: Mỗi bước lặp tìm đường tốt từ đỉnh s đến đỉnh v (bước lặp kết thúc tìm đường tốt tới đỉnh) Các công việc bước lặp gồm: • Tìm đỉnh vmin đỉnh có d[vmin] nhỏ đỉnh chưa đánh dấu tìm đường tốt • Đánh dấu tìm đường tốt cho đỉnh vmin • Với đỉnh v chưa đánh dấu tìm đường tốt nhất, kề với v , thực hiện: Nếu d[v] > d[vmin] + a[vmin,v] o d[v]= d[vmin] + a[vmin,v] o p[v] = vmin Chú í: kết thúc thuật tóan với đỉnh v ∈ V Độ dài đường tốt từ s đến v là: d[v] Lộ trình từ s đế v xác định sau: v