上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 24 下一页
摘要: COST(i,j)=min{c(j,v) + COST(i+1,v)} (v∈Vk+1,∈E)COST(3,6) = min{6+COST(4,9), 5+COST(4,10)} = 7 (已知COST(4,9)=4,COST(4,10)=2)COST(3,7) = min{4+COST(4,9), 3+COST(4,10)}= 5COST(3,8) = 7COST(2,2) = min{4+COST(3,6), 2+COST(3,7), 1+COST(3,8)}= 7COST(2,3) = 9COST(2,4) = 18COST(2,5) = 15COST(1,1) = min{9+CO.. 阅读全文
posted @ 2013-11-12 17:53 技术让梦想更伟大 阅读(2255) 评论(0) 推荐(0) 编辑
摘要: 在学习动态规划法之前,我们先来了解动态规划的几个概念1、 阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即称为阶段。2、 状态:某一阶段的出发位置称为状态。3、 决策:从某阶段的一个状态演变到下一个阶段某状态的选择。4、 状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导出了后一阶段的状态,这种关系描述了由k阶段到k+1阶段状态的演变规律,称为状态转 移方程。动态规划法的定义:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解,这种求解方法... 阅读全文
posted @ 2013-11-12 16:55 技术让梦想更伟大 阅读(2438) 评论(0) 推荐(0) 编辑
摘要: Kruskal最小生成树算法的概略描述:1 T=Φ;2 while(T的边少于n-1条) {3 从E中选取一条最小成本的边(v,w);4 从E中删去(v,w);5 if((v,w)在T中不生成环) {6 将(v,w)加到T中;7 else{舍弃(v,w);}8 };//if9 }//for 为了有效地执行第5和第6步,G中的结点的组合方式应该是易于确定结点v和w是否已由早先选择的边所连通的那种。在已连通的情况下,则将边(v,w)舍弃;若不连通,则把(v,w) 加人到T。一种可能的组合方法是把T的同一连通分图中所有结点放到一个集合中(T的各个连通分图都是树)。那么,T中的两个结点是连通的,当且. 阅读全文
posted @ 2013-11-12 14:31 技术让梦想更伟大 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 定义:设G=(V,E)是一个无向连通图。如果G的生成子图T=(V,E’)是一棵树,则称T是G的一棵生成树(Spanning Tree)。 应用生成树可以得到关于一个电网的一组独立的回路方程。第一步是要得到这个电网的一棵生成树。设B是那些不在生成树中的电网的边的集合,从B中取出一条边添加到这生成树上就生成一个环。从B中取出不同的边就生成不同的环。把克希霍夫(Kirchoff)第二定律用到每一个环上,就得到一个回路方程。用这种方法所得到的环是独立的(即这些环中没有一个可以用那些剩下的环的线性组合来得到),这是因为每一个环包含一条从B中取来的边(生成树固定的情况下),而这条边不包含在任何其它的... 阅读全文
posted @ 2013-11-12 13:53 技术让梦想更伟大 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 背包问题的描述如下: 已知有n种物品和一个可容纳m重量的背包,每种物品i的重量为wi。假定将物品i的一部分xi放人背包就会得到pixi的效益,0≤xi≤1,pi>0。采用怎样的装包方法才会使装入背包物品的总效益最大呢?显然,由于背包容量是m,因此,要求所有选中要装入背包的物品总重量不超过m。如果这n件物品的总重量不超过m,则把所有物品装入背包自然获得最大效益。如果这些物品重量的和大于m,则在这种情况下该如何装包呢?这是本节所要解决的问题。根据以上讨论,可将问题形式描述如下:极 大 化: Σpixi (4.1)1≤i≤n约束条件:Σ wixi ≤m (4.2)1≤i≤n0≤xi≤1,pi>0,. 阅读全文
posted @ 2013-11-11 00:33 技术让梦想更伟大 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 在现实世界中,有这样一类问题:它有n个输入,而它的解就由这n个输入的某个子集组成,不过这个子集必须满足某些事先给定的条件。把那些必须满足的条件称为约束条件;而把满足约束条件的子集称为该问题的可行解。问题的简单描述:In={n个输入}; 显然,满足约束条件的子Ina是In的子集; 集可能不止一个,一般来说Ina满足约定的条件; 可行解不是唯一的。Ina构成问题的解。 贪心方法是一种改进了的分级处理方法,选择能产生问题最优解的最优量度标准是使用贪心法设计求解的核心问题。但是,要选出最优量度标准并不是一件容易的事,不过,一旦能... 阅读全文
posted @ 2013-11-10 19:26 技术让梦想更伟大 阅读(275) 评论(2) 推荐(0) 编辑
摘要: 实现的基本思想如下: 选取A的某个元素t,然后将A的其它元素重新排列,使 得在t以前出现的所有元素都小于或等于t,而所有在t后面出现的所有元素都大于t。称这种重新整理为划分(Partitioning),元素t称为划分元素(Partition element)。快速分类就是通过不断地对产生的文件进行划分来实现元素的重新排列。例如: 用A(m)划分集合A(m:P-1)void Partition(m,p)//在集合A(m),A(m+1),…,A(p-1)中的元素按如下方式重新排列://若最初t=A(m),则在重排完成之后,对于m和p-l之间的某个q,有A(q)=t,//并使得对于m≤k<q,有.. 阅读全文
posted @ 2013-11-10 15:51 技术让梦想更伟大 阅读(549) 评论(0) 推荐(0) 编辑
摘要: http://wenku.baidu.com/view/2aa76cc6aa00b52acfc7ca6f.html很容易理解。 阅读全文
posted @ 2013-11-09 22:29 技术让梦想更伟大 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 基本方法: 给定一个含有n个元素(又叫关键字)的集合,如果要把它们按一定的次序分类(本节中自始至终假定按非递减分类),最直接的方法就是插入法。对A(1:n)中元素作插入分类的基本思想是:for(j=2;n;++j){将A[j]放到已分类集合A[1:j-1]的正确位置上};从中可以看出,为了插入A(j),有可能移动A(1:j-1)中的所有元素,因此可以预计该算法在时间特性上不会太好,算法具体描述如下:void InsertionSort(elemType a[],int n) {//将A(l:n)中的元素按非递减分类。n≥1int i;for(j=2;n;++j) { //A(l:j-l)已分. 阅读全文
posted @ 2013-11-09 22:17 技术让梦想更伟大 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 现在理论的还是少说些,例子更能理解吧,来个例子用二分检索算法设计与分析,下面算法函数过程bin_search有n+2个输入:a,n 和 x,一个输出j。只要待检索的元素存在,while循环就继续下去。case语句根据compare(x,a[mid])的结果的三种情况进行选择运行。函数过程结束时,如果x不在表a中,则j=0,否则 a(j)=x。void bin_search(elemType a[],int n,elemType x,int &j) {//给定一个按非递减排列的元素数组a(1:n),n>1,判断x是否出现。//若是,则置j,使得x=a(j),若非,则j=0。函数返回 阅读全文
posted @ 2013-11-08 21:19 技术让梦想更伟大 阅读(351) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 24 下一页