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

这篇具有很好参考价值的文章主要介绍了优化算法-整数规与多目标规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

整数规划

概念

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

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

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

%{
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规划

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

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;

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

整数规划

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

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效果好。
    优化算法-整数规与多目标规划
lingo的一些概念

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

%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就是一个A*B的矩阵;
% 生成一个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: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));

例题lingo代码
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)限制范围
;

优化算法-整数规与多目标规划文章来源地址https://www.toymoban.com/news/detail-425209.html

多目标规划

到了这里,关于优化算法-整数规与多目标规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【无人机三维路径规划算法】基于NSGA2 MPNDS MPNDS2 BPNNIA BPHEIA BPAIMA多种多目标优化算法实现考虑无人机性能的复杂城市地形路径规划

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月24日
    浏览(39)
  • Excel做题记录——整数规划优化模型

    1、创建数据表格: 2、根据数学模型设置数据: 最大价值量: =B7*B2+C7*C2+D7*D2+E7*E2 约束量: =B7*B3+C7*C3+D7*D3+E7*E3 3、使用“规划求解”功能求解: 设定目标:要为一个公式(我们刚刚写了),在表中的位置为A10; 设定可变单元格:选中数量的那四个单元格,因为在数学模型中

    2023年04月23日
    浏览(24)
  • 【无人机三维路径规划matlab代码】基于NSGA2 MPNDS MPNDS2 BPNNIA BPHEIA BPAIMA多种多目标优化算法实现考虑无人机性能的复杂城市地形路径规划

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月22日
    浏览(33)
  • 算法2—整数规划

    1. 概论 1.1整数规划的定义 规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。(目前求解整数规划方法只是适用整数线性规划) 1.2整数规划的分类 如不加特殊说明,一般指整数线性规划。对于整数线性

    2024年02月03日
    浏览(23)
  • 【无人机三维路径规划】基于NSGA2 MPNDS MPNDS2 BPNNIA BPHEIA BPAIMA多种多目标优化算法实现考虑无人机性能的复杂城市地形路径规划附matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月24日
    浏览(34)
  • 混合整数线性规划 (MILP) 算法

    混合整数线性规划定义 混合整数线性规划 (MILP) 问题 具有以下要素: 线性目标函数 fTx ,其中 f 是由常数组成的列向量,x 是由未知数组成的列向量 边界和线性约束,但没有非线性约束(有关定义,请参阅编写约束) 对 x 的某些分量的限制,使其必须具有整数值        

    2024年04月25日
    浏览(19)
  • 数学建模(四)整数规划—匈牙利算法

    目录 一、0-1型整数规划问题 1.1 案例 1.2 指派问题的标准形式 2.2 非标准形式的指派问题 二、指派问题的匈牙利解法  2.1 匈牙利解法的一般步骤 2.2 匈牙利解法的实例 2.3 代码实现 投资问题: 有600万元投资5个项目,收益如表,求利润最大的方案? 设置决策变量: 模型: 指派

    2024年02月11日
    浏览(28)
  • 整数规划——分支界定算法(旅行商问题,规约矩阵求解)

    一、普通优化问题分枝定界求解 题目的原问题为   在计算过程中,利用MATLAB中的linprog()函数进行求解最优解,具体的计算步骤如下: A为约束系数矩阵,B为等式右边向量,C为目标函数的系数向量。   进行第一次最优求解以A=[2 9;11 -8],B=[40;82],C=[-3,-13]利用linprog函数求解。解

    2024年02月16日
    浏览(28)
  • 数学建模笔记——整数规划类问题之我见(匈牙利算法)

    目录 浅浅叙述匈牙利算法 基本思路 计算步骤 来一道简单例题 1.1 符号规定 1.2目标函数​编辑       1.3约束条件 ​编辑 1.4代码 题目复述 基本假设 问题分析 符号说明  模型的建立与求解 模型建立思路 模型建立的过程 建立0-1整数规划模型  运用匈牙利方法: 代码实现  

    2023年04月11日
    浏览(35)
  • Matlab数学建模算法详解之混合整数线性规划 (MILP) 算法(附完整实现代码)

    🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥  推荐专栏:《算法研究》 ####  防伪水印—— 左手の明天 #### 💗 大家好🤗🤗🤗,我是 左手の明天 !好久不见💗 💗今天分享matlab数学建模算法—— 混合整数线性规划 (MILP) 算法 💗

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包