⑴ 免疫克隆算法综述
自己用网络找
⑵ floyd-warshall算法的算法概述
单独一条边的路径也不一定是最佳路径。 从任意一条单边路径开始。所有两点之间的距离是边的权的和,(如果两点之间没有边相连, 则为无穷大)。 对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它。 不可思议的是,只要按排适当,就能得到结果。// dist(i,j) 为从节点i到节点j的最短距离
For i←1to n do
For j←1to n do
dist(i,j) = weight(i,j)
For k←1to n do// k为“媒介节点”{一定要先枚举媒介节点}
For i←1to n do
For j←1to n do
if(dist(i,k) + dist(k,j) < dist(i,j))then// 是否是更短的路径?
dist(i,j) = dist(i,k) + dist(k,j)
这个算法的效率是O(V^3)。它需要邻接矩阵来储存图。
这个算法很容易实现,只要几行。
即使问题是求单源最短路径,还是推荐使用这个算法,如果时间和空间允许(只要有放的下邻接矩阵的空间,时间上就没问题)。
计算每一对顶点间的最短路径(floyd算法)
⑶ 哈夫曼算法的概述
1.初始化: 根据给定的n个权值{w1,w2,…wn}构成n棵二叉树的集合F={T1,T2,..,Tn},其中每棵二叉树Ti中只有一个带权wi的根结点,左右子树均空。
2. 找最小树:在F中选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且至新的二叉树的根结点的权值为其左右子树上根结点的权值之和。
3. 删除与加入:在F中删除这两棵树,并将新的二叉树加入F中。
4. 判断:重复前两步(2和3),直到F中只含有一棵树为止。该树即为哈夫曼树
⑷ 阴影贴图的算法综述
对于阴影场景的渲染需要两个步骤来完成。第一步是产生阴影图本身,第二步是将阴影图应用到场景中。根据实现方式以及光源数目的不同,阴影场景渲染过程可能需要两个或者更多的绘制过程。 第一步是从光源的视角渲染场景。对于点光源来说,视场是一个视角足够宽的透视投影。对于象太阳光这样的定向光来说,需要使用正投影。
根据这个渲染结果提取、保存深度缓冲。因为只与深度信息相关,因此通常避免更改颜色缓冲区,并且不对光线及纹理进行计算以及节省时间。这个深度图经常在图形卡的内存中保存为纹理。
一旦场景中的光源或者物体发生变动,就必须重新更新深度图,但是在其它场合下也可以重复使用深度图,例如只有照相机运动的场合。如果场景中有多个光源,必须针对每个光源分别生成深度图。
在许多实现方法中为了节省重绘深度图所花费的时间,可以只对场景中的一部分物体进行渲染来生成阴影图。另外,为了解决当前深度值与下一步绘制的表面深度太接近产生的深度冲突问题(Z-fighting),也可能在阴影图渲染过程中对物体的照明深度添加一个偏移。实现这种效果的另外一种可选方法是裁剪掉前面的物体,仅对后面的物体进行渲染生成阴影图。 第二步就是使用阴影图按照普通的透视投影绘制场景。这个过程分为三个主要的部分,第一是找出物体在光照视景中的坐标,第二是将这个坐标与深度图中的对应值进行比较,最后就是根据处于阴影或者光照下的位置将物体绘制出来。
光照空间坐标
为了将物体点与深度图进行比较,物体在场景坐标系中的位置必须要转换到光照空间中的对应位置,这个变换可以用矩阵乘法实现。物体在屏幕上的位置可以通过普通的坐标变换确定,但是必须要生成第二套坐标来定位物体在光照空间中的位置。
将世界坐标系变换到光照空间坐标系的变换矩阵与第一步中用于渲染阴影图的变换矩阵相同,在OpenGL中它是模型视图与投影矩阵之积。这样就生成一组齐次坐标,如果可见的话经过透视除法(perspective division)转换成归一化设备坐标,每个分量(x、y、z)都落在 -1 到 1 之间。有许多的实现方法要进行另外的缩放及偏移矩阵乘法将 -1 到 1 之间的数值转换到深度图或纹理图中更常用的 0 到 1 之间的数值。这个缩放过程也可以在透视除法之前完成
如果使用shader或者其它的图形硬件扩展完成这项工作的话,那么通常在顶点级进行这样的变换,生成的数值在其它定点之间进行插值,然后传递到片断处理的部分。
⑸ 智能算法的智能算法概述
智能优化算法要解决的一般是最优化问题。最优化问题可以分为(1)求解一个函数中,使得函数值最小的自变量取值的函数优化问题和(2)在一个解空间里面,寻找最优解,使目标函数值最小的组合优化问题。典型的组合优化问题有:旅行商问题(Traveling Salesman Problem,TSP),加工调度问题(Scheling Problem),0-1背包问题(Knapsack Problem),以及装箱问题(Bin Packing Problem)等。
优化算法有很多,经典算法包括:有线性规划,动态规划等;改进型局部搜索算法包括爬山法,最速下降法等,本文介绍的模拟退火、遗传算法以及禁忌搜索称作指导性搜索法。而神经网络,混沌搜索则属于系统动态演化方法。
优化思想里面经常提到邻域函数,它的作用是指出如何由当前解得到一个(组)新解。其具体实现方式要根据具体问题分析来定。
一般而言,局部搜索就是基于贪婪思想利用邻域函数进行搜索,若找到一个比现有值更优的解就弃前者而取后者。但是,它一般只可以得到“局部极小解”,就是说,可能这只兔子登“登泰山而小天下”,但是却没有找到珠穆朗玛峰。而模拟退火,遗传算法,禁忌搜索,神经网络等从不同的角度和策略实现了改进,取得较好的“全局最小解”。
⑹ 算法分析与设计这门课程第一章算法概述的知识点有哪些
算法分析与设计这门课第一章算法概述的知识点包含章节导引,内容讲解,课后练习,。
⑺ 道格拉斯-普克算法的概述说明
道格拉斯-普克算法 (Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法、迭代适应点算法、分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。该算法的原始类型分别由乌尔斯·拉默(Urs Ramer)于1972年以及大卫·道格拉斯(David Douglas)和托马斯·普克(Thomas Peucker)于1973年提出,并在之后的数十年中由其他学者予以完善。
算法的基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax ,用dmax与限差D相比:若dmax <D,这条曲线上的中间点全部舍去;若dmax ≥D,保留dmax 对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。
⑻ Lanczos算法的概述
Lanczos算法实际上是Arnoldi算法对于对称矩阵的特殊形式,可应用于对称矩阵线性方程组求解的Krylov子空间方法以及对称矩阵的特征值问题。