回溯算法
文章平均质量分 72
PG13okc
一个不会编程的菜鸟!
展开
-
回溯算法 --- 例题6.最大团问题
一.问题描述给定无向图G=(V, E), U⊆V, 若对任意u, v∈U, 有(u,v) ∈ E, 则称U是G的一个完全子图.G的完全子图U是G的一个团当且仅当U不包含在G的更大的完全子图中,G的最大团是指G中所含顶点数最多的团.二.解题思路无向图G的最大团和最大独立集问题都可以用回溯法在O(n2^n)时间内解决.图G的最大团和最大独立集问题都可以看做图G的顶点集V的子集选取问题.因此,我们可以用子集树表示问题的解空间.解最大团问题的回溯法和解装载问题的回溯法十分相似.设当前扩展结点Z位于解空间树原创 2021-12-21 14:05:36 · 3081 阅读 · 0 评论 -
回溯算法 --- 例题5.0-1背包问题
一.问题描述略二.解题思路0-1背包问题是子集选取问题.一般情况下,0-1背包问题是NP完全问题.0-1背包问题的解空间用子集树来表示,解0-1背包问题的回溯法和解装载问题的回溯法十分相似.搜索解空间树时,只要其左儿子节点是一个可行节点,搜索就进入其左子树.当右子树中有可能包含最优解时(即上界大于当前最优价值,试想一下,若上界都不大于当前最优价值,那么在进入右子树就根本不可能找到更优解,何况上界还是一种理想状态下的最佳)才进入右子树搜索;否则将右子树剪去.设r是当前剩余物品价值总和,cp是当前价值原创 2021-12-21 14:04:55 · 799 阅读 · 0 评论 -
回溯算法 --- 例题4.N皇后问题
一.问题描述N*N棋盘上放置N个皇后使得每个皇后互不受攻击. 即任二皇后不能位于同行同列和同一斜线上.如四皇后问题的两个解:二.解题思路将棋盘从左至右,从上到下编号为1,…,n,皇后编号为1,…,n.设解为(x1, …, xn) , xi为皇后i的列号,且xi位于第i行.解空间:E={ (x1,…, xn) | xi∈Si, i=1,…,4}, Si={1, …, 4},1 <= i <= n解空间为排列树? 是的!N个皇后在N*N的棋盘中一共有C(N^2, N)种放置情况,我们原创 2021-12-21 14:04:07 · 687 阅读 · 0 评论 -
回溯算法 --- 例题3.符号三角形问题
一.问题描述下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。在一般情况下,符号三角形的第一行有n个符号.目标是:符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。 改为此: 二.解题思路解向量用n元组x[1:n]表示符号三角形的第一行,每个元素均可取0, 1两个值约束函数:当前符号三角形所包含的“+”个数与“-”个数均不超过 n(n+1)/4*一个例子:第1行是4个字符的符原创 2021-12-21 14:03:18 · 553 阅读 · 0 评论 -
回溯算法 --- 例题2.批处理作业调度问题
一.问题描述给定n个作业的集合J=(J1, J2, … , Jn)。每一作业Ji都有两项任务要分别在2台机器上完成. 每一作业须先由机器l处理, 再由机器2处理. 设tji是作业Ji在机器j上的处理时间, i=1,…,n, j=1, 2.Fji是作业Ji在机器j上完成处理的时间. 所有作业在机器2上完成时间和: f=∑F2i 称为该作业调度的完成时间和.对于给定的J, 要求制定一个最佳作业调度方案, 使完成时间和最小.二.解题思路批处理作业调度问题要从n个作业的所有排列中找出有最小完成时间和的作业原创 2021-12-21 14:02:13 · 1434 阅读 · 0 评论 -
回溯算法 --- 例题1.装载问题
一.问题描述n个集装箱装到2艘载重量分别为c1,c2的货轮,其中集装箱i的重量为wi且Σwi <= c1 + c2 , 1<=i<=n问题要求找到一个合理的装载方案可将这n个货箱装上这2艘轮船。例如 当n=3, c1=c2=50, w=[10, 40, 40], 可将货箱1和2装到第一艘船上;货箱3装到第二艘船上; 若w=[20, 40, 40], 则无法将全部货箱装船.二.解题思路简单分析可知:当Σwi = c1+c2, 1<=i<=n问题等价于子集和问题当原创 2021-12-21 14:00:33 · 2233 阅读 · 0 评论 -
回溯算法 --- 算法思想介绍
一.回溯算法的基本概念回溯法有“通用的解题法”之称。用它可以系统地搜索一个问题的所有解或任一解。回溯法是一个既带有系统性又带有跳跃性的搜索算法,它在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯。否则进入该子树,继续按深度优先策略搜索。回溯算法求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。回溯法求问题的一个解时,只要搜索到问题的一个解就可结束原创 2021-12-21 13:59:32 · 7842 阅读 · 0 评论