슬롯 커뮤니티는 GAMS 중 하나입니다.설정, 별명, 매개변수, 변수또는수식.
심볼 도메인
슬롯 커뮤니티 세부정보를 살펴보기 전에 GDX 기본 사항에 대해 배우는 것이 중요합니다. GDX에서 슬롯 커뮤니티는 도메인에 대해 정의됩니다. 도메인은 다음을 지정합니다.차원그리고크기슬롯 커뮤니티(예: 스칼라, 벡터 또는 행렬). 세 가지가 있습니다.도메인 유형, 없음, 일반그리고편안한. GAMS Transfer Matlab 사용자의 경우 특히 후자 두 가지의 차이점을 아는 것이 중요합니다.
심볼 생성
슬롯 커뮤니티를 생성하려면 두 가지 동일한 방법이 있습니다:
- 팩토리 메소드설정, 별칭, 매개변수, 변수그리고수식, 예:c = 컨테이너();p = 매개변수(c,'p');
- 방법컨테이너.addSet, Container.addAlias, Container.addParameter, Container.addVariable그리고Container.addEquation, 예:c = 컨테이너();p = c.addParameter('p');
두 옵션 모두 기본 슬롯 커뮤니티 정의(예: 유형, 도메인)가 다르지 않으면 동일한 이름으로 슬롯 커뮤니티를 덮어쓸 수 있습니다.
다음 표에는 슬롯 커뮤니티를 생성하는 필수 및 가능한 인수가 나열되어 있습니다. 여기서 인수는 다음 유형 중 하나일 수 있습니다.필수, 선택사항(인수는 위치에 따라 다르지만 필수는 아님) 또는매개변수(인수 이름과 값은 쌍으로 전달되어야 하며 인수는 필요하지 않습니다). 갑#인수가 위치인 경우 위치를 나타냅니다. 인수가 필요하지 않은 경우 괄호 안의 값은 기본값입니다.
| 인수 | 유형 | 설명 | 설정 | 별명 | 매개변수 | 변수 | 수식 |
|---|---|---|---|---|---|---|---|
| 이름 | 문자열 | 슬롯 커뮤니티 이름 | 필수 #1 | 필수 #1 | 필수 #1 | 필수 #1 | 필수 #1 |
| alias_with | 설정 | 별칭이 연결된 설정 | - | 필수 #2 | - | - | - |
| 유형 | 문자열, 정수 | 변수 또는 방정식 유형, 참조변수유형그리고수식유형 | - | - | - | 선택사항 #2('무료') | 필수 #2 |
| 도메인 | 셀,설정, 문자열 | 문자열(유니버스 세트의 경우 '*') 또는 a에 대한 참조로 제공된 도메인 목록설정객체 | 선택사항 #2('*') | - | 선택사항 #2() | 선택사항 #3() | 선택사항 #3 () |
| 설명 | 문자열 | 슬롯 커뮤니티 설명 | 매개변수 ('') | - | 매개변수('') | 매개변수('') | 매개변수('') |
| 기록 | 아무거나 | 슬롯 커뮤니티 레코드, 참조슬롯 커뮤니티 레코드 할당 | 매개변수([]) | - | 매개변수([]) | 매개변수([]) | 매개변수([]) |
| is_singleton | 논리적 | 세트가 싱글톤 세트인지(true) 아닌지(false)를 나타냅니다. | 매개변수(거짓) | - | - | - | - |
다른 슬롯 커뮤니티 속성은 위에 나열된 속성에 의해 암시됩니다. 예를 들어,차원은의 요소 수입니다.도메인.
위의 모든 슬롯 커뮤니티 속성은 컨테이너에 추가한 후 언제든지 수정할 수 있습니다. 또한 속성 변경차원다음과 같은 효과가 있습니다: 감소차원삭제됩니다도메인뒤에 요소를 늘리면서차원적절하게 많은 유니버스 세트 도메인을 추가합니다*.
- 참고
- 다음을 제외하고 도메인 요소가 문자열로 전달되는 경우
*(유니버스 세트), 도메인이 처리됩니다.편안한대신에일반속성에 표시된 대로도메인_유형, 또한 참조심볼 도메인. 이는 도메인 확인이 적용되지 않음을 의미합니다. 또한 참조하세요.도메인 위반.
슬롯 커뮤니티 레코드 할당
슬롯 커뮤니티기록속성에 저장되어 있습니다<슬롯 커뮤니티>.records. 데이터를 그 자리에서 수정하는 것이 가장 효율적입니다. 레코드는 선택한 항목을 충족해야 합니다.레코드 형식. 그렇지 않으면 슬롯 커뮤니티가 유효하지 않은 것으로 표시됩니다. 유효한 슬롯 커뮤니티가 필요할 때마다 기록을 확인합니다. 참조슬롯 커뮤니티 레코드 유효성 검사더 많은 정보를 원하시면.
편의성을 높이기 위해(그러나 성능 비용이 발생합니다!) 이 방법은<symbol>.setRecords내부적으로 다음 중 하나로 변환될 다양한 형식을 허용합니다.레코드 형식. 참고하세요<symbol>.setRecords인수인 경우 슬롯 커뮤니티 생성자에 의해 호출됩니다.기록제공됩니다.
다음 변환이 지원됩니다(샘플 코드는 다음 슬롯 커뮤니티를 사용합니다.예):
- 문자열:
- 1차원의 도메인 항목으로 해석됩니다.>> a.setRecords('시애틀');>> a.transformRecords('테이블'); % 형식은 다음과 같습니다.구조체>> a.recordsans =테이블i_______시애틀
- 셀 문자열:
- 첫 번째 차원
cellstr은 슬롯 커뮤니티 차원과 동일해야 하며 두 번째는 레코드 수입니다. 행i차원에 대한 도메인 항목을 보유하는 것으로 해석됩니다.i.>> a.setRecords('시애틀', '샌디에고'});>> a.transformRecords('테이블'); % 형식은 다음과 같습니다.구조체>> a.recordsans =2×1 테이블i_________시애틀샌디에고
- 숫자 벡터/행렬:
- 유지한다고 해석됨
레벨값(또는값매개변수용). 행렬 형식만 가능하므로 슬롯 커뮤니티 크기로 주어진 모양을 만족해야 합니다(예:dense_matrix또는sparse_matrix), 도메인 항목이 제공되지 않기 때문입니다.>> a.setRecords([300 400]);>> a.transformRecords('테이블'); % 형식은density_matrix였습니다.>> a.recordsans =2×2 테이블나는 가치_________ _____시애틀 300샌디에고 400
- 셀:
요소가 다음인 경우
i-번째셀str, 그러면 이는에 대한 도메인 항목으로 간주됩니다.i-번째 도메인. 요소가j-번째 숫자 벡터/행렬, 다음과 같이 해석됩니다.j-다음의 번째 요소: (1)레벨또는값, (2)한계, (3)하위, (4)상부, (5)규모. 슬롯 커뮤니티가 a인 경우설정, 그(어두움+1)-번째 cellstr은 집합으로 간주됩니다.element_text.
- 참고
- 대신에
셀, 메소드에 별도의 인수로 요소를 제공하는 것이 가능합니다.<symbol>.setRecords.
>> v.setRecords([1 2], [11 22], [111 222], [1111 2222]);>> v.transformRecords('테이블'); % 형식은density_matrix였습니다.>> v.recordsans =2×5 테이블i 레벨 한계 하한 상한_________ _____ ________ _____ _____시애틀 1 11 111 1111샌디에고 2 22 222 2222>> x.setRecords('시애틀', '시애틀'}, {'뉴욕', '시카고'}, [1 2], [11 22], [111 222], [1111 2222]);>> x.transformRecords('테이블'); % 형식은 다음과 같습니다.구조체>> x.recordsans =2×6 테이블i j_2 수준 한계 하위 상위_______ ________ _____ ________ _____ _____시애틀신규-요크 1 11 111 1111시애틀 시카고 2 22 222 2222
- 구조체:
- 이름이 도메인 레이블과 일치하는 필드는 해당 도메인의 도메인 항목으로 해석됩니다. 기타 지원되는 필드는 다음과 같습니다.
레벨,값,한계,하위,상위,규모,element_text. 요청되지 않은 필드는 무시됩니다.
- 테이블:
- 그대로 사용되었으나 정확성이 확인되었습니다.