优化算法-整数规与多目标规划

简介: 优化算法-整数规与多目标规划

优化算法-整数规与多目标规划

整数规划

概念

全部变量限制为整数的规划问题,称为纯整数规划;
部分变量限制为整数的规划问题,称为混合整数规划;
变量只取0或1的规划问题,称为0-1整数规划。

整数规划问题,建议使用Lingo软件求解。

整数规划1.png

%{
   
   
Lingo变量界定函数实现对变量取值范围的附加限制,共4.
@bin(x)             限制x为01
@bnd((L,x,U)       限制L=<x<=U
@free(x)            取消对变量x的默认下界为0的限制,即x可以取任意实数
@gin(x)             限制x为整数
在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+0。
@free取消了默认的下界为0的限制,使变量也可以取负值。
@bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。
%}

常用的整数规划问题解法有:

  1. 分枝定界法:可求纯或混合整数线性规划。
  2. 割平面法:可求纯或混合整数线性规划。
  3. 隐枚举法:用于求解0-1整数规划,有过滤法和分枝法。
  4. 匈牙利法:解决指派问题(0-1规划特殊情形)
  5. 蒙特卡罗法:求解各种类型规划。

例题

0-1规划

整数规划-_0-1规划_2.png

model:
    max = 3*x1-2*x2+5*x3;
    x1+2*x2-x3<=2;
    x1+4*x2+x3<=4;
    x1+x2<=3;
    4*x2+x3<=6;
    @ bin(x1);
    @ bin(x2);
    @ bin(x3);
end

%@bin(x)  限制x为01;

整数规划lingo2.png

整数规划

整数规划0.png
整数规划lingo1.png

model:
max = 5*x1+8*x2;
x1+x2<=6;
5*x1+9*x2<=45;
@ gin(x1);
@ gin(x2);
end

% @gin(x)   限制x为整数

蒙特卡罗法(随机取样法)

  1. 前面的方法,主要是针对线性整数规划而言,对于非线性整数规划没有通用的有效解法。
  2. 整数规划由于限制变量是整数,增加了求解难度,但整数解是有限个,所以可以采用枚举法。
  3. 当枚举个数很多时,显性枚举是不现实的,但利用蒙特卡罗随机取样法,在一定的计算量下是可以得到满意解的。
  4. 注意点 通常使用lingo处理规划问题,matlab虽然也能够解决问题,都是没有lingo效果好。
    非线性整数规划1.png
    lingo的一些概念
    lingo 生成一维矩阵.png
    ```c
    %sets集合
    sets:
    row/1..4/:b;
    col/1..5/:c1,c2,x;
    link(row,col):a;
    endsets

% row生成1x4的矩阵b,col生成1x5的矩阵c1,c2,x;
% link(A,B):VAR; %!VAR就是一个AB的矩阵;
% 生成一个row
col的矩阵 记作a

% 数据
data:
c1 = 1,1,3,4,2;
c2 = -8,-2,-3,-1,-2;
a = 1 1 1 1 1
1 2 2 1 6
2 1 6 0 0
0 0 1 1 5;
b=400,800,200,200;
enddata

%规划解答 集合

max = @sum(col:c1x^2+c2x);
@for(row(i):@sum(col(j):a(i,j)*x(j))<=b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));

##### 例题lingo代码
```c
model:

!集合sets;

sets:
    row/1..4/:b;
    col/1..5/:c1,c2,x;
    link(row,col):a;
endsets

!数据源data;


data:
c1 = 1,1,3,4,2;
c2 = -8,-2,-3,-1,-2;
a = 1 1 1 1 1
    1 2 2 1 6
    2 1 6 0 0
    0 0 1 1 5;
b=400,800,200,200;
enddata

max  = @sum(col:c1*x^2+c2*x);
@for(row(i):@sum(col(j):a(i,j)*x(j))<=b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));

end


!@sum(setname:expression_list) 其中 setname 是要遍历的集合  expression_list是表达(完成函数表达式的编写) 有且仅有一个 sum进行求和操作
max  = @sum(col:c1*x^2+c2*x)  %目标函数
@for(row(i):@sum(col(j):a(i,j)*x(j))<=b(i))  %Ax<=b的约束条件   
!@for(setname:expression_list)  for循环
@for(col:@gin(x))  %对于col集合的元素进行循环操作,@gin(x) 元素都是整数
@for(col:@bnd(0,x,99))  %对于col集合的元素进行循环操作  bnd(low,x,up)限制范围
;

非线性整数规划lingo.png

多目标规划

目录
相关文章
|
1天前
|
算法 语音技术
支付宝商业化广告算法问题之在ODL模型优化过程中,采取什么策略来提高模型的泛化能力呢
支付宝商业化广告算法问题之在ODL模型优化过程中,采取什么策略来提高模型的泛化能力呢
|
7天前
|
算法
基于多路径路由的全局感知网络流量分配优化算法matlab仿真
本文提出一种全局感知网络流量分配优化算法,针对现代网络中多路径路由的需求,旨在均衡分配流量、减轻拥塞并提升吞吐量。算法基于网络模型G(N, M),包含N节点与M连接,并考虑K种不同优先级的流量。通过迭代调整每种流量在各路径上的分配比例,依据带宽利用率um=Σ(xm,k * dk) / cm来优化网络性能,确保高优先级流量的有效传输同时最大化利用网络资源。算法设定收敛条件以避免陷入局部最优解。
|
10天前
|
算法
PID算法原理分析及优化
今天为大家介绍一下经典控制算法之一的PID控制方法。PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。 在大学期间,参加的智能汽车竞赛中就使用到了PID经典控制算法,对于智能小车的调试更加的方便。 一、PID原理 PID控制方法将偏差的比例(proportional)、积分(integral)、微分(derivative)通过线性组合构成控制量,对被控对象进行控制。 常规的PID控制系统如图所示: 系统的输入r(t)为控制量的目标输出值,输出y(t)为控制量的实际输出值,e(t)为输出量目标值与实际值
24 1
|
19天前
|
机器学习/深度学习 算法 Python
探索机器学习中的梯度下降优化算法
【8月更文挑战第1天】在机器学习的广阔天地里,梯度下降法如同一位勇敢的探险家,指引我们穿越复杂的数学丛林,寻找模型参数的最优解。本文将深入探讨梯度下降法的核心原理,并通过Python代码示例,展示其在解决实际问题中的应用。
27 3
|
27天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
37 9
|
28天前
|
机器学习/深度学习 缓存 并行计算
操作系统调度算法的演变与优化
【7月更文挑战第23天】本文深入探讨了操作系统中调度算法的发展历程,从简单的先来先服务到复杂的多级反馈队列调度算法。通过分析不同算法的特点和性能表现,文章揭示了调度算法在提升系统响应速度、公平性以及资源利用率方面的重要性。同时,文章也讨论了现代操作系统如何通过优化调度算法来适应多核处理器架构,以及未来可能的研究方向。
|
5天前
|
机器学习/深度学习 监控 算法
R-CNN系列目标算法
8月更文挑战第12天
|
29天前
|
缓存 算法 编译器
python算法优化
【7月更文挑战第21天】
26 3
|
29天前
|
传感器 机器学习/深度学习 算法
基于GA遗传算法的WSN网络节点覆盖优化matlab仿真
本研究应用遗传优化算法于无线传感器网络(WSN),优化节点布局与数量,以最小化节点使用而最大化网络覆盖率。MATLAB2022a环境下,算法通过选择、交叉与变异操作,逐步改进节点配置,最终输出收敛曲线展现覆盖率、节点数及适应度值变化。无线传感器网络覆盖优化问题通过数学建模,结合遗传算法,实现目标区域有效覆盖与网络寿命延长。算法设计中,采用二进制编码表示节点状态,适应度函数考量覆盖率与连通性,通过选择、交叉和变异策略迭代优化,直至满足终止条件。
|
6天前
|
算法 前端开发 计算机视觉
基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
15 0

热门文章

最新文章