如下的數學模型稱為數學規划:
首先,看約束條件H,如果x發生任何微小的變化就會引起該約束的崩潰,所以H在任何時刻都是有效的。G則可以分成兩部分:和=,=的情況和H相同,是有效約束,而對於的情況,只要x的變化足夠小就可以保證該約束不會被破壞,所以這個約束是無效的。
將g泰勒級數展開得到:
那么只要,那么只要保證在任意的可行方向D上都有:
那么只要足夠小就可以保證在可行集中。
同理,在可行集中只要存在:
那么就能找到更小的f值,也就是說不是極值點。那么進一步也就知道了,在:
不存在D使得上面兩個條件同時存在的時候,那么在存在極值。
現在開始考慮如何求出極值,兩種情況:
- 在可行區域內部;
- 在可行區域邊緣;
對於第一種情況,只有h起作用,有現成的解法就不說了。
對於第二種情況:如果在一個約束的邊緣上,也就是
那么,不管朝什么方向走只有兩種結果:
- g(x)<0
- f(x)增加
所以,此處的g和f的向量方向一定方向相同,也就是:
有了這個基礎,那么當處於多個有效約束上的時候也是一樣的,在x變化的時候其實是在多個向量上的線性的疊加,那么就可以把看作是多個g的疊加的。也就是:
為了使得所有的g都在上式中出現,增加約束條件:
γg(x)=0
這樣在不在約束條件的時候,γ=0。
好了,現在介紹庫恩塔克條件:
其實也就是擴展的拉格朗日乘子法。庫恩塔克是確定極值點的必要條件,但一般來講不是充分條件(在凸規划中時充要條件)。