Tải bản đầy đủ (.doc) (7 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (69.37 KB, 7 trang )

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:
1
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 n
2
đơ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
2
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.
3
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
4
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ị.
5

×