12 2012 档案
prim算法---java实现
摘要:最小生成树是数据结构中图的一种重要应用,它的要求是从一个带权无向完全图中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权最小。 为了得到最小生成树,人们设计了很多算法,最著名的有prim算法和kruskal算法(见上一篇博客)。算法描述:假设V是图中顶点的集合,E是图中边的集合,TE为最小生成树中的边的集合,则prim算法通过以下步骤可以得到最小生成树: 1:初始化:U={u 0},TE={f}。此步骤设立一个只有结点u 0的结点集U和一个空的边集TE作为最小生成树的初始形态,在随后的算法执行中,这个形态会不断的发生变化,直到得到最小生成树为止。 2:在所... 阅读全文
posted @ 2012-12-18 16:39 前端小屁孩 阅读(2596) 评论(0) 推荐(1)
kruskal算法---JAVA实现
摘要:克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。算法如下:假设T中的边和顶点均涂成红色,其余边为白色。开始时G中的边均为白色。 1)将所有顶点涂成红色; 2)在白色边中,挑选一条权最小的边,使其与红色边不形成圈,将该白色边涂红; 3)重复2)直到有n-1条红色边,这n-1条红色边便构成最小生成树T的边集合。 注意到在算法执行过程中,红色顶点和红色边会形成一个或多个连通分支,它们都是G的子树。一条边与红色边形成圈当且仅当这条边的两个端点属于同一个子树。因此判定一条边是否与红色边形成圈,只需判断这条边的 阅读全文
posted @ 2012-12-18 14:22 前端小屁孩 阅读(3447) 评论(0) 推荐(2)
oracle中decode函数 VS mysql中的if函数和case函数
摘要:oracle中有decode函数,如下: select sum(decode(sex,'男',0,1)) 男生数 from school;统计男生数目,含义为:decode()中sex字段为男时,用1代替,然后计算总和而mysql中没有该函数,替代的有case与if函数。case函数同样统计男女生人数,语句如下:SELECT school,COUNT(school) 人数, SUM(CASE WHEN sex='男'THEN 1 ELSE 0 END) 男生数, SUM(CASE WHEN sex='女'THEN 1 ELSE 0 END) 女. 阅读全文
posted @ 2012-12-06 14:31 前端小屁孩 阅读(20209) 评论(1) 推荐(0)
v4L2编程
摘要:v4L2编程 v4L2是针对uvc免驱usb设备的编程框架,主要用于采集usb摄像头等,编程模式如下:一.设置采集方式 打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的。在Linux编程中,一般使用ioctl函数来对设备的I/O通道进行管理:extern int ioctl (int __fd, unsigned long int __request, …) __THROW;__fd:设备的ID,例如刚才用open函数打开视频通道后返回的cameraFd;__request:具体的命令标志符。在进行V4L2开发中,一般会用到以下的命令标志符:VIDIOC_REQBU. 阅读全文
posted @ 2012-12-05 22:58 前端小屁孩 阅读(5122) 评论(0) 推荐(1)
元启发式算法(Metaheuristic algorithm)
摘要:元启发式算法(Metaheuristic algorithm) 计算机科学的两大基础目标,就是发现可证明其执行效率良好且可得最佳解或次佳解的算法。而启发式算法则试图一次提供一或全部目标。 例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。 有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差,然而造成那些特殊情况的数据结构,也许永远不会在现实世界出现。因此现实世界中启发式算法常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。有一类的通用启发式策略称为元启发式算法. 阅读全文
posted @ 2012-12-05 22:00 前端小屁孩 阅读(6755) 评论(0) 推荐(0)
TSP问题举例
摘要:TSP问题举例有一位商人,他想访问中国的某些城市,要求: 1.所走路程最近 2.每个城市只能访问一次 3.从某城市出发,最后回到该城市 如右图所示: 求解假设从合肥出发,最后回到合肥 问题域:X={北京,成都,广州,上海} 目标函数:minf(x)=dist(合肥,city1)+∑dist(cityi,cityj)+dist(cityj,合肥)如下图:---------------------------------------------------------参见:http://home.ustc.edu.cn/~chh1990/win/-------------------... 阅读全文
posted @ 2012-12-04 23:41 前端小屁孩 阅读(4154) 评论(0) 推荐(0)
no free lunch
摘要:no free lunch no free lunch直译为“没有免费的午餐”,意思是没有付出,没有收获。或者说不可能不付出就获得好处。 Wolpert and Macready在1997年提出了No Free Lunch Theorems[1](没有免费的午餐理论),该理论用于比较两种优化算法之间的关系,即如可确定一种算法比另外一种算法好。原文描述如下图:No Free Lunch Theorems 具体描述为:针对某一具体域内的所有优化问题Q,算法A与算法B经过m步迭代之后达到目标函数给定值的所有可能性的累加和是相等的。 公式如下:结论 我们比较两种算法A与B: 1. 对于所有... 阅读全文
posted @ 2012-12-04 23:21 前端小屁孩 阅读(706) 评论(0) 推荐(0)
算法早熟收敛
摘要:简介​一般称之为“早熟”,是遗传算法中的一种现象。指在遗传算法早期,在种群中出现了超级个体,该个体的适应值大大超过当前种群的平均个体适应值。从而使得该个体很快在种群中占有绝对的比例,种群的多样性迅速降低,群体进化能力基本丧失,从而使得算法较早收敛于局部最优解的现象。 早熟收敛的本质特征是指群体中的各个个体非常相似,群体的多样性急剧减少,当前群体缺乏有效等位基因(最优解位串上的等位基因),在遗传算子作用下不能生成高阶竞争模式。详解 当我们在某个算法上寻优求解时,不可避免的会有时所得到的解是局部最优解,如下图:此时,算法就进入局部最优解,由于算法的某方面限制,是的算法跳不出局部最优解的范围。我.. 阅读全文
posted @ 2012-12-04 21:49 前端小屁孩 阅读(1372) 评论(0) 推荐(0)
密码存储方案
摘要:过去一段时间来,众多的网站遭遇用户密码数据库泄露事件,这甚至包括顶级的互联网企业–NASDQ上市的商务社交网络Linkedin,国内诸如CSDN一类的就更多了。 层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃。 那么在选择密码存储方案时,容易掉入哪些陷阱,以及如何避免这些陷阱?我们将在实践中的一些心得体会记录于此,与大家分享。 菜鸟方案: 直接存储用户密码的明文或者将密码加密存储。 曾经有一次我在某知名网站重置密码,结果邮件中居然直接包含以前设置过的密码。我和客服咨询为什么直接将密码发送给用户,客服答曰:“减少用户步骤,... 阅读全文
posted @ 2012-12-04 18:57 前端小屁孩 阅读(743) 评论(0) 推荐(0)