Có bao nhiêu điểm cắt cạnh khác nhau mà DAG phải có?


10

Các câu dưới đây có liên quan đến tối ưu của Bellman-Ford ss - ngắn nhất thuật toán lập trình con đường năng động (xem bài này cho một kết nối). Ngoài ra, một câu trả lời tích cực sẽ ngụ ý rằng kích thước tối thiểu của chương trình phân nhánh không đơn điệu cho vấn đề STCONN là . ttΘ(n3)Θ(n3)

Đặt là một DAG (đồ thị chu kỳ có hướng) với một nút nguồn và một nút đích . Một - cut là một tập hợp các cạnh, việc loại bỏ sẽ phá hủy tất cả đường dẫn - có độ dài ; chúng ta giả định rằng có những con đường như vậy trong . Lưu ý rằng đường dẫn - ngắn hơn cần phải bị phá hủy.GGssttkkssttkkGGsstt

Câu hỏi: Liệu phải có ít nhất (khoảng) rời nhau -cuts? GGkk kk

Nếu không có đường dẫn - ngắn hơn , câu trả lời là CÓ, bởi vì chúng ta có một thực tế tối thiểu được biết đến sau đây (một định lý kép của Mạnh) được quy cho Robacker . Một - cắt là một k -cut cho k = 1 (phá hủy tất cả các s - t đường dẫn).ss tt k * s tkstkk=1 st

Sự thật: Trong bất kỳ đồ thị có hướng nào, số lần cắt cạnh - tối đa của các lần cắt ss - tt bằng với độ dài tối thiểu của đường dẫn ss - tt .

Lưu ý rằng điều này giữ ngay cả khi đồ thị không phải là chu kỳ.

Chứng minh: trivially, mức tối thiểu ít nhất là tối đa, vì mỗi s - t con đường giao cắt mỗi s - t cắt giảm một cạnh. Để xem đẳng thức, hãy d ( u ) là độ dài của một con đường ngắn nhất từ s đến u . Đặt U r = { u : d ( u ) = r } , cho r = 1 , Hoài , d ( t ) và để E rststd(u)suUr={u:d(u)=r}r=1,,d(t)Erlà tập hợp các cạnh rời U r . Rõ ràng là các bộ E r khác nhau, vì các bộ U r là như vậy. Vì vậy, vẫn còn cho thấy rằng mỗi E r là một s - t cắt. Để hiển thị điều này, hãy chọn một đường dẫn s - t tùy ý p = ( u 1 , u 2 , BR , u m ) với u 1 = su m = t . Kể từ ngàyUrErUrErststp=(u1,u2,,um)u1=sum=t ( u i + 1 ) d ( u i ) + 1 , chuỗi các khoảng cách d ( u 1 ) , Cẩu , d ( ud(ui+1)d(ui)+1 m ) phải đạt được giá trị d ( u m ) = d ( t ) bằng cách bắt đầu tại d ( u 1 ) = d ( s ) = 0 và tăng giá trị lên tối đa 1d(u1),,d(um)d(um)=d(t)d(u1)=d(s)=01trong từng bước Nếu một số giá trị d ( u i ) bị giảm, thì chúng ta phải đạt giá trị d ( u i ) sau. Vì vậy, phải có một j trong đó một bước nhảy từ d ( u j ) = r đến d ( u j + 1 ) = r + 1 xảy ra, nghĩa là cạnh ( u j , u j + 1 ) thuộc về E r , như mong muốn. QED d(ui)d(ui)jd(uj)=rd(uj+1)=r+1(uj,uj+1)Er

Nhưng nếu có những con đường ngắn hơn ( k ) thì sao? Bất kỳ gợi ý / tài liệu tham khảo? k


* JT Robacker, Min-Max Theorems trên Chuỗi ngắn nhất và Cuts rời nhau của một mạng, nghiên cứu Bản ghi nhớ RM-1660, Tổng công ty RAND, Santa Monica, California, [12 Jan- uary] năm 1956.
EDIT (một ngày sau): Qua một cuộc tranh luận ngắn và rất hay, David Eppstein đã trả lời câu hỏi ban đầu ở trên một cách tiêu cực : DAG T n (một giải đấu bắc cầu ) hoàn toàn không thể có nhiều hơn bốn lần cắt k ! Trong thực tế, ông đã chứng minh sự thú vị sau đây về cấu trúc thực tế, cho k về Tnkkn . Một vết cắt làthuần túynếu nó không có sự cố cạnh vớishoặct.nst

Mỗi k -cut thuần trong T n chứa một đường dẫn có độ dài k . kTnk

Điều này, đặc biệt, ngụ ý rằng cứ hai chữ k thuần túy phải giao nhau! Nhưng có lẽ vẫn còn nhiều kiểu chữ k thuần túy không trùng lặp "quá nhiều". Do đó, một câu hỏi thoải mái (hậu quả cho STCONN sẽ giống nhau ):kk

Câu hỏi 2: Nếu mỗi tinh khiết k -cut có M cạnh, không thì đồ thị phải có khoảng Ω ( k M ) cạnh? kMΩ(kM)

Mối liên hệ với sự phức tạp của STCONN xuất phát từ kết quả của Erdős và Gallai mà người ta phải loại bỏ tất cả trừ ( k - 1 ) m / 2 cạnh khỏi (không xác định) K m để phá hủy tất cả các đường có độ dài k . (k1)m/2Kmk


EDIT 2: Bây giờ tôi đã hỏi Câu hỏi 2 tại mathoverflow .

Câu trả lời:


9

Câu trả lời ngắn gọn: không.

Hãy để G là một DAG đầy đủ (transitive giải đấu) trên n đỉnh với st nguồn và chìm của nó, và để cho k = Gnstn / 3 . Quan sát rằng có thể có nhiều nhất bốn lần cắt rời nhau có chứa nhiềusự cố cạnhn/3cạnh đếnshoặc nhiều hơnn/3sự cố cạnh chot. Vì vậy, nếu có nhiều vết cắt rời nhau, chúng ta có thể giả sử rằng tồn tại một vết cắtCkhông chứa số lượng lớn các sự cố cạnhk=n/3n/3sn/3tC s t .st

Bây giờ hãy X là đồ thị con hoàn toàn cảm ứng trong G bằng cách thiết lập các đỉnh x đến nỗi cạnh của xx t không thuộc về C . Số lượng đỉnh trong X ít nhất là n / 3 , vì nếu không C sẽ chạm quá nhiều sự cố cạnh vào s hoặc t . Tuy nhiên, X C không thể chứa một k -path, bởi vì nếu một con đường như vậy tồn tại nó có thể được nối với s C . Do đó, lớp phân lớp dài nhất củaXGxsxxtCXn/3CstXCkst để tạo thành một đường dài trong G X C có ít hơn k lớp và có một lớp chứa nhiều hơn ( n / 3 ) / k = k đỉnh. Vì đây là một lớp của lớp phân lớp đường dẫn dài nhất, nó độc lập trong X C , và do đó hoàn thành trong C , do đó C chứa một đường dẫn P qua các đỉnh của lớp này, có độ dài k . Con đường này phải tách rời khỏi tất cả các vết cắt khác.

Mỗi vết cắt không phải C phải chứa cạnh từ s đến đầu đường dẫn P hoặc cạnh từ cuối đường dẫn P đến t , nếu không, nó sẽ không chặn đường dẫn s - P - t . Vì vậy, nếu C tồn tại, có thể có nhiều nhất ba lần cắt rời nhau. Và nếu C không tồn tại (nghĩa là, nếu tất cả các vết cắt bao gồm hơn n / 3 cạnh xảy ra với s hoặc đến t ) thì có thể có nhiều nhất bốn lần cắt rời nhau. Dù bằng cách nào, điều này ít hơn rất nhiều so với k cắt.


@ David: Đối số thú vị (mặc dù tôi chưa hiểu rõ về nó: tại sao C phải có đường dẫn k). Nhưng trường hợp đối số không thành công (nên) nếu tất cả các đường dẫn st dài, có độ dài ít nhất là k?
Stasys

1
@Stasys: G là một giải đấu, bằng chứng sử dụng thực tế này, vì vậy imo đó là lý do tại sao nó sẽ thất bại.
domotorp

@domotorp: cảm ơn, thực sự tôi đã bỏ lỡ từ "hoàn thành". Tôi chưa thể tìm thấy một lỗ hổng nào, nhưng đây sẽ là một thực tế khá trực quan: ngay cả khi có rất nhiều đường dẫn k trong một giải đấu theo chu kỳ, chúng tôi không thể chọn nhiều hệ thống khác nhau của các đại diện (các cạnh) của họ.
Stasys

@David: Trên thực tế, để có các hậu quả được đề cập, chúng tôi có thể cho phép các vết cắt chỉ "gần như rời rạc", nghĩa là có thể chia sẻ sự cố cạnh với s hoặc t (chúng tôi chỉ có 2n các cạnh đặc biệt này). Một mục tiêu thực sự là chỉ ra rằng G phải có các cạnh kN, nếu chúng ta biết rằng mọi k-cut "thuần" (không có các cạnh đặc biệt này) phải có N cạnh. Đối số (rất hay, như tôi thấy bây giờ) của bạn có thể được sửa đổi thành tình huống ("gần như rời rạc") này không?
Stasys

2
Nếu bạn cho phép các vết cắt chia sẻ sự cố các cạnh với s hoặc t, thì tại sao bạn không thể thực hiện tất cả các vết cắt bao gồm chính xác các sự cố cạnh cho s? Mặt khác, lập luận của tôi cho thấy rằng (với sự lựa chọn Gk ), chỉ có thể có một vết cắt thuần túy.
David Eppstein
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.