回溯法
小菜鸟派大星
这个作者很懒,什么都没留下…
展开
-
回溯法之活动安排问题
1.问题:假设有一个需要使用某一资源的n个活动所组成的集合S,S={1,…,n}。该资源任何时刻只能被一个活动所占用,活动i有一个开始时间bi和结束时间ei(bi<ei),其执行时间为ei-bi,假设最早活动执行时间为0。一旦某个活动开始执行,中间不能被打断,直到其执行完毕。若活动i和活动j有bi≥ej或bj≥ei,则称这两个活动兼容。设计算法求一种最优活动安排方案,使得所有安排的活动个数最多。2.设计思路:采用回溯法求解,相当于找到S={1,…,n}的某个排列即调度方案,使得其中所有兼容活动个数原创 2021-11-22 20:46:21 · 1944 阅读 · 0 评论 -
回溯法之马的遍历
1.问题:在n*m的棋盘中,马只能走“日” 字。马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次。找出所有路径。2.设计思路:马在每一个位置有八种走法如下图,搜索空间是n*m(二维数组的大小),使用dep代表此位置是第几次被遍历(被马第几次走过);递归遍历解空间树,如果满足退出条件,也就是dep==n*m(遍历完整个数组的所有元素,每个格子走一遍);如果不满足退出条件,那就以新的节点为起始位置,继续调用函数去遍历解空间树。最后输出结果。3.代码:/*回溯法之马的遍历*/#in原创 2021-11-22 20:43:08 · 998 阅读 · 0 评论 -
回溯法之流水作业调度问题
1.问题:流水作业调度问题:每一个作业Ji都有两项任务分别在2台机器上完成。每个作业必须先有机器1处理,然后再由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理时间。则所有作业在机器2上完成处理时间和f=F2i,称为该作业调度的完成时间和。 作业编号 1 2 3 4 M1 5 12原创 2021-11-22 20:39:49 · 2520 阅读 · 1 评论