1.1 算法(algorithms)
算法就是为了计算而产生的可迭代的,一步步执行的程序;
这个程序可以是一段简洁的描述,一个公式,或者公式加描述;
常用的算法如:寻找多项式的解,判断一个数字是否为素数,或者产生随机数字;这些都是算法。
An algorithm is an iterative, step-by-step procedure for computation.
1.1.1 算法的本质
一个算法的本质可以写作一个迭代公式或者多个迭代公式的组合;
In essence, an algorithm can be written as an iterative equation or a set of iterative equations;
如:寻找的平方根,迭代公式如下:
为迭代计数器,一般从0开始;
如,从开始迭代,R代码如下:
cnt <- 8
a <- 100
i <- 0
x <- 1
while(i<cnt) {
x <- (1/2)*(x+a/x)
i <- i+1
cat("the iteration conter is: ",i," and the result is: ",x,"\n")
}
迭代结果
第6轮时已经接近了真实解,第7轮和第8轮起始已经得到了真实的结果。
泰勒公式
如果在处阶可导,可利用的次多项式来逼近。
牛顿迭代算法
取泰勒公式前两项
得到:
迭代公式:
1.1.2 算法存在的问题
- 最终解依赖于初始值,如上例子,从-1开始迭代
解以来与迭代的初始值
解决办法:初始值随机产生. - 当前讨论的算法对的要求,在处可导且不为0.
- 其他issues:
- setting of parameters
- the slow rate of convergence
- condition numbers
- iteration structures
1.1.3 算法的类型
一种算法只能完成一种特定的计算任务,没有一种算法可以完成所有的任务:
一般有:
- root-finding algorithms
- sorting algorithms
1.2 最优化(optimization)
1.2.1 A simple example
已知一个体积确定的圆柱桶,怎么设计让其表面积最小:
根据面积和体积公式,最终计算得出当时候最优。
如果选择为球形,则得到更小的面积;
1.2.2 General formulation of optimization
maximize/minimize
subject to:
根据微积分知识,可以根据一次微分和二次微分判断极大值和极小值;
一次微分 | 二次微分 | |
---|---|---|
极大值 | ||
极小值 |
1.2.3 feasible solution(可行解)
A point that satisfies all the constraints is called a feasible point and thus is a feasible solution to the problem.
the set of all feasible points is called the feasible region.
满足条件的取值范围都为可行解。
1.2.4 optimality criteria(最优性判决)
A point is called a strong local maximum of the nonlinearly constrained optimization problem if is defined in a -neighborhood and satisfies for , where and
a weak local maximum .
a strong local minimum .
a weak local minimum .
1.3 无约束最优化
1.3.1 univariate functions(一元函数)
可利用1.2.2节中表格进行计算。
即利用一次微分和二次微分组合进行计算;
1.3.2 Multivariate functions(多元函数)
一次微分用梯度向量替换
二次微分用Hessian matrix替换
,当行列式为正值时得到极小值。
,当行列式为负值时得到极大值。
1.4 非线性约束最优化
思路:将约束问题变为非约束问题
1.4.1 Penalty method
minimize
subject to:
定义penalty function从而将约束问题变成非约束问题:
然后根据1.3节求得最优解;
1.4.2 Lagrange multipliers
minimize
subject to:
combine the and called Lagrangian
is the Lagrange multiplier, which is an unknown scalar to be determined.
如果,则需要个Lagrange multipliers,
则偏微分方程如下:
1.4.3 Karush-Kuhn-Tucker conditions
minimize
subject to:
If all the functions are continuously differentiable at a local minimum , then there exist constants and such that:
where,.
网友评论