피망 슬롯
- 참고
- 이 도구는 다음의 일부입니다.GAMS 도구 라이브러리. 다음을 검사해 주세요.일반 정보GAMS 도구 정보.
이 도구는 GDX 파일에서 SQLite 데이터베이스로 피망 슬롯를 내보냅니다. 만일gdxIn이 지정되지 않으면 모든 피망 슬롯가 GAMS 데이터베이스에서 직접 내보내집니다. 백그라운드에서는 GAMS Connect를 활용합니다.투영에이전트를 사용하여 변수와 방정식을 매개변수로 변환하고SQLWriter피망 슬롯를 SQLite 데이터베이스로 내보내는 에이전트.
사용법
명령줄:
gamstool [data.]피망 슬롯 gdxIn=input_gdx_filename.gdx o=output_sqlite_filename.db
컴파일 시간:
$callTool [data.]피망 슬롯 [gdxIn=input_gdx_filename.gdx] o=output_sqlite_filename.db
실행 시간:
executeTool '[데이터.]피망 슬롯 [gdxIn=input_gdx_filename.gdx] o=output_sqlite_filename.db';
다음과 같은 명명된 매개변수를 사용할 수 있습니다:
매개변수 유형 기본값 설명 추가부울 N기존 데이터베이스의 새 테이블에 새 피망 슬롯를 쓸지 여부를 지정하십시오. 기존 테이블에 추가하는 것은 허용되지 않습니다. ( Y예,N아니요)expltext부울 N데이터베이스 테이블의 세트 요소에 대한 설명 텍스트를 내보냅니다. ( Y예,N아니오의 경우).빠르게부울 N도구가 일부 비표준 pragma를 사용하여 데이터 삽입을 가속화해야 하는지 지정하십시오. 이를 활성화하면 프로그램 충돌 시 데이터 일관성이 손상됩니다. gdxIn문자열 없음 입력 GDX 파일을 지정하세요. ID문자열 없음 내보낼 피망 슬롯의 쉼표로 구분된 목록입니다. 없음인 경우 모든 피망 슬롯를 내보냅니다. o문자열 없음 출력 SQLite 데이터베이스 파일의 이름을 지정하십시오. 작은부울 NUEL이 별도의 테이블에 저장되어 더 작은 데이터베이스가 되도록 지정하십시오. 조인의 복잡성을 숨기기 위해 사용자 친화적인 피망 슬롯 VIEW가 생성되었습니다. 추적정수 0디버깅 출력에 대한 추적 수준을 지정하십시오. (0,1,2,3) Connect Agent 참조 SQLWriter옵션추적자세한 내용은.스택 해제부울 N마지막 색인 열이 헤더 행으로 사용될 것인지 지정하십시오. ( Y예,N아니요의 경우)
- 참고
- 활성화 옵션
작은다음에서는 허용되지 않습니다.추가모드.
예
i /i1, i2/ 설정;
j /j1, j2/를 설정합니다.
k /k1, k2/를 설정합니다;
매개변수 p(i,j,k);
p(i,j,k) = 균일(0,10);
Execute_unload 'input.gdx' i,j,k,p;
ExecuteTool 'data.sqlitewrite o=output.db';
*** 아래 사용법은 동일한 결과를 생성합니다
*executeTool 'data.sqlitewrite gdxIn=input.gdx o=output.db';
임베디드 코드 연결:
- 피망 슬롯리더:
연결: '데이터베이스': 'output.db'
기호:
- 이름 : i_out
쿼리: "SELECT * FROM i;"
유형: 세트
- 이름: j_out
쿼리: "SELECT * FROM j;"
유형: 세트
- 이름 : k_out
쿼리: "SELECT * FROM k;"
유형: 세트
- 이름 : p_out
쿼리: "SELECT * FROM p;"
- Python코드:
코드: |
connect.print_log(f"기호: i\nconnect.container['i_out'].records\n")
connect.print_log(f"기호: j\nconnect.container['j_out'].records\n")
connect.print_log(f"기호: k\nconnect.container['k_out'].records\n")
connect.print_log(f"기호: p\nconnect.container['p_out'].records\n")
endEmbeddedCode
위의 예는 다음 로그 출력을 생성합니다.
피망 슬롯: 나
0 요소_텍스트
0i1
1 i2
피망 슬롯 : j
0 요소_텍스트
0j1
1j2
피망 슬롯 : k
0 요소_텍스트
0k1
1k2
피망 슬롯 : p
0 1 2 값
0 i1 j1 k1 1.717471
1 i1 j1 k2 8.432667
2 i1 j2 k1 5.503754
3 i1 j2 k2 3.011379
4 i2 j1 k1 2.922121
5 i2 j1 k2 2.240529
6 i2 j2 k1 3.498305
7 i2 j2 k2 8.562703데이터 저장 방법
세트
n차원 세트는 n개의 텍스트 열이 있는 테이블로 저장됩니다. 옵션의 경우-expltext을 사용하면 설명 텍스트와 함께 다른 열이 추가될 수 있습니다.
매개변수
n차원 매개변수에는 n개의 인덱스 열과 값 열이 있습니다. 스칼라는라는 별도의 테이블에 수집됩니다.스칼라.
변수 및 방정식
n차원 변수 및 방정식에는 n개의 인덱스 열 외에 수준 열, 하한 및 상한, 주변 및 척도 열이 있습니다. 스칼라 변수와 방정식은 테이블에 수집됩니다.스칼라변수그리고규모 방정식. 참고하세요EPS0과 특수값으로 저장됩니다.UNDEF그리고NA다음으로 내보내집니다NULL.
i / i1*i4 / 설정;
양의 변수 x(i);
x.l(i) = 균일(0,1);
변수 z;
z.m = 1;
ExecuteTool "sqlitewrite ids=x,z o=data.db";
임베디드 코드 연결:
- 피망 슬롯리더:
연결: '데이터베이스': 'data.db'
기호:
- 이름 : x
쿼리: "SELECT * FROM x;"
- 이름: 스칼라변수
쿼리: "SELECT * FROM 스칼라변수;"
- Python코드:
코드: |
connect.container["x"].records.columns = ["i","level","marginal","lower","upper","scale"]
connect.container["scalarvariables"].records.columns = ["name","level","marginal","lower","upper","scale"]
connect.print_log(f"기호: x\nconnect.container['x'].records\n")
connect.print_log(f"기호: 스칼라 변수\nconnect.container['scalarvariables'].records\n")
endEmbeddedCode
위의 예는 다음 로그 출력을 생성합니다.
피망 슬롯: x
i 수준 한계 하한 상한 척도
0 i1 0.17174713200000002 0.0 0.0 inf 1.0
1 i2 0.843266708 0.0 0.0 inf 1.0
2 i3 0.550375356 0.0 0.0 inf 1.0
3 i4 0.301137904 0.0 0.0 inf 1.0
피망 슬롯: 스칼라변수
이름 수준 한계 하한 상한 척도
0z 0.0 1.0 -inf inf 1.0GDX2SQLITE 사용자를 위한 지침
이 도구의 매개변수와 사용법은 다음과 유사합니다.GDX2SQLITE. 그러나 아래에 언급된 두 도구 간에는 몇 가지 차이점이 있습니다.
- SqliteWrite는 옵션인 경우 GAMS에서 피망 슬롯를 직접 내보낼 수 있습니다.
gdxIn지정되지 않았습니다. - 특수 값
INF그리고-INF대체 항목 없이 SQLite 데이터베이스에 그대로 저장됩니다.EPS기본적으로 0으로 저장됩니다. - 새로운 옵션
스택 해제마지막 인덱스 열이 헤더 행으로 사용되는 경우 지정할 수 있습니다. - 피망 슬롯는 수준, 하한 및 상한, 한계 및 척도를 포함하는 변수 및 방정식의 5가지 속성을 모두 저장합니다.
- 피망 슬롯는 옵션을 사용하여 기존 데이터베이스에 추가하는 것을 허용하지 않습니다.
작은활성화되었습니다.