Làm cách nào để tìm đại diện ngắn nhất cho tập hợp con của một tập hợp?


13

Tôi đang tìm kiếm một thuật toán hiệu quả cho vấn đề sau hoặc bằng chứng về độ cứng NP.

Đặt là một tập hợp và một tập hợp các tập hợp con của . Tìm một chuỗi có độ dài nhỏ nhất sao cho mỗi , có một sao cho .Σ Một P ( Σ ) Σ w Σ * L A k N { w k + i | 0 i < | L | } = LΣMột P( Σ )Σw Σ*L Ak N{ wk + i0 i < | L |}=L

Ví dụ: với , từ là một giải pháp cho vấn đề, vì đối với có , với có .A = { { a , b } , { a , c } } w = b a c { a , b } k = 0 { a , c } k = 1A = { { a , b } , { a ,c}}w =bac{ a,b}k=0{ a,c}k = 1

Đối với động lực của tôi, tôi đang cố gắng đại diện cho tập hợp các cạnh của một máy tự động hữu hạn, trong đó mỗi cạnh có thể được gắn nhãn bằng một tập hợp các chữ cái từ bảng chữ cái đầu vào. Tôi muốn lưu trữ một chuỗi và sau đó giữ một cặp con trỏ tới chuỗi đó ở mỗi cạnh. Mục tiêu của tôi là giảm thiểu độ dài của chuỗi đó.


1
Nói cách khác, vấn đề là bộ nhằm vào một chuỗi L 1 , ... , L n tối đa hóa Σ | L iL i + 1 | ? L1, Lọ , Ln| LTôiLtôi + 1|
Karolis Juodelė

@ KarolisJuodelė, tôi không nghĩ thế là đủ, vì đối với L i , L i + 1 , L i + 2, bạn có thể phải đưa các yếu tố vào L iL i + 2 vào w hai lần ngay cả khi chúng ở L i + 1 . Ví dụ như { { một , b } , { một , c } , { một , d } } , bạn có thể chia sẻ mộtLi,Li+1,Ltôi + 2LiLtôi + 2wLtôi + 1{{a,b},{a,c},{a,d}}agiữa hai đầu tiên hoặc hai cuối cùng, nhưng không phải trong số tất cả, w ngắn nhất sẽ là b a c a d . wbacad
avakar

@ KarolisJuodelė, hơn nữa, có những trường hợp đối với một số i j , L iL j , điều này làm cho nó thậm chí còn phức tạp hơn trong trường hợp như vậy "đặt hàng khu phố" có thể không hoàn toàn. tôi jLiLj
avakar

Chỉ cần vui lên, nếu tôi trả lời đúng câu hỏi, nếu tập hợp là A = { { c , o , w } , { o , w , l } , { w , o , l , f } } , thì một từ c o w o w l w o l f thỏa mãn các yêu cầu đã cho, nhưng (có thể) tối thiểu từ và giải pháp đó là c o w l f ? :)A={{c,o,w},{o,w,l},{w,o,l,f}}cowowlwolfc o w l f
MindaugasK

@MindaugasK, đó là chính xác, ví dụ rất hay :)
avakar

Câu trả lời:


4

Tôi tin rằng tôi đã tìm thấy một sự giảm bớt từ con đường Hamilton , do đó chứng minh vấn đề NP-hard.

Gọi từ w Σ * một nhân chứng cho Một , nếu nó đáp ứng các điều kiện từ câu hỏi (cho mỗi L A , có m 1{ w m + i | 0 i < | L | } = L ) .wΣALAm1{wm+i0i<|L|}=L

Xem xét phiên bản quyết định của vấn đề ban đầu, tức là quyết định xem đối với một số Ak 0 , có một nhân chứng cho A có độ dài nhiều nhất là k . Vấn đề này có thể được giải quyết bằng cách sử dụng bài toán ban đầu như một lời tiên tri trong thời gian đa thức (tìm nhân chứng ngắn nhất, sau đó so sánh độ dài của nó với k ).Ak0Akk

Bây giờ cho cốt lõi của giảm. Đặt G = ( V , E ) là một đồ thị đơn giản, không bị chặn, được kết nối. Đối với mỗi v V , chúng ta hãy L v = { v } { e E | v e } là tập hợp chứa đỉnh v và tất cả các cạnh kề của nó. Set Σ = EA = { L v | v V } . Rồi GG=(V,E)vVLv={v}{eEve}vΣ=EA={LvvV}Gcó đường dẫn Hamilton khi và chỉ khi có nhân chứng cho A có độ dài nhiều nhất là 2 | E | + 1 .A2|E|+1

Bằng chứng. Hãy v 1 e 1 v 2 ... e n - 1 v n là một Đường đi Hamilton trong GH = { e 1 , e 2 , ... , e n - 1 } tập của tất cả các cạnh trên con đường. Đối với mỗi đỉnh v , xác định các thiết lập U v = L vH . Chọn một thứ tự tùy ý α v cho mỗi U v . Từv1e1v2en1vnGH={e1,e2,,en1}vUv=LvHαvUvw = α v 1 e 1 α v 2 e 2 ... e n - 1 α v n là một nhân chứng cho A , vì L v 1 được đại diện bởi các chuỗi α 1 e 1 , L v n bởi e n - 1 α n , và đối với mỗi v i , i { 1 , n } , L vw=αv1e1αv2e2en1αvnALv1α1e1Lvnen1αnvii{1,n}i được đại diện bởie i - 1 u v i ei. Hơn nữa, mỗi cạnh trongExảy ra hai lần trongwngoại trừ| V| -1cạnh trongH, xảy ra một lần và mỗi đỉnh trongVxảy ra một lần, cho| w| =2| E| +1.Lviei1uvieiEw|V|1HV|w|=2|E|+1

Đối với một hướng khác, chúng ta hãy w là một nhân chứng tùy ý cho một chiều dài tối đa là 2 | E | + 1 . Rõ ràng, mỗi e Ev V xảy ra trong w ít nhất một lần. Không mất tính tổng quát, giả sử rằng mỗi e E xảy ra trong w nhiều nhất hai lần và mỗi v V xảy ra chính xác một lần; mặt khác, một nhân chứng ngắn hơn có thể được tìm thấy bằng cách loại bỏ các yếu tố khỏi w . Hãy H E là tập hợp của tất cả các cạnh xảy ra trongwA2|E|+1eEvVweEwvVwHEw chính xác một lần. Với các giả định ở trên, nó cho rằng | w | = 2 | E | - | H | + | V | .w|w|=2|E||H|+|V|

Hãy xem xét một chuỗi con giáp của w có dạng u đ 1 đ 2 ... e k v , nơi u , v V , e iE . Chúng ta nói rằng u , v liền kề nhau. Chú ý rằng nếu e iH , sau đó e i = { u , v } , vì e tôi chỉ xảy ra một lần, nhưng nó tiếp giáp với hai đỉnh trong G . Do đó, nhiều nhất là một trongwue1e2ekvu,vVeiEu,veiHei={u,v}eiGe i có thể ở H . Tương tự, không có cạnh nào trong H có thể xảy ra ở w trước đỉnh đầu tiên hoặc sau đỉnh cuối cùng.eiHHw

Bây giờ, có | V | đỉnh, do đó | H | | V | - 1 . Từ đó, nó theo đó | w | 2 | E | + 1 . Vì chúng ta giả sử | w | 2 | E | + 1 , chúng ta có được sự bình đẳng. Từ đó ta nhận được | H | = | V | - 1 . Theo nguyên tắc pigeonhole, có một cạnh từ H|V||H||V|1|w|2|E|+1|w|2|E|+1|H|=|V|1Hgiữa mỗi cặp đỉnh liền kề trong w . Biểu thị h 1 h 2 ... h n - 1 tất cả các yếu tố từ H theo thứ tự chúng xuất hiện trong w . Nó sau đó v 1 h 1 v 2 h 2 ... h n - 1 v n là một Đường đi Hamilton trong G . wh1h2hn1Hwv1h1v2h2hn1vnG

Vì vấn đề quyết định sự tồn tại của con đường Hamilton là NP-hard và mức giảm ở trên là đa thức, nên vấn đề ban đầu là NP-hard.

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.