Bài toán đường đi ngắn nhất, nhanh nhất hoặc rẻ nhất là phổ biến. Bạn giải quyết nó hàng ngày.
khi bạn đang ở vị trí s và muốn di chuyển đến vị trí t, bạn yêu cầu các nhanh nhất
đường đi từ s tới t. Tỉnh fire có thể tính toán các tuyến đường nhanh nhất từ
một s ga fire với tất cả địa điểm trong thành phố-vấn đề duy nhất-nguồn. Đôi khi, chúng tôi
thậm chí có thể muốn một bảng đầy đủ khoảng cách từ khắp mọi nơi để ở khắp mọi nơi-tất cả-
cặp vấn đề. Trong một bản đồ đường, bạn thường nhiều một tất cả-đôi khoảng cách bàn cho các
quan trọng nhất thành phố.
đây là một tuyến đường quy hoạch thuật toán mà yêu cầu một bản đồ thành phố và nhiều khéo léo
nhưng không có máy tính: đặt các chủ đề mỏng dọc theo những con đường của bản đồ thành phố. Làm cho một nút
bất cứ nơi nào con đường đáp ứng và lúc bắt đầu của bạn vị trí. Bây giờ nâng các nút bắt đầu cho đến
toàn bộ mạng dangles dưới nó. Nếu bạn có thành công tránh bất kỳ tangles và
chủ đề và hải lý của bạn là mỏng, đủ để chỉ lực hấp dẫn và chặt chẽ chủ đề cản trở
một nút từ di chuyển xuống, các chủ đề chặt chẽ define ngắn nhất đường dẫn.
figure giới thiệu cho thấy bản đồ khuôn viên trường đại học Karlsruhe
và minh hoạ các tuyến đường quy hoạch các thuật toán cho nguồn nút 5.
Route kế hoạch mạng lưới đường là một trong nhiều ứng dụng của đường đi ngắn nhất
tính toán. Bởi defining một mô hình thích hợp đồ thị, nhiều vấn đề bật ra
profit từ tính toán đường đi ngắn nhất. Ví dụ, Ahuja et al. [8] đề cập đến như vậy di-
câu thơ ứng dụng như lập kế hoạch flows trong các mạng đô thị nhà ở, hàng tồn kho có kế hoạch,
Trình tự DNA, knapsack vấn đề (xem cũng chương 12), sản xuất quy hoạch,
nhà điều hành điện thoại lập kế hoạch, xe fleet lập kế hoạch, số đường lin-
tai chức năng, hoặc phân bổ kiểm tra nỗ lực trên một dây chuyền sản xuất.
xây dựng đặt chung của bài toán đường đi ngắn nhất nhìn vào một hướng
đồ thị G = (V, E) và một chi phí chức năng c mà ánh xạ cạnh tới bất kỳ số thực
chi phí. Nó chỉ ra rằng vấn đề đặt chung là khá đắt tiền để giải quyết. Vì vậy chúng tôi
cũng được quan tâm trong số các giới hạn cho phép đơn giản hơn và thêm các efficient al-
gorithms: không âm cạnh chi phí, số nguyên cạnh chi phí hoặc acyclic đồ thị. Lưu ý rằng
190
con đường ngắn nhất 10
một
−∞
42
0
b
−∞
0
−1
d
−∞
f
2
0
2
−1
−1
tôi
5
g
−3
−2
−3
−2 h
∞
k
−2
−∞
0
s
j
hình 10,1. Một đồ thị với đường đi ngắn nhất khoảng cách μ (s, v). Cạnh chi phí được thể hiện như cạnh nhãn
và các khoảng cách được hiển thị bên trong các nút. Nặng cạnh chỉ ra con đường ngắn nhất.
chúng tôi đã có giải quyết trường hợp rất đặc biệt của đơn vị cạnh chi phí trong phần 9.1 —
cây tìm kiếm (BFS) chiều rộng-chính bắt nguồn từ lúc nút s là một đại diện ngắn gọn của
tất cả đường đi ngắn nhất từ s. Chúng tôi bắt đầu trong phần 10.1 với khái niệm cơ bản dẫn đến
một cách tiếp cận chung để thuật toán đường đi ngắn nhất. Phương pháp tiếp cận có hệ thống sẽ giúp
chúng tôi để theo dõi các sở thú của thuật toán đường đi ngắn nhất. Như là một ví dụ chính cho một re-
stricted nhưng thuật toán nhanh và đơn giản chúng ta nhìn vào acyclic đồ thị trong phần 10.2. Ở
phần 10.3 chúng tôi đến với các thuật toán được sử dụng rộng rãi nhất cho con đường ngắn nhất: Dijk-
Stra của các thuật toán cho các đồ thị chung với chi phí không âm cạnh. Efficiency của
thuật toán Dijkstra rất nhiều dựa vào efficient ưu tiên hàng đợi. Trong phần 10.4 chúng tôi
thảo luận không thay đổi ưu tiên hàng đợi cho các phím số nguyên. Phần 10,5 đề với bất
cạnh chi phí và phần 10.6 xử lý vấn đề tất cả-cặp. Chúng tôi thấy rằng tất cả-cặp
vấn đề đối với chi phí cạnh chung làm giảm đến một vấn đề duy nhất-nguồn chung cộng với n
duy nhất-nguồn các vấn đề với chi phí không âm cạnh. Giới thiệu việc giảm các
các khái niệm thường hữu ích của nút tiềm năng.
16.2 từ khái niệm cơ bản để một thuật toán chung
chúng tôi mở rộng các chức năng chi phí để đường dẫn cách tự nhiên. Chi phí của một con đường là các
tổng của các chi phí của thành phần đa cung, tức là, Nếu p = e1, e2,..., ek sau đó c(p) =
1≤i≤k c (ei). Đường dẫn có sản phẩm nào có chi phí zero.
cho một cặp s và v của nút, chúng tôi đang quan tâm đến một đường đi ngắn nhất từ s đến v. Chúng tôi
tránh sử dụng definite điều "các", vì có thể có nhiều hơn một ngắn nhất
đường dẫn. Có một con đường ngắn nhất luôn luôn tồn tại? Quan sát mà số lượng các đường đi từ s để
v có thể là infinite. Ví dụ, nếu r = pCq là một đường đi từ s đến v có chứa một chu kỳ
C, sau đó chúng tôi có thể đi xung quanh chu kỳ một số tùy ý của thời gian và vẫn còn có một
đường đi từ s đến v, xem hình 10.2. Chính xác hơn, p là một con đường dẫn từ s tới bạn,
C là hàng đầu con đường từ bạn để bạn và q là một con đường từ bạn v. xem xét r đường dẫn (i)
chính mà sử dụng p để đi từ s cho bạn, sau đó đi xung quanh thành phố chu kỳ tôi lần, và finally
q sau từ bạn để v. Chi phí r (i) là c(p) tôi • c(C) c(q). Nếu C là một để-gọi là
phủ định chu kỳ, tức là, c(C) < 0 thì c (r (i 1)) < c (r (i)). Trong tình huống này có là không có
các đường đi ngắn nhất từ s v. Assume nếu không, nói P là một đường đi ngắn nhất từ s đến v.
đang được dịch, vui lòng đợi..
