NEOS에서 대형 슬롯을 무료로 실행

게시일: 2020년 11월 3일 특징 뉴스

저희 데모 라이센스 체계를 사용하면 GAMS 및 배포판에 포함된 솔버를 무료로 사용해 볼 수 있지만 슬롯 크기와 관련하여 특정 제한이 있습니다. GAMS 자체는 다음과 같은 제한을 적용합니다.

  • 데모 라이센스가 있는 선형(LP, RMIP 및 MIP) 슬롯에 대한 2000개의 변수 및 2000개의 제약 조건
  • 데모 라이센스가 있는 기타 모든 슬롯 유형에 대한 1000개의 변수 및 1000개의 제약조건
  • 커뮤니티 라이센스가 있는 선형(LP, RMIP 및 MIP) 슬롯에 대한 5000개의 변수 및 5000개의 제약 조건
  • 커뮤니티 라이센스가 있는 기타 모든 슬롯 유형에 대한 변수 2,500개 및 제약 조건 2,500개

GAMS 슬롯 크기 제한 외에도 솔버는 데모 또는 커뮤니티 라이센스로 실행할 때 더 엄격한 제한을 적용할 수 있습니다. 이러한 제한 사항에 대한 자세한 내용은 다음에서 확인할 수 있습니다.우리 문서 .

라이센스 비용을 지불하지 않고 더 큰 슬롯을 해결하려는 사람들을 위해 이제 방법이 있습니다:NEOS 서버. 간단히 말하면,네오스수치적 최적화 문제를 해결하기 위한 무료 온라인 서비스로, 다음에서 호스팅됩니다.위스콘신 발견 연구소위스콘신 대학교 매디슨에 있습니다.네오스CPLEX, MOSEK, KNITRO, XPRESS 및 GUROBI와 같은 다양한 프리미엄 솔버를 통합합니다.

다음 주의사항이 적용됩니다:

  1. 최적화 작업에는 기밀 정보나 영업 비밀이 포함되어서는 안 됩니다(참조NEOS 이용약관 )
  2. 귀하는 다음만 사용할 수 있습니다.네오스for"학문적, 비상업적 연구 목적", 적어도 상용 솔버를 사용하는 경우에는.
  3. 귀하의 작업이 대기열에 추가되며 최적화 결과를 얻기까지 잠시 기다려야 할 수도 있습니다. 대기 시간은 일반적으로 몇 분 정도입니다.

만약 당신이 이러한 제한을 받아들일 수 있다면, 당신은 그것이 실행되는 것을 발견할 것입니다네오스GAMS STUDIO를 사용하면 취업이 쉽습니다! 다음은 GAMS 32.2.0 이상의 Studio에서 작동합니다.

다음을 사용하자ALUM 슬롯예를 들어 GAMS 슬롯 라이브러리에서 가져온 것입니다. GAMS는 이 MIP에 대해 다음 슬롯 통계를 생성합니다.

GAMS 32.2.0 rc62c018 2020년 8월 26일 출시 WEX-WEI x86 64bit/MS Windows - 08/28/20 11:14:30 페이지 22세계 알루미늄 슬롯(ALUM,SEQ=31)슬롯 통계 1493행에서 MIP를 사용하여 게임을 해결함

슬롯 통계
방정식 24 단일 방정식 928의 블록변수 블록 23 단일 변수 3,4750이 아닌 요소 12,317 이산 변수 172

데모 라이센스를 사용하여 로컬에서 이 문제를 해결하려고 하면 오류 메시지가 표시됩니다:

GAMS 32.2.0 저작권 (C) 1987-2020 GAMS 개발. 모든 권리 보유라이센스 사용자: Stefan Mann G200605|0002CO-GEN용 GAMS 데모 라이센스GAMS Software GmbH, 독일 DL011603c:\gams\licenses\demo.licsmann@gams.com, 스테판 만데모 및 교육 목적으로만 사용되는 데모 라이센스--- 컴파일 시작--- alum.gms(1632) 3Mb--- 실행 시작: 경과 0:00:00.012[LST:1704]--- alum.gms(1491) 5Mb--- MIP 슬롯 게임 생성 중[LST:10519]--- alum.gms(1495) 6Mb--- 928행 3,475열 12,317 0이 아님--- 172개의 개별 열*** 행 또는 열이 2000개가 넘는 선형 슬롯에 대한 데모 라이센스 제한을 초과하는 슬롯*** 상태: 라이선스 오류로 인해 종료됨*** 라이센스 파일: c:\gams\licenses\demo.lic*** 자세한 내용은 목록 파일을 검사하세요--- 작업 alum.gms 중지 08/28/20 12:16:44 경과 0:00:00.149

걱정하지 마세요. 이 슬롯은 다음에서 해결할 수 있습니다.네오스. 그렇게 하려면 먼저 솔버(네오스기본값은BDMLP, 솔버 옵션이 제공되지 않은 경우). 옵션을 슬롯 파일에 추가해야 합니다. STUDIO의 GAMS 매개변수 편집기에 제공된 옵션은 현재 제출 시 무시됩니다.네오스작업:

옵션 mip=cplex

그런 다음 Studio에서 다음을 선택하세요.GAMS > NEOS 실행 - 단축메뉴에서. 그러면 자동으로 NEOS와의 연결이 설정되고, 슬롯이 대기열에 추가되며, 준비가 되면 결과가 수집됩니다. 전체 프로세스는 완전히 원활하며 구성이 필요하지 않습니다. 작업이 5분 이상 실행될 것으로 예상되면 다음을 선택하세요.NEOS 실행 - 장기. 이렇게 하면 작업이 다른 대기열에 배치되어 5분 후에 작업이 자동으로 종료되지 않지만 NEOS 실행 중에 중간 로그 출력도 얻지 못합니다.

해결 요약은 CPLEX가 실제로 NEOS의 문제를 해결하는 데 사용되었음을 보여줍니다.

S O L V E S U M M A R Y
슬롯 게임 목표 phi4유형 MIP 방향 최소화라인 1496의 솔버 CPLEX
**** 솔버 상태 1 정상 완료**** 슬롯 상태 8 정수 솔루션**** 목표 값 49563.9048
리소스 사용량, 제한 0.220 10000000000.000반복 횟수, 제한 1686 2147483647
IBM ILOG CPLEX 32.2.0 rc62c018 2020년 8월 26일 출시 LEG x86 64bit/Linux--- GAMS/Cplex는 연속 및 개별 문제에 대해 라이센스가 부여되었습니다.플렉스 12.10.0.0
이름 공간 약 0.13Mb이름 사용을 끄려면 'names no' 옵션을 사용하세요.MIP 상태(102): 정수 최적, 허용Cplex 시간: 0.20초(디트. 158.45틱)정수 변수 수정 및 최종 LP 해결 중...고정 MIP 상태(1): 최적Cplex 시간: 0.01초(감차 13.31틱)솔루션은 허용 오차를 충족합니다.
MIP 솔루션: 49563.904825 (1116 반복, 42 노드)최종 해결: 49563.904825 (570 반복)
최상의 가능성: 49559.722453절대 간격: 4.182372상대적 간격: 0.000084

이것이 사용 가능한 상용 솔버를 사용하여 NEOS에서 슬롯을 해결하는 데 필요한 전부입니다.

간략한 기술 배경

GAMS 작업은 항상 여러 단계로 분할됩니다.

  1. 그 동안컴파일 단계GAMS는 슬롯 코드를 분석하고 다음을 생성합니다.파일 재시작(C++와 같은 언어의 "객체 파일"과 동일), 하위 수준 명령이 포함되어 있습니다. 중요한 것은 무엇이든달러 제어 옵션이 단계에서 실행됩니다.
  2. 그 동안실행 단계, 이전에 생성된 재시작 파일을 읽어서 실행합니다.

Studio를 사용하여 NEOS에서 GAMS 작업을 실행하면 컴파일 단계가 사용자 컴퓨터에서 로컬로 발생합니다. 그러면 결과 재시작 파일이 NEOS 서버에 복사되어 임시 디렉터리에서 실행됩니다. GAMS 실행 중에 해당 디렉터리에 생성된 모든 파일(.lst, .log, put files…)이 수집되어 로컬 시스템으로 다시 전송됩니다.

이 프로세스가 사용하는 프로세스와 어떻게 다른지 참고하세요.케스트렐,또한 NEOS 서버에서 GAMS 작업을 해결할 수 있습니다. Kestrel을 사용하면 두 가지 GAMS 컴파일그리고실행 단계는 로컬 시스템에서 발생하며 (잠재적으로 큰) 솔버 작업 파일만 NEOS에 복사되어 솔버에 공급됩니다. GAMS 실행 단계는 로컬에서 발생하므로 여기에는 데모 설치의 크기 제한이 적용됩니다.

기술적 한계

  • 보안상의 이유로 NEOS 작업은 다음에서 실행됩니다.execmode=3(자세한 내용은우리 문서), 이는 실행, 포함된 코드 또는를 사용할 수 없음을 의미합니다.넣어작업 디렉토리 위의 명령문
  • 보조 파일을 업로드할 수 없습니다. 결과적으로 다음과 같은 것을 사용할 수 없습니다.execute_load xxx.gdx. 또한 솔버 옵션 파일이 필요한 경우 즉시 다음을 사용하여 생성해야 합니다.넣다. CPLEX 옵션 파일을 생성하려면 다음 예시를 고려하세요.
파일 fopt /cplex.opt/;putclose fopt 'startalg 4' / 'mipephasis 2';