Cắt tối đa với các cạnh trọng lượng âm


35

Đặt G = ( V , E , w )G=(V,E,w) là một đồ thị có hàm trọng số . Vấn đề cắt tối đa là tìm: If hàm trọng số không âm (tức là w (e) \ geq 0 cho tất cả e \ trong E ), sau đó có nhiều phép tính xấp xỉ 2 cực kỳ đơn giản để cắt tối đa. Ví dụ: chúng ta có thể:w:ERw:ERargmaxSV(u,v)E:uS,vSw(u,v)

argmaxSV(u,v)E:uS,vSw(u,v)
w(e)0w(e)0eEeE
  1. Chọn một tập hợp con ngẫu nhiên của đỉnh SS .
  2. Chọn một thứ tự trên các đỉnh và tham lam đặt từng đỉnh vv trong SS hoặc ˉSS¯ để tối đa hóa các cạnh được cắt cho đến nay
  3. Thực hiện các cải tiến cục bộ: Nếu có bất kỳ đỉnh nào trong SS có thể được di chuyển đến ˉSS¯ để tăng phần cắt (hoặc ngược lại), hãy thực hiện di chuyển.

Phân tích tiêu chuẩn của tất cả các thuật toán này thực sự cho thấy rằng kết quả cắt giảm ít nhất bằng 12eEw(e)12eEw(e) , giới hạn trên 1/21/2 trọng lượng của mức cắt tối đa nếu ww không âm - nhưng nếu một số cạnh được phép có trọng số âm, thì không!

Ví dụ, thuật toán 1 (chọn một tập hợp con ngẫu nhiên của các đỉnh) rõ ràng có thể thất bại trên các biểu đồ có trọng số cạnh âm.

Câu hỏi của tôi là:

Có một thuật toán tổ hợp đơn giản nào có được xấp xỉ O (1) cho bài toán cắt tối đa trên các biểu đồ có thể có trọng số cạnh âm không?

Để tránh sự cố có thể xảy ra với giá trị lấy tối đa , tôi sẽ cho phép và / hoặc hài lòng với các thuật toán dẫn đến lỗi phụ gia nhỏ ngoài một hệ số gần đúng nhân.0 e E w ( e ) > 00eEw(e)>0


1
Là điều kiện "tổ hợp đơn giản" cần thiết ở đây?
Hsien-Chih Chang 張顯

Tôi quan tâm nhất đến một thuật toán đơn giản, kết hợp như 2 xấp xỉ cho trường hợp trọng số dương. Lưu ý rằng tôi đang hỏi về bất kỳ xấp xỉ O (1) nào, vì vậy tôi hy vọng rằng nếu bất kỳ thuật toán nào có thể đạt được điều này, thì nó có thể thực hiện được với một thuật toán đơn giản. Nhưng tôi cũng sẽ được quan tâm đến những gì đảm bảo hiệu suất dành cho các thuật toán SDP trên đồ thị với trọng lượng cạnh tiêu cực, hoặc bằng chứng cho thấy không có thuật toán xấp xỉ liên tục yếu tố tồn tại nếu P N P . PNP
Aaron Roth

Câu trả lời:


28

Đây là nỗ lực đầu tiên của tôi tại một cuộc tranh cãi. Đó là sai, nhưng tôi đã sửa nó sau "EDIT:"

Nếu bạn có thể giải quyết một cách hiệu quả vấn đề cắt tối đa với trọng số cạnh âm, bạn không thể sử dụng nó để giải quyết vấn đề cắt tối đa với trọng số cạnh dương? Bắt đầu với một vấn đề tối đa mà bạn muốn giải quyết có giải pháp tối ưu là b . Bây giờ, đặt cạnh trọng lượng âm lớn (có trọng số - a ) giữa uv . Giải pháp tối ưu cho vấn đề mới là b - a , vì vậy thuật toán xấp xỉ giả thuyết của chúng tôi sẽ giúp bạn có một giải pháp với mức cắt tối đa có giá trị tối đa ( b - a ) / 2 kém hơn tối ưu. Trên biểu đồ gốc, mức cắt tối đa vẫn còn nhiều nhấtbauvba(ba)/2( b - a ) / 2 kém hơn tối ưu. Nếu bạn chọn một gần b , điều này vi phạm các kết quả inapproximability rằng nếu P NP, bạn không thể gần đúng max-cut để tốt hơn so với một 16 / 17 yếu tố. (ba)/2ab16/17

CHỈNH SỬA:

Thuật toán trên không hoạt động vì bạn không thể đảm bảo rằng uv nằm ở hai phía đối diện của vết cắt trong biểu đồ mới, ngay cả khi chúng ban đầu. Tôi có thể sửa nó như sau.uv

Giả sử rằng chúng ta có một thuật toán gần đúng sẽ giúp chúng ta cắt giảm trong phạm vi 2 của OPT miễn là tổng của tất cả các trọng số cạnh là dương.

Như trên, bắt đầu với một biểu đồ G với tất cả các trọng số không âm trên các cạnh. Chúng tôi sẽ tìm thấy một đồ thị biến đổi G * với một số trọng lượng tiêu cực như vậy mà nếu chúng ta có thể xấp xỉ cắt tối đa của G * trong hệ số 2, chúng ta có thể xấp xỉ cắt tối đa của G rất tốt.GGGG

Chọn hai đỉnh uv và hy vọng rằng chúng nằm ở hai phía đối diện của đường cắt tối đa. (Bạn có thể lặp lại điều này cho tất cả các thể v để đảm bảo rằng công trình một thử.) Bây giờ, hãy đặt một trọng lượng tiêu cực lớn - d trên tất cả các cạnh ( u , x )( v , x ) cho x u , v , and a large trọng lượng dương a trên cạnh ( u , v ) . Giả định rằng việc cắt giảm tối ưu có trọng lượng O P T .uvvd(u,x)(v,x)xu,va(u,v)OPT

Một vết cắt có giá trị c trong G , trong đó các đỉnh uv nằm cùng phía với vết cắt, bây giờ có giá trị tại c - 2 d m trong đó m là số đỉnh ở phía bên kia của vết cắt. Một vết cắt có ( u , v ) ở hai phía đối diện với giá trị ban đầu c hiện có giá trị c + a - ( n - 2 ) d . Vì vậy, nếu chúng ta chọn d đủ lớn, chúng ta có thể buộc tất cả các vết cắt bằng uvcGuvc2dmm(u,v)cc+a(n2)dduvở phía bên cùng có giá trị âm, vì vậy nếu có bất kỳ cắt có giá trị tích cực, sau đó cắt tối ưu trong G * sẽ có uv trên các cạnh đối diện. Lưu ý rằng chúng tôi đang thêm một trọng lượng cố định ( a - ( n - 2 ) d ) cho bất kỳ vết cắt nào có uv ở hai phía đối diện.Guv(a(n2)d)uv

Đặt f = ( a - ( n - 2 ) d ) . Chọn một sao cho f - 0,98 O P T (chúng tôi sẽ biện minh điều này sau). Một cắt với trọng lượng c trong Guv trên các cạnh đối diện bây giờ trở thành một vết cắt với trọng lượng c - 0,98 O P T . Điều này có nghĩa việc cắt giảm tối ưu trong G * có trọng lượng 0,02 O P Tf=(a(n2)d)af0.98OPTcGuvc0.98OPTG0.02OPT. Thuật toán mới của chúng tôi tìm thấy một vết cắt trong G * với trọng lượng ít nhất 0,01 O P T . Điều này được chuyển vào một vết cắt trong đồ thị dưới gốc G với trọng lượng ít nhất 0,99 O P T (vì tất cả các vết cắt trong G * với trọng lượng tích cực tách uv ), mà là tốt hơn so với kết quả inapproximability.G0.01OPTG0.99OPTGuv

Không có vấn đề gì với việc chọn d đủ lớn để làm cho bất kỳ vết cắt nào có uv ở cùng một phía âm, vì chúng ta có thể chọn d lớn như chúng ta muốn. Nhưng làm thế nào chúng ta chọn một để f - .99 O P T khi chúng ta không biết O P T ? Chúng ta có thể ước chừng O P T thực sự tốt ... nếu chúng ta đặt T là tổng trọng số cạnh trong G , chúng ta biết 1duvdaf.99OPTOPTOPTTG2 TOPTT. Vì vậy, chúng ta có một phạm vi tương đối hẹp của giá trị chof, và chúng ta có thể lặp quaetham gia tất cả các giá trị giữa-0,49T-0,99Ttrong khoảng thời gian0.005T. Đối với một trong những khoảng thời gian này, chúng tôi được đảm bảo rằngf-0,98OPT, và vì vậy một trong những lần lặp này được đảm bảo để trả lại một vết cắt tốt.12TOPTTff.49T.99T0.005Tf0.98OPT

Cuối cùng, chúng ta cần kiểm tra xem biểu đồ mới có trọng số cạnh có tổng là dương hay không. Chúng tôi bắt đầu với một biểu đồ có trọng số cạnh có tổng T và thêm f vào tổng trọng số cạnh. Kể từ - 0,99 T f - 0,49 T , chúng tôi OK Tf.99Tf.49T


1
Nhưng uv của bạn là gì? Công thức thông thường của bài toán cắt tối đa không có bất kỳ "nút đặc biệt" nào cần phải tách. uv
Jukka Suomela

3
Xin chào Ian - Tôi không nghĩ rằng nó hoạt động mặc dù. Tại sao nhất thiết phải tồn tại bất kỳ uv nào được phân tách bằng mức cắt tối đa trong biểu đồ gốc và vẫn được phân tách bằng mức cắt tối đa sau khi thêm cạnh âm nặng giữa chúng? Ví dụ, xem xét biểu đồ hoàn chỉnh - thêm một cạnh âm tùy ý, bất cứ nơi nào không thay đổi giá trị cắt. uv
Aaron Roth

2
Một vấn đề là nếu bạn thêm một cạnh âm giữa mỗi cặp đỉnh, thì bạn đang sửa đổi giá trị của các vết cắt khác nhau bằng các lượng khác nhau. (Chúng tôi trừ, nói, | S || ˉ S |một từ giá trị cắt S ). Vì vậy, chúng ta có một vấn đề là danh tính của mức cắt tối đa trong biểu đồ được sửa đổi không nhất thiết phải tương ứng với mức cắt tối đa trong biểu đồ gốc. |S||S¯|aS
Aaron Roth

1
@ Peter: Trong đoạn sau khi một trong tôi trích dẫn bạn chọn một đủ nhỏ để làm cho f - 0,98 O P T . Bạn không thể an toàn chọn một đủ lớn trong một đoạn và đủ nhỏ trong đoạn tiếp theo! Cụ thể, không có cách nào để chọn ad để đảm bảo rằng c + a - ( n - 2 ) d > c - d m cho tất cả 0 m n và đồng thời có a -af0.98OPTaadc+a(n2)d>cdm0mn ( n - 2 ) d = f - 0,98 O P T . Điều này xảy ra vì c + a - ( n - 2 ) d > c -a(n2)d=f0.98OPT d m với mọi 0 m n ngụ ý rằng f = a - ( n - 2 ) d > 0 . c+a(n2)d>cdm0mnf=a(n2)d>0
Warren Schudy

2
@Warren, Bạn chọn d đủ lớn để c - d m < 0 cho tất cả các vết cắt. Điều này có thể được thực hiện bằng cách chọn d đủ lớn. Bạn sau đó chọn một kích thước phù hợp để cắt tối ưu là chỉ vừa đủ trên 0 . Đọc hai đoạn cuối câu trả lời của tôi. d
Peter Shor

11

Trong bài viết " Khoảng cắt tối đa gần đúng " của S. Har-Peled, dòng cuối cùng của bài báo đã đề cập rằng phiên bản trọng lượng thực của cắt tối đa đã được thảo luận trong

Approximating the cut-norm via grothendieck’s inequality, Noga Alon and Assaf Naor, SIAM Journal on Computing, 2006.

It is indeed an SDP algorithm, and it seems to me that the approximation ratio is 0.56, though I'm not sure if the reduction discussed in the paper is ratio preserving. Maybe a deeper look into the paper will help!


the problem in Alon-Naor is similar but I don't think there is a ratio preserving reduction. their problem is to maximize xTMy where x,y{±1}n and M is an n×n matrix. for max-cut and its close relatives it's crucial that x=y
Sasho Nikolov

@SashoNikolov: for the cut norm it's immaterial, up to constant factors, whether we demand x=y or not.
david

@david I know this reduction, but the statement that's actually true is that maxx|xTMx|maxx,yxTMy4maxx|xTMx| where all maximums are over {1,1}n, and M is symmetric with nonnegative diagonal. However, the problem maxx|xTMx| can have very different value from maxxxTMx (which is what we need for MaxCut). For example, consider M=IJ, where J is the n×n all ones matrix. You can see maxxxTMx is about n/2, while maxx|xTMx| is n2n.
Sasho Nikolov

6

Your problem has a logarithmic approximation by reduction to a quadratic programming problem.

The MaxQP problem is the problem of approximating the quadratic form xTMx for a n×n matrix M, where x ranges over {±1}n. MaxCut can be written in this form by setting M=12n(we)I12A where I is the identity matrix and A is the adjacency matrix. The MaxQP algorithm of Charikar and Wirth gives an O(logn) approximation for MaxQP as long as M has a non-negative diagonal. So as long as we0, MaxCut with negative weights has a logarithmic approximation.

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.