提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、无容量设施选址问题
    • 1、问题描述
    • 2、数学模型
  • 二、二进制灰狼算法
    • 1、引言
    • 2、算法改进
    • 3、数学模型
    • 4、算法流程
  • 三、源代码
  • 四、运行结果
  • 五、备注

一、无容量设施选址问题

1、问题描述

本文研究的无容量限制设施选址问题是运筹学领域的一个著名问题。该问题只有二元决策变量,适合于验证二元优化算法的性能分析和比较。在这个问题中,有客户、供应商和转运成本,每个客户都应该接受供应商的订单。该问题有两个成本,即设施建设成本和转运成本,其目标是通过设置决策变量0或1来最小化总成本,这些变量的值决定了设施的开启或关闭。可行解的个数由可能的设施位置的个数来计算。当n为可能的设施位置数时,得到问题的2n个不同的可能解。由于UFLP是NP-hard问题,大量的近似、进化或群体智能算法被提出来解决这个问题

2、数学模型


其中,I 表示客户集;i 表示第几个客户,∀i ∈ I;n 表示客户总数;J 表示设施集;j 表示第几个设施,∀j ∈ J ; m 表示设施总数;xij = 1 表示设施位置 j 为客户 i 提供服务,否则 xij = 0 ;yj = 1 表示在 j 处建设服务设施,否 则 yj = 0 。
在上述模型中,式(1)为目标函数表示最小化运输成本与设施建造费之和;约束(2)表示每个客户必须被服务且只能被服务一次;约束(3)表示只有开放的设施才能为客户服务;约束(4)和(5)表示变量的取值范围。

二、二进制灰狼算法

1、引言

灰狼算法在连续灰太狼优化(CGWO)中,狼不断地改变它们在空间中的位置。在一些特殊的问题,如0-1背包问题的解决方案被限制在二进制{0,1}值,这激发了一个特殊版本的GWO。
在bGWO中,任何给定的解都是二进制形式的,所有的解都位于超立方体的角上。根据CGWO原理更新给定狼的位置。

2、算法改进

在二进制灰狼算法中,引入了传递函数(sigmod函数)。利用传递函数将朝向前三个最佳解的各个步骤进行二值化,然后在三个基本移动之间执行随机交叉以找到更新的二值灰太狼位置。[1]

3、数学模型

1)x1、x2、x3的结算
x1为α在二进制中的位置矢量,bstepα为二进制步长,可利用公式2计算
cstepα为α的连续值步长,可用公式3计算。
其中,公式3中的A1、Dα为连续灰狼算法中的A1、Dα。
ps:x2、x3的计算方式与x1相同。
公式一:

公式二:

公式三:

4、算法流程

三、源代码

clear all
clcN=load("cap71center.txt");%中心矩阵
M=load("cap71deman.txt");%需求矩阵
D=load("cap71distanc.txt");%距离矩阵
NIND=100;%种群个数
MAXGEN=500;%迭代次数
afa=2;%惩罚函数
t=0;%循环次数
FC=0;%标准差
while t<30
[Best_score,Best_pos,GWO_cg_curve]=bGWO1(NIND,MAXGEN,N,M,D,afa);%进行GWO操作
display(['第',num2str(t+1),'代,价值为' ,num2str(Best_score)]);
t=t+1;
mean(t,1)=Best_score;
end
Best_score=sum(mean)/t;
for x=1:tFC=FC+(mean(x,1)-Best_score)^2;
end
FC=sqrt(FC);
display(['最大值: ', num2str(max(mean))]);
display(['最小值: ', num2str(min(mean))]);
display(['平均值: ', num2str(Best_score)]);
display(['方差: ', num2str(FC)]);

四、运行结果

最大值: 932615.75
最小值: 932615.75
平均值: 932615.75
方差: 0

对OR-library中的9个算例测试结果如下,HIT为命中最优解次数

五、备注

完整代码或代写添加QQ437651208

往期回顾>>>>>>
【0-1背包】二进制灰狼算法解决0-1背包问题【Matlab】

[1] Sa A , Pa B . Binary butterfly optimization approaches for feature selection - ScienceDirect[J]. Expert Systems with Applications, 2019, 116:147-160.

【选址问题】二进制灰狼算法解决无容量选址问题【Matlab】相关推荐

  1. 【0-1背包】二进制灰狼算法解决0-1背包问题【Matlab】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.0-1背包问题 1.问题描述 2.数学模型 二 .二进制灰狼算法 1.引言 2.算法改进 3.数学模型 4.算法流程 三 ...

  2. 【路径规划】基于灰狼算法求解旅行商TSP问题matlab源码

    一.旅行商问题 TSP问题即旅行商问题,经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地.应如何选择行进路线,以使总的行程最短.从图 ...

  3. 基于双参数蜜蜂算法解决车辆路径问题(Matlab代码实现)

    目录 1 概述    1.1研究背景 2 运行结果 3 Matlab代码实现 4 参考文献 1 概述 群智能起源于自然环境中生物群体经过长期自然进化后具有的解决问题的能力,其中的许多问题在人类看来可以 ...

  4. 【LSTM回归预测】基于matlab灰狼算法优化LSTM回归预测【含Matlab源码 2038期】

    ⛄一.灰狼算法及LSTM简介 1 灰狼算法简介 1.1 前言 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种 ...

  5. matlab粒子群算法求解无约束最小值,pso matlab粒子群算法和遗传 是解决约束优化问题,无 和多目标 的优 259万源代码下载- www.pudn.com...

    文件名称: pso下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 51 KB 上传时间: 2016-06-01 下载次数: 0 提 供 者: 孙志勇 详细说 ...

  6. 【优化求解】改进灰狼算法求解重油热解模型matlab源码

    Grey Wolf Optimizer是Seyedali Mirjalili受大灰狼捕食策略的启发,于2014年提出的一种元启发式算法,主要模拟了搜索猎物.包围猎物和攻击猎物,源代码关注公众号后,回复 ...

  7. 【优化求解】基于灰狼算法GWO求解最优目标matlab代码

    1 简介 Mirjalili 等人提出了一种新的群体智能算法---灰狼优化算法(GWO),并通过多个基准测试函数进行测试,从结果上验证了该算法的可行性,通过对比,GWO 算法已被证明在算法对函数求解精 ...

  8. python bp神经网络 异或_【神经网络】BP算法解决XOR异或问题MATLAB版

    第一种 %% %用神经网络解决异或问题 clear clc close ms=4;%设置4个样本 a=[0 0;0 1;1 0;1 1];%设置输入向量 y=[0,1,1,0];%设置输出向量 n=2 ...

  9. 微分进化算法解决函数优化问题的matlab代码,Matlab微分进化算法及优化函数测试...

    微分进化(Difference Evolution,DE)算法是一种优化算法,据称其比GA(遗传算法)等更为优秀. 借鉴网上实现的DE算法,用Matlab实现了对若干函数优化问题的解法,代码如下: f ...

最新文章

  1. js 倒计时 时间戳
  2. g++使用C++11编译源文件
  3. cd 在windows下 无法切换盘符目录
  4. Java高并发编程(四):并发编程基础
  5. hive olap 数据仓库_数据仓库系统的实现和使用(含OLAP重点讲解)
  6. python中next(reader)_Python错误self.reader.next()
  7. 个人财务管理系统有源码怎么用_微信里的客户怎么管理?用鱼汛微信管理系统...
  8. MIP 组件库升级公告
  9. python删除文件夹无法访问_Python:pip和mu安装第三方库的小麻烦及解决方法
  10. 先进软件开发技术与工具
  11. 计算机专业学生实习目的,计算机专业学生的实习目的
  12. vscode如何设置大小写转换的快捷键
  13. QAC静态代码测试工具试用介绍
  14. JAVA程序运行原理——知其然,而知其所以然
  15. 笔记本电脑无法进入睡眠状态_小方法解决电脑无法进入睡眠模式问题
  16. mysql新建用户并授权管理员_MySQL数据库新建用户与授权方法
  17. 【数据仓库】数仓好坏衡量标准
  18. MacW编辑部的电脑都装了哪些苹果应用?
  19. Cadence 17.4 中文菜单
  20. 软件分析与用户体验分析

热门文章

  1. Linux下RTC时钟使用
  2. 浅略/逐行分析园区网接入交换机配置(以Ruijie交换机为例)
  3. MPC5744-PIT
  4. 凡客登录页面html代码,凡客.html
  5. 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC
  6. Unreal Windows平台打包iOS
  7. 【Vue】watch 和 watchEffect 的使用和差异性(1)
  8. Spark (一):Executor内存
  9. 基于RabbitMQ 的 Web MQTT插件进行前端消息实时推送
  10. A Survey of Optimization Methods from a Machine Learning Perspective