2

CPLEX에서 볼록한 구속의 세트에 대한 실행 가능성 문제 (실현 가능한 점이 있는지 여부)를 해결하는 API가 있습니까?CPLEX의 feasiblity 문제

답변

2

예, 단지를 입력하지 않는 비용으로 솔루션을 발견하면 그 다음 테스트 비용 1. 비용 함수 만 불황기 변수를 넣을 수 있습니다 목적 함수. cplex는 솔루션을 찾거나 찾을 수없는 솔루션을 제공합니다.

var x; 
var y; 
minimize 1; 

subject to con1: 
    x + y <= 6; 
    x + y >= 7; 
+0

cplex가 상수를 객관적인 함수로 받아 들일 수 없다는 것을 알지 못했습니다. 나는 || x ||^2를 최소화하여 일하고있었습니다. 감사합니다 –

+0

목적 함수에서 상수를 사용할 때, Cplex는 제 답변에서 제안한 것과 매우 유사한 여유 변수가있는 공식을 사용합니다. 명시 적으로 슬랙 변수를 추가하는 것의 이점은 문제가 실행 불가능한 것으로 밝혀지면 어떤 제약이 서로 모순되는지 몇 가지 아이디어를 제공한다는 것입니다. – willem

1

당신은 단순히 모든 제약 조건에 여유를 추가하고, CPLEX는 0

0

간단한 방법은 빈 목표 함수를 추가하는 것입니다. 예를 들어 .net 용 콘서트를 사용하는 경우 입력 매개 변수없이 AddMinimize() 또는 AddMaximize()를 사용하면 작업이 수행됩니다. 또한 Populate() 메서드를 사용하여 원하는만큼 많은 솔루션을 채울 수 있습니다.

마찬가지로 볼록 제약을 언급했습니다. 나는 cplex가 log와 같은 함수를 처리 할 수 ​​있다고 생각하지만, 일부 convex 함수가 어떤 괴상한 형태라고 생각하며, cplex 모델에서 표현식으로 표현할 수 있는지 확신 할 수 없다.