线性规划,整数规划,非线性规划,二次规划

线性规划,整数规划,非线性规划,二次规划

线性规划

线性规划问题就是在给定条件下求最优解的问题。一般线性规划问题都会提供目标函数max Z或 min Z(后文以min为例),约束条件s.t.。在线性规划问题中max函数是简单的由多个变量控制的函数,一般可以写成xi与对应系数ki的关系式,设其行向量形式为x。其对应系数ki设为行向量c,则目标函数min Z=cTx。约束条件一般有如下形式。
{
Axb
Aeqx=beq
lb≤x≤ub
}
对应的函数形式linprog(c,A,b),它的返回值是向量x 的值

可转化为线性规划的问题:
形如
min |x1|+|x2|+|x3|+……+|xn|
s.t. Axb
其中 x=[x1……xn]T
要把上面的问题变换成线性规划问题,只要注意到事实:对任意的xi ,存在
ui vi>0 满足
xi = ui − vi , | xi |= ui + vi
事实上,我们只要取ui=(xi+| xi |)/2,vi=(xi-| xi |)/2,就可以满足上面的条件。
这样,记 u=[u1……un]T,v=[v1……vn]T,从而我们可以把上面的问题变成
min ∑(ui+vi)
s.t.{
A(u-v)≤**b
u,v≥0
}

整数规划

规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。

分枝定界法
对有约束条件的最优化问题(其可行解为有限数)的所有可行解空间恰当地进行系统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界。在每次分枝后,凡是界限超出已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。

蒙特卡洛法(随机取样法)
比如用显枚举法试探,共需计算1010个点,其计算量非常之大。然而应用蒙特卡洛去随机计算106个点,便可找到满意解.假设目标函数落在高值区的概率分别为 0.01,0.00001,则当计算106个点后,有任一个点能落在高值区的概率分别为
1− 0.991000000 ≈ 0.99……99(100多位),
1− 0.999991000000 ≈ 0.999954602

非线性规划

如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。
一般形式
min f (x)
s.t. *hj(x)*≤0, j = 1,……,q
gi(x)=0, i = 1,……,p
其中T
x = [x1……xn] T称为模型(NP)的决策变量,f称为目标函数,gi(i = 1,…,p)和 hj( j =1, …,q) 称为约束函数。另外,gi(x) = 0 (i = 1,…, p) 称为等式约束,hj(x) ≤ 0 ( j = 1,…,q)称为不等式的约束。

原创文章 6 获赞 11 访问量 1231

猜你喜欢

转载自blog.csdn.net/ACfighter/article/details/103299322