[发明专利]一种高效计划制定程序的使用及计算方法在审
申请号: | 201410611376.6 | 申请日: | 2014-11-04 |
公开(公告)号: | CN105631571A | 公开(公告)日: | 2016-06-01 |
发明(设计)人: | 肖晨耕 | 申请(专利权)人: | 肖晨耕 |
主分类号: | G06Q10/06 | 分类号: | G06Q10/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 410001 湖南省长沙市雨*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种高效计划制定程序的使用及计算方法,其所采取的使用步骤及计算方法如下:A、选择语言;B、输入:输入程序所需要的信息;C、运算:根据输入的数据,计算在计划时间内所能完成的重要性的最大值,其具体实现的核心算法是动态规划的01背包算法;D、记录:使用二维标记数组,在运算过程中记录每个计划的任务列表,并不断更新,如果有多个计划符合最佳结果时输出的是最后的一组;E、输出;F、继续。经本程序计算出来的计划一定是最优解,当任务量增大时尤其是时间有限的情况下,本程序的优势则显露无疑,它可以让人减少踌躇的时间,而最高效地利用时间。 | ||
搜索关键词: | 一种 高效 计划 制定 程序 使用 计算方法 | ||
【主权项】:
一种高效计划制定程序的使用及计算方法,其所采取的使用步骤及计算方法如下:A、选择语言:程序用户输入语言选择;B、输入程序所需要的信息:用户的计划工作时长、任务数量以及每一个任务的名称、任务的时间和任务的重要性打分;程序使用整实型变量存储工作时长、任务数量、每一个任务的时间和任务的重要性打分,使用一个字符型二维数组,存储每一个任务名的字符串;C、运算:程序根据输入的数据,计算在计划时间内所能完成的重要性的最大值,其具体实现的核心算法是动态规划的01背包算法,在算法内,把用户所拥有的时间作为背包,把工作任务作为要放入背包的物品,每个物品的价值则是每个任务的重要性,核心代码使用的是一维滚动数组进行动态规划运算,具体的运算方法是:以一维数组的下标作为时间,数组里的每一个值在计算结束后存储的就是使用对应下标时间能够达到的最大重要性值,当一组数据录入时,得到当前任务的时间(tuse)和重要性(imp),此时遍历一次数组,当dp[i]<dp[i‑tuse]+imp时,说明如果执行当前任务,则工作时间i得到的重要性最大,为dp[i‑tuse]与imp之和,因为dp[i‑tuse]的值一定是最大的,所以得到dp[i]的值也一定是最大的,所以此时则可以把dp[i‑tuse]+imp的值赋给dp[i];反之则继续循环直到遍历完整个数组则继续录入下一组数据;D、记录:使用二维标记数组,在运算过程中记录每个计划的任务列表,并不断更新,如果有多个计划符合最佳结果时输出的是最后的一组,具体的方法是:当dp[i]<dp[i‑tuse]+imp时,则需要更新当前时间i达到最大重要性值所要执行的任务列表,源代码中使用一个名为name[101][101]的字符型二维数组记录每一次任务名的输入,因为总任务数不超过100,而每个任务的名字长度不长于100,两个下标的含义为name[任务数][任务名],并使用一个名为use[241][101]的整实型二维数组标记对应时间若需达到最大重要性是否需要使用某个任务,两个下标的含义为use[时间][任务数],假若在时间i需要使用到任务j,则进行赋值use[i][j]=1,use数组的初始值全为零,使用1表示使用任务,0表示不用任务;当第j个任务符合条件,需要把dp[i‑tuse]+imp(imp为当前第j个任务的重要性)的值赋给dp[i]时,使用“memset(use,0,sizeof(use[i]));”的语句来重置use[i]这个时间所有任务的情况,再把use[i‑tuse]的每一个值赋给use[i],最后把use[i][j]标记为1,组成新的任务列表;E、输出:首先输出根据计算得出的在计划时间内可以达到的最大价值,然后根据最大价值对应的状态,调取标记数组中记录的状态,把字符串数组里的对应了被标记了的任务名输出,组成最佳计划清单;具体的方法是:遍历数组dp[1..time](从1到计划时间),用整实型变量max记录能够达到的最大重要性值,并使用变量j记录达到max时对应的所用时间;先输出最大重要性值max,然后开始遍历标记数组use[j],如果use[j][i]的值为1,则说明达到最大重要性值时要执行第i个任务,则输出字符串name[i],输出完后就组成了任务清单;F、继续:整个程序在一个循环里,如果用户对自己的计划不满意,或者想要做出什么改变,可以选择继续制作计划,也可以输入对应内容,则会跳出循环,直接退出程序。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于肖晨耕,未经肖晨耕许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410611376.6/,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06 计算;推算;计数
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理