Vẽ lại đồ thị lưỡng cực


8

Cho một đồ thị lưỡng cực trong đó mọi đỉnh được tô màu đỏ hoặc xanh lam Tôi đang cố gắng giảm thiểu số lượng đỉnh màu xanh bằng cách sử dụng thao tác sau:G=(A,B,E)

  1. Chọn một đỉnh trong AvaA
  2. Lật màu của , nghĩa là và mọi hàng xóm của sẽ đổi màu.v a v aN[va]vava

Có một thuật toán thời gian đa thức để chọn một bộ đổi màu sẽ giảm thiểu số lượng đỉnh màu xanh không? Số lượng màu cần thiết là không liên quan.XA

Quan sát rằng thứ tự lật không quan trọng, và với mỗi đỉnh trong , bạn có thể lật nó hoặc bạn không. Chúng ta có thể nghĩ về màu sắc là một số được tăng modulo 2. Điều này mang lại thuật toán tầm thường .O ( 2 | Một |n )AO(2|A|n)

Câu trả lời:


6

Vấn đề là NP-đầy đủ và do đó không có khả năng thừa nhận thuật toán thời gian đa thức. Dưới đây là bằng chứng về tính đầy đủ của NP của vấn đề, được thể hiện bằng cách giảm từ 1 trong 3-SAT.

Hãy là một thể hiện của 1-IN-3-SAT, nơi chúng tôi đang đưa ra một công thức 3-CNF-SAT hỏi để tìm một nhiệm vụ đáp ứng trong đó mỗi khoản được thỏa mãn bởi đúng một chữ. Đặt là tập hợp biến và là tập hợp các mệnh đề .ϕn C ( ϕ ) mV(ϕ)nC(ϕ)m

Chúng tôi xây dựng một thể hiện với ngân sách (số lượng đỉnh màu xanh được phép).b = n + mG=(A,B,E)b=n+m

Với mỗi biến , xây dựng hai đỉnh đỏ và trong cùng với các đỉnh màu xanh lam trong liền kề với cả hai đỉnh . Điều này buộc chính xác một trong số hoặc được lật. Chúng tôi cũng kết thúc với đỉnh "biến", do đó sử dụng phần đầu tiên của ngân sách.v x v ¯ x A b + 1 B v x v ¯ x nxV(ϕ)vxvx¯Ab+1Bvxvx¯n

Ghi chú: là các đỉnh chỉ trong .Một{vx,vx¯xV(ϕ)}A

Đối với mỗi mệnh đề, giả sử , chúng ta tạo đỉnh màu xanh và ba đỉnh đỏ bổ sung , tất cả trong . Đặt hoàn toàn liền kề với các đỉnh màu xanh và kết nối với , với , và đến .c=xy¯zb+1vxc,vy¯c,vzcBvx,vy¯,vzb+1vxvxcvyvy¯cvzvzc

tiện ích giảm

Bây giờ, vì mỗi tiện ích mệnh đề có đỉnh màu xanh, chúng tôi biết rằng một hoặc ba chữ trong mệnh đề đó đã được lật. Giả sử rằng ba đã được lật cho một trong các mệnh đề. Nhưng sau đó, chúng tôi sử dụng ít nhất ngân sách .b+1n+m+2

Giả sử là một ví dụ có với phép gán 1 trong 3 . Lật mọi đỉnh tương ứng với . Vì mỗi mệnh đề được thỏa mãn bởi chính xác một biến, cho mỗi mệnh đề hiện có một đỉnh màu xanh lam và với mỗi biến, chính xác một trong số chúng có màu xanh lam, do đó chúng ta có các đỉnh màu xanh .ϕα:V(ϕ){,}αn+m=b


Trong đoạn thứ ba, các đỉnh được thêm cho mỗi đi vào B ? xXB
Luke Mathieson

+1. Tôi có một câu hỏi ngây thơ: tại sao mỗi nhóm đỉnh màu xanh chứa 6 chấm (thay vì 5 = 3 + 1 + 1)?
hengxin

1
@hengxin Tôi chỉ muốn vẽ các đỉnh màu xanh "đủ". Miễn là có ít nhất đỉnh mọi thứ đều hoạt động, nhưng, vâng, bạn đã đúng. b+1
Pål GD

3

Pål GD giải thích rằng vấn đề là NP-hard, vì vậy bước tiếp theo là cố gắng tìm các thuật toán hợp lý cho vấn đề của bạn.

Tôi sẽ lưu ý rằng vấn đề của bạn có thể được giảm xuống thành CODEWORD TỐI THIỂU TỐI THIỂU: được cung cấp một mã tuyến tính, tìm một từ mã có trọng lượng tối thiểu. Một cách khác để nêu vấn đề này là: đưa ra một ma trận boolean và một vectơ boolean y , tìm một vectơ boolean khác không x sao cho trọng số Hamming của M x y được giảm thiểu. (Tất cả số học được thực hiện theo modulo 2.) CODEWORD TỐI THIỂU được biết đến là NP-hard, nhưng có một số thuật toán cho nó nhanh hơn brute-force.MyxMxy

nnvmvn×nynxMvy. Bất kỳ vectơ như vậy tương ứng ngay lập tức với một tập hợp các thao tác lật giúp giảm thiểu số lượng đỉnh màu xanh trong biểu đồ.

Với nền tảng này, bạn có thể áp dụng các thuật toán đã biết để tìm các từ mã trọng lượng tối thiểu trong mã tuyến tính cho vấn đề của mình. Thời gian chạy vẫn sẽ theo cấp số nhân, nhưng nhanh hơn so với thử tất cả các khả năng cho . x


Điều này thực sự khá buồn cười khi tôi gặp phải vấn đề này trong khi cố gắng giải quyết một hệ thống tuyến tính mod 2. Tôi không biết rằng vấn đề này được gọi là từ mã trọng lượng tối thiểu. Cảm ơn bạn!
Davis Yoshida
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.