alphamet.gms : Alphametics - 수학 퍼즐

설명

알파벳은 수학 퍼즐의 일종입니다. 주어진 세트
장문의 추가로 기록된 단어, 매핑 찾기
문자와 숫자(값) 사이. 예를 들면:

    G E O R G I A 8 4 6 5 8 0 2
      원래 -> 6 5 4 8 6 3
    버몬트 1 4 5 9 6 3 7
    ------------- ---------------
  V I R G I N I A 1 0 5 8 0 3 0 2

추가 정보는 다음에서 확인할 수 있습니다.

/modlib/adddocs/alphametdoc.htm

대형 모델 유형 :MIP


카테고리 : 메가 슬롯 모델 라이브러리


메인 파일 : alphamet.gms

$title 알파벳순 - 수학 퍼즐 (ALPHAMET,SEQ=170)

$onText
알파벳은 수학 퍼즐의 한 유형입니다. 주어진 세트
장문의 추가로 기록된 단어, 매핑 찾기
문자와 숫자(값) 사이. 예를 들면:

    G E O R G I A 8 4 6 5 8 0 2
      원래 -> 6 5 4 8 6 3
    버몬트 1 4 5 9 6 3 7
    ------------- ---------------
  V I R G I N I A 1 0 5 8 0 3 0 2

추가 정보는 다음에서 확인할 수 있습니다.

/modlib/adddocs/alphametdoc.htm

Brooke, A, Kendrick, D 및 Meeraus, A, 메가 슬롯: 사용자 안내서. 는
Scientific Press, 캘리포니아 레드우드 시티, 1988.

키워드: 혼합 정수 선형 계획법, 영숫자
$offText

i '문자' 설정 / g, e, o, r, i, a, n, v, m, t /;

별칭(i,j);

abort$(card(i) <> 10) "설정에는 10개의 문자가 포함되어야 합니다.";

세트
   납(i) / g, o, v /
   k '슬라이스' / 1*8 /;

매개변수
   lhs(k,i) '슬라이스의 각 문자에 대한 입력 개수'
            / 1.(a,n,t) 1
              2.(이,오,엔) 1
              3.g 2 , 3.o 1
              4.(r,e,m) 1
              5.o 1 , 5.r 2
              6.e 2 , 6.o 1
              7.(g,v) 1/
   rhs(i,k) '결과'
            / (v.8,i.7,r.6,g.5,i.4,n.3,i.2,a.1) 1.0 /;

변수
   z '캐리의 합 - 일부 목표'
   x(i,j) '문자에 숫자 또는 값 할당'
   y(i) '할당된 값'
   c(k) '운반하다';

이진변수 x;
정수 변수 c;

방정식
   obj '어떤 목적'
   eq(k) '각 슬라이스에 대한 추가를 정의합니다'
   ydef(i) '할당된 값'
   x1(i) '할당 제약 1'
   x2(j) '할당 제약 조건 2'
   ld(i) '리드레터로 묶음';

obj.. z =e= sum(k, c(k - 1));

eq(k).. c(k-1) + sum(i, lhs(k,i)*y(i)) =e= sum(i, rhs(i,k)*y(i)) + 10*c(k)$(ord(k) <> 카드(k));

ydef(i).. y(i) =e= sum(j, (ord(j) - 1)*x(i,j));

x1(i)..합(j, x(i,j)) =e= 1;

x2(j)..합(i, x(i,j)) =e= 1;

ld(리드)..y(리드) =g= 1;

모델 m / 모두 /;

옵션 optCr = 1, optCa = 100;

z를 최소화하는 mip를 사용하여 m을 해결합니다.