回溯法 批处理作业调度_算法设计与分析——批处理作业调度(回溯法)

本文介绍了如何使用回溯法解决批处理作业调度问题,旨在找到使完成时间和最小化的作业顺序。首先解释问题描述,接着展示算法设计,包括数据结构和递归回溯函数的实现,并提供了C语言的程序示例。最后讨论算法效率。
摘要由CSDN通过智能技术生成

之前讲过一个相似的问题流水作业调度问题,那一道题最开始用动态规划,推到最后得到了一个Johnson法则,变成了一个排序问题,有兴趣的可以看一下https://www.cnblogs.com/wkfvawl/p/11667092.html

一、问题描述

给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。

例:设n=3,考虑以下实例:

看到这里可能会对这些完成时间和是怎么计算出来的会有疑问,这里我拿123和312的方案来说明一下。

对于调度方案(1,2,3)

作业1在机器1上完成的时间是2,在机器2上完成的时间是3

作业2在机器1上完成的时间是5,在机器2上完成的时间是6

作业3在机器1上完成的时间是7,在机器2上完成的时间是10

所以,作业调度的完成时间和= 3 + 6 + 10

这里我们可以思考一下作业i在机器2上完成的时间应该怎么去求?

作业i在机器1上完成的时间是连续的,所以是直接累加就可以。但对于机器2就会产生两种情况,这两种情况其实就是上图的两种情况,对于(1,2,3)的调度方案,在求作业2在机器2上完成的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值