Tìm song song tối ưu từ đồ thị vô hướng có trọng số chung


9

Tôi đang giải quyết vấn đề "trộn" các tập hợp hình ảnh chồng chéo. Các bộ này có thể được biểu diễn bằng đồ thị có trọng số vô hướng như cái này:

Đồ thị 7 nút

Mỗi nút đại diện cho một hình ảnh. Hình ảnh chồng chéo được kết nối bởi một cạnh. Trọng lượng cạnh thể hiện kích thước vùng chồng lấp ( pha trộn chồng chéo lớn hơn sớm hơn dẫn đến chất lượng tổng thể tốt hơn ).

Thuật toán thường loại bỏ các cạnh. Nó có thể làm điều đó tuần tự hoặc song song. Tuy nhiên, khi trộn xảy ra, các nút hợp nhất và cấu trúc biểu đồ thay đổi. Vì vậy, song song chỉ có thể trên các thành phần được kết nối mà bản thân chúng không chồng chéo!

Các thành phần không chồng chéo như vậy là DB và FEG. Chúng ta có thể chạy song song thuật toán trộn trên các thành phần này. Kết quả là biểu đồ sau (các nút được hợp nhất được hiển thị bằng màu xanh lá cây):

Đồ thị 4 nút

Bây giờ không có khả năng song song hóa nữa bởi vì bất kỳ hai thành phần được kết nối nào đang chồng chéo (chúng có một cạnh trực tiếp giữa chúng).

Phiên bản song song của thuật toán sẽ như thế này:

1. Find connected components (no two are connected directly) and create task for each.
2. Run the tasks in parallel.
3. Update graph.
4. Until single node remains, continue with 1.

Phần khó khăn là bước đầu tiên: Làm thế nào để tìm tập hợp tốt nhất của các thành phần được kết nối?

Một cách sẽ là một thuật toán tham lam chỉ đơn giản là tìm thấy số lượng lớn nhất các thành phần tại một lần lặp nhất định. Thuật toán tham lam sẽ tối đa hóa song song ngay từ đầu nhưng với chi phí của nhiều lần lặp lại sau.

Giải pháp tối ưu có thể mang lại số lượng tốt các thành phần được kết nối trong mỗi lần lặp để tối đa hóa song song và giảm thiểu số lần lặp cùng một lúc (do đó có hai biến trong tối ưu hóa).

Tôi không thể nghĩ ra bất kỳ thuật toán tối ưu hóa nào ngoài quay lui, tức là không gian tìm kiếm của tất cả các phát triển có thể và chọn một thuật toán có độ song song tối đa.

Trọng lượng cạnh có thể bị bỏ qua, nhưng phiên bản cải tiến của thuật toán có thể tính đến nó vì các khu vực lớn hơn cần nhiều thời gian hơn để pha trộn (ví dụ: diện tích kích thước 200 sẽ mất khoảng hai lần thời gian để trộn hơn hai khu vực có kích thước 100). Cân nhắc trọng lượng có thể dẫn đến chiến lược tốt hơn trong việc lựa chọn các thành phần (thời gian chạy tổng thể nhanh hơn của thuật toán).

Bạn có bất kỳ manh mối nào cho thuật toán tối ưu hóa như vậy không, tìm ra chiến lược tốt nhất để chọn các phần của biểu đồ sao cho có sự song song tối đa và số lần lặp tối thiểu?


T,S1,Giáo dục,SkSTôiSjSTôi

Câu trả lời:


1

Điều này rất giống với sự chồng chéo của trình tự gen trong tập hợp bộ gen. Chương 4 của luận án Ananth .

Song song, bạn tìm kiếm các cặp đầy triển vọng và duy trì cấu trúc dữ liệu tìm kiếm kết hợp. Xem Tarjan và Vishkin để biết thuật toán móc và phím tắt của chúng để thu gọn các thành phần được kết nối.

Ngoài ra, bạn có thể thử các phương pháp đồ thị DeBrujin gần đây trên các khối pixel 64 bit. Tôi nghĩ rằng điều này sẽ cung cấp cho bạn kết quả tốt nhất. Để giúp giải quyết vấn đề lượng tử hóa, trước tiên tôi sẽ giảm kích thước của pixel xuống 16 hoặc 8 bit đen / trắng. Sau đó, bạn áp dụng sắp xếp song song các khối 64 bit, sau đó sử dụng chúng để suy ra các cạnh giữa các hình ảnh.

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.