
在物联网、边缘计算和云计算不断融合的今天,一个看似工程化的问题,正在变得越来越关键:当大量 IoT 应用产生复杂任务流时,这些任务究竟应该在本地设备、雾节点,还是云端虚拟机上执行?
这个问题并不只是"哪里算力强就放哪里"这么简单。
IoT 设备离数据源近,但算力有限;Cloud 算力强,但通信延迟和费用更高;Fog 位于两者之间,既能降低传输延迟,又能提供一定计算能力。
对于医疗监测、工业自动化、远程感知、应急服务等场景,任务还常常带有严格的 deadline。一旦超时,结果可能不再有业务价值,甚至会影响系统安全。
本文解读的论文是:
A genetic algorithm with selective repair method under combined-criteria for deadline-constrained IoT workflow scheduling in Fog--Cloud computing
论文发表于 Elsevier 旗下期刊 Future Generation Computer Systems ,卷 175,文章号 108050,DOI 为 10.1016/j.future.2025.108050。
Future Generation Computer Systems 长期关注未来计算系统、分布式计算、云计算、雾计算、边缘计算、资源管理和工作流调度等方向,属于系统与应用计算领域较有影响力的国际期刊。至于具体分区、影响因子和单位认定级别,建议以所在单位采用的最新版目录为准。
这篇论文提出了一个名为 IoTGA-SRC² 的算法,全称是 Internet of Things Genetic Algorithm with Selective Repair under Combined Criteria。下文为了阅读方便,统一简称为 IoTGA-SRC²。
从名字就能看出,它基于遗传算法。但真正的亮点并不是"用了 GA",而是作者围绕 deadline 约束设计了一套更细致的选择与修复机制。
简单说,这篇论文想解决的问题是:
在 IoT-Fog-Cloud 异构环境中,如何调度带 deadline 的 IoT 工作流,使任务尽量按时完成,同时降低资源使用成本?
一、为什么这个问题难?

在论文中,IoT 应用被建模为 workflow。一个 workflow 由多个任务组成,任务之间存在前后依赖关系,通常可以表示为有向无环图 DAG。
例如,一个 IoT 人脸识别应用可能包含图像采集、预处理、特征提取、模型推理、结果返回等多个任务。某个任务必须等前一个任务完成并传输数据后才能开始。因此,调度器不能只看单个任务的运行时间,还要考虑整个任务链路的完成时间。
这个问题难,主要来自几个方面。
首先是资源异构。
IoT 设备、Fog VM、Cloud VM 的算力、价格和通信位置都不同。把任务放到 IoT 设备上可能成本低、传输快,但执行慢;放到 Cloud 上可能执行快,但通信慢、成本高。Fog 介于两者之间,既不是最弱,也不是最强,而是提供了一种折中选择。
其次是 workflow 依赖复杂。
一个任务被加速,并不一定能缩短整个 workflow 的完成时间。如果它不在关键路径上,或者它的后继任务仍然要等待其他任务完成,那么加速它的收益可能很有限。
这其实是调度问题里非常核心的一点:
局部最优,不一定带来全局最优。
第三是 deadline 约束严格。
很多 IoT 场景不只是追求平均性能,而是要求任务在特定时间之前完成。调度方案如果成本很低,但频繁超时,在实际应用中并不可接受。
第四是问题本身计算复杂。
论文指出,D-IoTWS,也就是 Deadline-Constrained IoT Workflow Scheduling,可以归约到 job shop scheduling 问题,因此是 NP-hard。对于大规模场景,精确算法往往难以直接使用,启发式和元启发式方法就成为常见选择。
二、学术界通常怎么做?
现有方法大致可以分为三类。
第一类是启发式算法,例如 HEFT、JIT-C、IC-PCP 等。
这类方法通常根据最早完成时间、关键路径、最低成本资源等规则快速生成调度方案。它们的优点是速度快、实现相对简单,适合工程系统中的快速决策。但面对复杂 deadline、异构资源和多 workflow 并发时,容易陷入局部最优。
第二类是混合启发式或学习增强方法,例如 ET2FA、QL-HEFT 等。
这些方法会在传统启发式基础上加入任务分类、强化学习或 VM 空闲管理等机制。它们通常比基础启发式更灵活,但在处理 deadline 违约时,仍然不一定能系统解释"为什么这个 workflow 超时"。
第三类是元启发式算法,例如遗传算法、粒子群、蚁群和多目标进化算法。
元启发式算法的优势是能够探索更大的解空间,尤其适合 NP-hard 调度问题。但它们也有一个典型挑战:搜索过程中会产生很多不可行解,也就是违反 deadline 的调度方案。
传统做法常常使用 penalty function,也就是给 deadline violation 加惩罚项。但论文指出,仅仅惩罚不可行解并不总能稳定地找到高质量可行解。
于是,近年来越来越多研究开始关注 repair method:与其简单淘汰或惩罚不可行解,不如尝试把它们修复成可行解。
这正是本文的切入点。
三、IoTGA-SRC² 的核心思想

IoTGA-SRC² 基于遗传算法。
每个染色体表示一个完整调度方案,每个基因对应一个 workflow task,基因值表示该任务被分配到哪个资源上执行。
比如某个任务可以被分配到 IoT 设备、Fog VM 或 Cloud VM。整个染色体组合起来,就表示一组 workflow 中所有任务的资源分配方案。
不过,这篇论文真正有价值的地方在于两个设计:
- SVC 选择算子:在父代选择时同时考虑 deadline violation 和 cost;
- SRC² 修复机制:对不可行解进行有选择、有原因分析、有多指标依据的定向修复。
这两个模块共同构成了本文方法的主要创新。
如果用一句话概括 IoTGA-SRC²:
它不是简单地惩罚 deadline 违约,而是尝试理解违约发生在哪里、为什么发生,以及应该怎样修复。
这也是这篇论文最值得关注的地方。
四、第一处亮点:选择父代时不只看"能不能按时",也看"贵不贵"
论文提出的 SVC,全称是 Selection with Violation Degree and Cost Function。
它是一种 tournament selection。每次从种群中随机选出若干个候选个体,然后以 0.5 的概率选择 deadline violation 最低的个体,以 0.5 的概率选择 cost 最低的个体。
这个设计看起来不复杂,但它很贴近问题本质。
如果只关注 deadline violation,算法可能会倾向于大量使用高性能资源。这样虽然更容易按时完成,但成本可能偏高。
如果只关注 cost,算法又可能选择便宜但算力不足的资源,导致 deadline 违约。
SVC 的作用是让进化过程同时受到两个方向的牵引:
一方面向可行解靠近,另一方面保留低成本解的竞争力。
这种设计属于比较朴素但有效的工程化改进。它没有把选择过程复杂化,却让遗传算法更贴近 cost-constrained 和 deadline-constrained 的双重目标。
这也是调度优化里经常会遇到的取舍:
一个好调度方案,不只是"能跑完",还要"花得值"。
五、第二处亮点:不可行解不是简单惩罚,而是诊断后修复

本文最核心的贡献是 SRC²,即 Selective Repair under Combined Criteria。
传统 repair 方法可能会简单地随机调整任务资源,或者只根据单一指标进行重分配。IoTGA-SRC² 的思路更加细致:先判断哪些不可行解值得修,再分析为什么超时,最后根据原因选择合适的资源。
SRC² 大致分为三个阶段。
1. 先选择哪些不可行解值得修
第一阶段是选择要修复的不可行解。
并不是所有不可行解都值得修。有些解可能离可行区域太远,修复成本很高;有些解虽然不可行,但只差一点点,可能通过少量调整就能满足 deadline。
IoTGA-SRC² 会根据当前种群中不可行解的比例,以及每个不可行解的 violation degree,选择那些更有可能被修复、且修复价值更高的个体。
如果不可行解比例很低,算法也不会强行修复所有不可行解,而是保留进化搜索自身继续优化的空间。
这点很重要。
因为 repair 不是越多越好。过度修复可能会削弱遗传算法本身的搜索多样性,让算法过早收敛到某些局部区域。
2. 再分析为什么超时
第二阶段是原因分析。
对于违反 deadline 的 workflow,算法先找出 critical path。因为 critical path 决定了 workflow 的完成时间,修复关键路径上的任务通常比修复非关键任务更有效。
随后,算法使用 DCIR,即 Delay Cause Impact Ratio,找出关键路径上对延迟贡献最大的任务。这个任务被视为当前 workflow 中最值得优先修复的任务。
这一步其实非常有系统工程味道。
很多算法只知道"这个解不好",但不知道"为什么不好"。SRC² 试图进一步回答:
- 是哪个 workflow 超时?
- 是哪条 critical path 拖慢了 workflow?
- 是关键路径上的哪个 task 对延迟贡献最大?
只有把这些问题拆开,repair 才不会变成盲目调整。
3. 最后根据延迟原因选择资源
第三阶段是多指标资源重分配。
算法进一步判断该任务造成 deadline violation 的主要原因:
- 是执行时间太长?
- 是通信时间太长?
- 还是等待资源时间太长?
如果主要原因是执行时间,算法倾向于把任务迁移到 CPU 更强的资源上。
如果主要原因是通信时间,算法倾向于把任务迁移到与前驱或后继任务更近的资源上。
如果主要原因是等待时间,算法倾向于换到同等算力但更空闲的资源,避免不必要地增加成本。
在选择目标资源时,论文还综合考虑了 gap、CPU ratio 和资源位置因素。换句话说,它不是简单地"换到更快的机器",而是在成本、可用时间、算力和通信位置之间做平衡。
这也是本文最值得借鉴的地方:
它把 deadline violation 从一个抽象惩罚值,拆解成更具体的系统原因。
这让遗传算法不再只是"盲目搜索",而是在搜索过程中逐渐具备了某种"调度诊断能力"。
六、实验结果如何?
论文使用了 4 组 D-IoTWS benchmark 问题实例,包含多个真实或常用 workflow:
- IoT Face Recognition;
- IoT QR processing;
- Montage;
- CyberShake;
- Epigenomics;
- Sipht。
对比算法包括 ET2FA、JIT-C、QL-HEFT、IoTGA 系列 baseline(论文结果表中包括 IoTGA-DC),以及已有 repair 方法 IoTGA-RMDC。
实验中每个算法独立运行 50 次,主要评价指标包括 cost、deadline violation degree 和 success rate。
整体结果可以概括为三点。
第一,IoTGA-SRC² 在所有 α 设置和问题场景下都实现了 0 deadline violation。
这说明 SRC² 修复机制对可行性保障非常关键。对于 deadline-constrained scheduling 来说,能否稳定满足 deadline 是第一位的。成本再低,如果频繁超时,也不适合作为任务调度方案。
第二,IoTGA-SRC² 的 success rate 达到 1.0。
也就是说,所有 workflow 都能按 deadline 完成。这一点说明它不只是平均表现好,而是在约束满足率上也很稳定。
第三,在满足 deadline 的前提下,IoTGA-SRC² 通常能取得更低的资源成本。
例如在 P1、deadline factor α = 0.1 时,IoTGA-SRC² 的平均成本为 82.61,低于 JIT-C 的 104.16、IoTGA-DC 的 92.90 和 IoTGA-RMDC 的 87.42。
从平均排名看,IoTGA-SRC² 也优于其他主要对比方法,说明它在 cost 和 deadline satisfaction 之间取得了更好的综合表现。
当然,实验中也存在个别 workflow 或 deadline factor 下其他方法 cost 更低的情况。例如在 Montage 的某些设置下,个别 baseline 在成本上可能更低,但往往伴随 deadline violation;也有个别设置下,其他方法在满足 deadline 的同时成本略优。
所以更准确地说,IoTGA-SRC² 的优势不是在每一个单点都绝对最低,而是在 deadline 满足率、violation degree 和 cost 之间取得了更稳定的综合表现。
论文还做了较完整的消融实验,分别考察 SVC、SRC²、repair selection、cause analysis 和 multi-criteria repair 的作用。结果表明,这些模块都对最终性能有贡献,尤其是 SRC² 对保证 deadline 可行性具有关键作用。
从实验组织上看,这篇论文不仅比较了多个 baseline,也对提出的模块做了拆解验证,这是比较扎实的一点。
七、这篇论文的价值在哪里?
我认为这篇论文的价值主要体现在三个层面。
第一,它把 IoT-Fog-Cloud 调度问题中的几个关键因素放到了同一个框架里:
- 资源成本;
- deadline;
- 执行时间;
- 通信时间;
- 资源等待时间;
- 资源位置差异。
相比只看计算时间或只看资源成本的调度方法,这种建模更接近真实系统。
第二,它对遗传算法中的不可行解处理做了更细的设计。
很多调度论文会把 violation 放进目标函数里惩罚,但这种方法有时会让算法在可行性和低成本之间摇摆。
本文则尝试"理解"不可行解,从关键路径和延迟原因入手进行修复。
这比单纯 penalty 更进一步。
因为 penalty 只是在告诉算法:
这个解不好。
而 SRC² 更像是在问:
这个解哪里不好?为什么不好?修哪里最有效?
第三,论文的 repair 思路具有一定可迁移性。
即使不用遗传算法,类似的"关键路径定位 + 延迟原因分析 + 多指标资源重分配"框架,也可以用于其他调度器、在线系统或强化学习调度策略中。
例如,在一个在线调度系统中,当某个 workflow 即将超时,也可以先定位 critical path,再判断瓶颈来自执行、通信还是等待,最后选择迁移任务、换资源、调整队列或增加资源。
从这个角度看,SRC² 不只是一个 GA repair operator,也可以看作一种面向 deadline violation 的调度诊断框架。
八、从工程落地看,还可以继续探索哪些方向?
这篇论文已经给出了一个较完整的离线调度框架,不过从真实系统落地和后续研究角度看,仍有一些值得继续探索的方向。
下面有些方向来自论文作者的 future work,有些则是我从工程落地角度做的进一步延展。
第一,当前模型主要面向静态任务集。
也就是说,workflow 信息在调度前基本已知。但真实 IoT 系统中,任务往往是连续到达的,资源状态也会动态变化。
作者在结论中也提到,未来可以扩展到 online scheduling。这会是一个非常自然且有价值的方向。
如果从工程系统角度看,online scheduling 会带来更多挑战:
- 新 workflow 持续到达;
- 当前调度方案可能需要动态调整;
- 资源状态会不断变化;
- 已经运行中的任务不能随意迁移;
- repair 决策需要足够快,不能本身成为系统瓶颈。
第二,实验主要基于 benchmark 和仿真配置。
虽然 workflow 来源具有代表性,资源价格也参考了 Azure pricing,但如果未来能在真实 Fog/Edge 平台上进一步验证,例如结合 Kubernetes、KubeEdge 或 OpenStack 环境,将有助于更全面评估调度开销、资源启动延迟和系统稳定性。
真实系统中,调度不是一条公式就能解决的。还会有资源启动时间、网络抖动、监控延迟、节点故障、资源碎片、任务重试、队列积压等问题。
第三,当前优化目标主要围绕 deadline 和 cost。
对于实际 IoT-Fog-Cloud 系统,能耗、内存、可靠性、隐私约束、节点故障和数据迁移开销也可能影响调度决策。
未来若扩展为多目标优化,例如同时考虑 cost、energy、deadline satisfaction 和 reliability,方法的适用范围会更广。
论文结论中也提到,未来可以进一步发展多目标优化算法,并将 memory usage 纳入 total cost calculation。这和真实系统需求是比较一致的。
第四,SRC² 中的一些阈值和系数仍带有经验设定。
论文已经进行了参数敏感性分析,说明这些设定在实验中是有效的。后续也可以进一步探索自适应参数机制,或者使用强化学习、元学习来学习 repair policy,让修复策略在不同工作负载下自动调整。
第五,repair 本身的调度开销也值得继续评估。
论文说明 SRC² 所需信息主要来自 fitness evaluation,因此不会额外消耗 fitness evaluations。这对离线遗传算法实验是合理的。
但在在线系统中,repair 的触发频率、关键路径分析开销、资源状态更新成本和调度决策延迟,仍然值得进一步评估。
尤其是在大规模 IoT workflow 场景下,如果每次 repair 都需要复杂分析,那么调度器本身也可能成为性能瓶颈。因此,未来可以进一步研究轻量化 repair、增量式关键路径更新、缓存式资源状态评估等机制。
这些方向并不是对论文工作的否定。恰恰相反,它们说明该论文提供了一个清晰的基础框架,后续可以继续沿着系统动态性、真实部署、多目标约束和在线调度展开。

九、总结
总的来说,这是一篇扎实的调度优化论文。
它没有把重点放在提出一个完全陌生的算法范式,而是针对 IoT-Fog-Cloud deadline-constrained workflow scheduling 中最棘手的部分,也就是不可行解和 deadline violation,做了有针对性的机制设计。
IoTGA-SRC² 的核心启发是:
违反 deadline 的调度方案不一定只是"坏解",它也可能是一个接近可行、值得修复的中间解。关键在于,我们能否判断它为什么超时,并用合适的方式修复它。
这也是本文最有意思的地方。
它让遗传算法不再只是盲目搜索,而是在搜索过程中逐渐具备了某种"调度诊断能力":先找到关键 workflow,再找到 critical path,再找到高影响任务,最后根据执行、通信或等待瓶颈进行定向调整。
对我来说,这篇论文最值得借鉴的地方,不是"遗传算法又做了一次调度优化",而是它把 deadline violation 从一个简单的惩罚项,变成了一个可以被定位、解释和修复的系统现象。
对于研究 IoT 工作流调度、云边协同、元启发式优化、deadline-constrained scheduling 的读者来说,这篇论文值得认真阅读。它的贡献不是炫技式的复杂,而是把一个实际调度问题中最需要被认真对待的约束处理环节,做得更细、更稳,也更贴近真实系统。
原论文信息
本文解读论文如下:
Amer Saeed, Gang Chen, Hui Ma, and Qiang Fu. (2026). A genetic algorithm with selective repair method under combined-criteria for deadline-constrained IoT workflow scheduling in Fog--Cloud computing . Future Generation Computer Systems, 175 , 108050. DOI: 10.1016/j.future.2025.108050
本文仅为个人学习与技术解读,重点关注 IoTGA-SRC² 在 IoT-Fog-Cloud 工作流调度、deadline 约束处理、选择性修复机制和多指标资源重分配方面的设计思路。如有理解不准确之处,以原论文内容为准。