Bài tập lý thuyết đồ thị
B1. Cho các đồ thị sau, hãy lập ma trận kề của chúng(ma trận zêrô-một). 1 2 3 4 5 1 2 3 4 5 1 0 1 0 1 0 2 1 0 1 0 0 3 0 1 0 1 0 4 1 0 1 0 1 5 1 0 1 0 1 1 2 3 4 5 1 0 1 1 1 0 2 1 0 1 0 0 3 1 1 0 1 1 4 1 0 1 0 0 5 0 0 1 0 0 1 2 3 4 1 0 1 1 0 2 0 0 0 0 3 0 1 0 0 4 1 1 1 0 1 3 4 3 1 1 5 2 1 2 4 1 2 2 B2. Các đồ thị sau, đồ thị nào là đồ thị Euler, nửa Euler, Hamilton, nửa Hamilton?Vì sao? A B C F D E G H I 2 3 4 5 1 6 1 2 3 4 5 3 3 6 7 8 9 J K Đồ thị A,J có đường đi euler và có 2 đỉnh bậc lẻ -> là đồ thị nửa euler Đồ thị B,K có đường đi euler và có 1 đỉnh bậc lẻ -> là đồ thị nửa euler Đồ thị F có tất cả các đỉnh bậc chẵn nên nó là dồ thị euler Đồ thị I tất cả các đỉnh có bậc vào bằng bậc ra nên nó là đồ thị euler 4 4 Đồ thị I có tất cả các đỉnh có bậc lớn hơn n/2 ( n là số đỉnh) nên nó là đồ thị Hamilton. A B E 21 F G C D 11 3 8 9 7 14 8 21 16 4 10 5 14 4 B3. Tìm đường đi ngắn nhất từ đỉnh A đến các đỉnh khác.Độ dài là bao nhiêu ? 5 5 a). Thuật toán: Nếu L(v) > L(u) + w(u,v) → L(v) := L(u) + w(u,v) Giải thích ký hiệu: 14,a: 14: độ dài từ đỉnh xuất phát đến đỉnh v a: Tên đỉnh trước đỉnh v để có độ dài bằng d(v) ∞: ko có cạnh nối * : Cố định nhãn và dừng với đỉnh đó - : Ko xét đỉnh đó nữa. Vòng lặp Đỉnh A Đỉnh B Đỉnh C Đỉnh D Đỉnh E Đỉnh F Đỉnh G Khởi tạo 0,a 14,a ∞,a ∞,a 4,a* 8,a ∞,,a 1 - 14,a ∞,a 14,e - 8,a* 13,e 2 - 14,a ∞,a 14,e - - 13,e* 3 - 14,a* 16,g 14,e - - - 4 - - 16,g 14,e* - - - 5 - - 16,g* - - - - Độ ngắn nhất từ A đến B là 14, đường đi a,b. A đến C là 16, đường đi : a,e,g,c. A đến D là 14, đường đi : a,e,d. A đến E là 4, đường đi : a,e, A đến F là 8, đường đi a,f A dến G là 13, đường đi a,e,g b). Với đồ thị đã cho như hình bài 4 tìm đường đi ngắn nhất từ đỉnh A đến đỉnh D trong đồ thị tương ứng không có trọng số ( coi trọng số của các cạnh bằng nhau và bằng 1 đơn vị dài) 6 CBA 6 Thuật toán: Xuất phát gán nhãn (0) Kề nhãn (0) gán nhãn (1) Dừng khi đích có nhãn Nhãn đỉnh đích là đường đi ngắn nhất. Bài toán: Xuất phát gắn nhãn (0) cho đỉnh A Kề với nhãn (0) gán nhãn (1) cho đỉnh B, đỉnh E, đỉnh F Kề với nhãn (1) gán nhãn (2) cho đỉnh C, đỉnh C, đỉnh D KL: Đường đi ngắn nhất A→D có 2 cạnh. Liệt kê đường đi: AE, ED. 7 G D F E 21 7 B4. Tìm cây khung nhỏ nhất theo thuật toán Kruskal và Prim cho bởi đồ thị sau: 1 2 7 3 4 5 6 11 13 16 9 12 18 7 20 10 11 Thuật toán Kruskal : Chọn cạnh Min cho đồ thị có n đỉnh Chọn cạnh Min trong các cạnh còn lại bổ sung vào cây sao cho ko tạo thành chu trình. Dừng lại khi số cạnh = (n-1) 8 8 Số đỉnh của cây là n=7 => số cạnh của cây khung nhỏ nhất là 7-1 = 6 cạnh Trọng số Cạnh Chọn/ không chọn Số cạnh T 7 (1,3) Chọn 1 9 (4,7) Chọn 2 10 (2,7) Chọn 3 11 (1,7) Chọn 4 11 (5,6) Chọn 5 12 (2,4) Không chọn vì tạo thành chu trình 2,4,7,2 5 13 (4,5) Chọn 6,Dừng 16 (4,6) 18 (1,2) 20 (3,7) Độ dài của cây khung nhỏ nhất là 7+9+10+11+11+13 = 61 11 13 9 7 10 11 9 521 6 4 3 7 9 Thuật toán prim Số đỉnh của cây là n=7 => số cạnh của cây khung nhỏ nhất là 7-1 = 6 cạnh Vòng lặp 1 2 3 4 5 6 7 V T E T K.tạo - 18,1 7,1 * ∞,1 ∞,1 ∞,1 11,1 1 ∅ 1 - 18,1 - ∞,1 ∞,1 ∞,1 11,1* 1,3 (1,3) 2 - 10,7 - 9,7* ∞,1 ∞,1 - 1,3,7 (1,3),(1,7) 3 - 10,7 * - - 13,4 16,4 - 1,3,7,4 (1,3),(1,7),(7,4) 4 - - - - 13,4 * 16,4 - 1,3,7,4,2 (1,3),(1,7,),(7,4), (7,2) 5 - - - - - 11,5* - 1,3,7,4,2,5 (1,3),(1,7,),(7,4), (7,2),(4,5) 6 - - - - - - - 1,3,7,4,2,5,6 (1,3),(1,7,),(7,4), (7,2),(4,5),(5,6) B5. Thuật toán tô màu đồ thị: Mỗi môn thi tương ứng 1 đỉnh Cặp môn thi có chung sinh viên tương ứng với 1 cạnh nối với 2 đỉnh biểu diễn cho 2 môn thi đó Để ko có sv nào phải thi lại 2 môn cùng 1 đợt thi thì 2 đỉnh biểu diễn 2 môn thi đó là 2 đỉnh kề nhau phải có màu khác nhau → Bài toán tô màu đỉnh của đồ thị sao cho số màu cần tô là ít nhất. Số màu là số đợt thi Thuật toán: Sắp xếp số bậc của đỉnh theo thứ tự giảm dần: Deg (4) = deg (7) = 4 10 521 7 6 4 3 7 10 . -> là đồ thị nửa euler Đồ thị B,K có đường đi euler và có 1 đỉnh bậc lẻ -> là đồ thị nửa euler Đồ thị F có tất cả các đỉnh bậc chẵn nên nó là dồ thị euler. Các đồ thị sau, đồ thị nào là đồ thị Euler, nửa Euler, Hamilton, nửa Hamilton?Vì sao? A B C F D E G H I 2 3 4 5 1 6 1 2 3 4 5 3 3 6 7 8 9 J K Đồ thị A,J