http://ibmdecisionoptimization.github.io/docplex-doc/mp/docplex.mp.model.html
docplex.mp.model 모듈
클래스 docplex.mp.model.Model( 이름=없음 , 컨텍스트=없음 , **kwargs )[원천]베이스:object
모델링 객체를 내장하는 메인 클래스입니다.
이 Model클래스는 최적화 개체, 결정 변수 및 제약 조건을 만드는 팩토리 역할을 합니다. 모델링 개체에 대한 다양한 접근자와 반복자를 제공합니다. 또한 해결 작업 및 솔루션 관리를 관리합니다.
Model 클래스는 컨텍스트 관리자이며 Python with 문과 함께 사용할 수 있습니다.
with Model() as mdl:
# start modeling...
with 블록이 끝나면 메소드 end()가 자동으로 호출되고 모델이 할당한 모든 리소스가 소멸됩니다. 모델이 with 키워드 로 작성되지 않은 경우 end()메소드를 호출하여 모든 CPLEX 자원을 해제해야 합니다.
를 지정하지 않고 모델을 생성하면 에 설명된 대로 context기본값이 생성되고 초기화됩니다 .Contextdocplex.mp.context.Context.read_settings()
예:
# Creates a model named 'my model' with default context
model = Model('my model')
이 예에서는 단 2개의 스레드로 해결할 모델을 만듭니다.
context = Context.make_default_context()
context.cplex_parameters.threads = 2
model = Model(context=context)
또는 다음과 같이 코딩할 수 있습니다.
model = Model()
model.context.cplex_parameters.threads = 2
|
해당 인수의 절대값과 동일한 표현식을 작성합니다.
매개변수:보고:e – 결정 변수, 표현식 또는 숫자와 같이 표현식으로 변환할 수 있는 모든 객체를 허용합니다. |
산술 연산자 및 제약 조건에서 사용할 수 있는 표현식입니다. |
메모
식을 작성하면 이진 결정 변수를 포함하여 보조 결정 변수가 생성되며 이는 문제의 특성을 LP에서 MIP로 변경할 수 있습니다.
모델에 새 선형 제약 조건을 추가합니다.
매개변수:보고:
|
새로 추가된 제약 조건입니다. |
또한보십시오
모델에 새 선형 제약 조건을 추가합니다.
매개변수:
|
메모
이 메서드는 반환 값이 없다는 점을 제외하면 docplex.mp.model.Model.add_constraint() 와 동일합니다 .
또한보십시오
한 번의 작업으로 모델에 선형 제약 조건 배치를 추가합니다.
cts iterable 의 각 제약 조건이 모델에 추가됩니다. 있는 경우 iterable 이름은 이름을 제약 조건으로 설정하는 데 사용됩니다.
예
# 목록 >>> m.add_constraints([x >= 1, y<= 3], [“c1”, “c2”]) # 이해 >>> m.add_constraints((xs[i] >= i for i 범위 내(N)))
매개변수:보고:
|
새로 추가된 제약 조건 목록입니다. |
메모
이 방법은 선형 제약 조건(범위 제약 조건 포함)만 처리합니다. 추가하려면
다중 2차 구속조건, 참조add_quadratic_constraints()
또한보십시오
한 번의 작업으로 모델에 선형 제약 조건 배치를 추가합니다.
아무것도 반환하지 않는다는 점을 제외하면 docplex.model.Model.add_constraints() 와 동일합니다 .
add_equivalence( binary_var , linear_ct , true_value=1 , name=None )[원천]모델에 새 등가 제약조건을 추가합니다.
등가 제약 조건은 이산 선형 제약 조건의 만족에 이진 변수의 값을 양방향으로 연결합니다. 이진 변수가 참값과 같으면 제약 조건이 충족되고 반대로 제약 조건이 충족되면 이진 변수는 참 값과 같습니다.
매개변수:보고:
|
새로 생성된 등가 제약 조건입니다. |
모델에 일괄 등가 제약 조건을 추가합니다.
매개변수:eqcts – 등가 제약 조건을 반환하는 반복 가능합니다. |
또한보십시오
모델에 일괄 등가 제약 조건을 추가합니다.
매개변수:eqcts – 등가 제약 조건을 반환하는 반복 가능합니다. |
또한보십시오
등가 제약 조건 배치를 모델에 추가합니다.
이 방법은 등가 제약 조건 배치를 모델에 추가합니다.
매개변수:
|
모든 시퀀스는 길이가 같아야 합니다.
보고:등가 제약 조건 목록. |
새로운 if-then 제약 조건을 생성하고 모델에 추가합니다.
매개변수:보고:
|
IfThenConstraint의 인스턴스. |
메모
이 제약 조건은 if_ct 제약 조건 의 상태에 의존하므로 이 제약 조건은 불연속적이어야 합니다. 그렇지 않으면 예외가 발생합니다. 반대로 then_ct 제약 조건은 불연속적일 수 있습니다.
또한 이 구성은 if_ct 의 상태 변수에 의존하므로 하나의 추가 이진 변수가 생성됩니다.
2.16의 새로운 기능 : if_ct가 bvar == 1 또는 bvar ==0 형식 일 때 bvar 는 이진 변수입니다., 추가 변수가 생성되지 않고 일반 표시기 제약 조건이 생성됩니다.다른 구문은 선형 제약 조건에 >> 연산자를 사용하는 것입니다.
>>> m.add(c1 >> c2)
다음과 정확히 동일합니다.
>>> m.add_if_then(c1, c2)
모델에 새 표시기 제약 조건을 추가합니다.
표시기 제약 조건은 이진 변수 값을 선형 제약 조건 충족에 연결(단방향)합니다. 이진 변수가 활성 값과 같으면 제약 조건이 충족되지만 그렇지 않으면 제약 조건이 충족되거나 충족되지 않을 수 있습니다.
매개변수:보고:
|
새로 생성된 표시기 제약 조건입니다. |
모델에 표시기 제약 조건 배치를 추가합니다.
매개변수:indcts – 반복 가능한 반환 표시기 제약 조건입니다. |
또한보십시오
모델에 표시기 제약 조건 배치를 추가합니다.
매개변수:indcts – 반복 가능한 반환 표시기 제약 조건입니다. |
또한보십시오
모델에 표시기 제약 조건 배치를 추가합니다.
이 방법은 지표 제약 조건 배치를 모델에 추가합니다.
매개변수:
|
모든 시퀀스는 길이가 같아야 합니다.
보고:지표 제약 목록. |
모델에 핵심 성과 지표를 추가합니다.
KPI(핵심 성과 지표)는 solve() 후에 평가할 수 있는 개체입니다. 일반적으로 의사결정 표현식에 사용되며, 그 평가는 표현식의 솔루션 값을 반환합니다.
KPI 값은 방법으로 표시됩니다 report_kpis().
매개변수:
|
Note
- If no publish_name is provided, DOcplex will try to access a ‘name’ attribute of the argument; if none exists, it will use the string representation of the argument , as returned by str().
- expression KPIs are seperate from the model. In other terms, adding KPIs does not change the model (and matrix) being solved.
Examples
model.add_kpi(x+y+z, “Total Profit”) adds the expression (x+y+z) as a KPI with the name “Total Profit”.
model.add_kpi(x+y+z) adds the expression (x+y+z) as a KPI with the name “x+y+z”, assuming variables x,y,z have names ‘x’, ‘y’, ‘z’ (resp.)
Returns:The newly added KPI instance. |
문제에 하나의 게으른 제약 조건을 추가합니다.
이 방법은 선형 제약 조건을 예상합니다.
매개변수:
|
버전 2.10의 새로운 기능
add_lazy_constraints( lazy_cts , 이름=없음 )[원천]문제에 게으른 제약 조건을 추가합니다.
이 메서드는 선형 제약 조건을 반환하는 반복 가능을 예상합니다(범위는 허용되지 않음).
매개변수:
|
버전 2.10의 새로운 기능
add_mip_start( mip_start_sol , effort_level=없음 , write_level=없음 , complete_vars=False , eps_zero=1e-06 )[원천]MIP의 시작점으로 사용할 (아마도 부분적인) 솔루션을 추가합니다.
이는 이진 또는 정수 결정 변수가 있는 모델에만 유효합니다. 주어진 솔루션은 적어도 하나의 이진 또는 정수 변수에 대한 값을 포함해야 합니다.
이 기능은 '웜 스타트'라고도 합니다.
입력에 전달된 솔루션은 의 새 인스턴스에 복사됩니다 docplex.mp.SolveSolution. "write_level" 인수에 따라 일부 필터링 작업을 수행할 수 있습니다. 기본적으로(명시적인 쓰기 수준 없음) 개별 변수만 복사됩니다. 명시적 수준이 전달되면 수준은 0 값이 전달되는지 여부를 제어합니다. 예를 들어 "WiteLevel.NonZeroDiscreteVars"는 불연속 변수에 대해 0이 아닌 값만 복사하도록 지정합니다.
매개변수:보고:
|
의 인스턴스 doplex.mp.SolveSolution, 변환이 성공하면 input에 전달된 것과 다른 인스턴스, 그렇지 않으면 None(일반적으로 LP 모델의 경우). |
예
기본값은 전달된 솔루션에서 명시적으로 언급된 변수만 복사하고 0을 포함하여 불연속 변수만 복사하는 것에 해당합니다. 0을 제외하려면 다음을 사용하십시오.
>>> mdl.add_mip_start(sol, write_level=WriteLevel.NonZeroDiscreteVars)
연속 변수를 포함하여 모델에 모든 변수를 포함하려면 다음을 사용하십시오.
>>> mdl.add_mip_start(sol, write_level=WriteLevel.AllVars, complete_vars=True)
또한보십시오
docplex.mp.constants.EffortLevel docplex.mp.constants.WriteLevel docplex.mp.solution.SolveSolution
모델에 진행 리스너를 추가합니다.
진행 리스너는 :class:~docplex.mp.ProgressListener의 하위 클래스입니다.
매개변수:청취자 – |
한 번의 호출로 2차 제약 조건 배치를 추가합니다.
매개변수:qcs – 2차 제약 조건에 대한 반복 가능. |
메모
Model.add_constraints 메서드 는 선형 제약 조건만 처리합니다.
버전 2.16의 새로운 기능*
add_range( lb , expr , ub , rng_name=없음 )[원천]모델에 새 범위 제한을 추가합니다.
범위 제약 조건은 선형 표현식이 간격 [lb..ub] 내에 있어야 함을 나타냅니다 . lb 와 ub는 모두 ub 보다 lb가 작은 float 숫자여야 합니다 .
이 메서드는 새 범위 제약 조건을 만들고 모델에 추가합니다.
매개변수:보고:반환 유형:레이즈:
|
새로 생성된 범위 제약 조건입니다. |
docplex.mp.constr.RangeConstraint |
lb 가 ub 보다 큰 경우 예외입니다 . |
모델에 SOS를 추가합니다.
매개변수:보고:
|
새롭게 추가된 SOS. |
유형 1의 SOS를 모델에 추가합니다.
매개변수:보고:
|
새롭게 추가된 SOS. |
유형 2의 SOS를 모델에 추가합니다.
매개변수:보고:
|
새롭게 추가된 SOS. |
문제에 하나의 사용자 컷 제약 조건을 추가합니다.
이 방법은 선형 제약 조건을 예상합니다.
매개변수:
|
New in version 2.10
add_user_cut_constraints(cut_cts, names=None)[source]Adds user cut constraints to the problem.
This method expects an iterable returning linear constraints (ranges are not accepted).
Parameters:
|
New in version 2.10
binary_var(name=None)[source]Creates a new binary decision variable and stores it in the model.
Parameters:Returns:Return type:name (string) – An optional name for the variable. |
A decision variable with type docplex.mp.vartype.BinaryVarType. |
docplex.mp.dvar.Var |
Creates a dictionary of binary decision variables, indexed by triplets.
Same as binary_var_matrix(), except that variables are indexed by triplets of the form (k1, k2, k3) with k1 in keys1, k2 in keys2, k3 in keys3.
Returns:A dictionary of docplex.mp.dvar.Var objects (with type docplex.mp.vartype.BinaryVarType) indexed by triplets. |
Creates a dictionary of binary decision variables, indexed by key objects.
Creates a dictionary that allows retrieval of variables from business model objects. Keys can be either a Python collection, an iterator, or a generator.
A key can be any Python object, with the exception of None. Keys are used in the naming of variables.
Note
If keys is empty, this method returns an empty dictionary. The returned dictionary should not be modified.
|
A dictionary of docplex.mp.dvar.Var objects with type docplex.mp.vartype.BinaryVarType indexed by the objects in keys. |
이진 결정 변수 목록을 생성하고 모델에 저장합니다.
매개변수:
|
예
각 키 문자열을 {}로 둘러싸려면 "_{%s}"라는 특수한 key_format을 사용하세요. %s는 키 문자열의 형식이 지정되고 name 에 추가될 위치를 나타 냅니다 .
보고:docplex.mp.dvar.Var유형이 있는 개체 목록입니다 doc.mp.vartype.BinaryVarType. |
예
mdl.binary_var_list(3, "z")는 이름이 z_0 , z_1 , z_2 인 세 개의 이진 결정 변수를 포함하는 크기 3의 목록을 반환합니다 .
binary_var_matrix( 키1 , 키2 , 이름=없음 , 키_형식=없음 )[원천]키 개체 쌍으로 인덱싱된 이진 결정 변수의 사전을 만듭니다.
두 키의 튜플에서 변수 검색을 허용하는 사전을 생성합니다. 첫 번째 키는 keys1 에서 , 두 번째 키는 키2 에서 가져옵니다 . 즉, 변수는 두 키 세트의 데카르트 곱으로 인덱싱됩니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.
메모
keys1 또는 keys2 중 하나가 비어 있으면 이 메서드는 빈 사전을 반환합니다.
|
k1 in keys1 및 k2 in keys2 와 함께 모든 쌍 (k1, k2)docplex.mp.dvar.Var 에 의해 인덱싱된 유형 의 객체 사전입니다 .docplex.mp.vartype.BinaryVarType |
이 속성은 의 인스턴스를 반환합니다 docplex.mp.vartype.BinaryVarType.
이 유형 인스턴스는 모델의 모든 이진 결정 변수 컬렉션을 빌드하는 데 사용됩니다.
blended_objective_values이 속성은 마지막 해결의 솔루션에서 우선 순위가 감소하는 순서를 기반으로 혼합 목적 표현식의 값 목록을 반환합니다.
모델이 성공적으로 해결되지 않은 경우 예외를 발생시킵니다.
버전 2.9의 새로운 기능.
build_multiobj_paramsets( timelimits=없음 , mipgaps=없음 )[원천]Creates a sequence containing pre-filled ParameterSet objects to be used with multi objective optimizationonly.Parameters:
|
Changes lower bounds for a collection of variables in one call.
Parameters:
|
The logic for checking new lower bounds is as follows: new bounds are checked if and only if check is True and the model checker is not ‘off’.
Example
>>> ivars = m.integer_var_list(3, lb=7)
>>> m.change_var_lower_bounds(ivars, [1,2,3]) # sets lower bounds to 1,2,3 resp.
New in 2.20
change_var_upper_bounds(dvars, ubs, check_bounds=True)[source]Changes upper bounds for a collection of variables in one call.
Parameters:
|
새 상한을 확인하는 논리는 다음과 같습니다. 새 경계는 check 가 True이고 모델 검사기가 'off'가 아닌 경우에만 확인됩니다 .
예
>>> ivars = m.integer_var_list(3, lb=7)
>>> m.change_var_upper_bounds(ivars, [101,102,103]) # sets upper bounds to 1,01,102,103 resp.
2.20의 새로운 기능
clear( )[원천]모든 모델링 개체의 모델을 지웁니다.
clear_constraints( )[원천]이 방법은 모델에서 모든 구속조건을 제거합니다.
clear_kpis( )[원천]모델에 정의된 모든 KPI를 지웁니다.
clear_lazy_constraints( )[원천]모델에서 모든 지연 제약 조건을 지웁니다.
버전 2.10의 새로운 기능
clear_mip_starts( )[원천]모델과 관련된 모든 MIP 시작을 지웁니다.
참고: 이렇게 하면 Model.add_mip_start 메서드 를 통해 사용자가 제공한 MIP 시작만 지워집니다 . 이것은 이전 해결에서 발견한 중간 솔루션을 제거하지 않습니다. 새로운 해결을 실행하고 이전 해결에 대한 모든 것을 잊으려면 clean_before_solve=True 키워드 인수를 사용하십시오.solv()
또한보십시오
다중 목표와 관련된 모든 항목을 지웁니다(있는 경우).
모델에 이전에 다중 목표가 정의된 경우 모델을 목표 0으로 재설정합니다. 모델이 다중 목표를 정의하지 않은 경우 이 방법은 아무 작업도 수행하지 않습니다.
버전 2.10의 새로운 기능
clear_progress_listeners( )[원천]모델에서 모든 진행 리스너를 제거합니다.
clear_sos( )[원천]모델의 모든 SOS 세트를 지웁니다.
clear_user_cut_constraints( )[원천]모델에서 모든 사용자 절단 구속조건을 지웁니다.
버전 2.10의 새로운 기능
clone( new_name=없음 , **clone_kwargs )[원천]Makes a deep copy of the model, possibly with a new name. Decision variables, constraints, and objective are copied.
Parameters:Returns:Return type:new_name (string) – The new name to use. If None is provided, returns a “Copy of xxx” where xxx is the original model name. |
A new model. |
docplex.mp.model.Model |
Creates a new continuous decision variable and stores it in the model.
Parameters:Returns:Return type:
|
A decision variable with type docplex.mp.vartype.ContinuousVarType. |
docplex.mp.dvar.Var |
Creates a dictionary of continuous decision variables, indexed by triplets of key objects.
Same as continuous_var_matrix(), except that variables are indexed by triplets of the form (k1, k2, k3) with k1 in keys1, k2 in keys2, k3 in keys3.
continuous_var_dict( 키 , lb=없음 , ub=없음 , 이름=없음 , key_format=없음 )[원천]주요 개체로 인덱싱된 연속 의사 결정 변수의 사전을 만듭니다.
비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.
메모
키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.
|
keys 의 객체로 인덱싱된 객체 사전 ( ContinuousVarTypedocplex.mp.dvar.Var 유형 포함 ) . |
또한보십시오
유형이 있는 연속 결정 변수 목록을 생성하고 docplex.mp.vartype.ContinuousVarType모델에 저장한 다음 목록을 반환합니다.
매개변수:
|
메모
키가 빈 목록 이거나 정수 0이면 빈 목록이 반환됩니다.
docplex.mp.dvar.Var유형이 있는 개체 목록입니다 docplex.mp.vartype.ContinuousVarType. |
또한보십시오
키 개체 쌍으로 인덱싱된 연속 의사 결정 변수의 사전을 만듭니다.
두 키의 튜플에서 변수 검색을 허용하는 사전을 만듭니다. 첫 번째 키는 keys1 에서 , 두 번째 키는 키2 에서 가져옵니다 . 즉, 변수는 두 키 세트의 데카르트 곱으로 인덱싱됩니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다.
인수 lb , ub , name 및 key_format 은 에서와 동일하게 해석됩니다 integer_var_dict().
continuous_vartype이 속성은 의 인스턴스를 반환합니다 docplex.mp.vartype.ContinuousVarType.
이 유형 인스턴스는 모델의 모든 연속 변수 컬렉션을 구축하는 데 사용됩니다.
cplex있는 경우 모델에서 사용하는 Cplex의 인스턴스를 리턴합니다.
CPLEX의 로컬 설치를 찾을 수 없는 경우 이 메소드는 예외를 발생시킵니다.,
보고:Cplex 인스턴스. |
버전 2.15의 새로운 기능
create_parameter_sets( )[원천]다목적 최적화에만 사용할 빈 ParameterSet 개체를 포함하는 시퀀스를 만듭니다 .
dot( 용어 , 계수 )[원천]의 동의어입니다 scal_prod().
dotf( var_dict , coef_fn , assume_alldifferent=True )[원천]변수 및 함수 사전에서 스칼라 곱을 만듭니다.
이 메서드는 dot 의 기능적 변형입니다 . xxx_var_dict 또는 xx_var_var_matrix(여기서 xxx는 유형임) 및 함수에 의해 반환되는 변수 사전을 인수로 사용합니다.
매개변수:보고:
|
사전에 있는 모든 변수의 스칼라 곱으로 작성된 표현식에 함수 결과를 곱한 것입니다. |
예
>>> m1 = m.binary_var_matrix(keys1=range(1,3), keys2=range(1,3), name='b')
>>> s = m.dotf(m1, lambda keys: keys[0] + keys[1])
2 b_1_1 + 3 b_1_2 +3 b_2_1 + 4 b_2_2 반환
dual_values( cts )[원천]일련의 선형 제약 조건의 이중 값을 반환합니다.
참고: 모델은 순수 LP여야 합니다. 정수 또는 이진 변수, 조각별, SOS가 없어야 합니다. 또한 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
매개변수:보고:cts – 일련의 선형 제약 조건. |
플로트 숫자 시퀀스 |
CPLEX SAV 형식으로 모델을 내보냅니다.
SAV 형식으로 내보내려면 CPLEX가 설치되어 있고 PYTHONPATH에서 사용할 수 있어야 합니다. CPLEX 런타임을 찾을 수 없으면 예외가 발생합니다.
매개변수:보고:
|
생성된 파일의 전체 경로 또는 오류가 발생한 경우 None입니다. |
예
export_as_lp()경로 이름 생성의 예는 문서를 참조하십시오 . 논리는 두 방법 모두 동일합니다.
end( )[원천]모델 인스턴스를 종료합니다.
이 메서드는 모델과 관련된 개체를 소멸시키므로 이 멤버 함수를 호출한 후에는 모델을 사용하면 안 됩니다. docplex.Model이 with 키워드 로 작성되지 않은 경우 리소스를 해제하기 위해 더 이상 CPLEX 엔진이 필요하지 않을 때 이 메소드를 호출해야 합니다 .
eq_constraint( lhs , rhs , 이름=없음 )[원천]상등 제약 조건을 만듭니다.
메모
이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.
|
의 인스턴스 docplex.mp.linear.LinearConstraint. |
새 등가 제약 조건을 만들고 반환합니다.
새로 생성된 등가 제약 조건은 모델에 추가되지 않습니다.
매개변수:보고:
|
새로 생성된 등가 제약 조건입니다. |
모델을 LP 형식으로 내보냅니다.
매개변수:보고:
|
생성된 파일의 전체 경로 또는 오류가 발생한 경우 None입니다. |
예
모델 이름이 mymodel 이라고 가정합니다 .
>>> m.export_as_lp()
mymodel.lp에 쓸 것입니다 gettempdir().
>>> m.export_as_lp(basename="foo")
foo.lp에 쓸 것입니다 gettempdir().
>>> m.export_as_lp(basename="foo", path="e:/home/docplex")
파일을 쓸 것입니다 e:/home/docplex/foo.lp.
>>> m.export_as_lp("e/home/docplex/bar.lp")
파일을 쓸 것입니다 e:/home/docplex/bar.lp.
>>> m.export_as_lp(basename="docplex_%s", path="e/home/")
파일을 쓸 것입니다 e:/home/docplex/docplex_mymodel.lp.
export_as_lp_string( hide_user_names=거짓 )[원천]모델을 LP 형식의 문자열로 내보냅니다.
출력 문자열에는 LP 형식의 모델이 포함됩니다.
매개변수:보고:hide_user_names – 변수 및 제약 조건에 대한 사용자 이름을 유지할지 여부를 나타내는 선택적 부울입니다. True이면 모든 이름이 변수의 경우 x1 , x2 , …로, 제약 조건의 경우 c1 , c2 , …로 바뀝니다. 기본값은 사용자 이름을 유지하는 것입니다. |
LP 형식으로 내보낸 모델을 포함하는 문자열입니다. |
모델을 MPS 형식으로 내보냅니다.
MPS 형식으로 내보내려면 CPLEX가 설치되어 있고 PYTHONPATH에서 사용할 수 있어야 합니다. CPLEX 런타임을 찾을 수 없으면 예외가 발생합니다.
매개변수:Returns:
|
The full path of the generated file, or None if an error occured. |
Examples
See the documentation of export_as_lp() for examples of pathname generation. The logic is identical for both methods.
export_as_mps_string()[source]Exports the model to a string in MPS format.
Returns:A string, containing the model exported in MPS format. |
New in version 2.13
export_as_sav(path=None, basename=None)[source]Exports a model in CPLEX SAV format.
Exporting to SAV format requires that CPLEX is installed and available in PYTHONPATH. If the CPLEX runtime cannot be found, an exception is raised.
Parameters:Returns:
|
The full path of the generated file, or None if an error occured. |
Examples
See the documentation of export_as_lp() for examples of pathname generation. The logic is identical for both methods.
export_as_sav_string()[source]Exports the model to a string of bytes in SAV format.
Returns:A string of bytes.. |
New in version 2.13
export_as_savgz(path=None, basename=None)[source]Exports a model in compressed SAV format.
SAV 압축 형식으로 내보내려면 CPLEX가 설치되어 있고 PYTHONPATH에서 사용할 수 있어야 합니다. CPLEX 런타임을 찾을 수 없으면 예외가 발생합니다.
인수 'path' 및 'basename'은 for 와 유사한 사용법을 갖습니다 export_as_lp().
보고:생성된 파일의 전체 경로 또는 오류가 발생한 경우 None입니다. |
예
export_as_lp()경로 이름 생성의 예는 문서를 참조하십시오 . 논리는 두 방법 모두 동일합니다.
2.19의 새로운 기능
export_priority_order_file( 경로=없음 , 기본 이름=없음 )[원천]CPLEX 우선 순위 순서 파일을 내보냅니다.
이 메소드에는 CPLEX 런타임이 필요합니다.
매개변수:보고:
|
작성된 파일의 전체 경로(성공한 경우, 그렇지 않은 경우 없음). |
버전 2.10의 새로운 기능
export_to_stream( 스트림 , hide_user_names=거짓 , format_spec='lp' )[원천]모델을 LP 형식의 출력 스트림으로 내보냅니다.
스트림은 다음 중 하나일 수 있습니다.- 시스템 경로로 해석되는 문자열,
- 없음, stdout 으로 해석 또는
- Python 파일 유형 객체(예: StringIO() 인스턴스).
|
이름에 주어진 문자열이 포함된 모든 선형 제약 조건을 찾습니다.
This method searches for all linear constraints whose name is not empty and contains the passed pattern string. Anonymous linear constraints are not considered.
Parameters:Returns:
|
A list of linear constraints. |
New in version 2.9
find_matching_quadratic_constraints(pattern, match_case=False)[source]Finds all quadratic constraints whose name contain a given string
This method searches for all quadratic constraints whose name is not empty and contains the passed pattern string. Anonymous constraints are not considered.
Parameters:Returns:
|
A list of quadratic constraints. |
New in version 2.23
find_matching_vars(pattern, match_case=False)[source]Finds all variables whose name contain a given string
이 메서드는 이름이 null이 아니고 전달된 pattern문자열을 포함하는 모든 변수를 검색합니다. 익명 변수는 고려되지 않습니다.
매개변수:보고:
|
결정 변수 목록입니다. |
이름이 정규 표현식과 일치하는 모든 변수를 찾습니다.
이 메소드는 주어진 정규 표현식과 일치하는 이름을 가진 모든 변수를 검색합니다. 익명 변수는 일치하는 것으로 간주되지 않습니다.
매개변수:보고:regexpr - din 모듈 정의와 같은 정규식re |
결정 변수 목록입니다. |
버전 2.9의 새로운 기능
float_precision이 속성은 모델의 부동 소수점 정밀도를 가져오거나 설정하는 데 사용됩니다.
부동 소수점 정밀도는 솔루션과 목적을 인쇄하는 데 사용되는 정수 자릿수입니다. 이 자릿수는 불연속적이지 않은 변수 및 표현식에 사용됩니다. 불연속 변수 및 목적은 소수점 이하 자릿수 없이 인쇄됩니다.
ge_constraint( lhs , rhs , 이름=없음 )[원천]"크거나 같음" 선형 제약 조건을 만듭니다.
메모
이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.
|
의 인스턴스 docplex.mp.linear.LinearConstraint. |
인덱스에서 선형 제약 조건을 검색합니다.
인덱스가 idx 인 선형 제약 조건 또는 None을 반환합니다. 이 인덱스에 제약 조건이 없으면 이 함수는 예외를 발생시키지 않습니다.
참고: 선형 제약 조건, 논리 제약 조건 및 2차 제약 조건에는 각각 별도의 인덱스 공간이 있음을 기억하십시오.
매개변수:보고:idx – 유효한 인덱스(0보다 큼). |
선형 제약 조건 또는 없음. |
이름에서 제약 조건을 검색합니다.
정확히 이 이름을 가진 제약 조건을 찾으면 제약 조건을 반환하고, 이 이름을 가진 제약 조건이 없으면 None을 반환합니다.
This function will not raise an exception if the named constraint is not found.
Note
The constraint name dicitonary in class Model is disabled by default. However, calling get_constraint_by_name will compute one dicitonary on the fly, but without warning for duplicate names. To enable the constraint name dicitonary from the start (and get duplicate constraint messages), add the cts_by_name keyword argument when creating the model, as in
>>> m = Model(name='my_model', cts_by_name=True)
This enables the constraint name dicitonary, and checks for duplicates when a named constraint is added.
name (str) – The name of the constraint being searched for. |
A constraint or None. |
Returns the instance of Cplex used by the model, if any.
CPLEX의 로컬 설치를 찾을 수 없는 경우 이 메소드는 매개변수 do_raise가 True인 경우 예외를 발생시키 거나 그렇지 않은 경우 None을 리턴합니다.
매개변수:do_raise – 선택적 플래그: True인 경우 Cplex 인스턴스를 사용할 수 없을 때 예외를 발생시키고, 그렇지 않으면 None을 반환합니다. |
또한보십시오
'cplex' 속성은 get_cplex()do_raise=True로 호출합니다.
Cplex의 인스턴스 또는 None. |
dict(type -> number) 형식으로 컷 수를 반환합니다.
참고: 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
보고:dict(type -> number) 형식의 컷 수. |
특정 유형의 컷 수를 반환합니다.
참고: 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
매개변수:보고:cut_type – 절단 유형. |
이 절단 유형과 연관된 절단 수. |
이 메서드는 모델 목표로 사용되는 표현식을 반환합니다.
메모
기본 목표는 상수 0 표현식입니다.
표현. |
CPLEX ID 코드에서 매개변수를 찾습니다.
매개변수:보고:parameter_cpx_id – CPLEX 매개변수 ID(양의 정수, 예를 들어 2009는 mipgap임). |
발견된 경우 인스턴스 docplex.mp.params.parameters.Parameter, 그렇지 않으면 없음. |
인덱스에서 2차 제약 조건을 검색합니다.
인덱스가 idx 인 2차 제약 조건 또는 None을 반환합니다. 이 인덱스에 제약 조건이 없으면 이 함수는 예외를 발생시키지 않습니다.
참고: 선형 제약 조건, 논리 제약 조건 및 2차 제약 조건에는 각각 별도의 인덱스 공간이 있음을 기억하십시오. 따라서 모델은 선형 제약 조건과 지수가 0인 2차 제약 조건을 모두 포함할 수 있습니다.
매개변수:보고:idx – 유효한 인덱스(0보다 큼). |
2차 제약 조건 또는 없음. |
마지막으로 성공한 해결의 해결 상태를 반환합니다.
모델이 성공적으로 해결된 경우 모델 솔루션에 저장된 상태를 반환합니다. 그렇지 않으면 None을 반환합니다.
보고:마지막으로 성공한 해결의 해결 상태, docplex.utils.JobSolveStatus 유형의 열거된 값 |
참고: Cplex에서 반환된 상태는 모델의 solve_details에 상태 로 저장됩니다 .
>>> m.solve_details.status
또한보십시오
docplex.mp.SolveDetails.status()Cplex 상태를 문자열(예: "최적")로 가져오고 docplex.mp.SolveDetails.status_code()Cplex 상태를 정수 코드로 가져옵니다.
모델의 시간 제한입니다. |
이름에서 변수를 검색합니다.
정확히 이 이름을 가진 변수를 찾으면 변수를 반환하거나 None을 반환합니다.
매개변수:보고:name ( str ) – 검색 중인 변수의 이름입니다. |
변수( 인스턴스 docplex.mp.dvar.Var) 또는 없음. |
모델에 기본 정보가 포함되어 있으면 True를 반환합니다.
버전 2.9의 새로운 기능
has_multi_objective( )[원천]모델에 다중 목표가 정의되어 있으면 True를 반환합니다.
버전 2.10의 새로운 기능
if_then( if_ct , then_ct , 부정=거짓 )[원천]if-then 제약 조건을 만들고 반환합니다.
if-then 제약 조건은 ct1이 충족되면 ct2도 충족되도록 두 제약 조건 ct1, ct2를 연결합니다.
매개변수:보고:
|
모델에 추가되지 않은 IfThenConstraint의 인스턴스. Model.add_constraint() 또는 Model.add()를 사용하여 모델에 추가하십시오. |
메모
이 제약 조건은 if_ct 제약 조건 의 상태에 의존하므로 이 제약 조건은 불연속적이어야 합니다. 그렇지 않으면 예외가 발생합니다.
이 속성은 모델의 모든 이름을 무시하는 데 사용됩니다.
이 플래그는 이름이 사용되는지 여부를 나타냅니다. True로 설정하면 모든 이름이 무시됩니다. 이는 대형 모델을 구축할 때 성능 향상으로 이어질 수 있습니다. 이 플래그의 기본값은 False입니다. 값을 변경하려면 다음과 같이 Model 인스턴스를 생성할 때 키워드 인수로 추가하십시오.
>>> m = Model(name="my_model", ignore_names=True)
메모
모델 인스턴스가 ignore_names=True 로 생성되면 해당 이름을 복원할 방법이 없습니다. 이 플래그는 모델을 빌드하는 동안 이름 생성을 활성화 또는 비활성화할 수만 있습니다.
다른 모델에서 솔루션을 가져옵니다.
솔루션 모델에서 대상 모델로 이름, 인덱스 또는 기타 사용자 지정 방식으로 변수를 매핑하는 방법이 있어야 합니다. 가장 간단한 경우는 다른 모델이 대상 모델의 복제본인 경우입니다. 이 경우 인덱스 기반 매핑이 사용됩니다.
매개변수:보고:
|
SolveSolution소스 모델에서 대상 모델로 매핑된 값 및 변수에서 대상 모델에 빌드된 솔루션 개체 인스턴스 입니다 . |
버전 2.21의 새로운 기능
indicator_constraint( binary_var , linear_ct , active_value=1 , name=None )[원천]새로운 지표 제약을 생성하고 반환합니다.
표시기 제약 조건은 모델에 추가되지 않습니다.
매개변수:보고:
|
새로 생성된 표시기 제약 조건입니다. |
이 속성은 연속 결정 변수의 상한값으로 사용되는 숫자 값을 반환합니다.
메모
CPLEX는 일반적으로 이 한계를 1e+20으로 설정합니다.
DOcplex에 대해 numpy를 사용자 지정하는 정적 메서드입니다 .
이 방법은 numpy가 DOcplex를 인식하도록 합니다. DOcplex 객체가 있는 모든 numpy 배열은 표준 numpy 동작과 같이 repr() 대신 str () 에 의해 반환되는 문자열 표현으로 인쇄됩니다 .
메서드 를 호출하여 모든 사용자 지정을 제거할 수 있습니다 restore_numpy().
메모
이 메서드는 numpy 가 없으면 아무 작업도 수행하지 않습니다.
또한보십시오
새 정수 변수를 생성하고 모델에 저장합니다.
매개변수:보고:반환 유형:
|
IntegerVarTypedocplex.mp.dvar.Var 유형 의 클래스 인스턴스입니다 . |
docplex.mp.dvar.Var |
세 쌍으로 인덱싱된 정수 결정 변수의 사전을 만듭니다.
와 동일하지만 변수는 키1 에 k1 , 키2 에 k2 , 키 3 에 k3 이 있는 (k1, k2, k3)integer_var_matrix() 형식의 3중항으로 인덱싱됩니다 .
또한보십시오
키 개체로 인덱싱된 정수 결정 변수의 사전을 만듭니다.
비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.
메모
키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.
|
A dictionary of docplex.mp.dvar.Var objects (with type IntegerVarType) indexed by the objects in keys. |
See also
Creates a list of integer decision variables with type IntegerVarType, stores them in the model, and returns the list.
Parameters:
|
메모
없음을 하한으로 사용하면 기본 하한(0)이 사용됩니다. 없음을 상한으로 사용하면 기본 상한(모델의 양의 무한대)이 사용됩니다.
IntegerVarTypedoc.mp.linear.Var 유형의 객체 목록입니다 . |
예
>>> m.integer_var_list(3, name="ij")
returns a list of three integer variables from 0 to 1e+20, named ij_0, ij_1, ij_2.
The default behavior, when a string argument is passed as name,
is to concatenate the string , a "-" separator and a string representation
of the key; this allows to build arbitrary name strings from keys.
>>> m.integer_var_list(3, name=lambda i: "__name_{}__".format(i))
uses a functional name argument, producing names: "__name_0__",
"__name_1__", "_name__2__".
>>> m.integer_var_list(3, name="q", lb=1, ub=100)
returns a list of three integer variables from 1 to 100, named q_0, q_1, q_3
>>> m.integer_var_list([1,2,3], name="q", lb=lambda k: k, ub=lambda k: k*k+1)
returns a list of three integer variables q_1[1,1**1 +1], q2[2, 2*2+1], q3[3, 3*3+1]
마지막 예는 기능적 lb 및 ub를 사용하여 키에 의존하는 범위를 계산합니다.
integer_var_matrix( 키1 , 키2 , lb=없음 , ub=없음 , 이름=없음 , key_format=없음 )[원천]키 개체 쌍으로 인덱싱된 정수 결정 변수의 사전을 만듭니다.
두 키의 튜플에서 변수 검색을 허용하는 사전을 생성합니다. 첫 번째 키는 keys1 에서 , 두 번째 키는 키2 에서 가져옵니다 . 즉, 변수는 두 키 세트의 데카르트 곱으로 인덱싱됩니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다.
인수 lb , ub , name 및 key_format 은 in 으로 해석됩니다 integer_var_dict().
integer_vartype이 속성은 의 인스턴스를 반환합니다 docplex.mp.vartype.IntegerVarType.
이 유형 인스턴스는 모델의 모든 정수 변수 컬렉션을 빌드하는 데 사용됩니다.
is_maximized( )[원천]모델이 최대화 모델인지 확인합니다.
메모
최대화할 표현식이 상수인 경우에도 True를 반환합니다. 모델에 상수가 아닌 목적이 있는지 확인하려면 를 사용하십시오 is_optimized().
모델이 최대화 모델인 경우 참입니다. |
부울 |
모델이 최소화 모델인지 확인합니다.
메모
최소화할 표현식이 상수인 경우에도 True를 반환합니다. 모델에 상수가 아닌 목적이 있는지 확인하려면 를 사용하십시오 is_optimized().
모델이 최소화 모델인 경우 True입니다. |
부울 |
모델에 상수가 아닌 객관적 표현이 있는지 확인합니다.
일정한 목표를 가진 모델은 해결될 때 실현 가능한 솔루션만 검색합니다. 이는 모델에 목표가 지정되지 않았거나 목표가 로 제거된 경우에 발생합니다 remove_objective().
보고:반환 유형:모델에 일정하지 않은 객관적 표현이 있는 경우 참입니다. |
부울 |
모델의 이진 제약 조건(expr1 <op> expr2)에 대한 반복자를 반환합니다. 여기에는 범위 제한이 포함되지 않습니다.
보고:반복자 개체입니다. |
모델의 모든 이진 결정 변수를 반복합니다.
모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
모든 제약 조건(선형, 범위, 표시기)을 반복합니다.
보고:모델의 모든 제약 조건에 대한 반복자 개체입니다. |
모델의 모든 연속 결정 변수를 반복합니다.
모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
모델의 등가 제약 조건에 대한 반복자를 반환합니다.
보고:반복자 개체입니다. |
모델의 표시기 제약 조건에 대한 반복자를 반환합니다.
보고:반복자 개체입니다. |
모델의 모든 정수 결정 변수를 반복합니다.
모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
모델의 모든 KPI에 대한 반복자를 반환합니다.
보고:반복자 개체입니다. |
모델의 게으른 제약 조건에 대한 반복자를 반환합니다.
보고:게으른 제약 조건에 대한 반복자. |
버전 2.10의 새로운 기능
iter_linear_constraints( )[원천]모델의 선형 제약 조건에 대한 반복자를 반환합니다. 여기에는 이진 선형 제약 조건 및 범위가 포함되지만 지표는 포함되지 않습니다.
보고:반복자 개체입니다. |
모델.
크기 2의 튜플을 반환합니다.- 첫 번째 요소는 솔루션( 의 인스턴스 docplex.mp.solution.SolveSolution) 입니다.
- 두 번째는 유형의 열거 값입니다.docplex.mp.constants.EffortLevel
버전 2.10의 새로운 기능
iter_progress_listeners( )[원천]모델에 연결된 진행 리스너의 반복자를 반환합니다.
보고:반복자. |
모델의 모든 PWL 제약 조건을 반복합니다.
보고:반복자 개체입니다. |
모델의 모든 조각별 선형 함수를 반복합니다.
모델에 추가된 순서대로 PWL 함수를 반환합니다.
보고:반복자 개체입니다. |
모델의 2차 제약 조건에 대한 반복자를 반환합니다.
보고:반복자 개체입니다. |
모델의 범위 제약에 대한 반복자를 반환합니다.
보고:반복자 개체입니다. |
모델의 모든 반연속 결정 변수를 반복합니다.
모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
모델의 모든 반정수 결정 변수를 반복합니다.
모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
모델의 모든 SOS 세트를 반복합니다.
보고:반복자 개체입니다. |
모델의 모든 SOS1 세트를 반복합니다.
보고:반복자 개체입니다. |
모델의 모든 SOS2 세트를 반복합니다.
보고:반복자 개체입니다. |
모델의 사용자 절단 제약 조건에 대한 반복자를 반환합니다.
보고:사용자 절단 제약 조건의 반복자. |
버전 2.10의 새로운 기능
iter_variables( )[원천]모델의 모든 변수를 반복합니다.
유형에 관계없이 모델에 추가된 순서대로 변수를 반환합니다.
보고:반복자 개체입니다. |
문자열에서 KPI를 가져옵니다.
이 메서드는 정확한 이름 지정을 사용하거나 KPI 이름의 하위 문자열과 일치시키려고 시도하여 문자열에서 KPI를 가져옵니다.
매개변수:
|
예
KPI 이름이 "총 CO2 비용"인 경우 인수 co2 및 match_case를 False로 가져오는 작업이 성공합니다. match_case 가 True 이면 KPI가 반환되지 않습니다.
보고:발견된 경우 KPI 표현식입니다. 검색에 실패하면 예외가 발생하거나 0이 포함된 더미 상수 표현식을 반환합니다. |
KPI 이름에서 KPI 값을 반환합니다.
이 메서드는 정확한 이름 지정을 사용하거나 KPI 이름의 하위 문자열과 일치시키려고 시도하여 문자열에서 KPI 값을 가져옵니다.
매개변수:
|
예
KPI 이름이 "총 CO2 비용"인 경우 인수 co2 및 match_case를 False로 가져오는 작업이 성공합니다. match_case 가 True 이면 KPI가 반환되지 않습니다.
메모
KPI에는 평가할 솔루션이 필요합니다. 이 솔루션은 매개변수로 명시적으로 전달되거나 모델이 유효한 솔루션으로 해결되는 것으로 가정됩니다.
KPI 값입니다. |
뜨다 |
또한보십시오
docplex.mp.solution.SolveSolution new_solution()
솔루션의 KPI 값을 사전으로 반환합니다.
각 KPI에는 솔루션의 가치가 있습니다. 이 메서드는 KPI 개체로 인덱싱된 KPI 값의 사전을 반환합니다.
매개변수:Returns:
|
A dictionary mapping KPIs, or KPI names to values. |
See also
Creates a “less than or equal to” linear constraint.
Note
이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.
|
의 인스턴스 docplex.mp.linear.LinearConstraint. |
선형 제약 조건을 생성합니다.
메모
이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.
|
의 인스턴스 docplex.mp.linear.LinearConstraint. |
선형 제약 조건의 배치에 대한 기본 상태를 반환합니다.
매개변수:보고:lcts – 반복 가능한 선형 제약 조건 반환. |
유형의 기본 상태 목록 docplex.mp.constants.BasisStatus. 목록의 순서는 iterable이 제약 조건을 반환한 순서입니다. |
버전 2.10의 새로운 기능
linear_expr( 인수=없음 , 상수=0 , 이름=없음 )[원천]새로운 빈 선형 표현식을 반환합니다.
매개변수:보고:arg – 선형 표현식으로 변환하기 위한 선택적 인수. Detailt는 None이며 이 경우 빈 표현식이 반환됩니다. |
의 인스턴스 docplex.mp.linear.LinearExpr. |
해당 인수의 논리 AND 값과 동일한 표현식을 작성합니다.
이 방법은 가변 개수의 인수를 사용하고 이진 변수, 기타 논리식 또는 불연속 제약 조건을 허용합니다.
매개변수:args – 논리 피연산자의 변수 목록입니다. |
메모
빈 개수의 인수가 전달된 경우 이 메서드는 1과 같은 표현식입니다.
모든 인수가 1인 경우에만 1이고 그렇지 않은 경우 0인 식입니다. |
또한보십시오
예:
# return logical XOR or two binary variables.
def logxor(m, b1, b2):
return m.logical_and(m.logical_or(b1, b2), m.logical_not(m.logical_and(b1, b2)))
해당 인수의 논리적 부정과 동일한 표현식을 작성합니다.
이 메서드는 이진 변수 또는 다른 논리식을 허용합니다.
매개변수:보고:arg – 이진 변수 또는 논리식(예: logical_and, logical_or, logical_not에 의해 작성된 식) |
인수가 0이면 1이고 그렇지 않으면 0인 식입니다. |
또한보십시오
해당 인수의 논리 OR 값과 동일한 표현식을 작성합니다.
이 메서드는 가변 개수의 인수를 사용하며 다음을 허용합니다.이진 변수, 기타 논리식 또는 불연속 제약 조건.매개변수:args – 논리 피연산자의 변수 목록입니다. |
메모
빈 수의 인수가 전달된 경우 이 메서드는 0 표현식입니다.
다음 중 적어도 하나인 경우에만 1과 같은 표현식인수는 1이고 그렇지 않으면 0입니다. |
또한보십시오
버전 2.11의 새로운 기능
lp_line_length이 속성을 사용하면 DOcplex에서 생성된 LP 파일의 최대 줄 길이를 가져오거나 설정할 수 있습니다. 기본값은 80입니다.
lp_string버전 2.11의 새로운 기능
이 속성은 모델을 LP 형식으로 인코딩하는 문자열을 반환합니다.
버전 2.16의 새로운 기능
max( *인수 )[원천]해당 인수의 최대값과 동일한 표현식을 작성합니다.
이 메서드는 가변 개수의 인수를 허용합니다.
매개변수:args – 각각 표현식, 변수 또는 컨테이너인 인수의 변수 목록입니다. |
컨테이너 또는 반복자가 전달된 경우 이 컨테이너 또는 반복자는 고유한 인수여야 합니다.
하나의 사전을 전달하면 사전 값의 최대값을 반환합니다.
인수가 제공되지 않으면 음의 무한대를 반환합니다( 참조 infinity).
예
model.max() -> -model.infinity 를 반환합니다 .
model.max(e) -> e 를 반환합니다 .
model.max(e1, e2, e3) -> e1 , e2 , e3 값의 최대값과 동일한 새 표현식을 반환합니다 .
model.max([x1,x2,x3]) 여기서 x1 , x2 ..는 변수 또는 표현식입니다. -> 이러한 표현식의 최대값을 반환합니다.
model.max([]) -> -model.infinity 를 반환합니다 .
메모
식을 작성하면 이진 결정 변수를 포함하여 보조 변수가 생성되며 이로 인해 문제의 특성이 LP에서 MIP로 변경될 수 있습니다.
최대화할 표현식으로 표현식을 설정합니다.
인수는 선형 표현식으로 변환됩니다. 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.
매개변수:expr – 선형 표현식 또는 변수. |
사전식 해석에서 최대화할 표현식 목록을 설정합니다. exprs는 최대화되는 목적 함수의 정렬된 시퀀스를 정의합니다.
인수는 선형 표현식 목록으로 변환됩니다. 목록 요소에 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.
경고
이 방법에는 CPLEX 12.9 이상이 필요합니다.
|
버전 2.9의 새로운 기능
min( *인수 )[원천]해당 인수의 최소값과 동일한 표현식을 작성합니다.
이 메서드는 가변 개수의 인수를 허용합니다.
인수가 제공되지 않으면 양의 무한대를 반환합니다( 참조 infinity).
매개변수:args – 각각 표현식, 변수 또는 컨테이너인 인수의 변수 목록입니다. |
컨테이너 또는 반복자가 전달된 경우 이 컨테이너 또는 반복자는 고유한 인수여야 합니다.
하나의 사전이 전달되면 사전 값의 최소값을 반환합니다.
보고:산술 연산자 및 제약 조건에서 사용할 수 있는 표현식입니다. |
예
model.min() -> model.infinity 를 반환합니다 .
model.min(e) -> e 를 반환합니다 .
model.min(e1, e2, e3) -> e1 , e2 , e3 값의 최소값과 동일한 새 표현식을 반환합니다 .
model.min([x1,x2,x3]) 여기서 x1 , x2 ..는 변수 또는 표현식입니다. -> 이러한 표현식의 최소값을 반환합니다.
model.min([]) -> model.infinity 를 반환합니다 .
메모
식을 작성하면 이진 결정 변수를 포함하여 보조 변수가 생성되며 이로 인해 문제의 특성이 LP에서 MIP로 변경될 수 있습니다.
최소화할 표현식으로 표현식을 설정합니다.
인수는 선형 표현식으로 변환됩니다. 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.
매개변수:expr – 선형 표현식 또는 변수. |
사전식 해석에서 최소화할 표현식 목록을 설정합니다. exprs는 최소화된 목적 함수의 정렬된 시퀀스여야 합니다.
인수는 선형 표현식 목록으로 변환됩니다. 목록 요소에 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.
경고
이 방법에는 CPLEX 12.9 이상이 필요합니다.
|
버전 2.9의 새로운 기능
mip_startsdocplex.mp.solution.SolveSolution이 속성은 MIP 시작이 정의된 경우 모델에 연결된 MIP 시작 솔루션 목록( 의 인스턴스 목록)을 반환합니다 . 빈 목록일 수 있습니다.
multi_objective_values이 속성은 마지막 풀이 솔루션의 목표 표현식 값 목록을 반환합니다.
모델이 성공적으로 해결되지 않은 경우 예외를 발생시킵니다.
버전 2.9의 새로운 기능
name이 속성은 모델 이름을 가져오거나 설정하는 데 사용됩니다.
number_of_binary_variables이 속성은 모델에 추가된 총 이진 결정 변수 수를 반환합니다.
number_of_constraints이 속성은 모델에 추가된 총 제약 조건 수를 반환합니다.
숫자에는 선형 제약 조건, 범위 제약 조건 및 표시기 제약 조건이 포함됩니다.
number_of_continuous_variables이 속성은 모델에 추가된 연속 결정 변수의 총 수를 반환합니다.
number_of_equivalence_constraints이 속성은 모델의 등가 제약 조건 수를 반환합니다.
number_of_indicator_constraints이 속성은 모델의 지표 제약 조건 수를 반환합니다.
number_of_integer_variables이 속성은 모델에 추가된 총 정수 결정 변수 수를 반환합니다.
number_of_lazy_constraints모델에 존재하는 게으른 제약 조건의 수를 반환합니다.
number_of_linear_constraints이 속성은 모델에 추가된 총 선형 제약 조건 수를 반환합니다.
이진 선형 제약 조건(<=, >= 또는 ==) 및 범위 제약 조건을 계산합니다.
number_of_mip_starts이 속성은 모델과 연결된 MIP 시작 수를 반환합니다.
버전 2.10의 새로운 기능
number_of_progress_listeners모델에 첨부된 진행 리스너의 수를 반환합니다.
보고:정수 |
이 속성은 모델의 총 PWL 제약 조건 수를 반환합니다.
number_of_quadratic_constraints이 속성은 모델의 2차 제약 조건 수를 반환합니다.
number_of_range_constraints이 속성은 모델에 추가된 총 범위 제약 조건 수를 반환합니다.
number_of_semicontinuous_variables이 속성은 모델에 추가된 반연속 결정 변수의 총 수를 반환합니다.
number_of_semiinteger_variables이 속성은 모델에 추가된 반정수 결정 변수의 총 수를 반환합니다.
number_of_sos이 속성은 모델의 총 SOS 세트 수를 반환합니다.
number_of_sos1이 속성은 모델의 총 SOS1 집합 수를 반환합니다.
number_of_sos2이 속성은 모델의 총 SOS2 집합 수를 반환합니다.
number_of_user_constraints이 속성은 생성된 제약 조건을 포함하지 않고 모델에 명시적으로 추가된 총 제약 조건 수를 반환합니다.
숫자에는 모든 유형의 구속조건이 포함됩니다.
number_of_user_cut_constraints모델에 존재하는 사용자 컷 제약 조건의 수를 반환합니다.
버전 2.10의 새로운 기능
number_of_variables이 속성은 모든 유형이 결합된 총 결정 변수 수를 반환합니다.
objective_coef( dvar )[원천]변수의 목적 계수를 반환합니다.
목적 계수는 모델의 목적 표현에서 주어진 변수의 계수입니다. 변수가 목표에 명시적으로 언급되지 않은 경우 0을 반환합니다.
매개변수:보고:반환 유형:dvar – 목적 계수를 계산할 결정 변수입니다. |
변수의 목적 계수입니다. |
뜨다 |
이 속성은 모델 목표로 사용되는 표현식을 가져오거나 설정하는 데 사용됩니다.
objective_sensedocplex.mp.basic.ObjectiveSense이 속성은 최소화 또는 최대화 의 인스턴스로 최적화 방향을 가져오거나 설정하는 데 사용됩니다 .
이 속성은 또한 문자열을 인수로 허용합니다. 최소화의 경우 'min', 최대화의 경우 'max'입니다.
objective_value이 속성은 마지막 해결 솔루션의 목적 표현식 값을 반환합니다. 다중 목표의 경우 첫 번째 목표의 값만 반환됩니다.
모델이 성공적으로 해결되지 않은 경우 예외를 발생시킵니다.
parameters이 속성은 모델의 루트 매개변수 그룹을 반환합니다.
루트 파라미터 그룹은 파라미터 계층 구조를 모델링합니다. CPLEX 매개변수에 액세스하고 해당 값을 가져오거나 설정하는 방법입니다.
예
model.parameters.mip.tolerances.mipgap
Parameter 클래스 의 인스턴스인 매개변수 자체를 반환합니다 .
To get the value of the parameter, use the get() method, as in:
model.parameters.mip.tolerances.mipgap.get()
>>> 0.0001
To change the value of the parameter, use a standard Python assignment:
model.parameters.mip.tolerances.mipgap = 0.05
model.parameters.mip.tolerances.mipgap.get()
>>> 0.05
Assignment is equivalent to the set() method:
model.parameters.mip.tolerances.mipgap.set(0.02)
model.parameters.mip.tolerances.mipgap.get()
>>> 0.02
The root parameter group, an instance of the ParameterGroup class. |
Adds a piecewise linear function (PWL) to the model, using breakpoints to specify the function.
Parameters:
|
예:
# Creates a piecewise linear function whose value if '0' if the `x_value` is `0`, with a slope
# of -1 for negative values and +1 for positive value
model = Model('my model')
model.piecewise(-1, [(0, 0)], 1)
# Note that a PWL function may be discontinuous. Here is an example of a step function:
model.piecewise(0, [(0, 0), (0, 1)], 0)
새로 추가된 부분 선형 함수. |
기울기 및 x 좌표 목록을 사용하여 모델에 구분 선형 함수(PWL)를 추가합니다.
매개변수:
|
예:
# Creates a piecewise linear function whose value if '0' if the `x_value` is `0`, with a slope
# of -1 for negative values and +1 for positive value
model = Model('my model')
model.piecewise_as_slopes([(-1, 0)], 1, (0, 0))
# Here is the definition of a step function to illustrate the case of a discontinuous PWL function:
model.piecewise_as_slopes([(0, 0), (0, 1)], 0, (0, 0))
새로 추가된 부분 선형 함수. |
솔루션 풀을 채우고 반환합니다.
솔루션 풀 개체를 반환하거나 모델 해결이 실패하면 None을 반환합니다.
이 메서드는 와 동일한 키워드 인수를 허용합니다 Model.solve(). Model.solve()자세한 내용은 의 문서를 참조하십시오 .
보고:docplex.mp.solution.SolutionPool또는 None 의 인스턴스 . |
또한보십시오
버전 2.16의 새로운 기능
populate_solution_pool( **kwargs )[원천]솔루션 풀을 채우고 반환합니다.
솔루션 풀 개체를 반환하거나 모델 해결이 실패하면 None을 반환합니다.
이 메서드는 와 동일한 키워드 인수를 허용합니다 Model.solve(). Model.solve()자세한 내용은 의 문서를 참조하십시오 .
보고:docplex.mp.solution.SolutionPool또는 None 의 인스턴스 . |
또한보십시오
버전 2.16의 새로운 기능
print_information( )[원천]모델에 대한 일반 정보 통계를 인쇄합니다.
변수의 수와 유형별 분석을 인쇄합니다. 제약 조건의 수와 유형별 분류를 인쇄합니다.
print_solution( print_zeros=False , solution_header_fmt=없음 , var_value_fmt=없음 , **kwargs )[원천]Prints the values of the model variables after a solve.
Only valid after a successful solve. If the model has not been solved successfully, an exception is raised.
Parameters:
|
See also
docplex.mp.solution.SolveSolution.display()
Returns a string describing the type of problem.
This method requyires that CPLEX is installed and available in PYTHONPATH. If the CPLEX runtime cannot be found, an exception is raised.
Possible values: LP, MILP, QP, MIQP, QCP, MIQCP,
quad_expr(name=None)[source]New in version 2.20
Returns a new empty quadratic expression.
Returns:An empty instance of docplex.mp.quad.QuadExpr. |
Returns quadratic dual slacks as a dict of dicts.
Can be called in two forms: either with no arguments, in which case it returns quadratic dual slacks for all quadratic constraints in the model, or with a list of quadratic constraints. In this case it returns only quadratic dual slacks for those constraints
Parameters:Returns:args – accepts either no arguments,or a list of quadratic constraints. |
a Python dictionary, whose keys are quadratic constraints, and values are dictionaries from variables to quadratic dual slacks. |
New in version 2.15
quality_metrics이 플래그는 CPLEX 품질 메트릭이 해결 세부사항에 저장되는지 여부를 제어합니다. 기본값은 품질 메트릭을 저장하지 않는 것입니다.
버전 2.10의 새로운 기능
range_constraint( lb , expr , ub , rng_name=없음 )[원천]새 범위 제약 조건을 생성하지만 모델에 추가하지는 않습니다.
범위 제약 조건은 선형 표현식이 간격 [lb..ub] 내에 있어야 함을 나타냅니다 . lb 와 ub는 모두 ub 보다 작은 lb를 갖는 부동 소수점 숫자여야 합니다 .
이 방법은 새 범위 제약 조건을 생성하지만 모델에 추가하지는 않습니다.
매개변수:보고:레이즈:
|
새로 생성된 범위 제약 조건입니다. |
lb 가 ub 보다 큰 경우 예외입니다 . |
CPLEX 기반 상태 파일을 읽습니다.
이 메소드에는 CPLEX 런타임이 필요합니다.
매개변수:bas_path – 기본 파일의 경로(확장자는 '.bas') |
버전 2.10의 새로운 기능
read_mip_starts( mst_path )[원천]읽기 MIP는 파일에서 시작됩니다.
파일을 읽고 (솔루션, 노력 수준) 튜플 목록을 반환합니다.
매개변수:보고:mst_path – mip 시작 파일의 경로(CPLEX MST 파일 형식) |
크기 2의 튜플 목록; 첫 번째 요소는 SolveSolution 의 인스턴스 이고 두 번째 요소는 EffortLevel 유형의 열거된 값입니다. |
- 버전 2.10의 새로운 기능*
CPLEX 우선 순위 순서 파일을 읽습니다.
이 메소드에는 CPLEX 런타임이 필요합니다.
매개변수:ord_path – 우선 순위 파일의 경로(확장자는 '.ord') |
버전 2.10의 새로운 기능
reduced_costs( dvars )[원천]iterable 변수의 감소된 비용을 반환합니다.
매개변수:보고:참고: 모델은 순수 LP여야 합니다. 정수 또는 이진 변수, 조각별, SOS가 없어야 합니다. 또한 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
dvars – 일련의 변수. |
변수 시퀀스와 동일한 순서로 부동 숫자 목록. |
이 방법은 모델에서 제약 조건 또는 제약 조건 컬렉션을 제거합니다.
매개변수:제거됨 – 제약 조건 또는 제약 조건(선형, 범위, 2차, 표시기)에 대한 반복 가능 항목을 수용합니다. |
모델에서 구속조건을 제거합니다.
매개변수:ct_arg – 제거할 제약 조건입니다. 제약 조건 개체 또는 문자열을 허용합니다. 문자열이 전달되면 해당 이름의 제약 조건을 찾습니다. |
이 방법은 모델에서 제약 조건 배치를 제거합니다.
매개변수:cts – 반복 가능한 제약 조건(선형, 범위, 2차, 지표) |
모델에서 핵심 성과 지표를 제거합니다.
매개변수:kpi_arg – 이전에 모델에 추가된 KPI 인스턴스입니다. KPI 개체 또는 문자열을 허용합니다. 문자열이 전달되면 해당 이름의 KPI를 찾습니다. |
현재 목표를 지웁니다.
이는 "최소화 0"을 설정하는 것과 같습니다. 후속 해결은 실행 가능한 솔루션만 찾습니다. has_objective()모델을 호출하여 이 상태를 감지할 수 있습니다 .
remove_progress_listener( 청취자 )[원천]모델에서 진행 리스너를 제거합니다.
매개변수:청취자 – |
목표 및 KPI의 값을 인쇄합니다. 성공적으로 해결한 후에만 유효하며, 그렇지 않으면 모델이 해결되지 않았음을 나타냅니다.
report_kpis( 솔루션=없음 , selected_kpis=없음 , kpi_format='* KPI: {1:<{0}} = ' )[원천]Prints the values of the KPIs.
KPIs require a solution to be evaluated. This solution can be passed explicitly as a parameter, or the model is assumed to be solved with a valid solution.
Parameters:
|
See also
docplex.mp.solution.SolveSolution new_solution()
Static method to restore numpy to its default state.
이 방법은 init_numpy(). numpy를 원래 상태로 복원하고 DOcplex에 대해 수행된 모든 사용자 지정을 취소합니다.
메모
이 메서드는 numpy가 없으면 아무 작업도 수행하지 않습니다.
또한보십시오
이 플래그는 정수 및 불연속 변수 값이 솔루션에서 반올림되는지 여부를 제어합니다. 반올림하지 않으면 이진 변수의 솔루션 값이 0.99999를 반환하는 경우가 발생할 수 있습니다. 기본값은 불연속 값을 반올림하지 않는 것입니다.
버전 2.15의 새로운 기능
scal_prod( 용어 , 계수 )[원천]결정 변수 시퀀스와 계수 시퀀스의 스칼라 곱과 같은 선형 표현식을 생성합니다.
이 메서드는 두 인수에 대해 서로 다른 유형의 입력을 허용합니다. term은 반복 가능한 반환 표현식 또는 변수가 될 수 있으며 coefs는 일반적으로 반복 가능한 반환 숫자입니다. cal_prod는 또한 하나의 숫자를 coefs 로 받아들입니다 . 이 경우 스칼라 곱은 이 계수를 곱한 합계로 줄어듭니다.
매개변수:
|
메모
- 두 iterable은 동시에 반복되므로 용어와 숫자가 반환되는 순서는 일관되어야 합니다. 정렬되지 않은 컬렉션(예: 집합)을 사용하면 예기치 않은 결과가 발생할 수 있습니다.
- 하나의 iterable이 중지되는 즉시 반복이 중지됩니다. 두 iterable이 모두 비어 있으면 이 메서드는 0을 반환합니다.
선형 표현식 또는 0. |
변수 및 함수 사전에서 스칼라 곱을 만듭니다.
이 메서드는 dot 의 기능적 변형입니다 . xxx_var_dict 또는 xx_var_var_matrix(여기서 xxx는 유형임) 및 함수에 의해 반환되는 변수 사전을 인수로 사용합니다.
매개변수:보고:
|
사전에 있는 모든 변수의 스칼라 곱으로 작성된 표현식에 함수 결과를 곱한 것입니다. |
예
>>> m1 = m.binary_var_matrix(keys1=range(1,3), keys2=range(1,3), name='b')
>>> s = m.dotf(m1, lambda keys: keys[0] + keys[1])
2 b_1_1 + 3 b_1_2 +3 b_2_1 + 4 b_2_2 반환
scal_prod_vars_all_different( 용어 , 계수 )[원천]변수 사전과 계수 또는 계수 목록에서 스칼라 곱을 빠르게 생성합니다. :param terms: 반복 가능한 반환 변수 또는 표현식. :param coefs: 반복 가능한 반환 숫자 또는 숫자.
semicontinuous_var( lb , ub=없음 , 이름=없음 )[원천]새로운 반연속 의사결정 변수를 생성하고 모델에 저장합니다.
매개변수:보고:반환 유형:
|
유형이 있는 결정 변수입니다 docplex.mp.vartype.SemiContinuousVarType. |
docplex.mp.dvar.Var |
키 개체로 인덱싱된 반연속 결정 변수의 사전을 만듭니다.
비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.
메모
키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.
|
키 의 객체로 인덱싱된 객체 사전 ( SemiIntegerVarTypedocplex.mp.dvar.Var 유형 포함 ) . |
또한보십시오
유형의 반연속 결정 변수 목록을 생성하고 docplex.mp.vartype.SemiContinuousVarType모델에 저장한 다음 목록을 반환합니다.
매개변수:
|
메모
키가 빈 목록 이거나 정수 0이면 빈 목록이 반환됩니다.
docplex.mp.dvar.Var유형이 있는 개체 목록입니다 docplex.mp.vartype.SemiContinuousVarType. |
또한보십시오
키 개체 쌍으로 인덱싱된 반연속 의사 결정 변수의 사전을 만듭니다.
두 키의 튜플에서 변수 검색을 허용하는 사전을 생성합니다. 첫 번째 키는 keys1 에서 , 두 번째 키는 키2 에서 가져옵니다 . 즉, 변수는 두 키 세트의 데카르트 곱으로 인덱싱됩니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다.
인수 lb , ub , name 및 key_format 은 in 으로 해석됩니다 semiinteger_var_dict().
버전 2.9의 새로운 기능
semicontinuous_vartype이 속성은 의 인스턴스를 반환합니다 docplex.mp.vartype.SemiContinuousVarType.
이 유형 인스턴스는 모델의 모든 반연속 변수 컬렉션을 구축하는 데 사용됩니다.
semiinteger_var( lb , ub=없음 , 이름=없음 )[원천]새로운 반정수 결정 변수를 생성하고 모델에 저장합니다.
매개변수:보고:반환 유형:
|
유형이 있는 결정 변수입니다 docplex.mp.vartype.SemiIntegerVarType. |
docplex.mp.dvar.Var |
키 개체로 인덱싱된 반정수 결정 변수의 사전을 만듭니다.
비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.
키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.
메모
키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.
|
키 의 객체로 인덱싱된 객체 사전 ( SemiIntegerVarTypedocplex.mp.dvar.Var 유형 포함 ) . |
또한보십시오
유형이 있는 반정수 결정 변수 목록을 생성하고 docplex.mp.vartype.SemiIntegerVarType모델에 저장한 다음 목록을 반환합니다.
매개변수:
|
메모
When keys is either an empty list or the integer 0, an empty list is returned.
A list of docplex.mp.dvar.Var objects with type docplex.mp.vartype.SemiIntegerVarType. |
See also
Creates a dictionary of semiinteger decision variables, indexed by pairs of key objects.
Creates a dictionary that allows the retrieval of variables from a tuple of two keys, the first one from keys1, the second one from keys2. In short, variables are indexed by the Cartesian product of the two key sets.
A key can be any Python object, with the exception of None.
Arguments lb, ub, name, and key_format are interpreted as in semiinteger_var_dict().
New in version 2.9
semiinteger_vartypeThis property returns an instance of docplex.mp.vartype.SemiIntegerType.
This type instance is used to build all semi-integer variable collections of the model.
set_lex_multi_objective(sense, exprs, abstols=None, reltols=None, names=None)[source]Sets a list of objectives to be solved in a lexicographic fashion.
Objective expressions are listed in decreasing priority.
Warning
This method requires CPLEX 12.9 or higher
|
메모
목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.
버전 2.9의 새로운 기능.
set_lp_start_basis( dvar_stats , lct_stats )[원천]LP 문제에 대한 초기 기반을 제공합니다.
매개변수:
|
메모
기본 상태는 열거된 유형의 값입니다 docplex.mp.constants.BasisStatus.
또한보십시오
- 버전 2.10의 새로운 기능*
목표 목록을 설정합니다.
경고
이 방법에는 CPLEX 12.9 이상이 필요합니다.
|
메모
목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.
버전 2.9의 새로운 기능.
set_multi_objective_abstols( 절대 )[원천]여러 목표에 대한 절대 공차를 변경합니다.
매개변수:abstols – 새로운 절대 공차. 숫자(모든 목표에 적용) 또는 일련의 숫자일 수 있습니다. 시퀀스는 목표 수와 길이가 같아야 합니다. |
버전 2.16의 새로운 기능
set_multi_objective_exprs( exprs , 우선순위=없음 , 가중치=없음 , abstols=없음 , reltols=없음 , 이름=없음 )[원천]혼합 목표 목록을 정의합니다.
우선 순위가 같은 목표는 가중치를 사용하여 결합됩니다. 그런 다음 우선 순위를 낮추어 사전식 방식으로 목표를 최적화합니다.
매개변수:
|
메모
목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.
버전 2.9의 새로운 기능.
set_multi_objective_reltols( 렐톨 )[원천]여러 목표에 대한 상대 공차를 변경합니다.
매개변수:reltols – 새로운 상대 공차. 숫자(모든 목표에 적용) 또는 일련의 숫자일 수 있습니다. 시퀀스는 목표 수와 길이가 같아야 합니다. |
버전 2.16의 새로운 기능
set_objective( 감각 , expr )[원천]새로운 목표를 설정합니다.
매개변수:
|
메모
숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.
해결 작업에 대한 시간 제한을 설정합니다.
매개변수:time_limit – 새로운 시간 제한. 양수여야 합니다. |
일련의 제약 조건에 대한 슬랙 값을 반환합니다.
여유 값은 선형, 2차 및 지표 제약 조건에 사용할 수 있습니다. 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
매개변수:보고:cts – 일련의 제약 조건. |
제약 조건과 동일한 순서로 부동 소수점 값 목록. |
이 속성은 모델의 현재 솔루션을 반환하거나 모델이 아직 해결되지 않았거나 마지막 해결이 실패한 경우 None을 반환합니다.
solve( **kwargs )[원천]모델에서 해결 작업을 시작합니다.
매개변수:보고:
|
docplex.mp.solution.SolveSolution풀이 작업이 실행 가능한 솔루션을 생성한 경우 객체, 그렇지 않으면 없음 . solve가 None을 반환한 이유에는 오류뿐만 아니라 실행 불가능성 또는 무한성의 적절한 경우도 포함됩니다. solve가 None을 반환하면 Model.solve_details를 사용하여 최신 해결 작업의 상태를 확인합니다. Model.solve_details는 docplex.mp.sdetails.SolveDetails솔루션을 찾았는지 여부에 관계없이 항상 객체를 반환합니다. 이 개체에는 상태, 경과 시간, MILP 문제의 경우 처리된 노드 수 및 최종 간격과 같은 최신 해결 작업에 대한 자세한 정보가 포함되어 있습니다. |
이 속성은 의 인스턴스인 최신 해결에 대한 자세한 정보를 반환합니다 docplex.mp.solution.SolveDetails.
최신 해결이 솔루션 인스턴스를 반환한 경우 이 속성은 솔루션에 해당하는 해결 세부 정보를 반환합니다. 솔루션을 찾을 수 없는 경우(즉, 최신 해결 작업이 None을 반환함) 솔루션을 찾을 수 없는 이유(예: 실행 불가능성 또는 무한성)를 식별하는 CPLEX 코드를 포함하는 SolveDetails 객체를 여전히 반환합니다.
solve_status마지막으로 성공한 해결의 해결 상태를 반환합니다.
모델이 성공적으로 해결된 경우 모델 솔루션에 저장된 상태를 반환합니다. 그렇지 않으면 None을 반환합니다.
보고:마지막으로 성공한 해결의 해결 상태, 문자열 또는 없음. |
정렬된 목표 모음에서 해결을 수행합니다.
매개변수:
|
Note
tolerances are used at each step to constraint the previous objective value to be be ‘no worse’ than the value found in the last pass. For example, if relative tolerance is 2% and pass #1 has found an objective of 100, then pass #2 will constraint the first goal to be no greater than 102 if minimizing, or no less than 98, if maximizing.
If one pass fails, return the previous pass’ solution. If the solve fails at the first goal, then return None.
If successful, returns a tuple with all pass solutions, reversed else None. The current solution of the model is the first solution in the tuple. |
Returns statistics on the model.
Returns:A new instance of docplex.mp.model_stats.ModelStatistics. |
표현식 표현(특히 제약 조건에서). str_use_space=False를 사용하면 제약 조건이 다음과 같이 인쇄됩니다. 2x+3y+5z <= 7
str_use_space=True를 사용하면 동일한 제약 조건이 다음과 같이 인쇄됩니다. 2 x + 3 y + 5 z <= 7
기본값은 False이며 압축된 표현을 인쇄합니다.
보고:표현식의 문자열 표현에 공백 구분 기호가 사용되는 경우 참입니다. |
표현식 또는 변수에 대한 반복 가능 항목을 합산하는 표현식을 생성합니다. 이 메서드는 모든 유형의 표현식(4차 표현식, 선형 표현식, 변수, 상수)에 대해 반복 가능을 기대합니다.
메모
반환된 표현식은 결과가 2차가 되는 즉시 2차이고, 그렇지 않으면 선형 표현식을 반환하거나 iterable이 비어 있으면 0을 반환합니다.
args – 표현식(2차 또는 선형), 변수 또는 상수에 대한 반복 가능. |
Docplex 식입니다. |
식의 제곱을 합한 2차 식을 만듭니다.
목록의 각 요소는 제곱되어 결과에 추가됩니다. 이차식은 제곱할 수 없으므로 허용되지 않습니다.
메모
이 메서드는 인수가 빈 목록 또는 반복기인 경우 0을 반환합니다.
args – 선형 표현식, 변수 또는 숫자를 반환하는 이터러블입니다. |
2차식(일정할 수 있음). |
변수를 합산하는 선형 표현식을 만듭니다.
이 방법은 Model.sum() 보다 빠르지 만 변수만 허용합니다.
매개변수:보고:dvars - 반복 가능한 반환 변수. |
변수의 합과 같은 선형 표현. |
버전 2.10의 새로운 기능
sum_vars_all_different( 용어 )[원천]결정 변수 목록의 합과 같은 선형 표현식을 생성합니다. 변수 시퀀스는 변수의 목록 또는 반복자입니다.
이 방법은 변수만 사용하고 표현식을 인수로 사용하지 않기 때문에 표준 일반 합산 방법보다 빠릅니다.
매개변수:보고:용어 – 중복이 없는 변수에 대한 목록 또는 반복자. |
변수의 합과 같은 선형 표현. |
메모
변수 반복에 중복이 포함된 경우 이 함수는 잘못된 결과를 반환합니다.
Model.sum() 과 동일 하지만 인수의 가변 개수를 허용합니다.
매개변수:보고:args – 가변 개수의 표현식(2차 또는 선형), 변수 또는 상수. |
Docplex 식입니다. |
예
x가 변수라고 가정합니다. >>> m.sums(x**2, x, 1)은 >> m.sum([x**2, x, 1])과 동일합니다.
둘 다 2차식 "x^2+x+1"을 반환합니다.
버전 2.22의 새로운 기능
sumsq( 인수 )[원천]식의 제곱을 합한 2차 식을 만듭니다.
목록의 각 요소는 제곱되어 결과에 추가됩니다. 이차식은 제곱할 수 없으므로 허용되지 않습니다.
메모
이 메서드는 인수가 빈 목록 또는 반복기인 경우 0을 반환합니다.
args – 선형 표현식, 변수 또는 숫자를 반환하는 이터러블입니다. |
2차식(일정할 수 있음). |
이 속성은 이 모델에 대한 시간 제한을 가져오거나 설정하는 데 사용됩니다.
var( vartype , lb=없음 , ub=없음 , 이름=없음 )[원천]결정 변수를 생성하고 모델에 저장합니다.
매개변수:보고:반환 유형:
|
새로 생성된 결정 변수입니다. |
docplex.mp.dvar.Var |
메모
이 모델은 속성(각각 binary_vartype, integer_vartype, continuous_vartype)으로 액세스할 수 있는 BinaryVarType, IntegerVarType, ContinuousVarType의 로컬 인스턴스를 보유합니다.
변수 배치에 대한 기본 상태를 반환합니다.
매개변수:보고:dvars - 반복 가능한 반환 변수. |
유형의 기본 상태 목록 docplex.mp.constants.BasisStatus. 목록의 순서는 변수가 iterable에 의해 반환된 순서입니다. |
버전 2.10의 새로운 기능
var_hypercube( vartype_spec , seq_of_keys , lb=없음 , ub=없음 , name=없음 , key_format=없음 )[원천]임의 크기의 튜플로 인덱싱된 결정 변수의 사전을 만듭니다.
인수는 형식 인수가 전달되어야 한다는 점을 제외하면 xxx_var_matrix 형식의 메서드와 유사합니다.
매개변수:
|
다른 모든 인수는 모든 "xx_var_matrix" 메서드 계열과 동일한 의미를 갖습니다.
예
>>> hc = Model().var_hypercube(vartype_spec='B', seq_of_keys=[[1,2], [3], ['a','b'], [1,2,3,4]]
>>> len(hc)
16
returns a dict of 2x2x4 = 16 variables indexed by tuples formed by the cartesian product
of the four lists, for example (1,3,'a',4)is a valid key for the hypercube.
2.19의 새로운 기능
또한보십시오
'🖥️ IT, 컴퓨터 > 🚀 최적화' 카테고리의 다른 글
[공간 최적화] Hierarchical Facility Location Problems (HFLPs) (0) | 2023.07.13 |
---|---|
[경로 최적화] GraphHopper routing engine (0) | 2023.03.18 |
[Cplex] 오류 : 해결 프로세스에 연결할 수 없음 (통신 인터페이스) (0) | 2023.03.17 |
[Cplex] 지역제한 P-median Cplex 코드 입력 (0) | 2023.03.16 |
[Gurobi] 구로비로 P-median 문제 (PMP) 풀기 with Python :: gurobipy (0) | 2023.03.16 |
댓글