- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人能解释一下如何最好地解决这个问题吗?
很明显,即使这两个链接说 SJF 是最优的,贪婪的方法也不会产生最优解(我不认为他们考虑平均等待时间,而是有最小化总执行时间的标准)。
从我对这个问题的了解来看,似乎需要详尽地列出所有可能的工作安排(排列)。但我不确定是否有一种基于动态规划的方法可以让人们获得最佳解决方案,而不必详尽地找到所有可能排列的平均等待时间。
问题:n
不同的(r_i, t_i)
数组中给出了作业请求时间和作业长度时间的列表工作。 r_i
表示作业请求何时进来,即作业的到达时间或请求时间,t_i
表示作业执行所花费的时间单位。只有一个人处理工作,并且一次只能从事一项工作。
使用输入数组 (r_i, t_i)
计算一组给定的 N
作业的最小平均等待时间?
示例:列表(r_i, t_i)
:job-1(0, 3), job-2(2, 5), job-3 (3, 2)
如果作业按照job-1, job-2, job-3
的顺序完成,那么:
job-1
的等待时间 = 作业结束时间 - 作业请求时间 = 3-0
job-2
的等待时间 = 8-2 = 6
job-3
的等待时间 = 10-3 = 7
所以平均等待时间是:(3 + 6 + 7)/3。
但是如果这些工作按照job-1, job-3, job-2
的顺序完成:平均等待时间是:(3+2+8)/3 = 13/3
,比原来的顺序要好。所以最小平均等待时间是 13/3 时间单位。
编辑:
作业的等待时间被定义为(完成时间 - 到达或请求时间)。也可以称之为周转时间。问题是最小化总等待时间/N 的问题之一,如果假设等待时间的不同定义为(作业开始时间 - 作业到达时间),这将与最小化总等待时间的问题相同。
SJF(最短作业优先)未给出最优调度的示例:
J1 (1, 5)J2 (2, 2)J3 (0, 3)
最短的工作 j2。但是选择 j3,j2,j1 比在 j2,j3,j1(等待时间 = 4+7+11)中先选择 j2 更好的调度(总等待时间 = 3+3+9)
在时间0,最短的工作是J1。 J1-J2 作为时间表,总等待时间为 100+102。 J2-J1 时间表给出了 3+103 的最佳总等待时间。
最佳答案
您的描述中有些地方不清楚:是否允许抢占?即是否有可能停止一项工作,开始另一项工作,然后再完成这项工作。在这两种情况下,您都可以查看 this website以便了解您的问题是 NP-hard 还是多项式可解。
此外,查看完成时间的总和或等待时间的总和是严格等效的,您只需添加/删除发布日期和处理时间的总和即可。
关于algorithm - 如何*最佳*解决调度 N 个作业(到达时间,执行时间)提前已知,以便 N 个作业的平均等待时间最短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44668026/
我正在尝试制作一个程序,显示飞机到达和起飞的时间表,然后要求用户在 C 中输入时间。然后程序将找到最接近输入时间的到达时间用户。问题是它没有按预期工作,并且给我一个错误的到达时间,甚至不接近输入的时间
我有一个不断填充新信息行的 Excel 表,其中一列与联系客户的日期(有时为空 - 无需输入日期)相关,如果在 10 内没有收到回复从那以后的几天,我们必须发送提醒,如果过了 17 天,我们必须取消订
实际到达很简单,标签进入接收器天线范围,但是偏离是造成问题的原因。 首先,我们了解一些有关设置的信息。 标签: 它们以433Mhz的速度工作,每1.5秒钟发送一次“心跳”,移动时进入传输突发模式,这种
我构建了这段代码来从 URL 获取 XML我使用了 AsyncTask,当到达 getInputStream() 点时,半身应用程序仍然崩溃 重点是我想从 url 获取 XML 作为字符串。 我尝试不
所以我有一个 TDBGrid,我的目的是搜索 DBGrid 的 Fieldname 并将其与我的编辑的 Text 属性进行比较,如果它们相等,则 我想将找到匹配项的整列写入列表框。 通过带有 fiel
我会写得非常简单,因为实际的修复并不比我不理解的实际设计重要。似乎一旦我的 @RequestBody 命中 @Controller,有关 subtype 的信息就会丢失。 假设我们有: class A
所以我正在做这个简单的动态编程问题,关于达到 n一次只能走 1 或 2 步。我知道答案基本上是一个斐波那契序列,答案是:达到n-2的步骤数+ 到达 n-1 的步数. T(n) = T(n-1) +
(function start (){ $('.bar').each(function(i){ var $bar = $(this); $(this).append('')
我有一个程序,我在启动它之前要求用户输入。 public static void main(String args[]) { String database = JOptionPane.sho
就是这样,我必须在提交按钮上有一张图片,但它根本没有出现。 我希望它看起来像这样: 现在看到我的是这样的,我不明白为什么它没有出现在页面上。 HTML CSS #sognu { bac
click here 点击后重定向至 xyz.com/#contact, 现在我想获得div #abc的顶部位置 //set the value as a variable, and remove t
here is a fiddle to know where I am starting from 我要解决的问题涉及对单个 html 文件的内容进行“分页”,以一种将它们一次锁定在一个部分中的方式。
是否可以在传递页面部分时运行 javascript 函数?我想要实现的是类似于 Twitter Bootstrap 的 scrollspy。 最佳答案 您可以使用 waypoints 插件: http
我有一个可以动态调整其大小的 iframe。我通过父页面上的发布消息和监听器解决了这个问题,因此每次 iframe 的内容发生变化时,iframe 的大小也会发生变化,并且永远不会有滚动条。 在 if
我试图让我的导航栏在到达我在网站下方设置的 anchor 时变得透明。 这是我的HTML Home About Logo W
我写了一个简单的程序来管理姓名列表(下面是程序的一部分)。我希望函数“choice()”结束并返回到 main()——从而结束程序——当用户对变量“option”的输入为 4 时。然而,choice(
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
代码片段在 while 循环后有一个 EOF,之后必须再次重新打开文件 - fopen 被重用。我的问题是是否有办法避免这种笨拙的 fopen 双重使用或以某种方式不使用 EOF? if (!(f=f
从这个页面: http://www.beta.inegi.org.mx/app/buscador/default.html?q=e15a61a 我正在尝试检索此网址: http://www.beta.
我使用维基百科的 API 来获取有关页面的信息。API 给我这样的 JSON: "query":{ "pages":{ "188791":{ "pageid":18879
我是一名优秀的程序员,十分优秀!