割平面法只能求解纯整数规划吗_数学建模中的数学规划问题

数学规划

1. 数学规划概述

(1)问题的一般形式

max(min) f ( x)

s.t. x ∈X

其中x是一个n维向量,也称决策变量;X是一个集合, 可以简单区域,也可以用一系列的等式和不等式甚至其 他形式表示,称为可行集。

(2)数学规划应用的广泛性

1, 吉尼斯世界纪录; 2,总理的政府工作报告;

3,公司的领导的核心工作; 4,如何使用好自己的钱;

5,树木的生长问题; 6,群狼的捕猎计划;

7,行星的运行轨道; 8,原子的内部结构。

(3)数学规划的分类

根据问题的结构,可以进行下面的一些分类

(1)线性规划:目标函数和约束是线性的

(2)非线性规划:目标函数或约束是非线性的

(3)整数规划:决策变量是离散的,只能取整数值

(4)多目标规划:目标函数有多个

(5)……

线性规划:最简单、最广泛使用。George B. Dantzig, 1947年线性规划单纯型算法

非线性规划:更多的应用背景。1951年Kuhn和Tucker,最优性条件。

整数规划:最富于挑战、回归本源。 1958年R.E.戈莫里,割平面法

多目标规划:人性多样化要求。1896年法国经济学家 V.帕累托提出多样化思想。

2.线性规划

(1)线性规划例子及模型的建立

例子1:动物饲养问题

Example1:动物饲养问题

一家现代化兔子饲养场饲养一种兔子。根据兔子在不同时期的体重计算出兔子每周营养物质的数量。简单起见,这里考虑三种对生长其重要作用的营养成分,蛋白质、矿物质和维生素。

蛋白质:70克

矿物质:3克

维生素:10毫克

现有五种饲料,公司希望找出满足动物营养需要使成本达到最低的混合饲料配置。

每一种饲料每斤所含的营养成分

b759e09e38664b0e696764959449e75d.png

① 决策变量:在混合饲料中,每周所需第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;

58eda02491c30e1fda0b43b87dc13574.png

Example2:蔬菜运输问题

有5个蔬菜基地每天向3家超市供应蔬菜,其相关数据如下:

8c01ba0ef63186c150de10d0aea6841e.png

910c61a7df7664ab7eac94f6aae1fc8f.png

制定调运方案,既可以满足供需关系,又使运输的吨公里数达到最小。

ddf6da8df324b484e29f7c9e1272ab6b.png

记号说明:(xi,yi)表示蔬菜基地i 的坐标;(aj,bj)表示超市j的坐标;Cij表示基地i到超市j的距离;

si表示蔬菜基地i的产量; dj表示超市j的需求量。

决策变量:基地i 到超市j 的运量Xij 作为决策变量(i = 1, 2, ..., 5,j = 1, 2, 3)。

33c35e35e79b729fe4069eaa7aa9fac5.png

50f7ff1b5b27f75635591262ee49d9e0.png

aff75832b0ad6362596e726d4f8d9abc.png

030958d2dff0f390545bdd8fa38ba470.png

Xij≥0,i=1,...,5, j=1,2,3

(3)线性规划MATLAB求解命令

linprog, 解决的线性规划问题的标准格式为:min cT x

s.t. A·x <= b

Aeq·x = beq

LB≤x≤UB

其中,A、 Aeq表示矩阵,而b、 c、 x、 beq、 LB、 UB为列矩阵

[x ,fval]= linprog(c, A, b, Aeq,beq ,LB, UB)

a31c619490fe5133f3fda824e610fa28.png

如果没有等式约束,就在相应位置输入空矩阵[ ], 不等式约束和上下界也类似,最后的输入项若没有,则可省略。

例一求解

由于linprog要求所有的不等式约束是“≤”的形式,所以将模型转化成为标准形式。

c=0.01*[2 7 4 3 5]’;
 A=-[0.3 2 1 0.6 1.8;
   0.1 0.05 0.02 0.2 0.05;
   0.05 0.1 0.02 0.2 0.08];
b=-[70;3;10];
Lb=zeros(5,1);     % 5行1列的零矩阵
[x,fval]=linprog(c,A,b,[],[],Lb)

计算结果:x=[0;0;0;39.7436;25.6410]

fval=2.4744

例二求解

%因为在linprog命令中决策变量和价格向量是向量,因此应该将对应的矩阵C和X拉直变成向量形式。

3.非线性规划

(1)非线性规划例子及模型的建立

例子1:拟合问题

平面上 n个点(xi,yi),i=1,…,n, 寻求一个函数y=f(x), 使 f(x) 在某种准则下与所有数据点最为接近。

f3d2e16c1b4a9e5b7a2264ab82b0b26a.png

例子2:电路板设计问题

就是将电路元件选择适当位置并通过导线进行连接。

确定三个模块的位置,满足下列要求的情况下使得总连线最短。

(1)满足如图的连接关系;

(2)所有元件完全位于电路板之内;

(3)三个元件为圆柱形,半径分别为0.2,0.1和0.1;

(4)元件1和元件3要求距离等于0.5。

d0df3b8b2d8c382376836e39c4ed08c9.png

决策变量:令(x i, yi)(i =1, 2,3)为三个元件的中心的横纵坐标。

目标函数:总距离(六条连线长度之和)最小

032d1d8ec9fbd9d9bc639e7c0c4a2998.png

13d4196ab8d76bcec7c92c45e15b2a8e.png

9cfa0129c514f1b18c1bd593740e93e6.png

(2)非线性规划标准形式

非线性规划问题,可以根据是否有约束条件,可以分成无约束问题和约束优化问题;

比如前面给出的例子1就是无约束非线性规划问题,而例子2是一个约束非线性规划问题。

无约束优化问题标准形式 :

Min f(x)

① 首先建立一个函数M文件,如fun.m

②调用格式:

[x, fval] = fminunc(‘fun’, x0, options)

约束优化问题标准格式:

Min f(x)

s.t. G1(x) ≤0, G2(x)=0, (非线性约束)

Ax ≤b, Aeq.x=beq, (线性约束)

Lb ≤x ≤Ub

调用格式:

[x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,Lb,Ub,@con)

(3)非线性规划MATLAB求解命令

例一求解

function y=fnonl(x)
 
t=[20.5 32.5 51 73 95.7];
R=[765 826 873 942 1032];
y=norm(x(1)*t+x(2)-R,2); % 2-范数:就是norm(...,2),即各元素平方和开根号;
y=y^2;
 
x=ones(2,1);
[x,fval]=fminunc( @fnonl,x)

结果:x =[3.3940;702.4918]

fval = 321.2166

例二求解

%目标函数M文件
function y=fcon(x)
 
y=((x(1)+1)^2+x(4)^2)^0.5+((x(1)-x(2))^2+(x(4)-x(5))^2)^0.5+((x(2)-0.5)^2+(x(5)-1)^2)^0.5+((x(1)-x(3))^2+(x(4)-x(6))^2)^0.5+(x(3)^2+(x(6)+1)^2)^0.5+((x(3)-1)^2+(x(6)-0.5)^2)^0.5;
%约束条件的函数M文件
 
function [c,ceq]=ccon(x)
c=[0.09-(x(1)-x(2))^2-(x(4)-x(5))^2;0.09-(x(1)-x(3))^2-(x(4)-x(6))^2;0.04-(x(2)-x(3))^2-(x(5)- x(6))^2];
ceq=[(x(1)-x(3))^2+(x(4)-x(6))^2-0.25];
 
x0=[0.5;0.2;0.1;-0.5;0.2;0.8];
Ub= [0.8;0.9;0.9;0.8;0.9;0.9]; 
Lb=-Ub;
options=optimset('display', 'iter') [x,fval]=fmincon(@fcon,x0,[],[],[],[],Lb, Ub,@ccon,options)

计算结果

x =[0.2930; 0.4445; 0.6574; 0.6410;0.9000;0.2987]

fval =4.2105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值