Đồ Án Một số vấn đề ứng dụng của đồ thị trong Tin học

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    Lời nói đầu

    Bước sang năm bản lề của thế kỷ 21, nhìn lại thế kỷ 20 là thế kỷ mà con người đạt được nhiều thành tựu khoa học rực rỡ nhất, một trong những thành tựu đó là sự bùng nổ của ngành khoa học máy tính. Sự phát triển kỳ diệu của máy tính trong thế kỷ này gắn liền với sự phát triển toán học hiện đại, đó là toán rời rạc.

    Toán học rời rạc nghiên cứu các 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 các lĩnh vực như quan hệ, lý thuyết đồ thị, lôgíc toán, ngôn ngữ hình thức . trong đó lý thuyết đồ thị là một bộ phận trọng tâm với nhiều khối lượng kiến thức khá lý thú và được nghiên cứu nhiều nhất.
    Toán rời rạc nói chung và lý thuyết đồ thị nói riêng là công cụ thiết yếu cho nhiều ngành khoa học kỹ thuật, và là một thành phần quan trọng trong học vấn đối với sinh viên các ngành kỹ thuật đặc biệt sinh viên ngành Tin học. Lý thuyết đồ thị, với cách tiếp cận đối tượng nghiên cứu và phương pháp tư duy khá độc đáo thực sự ngày càng hữu ích có nhiều ứng dụng phong phú và gây không ít bất ngờ. Máy tính mà bản thân nó với các quá trình làm việc mang tính rời rạc, nên điều này tương hợp gắn chặt lý thuyết đồ thị với công nghệ máy tính trong việc nghiên cứu các đối tượng có tính chất rời rạc.
    Lý thuyết đồ thị có nhiều ứng dụng thực tiễn đặc biệt là trong lĩnh vực Tin học, muốn hiểu biết sâu sắc các vấn đề Tin học cần nắm vững các kiến thức về Toán học rời rạc mà trong đó đặc biệt là lý thuyết đồ thị. Từ những nhận thức trên, với đề tài "Một số vấn đề ứng dụng của đồ thị trong Tin học" đây không chỉ là nhiệm vụ em phải thực hiện trong kỳ bảo vệ luận văn tốt nghiệp mà thực sự đây là đề tài mà em rất quan tâm và say mê nghiên cứu.
    Với tấm lòng biết ơn sâu sắc, em xin chân thành cảm ơn Thầy giáo Pgs. Ts Đỗ Đức Giáo là người trực tiếp, tận tình, chu đáo giảng dạy và hướng dẫn em hoàn thành cuốn luận văn này. Nhân dịp này em cũng xin cảm ơn sự giúp đỡ, dạy bảo tận tình của các thầy cô giáo, cán bộ Khoa Công Nghệ Thông Tin trường Đại học Dân lập Đông Đô và những bạn học đã đóng góp những ý kiến bổ ích cho bản luận văn này.
    Do trình độ hiểu biết còn hạn chế, thời gian chuẩn bị không nhiều, bản luận văn này còn nhiều sai sót và chưa đầy đủ, em rất mong nhận được sự góp ý của các thầy cô và các bạn quan tâm.



    Giới thiệu đề tài

    "Một số vấn đề ứng dụng của đồ thị trong Tin học" là đề tài mang tính nghiên cứu lý thuyết, có tầm quan trọng và có ý nghĩa thiết thực cao. Khái niệm đồ thị ở đây khác với những đồ thị thông thường đã biết, đây là 1 lĩnh vực về lý thuyết đồ thị nghiên cứu những cấu trúc mang tính rời rạc là 1 bộ phận quan trọng của Toán học rời rạc.
    Lý thuyết đồ thị có nhiều ứng dụng trong các ngành kỹ thuật và đã được nghiên cứu nhiều với khối lượng kiến thức khá đồ sộ. Đề tài được thực hiện trước tiên sẽ đề cập tới những vấn đề chủ yếu của Lý thuyết đồ thị, sau đó tuỳ từng nội dung cũng sẽ xoay quanh tới những ứng dụng của đồ thị trong Tin học, giải quyết các bài toán trong Tin học như xác định xem hai máy tính trong mạng có thể truyền tin được hay không nhờ mô hình đồ thị của mạng máy tính, hay là bài toán nối mạng máy tính sao cho tổng chi phí là nhỏ nhất hoặc việc khắc phục những gói tin bị truyền sai nhờ các giải thuật đã nghiên cứu về đồ thị. Có những ứng dụng của đồ thị không đi trực tiếp vào các lĩnh vực trong Tin học, ví dụ như bài toán lập lịch trong công tác hành chính, xác định đường đi ngắn nhất giữa 2 điểm nút giao thông, ta cũng xem đó là ứng dụng 1 cách gián tiếp trong Tin học vì nếu được mô hình tốt những bài toán đó bằng đồ thị thì sẽ giải quyết chúng dễ dàng bằng máy tính, hoặc là về chơi cờ Ca rô tuy chỉ là môn chơi về trí tuệ nhưng đồ thị cũng hỗ trợ tốt cho nhưng ai muốn lập trình chơi cờ Ca rô trên máy tính khi đã mô hình được các thế cờ bằng đồ thị.

    Đề tài được thực hiện xong bao gồm những nội dung sau đây:

    Chương 1 Một số vấn đề cơ bản của đồ thị
    Nhằm trình bày những khái niệm cơ bản nhất về lý thuyết đồ thị, là cơ sở tìm hiểu sâu sắc hơn các vấn đề tiếp theo. Ngoài các định nghĩa, tính chất cơ bản của đồ thị, chương này có trình bày đến 1 vấn đề quan trọng, đó là cách lưu trữ, biểu diễn và xử lý đồ thị trên máy tính khi đã xét những mô hình biểu diễn hình học. Cấu trúc dữ liệu liên quan chặt chẽ đến giải thuật, việc biểu diễn đồ thị trên máy tính như thế nào sẽ ảnh hưởng đến cách giải các bài toán ứng dụng bằng máy tính. Trong chương có trình bày một số phương pháp biểu diễn đồ thị trên máy tính, mỗi phương pháp đều có những ưu và khuyết điểm riêng, vì vậy cần lựa chọn phương pháp sao cho phù hợp với đặc điểm từng bài toán và đạt được hiệu quả về thuật toán.
    Khi đưa các ví dụ minh họa, nhất là về phần đồ thị đặc biệt ta sẽ thấy được ứng dụng của đồ thị trong mô hình về mạng máy tính.

    Chương 2 Số ổn định và tô màu đồ thị
    Số ổn định của đồ thị bao gồm số ổn định trong, số ổn định ngoài và nhân đồ thị, nghiên cứu vấn đề này ta sẽ thấy được mối quan hệ giữa các tập đỉnh của một đồ thị. Một ứng dụng khá lý thú khi đề cập tới vấn đề này đó là xây dựng mô hình đồ thị cho bài toán lập trình chơi cờ carô, có sử dụng đến tập ổn định ngoài của đồ thị.
    ở chương này ta cũng sẽ gặp đến một ứng dụng khá thiết thực khi bàn đến vấn đề tô màu của đồ thị, hay còn gọi là sắc số của đồ thị, ứng dụng đó là bài toán lập lịch. Lập lịch là công tác hành chính phổ biến, hay gặp ở các cơ quan, xí nghiệp, trường học . cũng đã có nhiều sản phẩm phần mềm phục vụ cho việc lập lịch.

    Chương 3 Chu trình, đường đi Euler và Hamilton trong đồ thị
    Trình bày những khái niệm về chu trình Euler, đường Euler, chu trình Hamilton, đường Hamilton các tính chất của chúng đồng thời đưa ra 1 số thuật toán ứng dụng để tìm các đường, chu trình Euler, Hamilton.

    Chương 4 Đường đi ngắn nhất trong đồ thị
    Bài toán đường đi ngắn nhất hay được đề cập tới trong lý thuyết đồ thị, đây cũng là loại bài toán tối ưu có nhiều ứng dụng rộng rãi. Trong đồ thị thường đặt ra các loại tìm đường đi ngắn nhất như sau:
    - Đường đi ngắn nhất nhất giữa 1 cặp đỉnh đã được xác định trước.
    - Đường đi ngắn nhất giữa 1 đỉnh với tất cả các đỉnh còn lại.
    - Đường đi ngắn nhất giữa tất cả các cặp đỉnh bất kỳ.
    Để giải quyết các loại bài toán này, trong chương sẽ trình bày 1 số thuật toán chính hay được sử dụng như: Dijkstra, Ford-Bellman và Floyd.
    Về mặt ứng dụng, trong chương sẽ nêu ra giải thuật Viterbi cho ứng dụng khá quan trọng trong lĩnh vực Tin học đó sửa gói tin sai khi truyền tin trong mạng máy tính.
    Khi nói đến đường đi ngắn nhất, người ta cũng hay nói đến mở rộng của bài toán đường đi ngắn nhất thành đường đi dài nhất. Trong vấn đề này ta lại có 1 ứng dụng nữa trong công tác lập lịch, đó là sơ đồ mạng PERT cho việc lập dự án thi công một công trình. ứng dụng này rất thực tiễn và đã đem lại nhiều hiệu quả cao cho việc thi công một công trình.

    Chương 5 Một số vấn đề về cây
    Đây là chương cuối cùng và là chương sẽ đề cập tới nhiều ứng dụng nhất. Cây là một trường hợp riêng của đồ thị, để nghiên cứu hết các tính chất, khái niệm về cây cần cả 1 khối lượng kiến thức đồ sộ và đã có những đề tài cấp luận văn hoặc hơn thế nữa nghiên cứu về cây. Trong chương này chỉ đề cập tới những điểm chính nhất, cơ bản nhất về cây và tập trung khai thác những ứng dụng của nó.
    Những ứng dụng của cây thì rất nhiều, trong chương chỉ đề cập tới những ứng dụng cơ sở nhất nhưng cũng thiết thực nhất, đó là 1 số ứng dụng của cây nhị phân như mã tiền tố, cây biểu diễn biểu thức, cây quyết định, cây sắp xếp và tìm kiếm.

    Trong lý thuyết đồ thị, khi nói về cây thì cây bao trùm là vấn đề không thể thiếu, vì đây cũng là đặc điểm rất hay của đồ thị. Trong cây bao trùm lại có cây bao trùm bé nhất, lớn nhất và đây lại là 1 dạng của bài toán tối ưu. Trong chương cũng sẽ giới thiệu ứng dụng thực tiễn của cây bao trùm nhỏ nhất trong việc kết nối mạng sao cho chi phí nhỏ nhất, đồng thời đưa ra 1 số thuật toán tìm cây bao trùm, đặc biệt có những thuật toán rất cơ sở được nêu ra, được dùng nhiều trong việc giải quyết các bài toán đồ thị trên máy tính như là kỹ thuật quay lui, tìm kiếm ưu tiên theo chiều rộng và chiều sâu.


    Mục lục

    Nội dung Trang
    Lời nói đầu 1
    Giới thiệu đề tài 2
    Mục lục . 5
    Chương 1 Một số vấn đề cơ bản của đồ thị
    9
    I. Các định nghĩa đồ thị . 9
    1. Định nghĩa đồ thị . 9
    2. Đồ thị đơn 10
    3. Đa đồ thị 10
    4. Giả đồ thị 10
    II. Các loại đồ thị 11
    1. Đồ thị vô hướng . 11
    2. Đồ thị có hướng . 11
    3. Đồ thị hỗn hợp 11
    III. Một số khái niệm và tính chất cơ bản của đồ thị 11
    1. Bậc đồ thị . 11
    1.1 Bậc đồ thị vô hướng 11
    1.2 Bậc đồ thị có hướng 12
    2. Đường đi và chu trình . 13
    2.1 Đường đi . 13
    2.2 Chu trình 13
    3. Đồ thị liên thông 14
    4. Đồ thị con và đồ thị bộ phận 15
    IV. Các dạng biểu diễn của đồ thị 15
    1. Biểu diễn hình học của đồ thị 15
    2. Sự đẳng cấu . 16
    3. Một số đồ thị đặc biệt . 17
    3.1 Đồ thị đều . 17
    3.2 Đồ thị đầy đủ 17
    3.3 Đồ thị bánh xe 17
    3.4 Một vài ứng dụng của đồ thị đặc biệt . 18
    4. Biểu diễn đồ thị trên máy tính 19
    4.1 Biểu diễn bằng ma trận kề 19
    4.2 Danh sách cạnh (cung) 22
    4.3 Danh sách kề 22

    Chương 2 Số ổn định và tô màu đồ thị 24
    I. Số ổn định trong, số ổn định ngoài, nhân đồ thị . 24
    1. Số ổn định trong 24
    2. Số ổn định ngoài 24
    3. Nhân đồ thị 24
    4. Các thuật toán tìm các tập ổn định trong cực đại, ổn định ngoài cực tiểu. 25
    4.1 Thuật toán tìm số ổn định trong 25
    4.2 Thuật toán tìm số ổn định ngoài 25
    5. ứng dụng đồ thị trong lập trình chơi cờ Ca rô 26
    II. tô màu đồ thị 29
    1. Sắc số đồ thị . 29
    2. Tô màu đồ thị phẳng . 31
    2.1 Đồ thị phẳng . 31
    2.2 Định lý 5 màu (Kempe - Heawood) . 31
    2.3 Bài toán 4 màu (Appel - Haken) . 32
    3. Ví dụ ứng dụng . 32

    Chương 3 Chu trình, đường đi Euler và hamilton trong đồ thị 35
    I. Chu trình và đường đi Euler . 35
    1. Chu trình Euler 35
    1.1 Định nghĩa 35
    1.2 Thuật toán tìm chu trình Euler . 37
    2. Đường đi Euler 38
    2.1 Định nghĩa 38
    2.2 Thuật toán tìm đường Euler . 38
    II. Chu trình và đường đi Hamilton . 39
    1. Chu trình Hamilton 39
    2. Đường Hamilton 40
    3. Thuật toán liệt kê tất cả các chu trình Hamilton . 41

    Chương 4 Đường đi ngắn nhất trong đồ thị 42
    I. Đường đi ngắn nhất trong đồ thị không có trọng số . 42
    1. Định nghĩa . 42
    2. Thuật toán . 42
    Ii. Đường đi ngắn nhất trong đồ thị có trọng số 43
    1. Các khái niệm . 43
    2. Thuật toán tìm đường đi ngắn nhất cho đồ thị có trọng số 44
    2.1 Cơ sở thuật toán tìm đường đi ngắn nhất . 44
    2.2 Thuật toán Dijkstra . 45
    2.3 Thuật toán Ford - Bellman . 45
    2.4 Thuật toán Floyd . 47
    III. các ứng dụng 47
    1. ứng dụng trong truyền tin 47
    2. ứng dụng trong việc lập lịch thi công của một công trình 50
    IV. Chương trình mô tả thuật toán Dijkstra tìm đường đi ngắn nhất 53

    Chương 5 Một số vấn đề về cây 56
    I. Các khái niệm và tính chất cơ bản 56
    1. Định nghĩa 56
    2. Một số khái niệm cơ bản . 57
    3. Cây m phân 58
    4. Các ứng dụng . 58
    4.1 Mã tiền tố . 58
    4.2 Cây biểu diễn biểu thức 61
    4.3 Cây quyết định 62
    4.4 Cây sắp xếp và tìm kiếm 63
    4.4.1 Sắp xếp chèn với tìm kiếm nhị phân . 63
    4.4.2 Thuật toán sắp xếp hoà nhập . 65
    4.4.3 Thuật toán sắp xếp nhanh 68
    II. Cây bao trùm . 70
    1. Định nghĩa và các tính chất . 70
    2. Các thuật toán tìm cây bao trùm . 71
    2.1 Thuật toán theo lý thuyết . 71
    2.2 Thuật toán tìm kiếm ưu tiên chiều sâu và chiều rộng . 71
    2.2.1 Kỹ thuật quay lui . 72
    2.2.2 Thuật toán tìm kiếm theo chiều sâu . 72
    2.2.3 Thuật toán tìm kiếm theo chiều rộng . 73
    2.3 Chương trình thể hiện cho các thuật toán 73
    2.3.1 Chương trình Pascal về thuật toán quay lui 73
    2.3.2 Chương trình cho thuật toán tìm kiếm chiều sâu và chiều rộng 74
    3. Cây bao trùm bé nhất . 76
    3.1 Định nghĩa . 76
    3.2 Thuật toán tìm cây bao trùm bé nhất 76
    3.2.1 Thuật toán Kruskal 76
    3.2.2 Thuật toán Prim . 77
    3.2.3 Chương trình thể hiện thuật toán . 78
    3.3 ứng dụng cho bài toán kết nối hệ thống mạng . 81
    4. Cây bao trùm lớn nhất 81
    4.1 Định nghĩa . 81
    4.2 Thuật toán tìm cây bao trùm lớn nhất 81
    Kết luận 83
    Tài liệu tham khảo 84
     

    Các file đính kèm:

Đang tải...