⛄一、二次分配问题描述
给定n个设备和n个地点,要求给每个设备分配一个位置并且每个位置只有一个设备。n个设备相五之间是有联系的,可以设想其中的每一个设备都需要另外某个或者某几个设备的输出作为原料。设备i生产产品需要花费在运输到设备j处的单位距离代价就是fj,设备i所在位置与设备j所在位置的距离是dj,那么设备i往设备j运送原料的总代价就是fjdj。对于所有的i和j求和,就可得到总代价。
假设设备安排的位置用排列P来表示,如P(2)=3表示第3个设备放置在第2个地方, 那么设备i往设备j运送原料的代价可写为fjd(P, Pj) 。QAP问题就是要求使得各种ij组合对应的代价之和(总代价)最小。
⛄二、部分源代码
Choices = {‘Particle Swarm Optimization (PSO)’, ‘Firefly Algorithm (FA)’};
ANSWER = questdlg(‘Select the algorithm to solve Quadratic Assignment Problem.’, …
‘QAP’, …
Choices{1}, Choices{2}, …
Choices{1});
if strcmpi(ANSWER, Choices{1})
pso;
return;
end
if strcmpi(ANSWER, Choices{2})
fa;
return;
end