主要内容GYdF4y2Ba

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。GYdF4y2Ba

intlinprogGYdF4y2Ba

혼합정수선형계획법(MILP)GYdF4y2Ba

설명GYdF4y2Ba

혼합정수선형계획법솔버입니다。GYdF4y2Ba

다음으로지정된문제의최솟값을구합니다。GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba FGYdF4y2Ba TGYdF4y2Ba xGYdF4y2Ba 受GYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba (GYdF4y2Ba intconGYdF4y2Ba )GYdF4y2Ba 是整数GYdF4y2Ba A.GYdF4y2Ba ⋅GYdF4y2Ba xGYdF4y2Ba ≤GYdF4y2Ba BGYdF4y2Ba A.GYdF4y2Ba EGYdF4y2Ba QGYdF4y2Ba ⋅GYdF4y2Ba xGYdF4y2Ba =GYdF4y2Ba BGYdF4y2Ba EGYdF4y2Ba QGYdF4y2Ba LGYdF4y2Ba BGYdF4y2Ba ≤GYdF4y2Ba xGYdF4y2Ba ≤GYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba .GYdF4y2Ba

f、 x、国际贸易公司、b、北京商学院、lb、ub는 벡터이고 A.와 Aeq는 행렬입니다.GYdF4y2Ba

f intcon磅,乌兰巴托를벡터또는배열로지정할수있습니다。GYdF4y2Ba행렬인수GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

참고GYdF4y2Ba

intlinprogGYdF4y2Ba솔버는솔버기반접근법에만적용됩니다。두가지최적화접근법에대한설명은GYdF4y2Ba먼저문제기반접근법또는솔버기반접근법중선택하기GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

예제GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2BaFGYdF4y2Ba,GYdF4y2BaintconGYdF4y2Ba,GYdF4y2BaA.GYdF4y2Ba,GYdF4y2BaBGYdF4y2Ba)GYdF4y2Ba는최솟값GYdF4y2Baf ' * xGYdF4y2Ba를구합니다。여기서는GYdF4y2BaintconGYdF4y2Ba의GYdF4y2BaxGYdF4y2Ba성분은 정수이고GYdF4y2Ba* x≤bGYdF4y2Ba이라는조건이적용됩니다。GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2BaFGYdF4y2Ba,GYdF4y2BaintconGYdF4y2Ba,GYdF4y2BaA.GYdF4y2Ba,GYdF4y2BaBGYdF4y2Ba,GYdF4y2BaAeqGYdF4y2Ba,GYdF4y2Ba说真的GYdF4y2Ba)GYdF4y2Ba는등식제약조건GYdF4y2BaAeq * x =说真的GYdF4y2Ba를추가로충족하는상태에서위에나와있는문제를풉니다。부등식이존재하지않을경우GYdF4y2Ba一个= []GYdF4y2Ba및GYdF4y2Bab=[]GYdF4y2Ba을설정하십시오。GYdF4y2Ba

예제GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2BaFGYdF4y2Ba,GYdF4y2BaintconGYdF4y2Ba,GYdF4y2BaA.GYdF4y2Ba,GYdF4y2BaBGYdF4y2Ba,GYdF4y2BaAeqGYdF4y2Ba,GYdF4y2Ba说真的GYdF4y2Ba,GYdF4y2Ba磅GYdF4y2Ba,GYdF4y2Ba乌兰巴托GYdF4y2Ba)GYdF4y2Ba는해가항상범위GYdF4y2BaLb≤x≤ubGYdF4y2Ba내에있도록GYdF4y2BaxGYdF4y2Ba의설계변수에대한하한및상한집합을정의합니다。부등식이존재하지않을경우GYdF4y2BaAeq=[]GYdF4y2Ba및GYdF4y2Ba说真的= []GYdF4y2Ba을설정하십시오。GYdF4y2Ba

예제GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2BaFGYdF4y2Ba,GYdF4y2BaintconGYdF4y2Ba,GYdF4y2BaA.GYdF4y2Ba,GYdF4y2BaBGYdF4y2Ba,GYdF4y2BaAeqGYdF4y2Ba,GYdF4y2Ba说真的GYdF4y2Ba,GYdF4y2Ba磅GYdF4y2Ba,GYdF4y2Ba乌兰巴托GYdF4y2Ba,GYdF4y2Bax0GYdF4y2Ba)GYdF4y2Ba은초기실현가능점GYdF4y2Bax0GYdF4y2Ba을사용하여최적화합니다。범위가존재하지않을경우GYdF4y2Balb=[]GYdF4y2Ba및GYdF4y2Baub=[]GYdF4y2Ba을설정하십시오。GYdF4y2Ba

예제GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2BaFGYdF4y2Ba,GYdF4y2BaintconGYdF4y2Ba,GYdF4y2BaA.GYdF4y2Ba,GYdF4y2BaBGYdF4y2Ba,GYdF4y2BaAeqGYdF4y2Ba,GYdF4y2Ba说真的GYdF4y2Ba,GYdF4y2Ba磅GYdF4y2Ba,GYdF4y2Ba乌兰巴托GYdF4y2Ba,GYdF4y2Bax0GYdF4y2Ba,GYdF4y2Ba选项GYdF4y2Ba)GYdF4y2Ba는GYdF4y2Ba选项GYdF4y2Ba에 지정된 최적화 옵션을 사용하여 최소화합니다. 이 옵션을 설정하려면GYdF4y2Ba最佳选择GYdF4y2Ba를사용하십시오。초기점이존재하지않을경우GYdF4y2Bax0 = []GYdF4y2Ba을설정하십시오。GYdF4y2Ba

예제GYdF4y2Ba

xGYdF4y2Ba= intlinprog (GYdF4y2Ba问题GYdF4y2Ba)GYdF4y2Ba은GYdF4y2Ba问题GYdF4y2Ba구조체를 사용하여 모든 솔버 입력값을 캡슐화합니다.GYdF4y2BampsreadGYdF4y2Ba를사용하여议员파일에서GYdF4y2Ba问题GYdF4y2Ba구조체를가져올수있습니다。또는GYdF4y2Baprob2structGYdF4y2Ba를사용하여GYdF4y2BaOptimizationProblemGYdF4y2Ba객체에서GYdF4y2Ba问题GYdF4y2Ba구조체를만들수도있습니다。GYdF4y2Ba

예제GYdF4y2Ba

[GYdF4y2BaxGYdF4y2Ba,GYdF4y2BafvalGYdF4y2Ba,GYdF4y2Ba出口滞后GYdF4y2Ba,GYdF4y2Ba输出GYdF4y2Ba) = intlinprog (GYdF4y2Ba___GYdF4y2Ba)GYdF4y2Ba는위에설명된임의의입력인수에대해GYdF4y2Bafval=f'*xGYdF4y2Ba, 종료 상황을 설명하는 값GYdF4y2Ba出口滞后GYdF4y2Ba, 그리고 최적화 과정에 대한 정보를 포함하는 구조체GYdF4y2Ba输出GYdF4y2Ba을반환합니다。GYdF4y2Ba

예제GYdF4y2Ba

모두축소GYdF4y2Ba

다음 문제를 풀어 보겠습니다.GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba 8.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba sGYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba JGYdF4y2Ba EGYdF4y2Ba CGYdF4y2Ba TGYdF4y2Ba TGYdF4y2Ba oGYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba 我GYdF4y2Ba sGYdF4y2Ba A.GYdF4y2Ba NGYdF4y2Ba 我GYdF4y2Ba NGYdF4y2Ba TGYdF4y2Ba EGYdF4y2Ba GGYdF4y2Ba EGYdF4y2Ba RGYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≥GYdF4y2Ba -GYdF4y2Ba 1.GYdF4y2Ba 4.GYdF4y2Ba -GYdF4y2Ba 4.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba -GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≤GYdF4y2Ba -GYdF4y2Ba 3.GYdF4y2Ba 3.GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≤GYdF4y2Ba 2.GYdF4y2Ba 0GYdF4y2Ba .GYdF4y2Ba

목적함수벡터와정수변수로구성된벡터를작성합니다。GYdF4y2Ba

f = [8; 1];intcon = 2;GYdF4y2Ba

“보다 큼” 부등식에GYdF4y2Ba-1GYdF4y2Ba을 곱하여 모든 부등식을GYdF4y2BaA * x < =GYdF4y2Ba형식으로변환합니다。GYdF4y2Ba

一个=[1、2;4、1;2、1];b = [14; -33; 20];GYdF4y2Ba

intlinprogGYdF4y2Ba를 호출합니다.GYdF4y2Ba

x = intlinprog (f, intcon, A, b)GYdF4y2Ba
LP:最佳目标值为59000000。找到最优解。Intlinprog在根节点停止,因为客观值在最优值options的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba
x =GYdF4y2Ba2×1GYdF4y2Ba6.5000 7.0000GYdF4y2Ba

다음 문제를 풀어 보겠습니다.GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba (GYdF4y2Ba -GYdF4y2Ba 3.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba -GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba -GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba )GYdF4y2Ba sGYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba JGYdF4y2Ba EGYdF4y2Ba CGYdF4y2Ba TGYdF4y2Ba TGYdF4y2Ba oGYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba BGYdF4y2Ba 我GYdF4y2Ba NGYdF4y2Ba A.GYdF4y2Ba RGYdF4y2Ba YGYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba ,GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≥GYdF4y2Ba 0GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba ≤GYdF4y2Ba 7.GYdF4y2Ba 4.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba =GYdF4y2Ba 1.GYdF4y2Ba 2.GYdF4y2Ba .GYdF4y2Ba

목적함수벡터와정수변수로구성된벡터를작성합니다。GYdF4y2Ba

f=[-3;-2;-1];intcon=3;GYdF4y2Ba

선형 부등식 제약 조건을 작성합니다.GYdF4y2Ba

一个= (1 1 1);b = 7;GYdF4y2Ba

선형 등식 제약 조건을 작성합니다.GYdF4y2Ba

Aeq=[4,2,1];beq=12;GYdF4y2Ba

범위제약조건을작성합니다。GYdF4y2Ba

磅= 0 (3,1);乌兰巴托=[正,正无穷;1];GYdF4y2Ba%强制x(3)是二进制的GYdF4y2Ba

intlinprogGYdF4y2Ba를 호출합니다.GYdF4y2Ba

x = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托)GYdF4y2Ba
LP:最佳目标值为- 1200万。找到最优解。Intlinprog在根节点停止,因为客观值在最优值options的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba
x =GYdF4y2Ba3×1GYdF4y2Ba0 5.5000 1.0000GYdF4y2Ba

초기 실현가능점을 사용하는 경우와 사용하지 않는 경우에 정수 계획법 문제를 푸는 데 실행되는 스텝의 개수를 비교합니다. 문제에는 8.개의 변수와 4.개의 선형 등식 제약 조건이 있으며 모든 변수가 양수로 제한됩니다.GYdF4y2Ba

선형등식제약조건행렬과벡터를정의합니다。GYdF4y2Ba

Aeq=[2213263321314269162826263023414272730826264126283618381626];beq=[7872104661132212058];GYdF4y2Ba

모든 변수를 음이 아닌 수로 제한하는 하한을 설정합니다.GYdF4y2Ba

N = 8;1磅= 0 (N);GYdF4y2Ba

모든변수가정수값을갖는다고지정합니다。GYdF4y2Ba

intcon = 1: N;GYdF4y2Ba

목적함수벡터GYdF4y2BaFGYdF4y2Ba를설정합니다。GYdF4y2Ba

f=[210131773];GYdF4y2Ba

초기점을사용하지않고문제를푼후표시내용을검토하여분기한정노드의개수를확인합니다。GYdF4y2Ba

(x1, fval1, exitflag1 output1] = intlinprog (f intcon [] [], Aeq,说真的,磅);GYdF4y2Ba
LP:最佳目标值为1554.047531。切割世代:应用了8个强大的CG切割。下界是1591.000000。分支与Bound:节点总数int integer相对探索时间(s)解fval gap (%) 10000 0.80 0 - - 18027 1.31 1 2.906000e+03 4.509804e+01 21859 1.65 2 2.073000e+03 2.270974e+01 23546 1.78 3 1.854000e+03 1.180593e+01 24121 1.82 3 1.854000e+03 1.563342e+00 24294 1.84 3 1.854000e+03 0.000000e+00已找到最优解。Intlinprog停止是因为客观值在最优值选项的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba

비교를위해초기실현가능점을사용하여해를구합니다。GYdF4y2Ba

X0 = [8 62 23 103 53 84 46 34];(x2, fval2 exitflag2 output2] = intlinprog (f intcon [] [], Aeq,说真的,磅,[],x0);GYdF4y2Ba
LP:最佳目标值为1554.047531。切割世代:应用了8个强大的CG切割。下界是1591.000000。相对差距为59.20%。分支与界:节点总数int整数相对探索时间(s)解fval gap (%) 3627 0.43 2 2.154000e+03 2.593968e+01 5844 0.61 3 1.854000e+03 1.180593e+01 6204 0.64 3 1.854000e+03 1.455526e+00 6400 0.66 3 1.854000e+03 0.000000e+00已找到的最优解。Intlinprog停止是因为客观值在最优值选项的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba
  • 초기점을사용하지않는경우GYdF4y2BaintlinprogGYdF4y2Ba는약30000개의분기한정스텝을실행합니다。GYdF4y2Ba

  • 초기점을사용하는경우GYdF4y2BaintlinprogGYdF4y2Ba는약5000개의스텝을실행합니다。GYdF4y2Ba

초기점을제공하는것이항상도움이되는것은아닙니다。이문제에서는초기점을제공함으로써시간과계산스텝을절약할수있습니다。그러나,일부문제에서는초기점을제공할경우GYdF4y2BaintlinprogGYdF4y2Ba가더많은스텝을실행하게될수있습니다。GYdF4y2Ba

다음 문제를 풀어 보겠습니다.GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba (GYdF4y2Ba -GYdF4y2Ba 3.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba -GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba -GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba )GYdF4y2Ba sGYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba JGYdF4y2Ba EGYdF4y2Ba CGYdF4y2Ba TGYdF4y2Ba TGYdF4y2Ba oGYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba BGYdF4y2Ba 我GYdF4y2Ba NGYdF4y2Ba A.GYdF4y2Ba RGYdF4y2Ba YGYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba ,GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≥GYdF4y2Ba 0GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba ≤GYdF4y2Ba 7.GYdF4y2Ba 4.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba =GYdF4y2Ba 1.GYdF4y2Ba 2.GYdF4y2Ba

이때 반복 과정은 표시하지 않습니다.GYdF4y2Ba

솔버입력값을지정합니다。GYdF4y2Ba

f=[-3;-2;-1];intcon=3;A=[1,1,1];b=7;Aeq=[4,2,1];beq=12;lb=0(3,1);ub=[Inf;Inf;1];GYdF4y2Ba%强制x(3)是二进制的GYdF4y2Bax0=[];GYdF4y2Ba

반복 과정을 표시하지 않도록 지정합니다.GYdF4y2Ba

选择= optimoptions (GYdF4y2Ba“intlinprog”GYdF4y2Ba,GYdF4y2Ba“显示”GYdF4y2Ba,GYdF4y2Ba“关闭”GYdF4y2Ba);GYdF4y2Ba

솔버를실행합니다。GYdF4y2Ba

x = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托,x0,选项)GYdF4y2Ba
x =GYdF4y2Ba3×1GYdF4y2Ba0 5.5000 1.0000GYdF4y2Ba

이예제에서는문제기반접근법을사용하여문제를설정한다음솔버기반접근법을사용하여이문제를푸는방법을보여줍니다。문제는다음과같습니다。GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba (GYdF4y2Ba -GYdF4y2Ba 3.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba -GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba -GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba )GYdF4y2Ba sGYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba JGYdF4y2Ba EGYdF4y2Ba CGYdF4y2Ba TGYdF4y2Ba TGYdF4y2Ba oGYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba BGYdF4y2Ba 我GYdF4y2Ba NGYdF4y2Ba A.GYdF4y2Ba RGYdF4y2Ba YGYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba ,GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≥GYdF4y2Ba 0GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba ≤GYdF4y2Ba 7.GYdF4y2Ba 4.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba =GYdF4y2Ba 1.GYdF4y2Ba 2.GYdF4y2Ba

이문제를나타내는GYdF4y2Ba概率GYdF4y2Ba라는GYdF4y2BaOptimizationProblemGYdF4y2Ba객체를만듭니다。이진변수를지정하려면하한이0이고상한이1인정수형의최적화변수를만드십시오。GYdF4y2Ba

x = optimvar (GYdF4y2Ba“x”GYdF4y2Ba2,GYdF4y2Ba下界的GYdF4y2Ba, 0);xb = optimvar (GYdF4y2Ba“xb”GYdF4y2Ba,GYdF4y2Ba下界的GYdF4y2Ba0,GYdF4y2Ba“上限”GYdF4y2Ba, 1GYdF4y2Ba“类型”GYdF4y2Ba,GYdF4y2Ba“整数”GYdF4y2Ba);概率= optimproblem (GYdF4y2Ba“目标”GYdF4y2Ba3 * x (1) 2 * (2) xb);Cons1 = sum(x) + xb <= 7;con2 = 4*x(1) + 2*x(2) + xb = 12;prob.Constraints。cons1 = cons1;prob.Constraints。cons2 = cons2;GYdF4y2Ba

문제객체를문제구조체로변환합니다。GYdF4y2Ba

问题= prob2struct(概率);GYdF4y2Ba

결과로 생성된 문제 구조체를 풉니다.GYdF4y2Ba

[溶胶,fval exitflag、输出]= intlinprog(问题)GYdF4y2Ba
LP:最佳目标值为- 1200万。找到最优解。Intlinprog在根节点停止,因为客观值在最优值options的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba
索尔=GYdF4y2Ba3×1GYdF4y2Ba0 5.5000 1.0000GYdF4y2Ba
fval=-12GYdF4y2Ba
exitflag = 1GYdF4y2Ba
输出=GYdF4y2Ba带字段的结构:GYdF4y2Barelativegap:0 absolutegap:0 NumFasPoints:1 numnodes:0冲突:0消息:“找到最佳解决方案…”GYdF4y2Ba

索尔(1)GYdF4y2Ba과GYdF4y2Ba索尔(3)GYdF4y2Ba은 모두 이진 값입니다. 어떤 값이 이진 최적화 변수GYdF4y2BaxbGYdF4y2Ba에 해당될까요?GYdF4y2Ba

问题变量GYdF4y2Ba
ans=GYdF4y2Ba带字段的结构:GYdF4y2Bax:[2x1 optim.problemdef.OptimizationVariable]xb:[1x1 optim.problemdef.OptimizationVariable]GYdF4y2Ba

변수GYdF4y2BaxbGYdF4y2Ba는GYdF4y2Ba变量GYdF4y2Ba에서 마지막에 표시되므로GYdF4y2BaxbGYdF4y2Ba는GYdF4y2Ba索尔(3)= 1GYdF4y2Ba에해당합니다。GYdF4y2Ba算法GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

출력값을더추가하고GYdF4y2BaintlinprogGYdF4y2Ba를 호출하여 해의 세부 정보와 풀이 과정을 확인합니다.GYdF4y2Ba

다음 문제를 푸는 것이 목적입니다.GYdF4y2Ba

最小值GYdF4y2Ba xGYdF4y2Ba (GYdF4y2Ba -GYdF4y2Ba 3.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba -GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba -GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba )GYdF4y2Ba sGYdF4y2Ba UGYdF4y2Ba BGYdF4y2Ba JGYdF4y2Ba EGYdF4y2Ba CGYdF4y2Ba TGYdF4y2Ba TGYdF4y2Ba oGYdF4y2Ba {GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba BGYdF4y2Ba 我GYdF4y2Ba NGYdF4y2Ba A.GYdF4y2Ba RGYdF4y2Ba YGYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba ,GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba ≥GYdF4y2Ba 0GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba ≤GYdF4y2Ba 7.GYdF4y2Ba 4.GYdF4y2Ba xGYdF4y2Ba 1.GYdF4y2Ba +GYdF4y2Ba 2.GYdF4y2Ba xGYdF4y2Ba 2.GYdF4y2Ba +GYdF4y2Ba xGYdF4y2Ba 3.GYdF4y2Ba =GYdF4y2Ba 1.GYdF4y2Ba 2.GYdF4y2Ba .GYdF4y2Ba

솔버입력값을지정합니다。GYdF4y2Ba

f=[-3;-2;-1];intcon=3;A=[1,1,1];b=7;Aeq=[4,2,1];beq=12;lb=0(3,1);ub=[Inf;Inf;1];GYdF4y2Ba%强制x(3)是二进制的GYdF4y2Ba

모든출력값을사용하여GYdF4y2BaintlinprogGYdF4y2Ba를 호출합니다.GYdF4y2Ba

[x,fval,exitflag,output]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)GYdF4y2Ba
LP:最佳目标值为- 1200万。找到最优解。Intlinprog在根节点停止,因为客观值在最优值options的间隙公差范围内。AbsoluteGapTolerance = 0(默认值)。intcon变量是在公差选项内的整数。IntegerTolerance = 1e-05(默认值)。GYdF4y2Ba
x =GYdF4y2Ba3×1GYdF4y2Ba0 5.5000 1.0000GYdF4y2Ba
fval=-12GYdF4y2Ba
exitflag = 1GYdF4y2Ba
输出=GYdF4y2Ba带字段的结构:GYdF4y2Barelativegap:0 absolutegap:0 NumFasPoints:1 numnodes:0冲突:0消息:“找到最佳解决方案…”GYdF4y2Ba

输出구조체에GYdF4y2BanumnodesGYdF4y2Ba가GYdF4y2Ba0GYdF4y2Ba으로표시됩니다。이는GYdF4y2BaintlinprogGYdF4y2Ba가 분기 전에 문제를 풀었음을 의미합니다. 이는 결과를 신뢰할 수 있음을 나타냅니다. 또한,GYdF4y2BaabsolutegapGYdF4y2Ba필드와GYdF4y2BarelativegapGYdF4y2Ba필드가GYdF4y2Ba0GYdF4y2Ba입니다. 이 또한 결과를 신뢰할 수 있음을 나타냅니다.GYdF4y2Ba

입력인수GYdF4y2Ba

모두축소GYdF4y2Ba

계수벡터로,실수형벡터나실수형배열로지정됩니다。계수벡터는목적함수GYdF4y2Baf ' * xGYdF4y2Ba를나타냅니다。이표기법은GYdF4y2BaFGYdF4y2Ba가열벡터라고가정하지만,원하는경우자유롭게행벡터또는배열을사용할수있습니다。내부적으로GYdF4y2BalinprogGYdF4y2Ba는GYdF4y2BaFGYdF4y2Ba를열벡터GYdF4y2Baf (:)GYdF4y2Ba으로변환합니다。GYdF4y2Ba

f=[]GYdF4y2Ba을 지정할 경우GYdF4y2BaintlinprogGYdF4y2Ba는목적함수를최소화하려고하지않고실현가능점을구하려고합니다。GYdF4y2Ba

예:GYdF4y2Baf=[4;2;-1.7];GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

정수제약조건으로구성된벡터로,양의정수로구성된벡터로지정됩니다。GYdF4y2BaintconGYdF4y2Ba의 값은 정수 값을 갖는 결정 변수GYdF4y2BaxGYdF4y2Ba의성분을나타냅니다。GYdF4y2BaintconGYdF4y2Ba은GYdF4y2Ba1.GYdF4y2Ba에서GYdF4y2Ba元素个数(f)GYdF4y2Ba까지의값을가집니다。GYdF4y2Ba

intconGYdF4y2Ba은 배열일 수도 있습니다. 내부적으로GYdF4y2BaintlinprogGYdF4y2Ba는배열GYdF4y2BaintconGYdF4y2Ba을 벡터GYdF4y2Baintcon (:)GYdF4y2Ba으로변환합니다。GYdF4y2Ba

예:GYdF4y2Baintcon=[1,2,7]GYdF4y2Ba은GYdF4y2Bax(1)GYdF4y2Ba,GYdF4y2Bax(2)GYdF4y2Ba,GYdF4y2Bax(7)GYdF4y2Ba이정수값만받는다는것을의미합니다。GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

선형부등식제약조건행렬로,双형으로구성된행렬로지정됩니다。GYdF4y2BaA.GYdF4y2Ba는제약조건GYdF4y2BaA*xGYdF4y2Ba≤GYdF4y2BaBGYdF4y2Ba에서선형계수를나타냅니다。GYdF4y2BaA.GYdF4y2Ba의크기는GYdF4y2BaMGYdF4y2Ba×GYdF4y2BaNGYdF4y2Ba이며,여기서GYdF4y2BaMGYdF4y2Ba은제약조건개수이고GYdF4y2BaNGYdF4y2Ba=GYdF4y2Ba元素个数(f)GYdF4y2Ba입니다。메모리를절약하기위해GYdF4y2BaA.GYdF4y2Ba를희소형식으로지정할수있습니다。GYdF4y2Ba

예:GYdF4y2Ba一个=[4 3;2、0;4、1];GYdF4y2Ba은두개의결정변수(두열)에대한세개의선형부등식(세행)을의미합니다。GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

선형 부등식 제약 조건 벡터로, 双重的형으로 구성된 벡터로 지정됩니다.GYdF4y2BaBGYdF4y2Ba는제약조건GYdF4y2BaA*xGYdF4y2Ba≤GYdF4y2BaBGYdF4y2Ba에서상수벡터를나타냅니다。GYdF4y2BaBGYdF4y2Ba는 길이가GYdF4y2BaMGYdF4y2Ba이며,여기서GYdF4y2BaA.GYdF4y2Ba는GYdF4y2BaMGYdF4y2Ba×GYdF4y2BaNGYdF4y2Ba입니다。GYdF4y2Ba

예:GYdF4y2Ba(4 0)GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

선형등식제약조건행렬로,双형으로구성된행렬로지정됩니다。GYdF4y2BaAeqGYdF4y2Ba는제약조건GYdF4y2BaAeq * xGYdF4y2Ba=GYdF4y2Ba说真的GYdF4y2Ba에서선형계수를나타냅니다。GYdF4y2BaAeqGYdF4y2Ba의크기는GYdF4y2Ba微地震GYdF4y2Ba×GYdF4y2BaNGYdF4y2Ba이며,여기서GYdF4y2Ba微地震GYdF4y2Ba는제약조건개수이고GYdF4y2BaNGYdF4y2Ba=GYdF4y2Ba元素个数(f)GYdF4y2Ba입니다。메모리를절약하기위해GYdF4y2BaAeqGYdF4y2Ba를희소형식으로지정할수있습니다。GYdF4y2Ba

예:GYdF4y2Ba一个=[4 3;2、0;4、1];GYdF4y2Ba은두개의결정변수(두열)에대한세개의선형부등식(세행)을의미합니다。GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

선형등식제약조건벡터로,双형으로구성된벡터로지정됩니다。GYdF4y2Ba说真的GYdF4y2Ba는제약조건GYdF4y2BaAeq * xGYdF4y2Ba=GYdF4y2Ba说真的GYdF4y2Ba에서상수벡터를나타냅니다。GYdF4y2Ba说真的GYdF4y2Ba는 길이가GYdF4y2Ba微地震GYdF4y2Ba이며,여기서GYdF4y2BaAeqGYdF4y2Ba는GYdF4y2Ba微地震GYdF4y2Ba×GYdF4y2BaNGYdF4y2Ba입니다。GYdF4y2Ba

예:GYdF4y2Ba(4 0)GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

하한으로, 双重的형으로 구성된 벡터 또는 배열로 지정됩니다.GYdF4y2Ba磅GYdF4y2Ba는GYdF4y2Ba磅GYdF4y2Ba≤GYdF4y2BaxGYdF4y2Ba≤GYdF4y2Ba乌兰巴托GYdF4y2Ba에서요소별하한을나타냅니다。GYdF4y2Ba

내부적으로GYdF4y2BaintlinprogGYdF4y2Ba는배열GYdF4y2Ba磅GYdF4y2Ba를 벡터GYdF4y2Ba磅(:)GYdF4y2Ba으로변환합니다。GYdF4y2Ba

예:GYdF4y2Ba磅=[0;无穷;4)GYdF4y2Ba는GYdF4y2Bax(1)≥ 0GYdF4y2Ba,GYdF4y2Bax(3)≥4GYdF4y2Ba를의미합니다。GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

상한으로,双형으로구성된벡터또는배열로지정됩니다。GYdF4y2Ba乌兰巴托GYdF4y2Ba는GYdF4y2Ba磅GYdF4y2Ba≤GYdF4y2BaxGYdF4y2Ba≤GYdF4y2Ba乌兰巴托GYdF4y2Ba에서요소별상한을나타냅니다。GYdF4y2Ba

내부적으로GYdF4y2BaintlinprogGYdF4y2Ba는배열GYdF4y2Ba乌兰巴托GYdF4y2Ba를 벡터GYdF4y2Baub(:)GYdF4y2Ba으로변환합니다。GYdF4y2Ba

예:GYdF4y2Ba乌兰巴托= (Inf; 4; 10)GYdF4y2Ba은GYdF4y2Bax(2)≤4GYdF4y2Ba,GYdF4y2Bax(3)≤ 10GYdF4y2Ba을 의미합니다.GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

초기점으로,실수형배열로지정됩니다。GYdF4y2BaFGYdF4y2Ba가존재할경우GYdF4y2Bax0GYdF4y2Ba의 요소 개수는GYdF4y2BaFGYdF4y2Ba의요소개수와같습니다。그렇지않은경우,요소개수는GYdF4y2BaA.GYdF4y2Ba또는GYdF4y2BaAeqGYdF4y2Ba의열개수와같습니다。내부적으로솔버는배열GYdF4y2Bax0GYdF4y2Ba을 벡터GYdF4y2Bax0 (:)GYdF4y2Ba으로변환합니다。GYdF4y2Ba

x0GYdF4y2Ba을제공하면GYdF4y2BaintlinprogGYdF4y2Ba가수렴하는데걸리는시간이달라질수있습니다。GYdF4y2Bax0GYdF4y2Ba이솔버에미치는영향은예측하기가어렵습니다。GYdF4y2Bax0GYdF4y2Ba에적합한GYdF4y2Ba启发式GYdF4y2Ba를사용하는방법에대한권장사항은GYdF4y2Ba팁GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

x0GYdF4y2Ba은 모든 제약 조건에 대해 실현 가능해야 합니다.GYdF4y2Bax0GYdF4y2Ba이 실현 가능하지 않을 경우 솔버가 오류를 표시합니다. 실현 가능한GYdF4y2Bax0GYdF4y2Ba을모르면GYdF4y2Bax0 = []GYdF4y2Ba을설정하십시오。GYdF4y2Ba

예:GYdF4y2Bax0 = 100 *兰特(大小(f))GYdF4y2Ba

데이터형:GYdF4y2Ba双GYdF4y2Ba

intlinprogGYdF4y2Ba에대한옵션으로,GYdF4y2Ba最佳选择GYdF4y2Ba의출력값으로지정됩니다。GYdF4y2Ba

일부옵션은GYdF4y2Ba最佳选择GYdF4y2Ba표시에나타나지않습니다。이러한옵션은다음표에서기울임꼴로표시되어있습니다。자세한내용은GYdF4y2Ba옵션 보기GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

옵션GYdF4y2Ba 설명GYdF4y2Ba 디폴트GYdF4y2Ba
AbsoluteGapToleranceGYdF4y2Ba

음이아닌실수입니다。목적함수에대해내부적으로계산된상한(GYdF4y2BaUGYdF4y2Ba)과하한(GYdF4y2BaLGYdF4y2Ba) 사이의 차이가GYdF4y2BaAbsoluteGapToleranceGYdF4y2Ba보다작거나같은경우GYdF4y2BaintlinprogGYdF4y2Ba실행이 중지됩니다.GYdF4y2Ba

U–L<=绝对公差GYdF4y2Ba.GYdF4y2Ba

0GYdF4y2Ba
BranchRuleGYdF4y2Ba

분기생성을위한성분을선택하는규칙:GYdF4y2Ba

  • “maxpscost”GYdF4y2Ba(최대의사비용(pseudocost)을갖는소수성분입니다。GYdF4y2Ba분기한정(和)GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

  • “strongpscost”GYdF4y2Ba(최대의사비용과GYdF4y2Ba“maxpscost”GYdF4y2Ba보다 더 정확한 의사 비용 추정값을 갖는 소수 성분입니다.GYdF4y2Ba분기한정(和)GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

  • “可靠性”GYdF4y2Ba(최대의사비용과GYdF4y2Ba“strongpscost”GYdF4y2Ba보다훨씬더정확한의사비용추정값을갖는소수성분입니다。GYdF4y2Ba분기한정(和)GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

  • “mostfractional”GYdF4y2Ba- - - - - -소수부가GYdF4y2Ba1/2GYdF4y2Ba에가장가까운성분입니다。GYdF4y2Ba

  • “maxfun”GYdF4y2Ba— 목적 벡터GYdF4y2BaFGYdF4y2Ba의절댓값에서대응하는최대성분을갖는소수성분입니다。GYdF4y2Ba

“可靠性”GYdF4y2Ba
约束耐受性GYdF4y2Ba 선형 제약 조건과의 최대 차이로,GYdF4y2Ba1 e-9GYdF4y2Ba부터GYdF4y2Ba1 e - 3GYdF4y2Ba까지의실수입니다。이최대차이이내라면선형제약조건을충족하는것으로간주됩니다。GYdF4y2Ba约束耐受性GYdF4y2Ba는중지기준이아닙니다。GYdF4y2Ba 1的军医GYdF4y2Ba
CutGenerationGYdF4y2Ba

절단생성의수준입니다(GYdF4y2Ba절단 생성GYdF4y2Ba참조)。GYdF4y2Ba

  • “没有”GYdF4y2Ba——절단이없습니다。GYdF4y2BaCutMaxIterationsGYdF4y2Ba가무의미해집니다。GYdF4y2Ba

  • “基本”GYdF4y2Ba— 일반적인 절단 생성입니다.GYdF4y2Ba

  • “中级”GYdF4y2Ba——더많은절단유형을사용합니다。GYdF4y2Ba

  • “高级”GYdF4y2Ba——대부분의절단유형을사용합니다。GYdF4y2Ba

“基本”GYdF4y2Ba
CutMaxIterationsGYdF4y2Ba 1.GYdF4y2Ba에서GYdF4y2Ba50GYdF4y2Ba사이의정수로,분기한정단계에진입하기전에모든절단생성방법을거치는패스의횟수입니다。GYdF4y2BaCutGenerationGYdF4y2Ba옵션을GYdF4y2Ba“没有”GYdF4y2Ba으로 설정하여 절단 생성을 비활성화할 수 있습니다.GYdF4y2Ba 10GYdF4y2Ba
显示GYdF4y2Ba

표시 수준입니다(GYdF4y2Ba반복과정표시GYdF4y2Ba참조):GYdF4y2Ba

  • “关闭”GYdF4y2Ba또는GYdF4y2Ba“没有”GYdF4y2Ba— 반복 과정 표시 안 함GYdF4y2Ba

  • “最后一次”GYdF4y2Ba(최종값만표시GYdF4y2Ba

  • “国际热核实验堆”GYdF4y2Ba— 반복 과정 표시GYdF4y2Ba

“国际热核实验堆”GYdF4y2Ba
启发式GYdF4y2Ba

실현가능점을찾기위한알고리즘입니다(GYdF4y2Ba실현가능한해를구하는데활용할수있는발견법GYdF4y2Ba참조)。GYdF4y2Ba

  • “基本”GYdF4y2Ba

  • “中级”GYdF4y2Ba

  • “高级”GYdF4y2Ba

  • “rss”GYdF4y2Ba

  • “rin”GYdF4y2Ba

  • “圆形”GYdF4y2Ba

  • “潜水”GYdF4y2Ba

  • “rss-diving”GYdF4y2Ba

  • “漂流潜水”GYdF4y2Ba

  • “round-diving”GYdF4y2Ba

  • “没有”GYdF4y2Ba

“基本”GYdF4y2Ba
HeuristicsMaxNodesGYdF4y2Ba intlinprogGYdF4y2Ba가실현가능점에대한분기한정탐색에서탐색할수있는노드수의범위를지정하는순양수(积极)정수입니다。GYdF4y2Ba“rss”GYdF4y2Ba및GYdF4y2Ba“rin”GYdF4y2Ba에만적용됩니다。GYdF4y2Ba실현가능한해를구하는데활용할수있는발견법GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba 50GYdF4y2Ba
IntegerPreprocessGYdF4y2Ba

정수 전처리 유형입니다(GYdF4y2Ba혼합정수계획전처리GYdF4y2Ba참조)。GYdF4y2Ba

  • “没有”GYdF4y2Ba— 극히 적은 정수 전처리 스텝을 사용합니다.GYdF4y2Ba

  • “基本”GYdF4y2Ba——보통정도개수의정수전처리스텝을사용합니다。GYdF4y2Ba

  • “高级”GYdF4y2Ba- - - - - -사용가능한모든정수전처리스텝을사용합니다。GYdF4y2Ba

“基本”GYdF4y2Ba
IntegerToleranceGYdF4y2Ba 1 e-6GYdF4y2Ba에서GYdF4y2Ba1 e - 3GYdF4y2Ba사이의실수로해GYdF4y2BaxGYdF4y2Ba의성분이정수로간주될수있는최대편차입니다。GYdF4y2BaIntegerToleranceGYdF4y2Ba는중지기준이아닙니다。GYdF4y2Ba 1 e-5GYdF4y2Ba
LPMaxIterationsGYdF4y2Ba 순양수 정수로, 분기한정 과정 중에 실행되는 단체 알고리즘의 노드당 최대 반복 횟수입니다.GYdF4y2Ba

max(3e4, 10*(numberOfEqualities + numberOfInequalities + numberOfVariables))GYdF4y2Ba

이 표현식에서GYdF4y2BanumberOfEqualitiesGYdF4y2Ba는GYdF4y2BaAeqGYdF4y2Ba의행개수를의미하고,GYdF4y2BanumberOfInequalitiesGYdF4y2Ba는GYdF4y2BaA.GYdF4y2Ba의행개수를의미하며,GYdF4y2BanumberOfVariablesGYdF4y2Ba는GYdF4y2BaFGYdF4y2Ba의 요소 개수를 의미합니다.GYdF4y2Ba

LPOptimalityToleranceGYdF4y2Ba 음이아닌실수입니다。여기서감소된비용은기저로사용되는변수에대한GYdF4y2BaLPOptimalityToleranceGYdF4y2Ba를초과해야합니다。GYdF4y2Ba 1 e -GYdF4y2Ba
LPS预处理GYdF4y2Ba

완화된선형계획의해에사용할전처리유형입니다(GYdF4y2Ba선형계획전처리GYdF4y2Ba참조)。GYdF4y2Ba

  • “没有”GYdF4y2Ba- - - - - -전처리가없습니다。GYdF4y2Ba

  • “基本”GYdF4y2Ba- - - - - -전처리를사용합니다。GYdF4y2Ba

“基本”GYdF4y2Ba
MaxNodesGYdF4y2Ba intlinprogGYdF4y2Ba가 분기한정 과정에서 탐색하는 최대 노드 개수를 나타내는 순양수(绝对肯定)정수입니다.GYdF4y2Ba 1 e7GYdF4y2Ba
MaxFeasiblePointsGYdF4y2Ba 순양수(积极)정수입니다。GYdF4y2BaintlinprogGYdF4y2Ba는GYdF4y2BaMaxFeasiblePointsGYdF4y2Ba정수실현가능점을구한경우중지됩니다。GYdF4y2Ba 正GYdF4y2Ba
MaxTimeGYdF4y2Ba intlinprogGYdF4y2Ba가 실행되는 최대 시간(단위: 초)을 나타내는 양의 실수입니다.GYdF4y2Ba 7200GYdF4y2Ba
节点选择GYdF4y2Ba

다음으로탐색할노드를선택합니다。GYdF4y2Ba

  • “simplebestproj”GYdF4y2Ba(최적의투영입니다。GYdF4y2Ba분기한정(和)GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

  • “minobj”GYdF4y2Ba— 최소 목적 함수를 갖는 노드를 탐색합니다.GYdF4y2Ba

  • “mininfeas”GYdF4y2Ba- - - - - -정수실현불가능성의합이가장작은노드를탐색합니다。GYdF4y2Ba분기한정(和)GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

“simplebestproj”GYdF4y2Ba
ObjectiveCutOffGYdF4y2Ba 负GYdF4y2Ba보다큰실수입니다。분기한정계산중에GYdF4y2BaintlinprogGYdF4y2Ba는선형계획법해가GYdF4y2BaObjectiveCutOffGYdF4y2Ba를초과하는목적함수값을가지는모든노드를삭제합니다。GYdF4y2Ba 正GYdF4y2Ba
ObjectiveImprovementThresholdGYdF4y2Ba 음이아닌실수입니다。GYdF4y2BaintlinprogGYdF4y2Ba는목적함수값이적어도GYdF4y2BaObjectiveImprovementThresholdGYdF4y2Ba보다낮은,즉다음을충족하는다른해를찾은경우에만현재실현가능해를변경합니다。GYdF4y2Ba(fold - fnew)/(1 + |fold|) > ObjectiveImprovementThresholdGYdF4y2Ba 0GYdF4y2Ba
OutputFcnGYdF4y2Ba

최적화함수가이벤트에서호출하는하나이상의함수입니다。함수핸들또는함수핸들로구성된셀형배열인GYdF4y2Ba“保存牛奶解决方案金宝搏官方网站”GYdF4y2Ba로 지정합니다. 사용자 지정 출력 함수에 대해서는 함수 핸들을 전달합니다. 출력 함수는 솔버를 중지할 수 있습니다.GYdF4y2Ba

  • “保存牛奶解决方案金宝搏官方网站”GYdF4y2Ba는작업공간의GYdF4y2BaxIntSolGYdF4y2Ba행렬에 정수 실현가능점을 수집합니다. 이 행렬의 각 열은 하나의 정수 실현가능점입니다.GYdF4y2Ba

사용자 지정 출력 함수를 작성하는 방법에 대한 자세한 내용은GYdF4y2Baintlinprog输出函数和绘图函数语法GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

[]GYdF4y2Ba
绘图仪GYdF4y2Ba

알고리즘이실행되는동안다양한진행률측정값을플로팅합니다。미리정의된플롯에서선택하거나사용자가직접작성할수있습니다。GYdF4y2Ba“米尔普”GYdF4y2Ba,함수핸들또는함수핸들로구성된셀형배열을전달합니다。사용자지정플롯함수의경우,함수핸들을전달하십시오。디폴트값은없음(GYdF4y2Ba[]GYdF4y2Ba)입니다。GYdF4y2Ba

  • “米尔普”GYdF4y2Ba는해의목적함수값에대해내부적으로계산된상한과하한을플로팅합니다。GYdF4y2Ba

사용자 지정 플롯 함수를 작성하는 방법에 대한 자세한 내용은GYdF4y2Baintlinprog输出函数和绘图函数语法GYdF4y2Ba항목을 참조하십시오.GYdF4y2Ba

[]GYdF4y2Ba
RelativeGapToleranceGYdF4y2Ba

0GYdF4y2Ba에서GYdF4y2Ba1.GYdF4y2Ba사이의 실수입니다. 목적 함수에 대해 내부적으로 계산된 상한(GYdF4y2BaUGYdF4y2Ba)과하한(GYdF4y2BaLGYdF4y2Ba)의 상대 오차가GYdF4y2BaRelativeGapToleranceGYdF4y2Ba보다작거나같은경우GYdF4y2BaintlinprogGYdF4y2Ba가중지합니다。GYdF4y2Ba

(U-L)/(abs(U)+1)<=相对耐受性GYdF4y2Ba.GYdF4y2Ba

intlinprogGYdF4y2Ba는다음과같이대규모GYdF4y2BaLGYdF4y2Ba크기에대해허용오차를자동으로수정합니다。GYdF4y2Ba

허용오차=GYdF4y2Bamin (1 / (1 + L | |), RelativeGapTolerance)GYdF4y2Ba

참고GYdF4y2Ba

사용자는GYdF4y2BaRelativeGapToleranceGYdF4y2Ba를소수로지정하지만,반복과정표시화면과GYdF4y2Baoutput.relativegapGYdF4y2Ba에서는 간격을 백분율, 즉 측정된 상대적인 간격에 100을 곱한 값으로 보고합니다. 종료 메시지가 상대적인 간격을 언급하는 경우 이 값은 백분율이 아니라 측정된 상대적인 간격에 해당합니다.GYdF4y2Ba

1的军医GYdF4y2Ba
RootLPAlgorithmGYdF4y2Ba

다음과같은선형계획문제를풀기위한알고리즘입니다。GYdF4y2Ba

  • 对偶单纯形的GYdF4y2Ba——쌍대문제단체알고리즘GYdF4y2Ba

  • “primal-simplex”GYdF4y2Ba——원문제단체알고리즘GYdF4y2Ba

对偶单纯形的GYdF4y2Ba
RootLPMaxIterationsGYdF4y2Ba 음이아닌정수로,초기선형계획법문제를풀기위해실행되는최대단체알고리즘반복횟수입니다。GYdF4y2Ba

max(3e4, 10*(numberOfEqualities + numberOfInequalities + numberOfVariables))GYdF4y2Ba

이 표현식에서GYdF4y2BanumberOfEqualitiesGYdF4y2Ba는GYdF4y2BaAeqGYdF4y2Ba의행개수를의미하고,GYdF4y2BanumberOfInequalitiesGYdF4y2Ba는GYdF4y2BaA.GYdF4y2Ba의행개수를의미하며,GYdF4y2BanumberOfVariablesGYdF4y2Ba는GYdF4y2BaFGYdF4y2Ba의 요소 개수를 의미합니다.GYdF4y2Ba

예:GYdF4y2Ba选择= optimoptions(‘intlinprog’,‘MaxTime’,120)GYdF4y2Ba

입력값과옵션을캡슐화하는구조체로,다음필드를사용하여지정됩니다。GYdF4y2Ba

FGYdF4y2Ba 목적함수GYdF4y2Baf ' * xGYdF4y2Ba를나타내는벡터(필수)GYdF4y2Ba
intconGYdF4y2Ba 정수 값을 받는 변수를 나타내는 벡터(필수)GYdF4y2Ba
AineqGYdF4y2Ba 선형부등식제약조건GYdF4y2BaAineq * xGYdF4y2Ba≤GYdF4y2BabineqGYdF4y2Ba에 포함되는 행렬GYdF4y2Ba

bineqGYdF4y2Ba

선형부등식제약조건GYdF4y2BaAineq * xGYdF4y2Ba≤GYdF4y2BabineqGYdF4y2Ba에포함되는벡터GYdF4y2Ba

AeqGYdF4y2Ba

선형등식제약조건GYdF4y2BaAeq * x =说真的GYdF4y2Ba에 포함되는 행렬GYdF4y2Ba

说真的GYdF4y2Ba

선형등식제약조건GYdF4y2BaAeq * x =说真的GYdF4y2Ba에포함되는벡터GYdF4y2Ba
磅GYdF4y2Ba 하한으로구성된벡터GYdF4y2Ba
乌兰巴托GYdF4y2Ba 상한으로구성된벡터GYdF4y2Ba
x0GYdF4y2Ba 초기실현가능점GYdF4y2Ba
解算器GYdF4y2Ba “intlinprog”GYdF4y2Ba(필수)GYdF4y2Ba

选项GYdF4y2Ba

最佳选择GYdF4y2Ba를사용하여생성되는옵션(필수)GYdF4y2Ba

문제구조체에서는적어도다음필드를지정해야합니다。기타다른필드는선택사항입니다。GYdF4y2Ba

  • FGYdF4y2Ba

  • intconGYdF4y2Ba

  • 解算器GYdF4y2Ba

  • 选项GYdF4y2Ba

예:GYdF4y2Ba问题f=[1,2,3];GYdF4y2Ba
problem.intcon=[2,3];GYdF4y2Ba
problem.options=optimoptions('intlinprog');GYdF4y2Ba
问题。Aineq=[-3,-2.,-1.];
问题。bineq=-20;
问题。磅=[-6.1,-1.2,7.3];
问题。解算器=“intlinprog”;

데이터형:GYdF4y2Ba结构GYdF4y2Ba

출력인수GYdF4y2Ba

모두축소GYdF4y2Ba

해로,GYdF4y2Baf ' * xGYdF4y2Ba를 최소화하는 벡터로 반환됩니다. 여기에는 모든 범위, 정수 제약 조건, 선형 제약 조건이 적용됩니다.GYdF4y2Ba

문제가실현가능하지않거나비유계인경우,GYdF4y2BaxGYdF4y2Ba는GYdF4y2Ba[]GYdF4y2Ba입니다。GYdF4y2Ba

목적함수값으로해GYdF4y2BaxGYdF4y2Ba에서계산된스칼라값GYdF4y2Baf ' * xGYdF4y2Ba로반환됩니다。GYdF4y2Ba

문제가실현가능하지않거나비유계인경우,GYdF4y2BafvalGYdF4y2Ba은GYdF4y2Ba[]GYdF4y2Ba입니다。GYdF4y2Ba

알고리즘 중지 조건으로, 알고리즘이 중지된 이유를 나타내는 정수로 반환됩니다. 다음에는GYdF4y2Ba出口滞后GYdF4y2Ba의값과이에해당하는,GYdF4y2BaintlinprogGYdF4y2Ba가중지된이유가나열되어있습니다。GYdF4y2Ba

3.GYdF4y2Ba

이해는상대GYdF4y2Ba约束耐受性GYdF4y2Ba허용오차를기준으로는실현가능하지만,절대허용오차를기준으로는실현불가능합니다。GYdF4y2Ba

2.GYdF4y2Ba

intlinprogGYdF4y2Ba가 중도에 중지되었습니다. 정수 실현가능점을 찾았습니다.GYdF4y2Ba

1.GYdF4y2Ba

intlinprogGYdF4y2Ba가해GYdF4y2BaxGYdF4y2Ba로 수렴되었습니다.GYdF4y2Ba

0GYdF4y2Ba

intlinprogGYdF4y2Ba가중도에중지되었습니다。정수실현가능점을찾지못했습니다。GYdF4y2Ba

-1GYdF4y2Ba

intlinprogGYdF4y2Ba가 출력 함수나 플롯 함수에 의해 중지되었습니다.GYdF4y2Ba

-2GYdF4y2Ba

실현가능점을찾지못했습니다。GYdF4y2Ba

-3GYdF4y2Ba

루트LP문제가비유계입니다。GYdF4y2Ba

9GYdF4y2Ba

솔버가 실현가능성을 잃었습니다.GYdF4y2Ba

종료메시지에허용오차초과와같이GYdF4y2BaintlinprogGYdF4y2Ba가중지된이유에대한자세한정보가제공될수있습니다。GYdF4y2Ba

종료플래그GYdF4y2Ba3.GYdF4y2Ba과GYdF4y2Ba9GYdF4y2Ba는실현불가능성이큰해와관계가있습니다。이런종료플래그는보통큰조건수를갖는선형제약조건행렬이나큰해성분이있는문제에서비롯됩니다。이런문제를해결하려면계수행렬을스케일링하거나중복된선형제약조건을제거하거나변수에대해더엄밀한범위를지정해보십시오。GYdF4y2Ba

풀이과정요약으로,최적화과정에대한정보를포함하는구조체로반환됩니다。GYdF4y2Ba

relativegapGYdF4y2Ba

분기한정 알고리즘에서GYdF4y2BaintlinprogGYdF4y2Ba가계산하는목적함수의상한(GYdF4y2BaUGYdF4y2Ba)과하한(GYdF4y2BaLGYdF4y2Ba)사이의상대적인백분율차이입니다。GYdF4y2Ba

相对差距= 100*(U - L) / (abs(U) + 1)GYdF4y2Ba

intcon = []GYdF4y2Ba이면GYdF4y2Barelativegap = []GYdF4y2Ba입니다。GYdF4y2Ba

참고GYdF4y2Ba

사용자는GYdF4y2BaRelativeGapToleranceGYdF4y2Ba를소수로지정하지만,반복과정표시화면과GYdF4y2Baoutput.relativegapGYdF4y2Ba에서는 간격을 백분율, 즉 측정된 상대적인 간격에 100을 곱한 값으로 보고합니다. 종료 메시지가 상대적인 간격을 언급하는 경우 이 값은 백분율이 아니라 측정된 상대적인 간격에 해당합니다.GYdF4y2Ba

absolutegapGYdF4y2Ba

분기한정 알고리즘에서GYdF4y2BaintlinprogGYdF4y2Ba가계산하는목적함수의상한과하한사이의차이입니다。GYdF4y2Ba

intcon = []GYdF4y2Ba이면GYdF4y2Ba绝对间隙=[]GYdF4y2Ba입니다。GYdF4y2Ba

numfeaspointsGYdF4y2Ba

발견된정수실현가능점의개수입니다。GYdF4y2Ba

intcon = []GYdF4y2Ba이면GYdF4y2Banumfeaspoints = []GYdF4y2Ba입니다。또한,완화된초기문제가실현가능하지않을경우GYdF4y2Banumfeaspoints = []GYdF4y2Ba입니다。GYdF4y2Ba

numnodesGYdF4y2Ba

분기한정알고리즘의노드개수입니다。전처리또는초기절단중에해가발견된경우GYdF4y2Ba纽结=0GYdF4y2Ba입니다。GYdF4y2Ba

intcon = []GYdF4y2Ba이면GYdF4y2Ba纽结=[]GYdF4y2Ba입니다。GYdF4y2Ba

违反合同GYdF4y2Ba

위반된 제약 조건에 대해 양수를 나타내는 제약 조건 위반 값입니다.GYdF4y2Ba

constrviolation = max ([0;规范(Aeq * x-beq、正);(lb-x);(x-ub);(Ai * x-bi)])GYdF4y2Ba

消息GYdF4y2Ba

종료 메시지입니다.GYdF4y2Ba

제한사항GYdF4y2Ba

  • 해GYdF4y2Bax(国际电信展)GYdF4y2Ba에서 정수 값을 가져야 하는 일부 성분이 정확하게는 정수가 아닐 때가 많습니다.GYdF4y2BaintlinprogGYdF4y2Ba는정수의GYdF4y2BaIntegerToleranceGYdF4y2Ba내에서모든해값을정수로간주합니다。GYdF4y2Ba

    정수여야하는모든성분을정확히정수가되도록반올림하려면GYdF4y2Ba轮GYdF4y2Ba함수를 사용하십시오.GYdF4y2Ba

    x (intcon) =圆(x (intcon));GYdF4y2Ba

    주의GYdF4y2Ba

    해를반올림하면해가실현가능하지않게될수있습니다。반올림후실현가능성을확인합니다。GYdF4y2Ba

    马克斯(A * x - b)GYdF4y2Ba%看看条目是不是太积极了,所以有小的不可行性GYdF4y2Ba马克斯(abs (Aeq * x - beq))GYdF4y2Ba%查看条目是否足够接近于零GYdF4y2Ba马克斯(x -乌兰巴托)GYdF4y2Ba%正项违反了边界GYdF4y2Ba马克斯(lb - x)GYdF4y2Ba%正项违反了边界GYdF4y2Ba
  • intlinprogGYdF4y2Ba는 해 성분의 절댓값이GYdF4y2Ba2.1 e9GYdF4y2Ba를초과하는경우정수값을갖도록강제하지않습니다。해에이러한성분이있을경우GYdF4y2BaintlinprogGYdF4y2Ba가경고메시지를표시합니다。이러한경고가표시되면해를검토하여해에서정수값을가져야하는성분이정수에가까운지확인하십시오。GYdF4y2Ba

  • intlinprogGYdF4y2Ba는GYdF4y2BaFGYdF4y2Ba의계수,GYdF4y2BaA.GYdF4y2Ba의 계수 또는GYdF4y2Ba乌兰巴托GYdF4y2Ba의계수와같이문제에포함된성분의절댓값이GYdF4y2Ba1 e25GYdF4y2Ba를 초과하는 것을 허용하지 않습니다. 이러한 문제에GYdF4y2BaintlinprogGYdF4y2Ba를실행하려고하면GYdF4y2BaintlinprogGYdF4y2Ba가 오류를 발생시킵니다.GYdF4y2Ba

팁GYdF4y2Ba

  • 이진변수를지정하려면변수를GYdF4y2BaintconGYdF4y2Ba에서 정수가 되도록 설정하고 이에 대한 하한과 상한으로 각각GYdF4y2Ba0GYdF4y2Ba과GYdF4y2Ba1.GYdF4y2Ba을지정하십시오。GYdF4y2Ba

  • 희소선형제약조건행렬GYdF4y2BaA.GYdF4y2Ba및GYdF4y2BaAeqGYdF4y2Ba를 지정하면 메모리를 절약할 수 있습니다. 하지만,GYdF4y2BaBGYdF4y2Ba및GYdF4y2Ba说真的GYdF4y2Ba에는희소행렬을사용할수없습니다。GYdF4y2Ba

  • x0GYdF4y2Ba인수를포함시킬경우GYdF4y2BaintlinprogGYdF4y2Ba는더나은정수실현가능점을구할때까지GYdF4y2Ba“rin”GYdF4y2Ba와유도급강하발견법에서그값을사용합니다。따라서GYdF4y2Bax0GYdF4y2Ba을제공할경우GYdF4y2Ba“启发式”GYdF4y2Ba옵션을GYdF4y2Ba“漂流潜水”GYdF4y2Ba으로설정하거나GYdF4y2Ba“rin”GYdF4y2Ba를 사용하는 다른 설정을 사용하여 좋은 결과를 얻을 수 있습니다.GYdF4y2Ba

  • 정수성분에대한논리형인덱스(정수를나타내는GYdF4y2Ba1.GYdF4y2Ba을값으로갖는이진벡터를의미함)를제공하려면GYdF4y2Ba找到GYdF4y2Ba를사용하여GYdF4y2BaintconGYdF4y2Ba형식으로변환하십시오。예를들면다음을입력합니다。GYdF4y2Ba

    logicalindices = [1, 0, 0, 1, 1, 0, 0);intcon =找到(logicalindices)GYdF4y2Ba
    5 . n .复合体GYdF4y2Ba
  • intlinprogGYdF4y2Ba는GYdF4y2Ba宾特博客GYdF4y2Ba를 대체합니다.GYdF4y2BaintlinprogGYdF4y2Ba를 사용하기 위해 이전GYdF4y2Ba宾特博客GYdF4y2Ba코드를업데이트하려면다음과같이변경하십시오。GYdF4y2Ba

    • intconGYdF4y2Ba을GYdF4y2Ba1: numVarsGYdF4y2Ba로설정합니다。여기서GYdF4y2Ba纽瓦GYdF4y2Ba는문제에포함된변수의개수입니다。GYdF4y2Ba

    • 磅GYdF4y2Ba를GYdF4y2Ba0 (numVars, 1)GYdF4y2Ba로설정합니다。GYdF4y2Ba

    • 乌兰巴托GYdF4y2Ba를GYdF4y2Ba一(numVars,1)GYdF4y2Ba로설정합니다。GYdF4y2Ba

    • 관련된모든옵션을업데이트합니다。GYdF4y2Ba最佳选择GYdF4y2Ba를사용하여GYdF4y2BaintlinprogGYdF4y2Ba에대한옵션을만듭니다。GYdF4y2Ba

    • 宾特博客GYdF4y2Ba에 대한 호출을 다음과 같이 변경합니다.GYdF4y2Ba

      [x, fval exitflag、输出]= bintprog (f, A、b Aeq,说真的,x0,选项)GYdF4y2Ba%将您的呼叫更改为:GYdF4y2Ba[x, fval exitflag、输出]= intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托,x0,选项)GYdF4y2Ba

대체기능GYdF4y2Ba

앱GYdF4y2Ba

최적화GYdF4y2Ba라이브 편집기 작업은GYdF4y2BaintlinprogGYdF4y2Ba에 대한 시각적 인터페이스를 제공합니다.GYdF4y2Ba

호환성관련고려사항GYdF4y2Ba

모두확장GYdF4y2Ba

R2019a에서 동작이 변경됨GYdF4y2Ba

R2014a에 개발됨GYdF4y2Ba