ỨNG DỤNG LẬP TRÌNH SYMBOLIC ĐỂ TÌM ĐƯỜNG ĐI, CHU TRÌNH EULER VÀ HAMILTON

33 1K 2
ỨNG DỤNG LẬP TRÌNH SYMBOLIC ĐỂ TÌM ĐƯỜNG ĐI, CHU TRÌNH EULER VÀ HAMILTON

Đ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

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỌC MÁY TÍNH  BÁO CÁO THU HOẠCH MÔN LẬP TRÌNH SYMBOLIC VÀ TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: ỨNG DỤNG LẬP TRÌNH SYMBOLIC ĐỂ TÌM ĐƯỜNG ĐI, CHU TRÌNH EULER VÀ HAMILTON Giảng viên phụ trách: Học viên thực hiện: PGS.TS ĐỖ VĂN NHƠN NGUYỄN NGỌC LÂM MSHV: CH1101098 LỚP: CH-K6 TP.HCM 02-2013 Lời mở đầu LỜI MỞ ĐẦU Lý thuyết đồ thị là một ngành khoa học được phát triển từ lâu, nhưng có nhiều ứng dụng hiện đại nhất là ứng dụng trong tin học ngày nay. Những ý tưởng cơ bản của nó được đưa ra từ thế kỷ XVIII bởi nhà toán học Thụy Sĩ tên là Leonhard Euler. Ông đã dùng đồ thị để giải quyết bài toán nổi tiếng về các cầu ở Konigsberg hay còn gọi là bài toán 7 chiếc cầu. Đặc biệt trong khoảng vài mươi năm trở lại đây, cùng với sự ra đời của máy tính điện tử và sự phát triển nhanh chóng của Tin học, Lý thuyết đồ thị càng được quan tâm nhiều hơn. Đặc biệt là các thuật toán trên đồ thị đã có nhiều ứng dụng trong nhiều lĩnh vực khác như: Mạng máy tính, Lý thuyết mã, Tối ưu hoá, Kinh tế học v.v Phạm vi của bài thu hoạch sẽ khảo sát và cài đặt ứng dụng minh họa, giải quyết bài toán tìm đường đi, chu trình Euler và Hamilton dựa trên sự hỗ trợ của phần mền toán học Maple 16. Maple 16 là phần mềm toàn diện để giải quyết các bài toán cao cấp. Bao gồm những công cụ xử lý, tính toán trong các lĩnh vực toán học như :  Đại số tuyến tính: ma trận, định thức, hệ phương trình tuyến tính, không gian véctơ,  Giải tích: hàm số, giới hạn, liên tục, đạo hàm, tích phân, phương trình vi phân, chuỗi …  Lý thuyết đồ thị: đỉnh, cung, liên thông, đường đi, chu trình,  Đồ họa, Toán rời rạc, Thống Kê, … và nhiều lĩnh vực khác của toán học. Với trên 3000 hàm số Maple là một trợ lý toán học tuyệt vời giúp giải quyết phần tính toán trong học tập và nghiên cứu. Lời mở đầu Nội dung của bài thu hoạch bao gồm 4 chương, chủ yếu lựa chọn và sắp xếp những nội dung then chốt nhất trong khoảng thời gian cho phép. Bài thu hoạch trình bày và giới thiệu một cách tương đối hệ thống những kiến thức cơ bản về đồ thị Euler và đồ thị Hamilton.  Chương 1. TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ Nội dung chương 1 trình bày tổng quan các khái niệm cơ bản về lý thuyết đồ thị, đồng thời giới thiệu cách để biểu diễn đồ thị trên máy tính.  Chương 2. ĐƯỜNG ĐI EULER VÀ ĐỒ THỊ EULER Chương 2 trình bày tổng quan các khái niệm cơ bản về đồ thị Euler như: đường đi Euler, chu trình Euler và các giải thuật.  Chương 3. ĐƯỜNG ĐI HAMILTON VÀ ĐỒ THỊ HAMILTON Chương 3 trình bày tổng quan các khái niệm cơ bản về đồ thị Hamilton như: đường đi Hamilton, chu trình Hamilton.  Chương 4. CÀI ĐẶT ỨNG DỤNG MINH HỌA Chương 4 sẽ cài đặt ứng dụng minh họa cho bài toán tìm đường đi, chu trình Euler và Hamilton dựa trên sự hỗ trợ của phần mền toán học Maple 16. Lời cảm ơn LỜI CẢM ƠN Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở khoa, Khoa Học Máy Tính - Trường Đại Học Công Nghệ Thông Tin đã đem hết tâm huyết truyền đạt vốn kiến thức quý báu cho chúng em. Em xin chân thành cảm ơn PGS.TS Đỗ Văn Nhơn đã truyền đạt kiến thức môn Lập trình Symbolic & trí tuệ nhân tạo. Qua đó giúp em có đầy đủ kiến thức để hoàn thành bài thu hoạch này. Nhân đây em cũng xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, đồng nghiệp đã động viên tin thần cho em trong suốt quá trình học tập của mình. Sau cùng, em xin kính chúc quý Thầy Cô, Khoa Học Máy Tính cùng PGS.TS Đỗ Văn Nhơn dồi dào sức khỏe để thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. Một lần nữa em xin chân thành cảm ơn ! Nhận xét của giảng viên phụ trách TP. HCM, ngày 02 tháng 02 năm 2013 Sinh viên thực hiện (ký và ghi rõ họ tên) Nguyễn Ngọc Lâm NHẬN XÉT CỦA GIẢNG VIÊN PHỤ TRÁCH Nhận xét của giảng viên phụ trách Mục lục TP. HCM, ngày tháng năm 2013 Giảng viên phụ trách (ký và ghi rõ họ tên) PGS. TS Đỗ Văn Nhơn MỤC LỤC DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Phân loại đồ thị 2 2.1 Mô hình đồ thị của bài toán 7 cây cầu 6 2.2 Đồ thị Euler 8 2.3 Chu trình Hamilton 11 4.1 Đồ thị Euler trong Maple 16 16 4.2 Đồ thị Hamilton trong Maple 16 18 DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 1.1 Danh sách kề 4 Chương 1. Tổng quan về lý thuyết đồ thị Chương 1. TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ 1.1 Các khái niệm cơ bản về đồ thị 1.1.1 Định nghĩa đồ thị (Graph) Là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó. Được mô tả hình thức: G = (V, E) Trong đó:  V gọi là tập các đỉnh (Vertices).  E gọi là tập các cạnh (Edges). Có thể coi E là tập các cặp (u, v) với u và v là hai đỉnh của V. 1.1.2 Đơn đồ thị G được gọi là đơn đồ thị nếu giữa hai đỉnh u, v của V có nhiều nhất là 1 cạnh trong E nối từ u tới v. 1.1.3 Đa đồ thị G được gọi là đa đồ thị nếu giữa hai đỉnh u, v của V có thể có nhiều hơn 1 cạnh trong E nối từ u tới v. CH1101098_Nguyễn Ngọc Lâm Trang 8 Chương 1. Tổng quan về lý thuyết đồ thị 1.1.4 Đồ thị vô hướng G được gọi là đồ thị vô hướng nếu các cạnh trong E là không định hướng, tức là cạnh nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh v, u. Hay nói cách khác, tập E gồm các cặp (u, v) không tính thứ tự. (u, v) ≡ (v, u). 1.1.5 Đồ thị có hướng G được gọi là đồ thị có hướng nếu các cạnh trong E là có định hướng, có thể có cạnh nối từ đỉnh u tới đỉnh v nhưng chưa chắc đã có cạnh nối từ đỉnh v tới đỉnh u. Hay nói cách khác, tập E gồm các cặp (u, v) có tính thứ tự: (u, v) ≠ (v, u). Trong đồ thị có hướng, các cạnh được gọi là các cung. Đồ thị vô hướng cũng có thể coi là đồ thị có hướng nếu như ta coi cạnh nối hai đỉnh u, v bất kỳ tương đương với hai cung (u, v) và (v, u). Hình 1.1 Phân loại đồ thị 1.1.6 Bậc của đỉnh Bậc của đỉnh v trong đồ thị G = (V, E), ký hiệu deg(v), là số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó. Đỉnh v gọi là đỉnh treo nếu deg(v) = 1 và gọi là đỉnh cô lập nếu deg(v) = 0. CH1101098_Nguyễn Ngọc Lâm Trang 9 Chương 1. Tổng quan về lý thuyết đồ thị 1.1.7 Đường đi và chu trình Đường đi độ dài n từ đỉnh u tới đỉnh v, với n là một số nguyên không âm trong một đồ thị vô hướng là một dãy các cạnh {x 0 , x 1 },{x 1 , x 2 },…,{x n-1 , x n }, với u = x 0 và x n = v. Đường đi được gọi là một chu trình nếu nó bắt đầu và kết thúc tại cùng một đỉnh. 1.1.8 Tính liên thông Một đồ thị vô hướng G = (V, E) được gọi là liên thông nếu có đường đi giữa mọi cặp đỉnh phân biệt của đồ thị. Một đồ thị có hướng gọi là liên thông mạnh nếu có đường đi từ a tới b và từ b tới a với mọi đỉnh a và b của đồ thị. Một đồ thị có hướng gọi là liên thông yếu nếu luôn tồn tại đường đi giữa hai đỉnh khi ta không quan tâm tới hướng của các cạnh. 1.1.9 Thành phần liên thông Thành phần liên thông: một đồ thị G = (V, E) không liên thông là hợp của hai hay nhiều đồ thị con liên thông. Mỗi cặp các đồ thị con này không có đỉnh chung. Các đồ thị con liên thông rời nhau như vậy được gọi là các thành phần liên thông của đồ thị G = (V, E). 1.1.10 Điểm khớp Một đỉnh v được gọi là điểm khớp của đồ thị G = (V, E) nếu loại bỏ v cùng các cạnh liên thuộc với nó khỏi đồ thị sẽ làm tăng số thành phần liên thông của đồ thị. 1.1.11 Cầu của đồ thị Một cạnh của đồ thị G = (V, E) gọi là cầu, nếu loại bỏ cạnh đó khỏi đồ thị sẽ làm tăng số thành phần liên thông của đồ thị. CH1101098_Nguyễn Ngọc Lâm Trang 10 [...]... sao để giải quyết bài toán, Về mặt lý thuyết bài thu hoạch đã trình bày tổng quan những khái niệm căn bản nhất về đồ thị Euler và đồ thị Hamilton Các giải thuật và quy tắc để tìm đường đi, chu trình Euler và Hamilton Các thuật giải được trình bày rõ ràng, dễ hiểu và mỗi thuật giải đều có ví dụ minh họa áp dụng Về mặt ứng dụng bài thu hoạch đã cài đặt được các thủ tục sau:  Thủ tục tìm đường đi Euler. .. G có chu trình Hamilton nếu bậc của mỗi đỉnh ít nhất bằng n/2 CH1101098_Nguyễn Ngọc Lâm Trang 19 Chương 3 Đường đi Hamilton và đồ thị Hamilton [3] Định lý Ore: Nếu G là một đơn đồ thị có n đỉnh, với n ≥ 3 sao cho deg(u) + deg(v) ≥ n với mọi cặp đỉnh không liền kề u và v trong G, khi đó G sẽ có chu trình Hamilton 3.2.3 Thuật toán tìm chu trình Hamilton Để liệt kê chu trình Hamilton và đường đi Hamilton. .. Euler Đường đi Euler trong G là đường đi đơn chứa mọi cạnh của G Đồ thị được gọi là đồ thị Euler nếu nó có chu trình Euler, và gọi là đồ thị nửa Euler nếu nó có đường đi Euler Ví dụ: xét các đồ thị sau Graph A Graph B Graph C Chú thích:    Graph A: đồ thị không nửa Euler Graph B: đồ thị nửa Euler Graph C: đồ thị Euler Điều kiện cần và đủ để một đồ thị là đồ thị Euler được Euler tìm ra vào năm 1736... xuất chu trình Hamilton If HamiltonianCycle rỗng For i in HamiltonianCycle do printf(i); End For End if Bước 4: Kiểm tra và xuất đường đi Hamilton If HamiltonianPaths rỗng For i in HamiltonianPaths do printf(i); End For End if CH1101098_Nguyễn Ngọc Lâm Trang 29 Chương 4 Cài đặt ứng dụng minh họa Bước 5: Xuất thông báo không tồn tại chu trình, đường đi Hamilton If HamiltonianPaths is rỗng and HamiltonianCycle... toán tìm đường qua 7 cầu, mỗi cầu đúng một lần có thể tổng quát hoá bằng bài toán: Có tồn tại chu trình đơn trong đa đồ thị chứa tất cả các cạnh ? Hình 2.1 Mô hình đồ thị của bài toán 7 cây cầu CH1101098_Nguyễn Ngọc Lâm Trang 14 Chương 2 Đường đi Euler và đồ thị Euler 2.2 Đường đi Euler và đồ thị Euler 2.2.1 Định nghĩa Chu trình đơn chứa tất cả các cạnh của đồ thị G được gọi là chu trình Euler Đường. .. gọi là đường đi Hamilton Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các đỉnh còn lại mỗi đỉnh đúng một lần rồi quay trở về v được gọi là chu trình Hamilton Đồ thị G được gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton và gọi là đồ thị nửa Hamilton nếu nó có đường đi Hamilton Ví dụ: xét các ví dụ sau Graph A Graph B Graph C Chú thích:    Graph A: không là nửa Hamilton Graph B: nửa Hamilton. .. HamiltonianPaths is rỗng and HamiltonianCycle is rỗng then printf(“Không tồn tại đường đi chu trình Hamilton ); End If 4.1.5 Thủ tục cho giải thuật tìm đường đi và chu trình Hamilton > Hamiltonian:= proc(Graph::graph) local i,HamiltonianPaths,HamiltonianCycle ,Hamilton, Result; HamiltonianPaths:= []; HamiltonianCycle:= []; Hamilton: = proc(G::graph,v) local Duplicate,Neighbors; Result:= [op(Result),v];... {d, k}, {b, d}]: Output: Tất cả các chu trình Hamilton: [a, b, c, d, k, a], [a, k, d, c, b, a], Tất cả các đường đi Hamilton: [a, k, d, b, c], [c, b, d, k, a], [c, d, b, a, k], [k, a, b, d, c] CH1101098_Nguyễn Ngọc Lâm Trang 31 Kết luận KẾT LUẬN Bài thu hoạch tập trung tìm hiểu lập trình Symbolic & trí tuệ nhận tạo giải quyết bài toán tìm đường đi, chu trình Euler và Hamilton trong lý thuyết đồ thị như... xứng của hai nửa bàn cờ Ta tìm hành trình của con mã trên một nửa bàn cờ, rồi lấy đối xứng cho nửa bàn cờ còn lại, sau đó nối hành trình của hai nửa đã tìm lại với nhau Trò chơi và câu đố trên dẫn tới việc khảo sát một lớp đồ thị đặc biệt, đó là đồ thị Hamilton CH1101098_Nguyễn Ngọc Lâm Trang 18 Chương 3 Đường đi Hamilton và đồ thị Hamilton 3.2 Đường đi Hamilton và đồ thị Hamilton 3.2.1 Định nghĩa Đường. .. Ngọc Lâm Trang 30 Chương 4 Cài đặt ứng dụng minh họa printf("Tất cả các chu trình Hamilton: \n"); for i in HamiltonianCycle do lprint(i) od; fi; if HamiltonianPaths [] then printf("Tất cả các đường đi Hamilton: \n"); for i in HamiltonianPaths do lprint(i) od; fi; if (HamiltonianCycle = []) and (HamiltonianPaths = []) then printf("Không có chu trình - Đường đi Hamilton! ") fi; end: 4.1.6 Dữ liệu thử . KHOA HỌC MÁY TÍNH  BÁO CÁO THU HOẠCH MÔN LẬP TRÌNH SYMBOLIC VÀ TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: ỨNG DỤNG LẬP TRÌNH SYMBOLIC ĐỂ TÌM ĐƯỜNG ĐI, CHU TRÌNH EULER VÀ HAMILTON Giảng viên phụ trách: Học viên. Hamilton như: đường đi Hamilton, chu trình Hamilton.  Chương 4. CÀI ĐẶT ỨNG DỤNG MINH HỌA Chương 4 sẽ cài đặt ứng dụng minh họa cho bài toán tìm đường đi, chu trình Euler và Hamilton dựa trên sự. 2. Đường đi Euler và đồ thị Euler 2.2 Đường đi Euler và đồ thị Euler 2.2.1 Định nghĩa Chu trình đơn chứa tất cả các cạnh của đồ thị G được gọi là chu trình Euler. Đường đi Euler trong G là đường

Ngày đăng: 10/04/2015, 01:34

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • LỜI CẢM ƠN

  • NHẬN XÉT CỦA GIẢNG VIÊN PHỤ TRÁCH

  • Chương 1. TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ

    • 1.1 Các khái niệm cơ bản về đồ thị

      • 1.1.1 Định nghĩa đồ thị (Graph)

      • 1.1.2 Đơn đồ thị

      • 1.1.3 Đa đồ thị

      • 1.1.4 Đồ thị vô hướng

      • 1.1.5 Đồ thị có hướng

      • 1.1.6 Bậc của đỉnh

      • 1.1.7 Đường đi và chu trình

      • 1.1.8 Tính liên thông

      • 1.1.10 Điểm khớp

      • 1.1.11 Cầu của đồ thị

      • 1.2 Biểu diễn đồ thị trên máy tính

        • 1.2.1 Ma trận kề

        • 1.2.2 Danh sách kề

        • 1.2.3 Danh sách cạnh

        • Chương 2. ĐƯỜNG ĐI EULER VÀ ĐỒ THỊ EULER

          • 2.1 Tình huống dẫn nhập: “Bài toán 7 cây cầu”

          • 2.2 Đường đi Euler và đồ thị Euler

            • 2.2.1 Định nghĩa

            • 2.2.2 Các định lý

            • 2.2.3 Thuật toán Fleury tìm chu trình Euler

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

Tài liệu liên quan