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

Báo cáo khoa học: "Kỹ thuật tìm đ-ờng đi ngắn nhất trên bản đồ" pdf

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 (201.46 KB, 7 trang )


Kỹ thuật tìm đờng đi ngắn nhất
trên bản đồ

KS. lu văn giang
Trung tâm biên tập v công nghệ cao
Nh xuất bản Bản đồ

Tóm tắt: Bi báo nói về kỹ thuật tìm đờng đi có độ di ngắn nhất của hai điểm bất kỳ
trên bản đồ v đề xuất một số ứng dụng kỹ thuật ny trong thực tế.
Summary: In this paper we consider the details of the routing algorith (the shortest path
on the graph) and some applications from the result in the practice.
i. đặt vấn đề
Trong một số trờng hợp sử dụng bản đồ để tra cứu đờng đi tới điểm nào đó thờng xuất
hiện câu hỏi làm thế nào để xác định đờng đi đến đó là ngắn nhất? Trong phạm vi hẹp hoặc
mạng lới giao thông đơn giản ít đờng đi thì có thể tìm ngay đợc câu trả lời. Hầu hết các
trờng hợp còn lại là khó khăn. Vấn đề đặt ra là cần xây dựng cơ sở kỹ thuật tìm đờng đi ngắn
nhất giữa hai điểm xác định trên bản đồ trong thời gian nhỏ nhất đáp ứng ngay yêu cầu sử
dụng.
ii. cơ sở của kỹ thuật tìm đờng đi ngắn nhất trên bản đồ
Phát biểu bài toán: Cho hai điểm bất kì trên bản đồ. Hãy chỉ ra đờng đi có độ dài ngắn
nhất giữa hai điểm đó trên cơ sở hệ thống giao thông của bản đồ.
1. Cơ sở toán học giải bài toán
Cơ sở toán học của vấn đề này thực ra đã đợc toán học giải quyết từ rất lâu. Có rất nhiều
phơng pháp khác nhau, trong bài này giới thiệu kỹ thuật tìm đờng đi ngắn nhất dựa trên lý
thuyết toán đồ thị. Phơng pháp này có nhiều u điểm hơn khi áp dụng trong các bản đồ số bởi
vì các bản đồ số dạng véc tơ đều xây dựng trên cơ sở lý thuyết đồ thị.
Cho đồ thị G = {V,E} có trọng số không âm là các c
ij
V là tập đỉnh
E là tập cạnh


C{u,v} là ma trận trọng số
u,v V
(xem hình vẽ 1)






























014
04
120
502
320
10
6
5
4
3
2
1
654321
2
3
5
5
4
2
1
3
2
1
4
1
2
1
6



Hình 1.
Tất cả các thuật toán tìm đờng đi ngắn nhất trên đồ thị đều dựa trên một tính chất Mọi
đờng con của đờng đi ngắn nhất cũng là đờng đi ngắn nhất. Giả sử tìm đờng đi ngắn nhất
từ đỉnh s tới đỉnh t, s, t V ngời ta luôn tìm đợc đỉnh v trớc t sao cho khoảng cách từ s đến t
sẽ bằng (d(s,t) = d(s,v) + c(v,t) . Đỉnh v sẽ là trớc t ngắn nhất: Mọi đoạn sẽ từng bớc kiến thiết
một cây đờng đi ngắn nhất, có gốc tại nút nguồn hay còn gọi nút khởi đầu cho tới khi nút cuối
cùng trong đồ thị đã đợc đa vào.
ở bớc thứ k các con đờng ngắn nhất tới k nút gần nguồn
nhất sẽ đợc tính. Các nút đó đợc định nghĩa thuộc một tập N. Có thể kể ra các thuật toán tiêu
biểu nh Dijkstra, ford - Bellman, hoặc thuật toán Floyd v.v Dới đây trình bày thuật toán
Dijkstra để minh họa cho cách giải bài toán này.
- Thuật toán Dijkstra
N
k
là tập hợp tạo thành bởi k +1 phần tử: Nguồn và k nút gần nguồn nhất sau k bớc thực
hiện giải thuật. Dk(n) là độ dài từ nguồn đến nút n theo con đờng ngắn nhất bao hàm trong N
k
.
Giả sử nút 1 là nút nguồn. Để tìm các con đờng ngắn nhất từ nút 1 tới các nút còn lại của đồ thị
ta bắt đầu duyệt đồ thị tại đỉnh 1 cho độ dài đỉnh 1 tới 1 là 0, xét tới hai đỉnh kề liên thông với 1.
Độ dài đờng đi đợc cộng liên tiếp sau một bớc tính nếu tổng độ dài ngắn nhất đợc đa vào
tập N:
Bớc 0 (khởi động)
N
0
= {1}
= C(1,v) v N
D

0 0
Bớc k (tính v cập nhật)
{u} N
k
= N
k-1
(v), v N(u) = minD
trong đó u luôn thoả mãn biều thức: D
k-1 k-1 k-1
D
k
(v) = min[D (v), D (u) + C(u,v)]
k-1 k-1
v N
k
Thuật toán dừng lại khi tất cả các nút đã nằm trong N. Kết quả giải thuật cho phép tìm
đờng đi ngắn nhất từ một đỉnh cho trớc tới tất cả đỉnh còn lại.
Chẳng hạn với đồ thị hình 1 chọn điểm xuất phát là đỉnh 1. Thuật toán Dijkstra sẽ chỉ ra
đờng đi ngắn nhất xuất phát từ đỉnh 1 tới đỉnh còn lại

Kết quả thể hiện hình 2a đờng đi ngắn nhất đợc tô đậm.
1
1
1
2
2
2
3
3
5

2
1
3
4
5
6
2
3
5
5
4
2
1
3
2
1
4
1
2
1
6
1
1
1
2
2
2
3
3
5

10
2
1
3
4
5
6
a b c

Hình 2.
Trong trờng hợp đồ thị là vô hớng cách tính cũng tơng tự. Trong trờng hợp này trọng
số đợc tính cho cả hai chiều chẳng hạn ta cho đồ thị hình 2b sau, trọng số tính đợc cả hai
chiều nút khởi đầu tại 1. Kết quả thể hiện hình 2c đờng đi ngắn nhất đợc tô đậm.
Nhận xét:
- Ngời ta đã chứng minh rằng thuật toán Dijkstra tìm đợc đờng đi ngắn nhất trên đồ thị
sau khoảng thời gian cỡ O(n
2
). Điều này cảnh báo nếu số đỉnh của đồ thị mà lớn thì khả năng
tính toán sẽ rất hạn chế.
- Nếu ta áp dụng lần lợt n đỉnh ta sẽ tìm đợc đờng đi ngắn nhất ở bất kỳ cặp đỉnh nào.
Trong trờng hợp này ngời ta còn dùng thuật toán Ford Bellman hoặc thuật toán Floyd. Chi
tiết các thuật toán này có thể xem thêm trong lý thuyết toán đồ thị. Độ phức tạp của các thuật
toán này cỡ O(n
3
), O(n
4
).
2. Xây dựng kỹ thuật tìm kiếm đờng đi ngắn nhất trên bản đồ
Trong bài toán này cần giải quyết hai vấn đề:
- Xây dựng mô hình đồ thị để áp dụng

- Chỉ ra đờng đi thực tế trên bản đồ
- Khắc phục độ phức tạp của bài toán.
2.1. Xây dựng mô hình đồ thị
Trong lý thuyết bản đồ số mọi đối tợng đồ họa trong bản đồ đều quy về ba đối tợng cơ
bản là: điểm, đờng, vùng (point, polyline, polygon) chúng đợc lu trữ và biểu thị theo lý thuyết
đồ thị. Mối quan hệ giữa ba đối tợng này đã đợc phân tích định nghĩa trong lý thuyết bản đồ
số.
ở đây nêu lại khái niệm segment có liên quan tới bài toán.
- Một đoạn đờng độc lập (không rẽ nhánh) đợc gọi segment (tạm dịch phân đoạn) tơng
đơng với đờng đi độ dài của đồ thị với điều kiện các đỉnh có bậc không vợt quá 2 (bậc của
đỉnh là số cạnh nối các đỉnh kề). Trong một segment luôn tồn tại một điểm đầu và điểm cuối
a
b
c
d
e
g
f
i
j
h
m
n
Hình 3 dới đây là cấu trúc véc tơ
của một đoạn đờng giao thông cùng
loại cùng lớp (a,b,c,d,e), (e,j,h,m) đợc
gọi là một segment.
Đồ thị G ={V,E} đơc lập nh sau:
Hình 3.


Tập đỉnh VG tạo bởi những điểm giao nhau của hệ thống giao thông. Tức là nó sẽ là các
ngã ba, ngã t trên bản đồ.
Tập cạnh E G tạo bởi cặp đỉnh có đờng giao thông đi qua
Ma trận trọng số {cij} đợc xác lập theo công thức:

=
++
+
n
1k
2
1kk
2
1kk
)yy()xx(
C
=S =
ij ij
là chiều dài đại số của một segment
S
ij
x
k
, y
k
là các giá trị tọa độ phẳng của véc tơ thứ k thuộc segment S.
= .
Các đỉnh không kề nhau có trọng số C
ij
Hình vẽ sau mô tả một đoạn giao thông đô thị dùng tạo lập ra đồ thị G, chiều đi đờng giao

thông chính là hớng của đồ thị (hình 4). Giả thiết các trọng số cho nh hình 4.
2
3
5
5

4
2
1

3
2

1
4
1

2
1
6

2
1
4
6
5
3

Hình 4.
Hai điểm bất kỳ đợc chọn trên bản đồ chẳng hạn là S, T khi đó xảy ra hai trờng hợp:

- S,T V thì bài toán tìm đờng đi ngắn nhất trên bản đồ giống nh bài toán cơ bản đã nêu trên.
- S,TV.
Trong trờng hợp này xét bài toán bổ sung là cho một điểm S(x,y) tìm tại lân cận S một
đỉnh u V; V G sao cho khoảng cách S u là ngắn nhất. Sau khi có u xét tất cả cạnh qua u
với điều kiện khoảng cách từ S đến các cạnh qua u nhỏ nhất tìm ra S (hình 5b). Tơng tự nh
vậy với điểm T tìm ra đỉnh v và T. Nh vậy bài toán sẽ đợc đa về bài toán cơ bản ở trên.
Khoảng cách ngắn nhất giữa hai điểm S,T sẽ là d(sT) = d(ss) + d(su) + d(uv) + d(vv) + d(vT)
(hình 5).

2
3
5
5
4
2
1
3
2
1
4
1
2
1
6
s
T
T'
s'
u
v


s
s'
u

ab
Hình 5.
2.2. Khắc phục độ phức tạp tính toán

Để giảm độ phức tạp tính toán tức là làm giảm thời gian tìm ra kết quả của bài toán. Trong
trờng hợp cụ thể áp dụng trên bản đồ nhận thấy mạng lới giao thông là cố định hay đồ thị G
đã cho là cố định vì vậy có thể tính trớc mọi khả năng có thể hay tìm đờng đi cho cặp đỉnh bất
kỳ sau đó lập bảng tra. Khi tình huống yêu cầu thì không phải tính nữa mà chỉ cần tra kết quả.
Chiến lợc thứ 2 làm giảm độ phức tạp bài toán tức là làm cho đồ thị G có số đỉnh phù hợp.
Trong trờng hợp này ngời ta chia đồ thị G có số đỉnh lớn ra nhiều đồ thị con có số đỉnh nhỏ hơn.
Với bài toán cụ thể ở hình 4, áp dụng thuật giải trên triển khai dạng bảng có kết quả sau:
Bớc lặp Đỉnh 1 Đỉnh 2 Đỉnh 3 Đỉnh 4 Đỉnh 5 Đỉnh 6
0,1 1,1*
Đỉnh1 Khởi tạo
,1 ,1 ,1 ,1
1 - -
3,2* 4,2*
,1 ,1
2 - - - 7,3
,1 ,1
3 - - - - 6.4
5,4*
4 - - - -
6,6*
-

5

Bớc lặp Đỉnh 2 Đỉnh 3 Đỉnh 4 Đỉnh 5 Đỉnh 6 Đỉnh 1
3,2* 4,2*
Đỉnh2 Khởi tạo 0,2
,2 ,2 ,2
4,3*
1 - - 7,3
,2 ,2
2 - - -
,2 ,2 ,2
3 - - - 6,4
5.4*
-
4 - - -
6,5*
- -
5
Tiếp tục cho đến hết ta có kết quả sau dạng cây khung sau:
2
2
2
2
2
2
5
5
5
5
5

5
3
3
3
3
3
3
4
4
4
4
4
4
1
1
1
1
1
1
6
6
6
6
6
6
s
s
s
s
s

s

Hình 6.
Cuối cùng ta lập đợc bảng tra sẵn cho cặp đỉnh bất kỳ lu lại dới dạng file số liệu:
Đỉnh 1 Đỉnh 2 Đỉnh 3 Đỉnh 4 Đỉnh 5 Đỉnh 6
Đỉnh1 0 1,2 1,2,3 1,2,4 1,2,4,6,5 1,2,4,6
Đỉnh2 2,3,1 0 2,3 2,4 2,4,5 2,4,6
Đỉnh3 3,1 3,1,2 0 3,1,2,4 3,1,2,4,5 3,1,2,4,6
Đỉnh4 4,5,3,1 4,5,3,1,2 4,5,3 0 4,5 4,6
Đỉnh5 5,3,1 5,3,1,2 5,3 5,3,4 0 5,3,4,6

Đỉnh6 6,5,3,1 6,5,3,1,2 6,5,3 6,5,3,4 6,5 0
- Khi số điểm quá lớn tiến hành chia đồ thị lớn
thành các đồ thị con sao cho số đỉnh chung nhau
là nhỏ nhất. Trong một số trờng hợp chỉ ra một
đỉnh nào đấy làm đỉnh chung.
Nếu hai điểm đa vào xét thuộc một đồ thị
con Gi bài toán về dạng cơ bản đã xét ở trên.
Nếu hai điểm đa vào xét thuộc hai đồ thị
khác nhau khi đó coi các đồ thị con và các đỉnh
chung đã phân tích ở trên nh đỉnh của đồ thị mới (hình 8)
đồ thị này cũng đợc thiết kế từ trớc, trọng số đợc tính
lại theo các trờng hợp cụ thể. Bài toán chia thành hai bài
toán con.
G1
G2 G3

Hình 7.

v1

v3
v2
v4

v5
v6

G1
G2

G3

G4

- Tìm đờng đi ngắn nhất giữa các đồ thị con theo mô
hình tổng thể (hình 8) kết quả chỉ ra các đỉnh chung và tập
đỉnh là các đồ thị con.
- Tìm đờng đi ngắn nhất lần lợt của tất cả cặp trong
các đồ thị thành phần và các đỉnh chung kề nhau của đồ
thị thị lớn.
Hình 8.
- Cả hai bài toán này đều có thể tính trớc và lập bảng tra nh đã trình bày ở trên nh vậy
bài toán lặp lại cách giải nh đã trình bày
2.3. Chỉ ra đờng đi
Kỹ thuật này rất đơn giản, tập cạnh đồ thị G đã biết thiết lập mối liên kết với các segment
thiết lập nên cạnh đó. Khi đã xác định các đỉnh chứa đờng đi ngắn nhất tức là xác định đợc
các segment gọi lại thủ tục vẽ các véc tơ của segment đó tức là đã vẽ đồ họa lại chính con
đờng đó trong hệ giao thông của bản đồ (bài toán đang xét trong bản đồ số và ứng dụng sự trợ
giúp tính toán của máy tính).
III. Kết luận

Thuật toán đã trình bày ở trên không phải là duy nhất mà còn rất nhiều thuật toán khác
nhau trong chiến lợc tìm đờng đi ngắn nhất. Vì vậy việc giới thiệu mang tính chất tham khảo,
tùy từng trờng hợp cụ thể mà áp dụng. Có thể kể ra một số ứng dụng kỹ thuật tìm đờng đi
ngắn nhất nh:
- Dịch vụ chỉ dẫn đờng đi qua mạng điện thoại cố định hoặc di động. Tại tổng đài cài đặt
sẵn máy tính có ứng dụng trên khi đó sẽ sẵn sàng trả lời khi có yêu cầu.
- Trợ giúp cho các phơng án tác chiến quân sự, an ninh, phòng cháy chữa cháy
- Các ứng dụng trên có thể phát triển thêm các điều kiện là phơng tiện đi là khác nhau
nh ô tô, xe máy, hay một phơng tiện nào đó v.v khi đó chỉ thay các mô hình đồ thị. Và thực
tế sinh ra nhiều ứng dụng khác nữa .
Tài liệu tham khảo

[1]. Nguyễn Đức Nghĩa, Nguyễn Tô Thnh. Toán rời rạc. Nhà xuất bản Đại học quốc gia. Hà nội, 2003.
[2]. TS. Vũ Bích Vân. Bản đồ học điện toán. Giáo trình cao học ngành bản đồ. Hà nội, 2000



×