指派问题基于matlab遗传算法求解指派优化问题含matlab源码2292期

海神之光 海神之光     2022-12-30     718

关键词:

⛄一、遗传算法求解指派优化问题简介

1 遗传算法
1.1 遗传算法简介

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,它是一种多学科融合交叉的产物。遗传算法通过合理的编码机制和进化机制,广泛应用于近似最优化、生产调度、图形分割及自动控制等领域。

1.2 遗传算法基本步骤
(1)初始化。设置初始种群、最大迭代次数及迭代计数器。
(2)适应度评价。对当前种群计算其个体适应度。
(3)进化操作。主要是通过选择、交叉、变异、倒位等算子作用产生下一代群体。
(4)终止条件判断。如果已经求得最优解,则终止;否则重复以上两个步骤。

2 指派问题的遗传算法实现
2.1 指派问题模型描述

人们日常生活和工作中,经常会遇到这类问题:有n个任务需要n个人去完成,每个人完成每个任务的效率不尽相同,要求一个人只能完成其中一个任务,一个任务只能由一个人完成。要求合理分配之后,所达到的总体效率最好,这就是指派问题。

那么,根据优化模型理论,当目标为极大值时,指派问题的数学模型[3]如下:

其中,当指派第i个人去完成第j个任务时,xij=1;否则xij=0。cij表示第i个人去完成第j个任务的效率;约束条件(2)表示:第i个人只能完成一项任务;约束条件(3)表示:第j个任务只能由一个人完成。

2.2 指派问题的遗传算法设计
遗传算法设计是完成遗传运算的具体方法,涵盖了决策变量的基因型与表现型之间的编码和解码,个体适应度函数构造,遗传算子构建,控制参数设置等过程。

2.2.1 指派问题适应度函数
针对指派问题在求解目标函数为极大值时的情况和考虑指派问题可行解的非负性前提下,其个体适应度与目标函数值是成正比。因此,指派问题的适应度函数构建为如下所示:

其中,xij表示第i个人是否去做第j个任务。cij表示第i个人完成第j个任务的效率。

F越大,表示个体适应度越好,其可行解越好,能够以较大概率遗传到下一代。当F取值最大时,则表示已经达到最优解。

2.2.2 指派问题染色体编码
染色体[编码质量是影响遗传算法计算效率和准确度的重要因素。考虑到指派问题的特殊约束性质:即每人只能完成其中一个任务且每个任务只能由一人完成。针对决策变量xij的取值,其基因型编码不采取通常的0-1二进制编码,而采用常用的十进制编码。并且,每个基因块只有两个基因位,分别表示决策变量的行下标取值和列下标取值。当问题规模为n时,则指派问题决策变量染色体编码表示为:

在这种染色体编码十进制表示方式下,对于每个个体,其染色体的n个基因块在处理时按照如下规则进行:

(1)各代群体每个染色体中各基因块第一位分别赋予固定值:范围为0到n-1,即R11=0,R21=1,…Rn1=n-1。其目的是保证决策变量选取位于不同行。

(2)各代群体每个染色体中各基因块第二位分别赋予无重复随机值:范围为0到n-1,即R12、R22…Rn2每次取0到n-1的随机全排列值。目的是保证决策变量选取位于不同列。

通过这种方式进行指派问题染色体编码,可以只对基因块中第二位编码进行随机产生,提高了搜索效率。同时,由于是十进制编码,各个基因块的值组合可以直接定位于效率矩阵中的对应元素位置,加快运算效率。

2.2.3 指派问题遗传算子改进策略
一般情况下,遗传算法遗传过程和进化过程主要是通过选择、交叉、变异及倒位等遗传算子组合运算完成群体迭代。考虑指派问题组合优化的特殊性:即可行解必须位于不同行不同列,已在决策变量染色体编码中进行了约束限制,那么,在遗传进化过程中,无需再对种群群体进行变异操作和倒位操作。

因此,通过优化染色体编码,在遗传进化过程中仅通过选择和交叉策略实现种群迭代,有效地提高了运算效率,加快了最优解的获得。

⛄二、部分源代码

clc
clear all
n=input(‘请输入任务数’);
m=input(‘请输入工人数’);%可用人员数
maxgen=input(‘请输入最大代数’);
pop=10;%初始种群规模
pc=0.8;%发生交叉的概率
pm=0.8;%变异的概率
gen=0;
A=xiaolv(n,m);
C=chushi(pop,m);
pop1=jiaohuan(C,pop,m,pc);
popnew=bianyi2(pop1,pop,m,pm);
J1=zeros(2,maxgen);
J2=zeros(maxgen,m);
while gen<maxgen
gen=gen+1;
D=fitness(A,m,popnew);
[FY,JY]=xunyou(D,popnew);%找出最优解
J1(1,gen)=gen;
J1(2,gen)=JY;
J2(gen,:)=FY;
C=sel(pop,D,popnew);
pop1=jiaohuan(C,pop,m,pc);
popnew=bianyi2(pop1,pop,m,pm);
end
F=find(J1(2,:)==min(J1(2,:)));
fprintf(‘最小费用%d\\n’,min(J1(2,:)))
disp(‘指派方案’)
Z=J2(F(1)😅;
for i=1:m
if i<=n
fprintf(‘第%d个人完成第%d个任务\\n’,Z(1,i),i)
else
fprintf(‘第%d个人无任务\\n’,Z(1,i))
end
end
X=J1(1,:);
Y=J1(2,:);
scatter(X,Y,‘.b’)
xlabel(‘代数’)
ylabel(‘最小费用之和’)
title(‘指派问题收敛图’)

⛄三、运行结果


⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]齐安智.一种遗传算法求解指派问题的改进策略[J].价值工程. 2013,32(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

优化指派基于matlab粒子群算法求解指派优化问题(工作质量)含matlab源码2390期(代码片段)

⛄一、飞机指派模型的建立简介1飞机指派问题概述飞机排班是依据航空公司的航班计划和飞机维护工作安排为每一个航班指定一架具体执行的飞机,也即给每一个航班号分配一个相应的机尾号。目前,国内航空公司的飞机排班流程... 查看详情

优化求解基于matlab遗传算法求解道路流量优化问题含matlab源码1480期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab遗传算法求解道路流量优化问题含matlab源码1480期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab遗传算法求解列车交路方案优化问题含matlab源码1361期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab遗传算法求解列车交路方案优化问题含matlab源码1361期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab遗传算法求解函数极值问题含matlab源码1198期

一、简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

多目标优化求解基于matlab遗传优化萤火虫算法求解多目标优化问题含matlab源码1484期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

多目标优化求解基于matlab遗传优化萤火虫算法求解多目标优化问题含matlab源码1484期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab改进的遗传算法求解考虑环境效益dg优化问题含matlab源码1483期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化求解基于matlab改进的遗传算法求解考虑环境效益dg优化问题含matlab源码1483期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化分配基于matlab遗传算法求解医疗资源分配优化问题含matlab源码1419期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化布局基于matlab遗传算法求解配电变电站布局优化问题含matlab源码1317期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化覆盖基于matlab遗传算法求解无线传感器覆盖优化问题含matlab源码1320期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化调度基于matlab改进的遗传算法求解风电场优化调度问题含matlab源码1245期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

优化调度基于matlab遗传和模拟退火算法求解码头泊位分配调度优化问题含matlab源码247期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情

生产优化基于matlab遗传算法求解帐篷工序问题含matlab源码2145期

...我的资源:【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码2145期】点击上面蓝色字体,直接付费下载,即可。获取代码方式2:付费专栏优化求解(Matlab)备注:点击上面蓝色字体付费专栏优化求解(Matlab),扫... 查看详情

优化求解基于matlab遗传算法求解共享汽车电价优化问题含matlab源码1162期(代码片段)

一、简介1遗传算法概述遗传算法(GeneticAlgorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。该算法简单、通... 查看详情

优化选址基于matlab遗传算法求解多城市多应急物流中心选址优化问题含matlab源码h001期

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础 查看详情