Có một thuật toán hiệu quả cho vấn đề bao gồm chu kỳ đỉnh này không?


23

Tôi đã cố gắng tìm một thuật toán để tìm độ che phủ chu kỳ đỉnh tối đa của đồ thị có hướng - nghĩa là một tập hợp các chu kỳ tách rời có chứa tất cả các đỉnh trong , với càng nhiều chu kỳ càng tốt (chúng tôi không xem xét chu kỳ đỉnh riêng lẻ ở đây). Tôi biết rằng vấn đề tìm vỏ bọc chu kỳ đỉnh tối thiểu , cũng như tìm vỏ bọc chu kỳ đỉnh với chính xác chu kỳ là NP-đầy đủ. Nhưng những gì về trường hợp tối đa?G kGGk

Mặc dù tôi tìm thấy câu trả lời cho điều thú vị này nói chung, các biểu đồ tôi muốn sử dụng này thực sự bị hạn chế bởi việc xây dựng của chúng, vì vậy ngay cả khi vấn đề là NP-hoàn chỉnh, có thể có một giải pháp đa thức cho các trường hợp cụ thể này.

Chúng tôi có một danh sách các số nguyên , các phần tử và chúng tôi sẽ sử dụng , các phần tử để chỉ sau khi sắp xếp nó. Ví dụ:l i S s i LLliSsiL

L= =(1,3,2,5,0,7,4,2,6,0,số 8,1)S= =(0,0,1,1,2,2,3,4,5,6,7,số 8)

Các đỉnh của đồ thị sẽ được xác định bằng các cặp sao cho và . Biểu đồ có cạnh có hướng khi và chỉ khi . (Một chu kỳ trong biểu đồ này tương ứng với một tập hợp các giá trị có thể được hoán vị theo chu kỳ sao cho chúng sẽ kết thúc ở vị trí được sắp xếp của chúng.)(n,tôi)tôitôi= =nStôin(n,tôi)(m,j)Sj= =n

Ví dụ trên sẽ mang lại biểu đồ sau (sử dụng các chỉ số dựa trên 1):

nhập mô tả hình ảnh ở đây

Một điều không hiệu quả là cách tiếp cận tham lam khi liên tục loại bỏ chu kỳ nhỏ nhất (như ví dụ này cho thấy).

Lưu ý rằng vấn đề này là (nếu tôi không mắc lỗi nào) tương đương với việc hỏi bạn cần bao nhiêu lần hoán đổi để sắp xếp một danh sách nhất định . (Đó là những gì truyền cảm hứng khi nhìn vào vấn đề này ngay từ đầu.)

Sau một số gợi ý từ câu trả lời của Juho và thêm một chút thông qua văn học, tôi đã gặp phải vấn đề chuyển nhượng có vẻ liên quan rất chặt chẽ. Tuy nhiên, bài toán gán được xây dựng theo biểu đồ lưỡng cực có trọng số và cho đến nay tôi vẫn chưa thể tìm ra cách chọn cạnh và trọng số để giảm vấn đề này. Nếu chúng ta muốn giải quyết vấn đề ở đây về việc giảm thiểu hàm trọng số, thì cách tiếp cận trực quan sẽ là nói rằng trọng số của mỗi chu kỳ là trong đólà số cạnh (hoặc đỉnh) trong chu trình. (Tất nhiên điều này tương đương với việc chỉ đặt trọng số thành|C|-1|C|-1.) Nghĩa là, trọng lượng phụ thuộc vào kích thước của chu kỳ, chứ không phải các cạnh cụ thể mà nó bao gồm. Nhưng có lẽ điều này mang lại cho ai đó một ý tưởng khác về cách giảm thiểu vấn đề.

Nó cũng xuất hiện rằng việc giới hạn kích thước của các chu kỳ làm cho vấn đề APX trở nên khó khăn đối với các biểu đồ chung. Điều này không nhất thiết ngụ ý rằng điều tương tự cũng đúng đối với nhiệm vụ tối đa hóa số chu kỳ, cũng như đối với các biểu đồ cụ thể đang được xem xét ở đây, nhưng dường như nó có liên quan chặt chẽ đến mức nó có thể quan trọng.

Tóm lại: Có thể tìm thấy một vỏ bọc tách rời đỉnh tối đa cho các đồ thị được xây dựng từ quy trình trên không?

Ngoài ra, tôi cũng quan tâm đến việc che phủ chu kỳ phân tách đỉnh tối đa cũng có một giải pháp hiệu quả cho các biểu đồ tùy ý thừa nhận ít nhất một trang bìa (có thể sẽ rơi ra như một câu trả lời cho câu hỏi chính), hoặc liệu chỉ cần xác định số lượng chu kỳ trong bìa tối đa (trái ngược với các cạnh thực tế có trong mỗi chu kỳ) sẽ khiến vấn đề trở nên đơn giản hơn. Tôi rất vui khi đăng những câu hỏi này dưới dạng câu hỏi riêng biệt nếu mọi người nghĩ rằng họ xứng đáng nhận được câu trả lời chính thức.


Bạn đã xem các tài liệu CS về trao đổi thận? Vấn đề có vẻ liên quan, vì vậy tôi tự hỏi liệu có bất kỳ phương pháp nào có thể được áp dụng cho phương pháp này không. Đây có thể là một ngõ cụt, mặc dù ...
DW

@DW Tôi không có (Tôi không biết đó là một điều). Tôi sẽ xem những gì tôi có thể tìm thấy, cảm ơn.
Martin Ender

vấn đề thực sự tương tự như trao đổi thận thực sự được nghiên cứu từ một lý thuyết POV, ví dụ bài báo này của Roughgarden giải thích rằng các chu kỳ nhỏ được ưa thích vì những lý do gần như rõ ràng (p3); kích thước chu kỳ ngụ ý "hoạt động đồng thời" và các hoạt động nhỏ hơn làm giảm nguy cơ ngừng hoạt động với các biến chứng hoặc các nhà tài trợ thay đổi suy nghĩ, v.v.
vzn

@AustinMohr Tôi tin rằng các biểu đồ thu được từ việc xây dựng mà tôi mô tả sẽ luôn có thể phân tách thành các chu kỳ (và hơn nữa, cho dù bạn loại bỏ chu kỳ nào, phần còn lại vẫn có thể phân tách thành một chu kỳ). Nếu bạn cũng muốn giải quyết các biểu đồ chung, giả sử rằng có ít nhất một bìa hoàn chỉnh tồn tại.
Martin Ender

@ MartinBüttner Trong trường hợp cụ thể của bạn, nếu tất cả các yếu tố trong danh sách là khác biệt, thì vấn đề của bạn có tương đương với việc tìm phân tách chu kỳ (duy nhất) của hoán vị không?
mhum

Câu trả lời:


4

Đặt một chu kỳ của đồ thị có hướng là một tập hợp các chu kỳ tách rời đỉnh sao cho mỗi đỉnh nằm trong đúng một chu kỳ. Vì vậy, nếu tôi hiểu bạn một cách chính xác, được đưa ra một biểu đồ , bạn muốn có một chu kỳ tối đa, trong đó mỗi chu kỳ có độ dài ít nhất là (có lẽ ít nhất là với hoặc ). Một vỏ bọc chu kỳ trong đó mỗi chu kỳ có độ dài ít nhất được gọi là vỏ mô-tơ .Gkk= =2k= =3 kk

Quyết định xem một máy in có nắp 2 chu kỳ có thể giải được trong thời gian đa thức hay không. Vấn đề quyết định liệu có vỏ bọc 3 chu kỳ là NP-đầy đủ hay không. Vấn đề tối ưu hóa tương ứng (nghĩa là tìm vỏ bọc 3 chu kỳ tối đa) là hoàn thành APX và có thuật toán ước lượng (đối với mọi ). Tin tốt ở đây là người ta cũng có thể tính toán độ che phủ 2 chu kỳ tối đa trong thời gian đa thức (với điều kiện trọng số cạnh là không âm).GG((3/5)-ε)ε>0

Để biết chi tiết và bằng chứng về các yêu cầu trên, xem [1].


[1] Bläser, Markus và Bodo Manthey. "Hai thuật toán gần đúng cho bìa 3 chu kỳ." Các thuật toán gần đúng cho tối ưu hóa kết hợp. Springer Berlin Heidelberg, 2002. 40-50.


Thú vị, tôi sẽ cố gắng làm theo các tài liệu tham khảo từ bài báo đó. Cảm ơn. (Tôi đã đọc sai một cái gì đó khi tôi nghĩ rằng bìa k-chu kỳ là bìa có chu kỳ k chính xác. Hoặc có thể đó là một định nghĩa khác được sử dụng ở nơi khác.)
Martin Ender

2
@ MartinBüttner Nhân tiện, bạn có thể muốn xem luận án tiến sĩ của Bläser tại đây . (Đó là tiếng Đức, nhưng bạn có thể sẽ không gặp vấn đề gì với điều đó :-)). Nó sẽ bao gồm các chi tiết thực sự tính toán một vỏ bọc 2 chu kỳ trọng lượng tối đa.
Juho

|V|-nn

Nghĩ về nó thêm một chút nữa, tôi không chắc nó thực sự có thể hình thành vấn đề về trọng lượng. Với trọng lượng bằng nhau, tất cả các chu kỳ có cùng trọng lượng. "Chi phí" của tôi cho một chu kỳ thực sự là chiều dài của nó trừ đi 1. Đó là lý do tại sao tôi muốn càng nhiều chu kỳ càng tốt. Nếu điều này có thể được xây dựng theo trọng số thì nó sẽ giảm cho vấn đề chuyển nhượng, nhưng nếu không tôi đoán tôi cần tiếp tục tìm kiếm.
Martin Ender
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.