sign4.gms : RHS에서 도메인 점프에 사용되는 기호를 사용하여 테스트 세트 할당

설명

대상 세트 자체를 다음과 같이 사용하는 세트 할당에 대한 무료 슬롯 게임 실행 시스템을 테스트합니다.
RHS에서 도메인 하위 집합을 제어합니다(예: 'SetA(i) = sum(SetA(j)$cond, ...))'.

기고자: Lutz Westermann, 2025년 11월

소형 모델 유형 :무료 슬롯 게임


카테고리 : 무료 슬롯 게임 테스트 라이브러리


메인 파일 : 할당4.gms

$title 'RHS에서 도메인 점프에 사용되는 LHS 기호가 포함된 테스트 세트 할당' (ASSIGN1,SEQ=990)

$onText
대상 세트 자체를 다음과 같이 사용하는 세트 할당에 대한 무료 슬롯 게임 실행 시스템을 테스트합니다.
RHS에서 도메인 하위 집합을 제어합니다(예: 'SetA(i) = sum(SetA(j)$cond, ...))'.

기고자: Lutz Westermann, 2025년 11월
$offText

SET n 노드 세트 /n1*n120/,
    succ(n,n) 후속 세트,
    목록A(n), 목록B(n), diff(n);

ALIAS(n,nn,부모,자식);

* 일반 트리 정의
succ(n,child) = yes$(ord(child) >= 3*ord(n)-1 AND ord(child) <= 3*ord(n)+1);

* 리프에서 루트로 역방향 재귀
listA(n)$(NOT sum(succ(n,child), yes)) = yes;
listB(n)$(NOT sum(succ(n,child), yes)) = yes;

* 목록 업데이트
listA(parent) = yes$(sum(n$(listA(n) AND succ(parent,n)), yes));
listB(parent) = yes$(sum(listB(n)$succ(parent,n), yes));

diff(n) = (listA(N) - listB(n)) + (listB(n) - listA(n));
abort$[sum(diff(n), yes)] '오류: 세트의 차이', diff;