coex.gms : 평화롭게 공존하는 여왕들의 군대

설명

두 여왕의 군대(흑백)가 평화롭게 공존하고 있습니다.
체스판이 다음과 같은 방식으로 보드 위에 배치되었을 때
서로 반대되는 군대의 두 여왕은 서로를 공격할 수 없습니다. 는
문제는 크기가 같은 최대 2개의 군대를 찾는 것입니다.

대형 모델 유형 :MIP


카테고리 : 무료 슬롯 게임 모델 라이브러리


메인 파일 : coex.gms

$title 평화롭게 공존하는 여왕의 군대 (COEX,SEQ=219)

$onText
두 여왕의 군대(흑백)가 평화롭게 공존하고 있습니다.
체스판이 다음과 같은 방식으로 보드 위에 배치되었을 때
서로 반대되는 군대의 두 여왕은 서로를 공격할 수 없습니다. 는
문제는 크기가 같은 최대 2개의 군대를 찾는 것입니다.

보쉬, R, 마인드 샤프너. OPTIMA MPS 뉴스레터(2000).

키워드: 혼합 정수 선형 계획법, 수학 게임, 조합 최적화,
          평화롭게 공존하는 여왕의 군대
$offText

i '체스판 크기' / 1*8 / 설정;

별칭(i,j,ii,jj);

M(i,j,ii,jj) '보드의 공유 위치'를 설정합니다.

M(i,j,ii,jj) = (ord(i) = ord(ii)) 또는
               (ord(j) = ord(jj)) 또는
               (abs(ord(i) - ord(ii)) = abs(ord(j) - ord(jj)));

바이너리 변수
   b(i,j) '검은 여왕이 차지한 광장'
   w(i,j) '백인 여왕이 차지하는 사각형';

변수는 '각 군대의 총 여왕'입니다.

방정식
   eq1(i,j,ii,jj) '군대를 평화롭게 유지합니다'
   eq2 '모든 블랙 퀸을 더하세요'
   eq3 '모든 백인 여왕을 더하세요';

eq1(m(i,j,ii,jj))..b(i,j) + w(ii,jj) =l= 1;

eq2..tot =e= sum((i,j), b(i,j));

eq3..tot =e= sum((i,j), w(i,j));

모델 군대 / 모두 /;

옵션 limCol = 0, limRow = 0;

$onText
* OPTIMA에 보고된 솔루션
b.fx('6','2') = 1;
b.fx('7','2') = 1;
b.fx('8','2') = 1;
b.fx('7','1') = 1;
b.fx('8','1') = 1;
b.fx('7','6') = 1;
b.fx('8','6') = 1;
b.fx('7','7') = 1;
b.fx('8','7') = 1;
$offText

mip를 사용하여 군대를 최대화하는 문제 해결;