에 사각형 창을 배치하기 위해서, 요구 사항은 다음과 같다 :알고리즘 내가 레이아웃 사각형 창문 알고리즘을 추구하고있어 2D 디스플레이
- 모든 창은 레이아웃이 작은 사각형을 볼 수 있습니다로.
- 모든 창은 직사각형 2D 디스플레이의 레이아웃이어야하며 디스플레이 너비와 높이가 지정되어야합니다.
- 레이아웃 할 수십 개의 창이 있습니다. 각 창은 초기 위치 (x, y)와 크기 (너비, 높이)가 있습니다.
- 레이아웃 알고리즘은 창을 겹치지 않으므로 모든 창을 볼 수 있습니다.
글로벌 제약 하드 제약이 의미 : 각 윈도우 (new_x, new_y)의 재배치 새로운 위치가 제약 조건을 만족하도록
글로벌 제약 (max_x_offset, max_y_offset)가 주어진다 이 있다면 그러한 레이아웃은 4 과 5를 모두 만족시킬 수 없습니다. st는 글로벌 제약 조건을 만족시키고 일부 창 이 겹치도록합니다.
- 알고리즘이 최상의 결과를 얻을 수는 없지만 가능한 결과가 있지만 을 실행해야합니다. 우리는 응용 프로그램
abs(new_x - x) <= max_x_offset and abs(new_y - y) <= max_y_offset
내가 구글과 위키 피 디아 일부 연구 논문을 검색 렌더링 실시간으로이 알고리즘을 사용하려고하지만, 여전히이 작업에 적합한 알고리즘을 찾는데 실패하고 있습니다. 어떤 제안? 감사!
업데이트 : 예 2-D 배낭 문제이며 NP 하드입니다. 내가 원했던 것은 좋은 결과를 얻기위한 빠른 알고리즘입니다.
이것은 배낭 문제의 변형입니다. http://en.wikipedia.org/wiki/Knapsack_problem – cletus