早教吧作业答案频道 -->其他-->
贪心算法告急!!!!!大神来帮忙!!!!!!有悬赏。。。。。一个问题叫做活动选择例4活动选择假设有一个需要使用某一资源的n个活动所组成的集合S,S={1,…,n}。该资
题目详情
贪心算法告急!!!!!大神来帮忙!!!!!!有悬赏。。。。。
一个问题 叫做活动选择
【例4】活动选择
假设有一个需要使用某一资源的n个活动所组成的集合S,S={1,…,n}。该资源一次只能被一个活动所占用,每一个活动有一个开始时间bi和结束时间ei(bi<=ei)。若bi>=ej或bj>=ei,则称活动i和活动j兼容。你的任务是:选择由互相兼容的活动所组成的最大集合。
输入:
输入文件名为act.in,共n+1行,其中第1行为n,第2行到第n+1行表示n个活动的开始时间和结束时间(中间用空格隔开),格式为:
n
b1 e1
……
bn en
输出:
输出文件名为act.out,共两行,第1行为满足要求的活动占用的时间t,第2行为最大集合中的活动序号,每个数据之间用一个空格隔开。
样例输入:
11
3 5 样例输出:
1 4 14
12 14 2 3 6 8
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13
这个题给出的贪心策略是:我们使用的贪心策略如下:每一步总是选择这样一个活动来占用资源:它能够使得余下的未调度的时间最大化,使得兼容的活动尽可能多(Why?)求助
为了达到这一目的,我们将n个待选活动按结束时间递增的顺序排列:e1’<=e2’<=…<=en’
首先让这一序列中的活动1进入集合S,再依次分析递增序列中的活动2,活动3,…,每次将与S中的活动兼容的活动加入到集合中。
这个题用贪心算法做为什么正确??
题目上给的证明是:构造一个最优解,然后,对该解进行修正,使其第一步为一个贪心选择,证明总是存在一个以贪心选择开始的求解方案。
对于本题,设最优解为A,第一个选中的活动为k(k<>1),如果另一个解B开始于贪心选择活动1:
B = A – {k}∪{1}
因e1’<=ek’,所以B中的活动是兼容的。又因为B与A的活动数相同,所以B也是最优的。由此证明总存在一个以贪心选择开始的最优调度。
这个证明没看懂 请大神帮忙解释........
一个问题 叫做活动选择
【例4】活动选择
假设有一个需要使用某一资源的n个活动所组成的集合S,S={1,…,n}。该资源一次只能被一个活动所占用,每一个活动有一个开始时间bi和结束时间ei(bi<=ei)。若bi>=ej或bj>=ei,则称活动i和活动j兼容。你的任务是:选择由互相兼容的活动所组成的最大集合。
输入:
输入文件名为act.in,共n+1行,其中第1行为n,第2行到第n+1行表示n个活动的开始时间和结束时间(中间用空格隔开),格式为:
n
b1 e1
……
bn en
输出:
输出文件名为act.out,共两行,第1行为满足要求的活动占用的时间t,第2行为最大集合中的活动序号,每个数据之间用一个空格隔开。
样例输入:
11
3 5 样例输出:
1 4 14
12 14 2 3 6 8
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13
这个题给出的贪心策略是:我们使用的贪心策略如下:每一步总是选择这样一个活动来占用资源:它能够使得余下的未调度的时间最大化,使得兼容的活动尽可能多(Why?)求助
为了达到这一目的,我们将n个待选活动按结束时间递增的顺序排列:e1’<=e2’<=…<=en’
首先让这一序列中的活动1进入集合S,再依次分析递增序列中的活动2,活动3,…,每次将与S中的活动兼容的活动加入到集合中。
这个题用贪心算法做为什么正确??
题目上给的证明是:构造一个最优解,然后,对该解进行修正,使其第一步为一个贪心选择,证明总是存在一个以贪心选择开始的求解方案。
对于本题,设最优解为A,第一个选中的活动为k(k<>1),如果另一个解B开始于贪心选择活动1:
B = A – {k}∪{1}
因e1’<=ek’,所以B中的活动是兼容的。又因为B与A的活动数相同,所以B也是最优的。由此证明总存在一个以贪心选择开始的最优调度。
这个证明没看懂 请大神帮忙解释........
▼优质解答
答案和解析
首先,这个题目的最优解(可能)并不是唯一的,将全体最优解记为集合Y(Y={y1,y2,...yn})。
其次,题目中给出的贪心策略所得到的解(记为y)只是其中一个最优解,即y∈Y。
最后,就是怎么来证明贪心策略所得到的解是一个最优解,也就是怎么来证明y∈Y。
方法就是对于任意一个最优解yi(i∈[1,n]),可以通过一步修正得到另外一个最优解yj,然后对yj进行一步修正得到另外一个最优解,直到最优解变得跟y一模一样,也就证明了y是最优解。
其次,题目中给出的贪心策略所得到的解(记为y)只是其中一个最优解,即y∈Y。
最后,就是怎么来证明贪心策略所得到的解是一个最优解,也就是怎么来证明y∈Y。
方法就是对于任意一个最优解yi(i∈[1,n]),可以通过一步修正得到另外一个最优解yj,然后对yj进行一步修正得到另外一个最优解,直到最优解变得跟y一模一样,也就证明了y是最优解。
看了 贪心算法告急!!!!!大神来...的网友还看了以下:
考试计算题,求两种资产的收益和标准差。(着急,特别着急!)在一个投资对象为资产1和资产2的组合投资 2020-05-13 …
马柯维茨提出的( )描绘出了1资产组合选择的最基本、最完整的框架.是目前投资理论和投资 2020-05-21 …
现有以下两项投资选择:(1)风险资产组合30%的概率获得15%的收益,20%的概率获得10%的收益 2020-05-30 …
学会投资理财,是现代公民必备的一种生活技能和本领。投资选择需要遵循和注意的基本要点包括[]①投资要 2020-06-11 …
甲、乙、丙三个组,甲组6人,乙组5人,丙组4人,现每组各选1人一起参加会议,一共有种选法;如果三组 2020-06-12 …
甲、乙、丙三个组,甲组6人,乙组5人,丙组4人,现每组各选1人一起参加会议,一共有种选法;如果三组 2020-06-12 …
每组各选1人参加航模比赛,一共有(一共有()种选法;如果三组共选一个代表,有()种选法. 2020-06-17 …
小明的班里有三个小组,每小组有20人.现要在班里选3人负责午餐发放,每小组选1人,人,则小明被选上 2020-06-20 …
甲乙两组各有2男2女,从每组各选1男1女,共4人出来培训,一共有多少组合方式?那个答案是这样的,从4 2020-11-07 …
时事讲堂上,同学们展示了这样一组资料:○第十三届全国人民代表大会代表将于2018年1月选出○中央环保 2020-11-23 …