2017-02-28 3 views
0

CPLEX Python API를 처음 사용했습니다. 나는 CPLEX OPL IDE에서 .mod 및 .dat 파일을 입력으로 사용하여 이미 수행 한 Python의 선형 프로그래밍 문제를 해결하고자합니다. 필자는 입력을 계속해서 변경하고자하므로 파이썬에서 사용하고 싶습니다. 문제에 대한 내 mod 파일은 아래와 같습니다. 누군가 파이썬 API에 이것을 사용하는 방법에 대해 나를 도울 수 있습니까?CPLEX python API를 사용하여 연속 입력으로 선형 프로그래밍

int n = ...; 
int m = ...; 

int c = ...; 
int s = ...; 

range v = 1..n; 
range p = 1..m; 

int c_req[v] = ...; 
int s_req[v] = ...; 

int trust[v][v] = ...; 


// decision variables 

dvar boolean assign[p][v]; 

// expressions 

dexpr int used[pi in p] = max(vi in v) assign[pi][v]; // used[i] = 1  iff pi is used 
dexpr int totalUsed = sum(pi in p) used[pi]; 

execute { 
    cplex.tilim = 60; // Time limit 60 seconds 
} 

// model 

minimize totalUsed; 

subject to { 
    forall(pi in p) 
    c_cap: 
    sum(vi in v) c_req[vi] * assign[pi][vi] <= c; 

    forall(pi in p) 
    s_cap: 
    sum(vi in v) s_req[vi] * assign[pi][vi] <= s; 

    forall(vi in v) 
    v_all: 
    sum(pi in p) assign[pi][vi] == 1; 

    forall(pi in p, v1 in v, v2 in v) if (v1 < v2) if (trust[v1][v2] == 0) 
    trust_constraint: 
    assign[p][v1] + assign[p][v2] <= 1; 
} 

답변

0

당신은 파이썬에서 OPL를 호출하기 위해

subprocess.check_call(["C:/CPLEXStudio127/opl/bin/x64_win64/oplrun", "diet.mod", "diet.dat"]) 

을 작성할 수 있습니다. 그리고 다이어트를 미리 만들어야합니다.

그럼 당신은 파이썬 OPL에서 모델을 마이그레이션 할 필요가 없습니다 https://www.ibm.com/developerworks/community/forums/html/threadTopic?id=0b6cacbe-4dda-4da9-9282-f527c3464f47

에 전체 예. 당신이 diet.dat가 발생하는 경우, 파일 핸들을 플러시하고 닫혀 있는지 확인하십시오 https://developer.ibm.com/docloud/documentation/optimization-modeling/modeling-for-python/

관련

+0

:

또한 파이썬 모델을 번역 할 수 있으며, 나는 추천 DOCPLEX합니다. – PerlDev