2

안녕하세요. 선형 프로그래밍 문제를 해결하기 위해 Microsoft Solver Foundation을 사용하고 있지만 변수가 1000을 초과했으며 다음 오류 메시지가 표시됩니다. { "이 버전의 제품에서는 모델 크기 제한이 초과되었습니다. 라이선스 옵션을 마이크로 소프트에 문의하시기 바랍니다 \ 연구 \의 nLimits :.. NonzeroLimit = 100000, MipVariableLimit = 2000, MipRowLimit = 2000, MipNonzeroLimit = 10000, CspTermLimit = 25000, 만료 = 없음 "} Microsoft Solver Foundation 변수 제한

이 더 나은가요 능률적이고 Visual Studio IDE에서 작동 할 수있는 1000 개 이상의 변수를 수용 할 수있는 솔버? 감사.

+0

[엔터프라이즈 버전] (http://msdn.microsoft.com/en-us/library/ff524499(VS.93).aspx)은 제한되지 않고 Gurobi에서 구할 수 있습니다 (단, 특정 제품에 대한 견적을 얻으려는 전화) 또는 자체 브랜드 제품을 제공 할 수 있습니다. –

답변

3

정확한 의미가 확실하지 않습니다. 해결사가 "Visual Studio IDE에서 작동 할 수 있습니까?"

그러나 기능적 C# 인터페이스를 갖춘 대규모 (오픈 소스) LP 솔 루퍼를 원할 경우 lp_solve을 다운로드 할 것을 권합니다. 다운로드는 here입니다. 이 솔버는 C/C++로 작성되었지만 P/Invoke를 사용하여 다양한 lpsolve 메서드를 호출하는 포괄적이고 사용하기 쉬운 C# 래퍼가 있습니다.

2

한스 미텔 만 (Hans Mittelmann)의 benchmarks은 여러 LP 솔버의 비교를 제공합니다. 고성능 무료 솔버를 찾고있는 경우 CLP 또는 IPOPT을 권장합니다. 둘 다 C++에서 인터페이스를 가지므로 Visual C++에서 사용하는 데 문제가 없어야합니다. 좋은 상용 솔루션은 CPLEXGurobi입니다.

Marc Gravell이 언급했듯이 Microsoft Solver Foundation 엔터프라이즈 버전은 제한이 없지만 구입할 수는 있지만 discontinued입니다.

+0

좋은 지적. 그러나 IPOPT는 _non_ 선형 프로그래밍 솔버이므로 _CLP_에 대한 C# (태그 언어) 래퍼가 존재하지 않습니다. –

1

현재 보유하고있는 제약 조건 수를 알 수는 없지만 (제약 조건이 1000 개 미만인 경우) 변수 대신 이중 제약 조건과 1000 가지 제약 조건을 사용할 수 있으며 현재 Microsoft Solver Foundation 버전을 계속 사용할 수 있습니다. 이중화를 사용하면 자동화가 어렵지 않습니다.

2

해 찾기 재단이 취소 된 것으로 보입니다. 새 버전이 표시 될지 의심 스럽습니다. 변수 한계는 많은 문제점에 비해 너무 작습니다. Google OR Tools는 유용 할 것으로 나타났습니다. GLPK 및 CBC 해결사와 관련된 .NET 래퍼 (wrapper)를 소스 코드로 출시했습니다. 'Google OR 도구'를 검색하십시오. 이 솔버는 상용 솔루션만큼 빠르지는 않습니다 (위의 글의 벤치 마크 참조). 그러나 상용 솔루션은 일반적으로 6 ~ 12k 파운드 가격대에 판매됩니다.

관련 문제