Cắt tối thiểu có thể dễ dàng hơn lưu lượng mạng?


18

Nhờ định lý cắt cực tiểu dòng cực đại, chúng ta biết rằng chúng ta có thể sử dụng bất kỳ thuật toán nào để tính toán lưu lượng tối đa trong biểu đồ mạng để tính toán cắt . Do đó, độ phức tạp của việc tính toán một đường cắt tối thiểu không nhiều hơn độ phức tạp của việc tính toán một luồng tối đa .( s , t ) ( s , t )(s,t)(s,t)(s,t)

Nó có thể ít hơn? Có thể có một thuật toán để tính toán một phần cắt tối thiểu nhanh hơn bất kỳ thuật toán dòng chảy tối đa nào không?(s,t)

Tôi cố gắng tìm kiếm một giảm để giảm ) vấn đề -Max-dòng chảy đến vấn đề -min cắt, nhưng tôi đã không thể tìm thấy một. Suy nghĩ đầu tiên của tôi là sử dụng thuật toán chia và chinh phục: đầu tiên tìm một phép cắt nhỏ, tách đồ thị thành hai phần; bây giờ đệ quy tìm một luồng cực đại cho phần bên trái và luồng cực đại cho phần bên phải và kết hợp chúng với tất cả các cạnh cắt ngang. Điều này thực sự sẽ hoạt động để tạo ra một luồng tối đa, nhưng thời gian chạy trong trường hợp xấu nhất của nó có thể lớn gấp gấp nhiều lần thời gian chạy của thuật toán cắt nhỏ. Có giảm bớt tốt hơn?( s , t ) O ( | V | )(s,t(s,t)O(|V|)

Tôi nhận ra định lý cắt tối đa dòng chảy tối đa cho thấy rằng độ phức tạp của việc tính toán giá trị của luồng cực đại cũng giống như độ phức tạp của tính toán công suất của phép cắt tối thiểu, nhưng đó không phải là điều tôi đang hỏi. Tôi đang hỏi về vấn đề tìm dòng chảy tối đa và tìm cách cắt tối thiểu (rõ ràng).

Điều này liên quan rất chặt chẽ với Tính toán lưu lượng tối đa từ mức cắt tối thiểu , ngoại trừ: (1) Tôi sẵn sàng cho phép giảm Cook (giảm Turing), không chỉ giảm Karp (giảm nhiều một) và (2) có lẽ với chúng ta có thể tìm thấy một số đồ thị sao cho phép cắt tối thiểu của giúp dễ dàng tính toán luồng cực đại của , một thứ nằm ngoài phạm vi của câu hỏi khác.G ' G ' GGGGG


2
@AshkanKzme, tôi không theo dõi bạn; bạn có thể xây dựng? Như tôi nêu trong đoạn 4 của câu hỏi, định lý cắt cực tiểu dòng cực đại cho thấy giá trị của luồng cực đại bằng với dung lượng của phép cắt cực tiểu. Tôi nghi ngờ đây là những gì bạn đang nghĩ đến. Tuy nhiên, việc biết giá trị của luồng tối đa không cho bạn biết chính luồng cực đại đó (ví dụ: gửi bao nhiêu trên mỗi cạnh cụ thể). Câu hỏi này là hỏi về sự phức tạp của việc tính toán dòng chảy tối đa, so với việc tự tính toán min-cut. Câu hỏi của tôi chính xác như được nêu trong đoạn 2 của câu hỏi.
DW

2
@AshkanKzme, Không, tôi đã không đưa ra giả định sai. Bạn đang mặc nhiên cho rằng Ford-Fulkerson là thuật toán nhanh nhất có thể để tìm ra một phép cắt nhỏ ... nhưng theo tôi biết, không ai từng chứng minh điều đó, và chúng tôi không biết liệu điều đó có đúng hay không. Tôi nghe có vẻ như bạn đang phạm phải sai lầm tân binh tiêu chuẩn với bằng chứng ràng buộc thấp hơn: "Tôi không thể thấy bất kỳ cách nào để giải quyết vấn đề này nhanh hơn, vì vậy điều đó là không thể". (PS Bạn đang nói với tôi những thứ trong sách giáo khoa tiêu chuẩn về việc cắt giảm tối đa. Tôi đánh giá cao nỗ lực của bạn để giúp đỡ, nhưng tôi đã quen với điều đó ...)
DW

1
Theo như tuyên bố của bạn "Tôi nghĩ có thể chứng minh rằng nếu bạn chỉ cắt tối thiểu, bạn có thể có được lưu lượng tối đa", tôi khuyến khích bạn viết một câu trả lời với bằng chứng về điều đó - bởi vì về cơ bản đó là những gì câu hỏi của tôi là hỏi Tôi chưa bao giờ thấy một bằng chứng về điều đó, nhưng nếu bạn có, tôi hy vọng bạn sẽ viết nó lên!
DW

1
@DW Tôi nghĩ bây giờ tôi nhận được câu hỏi tốt hơn một chút. Tôi nghĩ rằng tôi đã bị đặt vào thực tế là bạn đưa ra một giảm bớt đa thức. Bạn sẽ không cần giảm độ bền liên tục để chứng minh , trong khi ngay cả việc chứng minh không có mức giảm như vậy có thể không từ chối không? f(n)=Θ(g(n))
Thomas Bosman

1
@ThomasBosman, vâng, đúng rồi. [Xin lỗi vì đã làm bạn bối rối. Mức giảm mà tôi đưa ra trong câu hỏi chứng minh rằng , là giới hạn dưới rất yếu. Tôi hy vọng có thể có một mức giảm chứng minh rằng , nhưng tôi không biết cách tạo ra một thứ như vậy.]f ( n ) = Ω ( g ( n ) )f(n)=Ω(g(n)/n)f(n)=Ω(g(n))
DW

Câu trả lời:


-1

Đây là một cách tiếp cận có thể:

Giả sử bạn biết cắt S, sau đó tìm luồng từ đến là một vấn đề luồng mạng chi phí tối thiểu với chi phí bằng 0, vì bạn biết chính xác dòng chảy ở mỗi đỉnh trong và trong dòng chảy tại . Giả sử biểu thị một luồng và ma trận cung-nút (tức là hàng , col có 1 nếu là đuôi của , -1 nếu là đầu của nó, bằng không) và cho sao cho nếut V S t f S - t A i j i j b A f = b f | V | 3StVStfStAijijbAf=bfsatistfies cung / cầu, và bảo tồn dòng chảy. Sau đó, với việc loại bỏ gaussian, chúng ta có thể tìm ra một giải pháp khả thi trong các hoạt động .|V|3

Để tìm một vết cắt từ một luồng, chúng ta cần xây dựng biểu đồ dư có nhiều nhấtthời gian, và sau đó có khả năng đi quađỉnh. | V ||E||V|

Vì vậy, đối với các biểu đồ hoàn chỉnh và mức cắt tối thiểu chỉ là nguồn hoặc chỉ là phần chìm, việc giảm mất thời gian bằng nhau trong cả hai trường hợp xấu nhất. Tuy nhiên, tôi nghĩ rằng việc tìm kiếm một giải pháp khả thi cho có thể được thực hiện nhanh hơn với cấu trúc đặc biệt. Tôi không chắc chắn làm thế nào để chứng minh rằng mặc dù.| V | 3Af=b|V|3


Tôi không hiểu làm thế nào để tìm bằng cách loại bỏ Gaussian. Ta cóphương trình tuyến tính trongkhông biết. Thông thường, vì vậy chúng tôi sẽ không có đủ phương trình để xác định duy nhất những điều chưa biết. Có một mẹo tôi đang xem? | V | | E | | E | > | V |f|V||E||E|>|V|
DW

Tôi cũng không phải là chuyên gia về vấn đề này, vì vậy tôi có thể sai. Nhưng thực tế là không có giải pháp độc đáo nào có vẻ như làm cho nó dễ dàng hơn. Nếu bạn giảm nó thành hàng giảm hình thức, bạn cócột độc lập. Sau đó, giải pháp duy nhất của hàm con và , kết hợp với lưu lượng bằng không cho tất cả các cột khác sẽ mang lại một giải pháp không duy nhất, đây không phải là vấn đề. Vấn đề tôi có thể thấy trước là vi phạm các hạn chế về năng lực, nhưng theo trực giác tôi sẽ nói có một cách để phá vỡ điều này trực tiếpb f|V|bf
Thomas Bosman

Vâng, những hạn chế về năng lực có vẻ như là thách thức chính. Mặt khác, việc giải hệ phương trình tuyến tính có thể cung cấp cho bạn một giải pháp thỏa mãn nhưng không phải là luồng hợp lệ vì nó vi phạm các ràng buộc về dung lượng. Af=b
DW

Crap đúng vậy. Bạn có thể thêm các ràng buộc (trên và dưới), mà bạn biết có một giải pháp, nhưng sau đó bạn có | V | +2 | E | các hàng sao cho chậm hơn sau đó chỉ cần tính toán lưu lượng tối đa trực tiếp.
Thomas Bosman

Vấn đề khác là các hạn chế về năng lực là sự bất bình đẳng (không phải là đẳng thức), vì vậy bạn không thể sử dụng loại bỏ Gaussian: bạn cần sử dụng lập trình tuyến tính, như bạn nói dường như không thể nhanh hơn việc tính toán lưu lượng tối đa trực tiếp.
DW
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.