Có bao nhiêu khoảng cách ngắn nhất thay đổi khi thêm một cạnh vào biểu đồ?


22

Đặt là một số đồ thị hoàn chỉnh, có trọng số, không bị chặn. Chúng tôi xây dựng một đồ thị thứ hai bằng cách thêm từng cạnh một từ đến . Chúng tôi thêm tổng cộng vào .G ' = ( V , E ' ) E E ' Θ ( | V | ) G 'G=(V,E)G=(V,E)EEΘ(|V|)G

Mỗi lần chúng ta thêm một cạnh vào , chúng ta sẽ xem xét khoảng cách ngắn nhất giữa tất cả các cặp trong và . Chúng tôi đếm có bao nhiêu khoảng cách ngắn nhất này đã thay đổi do hậu quả của việc thêm . Đặt là số khoảng cách ngắn nhất thay đổi khi chúng ta thêm cạnh thứ và gọi là số cạnh chúng ta thêm vào.E ( V , E ) ( V , E { ( u , v ) } ) ( u , v ) C i i n(u,v)E(V,E)(V,E{(u,v)})(u,v)Ciin

Làm thế nào lớn là ?C=iCin

Như , là tốt. Điều này có thể được cải thiện? Lưu ý rằng tôi xác định là trung bình trên tất cả các cạnh đã được thêm vào, do đó, một vòng duy nhất có nhiều khoảng cách thay đổi không thú vị, mặc dù điều đó chứng tỏ rằng .C = O ( n 2 ) C C = Ω ( n )Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

Tôi có một thuật toán để tính toán một t-spanner hình học tham lam hoạt động trong thời gian , vì vậy nếu là , thuật toán của tôi nhanh hơn thuật toán tham lam ban đầu và nếu là thực sự nhỏ, có khả năng nhanh hơn thuật toán được biết đến nhiều nhất (mặc dù tôi nghi ngờ điều đó).C o ( n 2 ) CO(Cnlogn)Co(n2)C

Một số thuộc tính dành riêng cho vấn đề có thể giúp ràng buộc tốt: cạnh được thêm vào luôn có trọng lượng lớn hơn bất kỳ cạnh nào đã có trong biểu đồ (không nhất thiết phải lớn hơn). Hơn nữa, trọng lượng của nó ngắn hơn con đường ngắn nhất giữa và .bạn v(u,v)uv

Bạn có thể giả sử rằng các đỉnh tương ứng với các điểm trong mặt phẳng 2d và khoảng cách giữa các đỉnh là khoảng cách Euclidian giữa các điểm này. Nghĩa là, mọi đỉnh tương ứng với một số điểm trong mặt phẳng và cho một cạnh trọng lượng của nó bằngv(x,y)(u,v)=((x1,y1),(x2,y2))(x2x1)2+(y2y1)2.


2
Lấy hai cụm được nối với nhau bằng một đường dẫn có hai cạnh. Thêm một lợi thế cạnh trực tiếp giữa các bè phái rút ngắn của đường đi ngắn nhất. Ω(n2)
Louis

1
@Louis: có, có những ví dụ trong đó một cạnh gây ra rất nhiều khoảng cách thay đổi, nhưng liệu có tồn tại các biểu đồ xảy ra cho mọi cạnh bạn thêm hoặc ít nhất là cho nhiều cạnh không? Đây chính xác là lý do tại sao tôi xác định là trung bình trên tất cả các cạnh :)C
Alex ten Brink

1
Hầu hết các cạnh trong biểu đồ này có thể được thêm vào là loại tôi đã mô tả ...
Louis

@Louis Đúng. Mặc dù vậy, các cửa hàng chứa các cạnh , nhiều hơn tôi sẽ thêm vào biểu đồ của mình. O(n2)
Alex ten Brink

Tôi đã có một vấn đề tương tự trước đây, nhưng đồ thị của tôi là loại đồ thị thưa thớt với và tôi nên chứng minh những thay đổi trung bình là O (1) nhưng tôi không thể làm như vậy :-). Nhưng đối với trường hợp của bạn, tôi nghĩ rằng nếu bạn tìm thấy mối quan hệ giữa điều này và giải pháp của APSP, bạn có thể nhận được một số kết quả. |E|=O(|V|)

Câu trả lời:


19

Hãy xem xét chuỗi tuyến tính sau với các nút , n cạnh và các trọng số được chọn một cách luẩn quẩn:n+1n

thí dụ
[ nguồn ]

Rõ ràng, các cạnh có thể đã được thêm vào theo thứ tự trọng lượng của chúng và có của chúng. Thêm rìa đứt (mà là hợp pháp) tạo ra con đường ngắn hơn cho tất cả các cặp ( u i , b j ) với i , j = 1 , ... , k . Như k nnO(|V|)(ui,bj)i,j=1,,k và giả định rằngnΘ(|V|), cả hai dòng đầu tiên và cuối cùng chứaΘ(|V|)nhiều nút mỗi và việc bổ sung gâyΘ(|V|2)nhiều thay đổi con đường ngắn nhất.kn4nΘ(|V|)Θ(|V|)Θ(|V|2)

Bây giờ chúng ta có thể di chuyển "ra ngoài" ngay bây giờ, tức là thêm cạnh tiếp theo với trọng số giữa u k - 1b k - 1 , v.v. nếu chúng ta tiếp tục điều này thành ( u 1 , b 1 ) , chúng ta sẽ gây ra những thay đổi đường dẫn ngắn nhất Θ ( | V | 3 ) .n+2uk1bk1(u1,b1)Θ(|V|3)

Nếu điều này không thuyết phục bạn, hãy lưu ý rằng bạn thực sự có thể bắt đầu "quy trình" này với và làm việc từ đó; Bằng cách này bạn thêm n cạnh đó nguyên nhân trong tổng Σ n i = 1 i 2Θ ( n 3 ) = Θ ( | V | 3 ) có nhiều thay đổi con đường ngắn nhất --- đây là chỉ là không thể rút ra để phù hợp trên một màn.(c1,c2)ni=1ni2Θ(n3)=Θ(|V|3)


1
Điều này thực sự hoạt động, và hơn nữa, ví dụ của bạn có thể được thay đổi một chút để trở thành Euclidian. Cảm ơn :)
Alex ten Brink
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.