导航:首页 > 源码编译 > 选择搜索算法

选择搜索算法

发布时间:2023-08-01 02:54:08

㈠ 选择性搜索算法 (Selective Search)

计算机视觉领域有几个基本的任务:

object detection 的基础是 object recognition,只不过要先将图片进行分割,对每个分割之后的子图区域 region (也称为 patch) 进行 object recognition.

由于事先并不知道物体在图片的哪个位置,为了避免漏检,我们应该对图片中尽量多的 region 进行搜索。理论上野带态来说,可以有无穷多个 region。这里就需要一种 region proposal 的算法,以比较高效的方式提出图片划分 region 的方式,从而加速整个 object detection 的过程并且提高准确率。

本文将要介绍的 selective search 算法 ,是比较经典的,也是 R-CNN 中使用的 region proposal 算法。

参考文献:

为了避免蛮力搜索,selective search 算法首先需要一个基于像素的图像分割。这里用的是 Felzenszwalb and Huttenlocher 算法 (因为是当时速度最快的算法,而且是公开的),得到一个 oversegmented 的图像分割。例如:

这里之所以用 oversegmented 图像,是为了得到尽可能细分的区域,再以此为基础逐步合并,形成更大的区域。

image segmentation 可以用作 region proposal 的基础,每个分割的区域都可以看作一个潜在的颂源 region,但是一个 object 往往包含了多个分割的区域,例如盛有咖啡的杯子,咖啡和杯子应该作为一个整体来看待。因此,还要根据某种相似性原则进行分割区域的合并,得到更大范围的 region。

Selective search 算法考虑了 4 种相似性度量,取值都在 [0,1] 之间,越大越相似。

最终的相似性度量是上述四个度量的组合:

其中 取 0 或 1.

总结起来,selective search 的算法步骤非常简单:

环境配置:

具体程序:

最后效果行迅如下:

显示的 100 个 region 已经包含了我们感兴趣的待检测区域,说明了 selective search 算法的高效。

㈡ 请问什么是搜索算法

搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从而求出问题的解
的一种方法。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程。
所有的搜索算法从其最终的算法实现上来看,都可以划分成两个部分——控制结构和产生系统,而所有的算
法的优化和改进主要都是通过修改其控制结构来完成的。

㈢ 几种搜索引擎算法研究

2.1Google和PageRank算法
搜索引擎Google最初是斯坦福大学的博士研究生Sergey Brin和Lawrence Page实现的一个原型系统[2],现在已经发展成为WWW上最好的搜索引擎之一。Google的体系结构类似于传统的搜索引擎,它与传统的搜索引擎最大的不同处在于对网页进行了基于权威值的排序处理,使最重要的网页出现在结果的最前面。Google通过PageRank元算法计算出网页的PageRank值,从而决定网页在结果集中的出现位置,PageRank值越高的网页,在结果中出现的位置越前。
2.1.1PageRank算法
PageRank算法基于下面2个前提:
前提1:一个网页被多次引用,则它可能是很重要的;一个网页虽然没有被多次引用,但是被重要的网页引用,则它也可能是很重要的;一个网页的重要性被平均的传递到它所引用的网页。这种重要的网页称为权威(Authoritive)网页。
前提2:假定用户一开始随机的访问网页集合中的一个网页,以后跟随网页的向外链接向前浏览网页,不回退浏览,浏览下一个网页的概率就是被浏览网页的PageRank值。

㈣ 搜索算法的主要分类

如算法名称那样,深度优先搜索所遵循的搜索策略是尽可能“深”地搜索树。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前(子结点)探索,在探索过程中,一旦发现原来的选择不符合要求,就回溯至父亲结点重新选择另一结点,继续向前探索,如此反复进行,直至求得最优解。深度优先搜索的实现方式可以采用递归或者栈来实现。
由此可见,把通常问题转化为树的问题是至关重要的一步,完成了树的转换基本完成了问题求解。
1、优化思想
减少所遍历的状态总数
2、三种方法
(1)减少节点数
思想:尽可能减少生成的节点数
(2)定制回溯边界
思想:定制回溯边界条件,剪掉不可能得到最优解的子树
在很多情况下,我们已经找到了一组比较好的解。但是计算机仍然会义无返顾地去搜索比它更“劣”的其他解,搜索到后也只能回溯。为了避免出现这种情况,我们需要灵活地去定制回溯搜索的边界。
在深度优先搜索的过程当中,往往有很多走不通的“死路”。假如我们把这些“死路”排除在外,不是可以节省很多的时间吗?打一个比方,前面有一个路径,别人已经提示:“这是死路,肯定不通”,而你的程序仍然很“执着”地要继续朝这个方向走,走到头来才发现,别人的提示是正确的。这样,浪费了很多的时间。针对这种情况,我们可以把“死路”给标记一下不走,就可以得到更高的搜索效率。
(3)记忆化
思想:运用记忆化的方法,使得一些遍历过的子树不要重复遍历
3、三个原则
(1)正确性:剪去的“枝条”不包含最优答案;
我们知道,剪枝方法之所以能够优化程序的执行效率,正如前文所述,是因为它能够“剪去”搜索树中的一些“枝条”。然而,如果在剪枝的时候,将“长有”我们所需要的解的枝条也剪掉了,那么,一切优化也就都失去了意义。所以,对剪枝的第一个要求就是正确性,即必须保证不丢失正确的结果,这是剪枝优化的前提。
为了满足这个原则,我们就应当利用“必要条件”来进行剪枝判断。也就是说,通过解所必须具备的特征、必须满足的条件等方面来考察待判断的枝条能否被剪枝。这样,就可以保证所剪掉的枝条一定不是正解所在的枝条。当然,由必要条件的定义,我们知道,没有被剪枝不意味着一定可以得到正解(否则,也就不必搜索了)。
(2)准确性:在保证第一条原则的情况下,尽可能的剪去更多不包含最优答案的枝条;
在保证了正确性的基础上,对剪枝判断的第二个要求就是准确性,即能够尽可能多的剪去不能通向正解的枝条。剪枝方法只有在具有了较高的准确性的时候,才能真正收到优化的效果。因此,准确性可以说是剪枝优化的生命。
当然,为了提高剪枝判断的准确性,我们就必须对题目的特点进行全面而细致的分析,力求发现题目的本质,从而设计出优秀的剪枝判断方案。
(3)高效性:通过剪枝要能够更快的接近到达最优解。
一般说来,设计好剪枝判断方法之后,我们对搜索树的每个枝条都要执行一次判断操作。然而,由于是利用出解的“必要条件”进行判断,所以,必然有很多不含正解的枝条没有被剪枝。这些情况下的剪枝判断操作,对于程序的效率的提高无疑是具有副作用的。为了尽量减少剪枝判断的副作用,我们除了要下功夫改善判断的准确性外,经常还需要提高判断操作本身的时间效率。
然而这就带来了一个矛盾:我们为了加强优化的效果,就必须提高剪枝判断的准确性,因此,常常不得不提高判断操作的复杂度,也就同时降低了剪枝判断的时间效率;但是,如果剪枝判断的时间消耗过多,就有可能减小、甚至完全抵消提高判断准确性所能带来的优化效果,这恐怕也是得不偿失。很多情况下,能否较好的解决这个矛盾,往往成为搜索算法优化的关键。 类似树的按层遍历,其过程为:首先访问初始点Vi,并将其标记为已访问过,接着访问Vi的所有未被访问过可到达的邻接点Vi1、Vi2……Vit,并均标记为已访问过,然后再按照Vi1、Vi2……Vit的次序,访问每一个顶点的所有未被访问过的邻接点,并均标记为已访问过,依此类推,直到图中所有和初始点Vi有路径相通的顶点都被访问过为止。
处理和优化
对于状态数很多时,广度优先搜索可以采用循环队列或动态链表来处理。
主要区别 遍历方式 深度优先搜索遍历 广度优先搜索遍历 所用数据结构 栈 队列 一般优化 最优性剪枝
可行性剪枝 Hash判重
双向搜索

㈤ 百度搜索引擎的算法是怎样的

衡量网页质量的维度
网络搜索引擎在衡量网页质量时,会从以下三个维度综合考虑给出一个质量打分。下面会一一介绍这些影响网页质量判断的维度特征:
• 内容质量
• 浏览体验
• 可访问性
一个访问流畅,内容质量高且浏览体验好的网页具有较高的质量;反之,任何一个维度出现问题,都会影响网页的整体质量。下面我们具体介绍下这三个维度。

衡量网页质量的维度——内容质量

网页主体内容是网页的价值所在,是满足用户需求的前提基础。网络搜索引擎评价网页内容质量主要看其主体内容的好坏,以及主体内容是否可以让用户满意。 不同类型网页的主体内容不同,网络搜索引擎判断不同网页的内容价值时,需要关注的点也有区别,如:
• 首页:导航链接和推荐内容是否清晰、有效。
• 文章页:能否提供清晰完整的内容,图文并茂更佳。
• 商品页:是否提供了完整真实的商品信息和有效的购买入口。
• 问答页:是否提供了有参考价值的答案。
• 下载页:是否提供下载入口,是否有权限限制,资源是否有效。
• 文档页:是否可供用户阅读,是否有权限限制。
• 搜索结果页:搜索出来的结果是否与标题相关。

网络搜索引擎考量网页内容质量的维度非常多,最为重要的是:成本;内容完整;信息真实有效以及安全。下面我们通过举例来感受一下网络搜索引擎是如何对网页的内容质量进行分类的,请站长对比自己站点的页面,站在搜索引擎和用户的角度为自己打分:
1、内容质量好:
网络搜索引擎认为内容质量好的网页,花费了较多时间和精力编辑,倾注了编者的经验和专业知识;内容清晰、完整且丰富;资源有效且优质;信息真实有效;安全无毒;不含任何作弊行为和意图,对用户有较强的正收益。对这部分网页,网络搜索引擎会提高其展现在用户面前的机率。例如:
• 专业医疗机构发布的内容丰富的医疗专题页面;
• 资深工程师发布的完整解决某个技术问题的专业文章;
• 专业视频网站上,播放清晰流畅的正版电影或影视全集页面;
• 知名B2C网站上,一个完整有效的商品购买页;
• 权威新闻站原创或经过编辑整理的热点新闻报道;
• 经过网友认真编辑,内容丰富的词条;
• 问答网站内,回答的内容可以完美解决提问者的问题。

实例参考:

示例

内容质量

说明

case 3.1.1-1



专业医疗网站发布的丰富医疗专题页面

case 3.1.1-2



资深工程师发布的完整解决某个技术问题的专业文章

case 3.1.1-3



专业视频网站上,播放清晰流畅的正版影视全集页面

case 3.1.1-4



京东的一个完整有效的商品购买页

case 3.1.1-5



权威新闻站原创的热点新闻的报道

case 3.1.1-6



经过网友认真编辑,内容丰富的网络词条

case3.1.1-7



网络知道上,完美解决用户问题的问答页

2、内容质量中:
内容质量中等的网页往往能满足用户需求,但未花费较多时间和精力进行制作编辑,不能体现出编者的经验和专业知识;内容完整但并不丰富;资源有效但质量欠佳;信息虽真实有效但属采集得来;安全无毒;不含作弊行为和意图。在互联网中,中等质量网页其实是一个比较大的数量集合,种类面貌也繁杂多样,网络搜索引擎在评价这类网页时往往还要考虑其它非常多因素。在这里,我们仅部分举例来让各位感受一下:
• 论坛类网站里一个普通的帖子;
• 一个普通的问答网页;
• 没有进行任何编辑,直接转载其它网站的新闻;
• 无版权信息的普通电影播放页
• 采集知名小说网站的盗版小说页。

实例参考:

示例

内容质量

说明

case 3.1.2-1



网易直接转载了中国新闻网的一篇新闻。

case 3.1.2-2



文库上网友上传的“国庆放假安排”新闻

case 3.1.2-3



采集起点小说网的盗版小说站

case 3.1.2-4



网络贴吧里一个普通的帖子

3、内容质量差:
网络搜索引擎认为主体内容信息量较少,或无有效信息、信息失效过期的都属于内容质量差网页,对用户没有什么实质性的帮助,应该减少其展现的机会。同时,如果一个网站内该类网页的占比过大,也会影响网络搜索引擎对站点的评级,尤其是UGC网站、电商网站、黄页网站要尤其重视对过期、失效网页的管理。例如:
• 已下架的商品页,或已过期的团购页;
• 已过有效期的招聘、交易页面;
• 资源已失效,如视频已删除、软件下载后无法使用等。

4、没有内容质量可言:
没有内容质量可言的网页指那些制作成本很低,粗制滥造;从别处采集来的内容未经最起码的编辑整理即放置线上;挂木马等病毒;含有作弊行为或意图;完全不能满足用户需求,甚至含有欺骗内容的网页。例如:
• 内容空短,有很少量的内容,却不能支撑页面的主要意图;
• 问答页有问无答,或回答完全不能解决问题;
• 站内搜索结果页,但没有给出相关信息

除上述网页外,欺骗用户和搜索引擎的网页在无内容质量可言集合里占很高比例。网络搜索引擎对作弊网页的定义是:不以满足用户需求为目的,通过不正当手段欺骗用户和搜索引擎从而获利的网页。目前互联网上这部分网页还属少数,但作弊网页的价值是负向的,对用户的伤害非常大,对这类网页,搜索引擎持坚决打击态度。

衡量网页质量的维度——浏览体验
不同质量的网页带给用户的浏览体验会有很大差距,一个优质的网页给用户的浏览体验应该是正向的。用户希望看到干净、易阅读的网页,排版混乱、广告过多会影响用户对网页主体内容的获取。在网络搜索引擎网页质量体系中,用户对网页主体内容的获取成本与浏览体验呈反比,即获取成本越高,浏览体验越低。面对内容质量相近的网页,浏览体验佳者更容易获得更高的排位,而对于浏览体验差的网页,网络搜索引擎会视情况降低其展现的机率甚至拒绝收录。
影响用户浏览体验好坏的因素很多,目前网络搜索引擎主要从内容排版、广告影响两方面对网页进行考量:
内容排版:用户进入网页第一眼看到的就是内容排版,排版决定了用户对网页的第一印象,也决定了用户对内容获取的成本。
广告影响:网络搜索引擎理解网站的生存发展需要资金支持,对网页上放置正当广告持支持态度。网页应该以满足用户需求为主旨,最佳状态即“主体内容与广告一起满足用户需求,内容为主,广告为辅”,而不应让广告成为网页主体。

下面我们通过举例来感受一下网络搜索引擎是如何对网页的浏览体验进行分类的,站长可以据此对比检验自己站点的浏览体验如何:
1、浏览体验好:
页面布局合理,用户获取主体内容成本低,一般具有以下特征:
• 排版合理,版式美观,易于阅读和浏览;
• 用户需要的内容占据网页最重要位置;
• 能够通过页面标签或页面布局十分清楚地区分出哪些是广告;
• 广告不抢占主体内容位置,不阻碍用户对主要内容的获取;

实例参考:

示例

浏览体验

说明

case 3.2.1-1



招聘、房产等网站首页也有很多广告,但都是招聘相关的,浏览体验是ok的。

case 3.2.1-2



文章页,页面布局合理,无广告,排版好,结构合理

case 3.2.1-3



游戏首页,排版美观,布局合理,无广告,浏览体验优

2、浏览体验差:
页面布局和广告放置影响了用户对主体内容的获取,提高了用户获取信息的成本,令用户反感。包括但不仅限于以下情况:
• 正文内容不换行或不分段,用户阅读困难;
• 字体和背景颜色相近,内容辨别困难;
• 页面布局不合理,网页首屏看不到任何有价值的主体内容;
• 广告遮挡主体内容;或者在通用分辨率下,首屏都是广告,看不到主体内容;
• 弹窗广告过多;
• 影响阅读的浮动广告过多
• 点击链接时,出现预期之外的弹窗;
• 广告与内容混淆,不易区分;

衡量网页质量的维度——可访问性
用户希望快速地从搜索引擎获取到需要的信息,网络搜索引擎尽可能为用户提供能一次性直接获取所有信息的网页结果。网络搜索引擎认为不能直接获取到主体内容的网页对用户是不友好的,会视情况调整其展现机率。

网络搜索引擎会从正常打开、权限限制、有效性三方面判断网页的可访问性,对于可以正常访问的网页,可以参与正常排序;对于有权限限制的网页,再通过其它维度对其进行观察;对于失效网页,会降权其展现机制甚至从数据库中删除。

1、可正常访问的网页
无权限限制,能直接访问所有主体内容的网页。

2、有权限限制的网页
此类网页分为两种:打开权限和资源获取权限
1)打开权限:指打开网页都需要登录权限,没有权限完全无法看到具体内容,普通用户无法获取或获取成本很高,网络搜索引擎会降低其展现机率。不包括以登录为主要功能的网页。
2)资源获取权限:指获取网页主要内容,如文档、软件、视频等,需要权限或者需要安装插件才能获得完整内容。此时会分三种情况:
• 提供优质、正版内容的网站,由于内容建设成本很高,尽管查看全文或下载时需要权限或安装插件,但属于用户预期之内,网络搜索引擎也不认为权限行为对用户造成伤害,给予与正常可访问页面相同的对待。
• 对于一些非优质、非正版的资源,来自于用户转载甚至机器采集,本身成本较低,内容也不独特,用户获取资源还有权限限制——需要用户注册登录或者付费查看,网络搜索引擎会根据具体情况决定是否调整其展现。
• 还有一些视频、下载资源页,也许自身资源质量并不差,但需要安装非常冷门的插件才能正常访问,比如要求安装“xx大片播放器”,网络搜索引擎会怀疑其有恶意倾向。

实例参考:

示例

可访问性

说明

case 3.2-1



CNKI上的一篇论文,收费才能下载,但有版权,浏览体验好

case 3.2-2



优酷上一部新电影,需要付费才能观看,浏览体验好。

case 3.2-3



内容是来,但是需要登录才能看更多

case 3.2-4



入党申请书,本身就是转载的,网上到处都是,但这个页面仍然要求收费才能下载。

3、失效网页
往往指死链和主体资源失效的网页。网络搜索引擎认为这部分网页无法提供有价值信息,如果站点中此类网页过多,也会影响网络搜索引擎对其的收录和评级。建议站长对此类网页进行相应设置,并及时登录网络站长平台,使用死链提交工具告知网络搜索引擎。
失效网页包括但不仅限于:
• 404、403、503等网页;
• 程序代码报错网页;
• 打开后提示内容被删除,或因内容已不存在跳转到首页的网页;
• 被删除内容的论坛帖子,被删除的视频页面(多出现在UGC站点)

具体请参阅《网络搜索引擎网页质量白皮书》,望采纳!

㈥ 深度优先搜索的系统算法

所有的搜索算法从其最终的算法实现上来看,都可以划分成两个部分──控制结构和产生系统。正如前面所说的,搜索算法简而言之就是穷举所有可能情况并找到合适的答案,所以最基本的问题就是罗列出所有可能的情况,这其实就是一种产生式系统。
我们将所要解答的问题划分成若干个阶段或者步骤,当一个阶段计算完毕,下面往往有多种可选选择,所有的选择共同组成了问题的解空间,对搜索算法而言,将所有的阶段或步骤画出来就类似是树的结构(如图)。
从根开始计算,到找到位于某个节点的解,回溯法(深度优先搜索)作为最基本的搜索算法,其采用了一种“一只向下走,走不通就掉头”的思想(体会“回溯”二字),相当于采用了先根遍历的方法来构造搜索树。
上面的话可能难于理解,没关系,我们通过基本框架和例子来阐述这个算法,你会发现其中的原理非常简单自然。

㈦ 常见算法5、广度优先搜索 Breadth-First Search

1、定义

广度优先搜索 (Breadth-First Search)是最简便的图的搜索算法之一,又称 宽度优先搜索 ,这一算法也是很多重要的图算法的原型。广度优先搜索属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。

2、应用

广度优先搜索被用于解决 最短路径问题(shortest-path problem)

广度优先搜索让你能够找出两样东西之间的最短距离,不过最短距离的含义有很多!使用广度优先搜索可以:

3、图简介

既然广度优先搜索是作用于图的一种算法,这里对图作一个简单的介绍,先不深入了解。

图由 节点 组成。一个节点可能与多个节点相连,这些节点被称为邻居。

广度优先算法的核心思想是:从初始节点开始,应用算符生成第一层节点,检查目标节点是否在这些后继节点中,若没有,再用产生式规则将所有第一层的节点逐一扩展,得到第二层节点,并逐一检查第二层节点中是否包含目标节点。若没有,再用算符逐一扩展第二层的所有节点……,如此依次扩展,检查下去,直到发现目标节点为止。即

广度优先搜索使用队列(queue)来实现,整个过程也可以看做一个倒立的树形。

例:假如你需要在你的人际关系网中寻找是否有职业为医生的人,图如下:

而使用广度优先搜索工作原理大概如下 :

1、Python 3 :

2、php

1、《算法图解》 https://www.manning.com/books/grokking-algorithms
2、SplQueue类: https://www.php.net/manual/zh/class.splqueue.php

阅读全文

与选择搜索算法相关的资料

热点内容
本地电脑如何做网站服务器 浏览:484
小寻s5下载的app怎么卸载 浏览:306
zbrushpdf 浏览:897
met肌肉能量技术pdf 浏览:195
php面试重点 浏览:683
如何从管理员界面删除文件夹 浏览:908
单片机三总线信息如何隔离 浏览:690
云服务器研发费用明细 浏览:957
unity3d手机游戏开发pdf 浏览:366
mysql重启命令linux 浏览:876
程序员日常业余内容 浏览:363
steam如何更改吃鸡服务器 浏览:212
我的世界up主多人用什么服务器 浏览:161
缝纫机电脑机编程 浏览:59
autowired源码深度解析 浏览:895
校园卡怎么上app 浏览:743
pascal高精度算法 浏览:870
阿里云服务器如何修改php 浏览:8
51单片机小项目 浏览:607
为什么d盘e盘无法解压 浏览:314