소플렉스

소플렉스 (S순차o객체 지향 시뮬레이션플렉스)는 원시 및 이중 수정 심플렉스 알고리즘의 고급 구현을 기반으로 하는 선형 계획법 문제(LP)를 해결하기 위한 최적화 패키지입니다. SoPlex는 Zuse-Institute Berlin에서 개발되었습니다.

더 자세한 정보는 [를 참조하세요.73, 126, 87, 88, 74, 203] 및SoPlex 웹사이트.

사용법

SOPLEX 사용을 지정하기 위해 무료 슬롯 프로그램 내에서 다음 명령문을 사용할 수 있습니다.

옵션 LP = SOPLEX;      또는 RMIP

위 문은 Solve 문 앞에 나타나야 합니다. 무료 슬롯 설치 중에 SoPlex가 기본 솔버로 지정된 경우 위의 설명은 필요하지 않습니다.

SoPlex 옵션 사양

무료 슬롯/SoPlex는 무료 슬롯 매개변수를 지원합니다레스림그리고iterlim.

반복 제한 없이 실행되도록 허용하기 위해(SoPlex 기본값) 무료 슬롯/SoPlex 링크는 무료 슬롯 옵션 설정을 전달하지 않습니다.iterlim2147483647로.

무료 슬롯 옵션 설정정수10이 아닌 값으로 설정하면 자세한 솔루션 통계를 로그에 쓸 수 있습니다.

무료 슬롯 옵션 설정정수30이 아닌 값으로 설정하면 솔루션 프로세스를 시작하기 전에 모델 인스턴스를 LP 또는 MPS 형식의 파일에 기록하게 됩니다(정수3=1MPS 파일을 작성합니다.정수3=2LP 파일을 작성합니다.정수3=4SoPlex 상태 파일(.mps, .bas, .set)을 작성합니다. 여러 파일을 작성하려면 이 값을 합산하세요.) 출력 파일의 이름은 확장자를 가진 무료 슬롯 모델 파일의 이름으로 선택됩니다..gms교체되었습니다. 무료 슬롯 옵션 설정정수20이 아닌 값으로 설정하면 LP 또는 MPS 파일을 작성할 때 변수 및 방정식 이름을 사용할 수 있습니다. 이러한 옵션은 디버깅 목적으로 유용할 수 있습니다.

옵션은 SoPlex 옵션 파일로 지정할 수 있습니다. SoPlex 옵션 파일은 한 줄에 하나의 옵션 또는 설명으로 구성됩니다. 파운드 기호(#)을 줄 시작 부분에 추가하면 전체 줄이 무시됩니다. 그렇지 않으면 해당 줄은 등호()로 구분된 옵션 이름과 값으로 해석됩니다.=) 및 임의의 공백(공백 또는 탭).

soplex.opt 파일의 작은 예는 다음과 같습니다:

bool:rowboundflips = true
정수:알고리즘 = 0
진짜:축제 = 1e-5

무료 슬롯/SoPlex는 행 표현에도 바운드 뒤집기를 사용하고 원시 심플렉스를 사용하며 1e-5의 원시 실현 가능성 공차를 사용합니다.

SoPlex 옵션 목록

다음에서는 모든 SoPlex 옵션의 자세한 목록을 제공합니다.

옵션설명기본값
bool:acceptcycling반복적 개선 중에 사이클링 솔루션을 허용해야 합니까?
범위: 부울
0
bool:ensureray타당성 없음/무한성에 대한 증거(광선)를 얻기 위해 원래 문제를 다시 최적화하시겠습니까?
범위: 부울
0
bool:forcebasic최적의 솔루션이 기본 솔루션임을 강제하려고 시도합니다
범위: 부울
0
bool:완전 교란섭동을 문제 전체에 적용해야 합니까?
범위: 부울
0
bool:리프팅0이 아닌 행렬 계수의 범위를 줄이기 위해 리프팅을 사용해야 합니까?
범위: 부울
0
bool:지속적인 크기 조정지속적인 확장을 사용해야 합니까?
범위: 부울
1
bool:powerscaling2의 거듭제곱으로 반복적으로 개선하기 위한 라운드 배율 인수?
범위: 부울
1
bool:rowboundflips행 표현에도 바운드 뒤집기를 사용하시겠습니까?
범위: 부울
0
bool:simplifier_enable_domcolPaPILO에서 사전 해결사 DominatingCols 활성화
범위: 부울
1
bool:simplifier_enable_dualfixPaPILO에서 프리솔버 DualFix 활성화
범위: 부울
1
bool:simplifier_enable_fixcontinuousPaPILO에서 프리솔버 FixContinuous 활성화
범위: 부울
1
bool:simplifier_enable_parallelcolsPaPILO에서 프리솔버 ParallelColDetection 활성화
범위: 부울
1
bool:simplifier_enable_parallelrowsPaPILO에서 프리솔버 ParallelRowDetection 활성화
범위: 부울
1
bool:simplifier_enable_propagationPaPILO에서 프리솔버 ConstraintPropagation 활성화
범위: 부울
1
bool:simplifier_enable_singletoncolsPaPILO에서 프리솔버 SingletonCols 활성화
범위: 부울
1
bool:simplifier_enable_stuffingPaPILO에서 Presolver SingletonStuffing 활성화
범위: 부울
1
bool:testdualinf원문제 해결이 불가능하더라도 쌍대 해를 반환하려고 시도하려면 쌍대 불가능성을 테스트해야 합니까?
범위: 부울
0
int:알고리즘알고리즘 유형(0 - 원시, 1 - 이중)
범위: 0, ..., 1
1
int:displayfreq표시 빈도
범위: 1, ..., 무한대
200
int:factor_update_max새 분해가 없는 최대 LU 업데이트 수(0 - 자동)
범위: 0, ..., 무한대
0
int:factor_update_typeLU 업데이트 유형(0 - eta 업데이트, 1 - Forrest-Tomlin 업데이트)
범위: 0, ..., 1
1
int:초과가격초저밀도 가격 책정 모드(0 - 끄기, 1 - 자동, 2 - 항상)
범위: 0, ..., 2
1
int:iterlimit반복 제한(-1 - 제한 없음)
범위: -1, ..., 무한대
무료 슬롯 iterlim
int:leastsq_maxrounds최소 제곱 스케일링에서 공액 기울기 반복의 최대 수
범위: 0, ..., 무한대
50
정수:가격 책정자가격 책정 방법(0 - 자동, 1 - dantzig, 2 - parmult, 3 - devex, 4 - Quicksteep, 5 - 가파른)
범위: 0, ..., 5
0
int:printbasismetric해결 중 기본 측정항목 인쇄(-1 - 끄기, 0 - 조건 추정, 1 - 추적, 2 - 행렬식, 3 - 조건)
범위: -1, ..., 3
-1
int:ratiotester비율 테스트 방법(0 - 교과서, 1 - 해리스, 2 - 빠름, 3 - 바운드플리핑)
범위: 0, ..., 3
3
int:reflimit정밀도 제한(-1 - 제한 없음)
범위: -1, ..., 무한대
-1
int:표현계산 형식 유형(0 - 자동, 1 - 열 표현, 2 - 행 표현)
범위: 0, ..., 2
0
int:scaler스케일링(0 - 꺼짐, 1 - 단일 평형, 2 - 이중 평형, 3 - 기하, 4 - 반복 기하, 5 - 최소 제곱, 6 - 기하 평형)
범위: 0, ..., 6
2
int:simplifier간소화자(0 - 끄기, 1 - 자동, 2 - PaPILO, 3 - 내부)
범위: 0, ..., 3
3
int:stallreflimit정밀도 제한(-1 - 제한 없음)
범위: -1, ..., 무한대
-1
int:starter처음부터 시작할 때 충돌 기준이 생성됨(0 - 없음, 1 - 가중치, 2 - 합계, 3 - 벡터)
범위: 0, ..., 3
0
int:stattimer통계 측정값, 예: 분해 시간(0 - 꺼짐, 1 - 사용자 시간, 2 - 벽시계 시간)
범위: 0, ..., 2
1
int:타이머타이머 유형(1 - CPUTime, 일명 usertime, 2 - 벽시계 시간, 0 - 타이밍 없음)
범위: 0, ..., 2
2
int:상세상세 수준(0 - 오류, 1 - 경고, 2 - 디버그, 3 - 정상, 4 - 높음, 5 - 전체)
범위: 0, ..., 5
3
real:epsilon_factorization인수분해에 사용되는 제로 허용오차
범위: [0, 1]
1e-20
real:epsilon_pivot인수분해에 사용되는 피벗 제로 공차
범위: [0, 1]
1e-10
실제:epsilon_update인수분해 업데이트에 사용되는 제로 허용오차
범위: [0, 1]
1e-16
실제:epsilon_zero일반 무관용
범위: [0, 1]
1e-16
리얼:페스톨원초 타당성 공차
범위: [0, 1]
1e-06
real:fpfeastol반복적 개선 중 부동 소수점 솔버의 타당성에 대한 작업 허용 오차
범위: [0, 1]
1e-09
실제:fpopttol반복적 개선 중 부동 소수점 솔버의 최적성을 위한 작업 허용 오차
범위: [0, 1]
1e-09
실제:infty무한대 임계값
범위: [1e+10, ]
무한
real:leastsq_acrcy최소 제곱 스케일링에서 공액 기울기 방법의 정확도(값이 높을수록 더 많은 반복이 발생함)
범위: [1, ]
1000
실제:liftmaxval리프팅의 낮은 임계값(절대값이 더 작은 0이 아닌 행렬 계수가 다시 작성됨)
범위: [10, ]
1024
실제:liftminval리프팅의 낮은 임계값(절대값이 더 작은 0이 아닌 행렬 계수가 다시 작성됨)
범위: [0, 0.1]
0.000976562
실제:maxscaleincr세분화 간 배율 인수 최대 증가
범위: [1, ]
1e+25
real:min_markowitzLU 분해의 최소 Markowitz 임계값
범위: [0.0001, 0.9999]
0.01
실제:minred단순화를 계속하기 위해 최소한의 축소(제거된 행/열의 합계)
범위: [0, 1]
0.0001
real:objlimit_lower객관값 하한값
범위: 실제
무료 슬롯 컷오프, 최대화하는 경우, 그렇지 않으면 -
real:objlimit_upper객관값의 상한선
범위: 실제
무료 슬롯 컷오프, 최소화하는 경우, 그렇지 않으면 +
실제:opttol이중 타당성 공차
범위: [0, 1]
1e-06
real:repac_basis_nnz업데이트된 기저 행렬과 비교하여 마지막 인수분해된 기저 행렬의 0이 아닌 값에 대한 리팩터링 임계값
범위: [1, 100]
10
real:repac_mem_factor마지막 리팩토링 이후 인수분해의 메모리 증가에 대한 리팩터링 임계값
범위: [1, 10]
1.5
real:repac_update_fill마지막 인수분해의 채우기와 비교하여 현재 요소 업데이트의 채우기에 대한 리팩터링 임계값
범위: [1, 100]
5
real:representation_switch자동 모드에서 열에서 행 표현으로 전환하기 위한 행 수 및 열 수에 대한 임계값
범위: [0, ]
1.2
real:simplifier_modifyrowfac0이 아닌 값 또는 행의 수가 많아야 사전 해결 전 0이 아닌 값 또는 행의 수를 곱한 값일 때 제약 조건을 수정
범위: [0, 1]
1
real:sparsity_threshold희소 가격 책정 임계값(위반 < 차원 * SPARSITY_THRESHOLD는 희소 가격 책정을 활성화함)
범위: [0, 1]
0.6
실제:시간제한초 단위의 시간 제한
범위: [0, ]
무료 슬롯 리슬림