当前位置: 首页 > news >正文

网站建设126个人网页设计作品下载

网站建设126,个人网页设计作品下载,网站怎么排名,网站源码后台分治算法 一、基本概念 在计算机科学中#xff0c;分治法是一种很重要的算法。字面上的解释是“分而治之”#xff0c;就是把一个复杂的问题分成两个或更多的相同或相似的子问题#xff0c;再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解#xff0c;原…分治算法 一、基本概念 在计算机科学中分治法是一种很重要的算法。字面上的解释是“分而治之”就是把一个复杂的问题分成两个或更多的相同或相似的子问题再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解原问题的解即子问题的解的合并。 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小越容易直接求解解题所需的计算时间也越少。例如对于n个元素的排序问题当n1时不需任何计算。n2时只要作一次比较即可排好序。n3时只要作3次比较即可…。而当n较大时问题就不那么容易处理了。要想直接解决一个规模较大的问题有时是相当困难的。 二、基本策略 对于一个规模为n的问题若该问题可以容易地解决比如说规模n较小则直接解决否则将其分解为k个规模较小的子问题。这些子问题互相独立且与原问题形式相同递归地解这些子问题然后将各子问题的解合并得到原问题的解这种算法设计策略叫做分治法。 如果原问题可分割成k个子问题1 动态规划 一、基本概念 每次决策依赖于当前状态又随即引起状态的转移一个决策序列就是在变化的状态中产生出来的所以这种多阶段最优化决策解决问题的过程就称为动态规划。 二、基本思想 基本思想与分治法类似也是将待求解的问题分解为若干个子问题按顺序求解子问题前一子问题的解为后一子问题的求解提供了有用的信息。在求解任一子问题时列出各种可能的局部解通过决策保留那些有可能达到最优的局部解丢弃其他局部 解依次解决各子问题最后一个子问题就是初始问题的解。 与分治法最大的差别适合于用动态规划法求解的问题经分解后得到的子问题往往不是互相独立的即下一个子阶段的求解是建立在上一个子阶段的解的基础上进行进一步的求解。 三、适用的情况 1最优化原理如果问题的最优解所包含的子问题的解也是最优的就称该问题具有最优子结构即满足最优化原理。 2无后效性即某阶段状态一旦确定就不受这个状态以后决策的影响也就是说某状态以后的过程不会影响以前的状态只与当前状态有关。 3有重叠子问题即子问题之间是不独立的一个子问题在下一阶段决策中可能被多次使用到。该性质并不是动态规划适用的必要条件但是如果没有这条性质动态规划算法同其他算法相比就不具备优势 四、解题步骤 动态规划所处理的问题是一个多阶段决策问题一般由初始状态开始通过对中间阶段决策的选择达到结束状态。这些决策形成了一个决策序列同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。动态规划的设计都有着一定的模式一般要经历以下几个步骤 初始状态→│决策│→│决策│→…→│决策│→结束状态(1)划分阶段按照问题的时间特征把问题分为若干个阶段在划分阶段时注意划分后的阶段一定要是有序的或者是可排序的否则问题就无法求解。 (2)确定状态和状态变量将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来当然状态的选择要满足无后效性。 (3)确定决策并写出状态转移方程因为决策和状态转移有着天然的联系状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策状态转移方程也就可写出。但事实上常常是反过来做根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 (4)寻找边界条件给出的状态转移方程是一个递推式需要一个递推的终止条件或边界条件。 一般只要解决问题的阶段、状态和状态转移决策确定了就可以写出状态转移方程。实际应用中可以按以下几个简化的步骤进行设计 1分析最优解的性质并刻画其结构特征。 2递归的定义最优解。 3以自底向上或自顶向下的记忆化方式备忘录法计算出最优值。 4根据计算最优值时得到的信息构造问题的最优解。 五、算法实现的说明 动态规划的主要难点在于上面4个步骤的确定一旦设计完成实现部分就会非常简单。使用动态规划求解问题最重要的就是确定动态规划三要素 1问题的阶段 2每个阶段的状态 3从前一个阶段转化到后一个阶段之间的递推关系。 递推关系必须是从次小的问题开始到较大的问题之间的转化从这个角度来说动态规划往往可以用递归程序来实现不过因为递推可以充分利用前面保存的子问题的解来减少重复计算所以对于大规模问题来说有递归不可比拟的优势这也是动态规划算法的核心之处。 确定了动态规划的这三要素整个求解过程就可以用一个最优决策表来描述最优决策表是一个二维表其中行表示决策的阶段列表示问题状态表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值如最短路径最长公共子序列最大价值等填表的过程就是根据递推关系从1行1列开始以行或者列优先的顺序依次填写表格最后根据整个表格的数据通过简单的取舍或者运算求得问题的最优解。 f(n,m)max{f(n-1,m), f(n-1,m-w[n])P(n,m)}贪心算法 一、基本概念 在对问题求解时总是做出在当前看来是最好的选择。也就是说不从整体最优上加以考虑他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架算法设计的关键是贪心策略的选择。必须注意的是贪心算法不是对所有问题都能得到整体最优解选择的贪心策略必须具备无后效性即某个状态以后的过程不会影响以前的状态只与当前状态有关。所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。 二、基本思路 1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。 三、贪心算法适用的问题 贪心策略适用的前提是局部最优策略能导致产生全局最优解。实际上贪心算法适用的情况很少。一般对一个问题分析是否适用于贪心算法可以先选择该问题下的几个实际数据进行分析就可做出判断。 四、贪心算法的实现框架 从问题的某一初始解出发 while能朝给定总目标前进一步 { 利用可行的决策求出可行解的一个解元素 }由所有解元素组合成问题的一个可行解 五、贪心策略的选择 因为用贪心算法只能通过解局部最优解的策略来达到全局最优解因此一定要注意判断问题是否适合采用贪心算法策略找到的解是否一定是问题的最优解。 六、例题分析——[背包问题] 有一个背包背包容量是M150。有7个物品物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大但不能超过总容量。 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30 分析 目标函数 ∑pi最大 约束条件是装入的物品总重量不超过背包容量∑wiM( M150) 1根据贪心的策略每次挑选价值最大的物品装入背包得到的结果是否最优 2每次挑选所占重量最小的物品装入是否能得到最优解 3每次选取单位重量价值最大的物品成为解本题的策略。 值得注意的是贪心算法并不是完全不可以使用贪心策略一旦经过证明成立后它就是一种高效的算法。贪心算法还是很常见的算法之一这是由于它简单易行构造贪心策略不是很困难。 可惜的是它需要证明后才能真正运用到题目的算法中。一般来说贪心算法的证明围绕着整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。对于例题中的3种贪心策略都是无法成立无法被证明的解释如下 1贪心策略选取价值最大者。反例 W30 物品A B C 重量28 12 12 价值30 20 20根据策略首先选取物品A接下来就无法再选取了可是选取B、C则更好。 2贪心策略选取重量最小。它的反例与第一种策略的反例差不多。 3贪心策略选取单位重量价值最大的物品。反例 W30 物品A B C 重量28 20 10 价值28 20 10根据策略三种物品单位重量价值一样程序无法依据现有策略作出判断如果选择A则答案错误。 回溯法DFS 一、基本概念 回溯算法实际上一个类似枚举的搜索尝试过程主要是在搜索尝试过程中寻找问题的解当发现已不满足求解条件时就“回溯”返回尝试别的路径。 回溯法是一种选优搜索法按选优条件向前搜索以达到目标。但当探索到某一步时发现原先选择并不优或达不到目标就退回一步重新选择这种走不通就退回再走的技术为回溯法而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的规模较大的问题都可以使用回溯法有“通用解题方法”的美称。 二、基本思想 在包含问题的所有解的解空间树中按照深度优先搜索的策略从根结点出发深度探索解空间树。当探索到某一结点时要先判断该结点是否包含问题的解如果包含就从该结点出发继续探索下去如果该结点不包含问题的解则逐层向其祖先结点回溯。 若用回溯法求问题的所有解时要回溯到根且根结点的所有可行的子树都要已被搜索遍才结束。而若使用回溯法求任一个解时只要搜索到问题的一个解就可以结束。 三、解题步骤 1针对所给问题确定问题的解空间首先应明确定义问题的解空间问题的解空间应至少包含问题的一个最优解 2确定结点的扩展搜索规则 3以深度优先方式搜索解空间并在搜索过程中用剪枝函数避免无效搜索。 四、算法框架 1问题框架 设问题的解是一个n维向量(a1,a2,………,an),约束条件是ai(i1,2,3,……,n)之间满足某种条件记为f(ai)。 2非递归回溯框架 1.int a[n],i;2.初始化数组a[];3.i 1;4: while(i0(有路可走) and (未达到目标)) //还未回溯到头5: {6: if(i n) //搜索到叶结点7: {8: 搜索到一个解输出9: }10: else //处理第i个元素11: {12:a[i]第一个可能的值13: while(a[i]在不满足约束条件且在搜索空间内)14: {15:a[i]下一个可能的值16: }17: if(a[i]在搜索空间内)18: {19: 标识占用的资源20: i i1; //扩展下一个结点21: }22: else23: {24: 清理所占的状态空间 //回溯25:i i–1;26: }27: }3递归的算法框架 回溯法是对解空间的深度优先搜索在一般情况下使用递归函数来实现回溯法比较简单其中i为搜索的深度框架如下 1: int a[n];2: try(int i)3: {4: if(in)5:输出结果;6: else7: {8: for(j 下界; j 上界; jj1) //枚举i所有可能的路径9: {10: if(fun(j)) //满足限界函数和约束条件11: {12: a[i] j;13: … //其他操作14: try(i1);15:回溯前的清理工作如a[i]置空值等;16: }17: }18: }19: } 分支限界法BFS 一、基本概念 类似于回溯法也是一种在问题的解空间树T上搜索问题解的算法但在一般情况下分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解而分支限界法的求解目标则是找出满足约束条件的一个解或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解即在某种意义下的最优解。 二、一般过程 由于求解目标不同导致分支限界法与回溯法在解空间树T上的搜索方式也不相同。回溯法以深度优先的方式搜索解空间树T而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树T。 分支限界法的搜索策略在扩展结点处先生成其所有的儿子结点分支然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择下一扩展结点以加速搜索的进程在每一活结点处计算一个函数值限界并根据这些已计算出的函数值从当前活结点表中选择一个最有利的结点作为扩展结点使搜索朝着解空间树上有最优解的分支推进以便尽快地找出一个最优解。 分支限界法常以广度优先或以最小耗费最大效益优先的方式搜索问题的解空间树。问题的解空间树是表示问题解空间的一棵有序树常见的有子集树和排列树。在搜索问题的解空间树时分支限界法与回溯法对当前扩展结点所使用的扩展方式不同。在分支限界法中每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点就一次性产生其所有儿子结点。在这些儿子结点中那些导致不可行解或导致非最优解的儿子结点被舍弃其余儿子结点被子加入活结点表中。此后从活结点表中取下一结点成为当前扩展结点并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止。 三、回溯法和分支限界法的区别 回溯法深度优先搜索堆栈活结点的所有可行子结点被遍历后才被从栈中弹出找出满足约束条件的所有解。 分支限界法广度优先或最小消耗优先搜索队列、优先队列每个结点只有一次成为活结点的机会找出满足约束条件的一个解或特定意义下的最优解。
http://www.zqtcl.cn/news/467038/

相关文章:

  • 网站联盟推广江门提供网站制作平台
  • 百度上面如何做网站asp源码下载
  • 婚庆网站的设计意义网站规格
  • 网站收录率嘉兴网站开发公司
  • 优秀的设计网站不备案 没版权 网站
  • 建设 互动 网站 模式网络营销模式不是孤立存在的
  • 怡梦姗网站做么上海21世纪人才网官网登录
  • 家政网站建设方案分析哈尔滨做网站找哪家好
  • 如何建设论坛网站营销宣传策划方案
  • 企业网站推广排名技术网
  • 网站建设网页设计培训学校延边网站建设
  • 自己做网站需要的技术个人简历表格下载
  • 做网站建设小程序ukidc做电影网站
  • 网站内容分析软文范例100字
  • 网站建站策划用vs做网站
  • 如何建自己的网站做农村电子商务的网站有哪些内容
  • 手机销售网站设计怎么推广软件让别人下载
  • 贵州三蒲建设工程有限公司网站莱阳网站制作
  • 外贸买家网站适合初学者模仿的网站
  • 安徽蚌埠怀远县建设局网站米卓网站建设
  • 网站框架怎么建设微信旧版本下载
  • 速贝网站友情链接怎么做企业网站开发的设计流程
  • 网站建设 安庆网站开发免责合同
  • 天津深圳网站开发定制网络工程考研方向
  • 做app网站的公司哪家好济南网站建设市场
  • 自己做网站页面网站国内空间和国外空间
  • 桂城网站制作公司asp.net jsp 网站
  • 太原免费静态网页制作网站如何搭建钓鱼网站
  • 英语门户网站织梦源码修改wordpress登录页面
  • 网络建设和网站建设网站快速收录提交