财产分配问题的一种算法策略

来源 :知识力量·教育理论与教学研究 | 被引量 : 0次 | 上传用户:mahuan616520
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]财产分配问题是一个NP完全问题,设计有效的算法成为计算机解决这一问题的关键。本文结合贪心策略和穷举策略提出了一种运算量可控、近似程度非常高的算法,为计算机有效解决这类NP问题提出了一种思考方向。
  [关键词]贪心策略 财产分配 时间复杂度
  一、引言
  不管是日常生活中,还是计算机领域,我们都会经常碰到类似于财产分配的问题。例如,一批货物要尽可能均衡负载到几辆汽车或轮船上,“云计算”里一批分解出来的任务要均匀的分配到网络中其它计算机上完成,都可以看成是要将n项不能再分割的财产尽可能均匀分配给k个人的问题,这就是我们要讨论的财产分配问题。
  财产分配问题是一个NP完全复杂难度的组合数学问题[1],其分配方案的个数为kn, 对人和计算机而言,这很容易产生一个天文数字。例如在财产数量n很大和分配人数k也很大的情况下,如果没有设计出有效的算法,即使用现在速度最快的巨型计算机运算,也可能导致几万亿年都无法计算出满意的结果。
  因此,设计出有效的算法是解决这一问题的关键,本文结合贪心算法速度快和穷举算法精度高的特性,设计出一种速度快、精确程度高的实用算法策略,为解决这类NP完全问题提出一种实用有效的算法策略。
  二、问题分析
  问题描述:将n项价值分别为a1,a2,…,an的不可分割财产尽可能均匀分配给k个人,设k个人获得总价值分别为V1,V2,…,Vk,分配结果要求Vmax-Vmin最小。
  这个问题的本质是把一个具有n个元素的集合尽可能均匀的划分成k个子集,并找到符合问题要求的子集划分结果[2]。显然,每一项财产都可以分给k个人的其中一个,有k种分法,那么n项财产全部分配完有kn种分法。k越大,这个数增长的越快,如果采用一般的穷举算法,并假设人1秒钟可以算1种分配情况,而微机1秒钟能算出109种分配情况,则不同n,k组合,所需要运算时间如表1所示。
  从表中我们可以看出,要将100项财产均匀分配给5个人,没有经过优化的穷举算法会让微机运行远远超过1万亿年。
  运用常规的分治算法、贪心算法、概率算法等高效算法求解此问题时,其得到结果的精确性往往难以满足要求。而运用穷举算法,虽然理论上一定可以得到最好的解,但是运算量却远远超过了计算机的运算能力。因此,如果能够将时间高效的算法和结果精确的算法进行结合,各取所长,将是一个不错的思考方向。
  表1:不同n,k组合计算时间比较
  三、两种算法思路
  a.贪心算法
  用Xi=t表示将第i(1≤i≤n)项财产分配给第t(1≤t≤k)个人,则分配过程中X向量记住了分配结果。其贪心算法思路如下:
  ① 对n项财产进行递减排序,假设排序后财产价值分别为a1,a2,…,an,置i=1。
  ② 选择财产ai,找出V1~Vk中最小者(假设为Vt,1≤t≤k),将相应财产ai分给第t个人,且置Vt=Vt+ai, Xi=t。
  ③ i=i+1;如果i≤n,则继续②,否则算法结束。
  上述算法思路用类C语言表达如下贪心算法。
  贪心算法在分配过程中,总是将价值越来越小的财产分配给当前最少的人,即用价值越来越小的财产去填补这k个人之间的差距,其时间复杂度为O(k*n)。
  b.穷举算法
  穷举算法中可以不用进行排序的预处理,其算法的最终实质就是计算财产的所有可能分配情况,其算法思路用类C语言递归表达如上穷举算法。
  穷举算法必定可以找出所有分配方案中最符合要求的结果,但是其运算时间复杂度为O(kn),当k、n达到一定数值时,机器无法运算出结果,即使算法中还可以大量优化,但是仍然无法解决根本问题。
  两种算法对比,贪心算法运算量小速度快,只是结果可能存在误差,而穷举算法结果准确,但是运算量大速度慢,所以如果能够将两种算法有机的结合起来,将给这个问题带来非常实用的解决思路。
  四、“贪心+穷举”算法
  “贪心+穷举”的算法思想是:一部分财产采用贪心策略分配,另外一部分财产在贪心算法结果的基础上采用穷举算法。
  具体过程思路如下:
  ① 对n项财产进行递减排序,假设排序后财产价值分别为a1,a2,…,an,置i=1。
  ② 对财产a1~aq依次进行贪心策略分配,即每一项分配给当前V1~Vk中最小者。
  ③ 对财产aq+1~an进行穷举分配,即在a1~aq已经分配的基础上,穷举aq+1~an所有可能的分配情况,找出最符合问题要求的结果。
  其中步骤②可以直接调用上面贪心算法函数,即treed(q);步骤③直接调用上面穷举算法函数,即f(q+1)。用类C语言表达如下“贪心+穷举”算法。
  此算法时间复杂度取决于这两个调用函数的时间复杂度,为O(k*q + k(n-q))=O(k(n-q))。可以看出此算法的时间复杂度取决于f(q+1)的函数调用,它对最后n-q项财产进行穷举分配。
  假设微机的速度为109,对于一个k已知的问题,只要控制好穷举分配的礼物个数n-q大小,即可控制该算法在1秒钟内算出结果,表2数据是1秒钟可算出结果的k, n-q组合。
  表2:微机1秒钟可算出的k, n-q组合
  从表中数据可以看出,分配的人数k越大,可以用来穷举的财产个数n-q越小。这种贪心算法与回溯算法结合的解决思路,可以在时间可控的情况下算出比贪心算法更准确的结果。由于算法并没有穷举到所有分配情况,其运算结果在有些数据上可能存在误差,笔者对每一种n,k取值下随机产生的100组测试数据(随机产生财产价值控制在1到100之间),对每一组数据控制合适q取值,保证微机在1秒钟内计算完,对其结果进行分析并统计出表3所示结果。
  表3:测试结果
  从测试结果中可以总结出如下规律:
  ①k固定时,财产数n越大,贪心算法结果越接近最优解。
  ②n固定时,分配人数k越大,贪心算法结果误差越大。
  ③在k≤7情况下,“贪心+穷举”算法结果与穷举算法得到的最优解几乎完全一致;而在k>=10情况下,“贪心+穷举”算法的结果误差比较大,准确率比贪心算法仅高出一点。
  所以“贪心+穷举”算法的短板就是k较大时,由于要保证算法在1秒钟内结束使得穷举的财产个数n-q较小,从而使得穷举的部分对结果的影响变小。
  五、结束语
  本论文针对财产分配问题提出了一种融合各种算法进行“取长补短”式的解决思路,为这类NP难度问题提出一些有实用价值的解决办法。另外本文中的“贪心+穷举”算法,还可以与其它有某种特长的算法策略进行融合,这也是笔者正在研究的方向。
  本文系2012年武汉大学珞珈学院教学研究项目(编号:武大珞珈教字[2011]118号)的研究成果之一)
  [参考文献]
  [1]王晓东.计算机算法设计与分析,北京,电子工业出版社
  [2]高尚,候志远.集合划分问题的粒子群优化算法,江苏科技大学学报(自然科学版)
  (作者单位:武汉大学珞珈学院)
其他文献
[摘要]本文主要讨论了数学教育改革的问题。文章指出了在新的条件下数学教育改革所应树立的教育目标;其次,为实现这一教育目标,指出了数学教育工作者应树立的教育理念;最后从教材编写和课堂实施角度提出了一些实现教育改革目标的方法。  [关键词]数学教育 信息技术 教育理念  数学是科学技术的基础,随着计算机的发展,数学在社会发展中的作用起了革命性的变化。知识经济的主要动力是信息技术和商业全化浪潮,而信息技
期刊
[摘要]本文旨在通过对不同的认知能力对阅读的影响,以及不同文章对人们认知能力的促进与提高的探讨,达到在实际语篇情景中,在实适的交际文化特征下学生阅读能力的提高这一目的。  [关键词]认知模式 概念 英语教学 文化  认知,根据《辞海》(1999)的解释,就是认识,指人类认识客观事物,获得知识的活动,包括知觉、记忆、学习、言语和思维及问题解决过程。语言上的分类不同于生物学上的分类。语言分类表示的是一
期刊
[摘要]物流管理专业作为应用型专业,人才培养呈现独特的特点。本文着重阐述我国物流管理专业在应用型人才培养方面存在的主要问题,结合物流管理专业应用型人才培养现实情况,提出物流管理专业应用型人才培养对策。  [关键词]物流管理 应用型人才 教学研究  一、引言  伴随经济全球化和我国经济的进一步开放,与我国经济发展密切相关的物流业,必将获得快速发展,物流业及相关服务市场的快速发展,使得物流业迫切需要大
期刊
[摘要]在“平台+模块”的自动化专业创新人才培养体系的基础上,探讨了基于分层案例的创新人才培养新体系。提出了自动化学科综合案例、专业方向模块案例、核心课程案例的分层案例模式,探讨了这三类案例的内涵及相互关系,以及衔接这三类案例的大学生实习和实验模式。  [关键词]案例学习 自动化 创新人才培养  一、引言  自动化专业涉及电工技术、电子技术、电力技术、电气技术、自动控制技术、通信技术、计算机及其应
期刊
[摘要]针对模具设计及设备相关课程的教学特点,实践性强,实例案例较多,加强三维cad数字化技术对提升学习兴趣,提高教学质量,培养综合型、创新型、实用型人才具有积极的推进作用。有利于更好地满足网络化远程教育的需要,充分开发学生的创造力,提升学生对专业课程学习的主观能动性。  [关键词]三维CAD技术 教学质量 创造力  在高等教育阶段,既要注重教学内容的改革也要非常重视教学方法、教学手段的改进,开放
期刊
[摘要]高等数学是很多高职院校的必修课程,是培养高技能人才的基础课程。目前的高职高等数学教育有不少需要完善的地方,本文从教育思想,教学内容和教学方法和手段三个方面探讨了高职类专业的高等数学教学改革。  [关键词]高等数学 高职 教学改革  当前,我国的高职教育迎来了前所未有的发展机遇,大多数高职院校都开设了《高等数学》这一门重要基础课,高等数学的内容和思想是现代科技人才所必须具备的,有相当广泛的学
期刊
[摘要]校企合作办学是目前高等职业教育人才培养的重要途径,如何使高职学生树立正确的世界观、人生观、价值观,是思想政治教育者探讨的重要课题。本文指出了校企合作模式下高职学生思想政治教育的现状以及存在的问题,通过分析产生的原因,探索教育的有效途径,增强校企合作模式下高职学生思想政治教育工作的实效性。  [关键词]校企合作 高职学生 思想政治教育  校企合作是教学与生产实践相结合,学校和企业实现优势互补
期刊
[摘要]本项目针对目前课程现状存在的问题,对教学模式和考核形式进行改革,改变原有学科单纯的老师讲学生听的教学模式,采用情景模拟式教学法,引导学生改变学习方法,变被动学习为主动学习,将教学内容和将来从事的岗位技能需求挂钩,提高学生的学习积极性;制定突出能力培养的考核标准,实施突出能力的考核方法,培养学生专业英语的运用能力。  [关键词]高等院校 纺织专业英语 情景模拟式教学法  《纺织专业英语》是针
期刊
[摘要]《土地利用规划》是一门理论与实践密切结合的课程,本文从当前该课程教学改革的现状出发,探讨了基于仿真实验平台设计的实践教学模式的创新改革思路。并具体从建构课程教学模拟仿真平台,增加设计实时沟通的平台,实现土地规划制图的动态仿真效果等提出了改革创新内容,以此实现从“一对多”向“一对一”教学模式的转变,达到提高教学效果与提升学生实践动手能力的目的。本文为该课程实践教学创新改革的具体深化提供总体思
期刊
[摘要]本文针对目前我国“卓越工程师教育培养计划”,结合东北石油大学软件工程专业的实际情况,以卓越软件工程师人才培养为目的,从培养方案设置、课程体系和教学内容改革、“双师型”教师队伍建设、校企合作培养等几方面进行了研究和实践。  [关键词]卓越工程师 双师型 校企合作  引言  目前,我国开设工科专业的高校近千所,占高校总数的90%以上,中国已经成为工程人才的培养大国,但却不是培养强国。工程人才培
期刊