zoukankan      html  css  js  c++  java
  • 算法第五章作业

    1. 你对回溯算法的理解

    2. 请说明“子集和”问题的解空间结构和约束函数

    3. 请说明在本章学习过程中遇到的问题及结对编程的情况

    • 回溯算法的理解

    回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

    • “子集和”问题的解空间结构和约束函数

    子集和问题可描述如下:给定n个正整数W=(w1, w2, …, wn)和正整数M,要求寻找这样一个子集I⊆{1, 2, 3, ..., n},使得∑wi=M,i∈I[1]

    举个例子对子集和问题做一个通俗的解释:集合W=(1, 2, 3, 4, 5),给定一个正整数M=5,是否存在W的一个子集I,使得子集I中的元素相加等于M,这个例子显然存在子集I=(2, 3)。

    解空间结构

    定义一个解空间,它包含问题的解。利用深度优先法搜索解空间。利用限界函数避免移动到不可能产生解的子空间。解空间通常是在搜索问题的解的过程中动态产生的。

    约束函数

    避免无效搜索,避免移动到不可能产生解的子空间。对目标值常常要在一定的约束条件下(要求下限或者上限),借以对决策方案施加限制范围。

    • 本章学习过程中遇到的问题及结对编程的情况

    总体来说,回溯算法比较简单,当我们想不出更好的办法时,回溯算法是一种有效的解决问题的方法,编写回溯算法逻辑清晰,编写程序简洁。

  • 相关阅读:
    jquery.cookie.js插件一个小bug
    MVC3的学习笔记
    枚举和位标志学习
    局域网中访问IIS站点
    文件内容比较
    未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
    MSSQLSERVER服务不能启动
    初步学习lock的见解
    “base64 字符数组的无效长度”错误解决方案
    获取服务IP
  • 原文地址:https://www.cnblogs.com/likeghee/p/12058764.html
Copyright © 2011-2022 走看看