Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 85 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
85
Dung lượng
1,86 MB
Nội dung
Trang TRR & LTĐT NỘI DUNG HỌC 60 TIẾT LÝ THUYẾT Chương 1: Cơ sở logic (8T) 1.1 Logic mệnh đề 1.2 Logic vị từ & lượng từ Chương 2: Phép đếm (8T) 2.1 Tập hợp Ánh xạ 2.2 Các nguyên lý đếm Giải tích tổ hợp (4t) 15 Chương 3: Quan hệ (8T) 3.1 Quan hệ Quan hệ tương đương 3.2 Quan hệ thứ tự, biểu đồ Hasse 37 Chương 4: Đại số Boole (12T) 4.1 Đại số Boole: Định nghĩa, tính chất 4.2 Hàm Boole Bài tóan mạch điện, mạng cổng 4.3 Cơng thức đa thức tối tiểu hàm Boole: phương pháp Karnaugh 48 Chương 5: Đại cương đồ thị (8T) 5.1 Định nghĩa, phân lọai, khái niệm đồ thị 5.2 Đường đi, chu trình, đồ thị liên thơng 5.3 Các dạng đồ thị đặc biệt 5.4 Biểu diễn đồ thị ma trận 59 Chương 6: Bài tóan đường (8T) 6.1 Đồ thị Euler, đồ thị Hamilton 6.2 Bài tóan đường tốt nhất, thuật tóan tìm đường tốt 74 Chương 7: Cây (8T) 7.1 Định nghĩa, phương pháp duyệt cây, ứng dụng 7.2 Cây khung đồ thị, thuật tóan tìm khung nhỏ 81 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 Trang TRR & LTĐT Chương Cơ sở Logic I LOGIC MỆNH ĐỀ 1.KHÁI NIỆM MỆNH ĐỀ VÀ CHÂN TRỊ Các đối tượng mà khảo sát phát biểu hay mệnh đề Tuy nhiên chương nầy ta xét đến mệnh đề toán học, nói vắn tắt mệnh đề tốn học mệnh đề Ðó phát biểu để diễn đạt ý tưởng trọn vẹn ta khẳng định cách khách quan sai Tính chất cốt yếu mệnh đề sai, khơng thể vừa vừa sai Giá trị sai mệnh đề gọi chân trị mệnh đề Về mặt ký hiệu, ta thường dùng mẫu tự (như p, q, r, ) để ký hiệu cho mệnh đề, chúng dùng để ký hiệu cho biến logic, tức biến lấy giá trị sai Chân trị "đúng" thường viết 1, chân trị "sai" viết Ví dụ: Các phát biểu sau mệnh đề (toán học) a= số nguyên tố (0) b= số nguyên tố (1) c= < (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 Trong việc khảo sát mệnh đề, người ta phân làm hai loại: mệnh đề sơ cấp (elementary), mệnh đề phức hợp (compound) Mệnh đề sơ cấp "nguyên tử" theo nghĩa khơng thể phân tích thành hay nhiều (từ hai trở lên) mệnh đề thành phần đơn giản Còn mệnh đề phức hợp mệnh đề tạo thành từ hay nhiều mệnh đề khác cách sử dụng liên kết logic từ "không" dùng việc phủ định mệnh đề, từ nối: "và", "hay", "hoặc", "suy ra", v.v Ví dụ: Xét mệnh đề sau p = "15 chia hết cho 3" q = "2 số nguyên tố số lẻ" Ta có p mệnh đề sơ cấp Nhưng q mệnh đề phức hợp, mệnh đề q tạo thành từ hai mệnh đề "2 số nguyên tố" "2 số lẻ" nhờ vào liên kết logic "và" CÁC PHÉP TOÁN MỆNH ĐỀ Ðiều mà quan tâm khơng phải xác định tính sai mệnh đề sơ cấp Bởi mệnh đề nầy thường phát biểu nói lên ý tưởng phạm vi chun mơn định Vấn đề mà ta quan tâm làm để tính tốn chân trị mệnh đề phức hợp theo mệnh đề sơ cấp cấu thành mệnh đề phức hợp nhờ vào phép toán logic Các phép toán logic ký hiệu dùng thay cho từ liên kết logic "không", "và", "hay", "hoặc", "suy ra" hay "nếu ", "nếu nếu" Các phép toán logic định nghĩa bảng chân trị (truth table) Bảng chân trị rõ ràng chân trị mệnh đề phức hợp theo trường hợp chân trị mệnh đề sơ cấp tạo thành mệnh đề phức hợp Bảng chân trị phép toán logic tất nhiên phản ánh ngữ nghĩa tự Trang TRR & LTĐT nhiên từ liên kết tương ứng Về mặt tự nhiên ngôn ngữ, nhiều trường hợp từ có nghĩa khác ngữ cảnh khác Do đó, bảng chân trị khơng thể diễn đạt nghĩa có từ tương ứng với ký hiệu phép toán Ðiều nầy cho thấy đại số logic rõ ràng hoàn chỉnh theo nghĩa cho ta hệ thống logic đáng tin cậy Ðại số logic đặc biệt quan trọng việc thiết kế mạch cho máy tính Bảng chân trị khơng dùng để kê liên hệ chân trị mệnh đề phức hợp với chân trị mệnh đề sơ cấp cấu thành nó, mà bảng chân trị dùng với mục đích rộng hơn: liệt kê liên hệ chân trị mệnh với mệnh đề đơn giản cấu thành chúng 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ị p p 0 ) Trong cột thứ bảng chân trị, ta liệt kê đầy đủ trường hợp chân trị có mệnh đề p Ở cột thứ hai kê chân trị tương ứng mệnh đề p theo trường hợp chân trị mệnh đề p Ðịnh nghĩa nầy phù hợp với ngữ nghĩa tự nhiên phủ định : Mệnh đề phủ định p có chân trị (1) mệnh đề p có chân trị sai (0), ngược lại p có chân trị sai (0) p có chân trị (1) Ví dụ: Cho mệnh đề a= số nguyên tố (0) b= số nguyên tố (1) c= < (1) phủ định chúng a= không số nguyên tố (1) b= không số nguyên tố (0) c= ≥ (0) Ví dụ: Chỉ ( p) p ln có chân trị Giải Lập bảng chân trị mệnh đề ( p): p p ( p) 1 Trên dòng giá trị bảng chân trị ta có chân trị p ( p) (so sánh cột cột bảng) Vậy ( p) p có chân trị Ta nói ( p) tương đương logic với p Trang TRR & LTĐT Mệnh đề ( p) thường viết p, điều nầy khơng có gây nhầm lẫn 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 0 1 q 1 pq 0 Chân trị mệnh đề p q phụ thuộc vào chân trị mệnh đề p, q Ta có trường hợp chân trị p q ứng với trường hợp chân trị cặp mệnh đề (p,q) (0,0), (0,1), (1,0), (1,1) Trong trường hợp có trường hợp mệnh đề p q đúng, trường hợp p q 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: 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 pq 0 1 1 0 1 Trang TRR & LTĐT Mệnh đề p q, đọc "nếu p q", dạng câu đìều kiện, với p giả thiết q kết luận Nó phát biểu dạng khác sau đây: "q p" "p q" "p điều kiện đủ cho q" "q điều kiện cần cho p" 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 0 1 0 1 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: Trang TRR & LTĐT 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 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 toá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 mệnh đề B.BẢNG CHÂN TRỊ Bảng chân trị biểu thức logic bảng liệt kê chân trị biểu thức logic theo trường hợp chân trị tất biến mệnh đề biểu thức logic hay theo giá trị biến mệnh đề Với biến mệnh đề, ta có trường hợp (sai) (đúng) Với biến mệnh đề p, q ta trường hợp chân 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 trường hợp chân trị cho n biến 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 qr p ( q r) 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 Trang TRR & LTĐT 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 pq 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 ta có: E0 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 1 p p p p 1 0 Ví dụ: CMR biểu thức p p sai TRR & LTĐT Trang Lưu ý: Giả sử E F biểu thức logic Khi đó, E tương đương logic với F (tức ta có EF) biểu thức logic EF (tức EF1) Nếu EF FG EG 4.CÁC LUẬT LOGIC Các luật logic sở để ta thực biến đổi biểu thức logic để có biểu thức logic tương đương logic với biểu thức logic có trước Mỗi luật logic cho ta khẳng định tương đương biểu thức logic Ta sử dụng luật logic biết để thực phép biến đổi tương đương biêu thức logic Dưới đây, liệt kê số luật logic thường sử dụng lập luận chứng minh Các luật nầy chứng minh cách lập bảng chân trị để so sánh Các luật phép phủ định p p (luật phủ định phủ định) 10 01 Luật giao hoán pqqp pqqp 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ù pp1 pp0 Luật kéo theo pqpq Luật tương đương p q (p q) (q p) 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ụ) Những luật chọn lựa để làm sở cho thực biến đổi logic, suy luận chứng minh Tất nhiên nhiều luật logic khác mà ta khơng liệt kê Trang 10 TRR & LTĐT Ví dụ 1: Chứng minh (p q) ( q p) Ta có (p q) pq qp q) p qp (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 pqp Ta có pqp ( p q) p (luật kéo theo) ( p q) p (luật De Morgan) ( q p) p (luật giao hoán) q ( p p) (luật kết hợp) q1 (luật phần tử bù) 1 (luật đơn giản) Vậy mệnh đề p q p Ví dụ 4: Chứng minh biểu thức p pq mệnh đề Ta có p pq p (p q) (luật kéo theo) ( p p) q (luật kết hợp) 1q (luật phần tử bù) 1 (luật đơn giản) Vậy mệnh đề p pq Trang 71 TRR & LTĐT Thí dụ Ma trận trận kề đồ thị vơ hướng cho hình là: 1 1 1 1 0 0 1 1 1 0 1 Hình Đồ thị vơ hướng G Đồ thị có hướng G1 Các tính chất ma trận kề: 1) Rõ ràng ma trận kề đồ thị vô hướng ma trận đối xứng, tức a[i,j]=a[j,i], i,j=1,2, .,n ngược lại, (0,1)-ma trận đối xứng cấp n tương ứng, xác đến cách đánh số đỉnh (còn nói là: xác đến đẳng cấu), với đơn đồ thị vô hướng n đỉnh 2) Tổng phần từ dòng i (cột j) ma trận kề bậc đỉnh i (đỉnh j) Ma trận kề đồ thị có hướng định nghĩa cách hồn tồn tương tự Thí dụ Đồ thị có hướng G1 cho hình có ma trận kề ma trận sau: 1 0 0 0 0 1 0 0 0 0 0 1 0 0 Trang 72 TRR & LTĐT Lưu ý ma trận kề đồ thị có hướng khơng phải ma trận đối xứng Chú ý: Trên xét đơn đồ thị Ma trận kề đa đồ thị xây dựng hồn tồn tương tự, khác thay ghi vào vị trí a[i,j] (i,j) cạnh đồ thị, ghi k số cạnh nối hai đỉnh i, j Trong nhiều vấn đề ứng dụng lý thuyết đồ thị, cạnh e=(u,v) đồ thị gán với số c(e) (còn viết c(u,v) gọi trọng số cạnh e Đồ thị trường hợp gọi đồ thị có trọng số Trong trường hợp đồ thị có trọng số, thay mà trận kề, để biểu diễn đồ thị ta sử dụng ma trận trọng số C= {c[i,j], i,j=1, 2, .,n} với c[i,j]=c(i,j) (i,j) E c[i,j]= (i,j) E c[i,i]=0 số , tuỳ trường hợp cụ thể, đặt giá trị sau: 0, + , - Ví dụ: ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ Hình 2: Đồ thị ma trận trọng số tương ứng Ưu điểm lớn phương pháp biểu diễn đồ thị ma trận kề (hoặc ma trận trọng số) để trả lời câu hỏi: Hai đỉnh u,v có kề đồ thị hay không, phải thực phép kiểm tra phần tử A[u,v] ma trận có khác hay không TRR & LTĐT Trang 73 BÀI TẬP Bài 1: Vẽ đồ thị có đỉnh a) đỉnh bậc đỉnh bậc b) Bậc đỉnh là: 1,2,2,3,4,5 c) Bậc đỉnh là: 2,2,4,4,4,4 Bài 2: Tìm số cạnh vẽ đồ thị mà đỉnh có bậc có a) đỉnh b) đỉnh c) đỉnh d) đỉnh Bài 3: Tìm số đỉnh vẽ đồ thị mà có a) 12 cạnh đỉnh có bậc b) 15 cạnh, đỉnh bậc đỉnh lại bậc c) cạnh đỉnh có bậc Bài 4: Một đồ thị có 19 cạnh, đỉnh có bậc >=3 Đồ thị có tối đa đỉnh? Bài 5: Biết đỉnh đồ thị có bậc số lẻ p CMR số cạnh cua bội số p Bài 6: Có thể tồn nhóm có người, người tuổi với người khác nhóm hay khơng? Bài 7: Một đơn đồ thị phẳng liên thơng có 10 mặt, tất đỉnh có bậc Tìm số đỉnh, số cạnh vẽ đồ thị Bài 8: Đơn đồ thị phẳng liên thơng có đỉnh, bậc đỉnh 2,2,2,3,3,3,4,4,5 Tìm số cạnh, số mặt vẽ đồ thị Trang 74 TRR & LTĐT Chương Đường đồ thị I ĐƯỜNG ĐI VÀ CHU TRÌNH EULER Định nghĩa Chu trình đơn đồ thị G qua cạnh nó, cạnh qua lần gọi chu trình Euler Đường đơn G qua cạnh nó, cạnh qua lần gọi đường Euler Đồ thị gọi đồ thị Euler có chu trình Euler, gọi đồ thị nửa Euler có đường Euler Rõ ràng đồ thị Euler nửa Euler, điều ngược lại không Thí dụ Đồ thị G1 hình đồ thị Euler có chu trình Euler a, e, c, d, e, b, a Đồ thị G3 khơng có chu trình Euler có đường Euler a, c, d, e, b, d, a, b, G3 đồ thị cửa Euler Đồ thị G2 khơng có chu trình đường Euler Hình Đồ thị G1, G2, G3 Thí dụ Đồ thị H2 hình đồ thị Euler có chu trình Euler a, b, c, d, e, a Đồ thị H3 khơng có chu trình Euler có đường Euler c, a, b, c, d, b H3 đồ thị nửa Euler Đồ thị H1 khơng có chu trình đường Euler Hình Đồ thị H1, H2, H3 Điều kiện cần đủ để đồ thị đồ thị Euler Euler tìm vào năm 1736 ơng giải tốn hóc búa tiếng giới thời bảy cầu thành phố Konigsberg định lý lý thuyết đồ thị Định lý (Euler) Đồ thị vô hướng liên thông G đồ thị Euler đỉnh G có bậc chẵn Trang 75 TRR & LTĐT Hệ Đồ thị vô hướng liên thông G nửa Euler có khơng q đỉnh bậc lẻ Định lý (Euler tổng quát) Đồ thị vô hướng liên thơng G có k đỉnh bậc lẻ (k ln số chẵn) cần k/2 đường để qua tất cạnh đồ thị, cạnh qua lần Hơn để đường cần xuất phát từ đỉnh bậc lẻ kết thúc đỉnh bậc lẻ khác Giả sử G đồ thị Euler, thuật toán đơn giản sau cho phép xác định chu trình Euler làm tay Thuật tốn Flor Xuất phát từ đỉnh u G ta theo cạnh cách tuỳ ý cần tuân thủ qui tắc sau: (1) Xoá bỏ cạnh qua đồng thời xố bỏ đỉnh lập tạo thành (2) Ở bước ta qua cầu không cách lựa chon khác Định lý Đồ thị có hướng liên thơng mạnh đồ thị Euler 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 toá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 đủ để Trang 76 TRR & LTĐT đồ 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 hố định lý Dirak cho đồ thị có hướng: Đị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 TOÁ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 v0, v1, , vp đường G, độ dài định nghĩa tổng sau 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 Tìm lộ trình đường Trang 77 TRR & LTĐT 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 vmin (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 vmin , 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