- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在此Job Sequencing Problem ,我们如何证明贪婪方法提供的解决方案是最优的?
此外,我也无法找出作者后来声称的 O(n) 解决方案
It can be optimized to almost O(n) by using union-find data structure.
最佳答案
贪婪解决方案的最优性可以通过如下交换参数看出。在不失一般性的情况下,假设所有利润都不同,并且工作按利润降序排列。
修复解决方案 S
。从此解决方案中,删除所有错过截止日期的作业。由于通过这种转换,每项工作都在其截止日期内完成,因此生成的解决方案 S1
仍然是最优的。对于作业 i
,考虑区间 I_i:=[0,min(n,deadline(i))]
(与贪心算法一样)。在此间隔内,作业 i
的右侧,只有处理时间较长的作业(如果不是,它们要么会被我们的订单提前考虑,要么可以在不违反它们的情况下进行交换截止日期)。将作业 i
放在 I_i
中最右边的位置。
总的来说,我们有以下陈述。
每个解决方案 S
都可以转换为具有以下属性的解决方案 S'
。
S'
包含 S
的所有在截止日期前完成的作业。S
中的每个作业i
,I_i
中i
之后的所有作业都有较长的处理时间。 S
中的每个作业i
,在I_i
中的i
之后没有空闲时间。<S'
与 S
具有相同的目标值。特别地,存在具有上述性质的最优解S*
。令S
为贪心算法生成的算法。请注意,S
还具有上面的属性 2 和 3。设 i
是出现在 S
中但不在 S*
中的第一个作业。令pos
为S
中i
的时隙。如果 S*
中的 pos
为空,则可以通过添加 i
来改进 S*
,这与最优性相矛盾S*
。如果 pos
在 S*
中不为空,作业i'
在pos
S*
中的利润不能大于 i
,否则贪心算法会选择 i'
位于 pos
在 S
中。因此,它的利润一定低于i
。这意味着它可以被S*
中的i
删除和替换,这也与S*
的最优性相矛盾。
关于algorithm - 工作排序贪婪解决方案的最优性证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27921645/
我正在尝试在r中编写代码,以便找到单变量正态分布的最大似然(而不是对数似然)值。我知道还有其他方法,但是我需要深入了解数值优化才能进行进一步的工作。当我调用'optim'函数时,它似乎根本不会进行迭代
最近我一直在用 php + mysql 做一个相当大的项目。现在我担心我的 mysql。我应该怎么做才能使我的 mysql 尽可能优化?把你知道的都说出来,我将非常感激。 第二个问题,我在每次加载页面
我不太了解 InitializeCriticalSectionAndSpinCount 的文档: http://msdn.microsoft.com/en-us/library/windows/des
我们公司有几种不同的获取潜在客户的方式,以及我们处理的几种类型的潜在客户。每种类型的潜在客户之间只有微小的差异,并且大部分信息与一种或多种其他潜在客户类型共享或相关。我和我的团队正在尝试使用 Solr
ϵ-贪婪策略 我知道 Q-learning 算法应该尝试在探索和利用之间取得平衡。由于我是该领域的初学者,因此我想实现一个简单版本的探索/利用行为。最佳 epsilon 值 我的实现使用 ϵ 贪婪策略
我是一名优秀的程序员,十分优秀!