🖥️ IT, 컴퓨터/🚀 최적화

[Cplex] docplex 문법 모음

김 홍시 2023. 3. 17.
반응형

http://ibmdecisionoptimization.github.io/docplex-doc/mp/docplex.mp.model.html

 

docplex.mp.model module — DOcplex.MP: Mathematical Programming Modeling for Python V2.25 documentation

A docplex.mp.solution.SolveSolution object if the solve operation managed to create a feasible solution, else None. The reason why solve returned None includes not only errors, but also proper cases of infeasibilties or unboundedness. When solve returns No

ibmdecisionoptimization.github.io

 

 

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
매개변수:
  • 이름 ( 선택 사항 ) – 모델의 이름입니다.
  • context ( optional ) – 사용할 해결 컨텍스트. no context가 전달되면 기본 컨텍스트가 생성됩니다.
  • log_output ( 선택 사항 ) – 인 경우 True솔버 로그가 stdout으로 출력됩니다. 스트림인 경우 솔버 로그가 해당 스트림 객체로 출력됩니다.
  • 검사기 ( 선택 사항 ) –이면 off확인이 모든 곳에서 비활성화됩니다. 검사를 끄면 성능이 향상될 수 있지만 매우 주의해서 수행해야 합니다. checker 키워드 인수 에 가능한 값은 다음과 같습니다.
  • cts_by_name ( 선택 사항 ) – 제약 조건 이름 사전의 활성화 여부를 제어하는 ​​플래그입니다. 기본값은 거짓입니다.
abs( 전자 )[원천]

해당 인수의 절대값과 동일한 표현식을 작성합니다.

매개변수:보고:
e – 결정 변수, 표현식 또는 숫자와 같이 표현식으로 변환할 수 있는 모든 객체를 허용합니다.
산술 연산자 및 제약 조건에서 사용할 수 있는 표현식입니다.

메모

식을 작성하면 이진 결정 변수를 포함하여 보조 결정 변수가 생성되며 이는 문제의 특성을 LP에서 MIP로 변경할 수 있습니다.

add_constraint( ct , ctname=없음 )[원천]

모델에 새 선형 제약 조건을 추가합니다.

매개변수:보고:
  • ct – <expr1> <op> <expr2> 형식의 선형 제약 조건입니다. 여기서 expr1과 expr2는 모두 모델의 변수로 구성된 선형 표현식이고 <op>는 <=(작거나 같음) 사이의 관계 연산자입니다. , ==(같음) 및 >=(크거나 같음).
  • ctname ( string ) – 제약 조건의 이름을 지정하는 데 사용되는 선택적 문자열입니다.
새로 추가된 제약 조건입니다.

또한보십시오

add_constraint_()

add_constraint_( ct , ctname=없음 )[원천]

모델에 새 선형 제약 조건을 추가합니다.

매개변수:
  • ct – <expr1> <op> <expr2> 형식의 선형 제약 조건입니다. 여기서 expr1과 expr2는 모두 모델의 변수로 구성된 선형 표현식이고 <op>는 <=(작거나 같음) 사이의 관계 연산자입니다. , ==(같음) 및 >=(크거나 같음).
  • ctname ( string ) – 제약 조건의 이름을 지정하는 데 사용되는 선택적 문자열입니다.

메모

이 메서드는 반환 값이 없다는 점을 제외하면 docplex.mp.model.Model.add_constraint() 와 동일합니다 .

또한보십시오

add_constraint()

add_constraints( cts , 이름=없음 )[원천]

한 번의 작업으로 모델에 선형 제약 조건 배치를 추가합니다.

cts iterable 의 각 제약 조건이 모델에 추가됩니다. 있는 경우 iterable 이름은 이름을 제약 조건으로 설정하는 데 사용됩니다.

# 목록 >>> m.add_constraints([x >= 1, y<= 3], [“c1”, “c2”]) # 이해 >>> m.add_constraints((xs[i] >= i for i 범위 내(N)))

매개변수:보고:
  • cts – 반복 가능한 선형 제약 조건입니다. 목록, 집합 또는 이해가 될 수 있습니다. 반복할 수 있고 제약 조건 개체를 생성할 수 있는 모든 Python 개체입니다.
  • 이름 – 문자열에 대한 선택적 이터러블. 반복할 수 있고 문자열을 생성할 수 있는 모든 Python 개체입니다. 기본값은 없음이며 이름이 설정되지 않았음을 의미합니다.
새로 추가된 제약 조건 목록입니다.

메모

이 방법은 선형 제약 조건(범위 제약 조건 포함)만 처리합니다. 추가하려면

다중 2차 구속조건, 참조add_quadratic_constraints()

또한보십시오

add_constraints_()

add_constraints_( cts , 이름=없음 )[원천]

한 번의 작업으로 모델에 선형 제약 조건 배치를 추가합니다.

아무것도 반환하지 않는다는 점을 제외하면 docplex.model.Model.add_constraints() 와 동일합니다 .

add_equivalence( binary_var , linear_ct , true_value=1 , name=None )[원천]

모델에 새 등가 제약조건을 추가합니다.

등가 제약 조건은 이산 선형 제약 조건의 만족에 이진 변수의 값을 양방향으로 연결합니다. 이진 변수가 참값과 같으면 제약 조건이 충족되고 반대로 제약 조건이 충족되면 이진 변수는 참 값과 같습니다.

매개변수:보고:
  • binary_var – 선형 제약 조건의 만족을 제어하는 ​​데 사용되는 이진 변수입니다.
  • linear_ct – 선형 제약 조건(EQ, LE, GE).
  • true_value – 0 또는 1. 제약 조건 충족을 트리거하는 데 사용되는 값입니다. 기본값은 1입니다.
  • name ( string ) – 등가 제약 조건의 선택적 이름입니다.
새로 생성된 등가 제약 조건입니다.
add_equivalence_constraints( eqcts )[원천]

모델에 일괄 등가 제약 조건을 추가합니다.

매개변수:
eqcts – 등가 제약 조건을 반환하는 반복 가능합니다.

또한보십시오

equivalence_constraint()

add_equivalence_constraints_( eqcts ) 

모델에 일괄 등가 제약 조건을 추가합니다.

매개변수:
eqcts – 등가 제약 조건을 반환하는 반복 가능합니다.

또한보십시오

equivalence_constraint()

add_equivalences( binary_vars , cts , true_values=1 , 이름=없음 )[원천]

등가 제약 조건 배치를 모델에 추가합니다.

이 방법은 등가 제약 조건 배치를 모델에 추가합니다.

매개변수:
  • binary_vars – 이진 변수 시퀀스.
  • cts – 일련의 이산 선형 제약 조건
  • true_values ​​– 사용할 참 값입니다. 1, 0 또는 {0, 1} 값의 시퀀스를 허용합니다.
  • 이름 - 선택적 이름 시퀀스

모든 시퀀스는 길이가 같아야 합니다.

보고:
등가 제약 조건 목록.
add_if_then( if_ct , then_ct , 부정=거짓 )[원천]

새로운 if-then 제약 조건을 생성하고 모델에 추가합니다.

매개변수:보고:
  • if_ct – 선형 제약 조건으로, 그 만족이 then_ct의 만족을 지배합니다 .
  • then_ct – if_ct가 충족되는 즉시 (또는 부정 플래그 에 따라 충족되지 않는 경우 ) 선형 제약 조건입니다.
  • 부정 – 선택적 부울 플래그(기본값은 False). True이면 if_ct가 만족되지 않을  then_ct가 만족 됩니다 .
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)
add_indicator( binary_var , linear_ct , active_value=1 , name=None )[원천]

모델에 새 표시기 제약 조건을 추가합니다.

표시기 제약 조건은 이진 변수 값을 선형 제약 조건 충족에 연결(단방향)합니다. 이진 변수가 활성 값과 같으면 제약 조건이 충족되지만 그렇지 않으면 제약 조건이 충족되거나 충족되지 않을 수 있습니다.

매개변수:보고:
  • binary_var – 선형 제약 조건의 만족을 제어하는 ​​데 사용되는 이진 변수입니다.
  • linear_ct – 선형 제약 조건(EQ, LE, GE).
  • active_value – 0 또는 1. 제약 조건 충족을 트리거하는 데 사용되는 값입니다. 기본값은 1입니다.
  • name ( string ) – 표시기 제약 조건의 선택적 이름입니다.
새로 생성된 표시기 제약 조건입니다.
add_indicator_constraints( 인덱스 )[원천]

모델에 표시기 제약 조건 배치를 추가합니다.

매개변수:
indcts – 반복 가능한 반환 표시기 제약 조건입니다.

또한보십시오

indicator_constraint()

add_indicator_constraints_( 색인 ) 

모델에 표시기 제약 조건 배치를 추가합니다.

매개변수:
indcts – 반복 가능한 반환 표시기 제약 조건입니다.

또한보십시오

indicator_constraint()

add_indicators( binary_vars , cts , true_values=1 , 이름=없음 )[원천]

모델에 표시기 제약 조건 배치를 추가합니다.

이 방법은 지표 제약 조건 배치를 모델에 추가합니다.

매개변수:
  • binary_vars – 이진 변수 시퀀스.
  • cts – 일련의 이산 선형 제약 조건
  • true_values ​​– 사용할 참 값입니다. 1, 0 또는 {0, 1} 값의 시퀀스를 허용합니다.
  • 이름 - 선택적 이름 시퀀스

모든 시퀀스는 길이가 같아야 합니다.

보고:
지표 제약 목록.
add_kpi( kpi_arg , publish_name=없음 )[원천]

모델에 핵심 성과 지표를 추가합니다.

KPI(핵심 성과 지표)는 solve() 후에 평가할 수 있는 개체입니다. 일반적으로 의사결정 표현식에 사용되며, 그 평가는 표현식의 솔루션 값을 반환합니다.

KPI 값은 방법으로 표시됩니다 report_kpis().

매개변수:
  • kpi_arg – 허용되는 인수는 식, 인수가 두 개인 람다 함수(모델 + 솔루션) 또는 추상 클래스 KPI의 하위 클래스 인스턴스입니다.
  • publish_name (string, optional) – The published name of the KPI.

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.
add_lazy_constraint( lazy_ct , 이름=없음 )[원천]

문제에 하나의 게으른 제약 조건을 추가합니다.

이 방법은 선형 제약 조건을 예상합니다.

매개변수:
  • lazy_ct – 선형 제약 조건(범위는 허용되지 않음)
  • name – 지연 제약 조건의 이름을 설정하는 데 사용되는 선택적 문자열입니다.

버전 2.10의 새로운 기능

add_lazy_constraints( lazy_cts , 이름=없음 )[원천]

문제에 게으른 제약 조건을 추가합니다.

이 메서드는 선형 제약 조건을 반환하는 반복 가능을 예상합니다(범위는 허용되지 않음).

매개변수:
  • 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이 아닌 값만 복사하도록 지정합니다.

매개변수:보고:
  • mip_start_sol ( docplex.mp.solution.SolveSolution) – 시작점으로 사용할 솔루션 개체입니다.
  • write_leveldocplex.mp.constants.WriteLevel – MIP 시작 솔루션에 복사되는 변수를 제어하는 ​​class 의 선택적 열거형 값입니다 . 기본적으로 이산 변수만 복사됩니다.
  • complete_vars – 선택적 플래그입니다. False(기본값)이면 솔루션에 언급된 변수만 복사됩니다. True인 경우 모델의 모든 변수가 MIP 시작에 복사됩니다.
  • Effort_level – 클래스의 선택적 열거 값 docplex.mp.constants.EffortLevel또는 None.
의 인스턴스 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)
add_progress_listener( 청취자 )[원천]

모델에 진행 리스너를 추가합니다.

진행 리스너는 :class:~docplex.mp.ProgressListener의 하위 클래스입니다.

매개변수:
청취자 
add_quadratic_constraints( qcs )[원천]

한 번의 호출로 2차 제약 조건 배치를 추가합니다.

매개변수:
qcs – 2차 제약 조건에 대한 반복 가능.

메모

Model.add_constraints 메서드 는 선형 제약 조건만 처리합니다.

버전 2.16의 새로운 기능*

add_range( lb , expr , ub , rng_name=없음 )[원천]

모델에 새 범위 제한을 추가합니다.

범위 제약 조건은 선형 표현식이 간격 [lb..ub] 내에 있어야 함을 나타냅니다 . lb  ub는 모두 ub 보다 lb가 작은 float 숫자여야 합니다 .

이 메서드는 새 범위 제약 조건을 만들고 모델에 추가합니다.

매개변수:보고:반환 유형:레이즈:
  • lb ( float ) – 부동 소수점 숫자.
  • expr – 선형 표현식(예: X+Y+Z).
  • ub ( float ) – lb 보다 커야 하는 부동 소수점 숫자입니다 .
  • rng_name ( string ) – 범위 제약 조건의 선택적 이름입니다.
새로 생성된 범위 제약 조건입니다.
docplex.mp.constr.RangeConstraint
lb 가 ub 보다 큰 경우 예외입니다 .
add_sos( dvars , sos_arg , 가중치=없음 , 이름=없음 )[원천]

모델에 SOS를 추가합니다.

매개변수:보고:
  • sos_arg – SOS 유형입니다. 유효한 값은 숫자(1 및 2)이거나 열거형( SOSType.SOS1  SOSType.SOS2 )입니다.
  • dvars – 특수 순서 집합의 변수입니다. 이 메서드는 목록, numpy 배열, pandas Series와 같은 순서가 지정된 변수 또는 반복자 시퀀스만 허용합니다. 정렬되지 않은 iterables(예: 사전 또는 세트)는 허용되지 않습니다.
  • 가중치 – 선택적 가중치. 없음(가중치 없음) 또는 변수 수와 크기가 같은 숫자 목록을 허용합니다.
  • 이름 – 선택적 이름입니다.
새롭게 추가된 SOS.
add_sos1( dvars , 이름=없음 )[원천]

유형 1의 SOS를 모델에 추가합니다.

매개변수:보고:
  • dvars – 특수 순서 집합의 변수입니다. 이 메서드는 순서가 지정된 변수 또는 반복자 시퀀스만 허용합니다. 정렬되지 않은 iterables(예: 사전 또는 세트)는 허용되지 않습니다.
  • 이름 – 선택적 이름입니다.
새롭게 추가된 SOS.
add_sos2( dvars , 이름=없음 )[원천]

유형 2의 SOS를 모델에 추가합니다.

매개변수:보고:
  • dvars – 특별히 정렬된 집합의 변수입니다. 이 메서드는 순서가 지정된 변수 또는 반복자 시퀀스만 허용합니다. 정렬되지 않은 iterables(예: 사전 또는 세트)는 허용되지 않습니다.
  • 이름 – 선택적 이름입니다.
새롭게 추가된 SOS.
add_user_cut_constraint( cut_ct , 이름=없음 )[원천]

문제에 하나의 사용자 컷 제약 조건을 추가합니다.

이 방법은 선형 제약 조건을 예상합니다.

매개변수:
  • cut_ct – 선형 제약 조건(범위는 허용되지 않음)
  • name – an optional string, used to set the name for the cut constraint.

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:
  • cut_cts – an iterable returning linear constraints (not ranges)
  • names – an optional iterable returning strings, used to set names for user cut constraints.

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
binary_var_cube(keys1, keys2, keys3, name=None, key_format=None)[source]

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.
binary_var_dict(keys, lb=None, ub=None, name=None, key_format=None)[source]

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.

Parameters:Returns:
  • keys – Either a sequence of objects, an iterator, or a positive integer. If passed an integer, it is interpreted as the number of variables to create.
  • name (string) – Used to name variables. Accepts either a string or a function. If given a string, the variable name is formed by appending the string to the string representation of the key object (if keys is a sequence) or the index of the variable within the range, if an integer argument is passed.
  • key_format – A format string or None. This format string describes how keys contribute to variable names. The default is “_%s”. For example if name is “x” and each key object is represented by a string like “k1”, “k2”, … then variables will be named “x_k1”, “x_k2”,…
A dictionary of docplex.mp.dvar.Var objects with type docplex.mp.vartype.BinaryVarType indexed by the objects in keys.
binary_var_list(  , lb=없음 , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

이진 결정 변수 목록을 생성하고 모델에 저장합니다.

매개변수:
  •  – 일련의 개체 또는 정수입니다.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체(키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...

각 키 문자열을 {}로 둘러싸려면 "_{%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 중 하나가 비어 있으면 이 메서드는 빈 사전을 반환합니다.

매개변수:보고:
  • keys1 – 일련의 객체, 반복자 또는 양의 정수. 정수 N이 전달되면 0에서 N-1까지의 범위로 해석됩니다.
  • 키2  키1 과 동일합니다 .
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체(키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...
k1 in keys1  k2 in keys2 와 함께 모든 쌍 (k1, k2)docplex.mp.dvar.Var 에 의해 인덱싱된 유형 의 객체 사전입니다 .docplex.mp.vartype.BinaryVarType
binary_vartype

이 속성은 의 인스턴스를 반환합니다 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:
  • lex_timelimits (optional) – a sequence of time limits
  • lex_mipgaps (optional) – a sequence of mip gaps
change_var_lower_bounds(dvars, lbs, check_bounds=True)[source]

Changes lower bounds for a collection of variables in one call.

Parameters:
  • dvars – an iterable over decision variables (a list, or a comprehension)
  • lbs – accepts either an iterable over numbers, a single number, in which case the new bound is applied to all variables, or None. If passed None, the lower bound of each variable is reset to its type’s default.
  • check_bounds – an optional flag to enable or disable checking of new lower bounds (default is True: check)

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:
  • dvars – an iterable over decision variables (a list, or a comprehension)
  • ubs – accepts either an iterable over numbers, a single number, in which case the new bound is applied to all variables, or None. If passed None, the upper bound of each variable is reset to its type’s default.
  • check_bounds – 새로운 상한 확인을 활성화 또는 비활성화하는 선택적 플래그(기본값은 True: 확인)

새 상한을 확인하는 논리는 다음과 같습니다. 새 경계는 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()

또한보십시오

add_mip_start() solve()

clear_multi_objective( )[원천]

다중 목표와 관련된 모든 항목을 지웁니다(있는 경우).

모델에 이전에 다중 목표가 정의된 경우 모델을 목표 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
continuous_var(lb=None, ub=None, name=None)[source]

Creates a new continuous decision variable and stores it in the model.

Parameters:Returns:Return type:
  • lb – The lower bound of the variable, or None. The default is 0.
  • ub – The upper bound of the variable, or None, to use the default. The default is model infinity.
  • name (string) – An optional name for the variable.
A decision variable with type docplex.mp.vartype.ContinuousVarType.
docplex.mp.dvar.Var
continuous_var_cube(keys1, keys2, keys3, lb=None, ub=None, name=None, key_format=None)[source]

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을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.

메모

키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.

매개변수:보고:
  •  – 일련의 객체, 반복자 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – Lower bounds of the variables. Accepts either a floating-point number, a list of numbers, or a function. Use a number if all variables share the same lower bound. Otherwise either use an explicit list of numbers or use a function if lower bounds vary depending on the key, in which case, the function will be called on each key in keys. None means the default lower bound (0) is used.
  • ub – Upper bounds of the variables. Accepts either a floating-point number, a list of numbers, a function, or None. Use a number if all variables share the same upper bound. Otherwise either use an explicit list of numbers or use a function if upper bounds vary depending on the key, in which case, the function will be called on each key in keys. None means the default upper bound (model infinity) is used.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체( 키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다 . 함수가 전달되면 이 함수는 이름을 생성하기 위해 각 키 개체에서 호출됩니다. 기본 동작은 str()각 키 개체를 호출하는 것입니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되는 경우 변수 이름은 "x_k1", "x_k2",...
keys 의 객체로 인덱싱된 객체 사전 ( ContinuousVarTypedocplex.mp.dvar.Var 유형 포함 ) .

또한보십시오

docplex.mp.dvar.Var, infinity

continuous_var_list(  , lb=없음 , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

유형이 있는 연속 결정 변수 목록을 생성하고 docplex.mp.vartype.ContinuousVarType모델에 저장한 다음 목록을 반환합니다.

매개변수:
  •  – 일련의 개체 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – 변수의 하한. 부동 소수점 숫자, 숫자 목록, 함수 또는 None을 허용합니다. 모든 변수가 동일한 하한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 하한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 없음은 기본 하한값(0)이 사용됨을 의미합니다.
  • ub – 변수의 상한. 부동 소수점 숫자, 숫자 목록, 함수 또는 None을 허용합니다. 모든 변수가 동일한 상한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 상한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 없음은 기본 상한값(모델 무한대)이 사용됨을 의미합니다.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체( 키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다 . 함수가 전달되면 이 함수는 이름을 생성하기 위해 각 키 개체에서 호출됩니다. 기본 동작은 str()각 키 개체를 호출하는 것입니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...

메모

키가 빈 목록 이거나 정수 0이면 빈 목록이 반환됩니다.

보고:
docplex.mp.dvar.Var유형이 있는 개체 목록입니다 docplex.mp.vartype.ContinuousVarType.

또한보십시오

infinity

continuous_var_matrix( 키1 , 키2 , lb=없음 , ub=없음 , 이름=없음 , key_format=없음 )[원천]

키 개체 쌍으로 인덱싱된 연속 의사 결정 변수의 사전을 만듭니다.

두 키의 튜플에서 변수 검색을 허용하는 사전을 만듭니다. 첫 번째 키는 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는 유형임) 및 함수에 의해 반환되는 변수 사전을 인수로 사용합니다.

매개변수:보고:
  • var_dict – 모든 xxx_var_dict 메서드(예: integer_var_dict)에서 반환되는 변수 사전뿐만 아니라 xxx_var_matrix(또는 var_cube)와 같은 다차원 사전도 반환합니다.
  • coef_fn – 하나의 사전 키를 취하고 숫자를 반환하는 함수입니다. 1차원 사전(예: integer_var_dict)에는 키로 일반 개체가 있지만 다차원 사전에는 튜플 키가 있습니다. 예를 들어, binary_var_matrix는 키가 2-튜플인 사전을 반환합니다.
  • assume_alldifferent – ​​사전의 변수 값이 모두 다른 것으로 가정할 수 있는지 여부를 나타내는 선택적 플래그입니다. 이것은 사전이 Docplex의 Model.xxx_var-dict()에 의해 구축된 경우에 해당되며 이것이 기본 동작입니다. 사용자 정의 사전의 경우 플래그를 False로 설정하십시오. 잘못된 플래그 값은 잘못된 결과를 가져올 수 있습니다.
사전에 있는 모든 변수의 스칼라 곱으로 작성된 표현식에 함수 결과를 곱한 것입니다.

>>> 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 – 일련의 선형 제약 조건.
플로트 숫자 시퀀스
dump_as_sav( 경로=없음 , 기본 이름=없음 ) 

CPLEX SAV 형식으로 모델을 내보냅니다.

SAV 형식으로 내보내려면 CPLEX가 설치되어 있고 PYTHONPATH에서 사용할 수 있어야 합니다. CPLEX 런타임을 찾을 수 없으면 예외가 발생합니다.

매개변수:보고:
  • basename – 모델이 인쇄되는 기본 이름을 제어합니다. 없음, 일반 문자열 또는 문자열 형식을 허용합니다. None이면 모델 이름이 사용됩니다. 일반 문자열을 전달하면 모델 이름 대신 문자열이 사용됩니다. 문자열 형식(%s 또는 {0} 사용)을 전달하면 작성된 파일의 기본 이름을 생성하기 위해 모델 이름의 형식을 지정하는 데 사용됩니다.
  • 경로 – 파일을 쓰기 위한 경로, 문자열 경로 또는 없음을 예상합니다. 디렉토리가 될 수 있으며, 이 경우 basename 인수로 계산된 기본 이름이 디렉토리에 추가되어 파일을 생성합니다. 전체 경로가 제공되면 경로는 파일을 작성하는 데 직접 사용되며 기본 이름 인수는 사용되지 않습니다. None을 전달하면 출력 디렉토리는 tempfile.gettempdir().
생성된 파일의 전체 경로 또는 오류가 발생한 경우 None입니다.

export_as_lp()경로 이름 생성의 예는 문서를 참조하십시오 . 논리는 두 방법 모두 동일합니다.

end( )[원천]

모델 인스턴스를 종료합니다.

이 메서드는 모델과 관련된 개체를 소멸시키므로 이 멤버 함수를 호출한 후에는 모델을 사용하면 안 됩니다. docplex.Model이 with 키워드 로 작성되지 않은 경우 리소스를 해제하기 위해 더 이상 CPLEX 엔진이 필요하지 않을 때 이 메소드를 호출해야 합니다 .

eq_constraint( lhs , rhs , 이름=없음 )[원천]

상등 제약 조건을 만듭니다.

메모

이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.

매개변수:보고:
  • lhs – 선형 표현식으로 변환할 수 있는 개체, 일반적으로 변수, 표현식의 멤버.
  • rhs – 선형 표현식으로 변환할 수 있는 객체, 일반적으로 변수, 표현식의 멤버.
  • name – 제약 조건의 이름을 지정하는 선택적 문자열입니다.
의 인스턴스 docplex.mp.linear.LinearConstraint.
equivalence_constraint( binary_var , linear_ct , true_value=1 , name=None )[원천]

새 등가 제약 조건을 만들고 반환합니다.

새로 생성된 등가 제약 조건은 모델에 추가되지 않습니다.

매개변수:보고:
  • binary_var – 선형 제약 조건의 만족을 제어하는 ​​데 사용되는 이진 변수입니다.
  • linear_ct – 선형 제약 조건(EQ, LE, GE).
  • true_value – 0 또는 1. 제약 조건 충족을 표시하는 데 사용되는 값입니다. 기본값은 1입니다.
  • name ( string ) – 등가 제약 조건의 선택적 이름입니다.
새로 생성된 등가 제약 조건입니다.
export_as_lp( 경로=없음 , 기본 이름=없음 , hide_user_names=False )[원천]

모델을 LP 형식으로 내보냅니다.

매개변수:보고:
  • basename – 모델이 인쇄되는 기본 이름을 제어합니다. 없음, 일반 문자열 또는 문자열 형식을 허용합니다. None이면 모델 이름을 사용합니다. 일반 문자열이 전달되면 모델 이름 대신 문자열이 사용됩니다. 문자열 형식을 전달하는 경우(%s 또는 {0}와 함께) 작성된 파일의 기본 이름을 생성하기 위해 모델 이름의 형식을 지정하는 데 사용됩니다.
  • 경로 – 파일을 쓸 경로, 문자열 경로 또는 없음이 필요합니다. 디렉토리가 될 수 있으며, 이 경우 basename 인수로 계산된 기본 이름이 디렉토리에 추가되어 파일을 생성합니다. 전체 경로가 제공되면 경로는 파일을 작성하는 데 직접 사용되며 기본 이름 인수는 사용되지 않습니다. None을 전달하면 출력 디렉토리는 tempfile.gettempdir().
  • hide_user_names – 변수 및 제약 조건에 대한 사용자 이름을 유지할지 여부를 나타내는 부울입니다. True이면 모든 이름이 변수의 경우 x1 , x2 , …로, 제약 조건의 경우 c1 , c2 , …로 바뀝니다.
생성된 파일의 전체 경로 또는 오류가 발생한 경우 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 형식으로 내보낸 모델을 포함하는 문자열입니다.
export_as_mps( 경로=없음 , 기본 이름=없음 )[원천]

모델을 MPS 형식으로 내보냅니다.

MPS 형식으로 내보내려면 CPLEX가 설치되어 있고 PYTHONPATH에서 사용할 수 있어야 합니다. CPLEX 런타임을 찾을 수 없으면 예외가 발생합니다.

매개변수:Returns:
  • basename – 모델이 인쇄되는 기본 이름을 제어합니다. 없음, 일반 문자열 또는 문자열 형식을 허용합니다. None이면 모델 이름이 사용됩니다. 일반 문자열을 전달하면 모델 이름 대신 문자열이 사용됩니다. 문자열 형식(%s 또는 {0} 사용)을 전달하면 작성된 파일의 기본 이름을 생성하기 위해 모델 이름의 형식을 지정하는 데 사용됩니다.
  • path – A path to write the file, expects a string path or None. Can be a directory, in which case the basename that was computed with the basename argument, is appended to the directory to produce the file. If given a full path, the path is directly used to write the file, and the basename argument is not used. If passed None, the output directory will be tempfile.gettempdir().
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:
  • basename – Controls the basename with which the model is printed. Accepts None, a plain string, or a string format. If None, the model’s name is used. If passed a plain string, the string is used in place of the model’s name. If passed a string format (either with %s or {0}), it is used to format the model name to produce the basename of the written file.
  • path – A path to write the file, expects a string path or None. Can be a directory, in which case the basename that was computed with the basename argument, is appended to the directory to produce the file. If given a full path, the path is directly used to write the file, and the basename argument is not used. If passed None, the output directory will be tempfile.gettempdir().
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 런타임이 필요합니다.

매개변수:보고:
  • basename – 파일이 인쇄되는 기본 이름을 제어합니다. 없음, 일반 문자열 또는 문자열 형식을 허용합니다. None이면 모델 이름이 사용됩니다. 일반 문자열을 전달하면 모델 이름 대신 문자열이 사용됩니다.
  • 경로 – 파일을 쓰기 위한 경로, 문자열 경로 또는 없음을 예상합니다. 디렉토리가 될 수 있으며, 이 경우 basename 인수로 계산된 기본 이름이 디렉토리에 추가되어 파일을 생성합니다. 전체 경로가 제공되면 경로는 파일을 작성하는 데 직접 사용되며 기본 이름 인수는 사용되지 않습니다. None을 전달하면 출력 디렉토리는 tempfile.gettempdir().
작성된 파일의 전체 경로(성공한 경우, 그렇지 않은 경우 없음).

버전 2.10의 새로운 기능

export_to_stream( 스트림 , hide_user_names=거짓 , format_spec='lp' )[원천]

모델을 LP 형식의 출력 스트림으로 내보냅니다.

스트림은 다음 중 하나일 수 있습니다.
  • 시스템 경로로 해석되는 문자열,
  • 없음, stdout 으로 해석 또는
  • Python 파일 유형 객체(예: StringIO() 인스턴스).
매개변수:
  • stream – 출력이 전송될 위치를 정의하는 개체입니다.
  • hide_user_names – 변수 및 제약 조건에 대한 사용자 이름을 유지할지 여부를 나타내는 선택적 부울입니다. True이면 모든 이름이 변수의 경우 x1 , x2 , …로, 제약 조건의 경우 c1 , c2 , ,…로 바뀝니다. 기본값은 사용자 이름을 유지하는 것입니다.
find_matching_linear_constraints( 패턴 , match_case=거짓 )[원천]

이름에 주어진 문자열이 포함된 모든 선형 제약 조건을 찾습니다.

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:
  • pattern – a non-empty string.
  • match_case – optional flag to match case (or not). Default is to not match case.
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:
  • pattern – a non-empty string.
  • match_case – optional flag to match case (or not). Default is to not match case.
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문자열을 포함하는 모든 변수를 검색합니다. 익명 변수는 고려되지 않습니다.

매개변수:보고:
  • 패턴 – 비어 있지 않은 문자열.
  • match_case – 대소문자를 일치시키는(또는 일치하지 않는) 선택적 플래그입니다. 기본값은 대소문자를 일치시키지 않는 것입니다.
결정 변수 목록입니다.
find_re_matching_vars( 정규식 )[원천]

이름이 정규 표현식과 일치하는 모든 변수를 찾습니다.

이 메소드는 주어진 정규 표현식과 일치하는 이름을 가진 모든 변수를 검색합니다. 익명 변수는 일치하는 것으로 간주되지 않습니다.

매개변수:보고:
regexpr - din 모듈 정의와 같은 정규식re
결정 변수 목록입니다.

버전 2.9의 새로운 기능

float_precision

이 속성은 모델의 부동 소수점 정밀도를 가져오거나 설정하는 데 사용됩니다.

부동 소수점 정밀도는 솔루션과 목적을 인쇄하는 데 사용되는 정수 자릿수입니다. 이 자릿수는 불연속적이지 않은 변수 및 표현식에 사용됩니다. 불연속 변수 및 목적은 소수점 이하 자릿수 없이 인쇄됩니다.

ge_constraint( lhs , rhs , 이름=없음 )[원천]

"크거나 같음" 선형 제약 조건을 만듭니다.

메모

이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.

매개변수:보고:
  • lhs – 선형 표현식으로 변환할 수 있는 개체, 일반적으로 변수, 표현식의 멤버.
  • rhs – 선형 표현식으로 변환할 수 있는 객체, 일반적으로 변수, 표현식의 숫자.
  • name ( string ) – 제약 조건의 이름을 지정하는 선택적 문자열입니다.
의 인스턴스 docplex.mp.linear.LinearConstraint.
get_constraint_by_index( 아이디엑스 )[원천]

인덱스에서 선형 제약 조건을 검색합니다.

인덱스가 idx 인 선형 제약 조건 또는 None을 반환합니다. 이 인덱스에 제약 조건이 없으면 이 함수는 예외를 발생시키지 않습니다.

참고: 선형 제약 조건, 논리 제약 조건 및 2차 제약 조건에는 각각 별도의 인덱스 공간이 있음을 기억하십시오.

매개변수:보고:
idx – 유효한 인덱스(0보다 큼).
선형 제약 조건 또는 없음.
get_constraint_by_name( 이름 )[원천]

이름에서 제약 조건을 검색합니다.

정확히 이 이름을 가진 제약 조건을 찾으면 제약 조건을 반환하고, 이 이름을 가진 제약 조건이 없으면 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.

Parameters:Returns:
name (str) – The name of the constraint being searched for.
A constraint or None.
get_cplex(do_raise=True)[source]

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.
get_cuts( )[원천]

dict(type -> number) 형식으로 컷 수를 반환합니다.

참고: 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.

보고:
dict(type -> number) 형식의 컷 수.
get_num_cuts( 컷_타입 )[원천]

특정 유형의 컷 수를 반환합니다.

참고: 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.

매개변수:보고:
cut_type – 절단 유형.
이 절단 유형과 연관된 절단 수.
get_objective_expr( )[원천]

이 메서드는 모델 목표로 사용되는 표현식을 반환합니다.

메모

기본 목표는 상수 0 표현식입니다.

보고:
표현.
get_parameter_from_id( parameter_cpx_id )[원천]

CPLEX ID 코드에서 매개변수를 찾습니다.

매개변수:보고:
parameter_cpx_id – CPLEX 매개변수 ID(양의 정수, 예를 들어 2009는 mipgap임).
발견된 경우 인스턴스 docplex.mp.params.parameters.Parameter, 그렇지 않으면 없음.
get_quadratic_constraint_by_index( 아이디엑스 )[원천]

인덱스에서 2차 제약 조건을 검색합니다.

인덱스가 idx 인 2차 제약 조건 또는 None을 반환합니다. 이 인덱스에 제약 조건이 없으면 이 함수는 예외를 발생시키지 않습니다.

참고: 선형 제약 조건, 논리 제약 조건 및 2차 제약 조건에는 각각 별도의 인덱스 공간이 있음을 기억하십시오. 따라서 모델은 선형 제약 조건과 지수가 0인 2차 제약 조건을 모두 포함할 수 있습니다.

매개변수:보고:
idx – 유효한 인덱스(0보다 큼).
2차 제약 조건 또는 없음.
get_solve_status( )[원천]

마지막으로 성공한 해결의 해결 상태를 반환합니다.

모델이 성공적으로 해결된 경우 모델 솔루션에 저장된 상태를 반환합니다. 그렇지 않으면 None을 반환합니다.

보고:
마지막으로 성공한 해결의 해결 상태, docplex.utils.JobSolveStatus 유형의 열거된 값

참고: Cplex에서 반환된 상태는 모델의 solve_details에 상태 로 저장됩니다 .

>>> m.solve_details.status

또한보십시오

docplex.mp.SolveDetails.status()Cplex 상태를 문자열(예: "최적")로 가져오고 docplex.mp.SolveDetails.status_code()Cplex 상태를 정수 코드로 가져옵니다.

get_time_limit( )[원천]보고:
모델의 시간 제한입니다.
get_var_by_name( 이름 )[원천]

이름에서 변수를 검색합니다.

정확히 이 이름을 가진 변수를 찾으면 변수를 반환하거나 None을 반환합니다.

매개변수:보고:
name ( str ) – 검색 중인 변수의 이름입니다.
변수( 인스턴스 docplex.mp.dvar.Var) 또는 없음.
has_basis( )[원천]

모델에 기본 정보가 포함되어 있으면 True를 반환합니다.

버전 2.9의 새로운 기능

has_multi_objective( )[원천]

모델에 다중 목표가 정의되어 있으면 True를 반환합니다.

버전 2.10의 새로운 기능

if_then( if_ct , then_ct , 부정=거짓 )[원천]

if-then 제약 조건을 만들고 반환합니다.

if-then 제약 조건은 ct1이 충족되면 ct2도 충족되도록 두 제약 조건 ct1, ct2를 연결합니다.

매개변수:보고:
  • if_ct – 선형 제약 조건으로, 그 만족이 then_ct의 만족을 지배합니다 .
  • then_ct – if_ct가 충족되는 즉시 (또는 부정 플래그 에 따라 충족되지 않는 경우 ) 선형 제약 조건입니다.
  • 부정 – 선택적 부울 플래그(기본값은 False). True이면 if_ct가 만족되지 않을  then_ct가 만족 됩니다 .
모델에 추가되지 않은 IfThenConstraint의 인스턴스. Model.add_constraint() 또는 Model.add()를 사용하여 모델에 추가하십시오.

메모

이 제약 조건은 if_ct 제약 조건 의 상태에 의존하므로 이 제약 조건은 불연속적이어야 합니다. 그렇지 않으면 예외가 발생합니다.

ignore_names

이 속성은 모델의 모든 이름을 무시하는 데 사용됩니다.

이 플래그는 이름이 사용되는지 여부를 나타냅니다. True로 설정하면 모든 이름이 무시됩니다. 이는 대형 모델을 구축할 때 성능 향상으로 이어질 수 있습니다. 이 플래그의 기본값은 False입니다. 값을 변경하려면 다음과 같이 Model 인스턴스를 생성할 때 키워드 인수로 추가하십시오.

>>> m = Model(name="my_model", ignore_names=True)

메모

모델 인스턴스가 ignore_names=True 로 생성되면 해당 이름을 복원할 방법이 없습니다. 이 플래그는 모델을 빌드하는 동안 이름 생성을 활성화 또는 비활성화할 수만 있습니다.

import_solution( source_solution , match='auto' , error='raise' )[원천]

다른 모델에서 솔루션을 가져옵니다.

솔루션 모델에서 대상 모델로 이름, 인덱스 또는 기타 사용자 지정 방식으로 변수를 매핑하는 방법이 있어야 합니다. 가장 간단한 경우는 다른 모델이 대상 모델의 복제본인 경우입니다. 이 경우 인덱스 기반 매핑이 사용됩니다.

매개변수:보고:
  • source_solution – 대상 모델과 다른 일부 다른 rmodel에 빌드된 가져온 솔루션입니다.
  • match – 변수에 사용되는 매핑을 설명하고 미리 정의된 매핑의 문자열을 허용합니다. 즉, 인덱스 매핑의 경우 "index", 이름 매핑의 경우 "name" 또는 자동의 경우 "auto"입니다. 또한 소스 변수와 대상 모델의 두 인수를 사용하여 대상 모델에서 소스 변수의 이미지를 반환하는 함수를 허용합니다.
  • error – 오류 처리 방법을 설명하는 문자열입니다. "인상", "경고" 또는 "무시" 수락
SolveSolution소스 모델에서 대상 모델로 매핑된 값 및 변수에서 대상 모델에 빌드된 솔루션 개체 인스턴스 입니다 .

버전 2.21의 새로운 기능

indicator_constraint( binary_var , linear_ct , active_value=1 , name=None )[원천]

새로운 지표 제약을 생성하고 반환합니다.

표시기 제약 조건은 모델에 추가되지 않습니다.

매개변수:보고:
  • binary_var – 선형 제약 조건의 만족을 제어하는 ​​데 사용되는 이진 변수입니다.
  • linear_ct – 선형 제약 조건(EQ, LE, GE).
  • active_value – 0 또는 1. 제약 조건 충족을 트리거하는 데 사용되는 값입니다. 기본값은 1입니다.
  • name ( string ) – 표시기 제약 조건의 선택적 이름입니다.
새로 생성된 표시기 제약 조건입니다.
infinity

이 속성은 연속 결정 변수의 상한값으로 사용되는 숫자 값을 반환합니다.

메모

CPLEX는 일반적으로 이 한계를 1e+20으로 설정합니다.

정적 init_numpy( )[원천]

DOcplex에 대해 numpy를 사용자 지정하는 정적 메서드입니다 .

이 방법은 numpy가 DOcplex를 인식하도록 합니다. DOcplex 객체가 있는 모든 numpy 배열은 표준 numpy 동작과 같이 repr() 대신 str () 에 의해 반환되는 문자열 표현으로 인쇄됩니다 .

메서드 를 호출하여 모든 사용자 지정을 제거할 수 있습니다 restore_numpy().

메모

이 메서드는 numpy 가 없으면 아무 작업도 수행하지 않습니다.

또한보십시오

restore_numpy()

integer_var( lb=없음 , ub=없음 , 이름=없음 )[원천]

새 정수 변수를 생성하고 모델에 저장합니다.

매개변수:보고:반환 유형:
  • lb – 변수의 하한 또는 없음. 기본값은 0입니다.
  • ub – 변수의 상한값 또는 기본값을 사용하기 위한 없음. 기본값은 모델 무한대입니다.
  • name – 변수의 선택적 이름입니다.
IntegerVarTypedocplex.mp.dvar.Var 유형 의 클래스 인스턴스입니다 .
docplex.mp.dvar.Var
integer_var_cube( 키1 , 키2 , 키3 , lb=없음 , ub=없음 , 이름=<class 'str'> )[원천]

세 쌍으로 인덱싱된 정수 결정 변수의 사전을 만듭니다.

와 동일하지만 변수는 키1  k1 , 키2  k2 ,  3  k3 이 있는 (k1, k2, k3)integer_var_matrix() 형식의 3중항으로 인덱싱됩니다 .

또한보십시오

integer_var_matrix()

integer_var_dict(  , lb=없음 , ub=없음 , 이름=없음 , key_format=없음 )[원천]

키 개체로 인덱싱된 정수 결정 변수의 사전을 만듭니다.

비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.

키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.

메모

키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.

매개변수:Returns:
  •  – 일련의 객체, 반복자 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – Lower bounds of the variables. Accepts either a floating-point number, a list of numbers, or a function. Use a number if all variables share the same lower bound. Otherwise either use an explicit list of numbers or use a function if lower bounds vary depending on the key, in which case, the function will be called on each key in keys. None means the default lower bound (0) is used.
  • ub – Upper bounds of the variables. Accepts either a floating-point number, a list of numbers, a function, or None. Use a number if all variables share the same upper bound. Otherwise either use an explicit list of numbers or use a function if upper bounds vary depending on the key, in which case, the function will be called on each key in keys. None means the default upper bound (model infinity) is used.
  • name – Used to name variables. Accepts either a string or a function. If given a string, the variable name is formed by appending the string to the string representation of the key object (if keys is a sequence) or the index of the variable within the range, if an integer argument is passed. If passed a function, this function is called on each key object to generate a name. The default behavior is to call str() on each key object.
  • key_format – A format string or None. This format string describes how keys contribute to variable names. The default is “_%s”. For example if name is “x” and each key object is represented by a string like “k1”, “k2”, … then variables will be named “x_k1”, “x_k2”,…
A dictionary of docplex.mp.dvar.Var objects (with type IntegerVarType) indexed by the objects in keys.

See also

infinity

integer_var_list(keys, lb=None, ub=None, name=<class 'str'>, key_format=None)[source]

Creates a list of integer decision variables with type IntegerVarType, stores them in the model, and returns the list.

Parameters:
  • keys – Either a sequence of objects or a positive integer. If passed an integer, it is interpreted as the number of variables to create.
  • lb – Lower bounds of the variables. Accepts either a floating-point number, a list of numbers with the same size as keys, a function (which will be called on each key argument), or None.
  • ub – Upper bounds of the variables. Accepts either a floating-point number, a list of numbers with the same size as keys, a function (which will be called on each key argument), or None.
  • name – Used to name variables. Accepts either a string or a function. If given a string, the variable name is formed by appending the string to the string representation of the key object (if keys is a sequence) or the index of the variable within the range, if an integer argument is passed.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...

메모

없음을 하한으로 사용하면 기본 하한(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().

보고:반환 유형:
모델이 최대화 모델인 경우 참입니다.
부울
is_minimized( )[원천]

모델이 최소화 모델인지 확인합니다.

메모

최소화할 표현식이 상수인 경우에도 True를 반환합니다. 모델에 상수가 아닌 목적이 있는지 확인하려면 를 사용하십시오 is_optimized().

보고:반환 유형:
모델이 최소화 모델인 경우 True입니다.
부울
is_optimized( )[원천]

모델에 상수가 아닌 객관적 표현이 있는지 확인합니다.

일정한 목표를 가진 모델은 해결될 때 실현 가능한 솔루션만 검색합니다. 이는 모델에 목표가 지정되지 않았거나 목표가 로 제거된 경우에 발생합니다 remove_objective().

보고:반환 유형:
모델에 일정하지 않은 객관적 표현이 있는 경우 참입니다.
부울
iter_binary_constraints( )[원천]

모델의 이진 제약 조건(expr1 <op> expr2)에 대한 반복자를 반환합니다. 여기에는 범위 제한이 포함되지 않습니다.

보고:
반복자 개체입니다.
iter_binary_vars( )[원천]

모델의 모든 이진 결정 변수를 반복합니다.

모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
iter_constraints( )[원천]

모든 제약 조건(선형, 범위, 표시기)을 반복합니다.

보고:
모델의 모든 제약 조건에 대한 반복자 개체입니다.
iter_continuous_vars( )[원천]

모델의 모든 연속 결정 변수를 반복합니다.

모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
iter_equivalence_constraints( )[원천]

모델의 등가 제약 조건에 대한 반복자를 반환합니다.

보고:
반복자 개체입니다.
iter_indicator_constraints( )[원천]

모델의 표시기 제약 조건에 대한 반복자를 반환합니다.

보고:
반복자 개체입니다.
iter_integer_vars( )[원천]

모델의 모든 정수 결정 변수를 반복합니다.

모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
iter_kpis( )[원천]

모델의 모든 KPI에 대한 반복자를 반환합니다.

보고:
반복자 개체입니다.
iter_lazy_constraints( )[원천]

모델의 게으른 제약 조건에 대한 반복자를 반환합니다.

보고:
게으른 제약 조건에 대한 반복자.

버전 2.10의 새로운 기능

iter_linear_constraints( )[원천]

모델의 선형 제약 조건에 대한 반복자를 반환합니다. 여기에는 이진 선형 제약 조건 및 범위가 포함되지만 지표는 포함되지 않습니다.

보고:
반복자 개체입니다.
iter_mip_starts( )[원천]이 속성은 다음과 연결된 MIP 시작에서 반복자를 반환합니다.

모델.

크기 2의 튜플을 반환합니다.

버전 2.10의 새로운 기능

iter_progress_listeners( )[원천]

모델에 연결된 진행 리스너의 반복자를 반환합니다.

보고:
반복자.
iter_pwl_constraints( )[원천]

모델의 모든 PWL 제약 조건을 반복합니다.

보고:
반복자 개체입니다.
iter_pwl_functions( )[원천]

모델의 모든 조각별 선형 함수를 반복합니다.

모델에 추가된 순서대로 PWL 함수를 반환합니다.

보고:
반복자 개체입니다.
iter_quadratic_constraints( )[원천]

모델의 2차 제약 조건에 대한 반복자를 반환합니다.

보고:
반복자 개체입니다.
iter_range_constraints( )[원천]

모델의 범위 제약에 대한 반복자를 반환합니다.

보고:
반복자 개체입니다.
iter_semicontinuous_vars( )[원천]

모델의 모든 반연속 결정 변수를 반복합니다.

모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
iter_semiinteger_vars( )[원천]

모델의 모든 반정수 결정 변수를 반복합니다.

모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
iter_sos( )[원천]

모델의 모든 SOS 세트를 반복합니다.

보고:
반복자 개체입니다.
iter_sos1( )[원천]

모델의 모든 SOS1 세트를 반복합니다.

보고:
반복자 개체입니다.
iter_sos2( )[원천]

모델의 모든 SOS2 세트를 반복합니다.

보고:
반복자 개체입니다.
iter_user_cut_constraints( )[원천]

모델의 사용자 절단 제약 조건에 대한 반복자를 반환합니다.

보고:
사용자 절단 제약 조건의 반복자.

버전 2.10의 새로운 기능

iter_variables( )[원천]

모델의 모든 변수를 반복합니다.

유형에 관계없이 모델에 추가된 순서대로 변수를 반환합니다.

보고:
반복자 개체입니다.
kpi_by_name( 이름 , try_match=True , match_case=False , do_raise=True )[원천]

문자열에서 KPI를 가져옵니다.

이 메서드는 정확한 이름 지정을 사용하거나 KPI 이름의 하위 문자열과 일치시키려고 시도하여 문자열에서 KPI를 가져옵니다.

매개변수:
  • name ( string ) – 일치시킬 문자열.
  • try_match ( Boolean ) – True인 경우 이름이 인수와 같지 않지만 인수를 포함하는 KPI를 반환합니다. 기본값은 참입니다.
  • match_case – True이면 대소문자가 정확히 일치하는지 찾고 그렇지 않으면 대소문자를 무시합니다. 기본값은 거짓입니다.
  • do_raise – True인 경우 KPI를 찾을 수 없을 때 예외를 발생시킵니다.

KPI 이름이 "총 CO2 비용"인 경우 인수 co2  match_case를 False로 가져오는 작업이 성공합니다. match_case 가 True 이면 KPI가 반환되지 않습니다.

보고:
발견된 경우 KPI 표현식입니다. 검색에 실패하면 예외가 발생하거나 0이 포함된 더미 상수 표현식을 반환합니다.
kpi_value_by_name( 이름 , 솔루션=없음 , try_match=True , match_case=False )[원천]

KPI 이름에서 KPI 값을 반환합니다.

이 메서드는 정확한 이름 지정을 사용하거나 KPI 이름의 하위 문자열과 일치시키려고 시도하여 문자열에서 KPI 값을 가져옵니다.

매개변수:
  • name ( str ) – 일치시킬 문자열.
  • 솔루션 - 선택적 솔루션입니다. 존재하지 않는 경우 모델이 해결되었다고 가정하고 모델 솔루션을 사용합니다.
  • try_match ( Bool ) – True인 경우 이름이 인수와 같지 않지만 인수를 포함하는 KPI를 반환합니다. 기본값은 참입니다.
  • match_case – True이면 대소문자가 정확히 일치하는지 찾고 그렇지 않으면 대소문자를 무시합니다. 기본값은 거짓입니다.

KPI 이름이 "총 CO2 비용"인 경우 인수 co2  match_case를 False로 가져오는 작업이 성공합니다. match_case 가 True 이면 KPI가 반환되지 않습니다.

메모

KPI에는 평가할 솔루션이 필요합니다. 이 솔루션은 매개변수로 명시적으로 전달되거나 모델이 유효한 솔루션으로 해결되는 것으로 가정됩니다.

보고:반환 유형:
KPI 값입니다.
뜨다

또한보십시오

docplex.mp.solution.SolveSolution new_solution()

kpis_as_dict( 솔루션=없음 , kpi_filter=없음 , objective_key=없음 , use_names=True )[원천]

솔루션의 KPI 값을 사전으로 반환합니다.

각 KPI에는 솔루션의 가치가 있습니다. 이 메서드는 KPI 개체로 인덱싱된 KPI 값의 사전을 반환합니다.

매개변수:Returns:
  • solution – solve()에 의해 반환되는 솔루션의 인스턴스. 통과하지 못하면 모델의 솔루션을 사용합니다. 솔루션이 없으면 예외가 발생합니다.
  • kpi_filter – an optional predicate to filter some kpis. If provided, accepts a function taking one KPI as argument and returning a boolean. By default, all KPIs are returned.
  • objective_key – an optional string key for th eobjective value. If present, the value of the objective is added to the dictionary, with this key. By default, this parameter is None and the objective is not appended to the dictionary.
  • use_names – a flag which determines whether keys in the resulting dict are KPI objects or kpi names. Default is to use KPI names.
A dictionary mapping KPIs, or KPI names to values.
le_constraint(lhs, rhs, name=None)[source]

Creates a “less than or equal to” linear constraint.

Note

이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.

매개변수:보고:
  • lhs – 선형 표현식으로 변환할 수 있는 개체, 일반적으로 변수, 표현식의 멤버.
  • rhs – 선형 표현식으로 변환할 수 있는 객체, 일반적으로 변수, 표현식의 멤버.
  • name ( string ) – 제약 조건의 이름을 지정하는 선택적 문자열입니다.
의 인스턴스 docplex.mp.linear.LinearConstraint.
linear_constraint( lhs , rhs , ctsense , 이름=없음 )[원천]

선형 제약 조건을 생성합니다.

메모

이 메서드는 모델에 추가되지 않은 제약 조건 개체를 반환합니다. 모델에 추가하려면 add_constraint()메소드를 사용하십시오.

매개변수:보고:
  • lhs – 선형 표현식으로 변환할 수 있는 개체, 일반적으로 변수, 표현식의 멤버.
  • rhs – 선형 표현식으로 변환할 수 있는 객체, 일반적으로 변수, 표현식의 숫자.
  • ctsense – 제약 조건 감지. ComparisonType 유형의 값 이나 문자열(예: 'le', 'eq', 'ge')을 허용합니다.
  • name ( string ) – 제약 조건의 이름을 지정하는 선택적 문자열입니다.
의 인스턴스 docplex.mp.linear.LinearConstraint.
linear_constraint_basis_statuses( 엘츠 )[원천]

선형 제약 조건의 배치에 대한 기본 상태를 반환합니다.

매개변수:보고:
lcts – 반복 가능한 선형 제약 조건 반환.
유형의 기본 상태 목록 docplex.mp.constants.BasisStatus. 목록의 순서는 iterable이 제약 조건을 반환한 순서입니다.

버전 2.10의 새로운 기능

linear_expr( 인수=없음 , 상수=0 , 이름=없음 )[원천]

새로운 빈 선형 표현식을 반환합니다.

매개변수:보고:
arg – 선형 표현식으로 변환하기 위한 선택적 인수. Detailt는 None이며 이 경우 빈 표현식이 반환됩니다.
의 인스턴스 docplex.mp.linear.LinearExpr.
logical_and( *인수 )[원천]

해당 인수의 논리 AND 값과 동일한 표현식을 작성합니다.

이 방법은 가변 개수의 인수를 사용하고 이진 변수, 기타 논리식 또는 불연속 제약 조건을 허용합니다.

매개변수:
args – 논리 피연산자의 변수 목록입니다.

메모

빈 개수의 인수가 전달된 경우 이 메서드는 1과 같은 표현식입니다.

보고:
모든 인수가 1인 경우에만 1이고 그렇지 않은 경우 0인 식입니다.

또한보십시오

logical_or() logical_not()

예:

# 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)))
logical_not( 인수 )[원천]

해당 인수의 논리적 부정과 동일한 표현식을 작성합니다.

이 메서드는 이진 변수 또는 다른 논리식을 허용합니다.

매개변수:보고:
arg – 이진 변수 또는 논리식(예: logical_and, logical_or, logical_not에 의해 작성된 식)
인수가 0이면 1이고 그렇지 않으면 0인 식입니다.

또한보십시오

logical_and() logical_or()

logical_or( *인수 )[원천]

해당 인수의 논리 OR 값과 동일한 표현식을 작성합니다.

이 메서드는 가변 개수의 인수를 사용하며 다음을 허용합니다.이진 변수, 기타 논리식 또는 불연속 제약 조건.매개변수:
args – 논리 피연산자의 변수 목록입니다.

메모

빈 수의 인수가 전달된 경우 이 메서드는 0 표현식입니다.

보고:
다음 중 적어도 하나인 경우에만 1과 같은 표현식인수는 1이고 그렇지 않으면 0입니다.

또한보십시오

logical_and() logical_not()

버전 2.11의 새로운 기능

lp_line_length

이 속성을 사용하면 DOcplex에서 생성된 LP 파일의 최대 줄 길이를 가져오거나 설정할 수 있습니다. 기본값은 80입니다.

버전 2.11의 새로운 기능
lp_string

이 속성은 모델을 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로 변경될 수 있습니다.

maximize( 특급 )[원천]

최대화할 표현식으로 표현식을 설정합니다.

인수는 선형 표현식으로 변환됩니다. 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.

매개변수:
expr – 선형 표현식 또는 변수.
maximize_static_lex( exprs , abstols=없음 , reltols=없음 , objnames=없음 )[원천]

사전식 해석에서 최대화할 표현식 목록을 설정합니다. exprs는 최대화되는 목적 함수의 정렬된 시퀀스를 정의합니다.

인수는 선형 표현식 목록으로 변환됩니다. 목록 요소에 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.

경고

이 방법에는 CPLEX 12.9 이상이 필요합니다.

매개변수:
  • exprs – 선형 표현식 또는 변수 목록
  • abstols – 정의된 경우 exprs 인수 와 크기가 동일한 절대 허용 오차 목록입니다 .
  • reltols – 정의된 경우 exprs 인수 와 크기가 같은 상대 허용 오차 목록 .
  • objnames – 정의된 경우 exprs 인수 와 크기가 같은 목표의 이름 목록입니다 .

버전 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로 변경될 수 있습니다.

minimize( 특급 )[원천]

최소화할 표현식으로 표현식을 설정합니다.

인수는 선형 표현식으로 변환됩니다. 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.

매개변수:
expr – 선형 표현식 또는 변수.
minimize_static_lex( exprs , abstols=없음 , reltols=없음 , objnames=없음 )[원천]

사전식 해석에서 최소화할 표현식 목록을 설정합니다. exprs는 최소화된 목적 함수의 정렬된 시퀀스여야 합니다.

인수는 선형 표현식 목록으로 변환됩니다. 목록 요소에 허용되는 유형은 변수( docplex.mp.dvar.Var클래스의 인스턴스), 선형 표현식(의 인스턴스 docplex.mp.linear.LinearExpr) 또는 숫자입니다.

경고

이 방법에는 CPLEX 12.9 이상이 필요합니다.

매개변수:
  • exprs – 선형 표현식 또는 변수 목록
  • abstols – 정의된 경우 exprs 인수 와 크기가 동일한 절대 허용 오차 목록입니다 .
  • reltols – 정의된 경우 exprs 인수 와 크기가 같은 상대 허용 오차 목록 .
  • objnames – 정의된 경우 exprs 인수 와 크기가 같은 목표의 이름 목록입니다 .

버전 2.9의 새로운 기능

mip_starts

docplex.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_range_constraints()

number_of_mip_starts

이 속성은 모델과 연결된 MIP 시작 수를 반환합니다.

버전 2.10의 새로운 기능

number_of_progress_listeners

모델에 첨부된 진행 리스너의 수를 반환합니다.

보고:
정수
number_of_pwl_constraints

이 속성은 모델의 총 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_expr

이 속성은 모델 목표로 사용되는 표현식을 가져오거나 설정하는 데 사용됩니다.

objective_sense

docplex.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
Returns:
The root parameter group, an instance of the ParameterGroup class.
piecewise(preslope, breaksxy, postslope, name=None)[source]

Adds a piecewise linear function (PWL) to the model, using breakpoints to specify the function.

Parameters:
  • preslope – Before the first segment of the PWL function there is a half-line; its slope is specified by this argument.
  • breakxy – PWL 기능의 세그먼트를 정의하는 좌표 쌍 목록 (x[i], y[i]) .
  • 포스트슬로프 – 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(-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)
보고:
새로 추가된 부분 선형 함수.
piecewise_as_slopes( slopebreaksx , lastslope , anchor=(0 , 0) , name=None )[원천]

기울기 및 x 좌표 목록을 사용하여 모델에 구분 선형 함수(PWL)를 추가합니다.

매개변수:
  • slopebreaksx  이전 중단점(또는 없는 경우 마이너스 무한대)과 x- 좌표 breakx[i] . 불연속성을 나타내기 위해 breakx[i] 에 대해 동일한 값을 가진 두 개의 연속 쌍이 사용됩니다. 두 번째 쌍의 기울기[i] 값은 불연속 간격입니다.
  • lastslope – 마지막 지정된 중단점 이후의 기울기.
  • anchor – '앵커 포인트'의 좌표입니다. 앵커 포인트의 목적은 슬로프 및 중단점 목록으로 지정된 조각별 선형 함수를 접지하는 것입니다.
  • 이름 – 선택적 이름입니다.

예:

# 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))
보고:
새로 추가된 부분 선형 함수.
populate( **kwargs ) 

솔루션 풀을 채우고 반환합니다.

솔루션 풀 개체를 반환하거나 모델 해결이 실패하면 None을 반환합니다.

이 메서드는 와 동일한 키워드 인수를 허용합니다 Model.solve(). Model.solve()자세한 내용은 의 문서를 참조하십시오 .

보고:
docplex.mp.solution.SolutionPool또는 None 의 인스턴스 .

또한보십시오

docplex.mp.solution.SolutionPool.

버전 2.16의 새로운 기능

populate_solution_pool( **kwargs )[원천]

솔루션 풀을 채우고 반환합니다.

솔루션 풀 개체를 반환하거나 모델 해결이 실패하면 None을 반환합니다.

이 메서드는 와 동일한 키워드 인수를 허용합니다 Model.solve(). Model.solve()자세한 내용은 의 문서를 참조하십시오 .

보고:
docplex.mp.solution.SolutionPool또는 None 의 인스턴스 .

또한보십시오

docplex.mp.solution.SolutionPool.

버전 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:
  • print_zeros (Boolean) – If False, only non-zero values are printed. Default is False.
  • solution_header_fmt – a solution header string in format syntax, or None. This format will be passed to docplex.mp.solution.SolveSolution.display().
  • var_value_fmt – A format string to format the variable name and value. Again, the default uses the automatically computed precision.

See also

docplex.mp.solution.SolveSolution.display()

problem_type

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,

New in version 2.20
quad_expr(name=None)[source]

Returns a new empty quadratic expression.

Returns:
An empty instance of docplex.mp.quad.QuadExpr.
quadratic_dual_slacks(*args)[source]

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 – 부동 소수점 숫자.
  • expr – 선형 표현식(예: X+Y+Z).
  • ub – lb 보다 커야 하는 부동 소수점 숫자입니다 .
  • rng_name – 범위 제약 조건의 선택적 이름입니다.
새로 생성된 범위 제약 조건입니다.
lb 가 ub 보다 큰 경우 예외입니다 .
read_basis_file( bas_path )[원천]

CPLEX 기반 상태 파일을 읽습니다.

이 메소드에는 CPLEX 런타임이 필요합니다.

매개변수:
bas_path – 기본 파일의 경로(확장자는 '.bas')

버전 2.10의 새로운 기능

read_mip_starts( mst_path )[원천]

읽기 MIP는 파일에서 시작됩니다.

파일을 읽고 (솔루션, 노력 수준) 튜플 목록을 반환합니다.

매개변수:보고:
mst_path – mip 시작 파일의 경로(CPLEX MST 파일 형식)
크기 2의 튜플 목록; 첫 번째 요소는 SolveSolution 의 인스턴스 이고 두 번째 요소는 EffortLevel 유형의 열거된 값입니다.
  • 버전 2.10의 새로운 기능*
read_priority_order_file( ord_path )[원천]

CPLEX 우선 순위 순서 파일을 읽습니다.

이 메소드에는 CPLEX 런타임이 필요합니다.

매개변수:
ord_path – 우선 순위 파일의 경로(확장자는 '.ord')

버전 2.10의 새로운 기능

reduced_costs( dvars )[원천]

iterable 변수의 감소된 비용을 반환합니다.

참고: 모델은 순수 LP여야 합니다. 정수 또는 이진 변수, 조각별, SOS가 없어야 합니다. 또한 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.
매개변수:보고:
dvars – 일련의 변수.
변수 시퀀스와 동일한 순서로 부동 숫자 목록.
remove( 제거됨 )[원천]

이 방법은 모델에서 제약 조건 또는 제약 조건 컬렉션을 제거합니다.

매개변수:
제거됨 – 제약 조건 또는 제약 조건(선형, 범위, 2차, 표시기)에 대한 반복 가능 항목을 수용합니다.
remove_constraint( ct_arg )[원천]

모델에서 구속조건을 제거합니다.

매개변수:
ct_arg – 제거할 제약 조건입니다. 제약 조건 개체 또는 문자열을 허용합니다. 문자열이 전달되면 해당 이름의 제약 조건을 찾습니다.
remove_constraints( cts=없음 , 오류='경고' )[원천]

이 방법은 모델에서 제약 조건 배치를 제거합니다.

매개변수:
cts – 반복 가능한 제약 조건(선형, 범위, 2차, 지표)
remove_kpi( kpi_arg )[원천]

모델에서 핵심 성과 지표를 제거합니다.

매개변수:
kpi_arg – 이전에 모델에 추가된 KPI 인스턴스입니다. KPI 개체 또는 문자열을 허용합니다. 문자열이 전달되면 해당 이름의 KPI를 찾습니다.
remove_objective( )[원천]

현재 목표를 지웁니다.

이는 "최소화 0"을 설정하는 것과 같습니다. 후속 해결은 실행 가능한 솔루션만 찾습니다. has_objective()모델을 호출하여 이 상태를 감지할 수 있습니다 .

remove_progress_listener( 청취자 )[원천]

모델에서 진행 리스너를 제거합니다.

매개변수:
청취자 
report( )[원천]

목표 및 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:
  • solution – an instance of SolveSolution. If not passed, the model solution is queried. If the model has no solution, an exception is raised.
  • selected_kpis – an optional iterable returning the KPIs to print. The default behavior is to print all kpis.
  • kpi_format – an optional format to print the KPi name and its value.

See also

docplex.mp.solution.SolveSolution new_solution()

static restore_numpy()[source]

Static method to restore numpy to its default state.

이 방법은 init_numpy(). numpy를 원래 상태로 복원하고 DOcplex에 대해 수행된 모든 사용자 지정을 취소합니다.

메모

이 메서드는 numpy가 없으면 아무 작업도 수행하지 않습니다.

또한보십시오

init_numpy()

round_solution

이 플래그는 정수 및 불연속 변수 값이 솔루션에서 반올림되는지 여부를 제어합니다. 반올림하지 않으면 이진 변수의 솔루션 값이 0.99999를 반환하는 경우가 발생할 수 있습니다. 기본값은 불연속 값을 반올림하지 않는 것입니다.

버전 2.15의 새로운 기능

scal_prod( 용어 , 계수 )[원천]

결정 변수 시퀀스와 계수 시퀀스의 스칼라 곱과 같은 선형 표현식을 생성합니다.

이 메서드는 두 인수에 대해 서로 다른 유형의 입력을 허용합니다. term은 반복 가능한 반환 표현식 또는 변수가 될 수 있으며 coefs는 일반적으로 반복 가능한 반환 숫자입니다. cal_prod는 또한 하나의 숫자를 coefs 로 받아들입니다 . 이 경우 스칼라 곱은 이 계수를 곱한 합계로 줄어듭니다.

매개변수:
  • 용어 – 반복 가능한 반환 변수 또는 표현식입니다.
  • coefs – 반복 가능한 반환 숫자 또는 숫자입니다.

메모

  • 두 iterable은 동시에 반복되므로 용어와 숫자가 반환되는 순서는 일관되어야 합니다. 정렬되지 않은 컬렉션(예: 집합)을 사용하면 예기치 않은 결과가 발생할 수 있습니다.
  • 하나의 iterable이 중지되는 즉시 반복이 중지됩니다. 두 iterable이 모두 비어 있으면 이 메서드는 0을 반환합니다.
보고:
선형 표현식 또는 0.
scal_prod_f( var_dict , coef_fn , assume_alldifferent=True ) 

변수 및 함수 사전에서 스칼라 곱을 만듭니다.

이 메서드는 dot 의 기능적 변형입니다 . xxx_var_dict 또는 xx_var_var_matrix(여기서 xxx는 유형임) 및 함수에 의해 반환되는 변수 사전을 인수로 사용합니다.

매개변수:보고:
  • var_dict – 모든 xxx_var_dict 메서드(예: integer_var_dict)에서 반환되는 변수 사전뿐만 아니라 xxx_var_matrix(또는 var_cube)와 같은 다차원 사전도 반환합니다.
  • coef_fn – 하나의 사전 키를 취하고 숫자를 반환하는 함수입니다. 1차원 사전(예: integer_var_dict)에는 키로 일반 개체가 있지만 다차원 사전에는 튜플 키가 있습니다. 예를 들어, binary_var_matrix는 키가 2-튜플인 사전을 반환합니다.
  • assume_alldifferent – ​​사전의 변수 값이 모두 다른 것으로 가정할 수 있는지 여부를 나타내는 선택적 플래그입니다. 이것은 사전이 Docplex의 Model.xxx_var-dict()에 의해 구축된 경우에 해당되며 이것이 기본 동작입니다. 사용자 정의 사전의 경우 플래그를 False로 설정하십시오. 잘못된 플래그 값은 잘못된 결과를 가져올 수 있습니다.
사전에 있는 모든 변수의 스칼라 곱으로 작성된 표현식에 함수 결과를 곱한 것입니다.

>>> 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=없음 , 이름=없음 )[원천]

새로운 반연속 의사결정 변수를 생성하고 모델에 저장합니다.

매개변수:보고:반환 유형:
  • lb – 변수의 하한값(양수여야 함).
  • ub – 변수의 상한값 또는 기본값을 사용하기 위한 없음. 기본값은 모델 무한대입니다.
  • name ( string ) – 변수의 선택적 이름입니다.
유형이 있는 결정 변수입니다 docplex.mp.vartype.SemiContinuousVarType.
docplex.mp.dvar.Var
semicontinuous_var_dict(  , lb , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

키 개체로 인덱싱된 반연속 결정 변수의 사전을 만듭니다.

비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.

키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.

메모

키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.

매개변수:Returns:
  •  – 일련의 객체, 반복자 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – 변수의 하한. 부동 소수점 숫자, 숫자 목록 또는 함수를 허용합니다. 모든 변수가 동일한 하한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 하한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 .
  • ub – 변수의 상한. 부동 소수점 숫자, 숫자 목록, 함수 또는 None을 허용합니다. 모든 변수가 동일한 상한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 상한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 없음은 기본 상한값(모델 무한대)이 사용됨을 의미합니다.
  • name – Used to name variables. Accepts either a string or a function. If given a string, the variable name is formed by appending the string to the string representation of the key object (if keys is a sequence) or the index of the variable within the range, if an integer argument is passed. If passed a function, this function is called on each key object to generate a name. The default behavior is to call str() on each key object.
  • key_format – A format string or None. This format string describes how keys contribute to variable names. The default is “_%s”. For example if name is “x” and each key object is represented by a string like “k1”, “k2”, … then variables will be named “x_k1”, “x_k2”,…
 의 객체로 인덱싱된 객체 사전 ( SemiIntegerVarTypedocplex.mp.dvar.Var 유형 포함 ) .

또한보십시오

infinity

semicontinuous_var_list(  , lb , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

유형의 반연속 결정 변수 목록을 생성하고 docplex.mp.vartype.SemiContinuousVarType모델에 저장한 다음 목록을 반환합니다.

매개변수:
  •  – 일련의 개체 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – Lower bounds of the variables. Accepts either a floating-point number, a list of numbers, or a function. Use a number if all variables share the same lower bound. Otherwise either use an explicit list of numbers or use a function if lower bounds vary depending on the key, in which case, the function will be called on each key in keys. Note that the lower bound of a semi-continuous variable must be strictly positive.
  • ub – Upper bounds of the variables. Accepts either a floating-point number, a list of numbers, a function, or None. Use a number if all variables share the same upper bound. Otherwise either use an explicit list of numbers or use a function if upper bounds vary depending on the key, in which case, the function will be called on each key in keys. None means the default upper bound (model infinity) is used.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체( 키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다 . 함수가 전달되면 이 함수는 이름을 생성하기 위해 각 키 개체에서 호출됩니다. 기본 동작은 str()각 키 개체를 호출하는 것입니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...

메모

키가 빈 목록 이거나 정수 0이면 빈 목록이 반환됩니다.

보고:
docplex.mp.dvar.Var유형이 있는 개체 목록입니다 docplex.mp.vartype.SemiContinuousVarType.

또한보십시오

infinity

semicontinuous_var_matrix( 키1 , 키2 , lb , ub=없음 , 이름=없음 , key_format=없음 )[원천]

키 개체 쌍으로 인덱싱된 반연속 의사 결정 변수의 사전을 만듭니다.

두 키의 튜플에서 변수 검색을 허용하는 사전을 생성합니다. 첫 번째 키는 keys1 에서 , 두 번째 키는 키2 에서 가져옵니다 . 즉, 변수는 두 키 세트의 데카르트 곱으로 인덱싱됩니다.

키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다.

인수 lb , ub , name  key_format 은 in 으로 해석됩니다 semiinteger_var_dict().

버전 2.9의 새로운 기능

semicontinuous_vartype

이 속성은 의 인스턴스를 반환합니다 docplex.mp.vartype.SemiContinuousVarType.

이 유형 인스턴스는 모델의 모든 반연속 변수 컬렉션을 구축하는 데 사용됩니다.

semiinteger_var( lb , ub=없음 , 이름=없음 )[원천]

새로운 반정수 결정 변수를 생성하고 모델에 저장합니다.

매개변수:보고:반환 유형:
  • lb – 변수의 하한값(양수여야 함).
  • ub – 변수의 상한값 또는 기본값을 사용하기 위한 없음. 기본값은 모델 무한대입니다.
  • name ( string ) – 변수의 선택적 이름입니다.
유형이 있는 결정 변수입니다 docplex.mp.vartype.SemiIntegerVarType.
docplex.mp.dvar.Var
semiinteger_var_dict(  , lb , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

키 개체로 인덱싱된 반정수 결정 변수의 사전을 만듭니다.

비즈니스 모델 개체에서 변수 검색을 허용하는 사전을 만듭니다. 키는 Python 컬렉션, 반복자 또는 생성기일 수 있습니다.

키는 None을 제외한 모든 파이썬 객체가 될 수 있습니다. 키는 변수 이름 지정에 사용됩니다.

메모

키가 비어 있으면 이 메서드는 빈 사전을 반환합니다. 반환된 사전은 수정하면 안 됩니다.

매개변수:보고:
  •  – 일련의 객체, 반복자 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – 변수의 하한. 부동 소수점 숫자, 숫자 목록 또는 함수를 허용합니다. 모든 변수가 동일한 하한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 하한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 .
  • ub – 변수의 상한. 부동 소수점 숫자, 숫자 목록, 함수 또는 None을 허용합니다. 모든 변수가 동일한 상한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 상한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 없음은 기본 상한값(모델 무한대)이 사용됨을 의미합니다.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체( 키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다 . 함수가 전달되면 이 함수는 이름을 생성하기 위해 각 키 개체에서 호출됩니다. 기본 동작은 str()각 키 개체를 호출하는 것입니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...
 의 객체로 인덱싱된 객체 사전 ( SemiIntegerVarTypedocplex.mp.dvar.Var 유형 포함 ) .

또한보십시오

infinity

semiinteger_var_list(  , lb , ub=없음 , name=<class 'str'> , key_format=없음 )[원천]

유형이 있는 반정수 결정 변수 목록을 생성하고 docplex.mp.vartype.SemiIntegerVarType모델에 저장한 다음 목록을 반환합니다.

매개변수:
  •  – 일련의 개체 또는 양의 정수입니다. 정수를 전달하면 생성할 변수의 수로 해석됩니다.
  • lb – 변수의 하한. 부동 소수점 숫자, 숫자 목록 또는 함수를 허용합니다. 모든 변수가 동일한 하한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 하한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 반정수 변수의 하한은 양수여야 합니다.
  • ub – 변수의 상한. 부동 소수점 숫자, 숫자 목록, 함수 또는 None을 허용합니다. 모든 변수가 동일한 상한을 공유하는 경우 숫자를 사용하십시오. 그렇지 않으면 명시적인 숫자 목록을 사용하거나 상한이 키에 따라 달라지는 경우 함수를 사용하십시오. 이 경우 함수는  의 각  에서 호출됩니다 . 없음은 기본 상한값(모델 무한대)이 사용됨을 의미합니다.
  • name – 변수 이름을 지정하는 데 사용됩니다. 문자열이나 함수를 허용합니다. 문자열이 주어지면 변수 이름은 키 개체( 키가 시퀀스인 경우)의 문자열 표현에 문자열을 추가하거나 정수 인수가 전달되는 경우 범위 내 변수의 인덱스에 추가하여 구성됩니다 . 함수가 전달되면 이 함수는 이름을 생성하기 위해 각 키 개체에서 호출됩니다. 기본 동작은 str()각 키 개체를 호출하는 것입니다.
  • key_format – 형식 문자열 또는 없음. 이 형식 문자열은 키가 변수 이름에 기여하는 방식을 설명합니다. 기본값은 "_%s"입니다. 예를 들어 이름이 "x"이고 각 키 개체가 "k1", "k2", ...와 같은 문자열로 표시되면 변수 이름은 "x_k1", "x_k2",...

메모

When keys is either an empty list or the integer 0, an empty list is returned.

Returns:
A list of docplex.mp.dvar.Var objects with type docplex.mp.vartype.SemiIntegerVarType.

See also

infinity

semiinteger_var_matrix(keys1, keys2, lb, ub=None, name=None, key_format=None)[source]

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_vartype

This 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

Parameters:
  • sense – Either an instance of docplex.mp.basic.ObjectiveSense (Minimize or Maximize), or a string: “min” or “max”.
  • exprs – 표현식 목록으로 변환됩니다. 이 목록 항목에 허용되는 유형은 변수, 선형 표현식 또는 숫자입니다.
  • abstols – 정의된 경우 exprs 인수 와 크기가 동일한 절대 허용 오차 목록입니다 .
  • reltols – 정의된 경우 exprs 인수 와 크기가 같은 상대 허용 오차 목록 .
  • 이름 – 정의된 경우 exprs 인수 와 크기가 같은 목표의 이름 목록 .

메모

목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.

버전 2.9의 새로운 기능.

set_lp_start_basis( dvar_stats , lct_stats )[원천]

LP 문제에 대한 초기 기반을 제공합니다.

매개변수:
  • dvar_stats – 모델의 각 결정 변수에 대해 하나씩 기본 상태 개체의 순서가 지정된 시퀀스(목록)입니다.
  • lct_stats – 기본 상태 개체의 순서가 지정된 시퀀스(목록), 모델의 각 선형 제약 조건에 대해 하나씩

메모

기본 상태는 열거된 유형의 값입니다 docplex.mp.constants.BasisStatus.

또한보십시오

docplex.mp.constants.BasisStatus.

  • 버전 2.10의 새로운 기능*
set_multi_objective( 감각 , exprs , 우선순위=없음 , 가중치=없음 , abstols=없음 , reltols=없음 , 이름=없음 )[원천]

목표 목록을 설정합니다.

경고

이 방법에는 CPLEX 12.9 이상이 필요합니다.

매개변수:
  • sense – (Minimize 또는 Maximize)의 인스턴스 docplex.mp.basic.ObjectiveSense또는 "min" 또는 "max" 문자열입니다.
  • exprs – 표현식 목록으로 변환됩니다. 이 목록 항목에 허용되는 유형은 변수, 선형 표현식 또는 숫자입니다.
  • 우선 순위 – exprs 인수 와 크기가 같은 우선 순위 목록입니다 . 우선순위는 목표가 하위 문제로 함께 그룹화되는 방법과 이러한 하위 문제가 해결되는 순서(우선순위 내림차순)를 정의합니다. 정의되지 않은 경우 모든 표현식은 동일한 우선 순위를 공유하는 것으로 간주되며 가중치 와 결합됩니다 .
  • weights – 정의된 경우 exprs 인수 와 동일한 크기를 갖는 가중치 목록 . 가중치는 우선 순위가 같은 목표가 함께 혼합되어 최적화된 관련 하위 문제의 목표를 정의하는 방법을 정의합니다. 정의되지 않은 경우 가중치는 모두 1로 간주됩니다.
  • abstols – 정의된 경우 exprs 인수 와 크기가 동일한 절대 허용 오차 목록입니다 .
  • reltols – 정의된 경우 exprs 인수 와 크기가 같은 상대 허용 오차 목록 .
  • 이름 – 정의된 경우 exprs 인수 와 크기가 같은 목표의 이름 목록 .

메모

목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.

버전 2.9의 새로운 기능.

set_multi_objective_abstols( 절대 )[원천]

여러 목표에 대한 절대 공차를 변경합니다.

매개변수:
abstols – 새로운 절대 공차. 숫자(모든 목표에 적용) 또는 일련의 숫자일 수 있습니다. 시퀀스는 목표 수와 길이가 같아야 합니다.

버전 2.16의 새로운 기능

set_multi_objective_exprs( exprs , 우선순위=없음 , 가중치=없음 , abstols=없음 , reltols=없음 , 이름=없음 )[원천]

혼합 목표 목록을 정의합니다.

우선 순위가 같은 목표는 가중치를 사용하여 결합됩니다. 그런 다음 우선 순위를 낮추어 사전식 방식으로 목표를 최적화합니다.

매개변수:
  • exprs – 선형 표현식 목록으로 변환됩니다. 이 목록 항목에 허용되는 유형은 변수, 선형 표현식 또는 숫자입니다.
  • 우선 순위 - 정의된 경우 exprs 인수 와 크기가 같은 우선 순위 목록입니다 . 우선순위는 목표가 하위 문제로 함께 그룹화되는 방법과 이러한 하위 문제가 해결되는 순서(우선순위 내림차순)를 정의합니다.
  • weights – 정의된 경우 exprs 인수 와 동일한 크기를 갖는 가중치 목록 . 가중치는 우선 순위가 같은 목표가 함께 혼합되어 최적화된 관련 하위 문제 목표를 정의하는 방법을 정의합니다.
  • abstols – 정의된 경우 exprs 인수 와 크기가 동일한 절대 허용 오차 목록입니다 .
  • reltols – 정의된 경우 exprs 인수 와 크기가 같은 상대 허용 오차 목록 .
  • 이름 – 정의된 경우 exprs 인수 와 크기가 같은 목표의 이름 목록 .

메모

목표에 숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.

버전 2.9의 새로운 기능.

set_multi_objective_reltols( 렐톨 )[원천]

여러 목표에 대한 상대 공차를 변경합니다.

매개변수:
reltols – 새로운 상대 공차. 숫자(모든 목표에 적용) 또는 일련의 숫자일 수 있습니다. 시퀀스는 목표 수와 길이가 같아야 합니다.

버전 2.16의 새로운 기능

set_objective( 감각 , expr )[원천]

새로운 목표를 설정합니다.

매개변수:
  • sense – (Minimize 또는 Maximize)의 인스턴스 docplex.mp.basic.ObjectiveSense또는 "min" 또는 "max" 문자열입니다.
  • expr – 식으로 변환됩니다. 허용되는 유형은 변수, 선형 표현식, 이차 표현식 또는 숫자입니다.

메모

숫자를 사용하면 검색이 최적화되지 않고 실행 가능한 솔루션만 찾습니다.

set_time_limit( time_limit )[원천]

해결 작업에 대한 시간 제한을 설정합니다.

매개변수:
time_limit – 새로운 시간 제한. 양수여야 합니다.
slack_values( cts )[원천]

일련의 제약 조건에 대한 슬랙 값을 반환합니다.

여유 값은 선형, 2차 및 지표 제약 조건에 사용할 수 있습니다. 이 메서드를 호출하기 전에 모델을 성공적으로 해석해야 합니다.

매개변수:보고:
cts – 일련의 제약 조건.
제약 조건과 동일한 순서로 부동 소수점 값 목록.
solution

이 속성은 모델의 현재 솔루션을 반환하거나 모델이 아직 해결되지 않았거나 마지막 해결이 실패한 경우 None을 반환합니다.

solve( **kwargs )[원천]

모델에서 해결 작업을 시작합니다.

매개변수:보고:
  • context ( 선택 사항 ) – 이 모델이 빌드된 컨텍스트 대신 사용할 컨텍스트의 인스턴스입니다.
  • cplex_parameters ( 선택 사항 ) – 로 정의된 매개변수 대신 사용할 CPLEX 매개변수 세트입니다 context.cplex_parameters. RootParameterGroup 개체(모델의 매개 변수를 복제하여 얻음) 또는 경로와 같은 이름 및 값의 사전을 허용합니다.
  • checker ( 선택 사항 ) – 수행할 검사 유형을 제어하는 ​​문자열입니다. 가능한 값은 다음과 같습니다. - 'std'(기본값)는 메소드에 대한 인수에 대한 유형 검사를 수행합니다. 숫자 인수가 숫자인지 확인하지만 NaN 또는 무한대는 확인하지 않습니다. - 'numeric'은 숫자 인수가 NaN도 아닌 math.infinity도 아닌 유효한 숫자인지 확인합니다. - 'full'은 가능한 모든 확인, 'std' 및 'numeric' 확인의 합집합을 수행합니다. - 'off'는 검사를 전혀 수행하지 않습니다. 모든 검사를 비활성화하면 성능이 향상될 수 있지만 그렇게 하는 것이 안전한 경우에만 가능합니다.
  • log_output ( 선택 사항 ) – if 이면 True솔버 로그가 stdout으로 출력됩니다. 스트림인 경우 솔버 로그가 해당 스트림 객체로 출력됩니다. 매개변수를 덮어씁니다 context.solver.log_output .
  • clean_before_solve ( 선택 사항 ) – 부울(기본값은 False). 해결은 일반적으로 이전 해결이 남아 있는 위치를 선택하지만 이 플래그가 로 설정되면 True이전 해결에 대한 모든 내용을 잊어버리고 새로운 해결이 시작됩니다.
  • parameter_sets ( 선택 사항 ) – 참조create_parameter_sets()
docplex.mp.solution.SolveSolution풀이 작업이 실행 가능한 솔루션을 생성한 경우 객체, 그렇지 않으면 없음 . solve가 None을 반환한 이유에는 오류뿐만 아니라 실행 불가능성 또는 무한성의 적절한 경우도 포함됩니다. solve가 None을 반환하면 Model.solve_details를 사용하여 최신 해결 작업의 상태를 확인합니다. Model.solve_details는 docplex.mp.sdetails.SolveDetails솔루션을 찾았는지 여부에 관계없이 항상 객체를 반환합니다. 이 개체에는 상태, 경과 시간, MILP 문제의 경우 처리된 노드 수 및 최종 간격과 같은 최신 해결 작업에 대한 자세한 정보가 포함되어 있습니다.
solve_details

이 속성은 의 인스턴스인 최신 해결에 대한 자세한 정보를 반환합니다 docplex.mp.solution.SolveDetails.

최신 해결이 솔루션 인스턴스를 반환한 경우 이 속성은 솔루션에 해당하는 해결 세부 정보를 반환합니다. 솔루션을 찾을 수 없는 경우(즉, 최신 해결 작업이 None을 반환함) 솔루션을 찾을 수 없는 이유(예: 실행 불가능성 또는 무한성)를 식별하는 CPLEX 코드를 포함하는 SolveDetails 객체를 여전히 반환합니다.

solve_status

마지막으로 성공한 해결의 해결 상태를 반환합니다.

모델이 성공적으로 해결된 경우 모델 솔루션에 저장된 상태를 반환합니다. 그렇지 않으면 None을 반환합니다.

보고:
마지막으로 성공한 해결의 해결 상태, 문자열 또는 없음.
solve_with_goals( 목표 , 감각='최소' , abstols=없음 , reltols=없음 , goal_names=없음 , write_pass_files=False , solution_callbackfn=없음 , **kwargs )[원천]

정렬된 목표 모음에서 해결을 수행합니다.

매개변수:
  • 목표 - 정렬된 선형 표현식 모음입니다.
  • senses – 순서가 지정된 일련의 감각, 하나의 감각 또는 없음을 수락합니다. 기본값은 없음이며, 이 경우 해석은 최소화 의미를 사용합니다. 각 감각은 감지 개체( ObjectiveSense.Minimize 또는 Maximize ) 이거나 문자열 "min" 또는 "max"일 수 있습니다.
  • abstols – if defined, accepts either a number or a list of numbers having the same size as the exprs argument, interpreted as absolute tolerances. If passed asingle number, this tolerance number will be used for all passes.
  • reltols – if defined, accepts either a number or a list of numbers having the same size as the exprs argument, interpreted as absolute tolerances. If passed asingle number, this tolerance number will be used for all passes.

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.

Returns:
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.
statistics

Returns statistics on the model.

Returns:
A new instance of docplex.mp.model_stats.ModelStatistics.
str_use_spaceThis boolean property controls the use of space separators when displaying the str()

표현식 표현(특히 제약 조건에서). str_use_space=False를 사용하면 제약 조건이 다음과 같이 인쇄됩니다. 2x+3y+5z <= 7

str_use_space=True를 사용하면 동일한 제약 조건이 다음과 같이 인쇄됩니다. 2 x + 3 y + 5 z <= 7

기본값은 False이며 압축된 표현을 인쇄합니다.

보고:
표현식의 문자열 표현에 공백 구분 기호가 사용되는 경우 참입니다.
sum( 인수 )[원천]

표현식 또는 변수에 대한 반복 가능 항목을 합산하는 표현식을 생성합니다. 이 메서드는 모든 유형의 표현식(4차 표현식, 선형 표현식, 변수, 상수)에 대해 반복 가능을 기대합니다.

메모

반환된 표현식은 결과가 2차가 되는 즉시 2차이고, 그렇지 않으면 선형 표현식을 반환하거나 iterable이 비어 있으면 0을 반환합니다.

매개변수:보고:
args – 표현식(2차 또는 선형), 변수 또는 상수에 대한 반복 가능.
Docplex 식입니다.
sum_squares( 인수 ) 

식의 제곱을 합한 2차 식을 만듭니다.

목록의 각 요소는 제곱되어 결과에 추가됩니다. 이차식은 제곱할 수 없으므로 허용되지 않습니다.

메모

이 메서드는 인수가 빈 목록 또는 반복기인 경우 0을 반환합니다.

매개변수:보고:
args – 선형 표현식, 변수 또는 숫자를 반환하는 이터러블입니다.
2차식(일정할 수 있음).
sum_vars( dvars )[원천]

변수를 합산하는 선형 표현식을 만듭니다.

이 방법은 Model.sum() 보다 빠르지 만 변수만 허용합니다.

매개변수:보고:
dvars - 반복 가능한 반환 변수.
변수의 합과 같은 선형 표현.

버전 2.10의 새로운 기능

sum_vars_all_different( 용어 )[원천]

결정 변수 목록의 합과 같은 선형 표현식을 생성합니다. 변수 시퀀스는 변수의 목록 또는 반복자입니다.

이 방법은 변수만 사용하고 표현식을 인수로 사용하지 않기 때문에 표준 일반 합산 방법보다 빠릅니다.

매개변수:보고:
용어 – 중복이 없는 변수에 대한 목록 또는 반복자.
변수의 합과 같은 선형 표현.

메모

변수 반복에 중복이 포함된 경우 이 함수는 잘못된 결과를 반환합니다.

sums( *인수 )[원천]

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차식(일정할 수 있음).
time_limit

이 속성은 이 모델에 대한 시간 제한을 가져오거나 설정하는 데 사용됩니다.

var( vartype , lb=없음 , ub=없음 , 이름=없음 )[원천]

결정 변수를 생성하고 모델에 저장합니다.

매개변수:보고:반환 유형:
  • vartype – 결정 변수의 유형입니다. 이 필드에는 추상 클래스의 구체적인 인스턴스가 필요합니다 docplex.mp.vartype.VarType.
  • lb – 변수의 하한. 기본값을 사용하려면 숫자 또는 없음입니다. 세 변수 유형 모두의 기본 하한은 0입니다.
  • ub – 변수 도메인의 상한. 유형의 기본값을 사용하려면 숫자 또는 None이 필요합니다. Binary의 기본 상한은 1이고, 그렇지 않으면 양의 무한대입니다.
  • name – 변수 이름을 지정하는 선택적 문자열입니다.
새로 생성된 결정 변수입니다.
docplex.mp.dvar.Var

메모

이 모델은 속성(각각 binary_vartype, integer_vartype, continuous_vartype)으로 액세스할 수 있는 BinaryVarType, IntegerVarType, ContinuousVarType의 로컬 인스턴스를 보유합니다.

var_basis_statuses( dvars )[원천]

변수 배치에 대한 기본 상태를 반환합니다.

매개변수:보고:
dvars - 반복 가능한 반환 변수.
유형의 기본 상태 목록 docplex.mp.constants.BasisStatus. 목록의 순서는 변수가 iterable에 의해 반환된 순서입니다.

버전 2.10의 새로운 기능

var_hypercube( vartype_spec , seq_of_keys , lb=없음 , ub=없음 , name=없음 , key_format=없음 )[원천]

임의 크기의 튜플로 인덱싱된 결정 변수의 사전을 만듭니다.

인수는 형식 인수가 전달되어야 한다는 점을 제외하면 xxx_var_matrix 형식의 메서드와 유사합니다.

매개변수:
  • vartype_spec –유형 사양: docplex.mp.VarType 클래스의 인스턴스 또는 vartype으로 변환할 수 있는 문자열을 허용합니다. 가능한 문자열은 다음과 같습니다.
  • seq_of_keys – 일련의 키 시퀀스. 다른 치수는 '목록', '매트릭스' 및 '큐브' 시리즈 방법으로 처리되므로 일반적으로 길이 >= 4입니다. 변수는 시퀀스를 형성하는 요소의 데카르트 곱에 의해 형성된 튜플에 의해 인덱싱됩니다. 모든 키 시퀀스는 비어 있지 않아야 합니다.

다른 모든 인수는 모든 "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의 새로운 기능

또한보십시오

docplex.mp.vartype.VarType

© 저작권 2016-2022, IBM®.

 

반응형

댓글