일반 가중치 무지향 그래프에서 최적의 병렬화 찾기


9

겹치는 이미지 집합을 "혼합"하는 문제를 해결하고 있습니다. 이 세트는 다음과 같은 무 방향 가중치 그래프로 나타낼 수 있습니다.

7 노드 그래프

각 노드는 이미지를 나타냅니다. 겹치는 이미지는 가장자리로 연결됩니다. 엣지 웨이트는 오버랩 영역 크기를 나타냅니다 ( 더 큰 오버랩을 빨리 혼합하면 전체적인 품질이 향상됩니다 ).

알고리즘은 일반적으로 가장자리를 제거합니다. 순차적으로 또는 병렬로 수행 할 수 있습니다. 그러나 혼합이 발생하면 노드가 병합되고 그래프 구조가 변경됩니다. 따라서 병렬화는 자체 중첩되지 않은 연결된 컴포넌트에서만 가능합니다!

이러한 비 중첩 구성 요소는 DB 및 FEG입니다. 이 컴포넌트들에 대해 블렌딩 알고리즘을 안전하게 실행할 수 있습니다. 결과는 다음 그래프입니다 (병합 된 노드는 녹색으로 표시됨).

4 노드 그래프

이제 연결된 두 구성 요소가 겹치므로 더 이상 병렬화 할 수 없습니다 (두 구성 요소 사이에 직접 모서리가 있음).

알고리즘의 병렬 버전은 다음과 같습니다.

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.

까다로운 부분은 첫 번째 단계입니다. 최상의 연결 구성 요소를 찾는 방법은 무엇입니까?

한 가지 방법은 주어진 반복에서 가장 많은 수의 구성 요소를 찾는 탐욕스러운 알고리즘입니다. 욕심 많은 알고리즘은 처음에는 병렬화를 최대화하지만 나중에 많은 반복이 필요합니다.

최적의 솔루션은 병렬화를 최대화하고 동시에 반복 횟수를 최소화하기 위해 각 반복마다 많은 양의 연결된 구성 요소를 가져올 수 있습니다 (최적화에는 두 가지 변수가 있음).

역 추적 이외의 최적화 알고리즘, 즉 가능한 모든 진화의 검색 공간을 생각할 수 없으며 최대 병렬화를 가진 것을 선택하십시오.

간선 가중치는 무시할 수 있지만, 더 큰 영역은 블렌딩하는 데 더 많은 시간이 걸리므로 알고리즘의 개선 된 버전이이를 고려할 수 있습니다 (예 : 200의 영역은 100의 두 영역보다 블렌딩하는 데 대략 두 배가 걸립니다). 가중치를 고려하면 컴포넌트 선택에 대한 전략이 향상 될 수 있습니다 (알고리즘의 전체 실행 시간이 더 빠름).

최대 병렬화와 최소 반복 횟수가되도록 그래프의 일부를 선택하는 최상의 전략을 찾는 최적화 알고리즘에 대한 단서가 있습니까?


연결된 구성 요소가 올바른 단어가 아닙니다. 원본 그래프가 연결되었습니다. 와 사이의 거리가 2 되도록 정점을 하시겠습니까? 모양 에 대한 제한은 없습니까? (예를 들어 하위 그래프를 "블렌딩"하는 방법을 볼 수 없습니다). 또한 반복의 의미가 명확하지 않습니다. T,S1,,SkSiSjSi
Chao Xu

답변:


1

이것은 게놈 어셈블리에서 유전자 서열의 중복과 매우 유사합니다. Ananth 논문 4 장 .

동시에 유망한 쌍을 검색하고 분산 유니온 찾기 데이터 구조를 유지 보수하십시오. 연결된 구성 요소를 접는 후크 및 바로 가기 알고리즘에 대해서는 Tarjan 및 Vishkin 을 참조하십시오 .

또한 64 비트 행 청크 픽셀에서 최신 DeBrujin 그래프 방법 을 시도 할 수 있습니다 . 나는 이것이 당신에게 최고의 결과를 줄 것이라고 생각합니다. 양자화 문제를 돕기 위해 먼저 픽셀의 크기를 16 비트 또는 8 비트 흑백으로 줄입니다. 그런 다음 64 비트 청크를 병렬로 정렬 한 다음이를 사용하여 이미지 사이의 가장자리를 유추합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.