임의의 선으로 채워진 영역 (2D)을 고려하십시오 (그림 참조). 우리는 다음과 같은 방식으로 네 개의 경계 모서리를 포함하여 선 사이의 빈 공간을 채우는 데 관심이 있습니다.
0- 소포의 크기를 최대화;
1- 충전 소포의 모양은 수평 또는 수직으로 정사각형으로 정렬됩니다. 충전 소포의
2- 형상은 정사각형, 즉 이완 된 정렬 ; 채우기 소포의
3 모양은 사각형입니다. 우리의 원래 질문
현재로서는 세 가지 시나리오가 있습니다.
참고 선이 양식의 것을 [x1,y1,x2,y2]
, 지점 세트 실수.
[* * *] 가능한 솔루션 / 알고리즘 / 코드 스 니펫 등의 아이디어는 환영 이상입니다.
1 업데이트 : : 우리는 첫 번째 경우에 대한 해결책 관리 할 수
단계는 :
1- 라인
2- 비트 맵으로 라인 래스터
-3- 원하는 색의 셀마다 셀 근처 검색 (즉, 동색) 최대화 할 목적 함수 면적, 즉 셀 수.
잘 작동하지만 첫 번째 시나리오에만 적용되며 속도도 느립니다.
업데이트 2 :
독자는 공간 채우기 타일링 개념에 익숙하다고 가정했습니다. 영감을 얻기 위해 링크를 따라갈 수 있습니다. 그러나 우리의 문제는 다릅니다. 빈 공간을 무작위로 채우지 않고 무작위로 크기를 선택하지 않습니다. 솔루션은 반복적이어야합니다. 모든 경우에, 장착되는 소포의 수에는 제한이 없습니다. 실제로, 예를 들어 소포의 최소 영역을 선택하여 반복 횟수를 제한하는 것은 사용자의 몫입니다. 위에서 지정한 예에서 선을 지정된 크기의 픽셀로 분할했습니다. 즉, 절차는 예를 들어 소포의 최대 면적과 같은 기준에 대해 빈 공간 전체가 채워질 때까지 실행되어야합니다.
업데이트 3 :
요약 :
하나의 응용 프로그램은 골절 된 '광산'에서 추출 가능한 온전한 '록'블록의 분포를 찾는 것입니다. 이 등 시추 설계, 재무 평가 등 많은 측면에 매우 도움이 될 수있는
설명 :
장식 바위 (돌) 가격이 사각형 조각으로 잘라 그대로 바위의 블록입니다 제품의 광산의 크기에 밀접하게 의존 블록. 남아있는 부분의 양이 가능한 한 적다면, 적당한 영역에서 블록을 추출해야한다. 일반적으로 작은 암석 조각은 상대적으로 경제적 가치가 없으며 폐기물로 간주됩니다.
이 게시물의 질문은 이러한 종류의 문제에 대한 솔루션을 조사합니다.
문제에 대한 수학적 견해는 다음과 같이 표현할 수 있습니다.
2D : 주어진 2D 영역에서 추출 할 수있는 모든 직사각형을 최대한 큰 직사각형 크기에 최적화 된 일부 선으로 찾습니다.
3D : 가능한 더 큰 블록 크기에 최적화 된 일부 하위 평면 (더 나은 다각형)을 사용하여 지정된 3D 영역에서 추출 할 수있는 모든 직사각형 큐브를 찾습니다.
이것은 지속적인 연구의 일환이므로 아래 의견에 나와있는 질문 중 일부는 우리가 제공 할 수있는 특정 답변이 없습니다. 우리는 지금까지 제공된 정보가 실제로 문제의 전체적인 그림을 얻기에 충분하다고 생각합니다. 그럼에도 불구하고, 우리는 지역 사회 혜택을 위해 가능한 한 자세한 내용을 제공합니다.
궁극적 인 질문에 대한 솔루션에 약간의 제한을 둘 수 있지만 나중에 더 추가 할 수 있다고 생각합니다. 예를 들어, 이들 따르 {2D 케이스}
상술 한 조건 하에서 추출되는 블록 (경제적으로 최적의 직사각형)의 크기를 최선이다 1x1 m
주어진 10x10 m
예에서 지역. 이것은 경제적 인 가치를 바탕으로 정의 된 제약입니다. 절단 등을위한 최소 작업 가능 크기0.15x0.15 m
; 두 번째 크기 제한입니다.
위의 그림은 블록 크기에 따른 경제적 인 가치 기능을 보여줍니다. 따라서이 특별한 경우 모든 암석 조각 0.15x0.15 m
은 단지 낭비 보다 작습니다 . 1.7x1.7 m
작동 한계로 인해 보다 큰 블록 크기는 없습니다 .