活动安排贪心算法 - 范文中心

活动安排贪心算法

03/14

活动安排问题

问题表述:设有n个活动的集合E = {1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si = fj或sj >= fi时,活动i与活动j相容。

由于输入的活动以其完成时间的非减序排列,所以算法greedySelector每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。

算法greedySelector的效率极高。当输入的活动已按结束时间的非减序排列,算法只需O(n)的时间安排n个活动,使最多的活动能相容地使用公共资源。如果所给出的活动未按非减序排列,可以用O(nlogn)的时间重排。

例:设待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下:

算法greedySelector 的计算过程如下图所示。图中每行相应于算法的一次迭代。阴影长条表示的活动是已选入集合A的活动,而空白长条表示的活动是当前正在检查相容性的活动。

若被检查的活动i的开始时间Si小于最近选择的活动j的结束时间fi,则不选择活动i,否则选择活动i加入集合A中。

贪心算法并不总能求得问题的整体最优解。但对于活动安排问题,贪心算法greedySelector却总能求得的整体最优解,即它最终所确定的相容活动集合A的规模最大。这个结论可以用数学归纳法证明。

活动安排问题实现:

#include

using namespace std;

#define SIZE 11 //控制活动总数量的大小

typedef int Type;

void GreedySelector(int n,Type s[],Type f[],bool A[])

{

A[0]=true;

int j=0;

for(int i=1;i

{

if(s[i]>=f[j])

{

A[i]=true;

j=i;

}

else A[i]=false;

}

}

void main()

{

int t=0;

Type s[SIZE]={1,3,0,5,3,5,6,8,8,2,12};

Type f[SIZE]={4,5,6,7,8,9,10,11,12,13,14};

bool re[SIZE];

GreedySelector(SIZE,s,f,re);

cout

for(int i=0;i

{

if(re[i])

{

cout

t++;

}

}

cout

cout

}


相关内容

  • 算法设计与分析
    阶乘 Public static int factorial (int n){ If (n==0) return 1; return*factorial(n-1); } Hanoi Public static void hanoi(int ...
  • 基于贪婪算法的自动排课表系统的研究与实现
    第29卷第18期Vol.29 No.18 计算机工程与设计 ComputerEngineeringandDesign 2008年9月Sept.2008 基于贪婪算法的自动排课表系统的研究与实现 王帮海1,2,李振坤1 (1.广东工业大学计算 ...
  • 幼儿园中班方案研究:聚宝盆
    目标: 1.理解图书内容,知道不能贪心. 2.大胆想象并用绘画来表现自己的愿望. 3.愿意向同伴介绍自己的作品. 准备: 图画书<聚宝盆>,投影仪,聚宝盆形状的画纸,画笔. 过程: 一.观看图书内容,理解故事情节 1.引导幼儿看 ...
  • 社交网站热点话题发现
    [摘要] 微博的迅猛发展,带来了另一种社会化得新闻媒体新形式,随着社交网络的不断发展, 国外的推特和国内的新浪微博.腾讯微博, 已经成为消息发布的重要平台.微博内容不仅包含大量的文字信息, 也包括了很多无话题表达能力的特殊符号.表情符号.微 ...
  • 吹不灭的灯
    有一个皇帝很贪心,他认为所有的好东西都应该是他一个人的,于是他派出卫兵,每天在国家里搜刮老百姓的东西.搜到好东西,卫兵便给他带回皇宫,金银财宝,美丽的花草,珍惜的鸟兽,什么东西他都要,就连一个农夫赶牛的鞭子,他也要,因为农夫的鞭子是他见过的 ...
  • 佛教的财富观
    梁乃崇 <佛教新闻周刊杂志> 佛教对于财富的看法大概可以分成两种:一种是属于小乘对财富的看法:另外一种则是大乘对财富的看法,这两种观点是不太一样的. 我们先谈第一种看法.第一种佛教的看法是在面对财富的时候,要我们不贪,主张不要有 ...
  • [转载]大六壬初级入门
    原文地址:大六壬初级入门作者:南丹山人 名称 播放数3,667 顶 踩 评论 收藏 引用 上传者 大六壬初级入门正式版 5,632 91 1 9 19 41 teleyecn 大六壬入门初级视频00... 75,526 407 57 50 ...
  • 走不回来的人
    走不回来的人  曾读过一个贪心人的故事,说是有个地主去拜访一位要块地,首领说,你从这向西走,做一个标记,只要你能在太阳落他累死在路上. 可是也走不回来. 儿到那个标记之间的地都是你的. 太阳落山了,地主没有走回来 贪心人走不回来,是因为贪 ...
  • 作文:[夏天的阳光属于YOU]第一章
    六点了,刺眼灯光亮起,染冉快步走向火车站.每到这个时候,染冉都会这样做,不是什么,是琦琦留给他最后的话语:"等我,我总会回来的--"染冉蹲在站牌旁,望着逐渐出现的繁星,回忆起三年前-- 那是第一次见到琦琦,通过昏暗的灯光 ...
  • 夜里播地藏经的利益与感应
    转载] 各位同修,大家好.今天我向大家汇报,我学佛以来的感应,我是南京的居士.我学佛很晚,我从一九九二年开始学佛,但是那个时候学佛只是看一些佛书,跟自己的思想.修行并不挂勾,所以严格讲起来那只是看书而已.一直到二000年的七月,我有幸遇到了 ...