24小时热门版块排行榜    

查看: 1281  |  回复: 1

幽竹的海角

银虫 (初入文坛)

[求助] 如何求最佳工作序列

任务id      费时      最后完成期限      价值   
1              2                  12                14     
2             13                  8                   3   
3              6                   4                   3   
4              5                   2                   6   
5              8                   6                 10
程序实现:输入最后期限,输出最佳工作序列,以及总价值。例如:1-3-2
说明:每个任务完成一次,但不一定都完成,每个任务有规定完成时间
我的思想:先找出符合条件的所有方式(满足费时累加值小于最后一个任务的最后期限和输入的最后期限,再快速排序,找出价值总和最高的。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
这个测试数据不好用吧,按照你的解释,所有任务中,只要费时大于最后完成期限的可以不用考虑,因为从时间0开始,到指定的结束期限,这些任务不可能完成,也就没有考虑的价值.这样删除之后,你的任务就剩下1了.

全部可行的组合找到,然后求极值是一个办法,也可以像背包问题一样,在所有满足条件的任务中,按照性价比(价值/费时)来判断任务先后顺序,一个一个挑出来,直到超出期限.

楼主最好给一个比较合理或者实际的测试数据.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-10-07 02:46:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 幽竹的海角 的主题更新
信息提示
请填处理意见