Thuật toán treewidth nhanh


18

Tôi muốn tính toán treewidth của đồ thị. Có các phương pháp phỏng đoán thực sự tốt cho các vấn đề đồ thị NP-cứng khác như VF2 cho phép đẳng cấu đồ thị con, với mã có sẵn trong igraph chẳng hạn. Tôi đã thử chúng trên biểu đồ của tôi và tôi thấy chúng chạy rất nhanh cho dữ liệu của tôi.

Có bất kỳ thuật toán nhanh để tính toán treewidth trong một tĩnh mạch tương tự?


1
fyi gần đây treewidth đã được kết nối với độ cứng SAT bởi Gaspers / Szeider trong FOCS, hy vọng được nghe từ những người khác trong cuộc trò chuyện / thảo luận đó
vzn

Câu trả lời:


19

Theo tôi biết, tình trạng của nghệ thuật là những gì được báo cáo trong

Hans L. Bodlaender, Fedor V. Fomin, Arie MCA Koster, Dieter Kratsch và Dimitrios M. Thilikos (2012), "Về các thuật toán chính xác cho treewidth", Giao dịch ACM trên Thuật toán 9 (1): A12, doi: 10.1145 .

Các phương pháp được mô tả ở đó bao gồm thuật toán triển khai với một số tối ưu hóa heuristic để làm cho nó nhanh hơn trong thực tế.O(2n)


2
Cảm ơn bạn. Tài liệu tham khảo 2, 8 và 15 đưa ra các heuristic ràng buộc trên và dưới có thể hữu ích nhất trong bài báo đó.
felix

10

Tôi đã viết một bài báo có tên là Chi nhánh song song nhanh và thuật toán giới hạn cho băng thông cây, trong ICTAI năm 2011. Nó có thể tính toán treewidth trong đa lõi . Tôi đã sử dụng rất nhiều heuristic và dành nhiều thời gian để tinh chỉnh chương trình.

Tôi là một sinh viên đại học ngẫu nhiên ở Trung Quốc và đã không tham gia một hội nghị tốt. Nhưng dựa trên kết quả thí nghiệm của tôi, tôi nghĩ chương trình của tôi rất nhanh. Tôi đã giải quyết nhiều điểm chuẩn chưa được giải quyết trong lib của Treeference và chương trình của tôi nhanh hơn 40 lần so với thuật toán được đề xuất bởi Zhou và Hansen trong IJCAI 09 ..

Tôi không làm việc về chủ đề này nữa. Nhưng nếu công việc trước đây của tôi hữu ích, bạn có thể tải xuống chương trình của tôi (src và exe) từ http://www.callowbird.com/undergradiated- ware.html và dùng thử. (tuy nhiên, nó rất rất chậm trên một ví dụ lớn hơn một chút)


5

O(2k)


1
2O(k)O(ckn)c

5

Dưới đây là hai khảo sát về các thuật toán để tính toán treewidth có thể hữu ích. Cái đầu tiên có so sánh theo kinh nghiệm và nó có các thuật toán linh tinh được triển khai như một thư viện Java.

Có nhiều thuật toán để tính toán hướng trên, đường dưới hoặc treewidth chính xác của đồ thị. Chúng tôi đã triển khai rất nhiều phương pháp phỏng đoán trên và dưới và hai thuật toán chính xác (một thuật toán lập trình động và thuật toán phân nhánh và giới hạn). Báo cáo này so sánh các loại thuật toán khác nhau và cho thấy rằng một số thuật toán được ưa thích.

Cây thông là một tham số đồ thị với một số ứng dụng lý thuyết và thực tế thú vị. Khảo sát này xem xét các kết quả thuật toán về việc xác định treewidth của một biểu đồ nhất định và tìm ra sự phân rã cây có chiều rộng nhỏ. Cả hai kết quả lý thuyết, thiết lập độ phức tạp tính toán tiệm cận của vấn đề, khi nghiên cứu thử nghiệm về heuristic (cả hai giới hạn trên như giới hạn dưới), tiền xử lý, thuật toán chính xác và xử lý hậu kỳ đều được thảo luận.


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.