Lý thuyết đồ thị và ứng dụng

60 677 0
Lý thuyết đồ thị và ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

trường đại học sư phạm hà nội khoa công nghệ thông tin ************ trần thị thu hiền lý thuyết đồ thị ứng dụng khóa luận tốt nghiệp đại học Chuyên ngành: Cử nhân Tin học Người hướng dẫn khoa học Th.s trịnh đình vinh hà nội - 2010 Mục lục Danh mục hình vẽ Lời nói đầu Chương 1: sở lý thuyết 1.1 Định nghĩa đồ thị 1.1.1 Đồ thị đơn 1.1.2 Đa đồ thị 1.1.3 Giả đồ thị 1.2 Các loại đồ thị 1.2.1 Đồ thị vô hướng 1.2.2 Đồ thị có hướng 10 1.3 Bậc đồ thị 10 1.3.1 Bậc đồ thị vô hướng 10 1.3.2 Bậc đồ thị có hướng 11 1.4 Xích, đường chu trình 12 1.4.1 Xích 12 1.4.2 Đường 12 1.4.3 Chu trình 12 1.4.4 Tính liên thông 14 1.4.5 Xích, đường chu trình Hamilton 14 1.5 Số ổn định trong, số ổn định ngoài, nhân đồ thị 16 1.5.1 Số ổn định 16 1.5.2 Số ổn định 16 1.5.3 Nhân đồ thị 17 1.5.4 Thuật toán tìm tập ổn định 18 1.6 Biểu diễn đồ thị máy tính 19 1.6.1 Ma trận kề 19 1.6.2 Danh sách cạnh (cung) 21 1.6.3 Danh sách kề 21 1.7 Công cụ lập trình 23 Chương 2: Bài toán cờ caro 25 2.1 Mô tả toán 25 2.2 Phát biểu toán 26 2.3 Giải toán 26 2.3.1 Phương pháp 26 2.3.2 Phân tích giải thuật 27 2.4 Một số hàm mô giải thuật 31 2.5 Một số thủ tục hàm đồ họa 36 Chương 3: Bài toán xếp lịch thi 39 3.1 Mô tả toán 39 3.2 Phát biểu toán 39 3.3 Giải toán 39 3.3.1 Phương pháp 39 3.3.2 Phân tích giải thuật 41 3.4 Một số hàm mô giải thuật 47 3.5 Một số thủ tục hàm đồ họa 50 Kết luận hướng phát triển đề tài 54 Tài liệu tham khảo 55 Phụ lục 56 Danh mục hình vẽ Hình 1.1: Khuyên, cung cạnh bội đồ thị Hình 1.2: Đồ thị đơn Hình 1.3: Đa đồ thị Hình 1.4: Giả đồ thị Hình 1.5: Đồ thị vô hướng Hình 1.6: Đồ thị có hướng Hình 1.7: Đồ thị minh họa chu trình 12 Hình 1.8: Chu trình Hamilton: {1, 2, 3, 4, 5, 1} 13 Hình 1.9: Đường Hamilton: {1, 2, 3, 6, 5, 4} 13 Hình 1.10: Đồ thị minh họa nhân đồ thị 16 Hình 1.11: Đồ thị minh họa việc biểu diễn ma trận kề 18 Hình 1.12: Đồ thị minh họa việc biểu diễn danh sách cạnh 19 Hình 2.1: Thế cờ caro ma trận tương ứng 25 Hình 2.2: Cách đánh nhãn đồ thị cho cờ hình 2.1.a 26 Hình 2.3: Thế cờ caro 28 Hình 2.4: Đồ thị minh họa cho cờ hình 2.3.b 28 Hình 3.1: Chu trình môn học 38 Hình 3.2: Minh họa đồ thị có xích Hamilton 40 Hình 3.3: Minh họa đồ thị có chu trình Hamilton 40 Lời nói đầu Bước sang năm lề kỷ 21, nhìn lại kỷ 20 kỷ mà người đạt nhiều thành tựu khoa học rực rỡ nhất, thành tựu bùng nổ ngành khoa học máy tính Sự phát triển kỳ diệu máy tính kỷ gắn liền với phát triển toán học đại, Toán rời rạc Toán học rời rạc nghiên cứu cấu trúc có tính chất rời rạc không liên tục Toán rời rạc bao gồm lĩnh vực quan hệ, lý thuyết đồ thị, lôgic toán, ngôn ngữ hình thức Trong lý thuyết đồ thị phận trọng tâm với nhiều khối lượng kiến thức lý thú nghiên cứu nhiều Lý thuyết đồ thị, với cách tiếp cận đối tượng nghiên cứu phương pháp tư độc đáo thực ngày hữu ích có nhiều ứng dụng phong phú Lý thuyết đồ thị có nhiều ứng dụng thực tiễn đặc biệt lĩnh vực Tin học, muốn hiểu biết sâu sắc vấn đề Tin học cần nắm vững kiến thức toán học rời rạc mà đặc biệt lý thuyết đồ thị Toán rời rạc nói chung lý thuyết đồ thị nói riêng công cụ thiết yếu cho nhiều ngành khoa học kỹ thuật Hơn thành phần quan trọng học vấn sinh viên ngành kỹ thuật đặc biệt sinh viên ngành Tin học Bởi thân máy tính trình làm việc mang tính rời rạc, nên điều tương hợp gắn chặt lý thuyết đồ thị với công nghệ máy tính việc nghiên cứu đối tượng có tính chất rời rạc Từ nhận thức trên, với đề tài "Lý thuyết đồ thị ứng dụng" không nhiệm vụ em phải thực khóa luận tốt nghiệp mà thực đề tài mà em quan tâm say mê nghiên cứu Đề tài thực xong bao gồm nội dung sau đây: Chương 1: Cơ sở lý thuyết Nhằm trình bày khái niệm lý thuyết đồ thị sở tìm hiểu sâu sắc vấn đề Ngoài định nghĩa, tính chất đồ thị, chương trình bày đến vấn đề quan trọng, cách lưu trữ, biểu diễn xử lý đồ thị máy tính xét mô hình biểu diễn hình học Cấu trúc liệu liên quan chặt chẽ đến giải thuật, việc biểu diễn đồ thị máy tính ảnh hưởng đến cách giải toán ứng dụng máy tính Ngoài chương trình bày số phương pháp biểu diễn đồ thị máy tính, phương pháp có ưu điểm nhược điểm riêng Vì cần lựa chọn phương pháp cho phù hợp với đặc điểm toán đạt hiệu thuật toán Chương 2: Bài toán cờ caro Nhằm vào phần ứng dụng lý thuyết đồ thị số ổn định trong, số ổn định ngoài, nhân đồ thị mô hình đồ thị Bài toán cờ caro không trò chơi mà toán tin hay thể tư thuật toán, sở trí tuệ nhân tạo Chương 3: Bài toán xếp lịch thi Với toán xếp lịch thi vận dụng lý thuyết đồ thị đồ thị vô hướng, đồ thị có hướng, đường chu trình Hamilton để ứng dụng cài đặt thuật toán có liên quan đến đồ thị để vẽ đồ thị chu trình kiểm tra bậc nút từ xác định chu trình chuyển đổi thành lịch thi Hà Nội, tháng 05 năm 2010 Sinh viên thực Trần Thị Thu Hiền Chương sở lý thuyết 1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh này, loại đồ thị khác phân biệt kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử X tập hữu hạn, không rỗng phần tử U  X  X Bộ G = gọi đồ thị hữu hạn Mỗi phần tử x X gọi đỉnh phần tử u = (x,y)  U gọi cạnh đồ thị G = Xét cạnh u  U tồn đỉnh x, y  X cho u = (x,y), ta nói x nối với y x y thuộc u x u y - Nếu cạnh u = (x,y) mà x y hai đỉnh phân biệt ta nói x, y hai đỉnh kề - Nếu u = (x,x) u cạnh có hai đỉnh trùng ta gọi khuyên - Nếu u = (x,y) mà x, y cặp đỉnh có phân biệt thứ tự hay có hướng từ x đến y u cung, x gốc y x đỉnh ra, y đỉnh vào - Khi cặp đỉnh (x,y) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội y x a) x y b) y c) Hình 1.1: Khuyên, cung cạnh bội đồ thị a Tại đỉnh y có khuyên b Một cung có hướng từ x sang y c Cặp đỉnh (x, y) có hai cạnh song song 1.1.1 Đồ thị đơn Đồ thị G = gọi đồ thị đơn hai đỉnh nối với không cạnh (cung), tức đồ thị cạnh bội, khuyên A B C D Hình 1.2: Đồ thị đơn 1.1.2 Đa đồ thị Đồ thị G = gọi đa đồ thị có cặp đỉnh nối với hai cạnh (hai cung) trở lên A B C D Hình 1.3: Đa đồ thị 1.1.3 Giả đồ thị Giả đồ thị đồ thị có khuyên, chứa cạnh bội, cạnh đơn Tóm lại loại đồ thị tổng quát A B C D Hình 1.4: Giả đồ thị 1.2 Các loại đồ thị 1.2.1 Đồ thị vô hướng Đồ thị G = gọi đồ thị vô hướng tất cạnh e  U mà cặp đỉnh thuộc e = (x,y)  X không phân biệt thứ tự Đồ thị vô hướng đồ thị cung Nói cách khác đồ thị vô hướng G = bao gồm: V: Tập đỉnh đồ thị U: Tập cặp thứ tự gồm hai phần tử khác V gọi cạnh, tức (u,v)=(v,u) A B C D a) b) Hình 1.5: Đồ thị vô hướng 1.2.2 Đồ thị có hướng Đồ thị G = gọi đồ thị có hướng tất cạnh e  U mà cặp đỉnh thuộc e = (x,y)  X có phân biệt thứ tự Đồ thị có hướng đồ thị mà e = (x,y)  X cung Nói cách khác đồ thị có hướng G = bao gồm: V: Tập đỉnh đồ thị U: Tập cặp thứ tự gồm hai phần tử khác V gọi cung, tức (u,v)  (v,u) Cung (u,v) gọi cung từ đỉnh u đến đỉnh v Ký hiệu: u  v C A B a) b) Hình 1.6: Đồ thị có hướng 1.2.3 Đồ thị hỗn hợp Đồ thị G = vừa có cạnh vô hướng, vừa có cạnh có hướng gọi đồ thị hỗn hợp, loại đồ thị dùng tới Chú ý vấn đề phân chia đồ thị thuật ngữ đồ thị mang tính tương đối, chưa mang tính thống chuẩn nhiều tài liệu 1.3 Bậc đồ thị 1.3.1 Bậc đồ thị vô hướng 10 Toán Mảng lịch thi Minh họa thao tác chèn lớn Tiếp theo ta xóa môn Sinh mảng ban đầu chèn môn học giáo viên dạy môn học Trong ví dụ giáo viên Đào Thu Huệ môn học chèn vào mảng lịch thi môn Anh Văn Mảng ban đầu Toán Lý Toán Anh Văn Hóa Sinh Anh Văn Sử Địa Mảng lịch thi Minh họa thao tác chèn bé Cứ tiếp tục chèn môn học giáo viên dạy nhiều môn đến môn học giáo viên dạy môn Nếu có hai giáo viên có số môn học giảng dạy đồng thời giáo viên có số môn bé trường hợp xét ta chọn môn học có giáo viên giảng dạy không trùng với môn có giáo viên giảng dạy liền trước vị trí chèn cuối ta hình ảnh mảng cấu trúc sau: Mảng ban đầu Toán Lý Hóa Sinh 46 Anh Văn Sử Địa Toán Anh Văn Địa Lý Hóa Sử Sinh Mảng cấu trúc Minh họa thao tác chèn cuối Nếu lấy thứ tự mảng thứ tự ngày thi ta bảng lịch thi sau: Ngày thi thứ Môn Thi Toán Anh Văn Lý Địa Hóa Sử Sinh Đào Thu Huệ Nguyễn Thành Nhân Tô Thanh Diệu Minh họa lịch thi Sau thực bước ta giải toán thỏa mãn yêu cầu 3.4 Một số hàm mô giải thuật Như phân tích code chương trình ta khai báo cấu trúc kiểu lịch thi struct gồm trường sau: struct lichthi { char hoten[50]; 47 char mon[20]; int mau; }; Giải thuật xếp gom nhóm môn học mảng lại gần với Trong hàm xếp có tham số đầu vào mảng cấu trúc lịch thi mà phần tử môn học nhập Nếu thấy hai phần tử có họ tên ta tiến hành hoán chuyển vị trí hai phần tử cho tăng phần tử mảng lên để việc xếp nhanh không không chuyển đến phần tử void sapxep(struct lichthi lt[]) { lichthi tam; for(int i=0;i Đánh dấu vào Graphics library để khởi động thư viện đồ họa Hướng dẫn sử dụng 3.1 Đối với toán chơi cờ caro Ban đầu nhập tên người chơi 56 Sau nhấn enter để vào chương trình Trong chương trình sử dụng phím mũi tên để chọn nước nhấn enter Để tạo game nhấn F2 Để thoát khỏi game nhấn F10 57 Khi kết thúc lần chơi nhấn phím để tạo game 3.2 Đối với toán xếp lịch thi - Dùng phím mũi tên chọn mục tương ứng đồ họa 58 Chọn mục tương ứng, giả sử ta chọn chạy DEMO bắt đầu nhập liệu vào Sau ấn enter để in sơ đồ lịch thi nhấn phím để thoát khỏi chương trình Chú ý: - Số màu hiển thị box mã màu bạn nhập ban đầu - Ngày thi thứ mặc định box bên phải môn thi theo chiều mũi tên 59 Kết sau xếp 60 [...]... Hamilton 1 Định lý Dirac (1952): Đơn đồ thị vô hướng G có n > 2 đỉnh, mỗi đỉnh có bậc không nhỏ hơn n/2 là đồ thị Hamilton 2 Cho đồ thị có hướng G liên thông mạnh có n > 2 đỉnh Nếu mọi đỉnh có bán bậc vào không nhỏ hơn n/2 và bán bậc ra không nhỏ hơn n/2 thì đồ thị đó là đồ thị Hamilton 3 Cho đồ thị vô hướng G, tồn tại k đỉnh sao cho nếu xóa đi k đỉnh này và các cạnh liên thuộc của nó thì đồ thị nhận được... {xi và các đỉnh kề với x i} Bước 2: Từ các tập  (x1),  (x2), ,  (xn) ta tìm tập B B = {xk1 , xk2 , , xkm} sao cho  (xk1)   (xk2)    (xkm) = X Khi đó B là tập ổn định ngoài cực tiểu 1.6 Biểu diễn đồ thị trên máy tính Lĩnh vực đồ thị có nhiều ứng dụng trong thực tế, có thể mô hình nhiều ứng dụng bằng đồ thị và sử dụng máy tính để giải quyết các bài toán về ứng dụng đó Nên việc biểu diễn và lưu...  M} và  (G) được gọi là số ổn định ngoài của đồ thị G Đối với các tập ổn định ngoài, ta thường quan tâm đến tập ổn định ngoài có số phần tử ít nhất vì lực lượng của nó liên quan tới số ổn định ngoài của đồ thị 1.5.3 Nhân đồ thị Cho đồ thị vô hướng G = Nếu tập A (A  X) vừa là tập ổn định trong vừa là tập ổn định ngoài của đồ thị G thì A được gọi là nhân của đồ thị Đối với nhân của đồ thị, ta... Hamilton Đồ thị có đường đi Hamilton được gọi là đồ thị bán Hamilton Đồ thị có chu trình Hamilton được gọi là đồ thị Hamilton 2 3 5 4 1 Hình 1.8: Chu trỡnh Hamilton: { 1, 2, 3, 4, 5, 1 } 14 1 2 3 6 5 4 Hình 1.9: Đường đi Hamilton: {1, 2, 3, 6, 5 , 4 } Tính chất: Cho đến nay, chưa tìm ra tiêu chuẩn để nhận biết một đồ thị có là Hamilton không Phần lớn tìm được là các điều kiện đủ để một đồ thị là đồ thị. .. hơn k thành phần liên thông Lúc đó, khẳng định được đồ thị đó không có chu trình Hamilton 4 Định lý Ore (1960): Đơn đồ thị liên thông G có n đỉnh (n  3), nếu bất kỳ hai cặp đỉnh không liền kề u và v có tổng các bậc không nhỏ hơn n (deg(u) + deg(v)  n) thì đồ thị đó là đồ thị Hamilton Một số định lý thường dùng: Định lý 1: 15 Giả sử G = (X,E) là đồ thị vô hướng có n đỉnh a Nếu với mọi x, mọi y thuộc... Trong đồ thị có hướng thì m+(x) = m-(x) = U 11 Ví dụ: - Xét đồ thị vô hướng như trong hình 1.5.a ta có: m(G) = m(A) + m(B) + m(C) + m(D) = 2 + 5 + 2 + 1 = 10 - Xét đồ thị có hướng trong hình 1.6.a ta có: m(G) = [m+(A) + m+(B) + m+(C) ] + [m-(A) + m-(B) + m-(C)] = [1 + 2 + 1] + [2 + 1 +1] = 8 1.4 Xích, đường đi và chu trình 1.4.1 Xích Giả sử đồ thị G = (X,E) là một đồ thị hay đa đồ thị vô hướng... 1.5 Số ổn định trong, số ổn định ngoài, nhân đồ thị 1.5.1 Số ổn định trong Cho đồ thị vô hướng G = và A  X a) Tập A gọi là tập ổn định trong của đồ thị nếu hai đỉnh bất kỳ trong A là không kề nhau, tức là không có một cạnh nào của đồ thị chứa hai đỉnh x và y b) Tập A gọi là tập ổn định trong cực đại của đồ thị G nếu: - A là tập ổn định trong - Nếu thêm vào một đỉnh ngoài A thì A không phải là ổn... của đồ thị vô hướng (có hướng) Mỗi cạnh (cung) e = (x,y) của đồ thị tương ứng với hai biến Dau[e], Cuoi[e] 4 2 1 2 1 3 3 G1 4 G2 Hình 1.12: Đồ thị minh họa việc biểu diễn bằng danh sách cạnh Ví dụ: Hình 1.12 đồ thị G1 và G2 được biểu diễn bằng danh sách cạnh (cung) như sau: Dau Cuoi 1 2 1 3 2 3 2 4 3 4 Danh sách cạnh G1 Dau Cuoi 1 2 2 3 3 1 4 1 4 2 Danh sách cung G2 Như vậy để lưu trữ đồ thị cần sử dụng. ..  (G) = Max { A / A L} và  (G) được gọi là số ổn định trong của đồ thị G Như vậy  (G) là số phần tử của một tập ổn định trong cực đại nào đó 1.5.2 Số ổn định ngoài 16 Cho đồ thị vô hướng G = và B  X a) Tập B được gọi là tập ổn định ngoài của đồ thị nếu với mỗi phần tử y  X \ B đều tồn tại x  B sao cho có cạnh nối giữa x và y, B còn được gọi là tập thống trị của đồ thị b) Tập B được gọi là... đó Nên việc biểu diễn và lưu trữ đồ thị trên máy tính là một vấn đề khá trọng tâm, phương thức biểu diễn từng loại đồ thị trên máy tính ảnh hưởng đến các giải thuật, phương pháp giải quyết các ứng dụng trên máy tính 1.6.1 Ma trận kề Phương pháp này dựa trên mối quan hệ giữa các cặp đỉnh, mỗi đồ thị được đặt tương ứng với một ma trận vuông cấp n (n là số đỉnh của đồ thị) Gọi ma trận kề là A = (aij); ... 1.3: Đa đồ thị 1.1.3 Giả đồ thị Giả đồ thị đồ thị có khuyên, chứa cạnh bội, cạnh đơn Tóm lại loại đồ thị tổng quát A B C D Hình 1.4: Giả đồ thị 1.2 Các loại đồ thị 1.2.1 Đồ thị vô hướng Đồ thị G... 1.1.1 Đồ thị đơn Đồ thị G = gọi đồ thị đơn hai đỉnh nối với không cạnh (cung), tức đồ thị cạnh bội, khuyên A B C D Hình 1.2: Đồ thị đơn 1.1.2 Đa đồ thị Đồ thị G = gọi đa đồ thị có... Với toán xếp lịch thi vận dụng lý thuyết đồ thị đồ thị vô hướng, đồ thị có hướng, đường chu trình Hamilton để ứng dụng cài đặt thuật toán có liên quan đến đồ thị để vẽ đồ thị chu trình kiểm tra

Ngày đăng: 16/11/2015, 11:52

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan