边缘计算卸载算法--CD梯度下降

本文介绍了一种在边缘计算环境下针对单个工作流任务的梯度下降卸载算法。该算法通过迭代更新卸载策略来寻找局部最优解,适用于由三个任务节点构成的工作流。文章详细解释了算法的核心思想及其实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降卸载算法

背景:我实现该算法是在边缘计算单个工作流任务环境中,下面可以看到此背景下的java代码实现。
此处假设我们的工作流任务中只有3个任务节点(构成一个有向无环图),下面基于此假设分析算法。

1. 算法伪代码

在这里插入图片描述

2.输入

假设初始化卸载策略{1,0,0} // 0:不卸载 1:卸载

3.输出

假设局部最优卸载策略{0,0,0}

4.算法中参数说明

在这里插入图片描述

5.例子

说明:
① 工作流任务数假设为3个。
② 一个卸载策略表示为0、1组成的长度为3的数组,比如{1,1,0}表示第一、二个任务卸载、第三个任务不卸载。

核心思想

  1. 初始化一个卸载策略:{1,1,1}。
  2. 第一轮循环时:
    ① 保持第一个任务卸载策略不变{1,1,1},其他依次变化{1,0,1}、{1,1,0};
    ② 计算卸载策略的优化目标值依次为a1、a2、a3;
    ③ 比较 a1 a2 a3, 如果a2的优化目标值最小,小于初始化目标值也为默认当前最优目标值 a1(优化目标值越小越好),则更新卸载策略数组为{1,0,1},此时的优化目标值a2为目前的最优优化目标值。
  3. 继续进行循环,和②一样,保持第二个任务不变,{1,0,1},{0,0,1},{1,0,0},计算它们的目标值再进行比较,如果有更小的目标值,则继续下一轮的循环。
  4. 如果a1的优化目标值最小(也就是本次循环优化目标值并没有减小),那么当前最小优化目标值对应的卸载策略为局部最优卸载策略结束算法。
6.我的java代码实现

① 初始化

/**
 * 初始化梯度下降任务卸载与否的数组
 * @param taskNum 任务总数
 */
public void coordinateDescentInit(int taskNum){
   
   
    // 卸载策略初始化
    oldStrategy = new ArrayList<>();
    int count = 0;
    for (int i = 0; i < taskNum; i++) {
   
   
        int[] offloadStra = new int[taskNum
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值