Đề cương chi tiết học phần Lý thuyết đồ thị (Graph Theory) sẽ thông tin đến các bạn thông tin chung về môn học; mục tiêu môn học; tóm tắt nội dung chương trình học; một số yêu cầu của môn học, nhiệm vụ của sinh viên và cách thức đánh giá kết quả học tập của sinh viên.
BM01.QT02/ĐNT-ĐT TRƯỜNG ĐH NGOẠI NGỮ - TIN HỌC TP.HCM KHOA CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN Thông tin chung học phần - Tên học phần : Lý Thuyết Đồ Thị (Graph Theory) - Mã số học phần : 1221124 - Số tín học phần : (3+1) tín - Thuộc chương trình đào tạo bậc, ngành: Bậc Đại học, ngành Công nghệ thông tin - Số tiết học phần : Nghe giảng lý thuyết : 45 tiết Làm tập lớp : tiết Thảo luận : tiết Thực hành (ở phòng thực hành): 30 tiết Hoạt động theo nhóm : tiết Thực tế: : tiết Tự học : 120 - Đơn vị phụ trách học phần: Bộ mơn Khoa học máy tính / Khoa Công nghệ thông tin Học phần trước: Kỹ thuật lập trình Mục tiêu học phần: Sau hoàn tất yêu cầu học phần, sinh viên có thể: - Nắm vững khái niệm đồ thị (Graph) - Nắm vững số phương pháp để giải số toán mơ hình đồ thị - Hiểu cài đặt thuật tốn trình bày học phần lý thuyết đồ thị Chuẩn đầu ra: Nội dung Kiến thức Đáp ứng CĐR CTĐT 4.1.1 Nắm vững số khái niệm, thuật ngữ, K1 định lý, thuật toán lý thuyết đồ thị 4.1.2 Hiểu cách mơ hình hóa tốn K1 thực tế sang tốn tin học cơng cụ lý thuyết đồ thị Kỹ 4.2.1 Có kỹ tổ chức cấu trúc liệu để S1 lưu trữ đồ thị cài đặt thuật toán lý thuyết đồ thị 4.2.2 Có kỹ nhận diện giải toán S1 thực tế cách áp dụng lý thuyết đồ thị máy tính Thái độ 4.3.1 Tôn trọng nội quy lớp học, học đầy đủ A2 lên lớp 4.3.2 Chuẩn bị trước đến lớp Tham gia A3 tích cực học Mơ tả tóm tắt nội dung học phần: Học phần Lý thuyết đồ thị cung cấp cho sinh viên khái niệm đồ thị đỉnh đồ thị, cạnh đồ thị, bậc đỉnh, đường đi, chu trình, …, Sinh viên học số định lý lý thuyết đồ thị Dựa khái niệm, định lý này, sinh viên học thuật toán để giải toán đồ thị tìm đường hai đỉnh, tìm đường cặp đỉnh, tìm đường ngắn nhất, tìm khung nhỏ nhất, … Bên cạnh đó, Lý thuyết đồ thị học phần cung cấp cho sinh viên mơ hình tốn học để mơ hình hóa đối tượng thực tế (bằng đỉnh đồ thị), mơ hình hóa mối quan hệ đối tượng thực tế (bằng canh hay cung đồ thị), sau giải toán thực tế cách áp dụng thuật toán xây dựng lý thuyết đồ thị giải tốn thực tế máy tính Nội dung lịch trình giảng dạy: - Các học phần lý thuyết: Buổi/ Tiết Nội dung Hoạt động giảng viên Giới thiệu đề cương môn học (mô tả nội dung môn học, cách đánh giá mơn học, giáo trình, tài liệu tham khảo) Thuyết giảng Đặt câu hỏi Cho làm tập Giải đáp thắc mắc sinh viên Hoạt động sinh viên Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Giáo trình Cuốn [1]: Phần 2, Chương Tài liệu tham khảo Ghi Giải mục tiêu 4.1.1, 4.1.2 Chương Một số khái niệm đồ thị 1.1 Một số toán dẫn đến khái niệm đồ thị 1.2 Định nghĩa phân loại đồ thị 1.3 Các thuật ngữ 1.4 Một số dạng đồ thị - Chương Biểu diễn đồ thị máy tính 2.1 Ma trận kề, ma trận trọng số 2.1.1 Ma trận kề 2.1.2 Ma trận trọng số 2.1.3 Cài đặt 2.1.4 Giới thiệu Collections - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương 2, mục 2.1, 2.2 Cuốn [2]: Chương 1, mục 1.2 Cuốn [4]: Chương 10, mục 10.3 Giải mục tiêu 4.1.2 4.2.1 2.2 Danh sách kề 2.3 Danh sách cạnh - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương 2, mục 2.3, 2.4 Cuốn [2]: Chương 1, mục 1.2 Giải mục tiêu 4.1.2 4.2.1 Chương Tìm kiếm đồ thị - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Thuyết giảng - Nghe giảng, ghi Cuốn [1]: Phần Cuốn [2]: Chương 3, Giải - - Cuốn [2]: Chương 1, mục 1.1 Cuốn [3]: Chương Cuốn [4]: Chương 10: mục 10.1, 10.2 2, Chương 3, mục 3.1 3.1 Bài tốn tìm đường 3.2 Thuật tốn tìm kiếm theo chiều sâu - Hướng dẫn lập trình - Trả lời câu hỏi - Làm tập máy tính - Đặt câu hỏi - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên 3.3 Thuật tốn tìm kiếm theo chiều rộng 3.4 Ứng dụng - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Giải đáp thắc mắc sinh viên - Cho làm tập - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương 3, mục 3.2 Chương Đồ thị Euler Đồ thị Hamilton 4.1 Đồ thị Euler 4.1.1 Định nghĩa 4.1.2 Định lý 4.1.3 Thuật toán - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Giải đáp thắc mắc sinh viên - Cho làm tập - Nghe giảng, ghi Trả lời câu hỏi Đặt câu hỏi Làm tập Cuốn [1]: Phần 2, Chương 4, mục 4.1 4.2 Đồ thị Hamilton 4.2.1 Định nghĩa 4.2.3 Định lý 4.2.4 Thuật tốn - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Giải đáp thắc mắc sinh viên - Cho làm tập - Nghe giảng, ghi Trả lời câu hỏi Đặt câu hỏi Làm tập Cuốn [1]: Phần 2, Chương 4, mục 4.2 mục 3.1 Cuốn [3]: Chương Cuốn [2]: Chương 1, mục 1.5.1 Cuốn [3]: Chương Cuốn [2]: Chương 1, mục 1.3 Cuốn [3]: Chương Cuốn [3]: Chương 10 mục tiêu 4.1.2 4.2.2 Giải mục tiêu 4.1.2 4.2.2 Giải mục tiêu 4.1.2 4.2.2 Giải mục tiêu 4.1.2 4.2.2 Cuốn [2]: Chương 1, mục 1.5.2 Giải mục tiêu 4.1.2 4.2.2 Chương Đường ngắn đồ thị 5.1 Phát biểu toán 5.2 Thuật toán Dijkstra - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Giải đáp thắc mắc sinh viên - Cho làm tập - Nghe giảng, ghi Trả lời câu hỏi Đặt câu hỏi Làm tập Cuốn [1]: Phần 2, Chương 6, mục 6.1 đến 6.3 5.4 Thuật toán Ford – Bellman 5.5 Thuật toán Floyd - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương 6, mục 6.4, 6.5 Cuốn [2]: Chương Cuốn [3]: Chương Giải mục tiêu 4.1.2 4.2.2 10 Chương Cây 6.1 Định nghĩa tính chất 6.2 Cây khung đồ thị 6.2.1 Định nghĩa 6.2.2 Thuật toán xây dựng khung - Thuyết giảng Đặt câu hỏi Cho làm tập Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương Cuốn [2]: Chương Cuốn [3]: Chương Cuốn [4]: Chương 11 Giải mục tiêu 4.1.2 4.2.2 11 6.4 Cây khung nhỏ 6.4.1 Thuật toán Kruskal 6.4.1 Thuật toán Prim - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương Cuốn [2]: Chương Cuốn [3]: Chương Cuốn [4]: Chương 11 Giải mục tiêu 4.1.2 4.2.2 Cuốn [3]: Chương Cuốn [4]: Chương 10, 10.6 12 Chương Luồng cực đại mạng 7.1 Khái niệm mạng 7.2 Lát cắt 7.3 Luồng mạng - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương Cuốn [2]: Chương Cuốn [3]: Chương Giải mục tiêu 4.1.2 4.2.2 13 7.4 Bài toán luồng cực đại mạng 7.5 Thuật tốn tìm luồng cực đại (Thuật toán Ford – Fulkerson) - Thuyết giảng - Hướng dẫn lập trình máy tính - Đặt câu hỏi - Cho làm tập - Giải đáp thắc mắc sinh viên - Nghe giảng, ghi Trả lời câu hỏi Làm tập Đặt câu hỏi Cuốn [1]: Phần 2, Chương Cuốn [2]: Chương Cuốn [3]: Chương Giải mục tiêu 4.1.2 4.2.2 14 Chương Tô màu đồ thị 8.1 Khái niệm đồ thị phẳng 8.2 Phát biểu tốn tơ màu đồ thị 8.3 Định lý màu 8.4 Thuật toán tô màu đồ thị - Thuyết giảng - Đặt câu hỏi - Cho làm tập - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập Cuốn [3]: Chương Cuốn [4]: Chương 10, 10.8 Giải mục tiêu 4.1.2 4.2.2 15 Ôn tập - Tổng kết học lý thuyết - Đặt câu hỏi - Cho làm tập - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập - Các học phần thực hành: Buổi/ Tiết Nội dung Bài Nhập xuất tính bậc đồ thị Bài Tìm kiếm đồ thị Bài Tìm kiếm đồ thị Bài Đồ thị Euler Hamilton Hoạt động giảng viên - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Sửa lỗi chương trình cho sinh viên - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Sửa lỗi chương trình cho sinh viên - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Sửa lỗi chương trình cho sinh viên - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Sửa lỗi chương trình cho sinh viên Hoạt động sinh viên Giáo trình Chính Tài liệu tham khảo Ghi Giải mục tiêu 4.2.1 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương 3, mục 3.1 Giải mục tiêu 4.2.2 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương 3, mục 3.1 Giải mục tiêu 4.2.2 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương 4, mục 4.1, 4.2 Giải mục tiêu 4.2 Cuốn [1]: Phần 2, Chương 2, mục 2.1, 2.2 Bài Đường ngắn Bài Đường ngắn Bài Cây khung Bài Cây khung Bài Luồng cực đại mạng - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Sửa lỗi chương trình cho sinh viên - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Sửa lỗi chương trình cho sinh viên - Đặt câu hỏi - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Sửa lỗi chương trình cho sinh viên - Đặt câu hỏi - Cho tập làm thêm - Thuyết giảng - Hướng dẫn sinh viên lập trình - Đặt câu hỏi - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương 6, mục 6.1 đến 6.3 Giải mục tiêu 4.2 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương 6, mục 6.4, 6.5 Giải mục tiêu 4.2 Cuốn [1]: Phần 2, Chương Giải mục tiêu 4.2 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề chưa rõ Cuốn [1]: Phần 2, Chương Giải mục tiêu 4.2 - Nghe giảng, ghi Trả lời câu hỏi Làm tập máy Hỏi vấn đề Cuốn [1]: Phần 2, Chương Giải mục tiêu 4.2 - 10 Bài 10 Thi - Sửa lỗi chương trình cho sinh viên - Cho tập làm thêm Coi thi chấm điểm chưa rõ Làm thi Nhiệm vụ sinh viên: Sinh viên phải thực nhiệm vụ sau: - Tham dự tối thiểu 80% số tiết học lý thuyết - Tham gia tối thiểu 50% thực hành giải tất tập - Tham dự kiểm tra thực hành - Tham dự thi kết thúc học phần - Chủ động tổ chức thực tự học Đánh giá kết học tập sinh viên: 8.1 Cách đánh giá Sinh viên đánh giá tích lũy học phần sau: TT Điểm thành phần Điểm thực hành Điểm thi kết thúc học phần Quy định Điểm chuyên cần Số tiết tham dự 80%/tổng số tiết - Thi thực hành máy - Tự luận (90 phút) 10% Trọng số 30% Mục tiêu 4.2 4.3 20% 70% 4.1 4.2 8.2 Cách tính điểm - Điểm đánh giá thành phần điểm thi kết thúc học phần chấm theo thang điểm 10 (từ đến 10), làm tròn đến 0.5 - Điểm học phần tổng điểm tất điểm đánh giá thành phần học phần nhân với trọng số tương ứng Điểm học phần theo thang điểm 10 làm tròn đến chữ số thập phân Tài liệu học tập: 9.1 Giáo trình chính: [1] Tốn rời rạc, Nguyễn Đức Nghĩa Nguyễn Tô Thành, NXB Giáo dục, 2006 9.2 Tài liệu tham khảo: [2] Graph Algorithms, Shimon Even, Cambridge University Press, 2011 [3] Graph Theory and Applications: With Exercises and Problems, Jean-Claude Fournier, Wiley, 2009 [4] Discrete Mathematics and Its Applications Seventh Edition, Kenneth H Rosen, McGrawHill, 2011 10 10 Hướng dẫn sinh viên tự học: Lý thuyết: Tuần/ Buổi Nội dung Lý thuyết (tiết) Chương Một số khái niệm đồ thị 1.1 Một số toán dẫn đến khái niệm đồ thị 1.2 Định nghĩa phân loại đồ thị 1.3 Các thuật ngữ 1.4 Một số dạng đồ thị Chương Biểu diễn đồ thị máy tính 2.1 Ma trận kề, ma trận trọng số 2.1.1 Ma trận kề 2.1.2 Ma trận trọng số 2.1.3 Cài đặt 2.1.4 Giới thiệu Collections Nhiệm vụ sinh viên -Nghiên cứu trước: Cuốn [1]: Chương Cuốn [2]: Chương 1, mục 1.1 Cuốn [3]: Chương Cuốn [4]: Chương 10: mục 10.1, 10.2 -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 2, mục 2.1, 2.2 Cuốn [2]: Chương 1, mục 1.2 Cuốn [4]: Chương 10, mục 10.3 -Ôn lại nội dung chương học 2.2 Danh sách kề 2.3 Danh sách cạnh Chương Tìm kiếm đồ thị 3.1 Bài tốn tìm đường 3.2 Thuật tốn tìm kiếm theo chiều sâu 3.3 Thuật tốn tìm kiếm theo chiều rộng 3.4 Ứng dụng Chương Đồ thị Euler Đồ thị Hamilton 4.1 Đồ thị Euler 4.1.1 Định nghĩa 4.1.2 Định lý -Nghiên cứu trước: Cuốn [1]: Chương -Ôn lại nội dung 2.1.4, chương học -Nghiên cứu trước: Cuốn [1]: Chương -Ôn lại nội dung chương học -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 3, mục 3.2 -Ôn lại nội dung 3.1, 3.2 chương học -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 4, mục 4.1 11 4.1.3 Thuật toán 4.2 Đồ thị Hamilton 4.2.1 Định nghĩa 4.2.3 Định lý 4.2.4 Thuật toán 10 11 12 13 14 15 Chương Đường ngắn đồ thị 5.1 Phát biểu toán 5.2 Thuật toán Dijkstra 5.4 Thuật toán Ford – Bellman 5.5 Thuật toán Floyd -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 4, mục 4.2 -Ôn lại nội dung 4.1 chương học -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 6, mục 6.1 đến 6.3 -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương 6, mục 6.4, 6.5 -Ôn lại nội dung 5.1, 5.2 chương học -Nghiên cứu trước: Chương Cây 6.1 Định nghĩa tính chất 6.2 Cây khung đồ thị 6.2.1 Định nghĩa 6.2.2 Thuật toán xây dựng khung 6.4 Cây khung nhỏ 6.4.1 Thuật toán Kruskal 6.4.1 Thuật toán Prim Chương Luồng cực đại mạng 7.1 Khái niệm mạng 7.2 Lát cắt 7.3 Luồng mạng 7.4 Bài toán luồng cực đại mạng 7.5 Thuật tốn tìm luồng cực đại (Thuật tốn Ford – Fulkerson) Chương Tơ màu đồ thị 8.1 Khái niệm đồ thị phẳng 8.2 Phát biểu tốn tơ màu đồ thị 8.3 Định lý màu 8.4 Thuật tốn tơ màu đồ thị Cuốn [3]: Chương Cuốn [4]: Chương 10, 10.8 Cuốn [3]: Chương Cuốn [1]: Phần 2, Chương Cuốn [3]: Chương Tài liệu [5]: Chương -Nghiên cứu trước: Cuốn [1]: Phần 2, Chương Ôn tập 12 Thực hành: Sinh viên làm trước tập có hướng dẫn tài liệu [6] nhà theo bảng lịch trình giảng dạy phía trên, tham khảo thêm tài liệu [1] nội dung tương ứng để làm tốt Ngày… tháng… Năm 201 Trưởng khoa (Ký ghi rõ họ tên) Ngày… tháng… Năm 201 Trưởng Bộ môn (Ký ghi rõ họ tên) Ngày… tháng… Năm 201 Người biên soạn (Ký ghi rõ họ tên) Đinh Hùng Tôn Quang Toại Ngày… tháng… Năm 201 Ban giám hiệu 13 ... thuyết đồ thị cung cấp cho sinh viên khái niệm đồ thị đỉnh đồ thị, cạnh đồ thị, bậc đỉnh, đường đi, chu trình, …, Sinh viên học số định lý lý thuyết đồ thị Dựa khái niệm, định lý này, sinh viên học. .. dụng lý thuyết đồ thị máy tính Thái độ 4.3.1 Tôn trọng nội quy lớp học, học đầy đủ A2 lên lớp 4.3.2 Chuẩn bị trước đến lớp Tham gia A3 tích cực học Mơ tả tóm tắt nội dung học phần: Học phần Lý thuyết. .. Hướng dẫn sinh viên tự học: Lý thuyết: Tuần/ Buổi Nội dung Lý thuyết (tiết) Chương Một số khái niệm đồ thị 1.1 Một số toán dẫn đến khái niệm đồ thị 1.2 Định nghĩa phân loại đồ thị 1.3 Các thuật ngữ