1. Trang chủ
  2. » Công Nghệ Thông Tin

Giải thuật đồ thị trường đại học công nghiệp hà nội

65 25 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 2,61 MB
File đính kèm GiaiThuatDothi.rar (2 MB)

Nội dung

LỜI MỞ ĐẦU Ngày nay, khoa học kĩ thuật ngày phát triển, đặc biệt ngành công nghệ thông tin Ứng dụng công nghệ tràn ngập mặt đời sống Từ vật chất điện thoại, tivi, tủ lạnh, điều hòa, điều khiển máy … tới mạng xã hội facebook, zalo, google ….tất ứng dụng công nghệ thông tin Thế giới ngày đại nghành công nghệ thông tin ngày phát triển Chính tầm quan trọng đa dạng ngành công nghệ thông tin mà đòi hỏi sinh viên công nghệ thông tin cần phải nắm vững nguyên lý ứng dụng của học công nghệ thông tin nói chung các cấu trúc liệu giải thuật nói riêng. Trong cấu trúc giữ liệu và giải thuật thì các giải thuật vô cùng quan trọng để ứng dụng vào các bài toán thực tế. Ví dụ bài toán chia phòng thi cho sinh viên,…. Trong đề tài nghiên cứu này sẽ nghiên cứu về các giải thuật liên quan đến đồ thị, những thuật toán cơ bản nhất có thể dễ dàng cài đặt trên máy tính. Từ những kiến thức đã được học cùng với việc nghiên cứu các tài liệu trên Internet, và nhất là nhờ sự hướng dẫn, chỉ bảo tận tình của thầy giáo T.S Hoàng Quang Huy, chúng em đã hoàn thành đề tài này. Nhưng do quá trình học về kiến thức này còn nhiều khó khăn, và sự hiểu biết của chúng em còn hạn hẹp nên kết quả vẫn còn nhiều thiếu sót. Kính mong thầy nhận xét và đóng góp ý kiến để nhóm có thể hoàn thiện được bài tập này.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  - BÁO CÁO THỰC TẬP CHUYÊN NGÀNH KỸ THUẬT PHẦN MỀM ĐỀ TÀI Các Giải Thuật Đồ Thị Giáo viên hướng dẫn: T.S Hoàng Quang Huy Sinh viên thực hiện: Ngơ Đình Thơng 2018604381 Lớp: Kỹ thuật phần mềm Khóa: 13 Hà Nội, 2021 TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  - BÁO CÁO THỰC TẬP CHUYÊN NGÀNH KỸ THUẬT PHẦN MỀM ĐỀ TÀI Các Giải Thuật Đồ Thị Giáo viên hướng dẫn: T.S Hoàng Quang Huy Sinh viên thực hiện: Ngô Đinh Thông 2018604381 Lớp: Kỹ thuật phần mềm Khóa: 13 Hà Nội, 2021 LỜI MỞ ĐẦU Ngày nay, khoa học kĩ thuật ngày phát triển, đặc biệt ngành công nghệ thông tin Ứng dụng công nghệ tràn ngập mặt đời sống Từ vật chất điện thoại, tivi, tủ lạnh, điều hòa, điều khiển máy … tới mạng xã hội facebook, zalo, google ….tất ứng dụng công nghệ thông tin Thế giới ngày đại nghành công nghệ thông tin ngày phát triển Chính tầm quan trọng đa dạng ngành cơng nghệ thơng tin mà địi hỏi sinh viên cơng nghệ thơng tin cần phải nắm vững nguyên lý ứng dụng học cơng nghệ thơng tin nói chung cấu trúc liệu giải thuật nói riêng Trong cấu trúc giữ liệu giải thuật giải thuật vơ quan trọng để ứng dụng vào tốn thực tế Ví dụ tốn chia phịng thi cho sinh viên,… Trong đề tài nghiên cứu nghiên cứu giải thuật liên quan đến đồ thị, thuật toán dễ dàng cài đặt máy tính Từ kiến thức học với việc nghiên cứu tài liệu Internet, nhờ hướng dẫn, bảo tận tình thầy giáo T.S Hoàng Quang Huy, chúng em hồn thành đề tài Nhưng q trình học kiến thức cịn nhiều khó khăn, hiểu biết chúng em hạn hẹp nên kết cịn nhiều thiếu sót Kính mong thầy nhận xét đóng góp ý kiến để nhóm hoàn thiện tập Chân thành cảm ơn thầy! Mục Lục LỜI MỞ ĐẦU .3 Mở Đầu 1, Lý chọn đề tài 2, Mục đích nghiên cứu .7 3, Đối tượng phạm vi nghiên cứu 4, Ý nghĩa khoa học, thực tiễn kết mong muốn đạt đề tài 5, Cấu trúc báo cáo Chương I, Tổng quan giải thuật đồ thị .9 1,1 Giới thiệu chung 1.2 Những vấn đề tồn 10 1.3 Định hướng phát triển 10 Chương 2: Cơ sở lý thuyết 10 2.1 Lịch sử phát triển giải thuật đồ thị .10 2.2 Các khái niệm .11 2.3 Một số dạng đồ thị 11 2.3.1 Đồ thị vô hướng 11 2.3.2 Đồ thị có hướng 12 2.3.3 Đơn đồ thị đa đồ thị .13 2.4 Cấu trúc liệu đồ thị .13 2.4.1 Các cấu trúc danh sách .13 2.4.2 Cấu trúc ma trận 14 2.4.2.2 Ma trận kề .15 2.4.2.3 Ma trận dân nạp 19 2.5 Đánh giá độ phức tạp thuật toán lựa chọn 19 Chương 3: Các giải thuật đồ thị .21 3.1 Các giải thuật tô màu đồ thị 21 3.1.1 Các khái niệm 21 3.1.2 Ứng dụng tô màu đồ thị 22 3.1.3 Giải thuật 23 3.1.3.1Bài toán .23 3.1.3.3 Giải thuật tham lam tô màu đồ thị 25 3.2 Giải thuật Xếp Hạng – PageRank 29 3.2.1 Khái niệm 29 3.2.2 Mô tả thuật toán 30 3.2.3 Giải thuật 32 3.3 Các Giải thuật tìm kiếm DFS,BFS 34 3.3.1 Tìm kiếm theo chiều sâu – DFS 34 a, Khái niệm 34 3.3.2 Tìm kiếm theo chiều rộng – BFS 39 3.3.3 Giải thuật kéo dài tối thiểu 45 a, Khái niệm 45 b, thuật toán Prim 48 c, Thuật toán Kruskal 55 Mở Đầu 1, Lý chọn đề tài Trên thực tế có nhiều tốn liên quan tới tập đối tượng mối liên hệ chúng, địi hỏi tốn học phải đặt mơ hình biểu diễn cách chặt chẽ tổng qt ngơn ngữ ký hiệu, đồ thị Những ý tưởng đưa từ kỷ thứ XVIII nhà toán học Thuỵ Sĩ Leonhard Euler, ơng dùng mơ hình đồ thị để giải toán cầu Konigsberg tiếng Qua ví dụ để thấy giải thuật đồ thị cần thiết toán thực tế Đồ thị sử dụng để giải nhiều vấn đề sống thực Đồ thị sử dụng để biểu diễn mạng Các mạng bao gồm đường dẫn thành phố mạng điện thoại mạng mạch Đồ thị sử dụng mạng xã hội linkedIn, Facebook Ví dụ, Facebook, người biểu diễn đỉnh (hoặc nút) Mỗi nút cấu trúc chứa thông tin id người, tên, giới tính, ngơn ngữ, v.v Bản nghiên cứu chủ yếu liên quan đến giải thuật đồ thị cách cài đặt với ngơn ngữ lập trình 2, Mục đích nghiên cứu Nội dung báo cáo tập trung tìm hiểu giới thiệu giải thuật đồ thị Đây tốn có ứng dụng nhiều sống, hay thấy nhiều môn cấu trúc liệu giải thuật, toán rời rạc,… 3, Đối tượng phạm vi nghiên cứu Báo cáo tập trung trình bày kết nghiên cứu em giải thuật liên quan đến đồ thị phẳng Tuy nhiên, thời điểm có nhiều giải thuật đồ thị Vì vậy, phạm vi nghiên cứu báo cáo nghiên cứu vê giải thuật thị hay gặp, có tính ứng dụng cao thực tế như: giải thuật tìm đường ngắn nhất, tơ màu đồ thị, tìm kiếm cây,… Cuối cùng, Sau tìm hiểu em vận dụng kết tìm hiểu vào việc sử dụng ngơn ngữ java để minh họa bai toán cụ thể 4, Ý nghĩa khoa học, thực tiễn kết mong muốn đạt đề tài Có lẽ, giải thuật liên quan đến đồ thị áp dụng vào nhiều vào lĩnh vực khác đời sống Lấy ví dụ đơn giản việc có nhiều hệ thống phức tạp liên quan đến đồ thị hệ thống giao thông, hệ thống mạng, hệ thống truyền tải điện, Từ đó, giải thuật đồ thị áp dụng vào để tìm kết liên quan tới trường hợp cụ thể đường ngắn để sử dụng dây điện đỡ tốn Hay toán đơn giản sử dụng thường xun chia phịng thi Nó áp dụng giải thuật đồ thị tơ màu đồ thị Xa hơn, hệ thống hay website sử dụng giải thuật xếp, tìm kiếm dựa đồ thị để tiết kiệm thời gian hay nhớ với liệu lớn, việc áp dụng giải thuật đồ thị vô hiệu Sau nghiên cứu giải thuật vê đồ thị Kết em mong muốn có nắm rõ giải thuật đô thị, sau áp dụng để cài đặt với ngơn ngữ java 5, Cấu trúc báo cáo Chương 1: Tổng quan giải thuật đồ thị Chương 2: Cơ sở lý thuyết Chương 3: Các giải thuật đồ thị Chương 4: Ứng dụng giải thuật đồ thị sống Phần cuối tài liệu tham khảo số phụ lục hướng dẫn triển khai ứng dụng Chương I, Tổng quan giải thuật đồ thị 1,1 Giới thiệu chung Đồ thị học thuật mơ hình sử dụng để biểu diễn đối tượng có quan hệ với theo cách Hạn chế khoa học máy tính, đồ thị sử dụng để mơ hình hóa mạng truyền thơng, kiến trúc hát máy tính., Rất nhiều vấn đề lĩnh vực khác cơng nghệ điện, học tập , trị, kinh tế, biểu diễn thị đồ Khi vấn đề mơ hình hóa thị đồ, vấn đề giải cách sử dụng thuật tốn đồ thị Vì vậy, thị đồ thuật tốn có phạm vi áp dụng lớn có đặc biệt quan trọng Trong chương trình này, nghiên cứu số thuật toán quan trọng đồ thị: thuật toán qua đồ thị, thuật tốn tìm đường ngắn nhất, tìm bao ngắn Nghiên cứu thuật toán đồ thị giúp ta hiểu rõ cách vận dụng cơng cụ thiết kế kỹ thuật (đã trình bày chương 16) để giải vấn đề cụ thể 1.2 Những vấn đề tồn 1.3 Định hướng phát triển Chương 2: Cơ sở lý thuyết 2.1 Lịch sử phát triển giải thuật đồ thị Một kết lý thuyết đồ thị xuất báo Leonhard Euler Bảy cầu Königsberg, xuất năm 1736 Bài báo xem kết topo hình học, tức là, khơng phụ thuộc vào độ đo Nó diễn tả mối liên hệ sâu sắc lý thuyết đồ thị Năm 1845, Gustav Kirchhoff đưa Định luật Kirchhoff cho mạch điện để tính điện cường độ dịng điện mạch điện Năm 1852 Francis Guthrie đưa toán bốn màu vấn đề liệu với bốn màu tơ màu đồ cho khơng có hai nước biên giới tơ màu Bài toán xem khai sinh lý thuyết đồ thị, giải sau kỉ vào năm 1976 Kenneth Appel Wolfgang Haken Trong cố gắng giải toán này, nhà toán học phát minh nhiều thuật ngữ khái niệm tảng cho lý thuyết đồ thị 2.2 Các khái niệm Giải thuật hay cịn gọi thuật tốn – tiếng Anh Algorithms: tập hợp hữu hạn thị để thực thi theo thứ tự để thu kết mong muốn Nói chung giải thuật độc lập với ngơn ngữ lập trình, tức giải thuật triển khai nhiều ngơn ngữ lập trình khác Một đồ thị (Graph) dạng biểu diễn hình ảnh tập đối tượng, cặp đối tượng kết nối link Các đối tượng nối liền biểu diễn điểm gọi đỉnh (vertices), link mà kết nối đỉnh với gọi cạnh (edges) 10 {A,B,D,E,F} {A,B,C,D,E, F} (B,C) = (D,B) = chu trình (D,E) = 15 chu trình (E,C) = 5V (E,G) = (F,E) = chu trình (F,G) = 11 {C,G} Ở bước ta chọn C G C có khoảng cách tới E 5, G có khoảng cách tới E Chọn C cạnh EC {G} Đỉnh G đỉnh cịn lại Nó có khoảng cách tới F 11, khoảng cách tới E E gần nên chọn đỉnh G cạnh EG {} Hiện tất đỉnh nằm bao trùm nhỏ tô màu xanh Tổng trọng số (B,C) = chu trình (D,B) = chu trình (D,E) = 15 chu trình (E,G) = 9V (F,E) = chu trình (F,G) = 11 {A,B,C,D,E, F,G} (B,C) = chu trình (D,B) = chu trình (D,E) = 15 chu trình (F,E) = chu trình (F,G) = 11 chu trình 39 Độ phức tạp tính tốn Cấu trúc liệu tìm cạnh có trọng số nhỏ Độ phức tạp thời gian (tổng cộng) 51 Tìm kiếm ma trận kề O(V2) Đống nhị phân danh sách kề O((V + E) log V) = O(E log V) Đống Fibonacci danh sách kề O(E + V log V) Giải thuật prim #include #include using namespace std; #define TRUE #define FALSE #define MAX 10000 int a[100][100];//ma trận trọng số đồ thị int n;//số đỉnh đồ thị int m;//số cạnh đồ thị int sc;//số cạnh khung nhỏ int w;//Độ dài khung nhỏ int chuaxet[100];//mảng đánh dấu danh sách đỉnh thêm vào khung nhỏ int cck[100][3];//danh sách cạnh khung nhỏ void nhap(void){ int i, j, k; freopen("baotrum.in", "r",stdin); cin>>n>>m; cout

Ngày đăng: 17/12/2021, 07:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w