이 조합 최적화 문제가 알려진 문제와 유사합니까?


10

문제는 다음과 같습니다.

우리는 2 차원 배열 / 숫자 그리드를 가지고 있으며, 각각은 "이익"또는 "이익"을 나타냅니다. 또한 두 개의 고정 정수 와 ( "너비"와 "높이")와 고정 정수 있습니다.whn

이제이 사각형 에있는 셀 값의 총합이 최대화되도록 격자에 차원 를 중첩 시키려고합니다.nw×h

다음 그림은 두 개의 사각형이 오버레이 된 2 차원 그리드의 예입니다 (그림은 최적의 솔루션을 보여주지 않고 및 경우 가능한 한 번의 오버레이 만 보여줍니다 )w=h=2n=2

그리드 예

사각형은 교차 할 수 없습니다 (그렇지 않으면 하나의 사각형에 대한 최적의 위치를 ​​찾은 다음 모든 사각형을 해당 위치에두면됩니다).

위의 예에서 셀의 총 값 합계는2+4.2+2.4+3.14+2.31.4+13.1

조합 최적화의 알려진 문제와 비슷한가요? 그래서 나는 약간의 독서를 시작하고 그것을 해결하는 방법을 찾으려고 노력할 수 있습니다.

관심있는 사람들을위한 더 많은 배경 :

지금까지 내가 가진 유일한 아이디어는 탐욕스러운 알고리즘 (첫 번째 사각형에 가장 적합한 위치를 찾은 다음 두 번째 사각형에 겹치지 않는 팔각형을 찾습니다) 또는 유전 알고리즘과 같은 메타 휴리스틱입니다.

실제로 짧은 시간 안에 해결할 필요는 없지만 약 백만 개의 셀과 수만 (또는 수십만)의 사각형이있는 그리드 로이 문제를 해결하고 싶습니다 (즉, 알고리즘은 몇 시간 또는 며칠이 걸릴 수 있습니다.) 정확한 해결책을 기대하지는 않지만 이러한 제약 조건을 감안할 때 가능한 한 좋은 것을 얻고 싶습니다.

건배!


(전화) 이것은 변환 및 일부 추가 제약 조건에서 최대 일치로 해결할 수있는 것처럼 보입니다. 나는 나중에 쓰려고 노력할 것이다.
Nicholas Mancuso

정확한 을 사용 하도록 요구하는 것은 때때로 "로컬"최대 값이 사용되지 않지만 그 주위에 반지가 있다는 것을 의미합니다. 여기 돔의 중심을 "욕심"으로 찍는 것은 당신이 그 주위의 모든 맞출 수 없다는 것을 의미하는 단순한 돔 모양을 상상하고 있습니다 . n - 1nn1
Mark Hurd

내 첫 번째 생각은 동적 프로그래밍을 시도하는 것입니다. 왼쪽 상단에서 맨해튼 거리에 따라 사각형의 번호를 매 깁니다. 하위 문제는 다음과 같습니다 숫자 사각형의; 왼쪽 상단 코더의 숫자가 보다 작은 사각형 목록 ; 목표는 왼쪽 상단에 숫자 가있는 정사각형의 하위 집합을 추가하여 을 겹치지 않는 가장 좋은 정사각형 세트 로 확장하는 것입니다 . 이후의 모든 하위 문제에 대한 솔루션이있는 경우 각 하위 문제를 신속하게 해결할 수 있습니다. 유일한 질문은 몇 가지 하위 문제를 탐색해야 하는가입니다. L s L ssLsLs
DW

답변:


2

마지막 공식은 기하 급수적 인 "제약"노드를 필요로하는 치명적인 결함이있었습니다.

문제의 또 다른 자연스러운 그래픽 공식은 각 정점 이 가진 사각형을 나타내는 그래프를 만드는 것 입니다. 겹치는 사각형 쌍은 이 그래프에서 모서리를 갖습니다. 최대 가중 독립 크기 집합을 풀면 원래 문제에 대한 해결책이 있습니다. 이를위한 좋은 휴리스틱 및 근사 알고리즘이 많이 있습니다.w r r , r ' k = nrwrr,rk=n


이것이 현재 내가 기대하고있는 방향입니다.이 실험을하고 솔루션을 사용하는 것이면 응원을 받아들입니다.
fiftyeight

2

이것을 거대한 정수 선형 프로그래밍 (ILP) 인스턴스로 공식화 한 다음 상용 ILP 솔버 (lp_solve, CPLEX 등)를 적용 할 수 있습니다. 그들은 당신에게 그들이 찾을 수있는 최고의 솔루션을 제공 할 것입니다. 문제 인스턴스의 크기를 감안할 때 이것이 효율적 일지 모르겠지만 시도하기 쉽습니다.

여기 ILP 공식이 있습니다. 우리는 가능한 각 사각형 에 대해 0 또는 하나의 변수 을 가지고 있으며 , 은 세트에 사각형 을 포함 하고 은 포함하지 않음을 의미합니다. 이고 두 개의 사각형이 겹치지 않는 제한에 따라 목적 함수 (여기서 은 사각형 의 이익 임 )을 합니다. 후자의 제한은 모든 쌍의 직사각형 에 대해 을 요구함으로써 선형 불평등으로 표현 될 수 있습니다. r x r = 1 r x r = 0 r c r x r c r r r x r = n x r + x s1 r , sxrrxr=1rxr=0rcrxrcrrrxr=nxr+xs1r,s그 중복. 따라서이 방법으로 ILP를 얻습니다.


이 문제가 NP-hard라고 생각하십니까? 폴리 타임 솔루션이 없다고 확신하지 못하며 ILP 솔버는 중간 크기의 인스턴스조차도 완성하지 못할 것입니다.
RB

1
@ RB, 나는 그것이 NP-hard인지 전혀 모른다. 다항식 시간 알고리즘을 찾는 방법에 대한 첫 번째 생각에 대한 동적 프로그래밍에 대한 질문에서 내 의견을 참조하십시오 (그러나 결과 알고리즘이 P인지 여부는 모르겠습니다). ILP 솔버가 할 수있는 한, 알아내는 유일한 방법은 시도하는 것입니다. 때로는 성능이 놀랍습니다.
DW
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.