Vấn đề khoảng cách ngắn nhất với độ dài là các hàm của thời gian


10

Động lực

Vào một ngày khác, tôi đang đi du lịch quanh thành phố bằng phương tiện giao thông công cộng và tôi đã tạo ra một vấn đề đồ thị thú vị mô hình hóa vấn đề tìm kiếm kết nối thời gian ngắn nhất giữa hai nơi.

Chúng ta đều biết "Bài toán đường đi ngắn nhất" cổ điển: Cho đồ thị có hướng với độ dài cạnh và hai đỉnh , tìm đường đi ngắn nhất giữa và (nghĩa là đường dẫn thu nhỏ tổng chiều dài cạnh). Giả sử độ dài cạnh không âm, có nhiều thuật toán khác nhau và vấn đề rất dễ dàng.w eR + 0 ,G=(V,E)s , t V s tweR0+,eEs,tVst

Đây là một mô hình tốt cho trường hợp mà chúng ta đang đi bộ, ví dụ. Các đỉnh là ngã tư trong mạng lưới đường của chúng tôi và mỗi cạnh có chiều dài cố định - ví dụ tính bằng mét. Một cách giải thích khác về trọng số cạnh là thời gian mà chúng ta phải đi từ đỉnh này sang đỉnh kia. Đây là giải thích mà tôi quan tâm bây giờ.we

Vấn đề

Bây giờ tôi muốn mô hình hóa tình huống sau đây. Tôi muốn đi từ điểm A đến điểm B trong thành phố bằng phương tiện giao thông công cộng và giảm thiểu thời gian . Mạng giao thông công cộng có thể dễ dàng được mô hình hóa như một biểu đồ có hướng như bạn mong đợi. Phần thú vị là trọng số cạnh (thời gian mô hình đó) - giao thông công cộng (ví dụ: xe buýt) chỉ để lại trong các khoảng nhất định, khác nhau cho mỗi điểm dừng (đỉnh trong biểu đồ). Nói cách khác - trọng số cạnh không phải là hằng số, chúng thay đổi tùy thuộc vào thời gian chúng ta muốn sử dụng cạnh.

Làm thế nào để mô hình hóa tình trạng này: Chúng tôi có một đạo diễn đồ thị và một cạnh trọng lượng chức năng mà mất thời gian là đối số của nó và trả về thời gian cần thiết để sử dụng cạnh trong đường dẫn của chúng ta. Ví dụ: nếu bus từ đỉnh đến đỉnh rời khỏi và phải mất thời gian và chúng ta đến đỉnh tại , thì là trọng số cạnh. Rõ ràng, .w : E × R + 0R + 0 v u t = 10 5 v t = 8 w ( v u , 8 ) = 7 w ( v u , 10 ) = 5G=(V,E) w:E×R0+R0+vut=105vt=8w(vu,8)=7w(vu,10)=5

Nó hơi khó để xác định tổng trọng lượng của đường dẫn, nhưng chúng ta có thể thực hiện đệ quy. Đặt là đường dẫn có hướng. Nếu thì . Mặt khác, , trong đó là đường dẫn phụ của không có . Đây là một định nghĩa tự nhiên tương ứng với tình hình thực tế. k = 1 w ( P ) = 0 w ( P ) = w ( P ' ) + w ( v k - 1 v k , w ( P ' ) ) P ' P v kP=v1v2vk1vkk=1w(P)=0w(P)=w(P)+w(vk1vk,w(P))PPvk

Bây giờ chúng ta có thể nghiên cứu vấn đề theo các giả định khác nhau về hàm . Giả định tự nhiên là mô hình "đang chờ time".w ( e , t ) w ( e , t + Δ ) + Δ  cho tất cả các  e E , Δ 0 , Δw

w(e,t)w(e,t+Δ)+Δ for all eE,Δ0,
Δ

Nếu chức năng "hành xử độc đáo", có thể giảm vấn đề này thành vấn đề đường dẫn ngắn nhất cổ điển. Nhưng chúng ta có thể hỏi điều gì xảy ra khi các hàm trọng lượng trở nên hoang dã. Và nếu chúng ta bỏ giả định chờ đợi thì sao?

Câu hỏi

Câu hỏi của tôi là như sau.

  • Vấn đề này đã được hỏi trước đây chưa? Có vẻ như loại tự nhiên.
  • Có nghiên cứu nào về nó không? Dường như với tôi rằng có nhiều bài toán con khác nhau được hỏi và nghiên cứu - chủ yếu liên quan đến các tính chất của hàm trọng số.
  • Chúng ta có thể giảm vấn đề này (có thể theo một số giả định) cho vấn đề con đường ngắn nhất cổ điển không?

Đây là một cách tiếp cận cơ bản tự nhiên để so sánh các câu trả lời ở cấp độ nghiên cứu hơn. Mô hình nó như là một vấn đề reachability bởi discretizing các đơn vị thời gian vào một tập hợp các khoảnh khắc , và thực hiện một đồ thị mới với đỉnh . Sau đó, bạn có thể đặt các cạnh trong đó . Điều này đã hiệu quả đối với nhiều trường hợp sử dụng (ví dụ với lịch trình xe buýt, bạn chỉ cần là thời gian xe buýt đến / rời điểm dừng), nhưng không hoạt động hoàn hảo mọi lúc (xem xét khi thay đổi liên tục thời gian), và chậm nếu lớn. V ' = T × V ( t 0 , v 0 ) ( t 1 , v 1 ) t 1 = w ( ( v 0 , v 1 ) , t 0 ) T w TTV=T×V(t0,v0)(t1,v1)t1=w((v0,v1),t0)TwT
Andrew Morgan

Một biến thể đơn giản của vấn đề này (trong đó trọng số cạnh phụ thuộc tuyến tính theo thời gian) được gọi là " đường dẫn ngắn nhất tham số ".
Neal Young

Câu trả lời:


8

nΘ(logn)

Thuật toán của Dijkstra thực sự có thể được sử dụng cho vấn đề này, khi chính sách chờ được áp đặt, nghĩa là chờ tại một nút nếu điều đó làm giảm thời gian đến cuối cùng. Nếu không có chính sách chờ thì tình hình sẽ hoang dã hơn nhiều: đường đi ngắn nhất có thể không đơn giản, đường dẫn phụ của đường đi ngắn nhất có thể không phải là ngắn nhất giữa hai điểm cuối của đường dẫn phụ, đường đi qua vô số cạnh có thể có thời gian đến hữu hạn, v.v. Xem lại bài báo của Orda và Rom để thảo luận thêm.


3

Bạn có biết về vấn đề "những con đường không ngắn nhất" không? Nó được định nghĩa để mô hình hóa các tình huống như thế này. Mặc dù nó ít biểu cảm hơn một chút so với công thức của bạn, nhưng có rất nhiều điều thú vị cho nó.


1

Nếu bạn cho rằng thời gian là không thể tách rời (có ý nghĩa trong trường hợp vận chuyển công cộng), bạn có thể tạo một mạng mở rộng thời gian, tương tự như mạng được đề xuất bởi Ford-Fulkerson cho lưu lượng tối đa theo thời gian (hoặc lưu lượng nhanh nhất) và thay vào đó hãy tìm đường đi ngắn nhất trong biểu đồ này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.