- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机算法设计与分析 第五章回溯法 计算机求解的过程 求解过程可看成在状态空间从初始状态出发有哪些信誉好的足球投注网站目标状态(解所在状态)的过程。 求解是状态空间的有哪些信誉好的足球投注网站 求解的过程可以描述为对状态空间的有哪些信誉好的足球投注网站 几种有哪些信誉好的足球投注网站方法 状态空间的有哪些信誉好的足球投注网站实际上是一种树/DAG的有哪些信誉好的足球投注网站,常用的方法有: 三种有哪些信誉好的足球投注网站的比较 理论上广度优先有哪些信誉好的足球投注网站与深度优先有哪些信誉好的足球投注网站的时间复杂性都是指数级。但在实际上深度优先有哪些信誉好的足球投注网站的时间复杂性要低,在空间复杂性更要低得多。 广度优先有哪些信誉好的足球投注网站是一定能找到解;而深度优先有哪些信誉好的足球投注网站在理论上存在找不到解的可能。 启发式有哪些信誉好的足球投注网站是最好优先的有哪些信誉好的足球投注网站,若评价函数设计得好则能较快地找到解,降低时间复杂性;因而评价函数的优劣决定了启发式有哪些信誉好的足球投注网站的优劣。另外评价函数本身的开销也是很重要的。 树有哪些信誉好的足球投注网站的一般形式 SearchTree(Space T) {ok = 0; L = T.initial; while (!ok || L≠?) { a = L.first; if (a is goal) ok = 1 else Control-put-in(L, Sons(a)); } 三种有哪些信誉好的足球投注网站的不同之处 其中,深度优先有哪些信誉好的足球投注网站就是回溯法。 递归回溯法的一般形式 Try(s){ 做挑选候选者的准备; while (未成功且还有候选者) { 挑选下一个候选者next; if (next可接受) { 记录next; if (满足成功条件) {成功并输出结果} else Try(s+1); if (不成功) 删去next的记录; }} return 成功与否} 迭代回溯法的一般形式 先让我们回顾解空间有哪些信誉好的足球投注网站的一般形式: 迭代回溯法的一般形式 先让我们回顾解空间有哪些信誉好的足球投注网站的一般形式: 迭代回溯法的一般形式 先让我们回顾解空间有哪些信誉好的足球投注网站的一般形式: 如何判断最后一个儿子? 若只要遍历解空间树的结点,那么将各结点按栈方式控制便可实现深度为主有哪些信誉好的足球投注网站。 在求解问题时,需要记录解的路径,在回溯时还需要删除结点和修改相应信息。 栈中结点应该分层次,而却没有区分其层次。这就增加了回溯判断和操作的困难。 如何判断最后一个儿子? 若只要遍历解空间树的结点,那么将各结点按栈方式控制便可实现深度为主有哪些信誉好的足球投注网站。 在求解问题时,需要记录解的路径,在回溯时还需要删除结点和修改相应信息。 栈中结点应该分层次,而却没有区分其层次。这就增加了回溯判断和操作的困难。 用末尾标记的迭代回溯 Backtrack(Tree T) { Ok = 0; L.Push(T.root); while (!Ok|| L≠?) { a = L.Pop( ); if (a is the last mark) Backastep( ); else if (a is good) {Record(a); if (a is goal) {Ok = 1; Output( )} else if (a has sons) L.Push-Sons(a) else Move-off(a);}}} 用末尾标记的迭代回溯 Backtrack(Tree T) { Ok = 0; L.Push(T.root); while (!Ok|| L≠?) { a = L.Pop( ); if (a is the last mark) Backastep( ); else if (a is good) {Record(a); if (a is goal) {Ok = 1; Output( )} else if (a has sons) L.Push-Sons(a) else Move-off(a);}}} 用末尾标记的迭代回溯 Backtrack(Tree T) { Ok = 0; L.Push(T.root); while (!Ok|| L≠?) { a = L.Pop( ); if (a is the last mark) Backastep( ); else if (a is good) {Record(a); if (a is goal) {Ok = 1; Output( )} else if (a has sons) L.Push-Sons(a) else Move-off(a);}}} 用末尾标记的迭代回溯 Backtrack(Tree T) { Ok = 0; L.Push(T.root); while (!Ok||
文档评论(0)