基于粒子群算法的线性规划问题求解matlab程序

news2024/11/25 4:29:20

基于粒子群算法的线性规划问题求解matlab程序

1 基本粒子群算法流程

粒子群算法基于“种群”和“进化”的概念,通过个体间的协作与竞争,实现复杂空间最优解的搜索,其流程如下:

(1)初始化粒子群,包括群体规模 NN,每个粒子的位置 xixi 和速度 vivi。

(2)计算每个粒子的适应度值 fit[i]fit[i]。

(3)对每个粒子,用它的适应度值 fit[i]fit[i] 和个体极值 pbest(i)pbest(i) 比较。如果 fit[i]>pbest(i)fit[i]>pbest(i),则用 fit[i]fit[i]替换掉 pbest(i)pbest(i)。

(4)对每个粒子,用它的适应度值 fit[i]fit[i] 和全局极值 gbestgbest 比较。如果 fit[i]>gbestfit[i]>gbest 则用 fit[i]fit[i]替换掉 gbestgbest。

(5)迭代更新粒子的速度 vivi 和位置 xixi。

(6)进行边界条件处理。

(7)判断算法终止条件是否满足:若是,则结束算法并输出优化结果;否则返回步骤(2)。

基本粒子群算法的算法流程图如下图所示:
在这里插入图片描述

2 线性规划算例
在这里插入图片描述

3 粒子群算法求解结果

1)迭代曲线
在这里插入图片描述

2)求解
在这里插入图片描述
4 matlab程序

1)主函数



% 粒子群算法版 
clc;
clear;
close all;

%% 算法参数

nVar=3;              %变量个数
VarMin=ones(1,3)*0; % 变量下限
VarMax=ones(1,3)*15; % 变量上限
MaxIt=60;      % 最大迭代次数
nPop=100;        % 种群规模

%% 计算
[ bestPosition, fitValue ] = PSOFUN( @fun_objective,nVar,VarMin,VarMax,MaxIt,nPop );

%% 输出
display(['粒子群算法获得的最优变量为 : ', num2str(bestPosition)]);
display([' 获得的最优目标函数: ', num2str(fitValue)]);
。。。。。。。略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache Maven

Apache Maven简介安装Eclipse中安装内置的Maven插件Maven官网下载,直接安装在电脑上Maven安装目录结构bin目录boot目录conf目录lib目录Maven生命周期与命令Maven生命周期clean:清理cleanup:清理所有default:默认site:站…

做数据集增强时,训练一半出现IndexError: tuple index out of range这种错误,不知道怎么改,有神仙赐教一下嘛?

在用YOLOv5做图像训练时,首先做了数据集的增强,但是增强中出现了如下的错误 首先出现这样的警告 (A:/stdy py37-g/agu_img.py:153: DeprecationWarning: An exception was ignored while fetching the attribute __array_interface__ from an object of …

maven部署方案之分离业务包

一、思想: 通过将业务包和公共包分离,集中管理所有包,打包时只构建业务包减少项目包的大小和传输时间。 为了观测稳定性,暂通过环境区分,较为频繁的联调环境采用该方式,测试、预发、正式暂保持一体化打包…

golang实现andflow流程引擎

1、andflow引擎 andflow_js可以实现在Html端设计流程,并将设计结果保存为json模型,andflow可以用于设计业务流程、数据处理流程、工作流、控制流等一切可流程化的过程。 由于golang具备高效、跨平台、并且还能够直接编译成可执行文件,这些优…

selenium 找不到元素:Unable to find element on closed window

浏览器:IE 报错信息: Unable to find element on closed window Unable to get browser 过程:登录》跳转页面(同窗口)》点击备份按钮 已知代码没有改过,而且部署到多个机子上,很多机子没有问…

C++11(一)

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸 文章目录一、列表初始化initializer_list二、声明1.auto2.decltype3.nullptr三、C11 STL中的变化1.array2.forward_list3.STL其他变化四、C关键字新功…

NOIP 装箱问题

题目:[NOIP2001]装箱问题 ,哈哈,我们今天来看一道很古老的题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不是很方便阅读&#xff0…

常见的网络协议

目录 一、TCP/IP协议簇 二、网络设备与五层模型对应关系: 三、常用网络协议总结(TCP/IP协议簇) 四、应用层服务协议 五、传输层协议组 TCP_UDP 六、网络层协议 IP_ICMP_ARP 七、物理层协议 MAC子层协议 一、TCP/IP协议簇 OSI七层模型…

视频怎么转换为音频文件?快来掌握这几种方式

大家平时在下载网课资源进行学习的时候,看久了眼睛也会开始疲劳,而且有些视频的画面看起来很枯燥。其实我们可以使用一些软件把视频中的音频分离出来,直接收听音频也可以学到知识,而且我们还可以处理其他的事情,是不是…

《计算机体系结构量化研究方法第六版》1.5 集成电路中的功耗和能耗趋势

1.5.1 功耗和能耗:系统视角 Q1:处理器需要的最大功耗是多少? 如果处理器的预期功耗大于电源系统能够提供的功耗(试图汲取的电流大于电源系统可以提供的电流),通常会导致电压下降而让器件无法工作。在峰值…

食谱类小程序开发,升级美食服务质量

网络时代,人们可以在网上快速获取到各种资源信息,疫情的影响让人们被封控在家里出不了门,这也就给人们提供了一个回归厨房的契机,很多人在此期间开启了自己的美食制作之旅,朋友圈也变成了一个美食分享社区,…

AlphaFold2源码解析(1)--安装使用

AlphaFold2源码解析(1)–安装使用 AlphaFold2有两种安装方式: 具体可以参考我之前写的博客: Alphafold docker 安装: 参考GitHub:https://github.com/deepmind/alphafold 一步一步安装就可以了, Alphafold 非docker 安装指南 如…

基于PHP+MySQL蚕豆酱厂管理系统的设计与实现

论文阐述了安庆市胡玉美蚕豆酱厂管理系统的设计与实现,并对该系统的需求分析及系统需要实现的设计方法作了介绍。该系统的基本功能包括用户登录,管理员信息管理,车间主任信息管理,采购员信息管理,生产计划管理&#xf…

【正点原子FPGA连载】 第十七章 HDMI彩条显示实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十七章 HDMI彩…

基于PLC控制四自由度气动式机械手设计

目 录 1 绪论 1 1.1 机械手的概述 1 1.2 机械手的发展史 1 1.3 气动技术及气动机械手的发展过程 2 1.4 机械手未来的发展趋势 3 1.5 本课题研究内容 4 1.6 课题研究的意义 4 2 机械手的总体设计方案 6 2.1 机械手的工作原理及系统组成 6 2.2 机械手基本形式的选择 7 2.3 驱动机…

VO, DTO, DO, PO四胞胎傻傻分不清楚?那快来看这篇文章!

概念 VO(View Object) 视图对象,用于展示层,作用是把某个指定页面(或组件的所有数据封装起来)。 DTO(Data Transfer Object) 数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了给EJB&#x…

第2关:创建表

为了完成本关任务,你需要掌握:如何使用HBase shell指令创建表。 Hbase shell操作 启动HBase之后,我们输入hbase shell进入到Hbase shell命令行窗口: hbase shell 在这里我们输入hbase shell会启动一个加入了一些Hbase特有命令的…

list模拟实现(15)

目录 1、简单框架 1、list.h 2、test.cpp 2、list迭代器实现 1、list.h 2、test.cpp 3、思考 1、迭代器中的拷贝构造和赋值重载是否需要自己实现?析构呢? 2、体会类型的力量 3、const迭代器实现 1、list.h 2、test.cpp 4、重载迭代器的oper…

【附源码】计算机毕业设计JAVA知识库系统

【附源码】计算机毕业设计JAVA知识库系统 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybatis …

python 使用enumerate()函数详解

一、enumerate() 函数简介 enumerate()是python的内置函数,将一个可遍历iterable数据对象(如list列表、tuple元组或str字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。 函数返回一个enumerate对象,是一…