算法课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法课程设计
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
摘要
当今科技迅速发展,运用计算机解决实际问题变得异常重要。尤其是运用 计算机实现算法设计具要重大意义。算法设计与分析,其实可以解释为一种优 化问题,一般是对可以利用计算机解决的离散型问题的优化。主要目的就是为 了解Baidu Nhomakorabea某一问题而提出的各种不同的解决方案,并且要针对具体问题做细致的 空间与时间复杂度分析。本文是运用动态规划法解决租用游艇问题和回溯法解 决部落卫队问题。利用 C++编程实现算法。
二、回溯法解决部落卫队问题 ...............................错误!未定义书签。 问题重述 ...........................................................错误!未定义书签。 问题分析 ...........................................................错误!未定义书签。 算法原理及设计 ................................................ 错误!未定义书签。 算法原理 ..................................................... 错误!未定义书签。 算法设计 ..................................................... 错误!未定义书签。 算法实现 ...........................................................错误!未定义书签。 结果描述 ...........................................................错误!未定义书签。
1<=i,j<=n.初始最优解为

算法原理与设计
一、 动态规划法解决租用游艇问题
问题重述
长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,…,n。有可以游艇出租
站用游艇并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租
站 j 之间的租金为 r(i,j),
。试设计一个算法,计算游艇出租站 1 到出
租站 n 所需的最少租金。
对于给定的游艇出租站 i 到游艇出租站 j 之间的租金为 r(i,j),1<=i<j<=n,编程计算
三、总结 ..................................................................错误!未定义书签。 参考文献 ..................................................................错误!未定义书签。
关键字:动态规划法、租用游艇问题、回溯法、部落卫队问题、C++
目录
一、 动态规划法解决租用游艇问题 ......................错误!未定义书签。 问题重述 ...........................................................错误!未定义书签。 问题分析 ..........................................................错误!未定义书签。 算法原理与设计 ............................................... 错误!未定义书签。 算法原理 .................................................... 错误!未定义书签。 算法设计 .................................................... 错误!未定义书签。 算法实现与结果 ............................................... 错误!未定义书签。 结果描述 ...........................................................错误!未定义书签。
从游艇出租站 1 到游艇出租站 n 所需的最少租金。 由文件提供输入数据。文件
的第 1 行中有 1 个正整数 n(n<=200),表示有 n 个游艇出租站。接下来的 n-1
行是一个半矩阵 r(i,j),1<=i<j<=n。程序运行结束时,将计算出的从游艇出租站 1
到游艇出租站 n 所需的最少租金输出到文件中。
输入文件示例 输出文件示例 12
3
12
5 15
7
问题分析
将每个出租站看作一个点,站与站之间的关系可以用有向无环图表示,同时
站与站之间的租金为边的权。此问题可转化成求站 1 到站 n 的最短路径问题。
用动态规划求解,递推方程如下所示:
定义 f[i][j]为站点 i 到站点 j 的最少租金。
,i<k<j,
动态规划算法是将待求解的问题分解成若干个子问题,先求解子问题,然 后从这些子问题的解得到原问题的解。首先找出最优解的性质,并刻画其结构 特征,然后递归的定义最优值(写出动态规划方程)并且以自底向上的方式计 算出最优值,最后根据计算最优值时得到的信息,构造一个最优解。
回溯法算法是确定了解空间的组织结构后,回溯法从开始节点(根结点) 出发,以深度优先的方式搜索整个解空间。这个开始节点就成为一个活结点, 同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个 新结点。这个新结点就成为一个新的或节点,并成为当前扩展结点。如果在当 前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。换 句话说,这个节点,这个结点不再是一个活结点。此时,应往回(回溯)移动 至最近一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种 工作方式递归的在解空间中搜索,直到找到所要求的解或解空间中以无活结点 为止。即通过确定初始解和剪枝函数原则画出状态图进行搜索产生全部可行 解。
相关文档
最新文档