使用拍卖的多智能体系统动态分散任务分配算法(Maatlab代码实现)

      💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献 

 🌈4 Matlab代码、数据、视频、文献下载


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

摘要:我们提出了一种基于拍卖的分散式算法,用于解决动态任务分配问题空间分布的多智能体系统的分配问题。在我们的方法中,每个成员多智能体团队中的每个智能体最多被分配一组空间分布的任务中的一项任务,而几个代理可以被分配给同一个任务。任务分配是动态的,因为它是在离散时间阶段(迭代)更新,以考虑代理的当前状态后者朝着上一阶段分配给他们的任务前进。我们提出的方法可以在智能机器(如送货机器人)的源配置问题中找到应用由无人驾驶或半自动驾驶的飞行器组成的机队进行包裹的配送。在我们的方法中,任务分配账户用于支付代理人完成指定任务所产生的费用任务(例如,能源或燃料消耗)以及完成任务所获得的奖励(例如,金钱或声誉)例如,可能反映代理人的满意度)。我们提出了贪婪联盟拍卖算法(GCAA),其中代理拥有代表其最佳评估的投标向量任务实用程序。代理人提出投标,根据他们的投标向量推断分配并在每次迭代后更新它们。拟议任务分配的解决方案估计算法在有限次迭代后收敛,迭代次数不能超过代理人。最后,我们使用数值模拟来证明所提出方法的有效性在多种场景下的任务分配算法(从性能和计算时间的角度)涉及分布在空间2D域上的多个代理和任务。
关键词:多智能体和网络系统、拍卖算法、分散系统、轨迹规划。

在本文中,我们提出了一种基于拍卖的框架工作,以解决动态任务分配问题具有状态依赖效用的多智能体系统各种任务特征(例如终端约束,完成时间等)。我们贪婪的方法提供了一个实用且高效的解决方案,适用于一类更现实的以及具有挑战性的动态任务分配问题自主移动代理。效用计算时间 效用计算时间对于大型自主系统舰队,具有一定的可扩展性由于计算时间而产生问题。我们的下一个研究将更多地关注机器学习及其最近的成就(特别是深度强化学习对于多智能体机器人)以缓解这个问题并建立基于本文提出的算法。我们进一步计划将本文所呈现的结果扩展到更多具有截止日期、逻辑的现实任务分配问题约束、弹出任务和具有不同能力和偏好的代理。最后,控制问题将扩展到包括障碍物(例如,杂乱环境)

详细文章见第4部分。

📚2 运行结果

部分代码:

function [] = PlotAllocTime(X_full_simu, t_plot, time_step, pos_t, map_width, colors, radius_t, task_type, nRatioPointsFigure, lineWidthFigure, markerSizeFigure)
    xlim([0 map_width]);
    ylim([0 map_width]);
    xlabel('x [m]');
    ylabel('y [m]');
    na = size(X_full_simu{1}, 2);
    n_round = size(X_full_simu{1}, 3);
    plot(pos_t(:,1), pos_t(:,2),'ks', 'MarkerSize', markerSizeFigure/2.5, 'MarkerFaceColor',[0 0 0]);   
    PlotTaskLoitering(pos_t, radius_t, task_type, 'k--', 'Task loitering');
    
    round_plot = floor(t_plot / time_step) + 1;
    if round_plot >= n_round
        round_plot = n_round-1;
    end
    X_prev = zeros(4, na, round_plot);
    for k = 1:round_plot
        X_prev(:,:,k) = X_full_simu{k}(:,:,1);
    end
    
    X_next = zeros(4, na, n_round - round_plot);
    for i = 1:na
        X_next(:,i,:) = X_full_simu{round_plot}(:,i,2:end);
    end
    
    for i = 1:na
        xX_prev = reshape(X_prev(:,i,:),[4, size(X_prev, 3)]);
        xX_next = reshape(X_next(:,i,:),[4, size(X_next, 3)]);
        plot(xX_prev(1,1:nRatioPointsFigure:end), xX_prev(2,1:nRatioPointsFigure:end), 'Color', colors(i,:), 'LineWidth', lineWidthFigure);
        plot(xX_next(1,1:nRatioPointsFigure:end), xX_next(2,1:nRatioPointsFigure:end), '--', 'Color', colors(i,:), 'LineWidth', lineWidthFigure-1);
        plot(xX_next(1), xX_next(2), 'h', 'Color', colors(i,:), 'MarkerSize', markerSizeFigure, 'MarkerFaceColor', colors(i,:)); 
    end
end

🎉3 参考文献 

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

 🌈Matlab代码、数据、视频、文献下载

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值