일반적으로 선형 제약 조건을 한 번에 하나씩 생성하지 않고 배치를 작성하면 성능이 향상됩니다.
import cplex
c = cplex.Cplex()
c.variables.add(names=["x{0}".format(i+1) for i in range(9)])
c.linear_constraints.add(lin_expr=[[[0, 1, 2], [1.0, 1.0, 1.0]],
[[3, 4, 5, 6], [1.0, 1.0, 1.0, 1.0]],
[[7, 8], [1.0, 1.0]]],
rhs=[1.0, 1.0, 1.0],
names=["c{0}".format(i+1) for i in range(3)])
c.write("example.lp")
이 다음 LP 파일을 생성합니다 : (위의 예제를 사용하여) 예를 들어, 다음을 수행하는 것이 좋습니다 그래서
Minimize
obj:
Subject To
c1: x1 + x2 + x3 = 1
c2: x4 + x5 + x6 + x7 = 1
c3: x8 + x9 = 1
End
을, 당신의 입력 파일에 읽기 좋을 것이다, 일부 데이터 구조 (목록 또는 기타)에 제약 정보를 저장 한 다음 끝에 c.linear_constraints.add
(또는 입력 파일이 매우 큰 경우 모든 X 제약 조건)을 한 번 호출하십시오.
감사합니다. 인덱스를 미리 생성하고 단일'c.linear_constraints.add()'fuction에 맞 춥니 다. –