Một số vấn đề ứng dụng của đồ thị trong tin học.doc

7 2.2K 32
Một số vấn đề ứng dụng của đồ thị trong tin học.doc

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

Thông tin tài liệu

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

Trang 1

Giới thiệu :

Lý thuyết đồ thị đợc nghiên cứu và phát triển do nẩy sinh từ nhu cầu giải quyết các vấn đề thực tiễn, có nhiều ứng dụng trong các ngành khoa học kỹ thuật khác

nhau Đề tài thực hiện là "Một số vấn đề ứng dụng của đồ thị trong Tin học",

đây là đề tài nghiên cứu lý thuyết giải quyết nhiệm vụ là làm sáng tỏ hơn cơ sở toán cho Tin học đồng thời nêu ra những khả năng ứng dụng của đồ thị trong Tin học theo từng nội dung của Lý thuyết đồ thị.

Lý thuyết đồ thị đóng vai trò làm cơ sở toán cho Tin học vì đồ thị là một bộ phận của Toán rời rạc, bản chất và cấu trúc của đồ thị mang tính rời rạc mà công cụ chính trong Tin học là máy tính, các quá trình xử lý lu trữ thông tin trong máy tính cũng mang tính rời rạc, nên điều này tơng hợp giữa đồ thị và máy tính

Lý thuyết đồ thị có cả một khối lợng kiến thức lý thuyết đồ sộ, ứng dụng của đồ thị cũng rất rộng, đề tài đợc thực hiện chỉ bao gồm những nội dung cơ sở và trọng tâm của đồ thị, vào mỗi nội dung lý thuyết sẽ đa ra những ví dụ ứng dụng minh hoạ nhằm làm rõ sự ứng dụng của phần lý thuyết đó Trong các ứng dụng rất rộng lớn của đồ thị các ví dụ đợc đa ra cũng cha đầy đủ nhng thực sự đó cũng là đại diện và phần nào làm sáng tỏ các vấn đề ứng dụng của đồ thị

Luận văn đợc thực hiện đi theo từng phần nội dung của lý thuyết đồ thị gồm 5 chơng nh sau :

Chơng I Một số vấn đề cơ bản của đồ thị

Nghiên cứu các vấn đề ứng dụng của đồ thị, trớc hết phải tìm hiểu các vấn đề cơ bản của lý thuyết đồ thị, đây là cơ sở để tìm hiểu sâu sắc hơn các vấn đề tiếp theo Trong chơng sẽ trình bày các định nghĩa và tính chất cơ bản của đồ thị, nhng tóm lại ta quan tâm đến các vấn đề chính sau:

- Tính rời rạc : Đồ thị là cấu trúc rời rạc gồm các đỉnh và cạnh, thể hiện đúng

nh các yếu tố rời rạc trong máy tính Các yếu tố rời rạc nhau nhng không hoàn toàn độc lập nhau mà giữa chúng có sự liên hệ, có mối quan hệ với nhau Nghiên cứu mối quan hệ giữa các yếu tố rời rạc là quan trọng, điều này quy định bản chất và cấu trúc của đồ thị.

- Cách biểu diễn và lu trữ của đồ thị trên máy tính : Cấu trúc dữ liệu liên quan

chặt chẽ đến giải thuật, cách thức biểu diễn đồ thị trên máy tính ảnh hởng nhiều đến việc giải các bài toán ứng dụng trên máy tính Đề cập tới vấn đề này có 3 ph-ơng pháp chính:

Trang 2

a) Biểu diễn bằng ma trận kề

Phơng pháp này dựa trên mối hệ giữa tất cả các cặp đỉnh, đồ thị n đỉnh tơng ứng với ma trận vuông cấp n, là phơng pháp đợc dùng phổ biến, thể hiện cho hầu hết các loại đồ thị u điểm là dễ dàng xác định đợc các cặp đỉnh có kề nhau hay không hoặc là rất thuận tiện khi cần tính số bậc của mỗi đỉnh, ngoài ra ta có thể biết đợc số đờng đi với độ dài xác định giữa 1 cặp đỉnh nào đó bằng cách tính tích của ma trận kề Nhợc điểm của phơng pháp này là không phụ thuộc vào số cạnh của đồ thị, ta luôn phải sử dụng n2 đơn vị bộ nhớ để lu trữ nó.

b) Biểu diễn bằng danh sách cạnh (cung)

Đây là cách biểu diễn theo cạnh, phụ thuộc vào số cạnh của đồ thị Danh sách cạnh (cung) là bao gồm tất cả các cạnh (cung) của đồ thị, mỗi một cạnh (cung) gồm các thành phần: đỉnh đầu, đỉnh cuối, trọng số (nếu có) Nh vậy đơn vị bộ nhớ để lu trữ đồ thị m cạnh là 2m (hoặc 3m nếu có trọng số) Nhợc điểm của phơng pháp này là khó xác định các đỉnh kề với một đỉnh cho trớc hoặc là tính số bậc của một đỉnh

c) Biểu diễn bằng danh sách kề

Với phơng pháp này thì ứng với mỗi đỉnh là 1 danh sách liên kết các đỉnh kề với nó, với đồ thị có hớng n đỉnh m cạnh thì đơn vị bộ nhớ để lu trữ là n + m Cách biểu diễn này thích hợp cho các thuật toán làm việc với cấu trúc đồ thị hay thay đổi nh thêm bớt cạnh

Về mặt ứng dụng, khi đề cập tới các loại đồ thị đồ thị đặc biệt, trong chơng sẽ

nêu những mô hình cấu trúc mạng (topolopy) dạng điểm - điểm có áp dụng đến các dạng của đồ thị đặc biệt, nh cấu trúc mạng hình sao, hình vòng, bánh xe Hoặc ta xét ứng dụng trong một hệ thống thông tin nh mạng máy tính, có những đờng truyền giữa 2 điểm là rất quan trọng, để tránh những sự cố cần có các đờng truyền tin dự phòng khác, để xem xét các đờng truyền dự phòng ta cần xem xét đến đờng đi, số đờng đi giữa 2 điểm truyền tin đó Nh vậy ta thấy ứng dụng này liên quan tới đờng đi, số đờng đi giữa 2 đỉnh trong mô hình đồ thị tơng ứng

Chơng II Số ổn định và tô màu đồ thị

Chơng gồm 2 nội dung chính: Số ổn định và sắc số đồ thị Số ổn định là số ổn định trong, số ổn định ngoài và nhân đồ thị Nh đã nêu trên, mối quan hệ giữa các yếu tố rời rạc là quan trọng, đề cập tới các vấn đề này ta lại thấy đợc rõ mối quan hệ giữa các tập đỉnh Tập ổn định trong lại tập các đỉnh của đồ thị sao cho những đỉnh trong tập này có mối quan hệ là không kề nhau Tập ổn định ngoài hay còn gọi là tập thống trị, những đỉnh trong tập này có mối quan hệ "thống trị" các đỉnh

Trang 3

khác ngoài tập, quan hệ "thống trị" này đợc hiểu là luôn tồn tại 1 đỉnh thuộc tập thống trị sao cho nó kề với 1 đỉnh bất kỳ ngoài tập Nhân đồ thị chính là tập vừa là tập ổn định trong vừa là tập ổn định ngoài, đối với tập ổn định trong ta quan tâm tới tập có lực lợng cực đại, với tập ổn định ngoài ta quan tâm tới tập có lực lợng cực tiểu

Về mặt ứng dụng của số ổn định : số ổn định ngoài thờng đợc áp dụng cho bài

toán đặt vọng gác, từ ý tởng này ta xét 1 ứng dụng phục vụ cho việc lập trình chơi cờ ca rô Trong kỹ thuật chơi cờ Ca rô quân có khả năng thắng nhiều hơn là quân có khả năng thống trị đợc quân đối phơng, sử dụng cấu trúc dữ liệu là đồ thị cho thế cờ ta có thể áp dụng phơng pháp tìm tập ổn định trong để tính nớc đi có lợi nhất cho cờ ca rô, hơn nữa việc tính toán đờng đi, nớc đi cũng sẽ đợc thuận lợi hơn.

Vấn đề tô màu đồ thị là việc tìm số màu tối thiểu để tô các đỉnh đồ thị sao cho

những đỉnh kề nhau phải khác màu nhau hay còn gọi là tìm sắc số đồ thị Về mặt ứng dụng ta có thể thấy đợc áp dụng cho bài toán lập lịch Lập lịch là việc bố trí

hợp lý để sao cho không có sự trùng lặp nh là về thời gian và địa điểm thì tơng ứng trong đồ thị phải tô màu các đỉnh sao cho 2 đỉnh kề nhau thì không trùng màu Vậy nên chăng phát triển nghiên cứu vấn đề tô màu đồ thị một cách đầy đủ hơn để phục vụ cho bài toán lập lịch.

Chơng III Chu trình, đờng Euler và Hamilton

- Chu trình, đờng đi Euler : Chu trình (đờng đi) Euler là chu trình (đờng đi) đi

qua tất cả các cạnh đồ thị mỗi cạnh đúng một lần Có thể nói đã nhiều ngời biết đến chu trình, đờng đi Euler khi mà cha học đến lý thuyết về Euler bởi vì ta hay gặp các bài toán đố vui là cho trớc một hình vẽ với yêu cầu tô lại hình đó chỉ bằng một nét liền Có nhiều vấn đề thực tiễn có thể áp dụng chu trình (đờng đi) Euler để giải quyết nh là tìm hành trình cho ngời phát th, xe rửa đờng sao cho hành trình là tối u nhất.

- Chu trình, đờng đi Hamilton : Chu trình (đờng đi) Hamilton là chu trình (đờng

đi) đi qua tất cả các đỉnh mỗi đỉnh đúng một lần Khác với chu trình, đờng đi Euler đã có các điều kiện cần và đủ để nhận biết nó trong đồ thị, còn chu trình, đ-ờng đi Hamilton mới chỉ có điều kiện đủ Chu trình, đđ-ờng đi Hamilton cũng có nhiều ứng dụng thực tiễn ví dụ nh cho 1 hệ thống mạng, một máy nào đó cần gửi đi 1 thông điệp tới tất cả các máy khác theo kiểu truyền tin lu và chuyển tiếp hãy tìm đờng truyền tin thích hợp nhất.

Chu trình, đờng đi Euler và Hamilton có tầm quan trọng và ý nghĩa ứng dụng cao, nhng đây cũng thực sự là bài toán khó, việc đề cập đầy đủ lý thuyết cũng cha đợc thực hiện một cách trọn vẹn ở trong chơng.

Trang 4

Chơng IV Đờng đi ngắn nhất trong đồ thị

Có nhiều bài toán dạng tối u có thể vận dụng lý thuyết về chu trình, đờng đi Euler hoặc Hamilton để giải quyết, ngoài ra ta có thể áp dụng lý thuyết về đờng đi ngắn nhất trong đồ thị để giải quyết loại bài toán này Bài toán tìm đờng đi ngắn nhất có nhiều ứng dụng vấn đề là cần đa ra thuật toán hữu hiệu để giải quyết loại bài toán này Có nhiều thuật toán đợc nêu ra, nhng ta sẽ quan tâm tới thuật toán đ-ợc dùng phổ biến và có nhiều u điểm đó là thuật toán Dijkstra cho đồ thị có trọng số Nguyên tắc của nhiều thuật toán là đánh trọng số d(v) các đỉnh sau đó tiến hành điều chỉnh lại trọng số các đỉnh theo điều kiện sau:

Nếu d[u] + c[u, v] < d[v] thì d[v] := d[u] + c[u, v]

Trong đó trọng số d[v] là độ dài đờng đi ngắn nhất từ đỉnh xuất phát tới đỉnh v, c[u, v] là ma trận trọng số.

T tởng của thuật toán Dijkstra là xây dựng dần dần tập S các đỉnh có trọng số nhỏ nhất: mỗi lần tìm đợc đỉnh có trọng số nhỏ nhất thì dùng nó để điều chỉnh trọng số các đỉnh kề với nó sau đó đa đỉnh có trọng số nhỏ nhất vừa tìm đợc vào tập S.

Về mặt ứng dụng : Trong lĩnh vực Tin học, xét ở 1 mạng máy tính nhiều khi ngời

ta cần xác định một đờng truyền có thời gian truyền tin ngắn nhất giữa 2 máy nào đó Để thực hiện điều này có thể mô hình mạng bằng đồ thị sau đó vận dụng thuật toán tìm đờng đi ngắn nhất để giải quyết

Các ứng dụng thì có nhiều, trong chơng này ta sẽ đề cập một cách cụ thể về thuật toán Viterbi vận dụng lý thuyết đờng đi ngắn nhất để sửa gói tin bị truyền sai trong 1 hệ thống thông tin, đây là 1 ứng dụng khá thiết thực vì nó hay bắt gặp trong 1 hệ thống truyền tin Khi nói đến bài toán tìm đờng đi ngắn nhất, ngời ta cũng hay mở rộng thành bài toán tìm đờng đi dài nhất Với vấn đề này trong ch-ơng cũng nêu ra cụ thể ứng dụng đồ thị cho việc lập lịch thi công 1 công trình lớn Đây là 1 ứng dụng thuộc loại bài toán tối u vận dụng đờng đi dài nhất và đồng thời cũng là ứng dụng cho công tác lập lịch Đồ thị cho ứng dụng này gọi là sơ đồ mạng Pert, đây cũng là loại đồ thị có u tiên trớc sau và cuối chơng sẽ xét đến ứng dụng của loại đồ thị này trong việc lập trình song song.

Chơng V Một số vấn đề về cây

Là nội dung cuối cùng của luận văn, chơng này sẽ đề cập đến nhiều ứng dụng của cây cho việc áp dụng, phân tích các giải thuật cơ sở trong kỹ năng lập trình Cây là trờng hợp riêng của đồ thị, có những đặc trng riêng dễ nhận thấy đó là luôn tồn tại 1 đờng đi duy nhất giữa mọi cặp đỉnh, biết đợc số đỉnh thì luôn biết đợc số cạnh Để nghiên cứu hết các tính chất về cây thì đó là cả 1 khối lợng kiến thức

Trang 5

lớn, chơng này chỉ đề cập tới những vấn đề cơ bản nhất về cây và tập trung khai thác những ứng dụng của nó.

Sự ứng dụng cây trong việc phân tích các giải thuật đó là nhiều thuật toán có thể mô hình bằng cây, hay nói cách khác là dùng cây để thể hiện, biểu diễn thuật toán Khi nhìn vào cây thể hiện thuật toán ta sẽ hiểu sâu sắc thuật toán hơn là khi nghe phát biểu thuật toán bằng lời bởi vì cây cho ta cái nhìn trực quan sinh động, dờng nh thấy đợc hết các bớc đi chơng trình thuật toán khi chạy trên máy tính Ngoài ra nhìn vào mô hình cây biểu diễn thuật toán dễ tạo cho ta đợc t duy lập trình cài đặt thuật toán hơn là khi ta đọc thuật toán đợc phát biểu bằng lời hay xem vào sơ đồ khối của thuật toán.

Cây có nhiều ứng dụng quan trọng mà trong chơng sẽ đề cập tới nh cây tìm kiếm, cây quyết định, cây mã hoá tiền tố, cây biểu thức Đây là những ứng dụng rất thiết thực trong kỹ thuật lập trình, chẳng hạn nh trong một chơng trình nào đó, một ngời nhập vào một biểu thức nhị nguyên toán học vậy làm thế nào mà biểu diễn, lu trữ và xử lý biểu thức này trong máy tính, điều này có thể thực hiện đợc nhờ sự vận dụng cây biểu diễn biểu thức.

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 Cây bao trùm cũng có nhiều ứng dụng, đặc biệt là cây bao trùm ngắn nhất, ta cũng có thể vận dụng nó để giải loại bài toán tối u ví dụ nh bài toán nối mạng máy tính sao cho chí phí nối mạng là thấp nhất Để tìm cây bao trùm nhỏ nhất trong chơng sẽ giới thiệu đến hai thuật toán Kruskal và Prim, mỗi thuật toán đều có những đặc điểm riêng Cũng có những lúc ta chỉ cần tìm cây bao trùm nói chung, để tìm cây bao trùm trong chơng cũng sẽ đề cập tới thuật toán tìm kiếm u tiên theo chiều rộng và chiều sâu, đây là thuật toán rất cơ sở nhng là quan trọng vì nó đợc áp dụng trong hầu hết các thuật toán liên quan đến đồ thị.

Kết luận :

Đề tài đợc thực hiện xong cũng đã có đợc những kết quả nhất định trong việc làm sáng tỏ đợc cơ sở lý thuyết đồ thị, thể hiện đợc vai trò của đồ thị là làm cơ sở toán cho Tin học, phục vụ đắc lực trong kỹ thuật lập trình và đồng thời nêu đợc tính ứng dụng của đồ thị theo từng nội dung lý thuyết Bên cạnh những kết quả đạt đợc cũng có những điều cha đợc nh nhiều vấn đề của đồ thị cha nêu ra đợc thuật toán cụ thể để giải quyết, nhiều thuật toán vẫn cha đợc cài đặt Về mặt ứng dụng thì còn có nhiều ứng dụng còn nêu chung chung, mới dừng lại trên mô hình lý thuyết cha có những số liệu chứng minh hay là chơng trình cài đặt cụ thể, khi đi từng nội dung lý thuyết đồ thị thì chỉ nêu đợc các ứng dụng của phần nội dung lý thuyết đó mà cha nêu đợc các ứng dụng của tổng hợp nhiều nội dung lý thuyết đồ thị

Trang 6

Cuốn luận văn đợc hoàn thành sau thời gian gần 3 tháng, tác giả sẽ không thể nào hoàn thành đợc đề tài của mình nếu nh không nhận đợc sự giúp đỡ, hớng dẫn

tận tình của thầy giáo Pgs Ts Đỗ Đức Giáo, tác giả xin chân thành bày tỏ lòng biết ơn đối với thầy Pgs Ts Đỗ Đức Giáo và cùng toàn thể 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à bạn bè đã quan tâm, động viên giúp đỡ tác giả hoàn thành cuốn luận văn này.

Hà nội 6/2000

Sinh viên thực hiện: Phan Thanh Long.

Mục lục

Trang 7

Trang

Giới thiệu 1

Một số vấn đề cơ bản của đồ thị 1

Số ổn định và tô màu đồ thị 2

Chu trình, đờng đi Euler và Hamilton 3

Đờng đi ngắn nhất trong đồ thị 4

Một số vấn đề về cây 4

Kết luận 5

Ngày đăng: 21/08/2012, 16:17

Từ khóa liên quan

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

Tài liệu liên quan