Kiểm tra độ biến đổi so với đóng cửa bắc cầu


9

Có phải việc kiểm tra tính chuyển động của một bản vẽ không dễ dàng hơn (về độ phức tạp tiệm cận) lấy sự đóng cửa quá độ của bản đồ? Chúng ta có biết bất kỳ ràng buộc thấp hơn Ω ( n 2 )Ω(n2) để xác định xem một digraph là bắc cầu hay không?


1
Lưu trữ toàn bộ đóng cửa bắc cầu sẽ khiến bạn tốn thêm không gian. Đối với một số biểu đồ, bạn sẽ có thể móc và tắt phím kiểm tra độ xuyên sáng mà không cần xem lại các cạnh. Xem: Thuật toán kết nối song song O ( l o g n ) , Y Shiloach, U Vishkin - Tạp chí thuật toán, 1982O(logn )
Chad Brewbaker

1
Tại đây, Siek có các ghi chú triển khai cho Thư viện đồ thị Boost boost.org/doc/libs/1_54_0/libs/graph/doc/ trộm
Chad Brewbaker

2
Không chắc chắn những gì bạn có ý nghĩa bởi n , nhưng giới hạn dưới là Ω ( | V | 2 ) rất đơn giản - xem xét K n{ e } đối với một số cạnh e . Bất kỳ thuật toán sẽ yêu cầu phải kiểm tra xem ( u , v ) E cho tất cả các u , v V , vì nếu không cạnh anh ấy không hỏi về có thể là một mất tích. O ( | V || E | )nΩ(|V|2)Kn{e}e(u,v)Eu,vVO(|V||E|)là một giới hạn trên, vì đây là thời gian cần thiết để tính toán đóng cửa bắc cầu.
RB

2
Hãy xem xét một đồ thị có hướng với n = 3 k đỉnh: Nguồn đỉnh s 1 , ... , s k , đỉnh trung gian t 1 , ... , t k có kế trực tiếp của từngn=3ks1,,skt1,,tk s i , và đỉnh chìm u 1 , ... , u k mà là những người kế thừa ngay lập tức của mỗi t i . Các sơ đồ được chuyển tiếp iff mỗi cung ( s i , u j )siu1,,ukti(si,uj)có mặt trong biểu đồ. Điều này đòi hỏi phải kiểm tra các cạnh k 2 = ( n / 3 ) 2 = Ω ( n 2 ) . Mặt khác, việc tìm kiếm đóng cửa bắc cầu có thể được thực hiện trong thời gian O ( n ω ) , trong đó ω < 2.373 là số mũ của phép nhân ma trận. Đây là những giới hạn được biết đến nhiều nhất. k2=(n/3)2=Ω(n2)O(nω)ω<2.373
András Salamon

DAG của bạn có thể có bất kỳ cấu trúc bổ sung nào không, hoặc bạn muốn có kết quả chung chung?
Niel de Beaudrap

Câu trả lời:


9

Dưới đây tôi sẽ hiển thị như sau: nếu bạn có một O ( n 3 - ε ) thuật toán thời gian để kiểm tra nếu một đồ thị là bắc cầu cho bất kỳ ε > 0 , sau đó bạn có một O ( n 3 - ε ) thuật toán thời gian cho việc phát hiện một tam giác trong đồ thị nút n và do đó (bằng một bài báo từ FOCS'10 ), bạn sẽ có thuật toán thời gian O ( n 3 - ε / 3 ) để nhân hai ma trận boolean n × n và do đó là kết quả của Fischer và Meyer từ những năm 70 , điều này cũng bao hàm chữ O ( n 3 -n3εε>0n3εnn3ε/3n×nε / 3 ) thuật toán thời gian cho đóng cửa bắc cầu.n3ε/3

Giả sử rằng bạn muốn phát hiện một hình tam giác trong một n nút G . Bây giờ chúng ta có thể tạo ra các đồ thị sau H . H là ba bên với các phân vùng I , J , K trên n nút mỗi. Ở đây mỗi nút x của G đã bản x I , x J , x K trong phần I , J , K . Đối với mỗi cạnh ( u , v ) của G, thêm các cạnh được định hướng (nGHHI,J,KnxGxI,xJ,xKI,J,K(u,v)Gu I , v J ) ( u J , v K ) . Với mỗi nonedge ( u , v ) của G thêm cạnh có hướng ( u I , v K ) .(uI,vJ)(uJ,vK)(u,v)G(uI,vK)

Đầu tiên, nếu G chứa một tam giác u , v , w , thì H không phải là bắc cầu. Điều này là do các cạnh ( u I , v J ) , ( v J , w K ) nằm trong H nhưng ( u I , w K ) thì không. Thứ hai, nếu H không có tính bắc cầu, thì phải tồn tại một số đường dẫn từ một số nút s đến một số nút t trong H sao cho (Gu,v,wH(uI,vJ),(vJ,wK)H(uI,wK)HstHs , t ) không phải là một lợi thế cạnh đạo diễn trong H . Tuy nhiên, các đường dẫn dài nhất trong H 2 cạnh và do đó, bất kỳ đường dẫn nào như vậy phải có dạng ( u I , v J ) , ( v J , w K ) ( u I , w K ) không thuộc H , do đó u , v , w hình thức một hình tam giác trong G .(s,t)HH2(uI,vJ),(vJ,wK)(uI,wK)Hu,v,wG


1
Tìm đóng cửa bắc cầu về cơ bản giống như phép nhân ma trận. Câu hỏi đặt ra là liệu số mũ ở giới hạn dưới có thể tăng lên từ 2 hay số mũ ở giới hạn trên có thể được hạ xuống từ 2.373. Chuỗi lý luận mà bạn chứng minh cho thấy rằng ngay cả một thuật toán O ( n 2 ) tối ưu để kiểm tra độ xuyên sáng sẽ chỉ mang lại thuật toán thời gian O ( n 2.667 ) cho đóng cửa bắc cầu - nhưng chúng ta đã có thuật toán thời gian O ( n 2.373 ) . O(n2)O(n2.667)O(n2.373)
András Salamon

Điểm quan trọng là giảm hộp đen tồn tại. Thuật toán thời gian O ( n 2.373 ) là xa thực tế. Tuy nhiên, một thuật toán kiểm tra độ xuyên thực tế chạy trong thời gian cận lâm sàng, bằng cách giảm ở trên cũng ngụ ý một thuật toán thực tế cho BMM và do đó đóng cửa quá độ. Ngoài ra, ngay cả khi bạn không quan tâm đến các thuật toán thực tế, hoàn toàn có khả năng mất số mũ từ bài báo FOCS'10 là không cần thiết và phát hiện tam giác có thể tương đương với BMM. n2.373
virgi

Ồ và tất nhiên, chúng ta chỉ có thể dựa vào độ cứng của vấn đề chuyển đổi chỉ dựa trên độ cứng giả định của phát hiện tam giác. Lưu ý rằng có được không biết đến giới hạn thấp hơn n 2 để phát hiện hình tam giác, và tốt nhất trên ràng buộc là O ( n ω ) . n2O(nω)
virgi

Chúng tôi đã có một thuật toán thực tế subcubic, bằng cách sử dụng bất kỳ phương pháp nhân ma trận nhanh nào: xem ví dụ: cacm.acm.org/mag Magazine / 2014/2 / Tách
András Salamon

2
Bài báo của Ballard và cộng sự mà bạn trích dẫn nói về thuật toán của Strassen nói riêng. Từ những gì tôi biết, không có thuật toán nhân ma trận nào sử dụng thứ hạng đường viền là thực tế. Cụ thể, tôi không biết các thuật toán thực tế cho bất kỳ ràng buộc nào trên ω thấp hơn 2,78 .ω2.78
virgi

7

Có vẻ như rằng Ω ( n 2 ) là tốt nhất được biết đến dưới ràng buộc, vì bất kỳ ràng buộc thấp hơn hàm ý một giới hạn thấp hơn cho phép nhân ma trận boolean. Chúng ta biết rằng có thể đạt được kiểm tra độ xuyên bằng cách sử dụng một phép nhân ma trận boolean, nghĩa là G có tính bắc cầu khi và chỉ khi G = G 2 .Ω(n2)GG=G2


4

Hình dung nếu một DAG có tính bắc cầu cũng khó như quyết định xem một bản tóm tắt chung có mang tính bắc cầu hay không (điều này đưa chúng ta trở lại câu hỏi trước đó của bạn :)).

Giả sử bạn có một thuật toán chạy trong thời gian O ( f ( n ) ) để quyết định xem DAG có mang tính bắc cầu hay không.O(f(n))

Cho một đồ thị có hướng G , bạn có thể sử dụng các thuật toán ngẫu nhiên sau đây để quyết định nếu G là bắc cầu trong thời gian O ( f ( n ) log ( 1GGδ ))và lỗi xácδ:O(f(n)log(1δ))δ

 1. for $O(\log{\frac{1}{\delta}})$ iterations:

   1.1. Compute a random permutation on $V$. Denote the result by $<v_1,v_2,...,v_n>$.

   1.2. Set $G'=(V,E\cup \{(v_i,v_j)|i<j\})$ (i.e. compute a random acyclic orientation).

   1.3. If $G'$ (which is acyclic) is not transitive return false.

 2. return true.

Bây giờ rõ ràng là nếu G là bắc cầu, thuật toán này trả về đúng.G

Bây giờ giả sử G không phải là bắc cầu. Đặt e 1 = ( v i , v j ) , e 2 = ( v j , v k ) E sao cho ( v i , v k ) E (phải có các cạnh như G không có tính bắc cầu). Xác suất mà e 1 , e 2G 'Ge1=(vi,vj),e2=(vj,vk)E(vi,vk)EGe1,e2G 16 , do đó, trong mỗi lần lặp, xác suất mà thuật toán sẽ tínhGkhông phải là bắc cầu là116G6 và sauO(log(δ))lặp đi lặp lại xác suất thất bại là tại hầu hết cácδ.16O(log(δ))δ


1
Cảm ơn câu trả lời. Giả sử tôi có một thuật toán để quyết định nếu một DAG có tính bắc cầu trong O ( f ( n ) ) như vậy f ( n ) = Ω ( n 2 ) . Sau đó, tôi có thể quyết định xem một đồ thị có hướng G có tính bắc cầu trong O ( f ( n ) ) -time as; 1) Có được sơ đồ kết nối mạnh trong O ( n 2 ) -time. 2) Kiểm tra xem mỗi thành phần đã hoàn thành trong O ( n 2 chưaO(f(n))f(n)=Ω(n2)O(f(n))O(n2) )O(n2)-thời gian. 3) Kiểm tra xem mỗi cặp thành phần, trong đó có một cạnh trong sơ đồ thành phần, có hoàn chỉnh không, đó là có một cạnh từ mọi đỉnh của một thành phần đến mọi đỉnh của thành phần thứ hai trong O ( n 2 ) -thời gian. 4) Kiểm tra xem bản dịch sơ đồ thành phần trong O ( f ( n ) ) -time. O(n2)O(f(n))
ekayaaslan

1

Tôi nghĩ rằng điều này nên khả thi trong thời gian tuyến tính, tức là O ( n + m ) trong đó n là số đỉnh và m là số cạnh. Có thể bằng cách điều chỉnh một số sơ đồ truyền tải đồ thị với cài đặt được định hướng? Điểm bắt đầu có thể là LexBFS / LexDFS được mô tả ở đây ; đối với các biểu đồ có hướng, có vẻ như chúng ta nên sử dụng sắp xếp tôpô thay vì DFS, vì vậy có thể với một số thuật toán LexTSA để khám phá?O(n+m)nm


2
Đây không phải là IMO, vì nó sẽ đưa ra thuật toán thời gian tuyến tính xác suất để kiểm tra độ xuyên sáng trong các bản tóm tắt chung, xem câu trả lời của tôi.
RB

0

Về câu trả lời trước, đây là một cách đơn giản để xác định thuật toán như vậy. Gán cho mỗi đỉnh x một chỉ số i ( x ) , được khởi tạo thành 0 . Với mỗi x , hãy để M ( x ) biểu thị nhiều chỉ số của các hàng xóm của nó. Chúng tôi mô phỏng một cách sắp xếp tô pô bằng cách duy trì một tập hợp R các đỉnh chưa được khám phá, khởi tạo cho toàn bộ tập hợp. Ở mỗi bước, chúng tôi làm như sau:xi(x)0xM(x)R

  1. Chọn một đỉnh x R có multiset M ( x ) là tối thiểu (theo thứ tự multiset);xRM(x)

  2. Cập nhật i ( x ) vào vòng truy cập và loại bỏ hiện tại x từ R .i(x)xR

Thuật toán này có thể được sử dụng cho vấn đề của bạn, hoặc cho một số ứng dụng khác không?


Điều này sẽ thích hợp hơn như là một nhận xét.
Suresh Venkat
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.