이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
intlinprog
혼합 정수 선형 계획법(MILP)
구문
설명
혼합 정수 선형 계획법 솔버입니다.
다음으로 지정된 문제의 최솟값을 구합니다.
f, x, intcon, b, beq, lb, ub는 벡터이고 A와 Aeq는 행렬입니다.
f, intcon, lb, ub를 벡터 또는 배열로 지정할 수 있습니다. 행렬 인수 항목을 참조하십시오.
참고
intlinprog
솔버는 솔버 기반 접근법에만 적용됩니다. 두 가지 최적화 접근법에 대한 설명은 먼저 문제 기반 접근법 또는 솔버 기반 접근법 중 선택하기 항목을 참조하십시오.
은 x
= intlinprog(problem
)problem
구조체를 사용하여 모든 솔버 입력값을 캡슐화합니다. mpsread
를 사용하여 MPS 파일에서 problem
구조체를 가져올 수 있습니다. 또는 prob2struct
를 사용하여 OptimizationProblem
객체에서 problem
구조체를 만들 수도 있습니다.
예제
입력 인수
출력 인수
제한 사항
해
x(intCon)
에서 정수 값을 가져야 하는 일부 성분이 정확하게는 정수가 아닐 때가 많습니다.intlinprog
는 정수의IntegerTolerance
내에서 모든 해 값을 정수로 간주합니다.정수여야 하는 모든 성분을 정확히 정수가 되도록 반올림하려면
round
함수를 사용하십시오.x(intcon) = round(x(intcon));
주의
해를 반올림하면 해가 실현 가능하지 않게 될 수 있습니다. 반올림 후 실현가능성을 확인합니다.
max(A*x - b) % See if entries are not too positive, so have small infeasibility max(abs(Aeq*x - beq)) % See if entries are near enough to zero max(x - ub) % Positive entries are violated bounds max(lb - x) % Positive entries are violated bounds
intlinprog
는 해 성분의 절댓값이2.1e9
를 초과하는 경우 정수 값을 갖도록 강제하지 않습니다. 해에 이러한 성분이 있을 경우intlinprog
가 경고 메시지를 표시합니다. 이러한 경고가 표시되면 해를 검토하여 해에서 정수 값을 가져야 하는 성분이 정수에 가까운지 확인하십시오.intlinprog
는f
의 계수,A
의 계수 또는ub
의 계수와 같이 문제에 포함된 성분의 절댓값이1e25
를 초과하는 것을 허용하지 않습니다. 이러한 문제에intlinprog
를 실행하려고 하면intlinprog
가 오류를 발생시킵니다.
팁
이진 변수를 지정하려면 변수를
intcon
에서 정수가 되도록 설정하고 이에 대한 하한과 상한으로 각각0
과1
을 지정하십시오.희소 선형 제약 조건 행렬
A
및Aeq
를 지정하면 메모리를 절약할 수 있습니다. 하지만,b
및beq
에는 희소 행렬을 사용할 수 없습니다.x0
인수를 포함시킬 경우intlinprog
는 더 나은 정수 실현가능점을 구할 때까지'rins'
와 유도 급강하 발견법에서 그 값을 사용합니다. 따라서x0
을 제공할 경우'Heuristics'
옵션을'rins-diving'
으로 설정하거나'rins'
를 사용하는 다른 설정을 사용하여 좋은 결과를 얻을 수 있습니다.정수 성분에 대한 논리형 인덱스(정수를 나타내는
1
을 값으로 갖는 이진 벡터를 의미함)를 제공하려면find
를 사용하여intcon
형식으로 변환하십시오. 예를 들면 다음을 입력합니다.logicalindices = [1,0,0,1,1,0,0]; intcon = find(logicalindices)
intcon = 1 4 5
intlinprog
는bintprog
를 대체합니다.intlinprog
를 사용하기 위해 이전bintprog
코드를 업데이트하려면 다음과 같이 변경하십시오.intcon
을1:numVars
로 설정합니다. 여기서numVars
는 문제에 포함된 변수의 개수입니다.lb
를zeros(numVars,1)
로 설정합니다.ub
를ones(numVars,1)
로 설정합니다.관련된 모든 옵션을 업데이트합니다.
optimoptions
를 사용하여intlinprog
에 대한 옵션을 만듭니다.bintprog
에 대한 호출을 다음과 같이 변경합니다.[x,fval,exitflag,output] = bintprog(f,A,b,Aeq,Beq,x0,options) % Change your call to: [x,fval,exitflag,output] = intlinprog(f,intcon,A,b,Aeq,Beq,lb,ub,x0,options)
대체 기능
앱
최적화 라이브 편집기 작업은 intlinprog
에 대한 시각적 인터페이스를 제공합니다.
버전 내역
R2014a에 개발됨참고 항목
linprog
| mpsread
| optimoptions
| prob2struct
| 최적화