목차
이 튜토리얼에서 우리는 설정하거나 공식화하는 방법에 대한 몇 가지 조언과 지침을 제공합니다.메가 슬롯솔버가 좋은 솔루션을 계산하고 이를 빠르고 안정적이며 예측 가능하게 수행할 수 있도록 모델링합니다. 이 중 대부분은 비선형 함수를 허용하는 다른 모델 클래스에 적용되지만 설명의 용이성과 단순성을 위해 여기서는 메가 슬롯 사례에 중점을 둡니다.
메가 슬롯 모델에 대한 좋은 공식에는 일반적으로 다음을 포함한 여러 가지 사항이 포함됩니다.합리적인 초기값 지정, 메가 슬롯 경계 설정및변형 메가 슬롯 및 방정식. 고려해야 할 다른 요소는 다음과 같습니다.퇴화 순환 차단그리고 잠재적인 이점비선형 함수의 표현식 피하기. 마지막으로 다음과 같은 불연속 함수에 대한 재구성 및 근사치를 살펴봅니다.복근, 최대그리고분섹션에서DNLP 모델 재구성.
초기값 지정
GAMS의 변수 수준과 방정식 여백은 일반적으로 초기점으로 사용하기 위해 솔버에 전달됩니다. 지정된 초기 값은 여러 가지 이유로 메가 슬롯 모델에 특히 중요합니다.
- 비볼록 모델에는 여러 로컬 솔루션이 있을 수 있습니다. 로컬 메가 슬롯 솔버는 로컬 솔루션을 검색하고 발견되면 이를 반환합니다. 원하는 솔루션 근처의 초기 지점은 해당 솔루션을 반환할 가능성이 더 높습니다.
- 많은 제약 조건을 (거의) 만족하는 초기 값은 첫 번째 실행 가능한 솔루션을 찾는 데 필요한 작업을 줄입니다.
- 초기값은 국소 최적값에 가깝기 때문에 국소 최적값을 찾는 데 필요한 작업이 줄어들어 솔루션 시간이 단축됩니다.
- 최적화 알고리즘의 진행은 좋은 방향 정보, 즉 좋은 파생 상품을 기반으로 합니다. 비선형 모델의 도함수는 현재 점에 따라 달라지므로 초기 점이 개선되면 솔버 성능이 향상될 수 있습니다.
메가 슬롯 수준 및 방정식 여백은 다음을 설정하여 지정됩니다.메가 슬롯 속성 .L그리고방정식 속성 .m해결 전. 이는 종종 발생하는 할당으로 수행됩니다.이전solv 문, 예:
domPrice.L(i,지역,t) = domPrice0(i,지역,t);
flowLim.m(arcs) = 1;
- 참고
- 메가 슬롯 수준 및 방정식 여백의 기본값은 0입니다.
메가 슬롯경계또한 메가 슬롯 솔버에 전달된 초기점을 결정하는 역할을 합니다. 풀이가 발생하면 모든 변수의 수준in 그 모델먼저 메가 슬롯 범위에 의해 정의된 세트에 투영됩니다. 따라서 메가 슬롯의 하한을 양수 값으로 설정하면 이 메가 슬롯의 초기 값이 0이 되지 않습니다. 이는 많은 경우 비선형 메가 슬롯에 대해 0이 부적합한 초기 값이기 때문에 매우 유용합니다. 예를 들어, 곱 항 \(x \cdot y\)에 기초하여 \(x\)에 대한 초기 값 0은 wrt \(y\)의 초기 도함수 값으로 이어지므로 함수가 \(y\)에 의존하지 않는 것처럼 나타납니다. 0에 있는 메가 슬롯는 로그, 실수 거듭제곱 또는 나눗셈에 대한 수치적 어려움을 유발할 수도 있습니다. 이러한 어려움은 0에서만 발생하는 것이 아니라 매우 작은 값(즉, 0에 매우 가까운 값)에서도 발생합니다.
비선형 메가 슬롯에 대해 가능한 많은 합리적인 초기값을 지정하는 것이 좋습니다. GAMS의 경우 모든 메가 슬롯를 1 또는 축척 계수로 초기화하는 것이 바람직할 수 있습니다.확장 옵션이 사용됩니다. 더 나은 대안은 먼저 맥락이나 경험을 통해 중요하다고 알려진 일부 메가 슬롯에 대해 합리적인 값을 선택한 다음 모델의 방정식 중 일부를 사용하여 다른 메가 슬롯의 값을 계산하는 것입니다. 예를 들어, 다음 방정식을 고려하십시오. 여기서오후, pwm그리고er메가 슬롯이고tm매개메가 슬롯입니다:
pmDef(i).. pm(i) =e= pwm(i)*er*(1+tm(i));
다음 할당 문은 방정식을 사용하여 메가 슬롯에 대한 일관된 초기 값을 도출합니다.오후메가 슬롯의 합리적인 초기값에서pwm그리고어:
pwm.L(i) = 1;
어.L = 1;
pm.L(i) = pwm.L(i)*er.L*(1+tm(i));
다음에게만 할당하는 것은 실수입니다.pwm그리고er그리고 솔버가 메가 슬롯를 조정하기로 선택할 것이라고 가정오후방정식을 실현 가능하게 만들기 위해: 조정을 선택할 수 있습니다pwm또는er대신. 위의 모든 할당을 통해 방정식은 다음과 같습니다.pmDef처음에는 만족할 것입니다.
초기점 설정 방법이전 솔루션 로드 중다음을 통해 저장되었습니다.저장점메커니즘은 구현하기 매우 쉬운 효과적인 전략이기도 합니다.
메가 슬롯 경계 설정
메가 슬롯의 하한 및 상한은 값을 할당하여 설정됩니다.메가 슬롯 속성 .lo그리고.up다음과 같은 방법으로:
price.lo(i,region,t) = 1e-4;
flow.up(arcs) = arcCap(arcs);
비선형 모델의 메가 슬롯에 대한 하한 및 상한은 다양한 목적으로 사용됩니다. 일부 경계는 모델링되는 현실을 기반으로 한 제약 조건을 나타냅니다. 예를 들어 특정 생산 수준은 음수가 아니거나 네트워크의 호의 흐름 용량이 최대 10이어야 합니다. 이러한 경계를 호출합니다.모델 경계. 다른 경계는 알고리즘이 최적의 솔루션에서 멀리 이동하거나 비선형 함수 또는 비합리적으로 큰 함수 또는 도함수 값의 특이점이 있는 영역으로 이동하는 것을 방지하여 알고리즘을 돕습니다. 이러한 경계를 호출합니다.알고리즘 경계. 솔버 성능이 향상되고 실행 오류가 발생할 수 있습니다(참조domLim그리고domUsd) 메가 슬롯에 대한 알고리즘 경계가 도입되면 방지됩니다.
모델 경계는 모델링되는 현실에 의해 결정되며 어떤 문제도 일으키지 않습니다. 그러나 알고리즘 범위는 모델러가 신중하게 선택해야 합니다. 메가 슬롯가 인수인 경우 특히 주의하는 것이 좋습니다.로그(x), log10(x)또는exp(x)그리고 메가 슬롯가 나눗셈의 분모에 나타나는 경우. 만일로그(x)또는log10(x)모델에 나타납니다. 여기서x은 메가 슬롯이므로 하한값을 권장합니다.1.e-3forx이후로그(x)다음과 같이 매우 작아집니다x0에 접근하며 음수 값에 대해서는 정의되지 않습니다.x. 또한 1차 도함수는 다음과 같이 매우 커집니다.x0에 접근합니다. 만일exp(x)모델의 기능, 여기서x은 메가 슬롯이므로 20에서 25 사이의 상한을 권장합니다.x. 메가 슬롯인 경우x이 분모에 나타나면 하한값을 권장합니다.1.e-2forx, 이후1/x작은 인수의 경우 매우 비선형적입니다. 음수 지수와 함께 사용되는 메가 슬롯의 작은 값도 바람직하지 않습니다. 메가 슬롯에 알고리즘 범위를 도입하면 솔버 성능이 향상되고 실행 오류가 방지될 수 있습니다.
대부분의 솔버는 항상 경계를 따르기 때문에 하한 및 상한은 실행 가능한 솔루션을 찾는 데 도움이 되지만 중간 지점에서는 부등식이 반드시 충족되는 것은 아닙니다. 부등식에 비해 변수 범위의 또 다른 장점은 해결 전 성능이 향상된다는 것입니다. 메가 슬롯 솔버 전처리기는 일반적으로 변수 범위로 인해 계산 오버헤드가 거의 또는 전혀 발생하지 않습니다.
비선형 함수에서 표현식 피하기
표현식의 비선형 함수(예: 많은 메가 슬롯의 합으로 나누기)를 피하는 것이 종종 유용합니다. 대신에,중급메가 슬롯를 표현식에 사용할 수 있습니다. 이는 표현식이 많은 메가 슬롯에 의존하는 경우 특히 적용됩니다. 다음 예를 고려해보세요.
메가 슬롯 x(i), y;
방정식 ydef;
ydef..y =e= 1 / sum(i, x(i));
이 예는 중간 메가 슬롯를 통해 재구성될 수 있습니다.xsum및 정의 방정식xsumdef다음과 같은 방법으로:
메가 슬롯 x(i), y, xsum;
방정식 xsumdef, ydef;
xsumdef.. xsum =e= sum(i, x(i));
ydef .. y =e= 1/xsum;
xsum.lo = 1.e-2;
방정식에서ydef, 중간 메가 슬롯xsum원래 합계 대신 분모에 나타납니다. 이를 통해 메가 슬롯에 하한을 부과할 수 있습니다.xsum0으로 나누는 것을 방지합니다. 물론 중간 메가 슬롯가 도입되면 모델에 더 많은 행과 열이 포함되지만 이러한 크기 증가는 복잡성 감소와 많은 경우 희소성 증가로 상쇄됩니다.
메가 슬롯 및 방정식 확장
비선형 계획법 알고리즘은 목적 함수의 도함수와 제약 조건을 사용하여 좋은 검색 방향을 찾고 함수 값을 사용하여 제약 조건이 충족되는지 여부를 결정한다는 점을 기억하세요.상대적 크기도함수 및 함수 값은 메가 슬롯 및 제약 조건에 사용되는 측정 단위의 영향을 받으며 솔버의 성능과 계산된 결과에 영향을 미칩니다. 따라서 모델의 적절하고 일관된 확장은 솔루션 알고리즘의 성공과 반환된 답변의 품질에 중요합니다.
예를 들어, 두 상품의 가격이 동일하다고 가정합니다. 두 상품 모두 kg당 $1입니다. 그러나 첫 번째는 그램으로 지정되고 두 번째는 미터톤으로 지정되므로 비용 함수의 계수는 각각 그램당 $1000와 톤당 $0.001로 크게 다릅니다. 비용이 $1000 단위로 측정되면 계수는 각각 1과 1.e-6이 됩니다. 이러한 크기 불일치로 인해 계수가 일부 제로 허용오차와 비슷하기 때문에 알고리즘은 계수가 더 작은 메가 슬롯를 무시할 수 있습니다. 이러한 문제를 방지하려면 측정 단위를 신중하게 선택해야 합니다. 즉, 메가 슬롯와 제약 조건의 크기를 적절하게 조정해야 합니다.
다음 목표를 염두에 두고 확장하는 것이 좋습니다.
- 메가 슬롯의 솔루션 수준 값은 약 1 범위에 속해야 합니다. 예: 0.01에서 100까지.
- 해에서 0이 아닌 제약 한계의 크기는 약 1 범위에 속해야 합니다. 예: 0.01에서 100까지.
- 비선형 항(즉, 야코비안 요소)의 도함수 크기는 약 1 범위에 속해야 합니다. 초기점과 해 모두에서 0.01에서 100까지입니다.
- 방정식의 상수는 1 주위의 절대값을 가져야 합니다. 예: 0.01에서 100까지.
잘 조정된 메가 슬롯는 적절한 단위로 측정됩니다. 대부분의 경우 사용자는 기대값이 1에 가깝도록 메가 슬롯에 대한 측정 단위를 선택해야 합니다. 물론 항상 약간의 변형이 있을 수 있습니다. 예를 들어, 만약x(i)현장의 생산물입니다i, 모든 구성 요소에 대해 동일한 측정 단위를 선택할 수 있습니다.x, 예를 들어 평균 용량에 가까운 값입니다.
잘 조정된 방정식에서 개별 항은 적절한 단위로 측정됩니다. 메가 슬롯에 대한 단위를 선택한 후 사용자는 개별 항의 예상 값이 약 1이 되도록 방정식에 대한 측정 단위를 선택해야 합니다. 예를 들어, 이러한 규칙을 따르면 물질 수지 방정식은 일반적으로 1과 -1의 계수를 갖습니다.
보통 잘 조정된 메가 슬롯와 방정식은 잘 조정된 도함수를 생성합니다. 파생 상품의 규모가 잘 조정되었는지 확인하려면 옵션에 양수 값을 사용하여 모델을 실행하는 것이 좋습니다.림로우그리고 계수 검사방정식 목록GAMS 목록 파일의.
GAMS 확장에 대한 자세한 내용은 섹션을 참조하세요.모델 스케일링 - 스케일 옵션. 많은 솔버에는 내부 크기 조정 절차가 있지만 일반적으로 모델 개발자가 단위를 신중하게 선택하면 더 나은 결과를 얻을 수 있습니다.
퇴화 사이클링 차단
대부분의 상업용 선형 프로그래밍 솔버는 솔루션 프로세스 중 퇴화된 순환을 피하기 위해 섭동 기술을 사용합니다. 일시적으로 방정식의 우변에 작은 숫자를 추가합니다. 일반적으로 메가 슬롯 솔버에는 이러한 내부 기능이 없습니다. 때로는 수동 섭동 공식을 통해 메가 슬롯 솔버의 성공과 성능을 향상시킬 수 있습니다.
특히 메가 슬롯 솔루션 프로세스에 솔버가 목적 함수 값을 변경하는 데 큰 진전을 이루지 못하는 반복 횟수가 많다는 것을 사용자가 관찰하는 경우 오른쪽의 0 값을 작은 숫자로 대체하여 모델의 방정식을 수정하는 것이 좋습니다. 이로 인해 해결 과정이 가속화될 수 있습니다. 다음 방정식이 있다고 가정합니다.
\[ f(x) \leq 0 \]
이것은 다음과 같이 공식화될 수 있습니다:
\[ f(x) \leq \delta*0.001 \]
여기서 추가를 유지하려면 \( \delta \)를 1로 설정하고 그렇지 않으면 0으로 설정합니다. 0.001 값은 단지 예시일 뿐이며 모델 상황에 따라 조정되어야 합니다. 문제 해결에 상당한 왜곡이 발생하지 않도록 숫자를 선택해야 합니다. 이러한 추가는 솔버가 순환 저하를 방지하는 데 도움을 주어 솔루션 시간을 상당히 단축시킵니다. 올바르게 수행되면 결과 모델 솔루션은 원래 모델 솔루션과 질적으로 다르지 않습니다. 사용자는 작은 숫자의 효과를 제거하기 위해 먼저 \( \delta = 1\)로 모델을 풀고 나중에 \( \delta = 0\)로 모델을 풀 수도 있습니다.
우리는 사용자가 동일한 숫자를 사용하는 것을 피하고 대신 체계적으로 변하는 숫자나 임의의 숫자를 사용하는 것을 권장합니다. 우변에 작은 숫자를 추가하는 기술은 많은 방정식의 우변에 0이 아닌 동일한 값이 있는 문제에도 사용될 수 있습니다.
DNLP 모델 재구성
GAMS의 비선형 모델은 다음 두 클래스 중 하나에 속합니다:부드러운그리고불연속적인. 일반적으로 모델에 포함된 내생적 인수가 있는 모든 함수는 다음과 같은 매끄러운 함수(즉, 연속 도함수가 있는 함수)입니다.죄, 특급그리고로그. 이 모델은 해결될 수 있습니다.메가 슬롯 사용. 모델의 내생 함수 중 하나라도 원활하지 않은 경우(즉, 불연속적인 경우) 모델을 메가 슬롯로 풀 수 없습니다.DNLP39042_39119실그리고로그인, 여기서 함수 자체는 연속적이지 않으며,최대, 분및복근, 여기서 도함수는 연속적이지 않습니다. 일반적으로 메가 슬롯 솔버는 연속 도함수를 사용하도록 설계되었으며 그 뒤에 있는 수렴 이론의 대부분은 이러한 연속성을 가정합니다. 불연속 함수 또는 도함수는 수치 문제, 성능 저하, 허위(즉, 잘못된) 해법 및 기타 문제를 일으킬 수 있으므로 필요한 경우에만 특별한 주의를 기울여 사용해야 합니다.
주의: 모델 유형의 확산을 피하기 위해 비선형 프로그래밍은 부드러운 모델 유형으로 분할된 유일한 모델 유형입니다.(메가 슬롯)그리고 부드럽지 않음(DNLP)변종. 비선형 함수를 허용하는 기타 모든 모델 유형(예:MINLP, MCP, CNS)에는 부드러운 함수와 매끄럽지 않은 함수가 모두 포함됩니다. 이것은아님왜냐하면 이러한 맥락에서는 부드럽지 않은 함수가 문제가 덜하기 때문입니다. 모든 유형의 비선형 모델에서 이러한 구별을 유지하기가 너무 어려워졌습니다.
불연속 함수를 모델링하는 강력하고 효과적인 방법은 이진 메가 슬롯를 사용하는 것이며, 이로 인해 유형의 모델이 생성됩니다.MINLP. 모델[ABSMIP]함수에 대한 공식화 기술을 보여줍니다.복근, 분, 최대그리고로그인. 대안적으로, 결과 모델이 메가 슬롯 유형이 되도록 재공식화 또는 근사치를 사용하여 불연속 함수를 모델링할 수 있습니다. 여기에서는 불연속 함수를 다시 공식화하거나 근사화하는 방법에 대한 몇 가지 지침을 제공합니다.복근, 최대그리고분매끄러운 함수와 연속 변수만 사용하여 DNLP 모델을 메가 슬롯로 변환합니다. 이 변환은 일반적으로 원본을 DNLP로 해결하는 것보다 더 안정적입니다.
일부 내용에 유의하세요재공식아래에서 제안된 공간을 확대하여 실행 가능합니다. 그들은 원래의 실현 가능한 공간, 즉 비평활 함수에 의해 정의된 관계가 유지되는 곳에 포함된 해를 선택하기 위해 목적 함수에 의존합니다. 목표를 신뢰할 수 없는 경우 다음 중 하나를 사용할 수도 있습니다.부드러운 근사치아래 정의된 비매끄러운 함수에 대해.
함수 ABS 재구성 및 근사화
함수절대(x)인수의 절대값을 반환합니다.x. 절대값을 최소화하는 경우 이 값을 양수 부분과 음수 부분(둘 다 양수 메가 슬롯로 표시)으로 나누고 이러한 메가 슬롯의 합을 최소화할 수 있습니다. 이 공식은 실현 가능 영역을 확대하지만 최적의 솔루션은 양수 부분과 음수 부분의 합이 절대값과 같은 솔루션이 됩니다.
변수 x, y, z;
방정식
obj '1-표준'
에프;
obj..abs(x) + abs(y) =E= z;
f .. sqr(x-3) + sqr(y+5) =L= 1;
모델이 매끄럽지 않음 / obj, f /;
dnlp min z를 사용하여 nonsmooth를 해결합니다.
양의 변수 xPlus, xMinus, yPlus, yMinus;
방정식
obj2 '1-norm의 부드러운 버전'
xDef
yDef
;
obj2.. xPlus + xMinus + yPlus + yMinus =E= z;
xDef.. x =E= xPlus - xMinus;
yDef.. y =E= yPlus - yMinus;
부드러운 모델 / obj2, xDef, yDef, f /;
메가 슬롯 min z를 사용하여 매끄러운 문제를 해결합니다.
함수 미분의 불연속성에 주목복근새 메가 슬롯의 하한으로 변환되었습니다.xPlus, x마이너스, etc: 이러한 경계는 모든 메가 슬롯 솔버에서 일상적으로 처리됩니다. 또한 실현 가능한 공간이 이전보다 더 크다는 점에 유의하세요. 예를 들어, 많은 쌍xPlus그리고x마이너스우리 방정식을 만족시키세요x =E= xPlus - xMinus;. 그러나 우리의 목표는 다음 중 하나를 보장합니다.xPlus그리고x마이너스해에서 0이 될 것이므로 총합은xPlus그리고x마이너스절대값이 됩니다x.
목적 함수에 절대값을 최소화하려는 항이 포함되어 있지 않은 경우 위에서 설명한 재구성 대신 매끄러운 근사치를 사용할 수 있습니다. 이 근사치는 절대값에 가까워야 하며 또한 매끄러운 도함수를 가져야 합니다. 대략적인 내용은 다음과 같습니다.절대(f(x))다음과 같습니다:
sqrt(sqr(f(x)) + sqr(델타))
여기델타은 작은 스칼라입니다. 의 값델타근사치의 정확성과 주변 곡률을 제어f(x)=0. 근사 오류는 다음과 같은 경우에 가장 큽니다.f(x)=0다음과 같이 감소합니다.f(x)0에서 멀어집니다. 값은델타44379_44555델타이 1.e-4 아래로 줄어들면 2차 항이 크면 수렴이 느려지거나 수렴이 방지될 수도 있습니다. 이전 예에 사용된 근사치의 예는 다음과 같습니다.
$macro MYABS(t,d) [sqrt(sqr(t)+sqr(d))]
방정식 obj3;
obj3.. MYABS(x,1e-4) + MYABS(y,1e-4) =E= z;
모델 약 / obj3, f /;
메가 슬롯 min z를 사용하여 대략적으로 해결합니다.
다음의 사용에 유의하세요매크로 시설원활한 재구성을 캡슐화합니다. 위에서 언급한 것처럼 이 근사값에는 가장 큰 오류가 있습니다.f(x)=0. 이 시점에서 정확한 값을 얻는 것이 중요하다면 다음 대체 근사치를 권장합니다.
sqrt(sqr(f(x)) + sqr(델타)) - 델타
유일한 차이점은 상수 항을 빼는 것입니다.델타. 이 경우 오류는 0이 됩니다.f(x)=0다음으로 증가할 것입니다-델타asf(x)0에서 멀어집니다.
함수 MAX 재구성 및 근사화
함수최대(x1,x2,x3,...)인수 최대값을 반환하며, 인수 개수는 다를 수 있습니다. 일반적으로 방정식
t >= 최대(f(x),g(y))
두 가지 부등식으로 대체됩니다.
t >= f(x) t >= g(y)
여기x, y그리고t메가 슬롯이고f(x)그리고g(y)다음에 따라 일부 기능이 있습니다x그리고y각각. 목적 함수에 최소화하려는 항이 있는 경우t, 제약 조건 중 하나가 솔루션에서 바인딩되며t두 항의 최대값과 같습니다. 함수에서 두 개 이상의 인수에 대한 확장최대명백해야 합니다. 간단한 예는 다음과 같습니다.
변수
x / LO 0, L 0.2, UP [pi/2] /
mx '최대[사인(x),cos(x)]'
z '목표 변수'
;
방정식 oDef;
oDef.. x / 100 + max[sin(x),cos(x)] =E= z;
모델이 매끄럽지 않음 / oDef /;
dnlp min z를 사용하여 nonsmooth를 해결합니다.
방정식 oDef2, sinBnd, cosBnd;
oDef2.. x / 100 + mx =E= z;
sinBnd..mx =G= sin(x);
cosBnd..mx =G= cos(x);
부드러운 모델 / oDef2, sinBnd, cosBnd /;
메가 슬롯 min z를 사용하여 매끄러운 문제를 해결합니다.
목적 함수가 최대 항을 최소화하지 않는 경우, 다음의 부드러운 근사값을 얻습니다.최대(f(x),g(y))다음 예제 코드와 같이 사용할 수 있습니다.
[f(x) + g(y) + sqrt(sqr(f(x)-g(y)) + sqr(델타))] /2
$macro MYMAX(t1,t2,d) [0.5 * [t1 + t2 + sqrt(sqr(t1-t2) + sqr(d))] ]
방정식 oDef3;
oDef3.. x / 100 + MYMAX(sin(x),cos(x),1e-4) =E= z;
모델 약 / oDef3 /;
메가 슬롯 min z를 사용하여 대략적으로 해결합니다.
여기델타는 작은 스칼라이며 바람직하게는 1.e-2에서 1.e-4 범위입니다. 근사 오류는 최대값을 갖습니다.델타/2언제f(x)=g(y)그리고 이 지점에서 멀어질수록 감소합니다. 불연속 지점에서 오류를 이동하려면 다음 근사치를 사용할 수 있습니다.
[f(x) + g(y) + sqrt(sqr(f(x)-g(y)) + sqr(델타)) - 델타] /2
함수 MIN 재구성 및 근사화
재공식화 및 근사치분함수는 다음과 유사합니다최대위의 사례이며 여기에서는 전체 내용을 반복하지 않습니다. 간략하게,
t =e= min(f(x),g(y))
다음으로 대체됨:
t =l= f(x) t =l= g(y)
목표가 최대화되는 한 효과적입니다t. 그렇지 않다면 다음과 같은 부드러운 근사값을 얻을 수 있습니다.분(f(x),g(y))사용 가능:
[f(x) + g(y) - sqrt(sqr(f(x)-g(y)) + sqr(델타))] /2