什么是数学规划?
闭区域上连续函数的最值定理: 函数X在闭区域D上连续,则存在D上的点%、函数在该点取得最大 (小) 值。
+ y例1 min /(x, y) = xe'20(x,y)E D =[-2,2]x[-2,2]s.t.
拉格朗日乘数法求解等式约束条件极值问题。例2在椭球上找已知直线距离最大和最小的点的坐标
(x-X)2 +(y-Y)2 +(z-Z)2max(min)st
(x-x) _(y-yo)_(z -z)B(x'-x3)(-)(Z-Z)=1
数学规划(mathematical programming),也称数学优化(mathematical optimization),是数学中的一个分支,它主要研究的目标在给定的区域中寻找可以最小化或最大化某一函数的最优解。数学规划在几乎所有的科学领域都有着不容忽视的应用,所以一直都是一门受到着重关注和研究的学科。本文是对数学规划问题的一个浅显的介绍,不涉及任何理论和算法。
规划问题的分类
数学规划问题可以分为很多很多种类,这里我们将介绍四个最常用到的类别。这四类问题并不是并列关系,而是(很大程度上的)包含关系,其中更小的类别会包含更少的问题,但是由于这些问题普遍有着同样的结构和性质,在这个类别中会有一致受用高效算法;而更大的类别会包含更多的优化问题,但是由于缺乏良好的函数结构,解决起来一般会更麻烦。
问题的一般形式:
max(min)
S.t
F(x)
xE1
其中X是一个n维向量,也称决策变量;Y是一个集合可以简单区域,也可以用一系列的等式和不等式甚至其他形式表示,称为可行集。
数学规划应用的广泛性:
1,吉尼斯世界纪录;
2,总理的政府工作报告;
3,公司的领导的核心工作;
4,如何使用好自己的钱
5,树木的生长问题;
群狼的捕猎计划 ;
7,行星的运行轨道;
8,原子的内部结构。
max(min
FCx)
St
xE
根据问题的结构,可以进行下面的一些分类
(1) 线性规划:目标函数和约束是线性的(2) 非线性规划:目标函数或约束是非线性的(3) 整数规划: 决策变量是离散的,只能取整数值(4) 多目标规划:目标函数有多个
(5)
线性规划:最简单、最广泛使用。George B.Dantzig1947年线性规划单纯型算法
非线性规划:更多的应用背景。1951年Kuhn和Tucker,最优性条件。
1958年R.E.戈莫整数规划:最富于挑战、回归本源。里,割平面法
多目标规划:人性多样化要求。1896年法国经济学家 V帕累托提出多样化思想
介绍四个方面的内容:
线性规划,非线性规划,整数规划,多目标规划。
目的:
最”的思想贯彻到生活之中
“最”的严格数学描述一数学规划模型最”的求解方法
我的总结
函数 f是连续的,它就是一个非线性规划(non-linear programming)问题。也许这个类别的名字起得有点不恰当,因为线性规划问题其实也属于非线性规划问题,而这个“非”字可以这么理解:线性规划是非线性规划中极其小的一部分,如果我们有一个线性规划问题,那么用线性规划的方法就可以很简便地解决,并不需要非线性规划的理论,所以非线性规划实际研究的是线性规划以外的问题。
非线性规划的涉及面太广,以至于很多未解的数学难题都可以写做为非线性规划的形式,可见普遍的非线性规划问题有多难。因此,在研究非线性规划问题时,我们一般会加上一些额外的条件限制,比如:目标函数 f 是可导的或是平滑的、 f 或 f 的导数是 Lipschitz 的、问题的可行区域是凸的,等等。不难看出,上面的所有其他类别的规划问题都属于非线性规划问题。
例子1:动物饲养问题
Example1:动物饲养问题
一家现代化兔子饲养场饲养一种兔子。根据兔子在不同时期的体重计算出兔子每周营养物质的数量。简单起见,这里考虑三种对生长其重要作用的营养成分,蛋白质、矿物质和维生素。
现有五种饲料,公司希望找出满足动物营养需要使成本达到最低的混合饲料配置。
① 决策变量:在混合饲料中,每周所需第j种饲料的斤数xj,j= 1,2,3,4,5;
② 约束条件:
•蛋白质:0.30x1+2x2+x3+0.6x4+1.8x5≥70
•矿物质:0.10x1+0.05x2+0.02x3+0.2x4+0.05x5≥3
•维生素:0.05x1+0.1x2+0.02x3+0.2x4+0.08x5≥10
•非负约束:xi≥0
③ 确定目标:混合饲料的成本最低
0.02x1+0.07x2+0.04x3+0.03x4+0.05x5→min
线性规划模型:
min 0.02x1+0.07x2+0.04x3+0.03x4+0.05x5
s.t. 0.30x1+2x2+x3+0.6x4+1.8x5≥70
0.10x1+0.05x2+0.02x3+0.2x4+0.05x5≥3
0.05x1+0.1x2+0.02x3+0.2x4+0.08x5≥10
xj≥0 j = 1,2,3,4,5;