动态搜索

2024-10-13

动态搜索(精选8篇)

动态搜索 篇1

0 引言

在传统的搜索引擎上, 当我们执行搜索的时候, 我们已经习惯于看到在服务器上执行搜索的同时, 页面由于所要查询的数据的时间过长出现的页面固定状态。为了消除停顿, 一些开发者使用了帧、IFrame和弹出窗口 (pop-up window) 来避免网页被固定住、丢失滚动位置等等问题。帧和弹出窗口使得处理过程在网页的另一部分中继续进行, 这样用户仍然可以对引发操作的表单部分进行操作。用户不仅可以操作表单, 而且可以执行其他Java Script函数。

帧和弹出窗口有其他一些额外的好处。使用帧的解决方案允许在仍然可以看到搜索表单元素的同时, 滚动浏览返回的记录。弹出窗口则允许在单独的窗口中显示结果, 从主窗口中分离出处理过程。通过一些父/子窗口之间的通信, 可以将数据从子窗口传送给需要返回结果的父窗口。在用户需要一些特定信息, 而这些信息又难以记忆的情况下, 弹出窗口非常适于在大的表单中增加搜索功能。弹出窗口可以设置成处理结束后就关闭, 这对于执行没有返回数据的更新操作是很有用的。

在帧搜索过程中, 底部的帧负责向服务器提交搜索请求, 并且处理搜索的结果。使用底部帧来启动搜索, 使得窗口顶部的帧对于用户仍然是可访问的, 而不像传统搜索那样, 页面的所有功能都无法访问。

尽管这些解决方案解决了前面谈到的问题, 但是他们也引入了新的问题。主要的问题出现在导航功能上, 因为我们不知道帧会对浏览器产生什么作用。例如:回退按钮是如何影响帧的?帧是否会将我们带到正确的页面?是否会破坏帧集?他在什么场合恰好不起作用?为了解决这个问题, 我们不得不将检测帧的脚本包含在页面中, 这给应用增加了更多的负担, 既产生了更多需要管理的代码, 也增加了代码的复杂度。

另一方面, 因为越来越多的用户起用了弹出窗口拦截器, 弹出窗口受到了这些拦截器的拦截。弹出窗口有的时候是由浏览器自动生成, 例如onload或者onunload事件所启动的弹出窗口。Onload弹出窗口往往被滥用作为广告窗口, 所以他们经常遭到拦截。弹出窗口还会产生一些其他问题, 例如当子窗口出现在他的父窗口之下的时候, 由于被父窗口覆盖而无法看到弹出窗口, 这种情况成为pop-under。

尽管帧和弹出窗口解决了传统表单提交的固有问题, 但是也引入了另外的问题。解决这些问题的新的方法就是使用Ajax。Ajax独立地处理浏览器页面中的服务器通信, 可以播放动画, 并且维持页面的状态。我们无须担心诸如弹出窗口拦截器以及用户误以为窗口被固定而关闭窗口等因素的影响。

1 Ajax技术应用于搜索的原理介绍

1.1 界面处理技术

“Ajax搜索”技术将传统的搜索改造成动态搜索, 以改善一些搜索功能。执行这样的搜索不会向服务器提交整个页面, 这意味着可以维持页面的当前状态。此外, 因为结果是通过inner HTML或者使用其他DOM方法显示在浏览器中的, 所以运行Java Script和Gif动画不会有任何大的问题。

假设我们有一个搜索触发了一个长的数据事务, 导致了页面的锁定。Ajax技术常常采用两种方法解决。第一, 当开始数据库事物的时候, 可以启动一个动画。当我们开始输出结果的时候, 可以把动画图片的CSS display属性设置为none, 这样动画就消失了;第二, 在显示结果的输出位置放置上一个动画图片。当事物完成之后, 用结果信息替换Gif图片。不管用哪种方法, 用户仍然可以在XMLHttp Request对象处理服务器数据的同时使用表单。

1.2 客户端结果处理

当服务器返回动态搜索的结果时, 我们常常采取两种方法。第一种方法, 我们在服务器端创建一个XML文档, 然后客户端的Java Script代码调用XML DOM方法, 在客户端遍历XML节点并创建结果表格。这个过程使用了两次循环。第一次循环是在服务器创建XML文档的时候, 第二次则是在客户端创建HTML表格的时候。第二种方法, 在服务器端建立HTML表格而不是XML文件, 然后把它发回客户端, 我们就可避免客户端的XML DOM循环。但是这些方法都有不足之处, 他们都需要遍历全部数据并且动态创建表格。如果我们需要修改表格的格式并且表格格式复杂, 这将是一件非常乏味耗时的工作。

为了避免这个问题, 本文采用一种方法是使用XSLT。通过将XSLT文件和XML文档合并, 并且显示结果, 从而避免了手工调用DOM方法。如果开发者熟悉XSLT, 却不是很擅长编写Java Script代码的话, 这可能会是一个绝佳的解决方案。

2 搜索功能的Ajax实现

2.1 动态搜索功能简介

我们以一个根据用户姓名搜索一个电话簿为例, 具体介绍动态搜索功能的具体实现过程。其中涉及到客户端和服务器端两部分。图1展现了整个功能的实现过程。

2.2 网络防御技术发展现状

我们要建立一个根据姓名搜索电话簿的动态搜索。我们使用一个文本框和提交按钮来实现它。首先在客户端创建一个包含文本框和提交按钮的表单, 代码如下:

其中, onsubmit事件处理函数调用了函数Grab Number () , 该函数启动了XMLHttp Request请求, 而没有将表单提交到服务器。

元素是搜索答案输出的位置。其中必须注意的是onsubmit事件处理函数在执行时必须返回false。这会通知浏览器, 表单不应该提交给服务器, 以免触发整个页面的刷新和打断表单中Java Script程序。

2.3 启动搜索过程

在这个动作里我们用到了服务器上的两个文件:XML文档和XSL文档。其中XML根据客户信息动态生成, XSL已经建立的静态文档 (因为它是静态的, 所以服务器没有必要在客户端请求它的时候建立, 而可以实现把它建立好) 。

通过Grab Number函数启动XMLHttp Request对象。Grab Number函数见如下代码

这个函数处理服务器调用所需信息, 设置一个“i n progress”图片, 然后执行服务器调用, 服务器基于发送的查询字符串的值动态创建响应数据。load XMLDoc () 函数的第一个参数url XML是生成XML文档的URL, 这个URL组和通过引用HTML表单字段的值创建的查询字符串。第二个参数是XSLT文件的名称。第三个参数是现实搜索结果的div的ID。

接下来使用DOM方法为Web页面添加loading图片。首先将新建的图片元素附加到div上。当函数被表单的onsubmit处理函数调用时, 它会将图片文件加在页面中。防止用户误会页面时静止的。

2.4 服务器端实现过程

服务器端根据数据库查询结果集动态生成XML文档。本文在这个部分也将详细介绍如何创建静态XSLT文档。XSLT文档位于服务器上, 每次请求动态文件的时候都要重新获取它。当请求的两个文档到达客户端, 客户端对动态XML文档执行XSLT转换, 创建显示给用户的HTML表格。

2.4.1 创建XML文档

(1) 设计X M L结构

在开始创建XML文件的模版。这个模版应该能反映出搜索所返回的数据的结构。对于电话簿的例子, 我们将返回公司名称、联系人姓名、国家名称以及电话号码。包含这四个基本字段的X M L模版见如下代码。

(2) 创建动态XML文档

我们在服务器端创建XML文档。首先访问相关数据库, 构造SQL查询字符串, 使客户端代码传来的request参数组装WHERE子句。然后我们遍历结果集, 遵照基本模版, 在XML文件中为查询返回的每个电话条目创建一个entry。

为了使这个动态生成的XML文档能够工作, 我们必须将文档类型设置为text/xml;如果跳过这步, XSLT转换可能就无法进行, 特别是在浏览器Mozilla和Firefox中。具体实现代码由于篇幅有限, 不再赘述。

2.4.2 创建XSl T文档

我们需要几行代码就可以使XSLT将XML文件转换成漂亮的HTML表格。我们通过使用XSLT遍历源树节点来显示数据。XSLT使用结构化的XML文件, 并将它转换为易于更新和修改的可视化格式。XSLT文档是静态定义的。

(1) 解释XSLT的结构

X S L T转换包括了将源树转换成结果树的规则。这个XSLT处理有模式匹配构成了当一个模版匹配某个源树元素的时候, 模版就建成了相应的结果树。

结果树的机构不一定要和源树的机构有关。既然他们可以不同, 我们就可以将一个XML文件转换成我们想要的任何格式。我们并不是一定要生成一个表格形式的数据集。

这个XSLT转换被称作样式表示因为它为结果树设置了样式。样式表包括的模版规则有两个部分。第一部分是模式, 用来匹配源树的节点;第二部分是模版, 包含了创建结果树所需的标签。当找到一个匹配的源树节点时, XSLT处理器就使用模版来创建一段结果树。

(2) 创建XSLT文档

本文只是生成一个表格, 所以不需要任何特殊的模式匹配, 而是直接遍历源树的元素节点。我们将要开发的模版会输出一个有四列的HTML表格。这个项目的XSLT文件见如下代码:

2.5 合并XSLT和XML文档

我们要在客户端合并来自服务器的XSLT和XML文档。算法过程描述如下:我们首先加载XML和XSL, 同时注意判断是否两个文档是否同时加载完成。当两个文档全部加载完毕, 我们就可以执行XSLT转换了。值得注意的是, 当转换一个XSLT的时候, 不同浏览器在合并两个文档的方式上有所不同。我们给出两种浏览器的处理方法。

(1) 使用微软的IE。在IE中使用XSLT转换XML文档很容易, 只需要几行代码。我们使用transform Node () 方法, 它得到X M L和X S L T文档, 并将它们合并到一起:

我们首先检查浏览器是否支持transform Node () 方法, 通过测试浏览器是否支持Active X对象来完成这个工作。如果支持, 就调用含有XML数据的全局变量上的transform Node () 方法, 并将转换的结果加在结果元素的inner HTML上, 这样他就包含了最近格式化的搜索结果。

(2) 使用Mozilla。对于Mozilla, 我们需要使用XSLTProcessor对象, 用它来合并XML和XSLT文档。方法如下:

2.6 完成搜索

我们完成上述过程就可以测试一下动态搜索的功能了。我们在文本框输入文字, 点击搜索按钮来完成搜索。

如果结果需要进一步美化, 我们可以应用CSS规则来达到这个目的。

本文如果将相关脚本进行重构, 就可以成为一个面向对象的可充用组件。最后得到的组件可以作为容易使用的插拔组件快速加入到任何页面中。

3 结束语

应用程序的可交互性是开发者在选择应用实现的方式时必须权衡的重要因素。B/S模式的应用程序的交互能力不如桌面应用程序被广泛接受。Ajax技术为B/S应用程序提供了一个实现良好可应用性的选择, 采用它实现的客户端可以实现与服务器的平滑交互, 即不需要每次提交都要刷新页面。这就为搜索功能提供了很好的接口功能, 使用户在搜索过程中有了很愉快的应用体验。

摘要:本文介绍了一个通用的、高效的架构, 这个架构把Ajax模型整合到了动态搜索显示系统中。对于一般的搜索引擎的设计有一定的参考价值。

关键词:Ajax,XMLHttpRequest,XML,动态搜索

参考文献

[1]Dave Crane, Darren James. Ajax in Acition.北京:人民邮电出版社.2006.

[2]李小黎.WEB信息检索与分类中的数据采掘技术. 北京:中科院计算所博士论文.2001.

应用内搜索满足移动搜索「快感」 篇2

然而在移动端,这个模式正在被改写。

如果你的手机正好安装了百度的light app或者下载了豌豆荚应用,此时你只需要打开它们中的任意一个,然后输入你需要的内容,那么你得到的结果就是直接进入某家视频进行观看。

搜索的流程正在变快变短,浏览器也不再是唯一的搜索入口。而让这些发生改变的,是“应用搜索内技术”的全面来袭。

2004年4月,曾经的应用分发渠道豌豆荚,召开“应用搜索内技术发布会”,在号召第三方应用都来进驻平台的同时,还宣布了自己的移动搜索战略:全面准确、直达行动、情景化。

事实上,提出“应用内搜索技术”概念的,豌豆荚并不是唯一一家企业。2012年百度也提出针对自有App资源的应用内搜索,2013年底奇虎360和谷歌也相继发布过“应用内搜索”策略,试图在移动搜索领域打开新局面。就在近日,谷歌又宣布将要推出“深度链接”广告,让广告主能够将智能手机用户引向其设备上的应用,其背后也运用了“应用内搜索技术”。从业者们在这方面的布局,让行业竞争越发激烈的同时也说明,用户对移动搜索的需求正在变得越来越强烈。

长久以来,因为手机屏幕过小导致操作不便,加之网速、或者转码技术的桎梏、抑或网页内容与App内容混乱出现在搜索结果中等种种因素的限制,使得我们对移动端的搜索结果不满意。而且,移动互联网时代,大部分内容都隐藏在了App当中,导致大量信息孤岛的存在,而“应用内搜索技术”的出现就是为了解决这些难题。其核心点在于通过搜索结果呈现隐藏在App之中的内容资源,让用户快速从应用中获得并且消费内容,真正满足消费者在移动搜索时代的“快感”要求。

“在桌面互联网,我们大部分的时间都花在浏览器上。而在手机上,80%的用户时间是在应用里。”豌豆荚创始人王俊煜的看法有力地解释了为何大佬们纷纷布局于此的缘故,也解释了为何豌豆荚开始抢占移动搜索入口的原因。据悉,豌豆荚发布垂直搜索产品“应用内搜索”是在2011年,两个月之后,收录应用数22个,截至今年2月,这个数字已经达到140万。大批量的应用增长背后,是用户对移动应用搜索的精确性需求。而仅有百度、谷歌、360等几家大佬布局的行业现状,也给了豌豆荚这类从业者们进军移动搜索的信心。

动态搜索 篇3

大部分动态车间调度研究都专注于问题规模、算法收敛速度而忽略了工件本身的数据结构和它们之间可能存在的关系。于是, Mohammad提出了一种改进的变邻域搜索算法 (Modified Variable Neighborhood Search, MVNS) , 即搜索前采用K-means聚类后, 利用工件之间的距离来得到更好的结果。但是, 变邻域搜索较为简单, 对所得结果准确度的提升有限。而GA等算法在迭代时因群组过大会出现耗时太长的问题, 因此, 本文采用将分散搜索与改进的变邻域搜索相结合的方式来完成全局搜索。在大规模的车间调度下, 采用这种全新的混合分散搜索算法 (Hybrid Scatter Search, HSS) 来解决动态车间调度问题对实时性有较高的要求。实验结果显示, 与现有的几种动态车间调度算法相比, 这种新的算法得到了更好的结果, 凸显了其实时性和高效性。

1 混合分散搜索算法 (HSS)

与静态车间调度问题相比, 动态车间调度问题中所有的工件并不是在调度一开始就到达的, 而是随着调度的进行而逐渐到达工厂。除此之外, 在动态车间调度问题中, 我们还需要考虑机器的损坏。动态车间调度算法就是解决如何在这种情况下找到一种优化的工件调度序列。

分散搜索算法 (Scatter Search, SS) 是一种已经被成功应用到很多领域来解决优化问题的算法。由于分散搜索的每个步骤都是独立的, 可以分别改进, 因此具有很高的可调整性。除了五个标准的部分外, 我们还在分散搜索中引入了精英策略, 以确保最好的调度个体不会在进化过程中遗失。图1所示为混合分散搜索算法流程。

动态环境中, 机器故障和新工件的增加使得原来的调度已不再适应新的局面。因此, 在发生这些事件时, 需要重新调度。图2所示为实时动态系统。在初始状态下, 有3 个工件, 每个工件有3个工序, 其加工时间都为1.图2 (a) 为整个系统的初始态;图2 (b) 为在正常运行条件下且时间等于1 时, 工件1, 2, 3 的第一个工序均已完成;图2 (c) 中的机器3 发生了故障, 维修时间为1, 系统重新调度, 将工件2 的第二个工序的加工时间延迟了1;图2 (d) 为新工件到来, 可以看到工件4 被置于整个调度中。

本文研究的是10 台机器 (6 台机器以上为复杂的车间调度问题) 处理300 个工件, 每个工件有10 个工序, 每个工序的处理时间均平均分布, 工件到达车间的时间按照泊松分布。在计算平均流程时间时, 由于工件会无休止地到来, 因此采用从稳定态到某一个时间点的算法计算。这种计算方法避免了初始态不稳定的情况对结果造成影响。

1.1 编码方法和适应度函数

在车间调度算法中, 一个关键问题是如何将一个调度计划编码成一种合适的形式。不同的编码架构有不同的优缺点。在研究中, 我们采用了一种基于工序的表示方式。采用这种编码方式可将一种调度计划编码成一个工件编号的序列。假设每一个工件都必须在m个机器上加工一次, 在这种编码方式下, 每个工件编号都将出现m次。通过从左到右依次对编码序列扫描, 我们得到的第k次出现的某个工件编号代表了这个工件的第k个工序。比如, [2 1 3 2 3 3 1 1 2]这串序列就代表了以下这些工序的排序:[O21, O11, O31, O22, O32, O33, O12, O13, O23], 其工件的加工顺序如图3 所示。

适应度函数是车间调度问题中的另一个关键性问题。我们用适应度函数来评价所得到的不同调度计划的表现优劣。在静态车间调度问题中, 我们的优化目标是最小化调度计划的总制造时长 (makespan) 。然而, 在动态车间调度问题中, 通常, 我们的优化目标是最小化所有工件的平均制造时间。在本文中, 一个调度计划S的目标函数被定义为:

式 (1) 中:n为当前已经完成的工件个数;tck为第k个工件的完成时间;trk为第k个工件的到达时间。

1.2 多样性生产方法

基于给定的初始解, 多样性生成方法将产生一组多样性的调度计划作为整个分散搜索算法的第一代解。“多样性”这个词的含义可以理解为, 产生的这些第一代调度计划和初始解具有很大的不同, 并且每个解之间也具有很大的差异。生成的方法可用以下公式表示:

S (h∶t) ={[t], [t+h], [t+2h], …, [t+rh]}. (2) 式 (2) 中:h待定;t=1, 2, …, h, t+rh<l, l为初始解长度。

比如, 给定初始解p= (1, 2, 3, 4, 5, 6, 7, 8) , 如果我们选择h=4 作为多样性生成方法的参数, 那么将得到

p (4∶4) = (4, 8) , p (4∶3) = (4, 8) , p (4∶2) = (2, 6) , p (4∶1) = (1, 5) 。合并这4 个集合, 我们将得到一个新解p (4) = (4, 8, 3, 7, 2, 6, 1, 5) 。类似地, h取n个不同的值, 就可以得到n个不同的解。

1.3 改进部分:结合聚类的变邻域搜索

在用于解决静态车间调度问题的分散搜索中, 这个步骤则为简单的局部搜索。本文采用了结合MVNS的搜索方法:在工件进入车间后, 我们会根据工件本身的特性, 即在各个机器上所需的加工时间用K-means对其聚类。聚类的依据为加工时间的相似度, 相似度越高, 越可能被分为一类。这个分类信息在接下来的交换和插入中会被用到。简单来说, 相距越远的两个类中的工件, 越容易被选中并进行变换, 距离计算公式可参考公式 (2) 。由于距离越远, 意味着两个工件的加工时间差异越大, 交换或者插入这两个工件越容易使整个调度产生更大的变化, 从而使整个搜索变快, 更快地取得更出色的解。

总体的思路如下:

初始化:选择一组用于搜索的邻域Ni (i=1, 2, …, imax) , 产生一个初始解, 设置终止条件 (迭代次数为N) 、设置聚类数。用K-means完成聚类, 计算各类中心之间的距离。

重复以下步骤直至满足终止条件: (1) 设置i←1. (2) 重复以上步骤, 直到i=imax. (3) 随机搜索。根据聚类中心的距离, 随机在第i层产生解x´ (x´∈Ni (x) ) 。 (4) 局部搜索。将上一步得到的x´作为初始解进行局部搜索, 得到局部最优解x´´. (5) 更新。如果x´´比x´好, 则用x´´代替x´, 并在N1 (i←1) 中继续搜索;否则, i←i+1.

VNS算法非常简单、有效, 已经被广泛运用于很多这类问题的优化中。简单来说, VNS的中心思想是在初始解的附近搜索, 如果没有找到比初始解更好的解, 则跳到下一层, 直至k层;如果有比初始解更好的解, 则替换初始解再搜索, 原理如图4 所示。VNS算法优于一般局部搜索之处在于, 它的搜索范围在不断变动, 更加灵活, 所以收敛速度也快得多。

对于VNS算法中“邻域”的定义, 本文采用的是交换和插入, 其中, 交换是指两个工序交换位置, 互相替代;插入是指一个工序插到另一个工序之前。这里要变换的两个工序并不是完全随机挑选的, 而是要结合K-means算法的结果。在这个调度算法中, K-means算法的分类依据为最小方差和, 具体计算公式如下:

式 (3) (4) 中:k为分类的数量;Xij表示第j个工件被分在第i类;Ci为第i类的中心;ni为第i类工件的个数。

1.4 精英策略和引用集

在改良方法、优化步骤之后, 我们对组内所有的调度计划进行了精英策略操作。迭代时, 保留这一代中最好的解, 用来替换下一代中最差的解。原来的分散搜索中没有这个操作, 所以会在迭代过程中丢失暂时取得的最优解。

分散搜索中的引用集是一个兼具多样性和强化性这两个关键特性的解集。根据引用集, 我们可以得到子集。子集的形式为 (x, y) , 其中, (x, y) 均来自引用集。根据不同的方法, 我们将得到3 个子集: (1) 根据引用集A中的解, 两两组合得到; (2) 根据引用集B中的解, 两两组合得到; (3) 第一个解来自引用集A, 第二个解来自引用集B, 其中, 来自B的解为与第一个解距离最远的那个解。我们可以将这三个子集理解为对引用集中的多样性和强化性这两个特性的进一步深化, 可使搜索更加快速、有效。最后一步是对这三个子集中的元素内部交叉变异产生两个新的解。

2 实验结果

为了更直观地看到结果, 我们在编程中加入了显示部分, 用于甘特图的实时输出。每次重新调度时, 系统会自动截取这一刻生成的最优调度方案。图5 所示为混合分散搜索算法下系统产生的甘特图。图5 中, 5 号机器发生故障, 62 号工件为最新加入的工件, 这次的重新调度是因为机器故障, 原本在5 号机器上的60 号工件的最早开始时间由原来的“当前时刻”变成了机器故障被修复后的时刻。

为了更为公平地进行比较, 我们建立了一个与Adibi M A和Shahrabi所写论文中相同的动态实验环境。为了在初始时可以调度, 本文设置的是在刚开始时已经有10 个工件可供调度。两个工件之间的平均到达时间差符合平均值为100~300 的泊松分布, 共5 组实验。之所以这样设置, 是因为间隔超过300时, 工件的到来太过稀疏, 机器上常常只有两三个工件, 调度意义不大。而如果间隔小于100, 则太过密集, 绝大部分工件在等待, 与实际生产不符。机器的平均损耗时间为5 700, 平均修复时间为300.工件的各工序在各机器上的处理时间为平均值为300 的正太分布。工件的加工顺序为随机产生。

在计算时, 为了减少开头静态10 个工件带来的影响, 我们在计算平均流程时间时, 不是计算所有工件的平均流程时间, 而是计算当第150 个工件到达时, 最近完成的100 个工件的流程时间的平均值 (一般说来, 当第150 个工件到达车间时, 已经完成了100 个以上的工件) 。

为了更好地比较本文算法的有效性, 我们在相同的动态环境下, 对以下四种算法, 即混合分散搜索、分散搜索、改进遍邻域搜索和先入先出 (FIFO) 进行了仿真。在参考文献[13]中, 分散搜索用于解决静态车间调度问题, 本文的算法是分散搜索首次用于解决动态车间调度问题;而FIFO和MVNS已经有研究用于动态调度中, FIFO的思想非常简单, 即先到的工件先被安排到调度中, 在参考文献[12]中用于跟MVNS作比较。

图6 所示为各算法运行时间的比较。从图6 可以看出, 我们设置的是工件平均到来的间隔在150~300 之间, 这符合一般实际生产中的情况, 即工件来得不是特别频繁, 但机器总是保持忙碌, HSS与SS和MVNS所花费的时间比较接近。图7 所示为各算法平均流程时间比较。从图7 可以看出, 混合分散搜索在各种工件间隔条件下, 始终比其他算法表现得出色。图8所示为HSS与MVNS比较。从图8 可以看出, 与目前比较有效的MVNS相比, 混合分散搜索所用的时间增加了24%左右。

从以上3 个图不难看出, 我们提出的HSS在动态车间调度问题的解决上有很强的应用性。混合分散搜索之所以能有这样出色的表现, 我们认为主要有以下三个原因: (1) 在引用子集中, A集为最优解, 而B集为与之距离最远的解。将这两个子集用于后续的交叉操作, 既保证了接下去可以强化结果, 又保证了多样性。能兼顾这两点的算法非常少, 而这两点是启发类算法中至关重要的两点。 (2) 融合了MVNS中K-means和VNS后, 相比于简单的局部搜索, 能结合工件本身的特性, 整个搜索变得更加有效、快速。 (3) 引入精英策略使得每代中最好的解被保留下来, 与原来的分散搜索相比, 最优解不会在迭代过程中丢失。

3 结束语

在本文中, 我们设计了一个事件驱动的实时动态系统, 并提出了一种全新的混合分散搜索方法来解决动态车间调度问题。这是分散搜索首次应用于动态车间, 并用改进遍邻域搜索代替了原来分散搜索算法中的局部搜索, 在迭代次数相近、搜索时间相近的情况下, 使得工件的平均流程时间大大缩短。在大规模的条件下, 实验结果表明混合分散搜索算法可以有效解决动态车间调度问题, 对于自动化程度较高的产业具有一定的指导意义。

摘要:车间调度问题是最为人熟知的生产自动化调度问题之一, 而在实际生产中, 动态车间调度问题更为常见。动态车间调度问题包括机器故障和新工件的到来, 这对调度算法的实时性和效率提出了更高的要求。为提高调度算法的实时性和效率, 设计了实时动态系统, 并提出了一种全新的混合分散搜索算法:用改进的变邻域搜索代替分散搜索中简单的邻域搜索, 使得搜索更快;同时, 引入精英策略, 使得搜索结果更好。大规模的实验证明, 提出的混合分散搜索算法在解决动态车间调度问题上表现出色, 应用效果非常好, 且实时性强。

动态搜索 篇4

一、新浪分类目录—华人搜索的老习惯

新浪搜索分类目录:http://dir.iask.com/

新浪网搜索引擎是面向全球华人的网上资源查询系统。新浪搜索分类目录由新浪搜索专业编辑挑选和分类的网站结果。

新浪搜索提供“分类检索”和“关键词查询”两种查找方法。

“分类检索”是从搜索首页按照树型的主题分类逐层点击来查找所需信息的方法。

如果我们想看金庸的全部小说,就可以采用分类检索,也即目录查询方式。在搜索首页中的14大类目录中点击“文学艺术”目录,再选择“武侠小说”目录点击进入,这时页面中上面列出的是细分目录,下面列出的是属于武侠小说目录的网站。可以继续点击子目录中的“金庸”目录。同样,您也可以选择想要看的网站进入浏览了。

但是如果我们目的明确,只想找一部具体的小说,那就可以选择“关键词查询”方式进行搜索。

二、Google网页目录—换一种方式来搜索

Google网页目录:http://www.google.com/dirhp?hl=zh-CN&tab=wd

Google的网页目录内容是依据Open Directory,经过全球各地的义务编辑人员精心挑选,再由Google著名的“网页级别”技术(专利申请中)分析,让网页依照其重要性先后排列出来,并透过网页介绍里的横线长度,来标明此网页的重要程度。

小提示:

何时该选用Google目录查询而非一般的网络查询呢?

实际上,你不必在两者之间作选择,因为Google的搜索引擎已经配备有网页目录的功能。当使用网络搜索时,你会看到部分的搜索结果已经注明所属的网页分类。这项新增的功能,代表Google已经为你找到这个网页在目录里的相关资料,只要点击链接,即可查看这分类下的其他网页,或其他类似的分类。

Google的搜寻引擎是你搜索网页的最佳工具,但当搜索范围涵括太广时,使用网页目录可以缩小搜索于指定的范围内。此外,Google的网页目录能帮助你了解各分类主题的相关程度,并提供你相关的搜索线索,还让你对特定分类项目有更进一步的概念。例如查看“中文/新闻/杂志”的分类子目录,则可以知道哪些中文杂志有网页。

使用网络目录检索,能将搜索范围局限于特定的分类内,略去类似但无关的其他网页。例如检索各“大学”,如果将搜索范围设定于“教学机构”的分类内,即可略去其他网页如“大学眼镜公司”、“大学书城”甚至是古书里的“大学”、“论语”等。

除此之外,选择使用网页目录,让你只查看经过编辑群审核的优良网站。Open Directory专案有两万多个经编辑人员挑选并归类的网页。Google的搜索技术为你按网页的重要性排列而非按照笔画或字母,它是先进科技及人类智慧的结晶。

三、网易分类目录——有道搜索的新选择

网易搜索分类目录:http://dir.so.163.com/

这也是一个由网上的志愿者编辑内容的分类网站目录。它在网易有道搜索之外,提供给用户以分类目录检索资源的一种方式。进入它的分类页面(http://dir.so.163.com/),你可以看到,它为你提供了最热门的经济金融、公司企业、电脑网络、社会文化、新闻出版、教育学习、娱乐休闲、体育竞技、艺术、文学、科学技术、医药健康、政法军事、旅游自然、生活资讯、少儿乐园、情感绿洲、个人主页、时尚搜索等类别。每个大类下面又细分为各种次级目录。你可以按照自己的喜好和需求,按类进入自己感兴趣的目录,选择自己需要的资源。

四、Sogou分类目录——搜狐网的目录厅

搜狗目录:http://www.sogou.com/dir/

动态搜索 篇5

在电力供需平衡并满足容量和电压等约束的前提下,配电网络重构是通过改变系统中的开关状态来改变电网的运行方式,从而减少网络的运行损耗[1]。目前,重构算法研究主要有:(1)支路交换法[2,3],此法分析直观,运算速度快,但往往只能找到局部最优解;(2)神经网络法[4],方法具有快速决策的能力和很好的鲁棒性,但其解却易陷入局部最优解,并且学习非常耗时;(3)模拟退火法[5,6],它是一种以概率1收敛于全局最优解的全局寻优算法,但寻优过程较难控制,直接影响了模拟退火法的寻优能力;(4)遗传算法[7,8,9],方法过程简单,兼容性好,还具有较好的全局寻优能力,但其计算速度慢,需要结合具体问题或辅以其他算法来提高计算速度;(5)分步最优法[10],算法以网损估计方法为基础,分步优化,每一步将一个开环点移至相邻支路使网损降最大,最终达到重构后网损最小。

根据粒子群优化算法[11,12,13],提出一种改进粒子群动态搜索的算法,算法不仅能提高计算速度,还克服了粒子群优化算法中的早熟问题。基于该算法的配电网络重构方法,研究了2个不同规模标准试验网络,取得了令人满意的结果。

1 配电网网络重构的数学模型及约束条件

配电网络优化重构是在配电网正常运行情况下,通过调整联络开关与分段开关闭合组合状态,在满足系统和网络运行约束条件下,实现降低网损的目的。

当运行条件改变时,通过调整联络开关与分段开关闭合的组合实现网络重构。例如在图1中,当母线2上的负荷在正常运行条件下变为重负荷时,联络开关(1)被合上将节点11上的负荷从母线2转移到母线1。同时,节点9和11之间的分段开关(5)被打开以维持配电网络的辐射状网络结构。

重构的问题就是确定网络中哪些联络开关需要闭合、哪些分段开关需要打开,使重构后的网络具有最小的有功功率损失,重构的目标函数如下:

式中:ri为馈线i上的阻抗;Pi为馈线i的有功功率;Qi为馈线i的无功功率;Vi为馈线i电压;Fc为网络中所有闭合馈线的集合。考虑电力系统正常运行的约束条件,式(1)需服从如下约束:

(1)潮流约束:

式中:A为节点与支路关系的关联矩阵;P为馈线潮流矢量;D为负荷需求矢量。

(2)容量约束:

式中:i∈T∪Fc;T为配电变压器集合。

(3)电压降落约束:

式中:i=1,2,…,N,N为节点数。

(4)辐射状网络结构约束。

(5)不能出现孤岛。

可见,配电网络重构是一个非线性的混合整数规划问题。

2 配电网的潮流计算

对于标准的树状网络的潮流计算,前推回推法是一种较好的方法,前推回推法思路简洁,容易实现,而且收敛性好,计算速度快。由于配电网络会出现暂时的弱环网运行状态,本文采用带有补偿电流法的前推回代法进行配网的潮流计算。

补偿电流法的基本思想是在环网中选择一点将环打开,在开环点用开环之前的电流或功率模拟开环前的状态,然后再用前推回推法求取此时已成树状的配网的潮流。

3 基于改进粒子群动态搜索算法的配电网络重构

3.1 基本的粒子群算法

粒子群优化算法PSO(Particle Swarm Optimization)[14]是应用速度与位置搜索模型,解决优化问题的。每个粒子代表解空间的一个候选解,解的优劣程度由适应函数决定。速度Vi=(Vi1,Vi2,Vi3,…,Vid)决定粒子在搜索空间单位迭代次数的位移,其中,适应函数根据优化目标定义。PSO随机初始化为一群粒子,其中第i个粒子在d维解空间的位置表示为xi=(xi1,xi2,xi3,…,xid)。每一次迭代,粒子通过动态跟踪两个极值来更新其速度和位置。第一个是粒子从初始到当前迭代次数搜索产生的最优解:个体极值Pi=(Pi1,Pi2,Pi3,…,Pid)。第二个是粒子种群目前的最优解:全局极值gi=(gi1,gi2,gi3,…,gid)。粒子根据以公式(5)、(6)来更新其速度和位置:

其中:rand()是均匀分布在(0,1)区间的随机数。一般取学习因子C1=C2=2。粒子在解空间内不断跟踪个体极值与全局极值进行搜索,直到达到规定的迭代次数或满足规定的误差标准为止。

从上式可看出当粒子群历史最优位置在长时间内不发生变化时,在粒子群体很接近Pi时,其速度更新将主要由历史速度决定,于是速度将越来越小,粒子群呈现出强烈的“趋同性”,表现在式(5)中的第二项和第三项接近于0。这种“趋同性”加快了算法的搜索速度,但是却减弱了群体开拓新的搜索空间的能力。如果该最优位置为一局部最优点,则算法很容易陷入局部最优,发生早熟现象。通过粒子群优化算法的搜索机理分析发现,无论是早熟收敛还是全局收敛,粒子群中的粒子都会出现“聚集”现象。

3.2 改进的粒子群动态搜索算法

改进的粒子群动态搜索算法是先随机产生一定规模的粒子(初始解),然后计算各粒子适应度的大小,并以平均适应度为准,把粒子分成两个互不交叉并具有不同分工的子群P1和P2,让它们按照不同的搜索方式进行搜索。这里P1与P2不是单纯地分为两部分,搜索过程中,当P1中的粒子适应度低于平均适应度时就会被分到P2中去,两部分之间的粒子是变化的,而不是固定的,因此搜索过程是动态的,保证了算法在搜索时的广度和深度。

P1与P2子群的生产方法是:

1)子群P1:将粒子群中各粒子适应度进行排序,按高于平均适应度的n个粒子作为该子群成员。同时取最优粒子的适应度作为该子群的最优。在迭代过程中采用在粒子群中嵌入局部搜索的改进算法,在粒子群最优附近寻搜索新的群体最优值,就概率而言这是最有可能寻找到全局最优的区域,保证了最优粒子群的搜索。

2)子群P2:将粒子群中低于平均适应度的m个粒子作为该子群成员,同时取其最优粒子的适应度作为该子群的最优。在迭代过程中采用标准粒子群算法,并引入禁忌搜索算法的思想,算法可开拓新的搜索空间,粒子的不断演化保证了粒子群的多样性,提高了粒子群的全局探测能力。

3.3 改进粒子群动态搜索算法与配电网络重构的结合

本文选用基于环路的编码方法对配电网络中的开关进行编码,如图1所示,网络中有3个环网,因此粒子的维数为3,每一维的变化范围是该环网内所包括的开关,根据规则可选择其中一个粒子的初始状态为(5,9,6),表示此时打开的开关分别为(5)、(9)、(6),其他没有选中的开关处于闭合状态。这样可以选择不同的开关组合状态,从而计算出每种组合状态下的网络损耗,最后计算出每个粒子的适应值。根据配电网络规模确定粒子群的规模,每一个粒子表示一种开关组合状态。因计算速度的公式中计算出来的数据通常会带有小数,而开关是用整数来表示的,所以要对其进行离散化处理,把计算出来的数据采用取整的方法,即采用四舍五入的方法,这样就可以得到相对应的开关。

由于配电网具有闭环设计开环运行的特点,所以重构后的网络必须满足放射状结构并且不能出现孤岛,否则视为不可行解。当出现不可行解时,对粒子进行修复,即在允许的范围内随机改变粒子的某一维的值,保证选择的开关组合满足配电网络的各种约束条件和运行方式。

本文主要研究正常情况下的配电网络优化重构,但为了在发生故障时能尽快恢复故障,减小停电范围和停电损失,应按照实际的网络接线、配电系统的运行方式和故障恢复时间的要求对重构所得出的结果进行验证,进而选择较优的适合配电网运行的结构。

处理子群P1时,引入遗传算法中交叉的思想,设交叉的概率为0.9。选择该子群中两个适应度相近的粒子进行交叉,交叉后所得的两个子代粒子替换原来的两个父代粒子,这样得到了两个新的粒子,再比较该子群中所有粒子适应度的大小,适应度最大的粒子位置作为该子群中的全局最优位置。处理子群P2时,设禁忌长度L,把每次迭代所得的适应度的值依次存入禁忌表里,对之后每次迭代的适应度的值,若与禁忌表里相同时则该粒子保留为原来的位置,待该子群中的全局最优值更新后粒子再以式(5)计算出来的新速度进行飞行,飞行到新的位置后计算其适应度,并将新的适应度存入禁忌表中,当迭代次数大于L次时,同时将最前面存入的适应度退出禁忌表。

3.4 基于改进粒子群动态搜索算法的配电网络重构步骤

1)初始化输入网络信息,确定变量的维数(配电网络中联络开关的数量,其变化范围为包括该联络开关的单个环网内的开关数量),设置粒子群的规模M和算法参数,设置禁忌长度L,设置最大迭代次数Imaxㄢ

2)计算粒子的适应度,即配电网网损的倒数。

3)计算出平均适应度,并以平均适应度为准,将其划分为子群P1与P2;P1、P2中的每个粒子比较它和它经过的历史最好位置的适应度值,如果更好则对粒子的速度和位置按照式(5)、(6)进行更新。

4)若粒子群当前最优解的适应度在设定的迭代次数内未发生变化,对部分适应度非常相近和较劣的粒子进行随机扰动,即以P=0.05的概率进行变异操作,然后计算变异后粒子的适应度。

5)按适应度的大小,重新划分子群P1、P2ㄢ

6)判断当前迭代次数是否达到最大的迭代次数Imax,若不满足,返回步骤2),反之,输出群体当前最优解Pㄢ

4 算例分析

以IEEE 33节点和美国PG&E69节点系统作为算例,验证本文算法。33个节点的算例有37条支路,其中的5条为联络支路,额定电压为12.66 kV。按本文算法,编码长度为5,即为联络开关的数量;根据粒子群算法中粒子群规模的选择方法:当M较小时,找到全局最优解的可能性较小,而M较大时,找到全局最优解的可能性较高,但计算速度较慢,分别选择M=10、M=20、M=30,经过计算,当M=20时,计算结果和速度较优,所以选择种群规模M为20;根据禁忌长度的选择方法,当禁忌长度较大时,适用于广域搜索,而禁忌长度较小时,适用于局域搜索,通过多次计算,本文确定禁忌长度为6,即当禁忌表里存放的数据组数大于6时,最先存放的那组数据退出禁忌表。表1列出了网络重构的结果。PG&E69节点算例的配电网2有69个节点,74条支路,其中的5条为联络支路,额定电压为12.66 kV,总负荷为(3802+j2694)kVA。具体参数设置方法和算例1相同,编码长度为5,种群规模为30,禁忌长度为8,网络重构结果列于表2ㄢ

由重构的结果看,本文的改进粒子群算法重构后网损大为降低,网络的最低电压值明显提高,网络重构对降低系统运行网损和提高供电质量作用明显。基本遗传算法计算IEEE33和PG&E69节点系统收敛次数均在100次以上,本文算法与禁忌搜索算法收敛性能比较如图4和图5ㄢ

4 结论

1)基于动态搜索的粒子群算法,粒子在飞行过程中更易找到全局最优解。

2)采用基于环路的编码方式,使每个粒子的维数大大降低,节省了存储空间,提高了计算速度。

3)将遗传算法和禁忌搜索算法的思想与粒子群算法结合起来,提高了算法的全局寻优能力。

动态搜索 篇6

互联网是一个巨大的、信息量仍在持续增长的信息库, 要想在如此大的信息库中查找用户需要的信息, 最终都要使用搜索引擎。网站的宣传越来越多地依赖搜索引擎的搜索结果, 怎样让搜索引擎更好地为站点服务与提高站点的访问量有着非常密切的关系, 如果站点中页面内容被搜索引擎大量收录, 则被用户用不同的关键词找到的机率就越大。对于一个站点被访问的次数是评定其重要性的一个因素, 它影响着网页级别, 从而影响到网站的排名。

过去情况下网页大多是静态网页, 网络蜘蛛可以直接从网页脚本中提取出文本内容和超链接进行爬行。但随着信息技术的不断发展, 网页的内容和格式也不断丰富, 尤其是动态网页的普及在技术上大大增加了网络蜘蛛对网页进行爬行的难度。传统的网络蜘蛛爬行策略很难从这类网页中提取超链接, 从而大大影响网络蜘蛛对网站的爬行覆盖率。该文在对搜索引擎技术及动态网页结构分析的基础上, 总结了几种增加动态网页可见度的策略。

2 搜索引擎技术简介

搜索引擎 (Search Engine) 是随着WEB信息的迅速增加, 从1995年开始逐渐发展起来的技术。用户在海量的数据里查找所需要的信息。自然会有“迷航”问题, 搜索引擎正是为了解决这个问题而出现的技术。搜索引擎以一定的策略在互联网中搜集、发现信息, 对信息进行理解、提取、组织和处理, 并为用户提供检索服务, 从而起到信息导航的目的。考虑到效率问题, 搜索引擎不可能在用户搜索时才去实时的检查每个网页, 因而需要先把网页抓取下来, 按照关键词建立好索引, 每次搜索的结果都会直接从搜索引擎建立好索引的数据库中查找, 然后把结果返回给访问者。而抓取信息的任务就由网络蜘蛛来完成。

网络蜘蛛即Web Spider, 是一个比较形象的名字。如果把互联网比喻成一个蜘蛛网, 那么网络蜘蛛就是在网上爬行的蜘蛛。网络蜘蛛的运行机制是通过网页的链接地址来寻找网页, 从某一个网页开始, 读取网页的内容, 找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页, 这样一直循环下去, 直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站, 那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

3 网络蜘蛛搜索策略

各类网络蜘蛛由于评价链接价值的依据不同, 表现出不同的搜索策略:

3.1 基于广度优先 (Breadth First)

广度优先搜索策略广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页, 然后再选择其中的一个链接网页, 继续抓取在此网页中链接的所有网页。这也是搜索引擎最常用的方式, 因为这个方法可以让网络蜘蛛并行处理, 提高其抓取速度;同时这也保证了对浅层的首先处理。当遇到一个无穷尽的深层分支时, 不会导致陷进www 中的深层文档中出现出不来的情况发生。广度优先搜索策略还有一个优点, 即它能在两个HTML文件之间找到最短路径。广度优先搜索策略通常是实现网络蜘蛛的最佳策略, 因为它容易实现, 而且具备大多数期望的功能。但是如果要遍历一个指定的站点或者深层嵌套的HTML文件集, 用广度优先搜索策略则需要花费比较长的时间才能到达深层的HTML文件。

3.2 基于深度优先 (Best First)

深度优先搜索是一种在开发网络蜘蛛的早期使用得较多的方法, 是指网络蜘蛛会从起始页开始, 链接一个接一个地跟踪下去, 处理完这条线路之后再转入下一个起始页, 继续跟踪链接。当不再有其他超链接可选择时, 说明搜索已经结束。这个方法有个优点是网络蜘蛛在设计的时候比较容易, 而且能遍历一个Web站点或深层嵌套的文档集合;缺点是因为Web结构相当深, 有可能造成一旦进去, 再也出不来的情况发生。

3.3 基于网页评级 (Page Rank)

基于网页评级是利用网页评级并结合内容对搜索到的文档集合进行评级, 利用计算得到的结果从中挑选评级最高的链接作为下一个搜索的对象。

3.4 Info Spider

Info Spider利用进化的关键词表 (初始为与主题相关的特征项集) 和神经网络方法, 对与主题相关的网页进行相似度的计算, 根据计算的结果决定下个将要搜索的对象, 同时计算新获得的文档与主题的相关程度以及在获取文档过程中所花费的代价修正代理的能量, 并根据其能量级别决定对该代理进行撤消、再生与生存。

各类搜索策略各有利弊, 评价搜索策略的优劣不能仅采用单一的标准本质上说, 网络蜘蛛的搜索问题是一个“多目标”规划问题, 在合理的时间限度内, 以较少的网络资源、存储资源和计算资源的消耗获得更多的主题相关页面是网络蜘蛛追求的最终目标。因而, 提高链接价值预测的准确性, 降低计算的时空复杂度, 以及增加网络蜘蛛的自适应性, 是提高网络蜘蛛效率的关键因素。

4 动态网页搜索引擎策略

虽然动态网页具有增加网站交互、便于维护和更新的优点, 但在通常情况下, 网络蜘蛛对于这种通过“?”来进行环境参数传递而得到的页面中的链接不会进行深入访问, 为的是确保其免遭死循环之灾。对于动态生成网页, 我们这些实际的访问者可以通过肉眼看到, 但对于大多数搜索引擎的蜘蛛程序却往往是不可见的。动态页面的相关超链接并不直接出现在脚本中, 它们在网络空间中实际并不存在, 其大部分内容通常来自与网站相连的数据库, 只有接到用户的请求, 在变量区中输入一个值以后才会生成相关页面, 这也就是动态网页很难被网络蜘蛛检索的原因。而目前九成以上的网页都已经是动态网页, 因此为了迎合当前的网络环境, 有必要研究针对动态网页的搜索引擎策略, 否则将影响信息搜索的整体效能。

下面介绍一下对动态页面的搜索引擎策略:

4.1 每个动态页面都用软件直接转化成静态页面

对于小型站点, 如果要把自己的动态网页全都转化成静态页面, 这不是难事, 最简单的做法自然是运用站点镜像软件创建镜象静态的网页。但是, 这种方法会给站点的维护带来不便, 如网站内容进行了更新, 那就要重新镜像, 对页面总数较多的大中型站点, 用这方法将会更不方便。因此这种方法比较适合内容变化不太频繁的小型站点, 比如一些新闻类的站点。

4.2 把动态页面的地址变成象一个静态页面

把动态页面的地址变成象一个静态页面后.可以骗过网络蜘蛛, 将静态页面的URL被搜索引擎收录, 而实际在用户点击后, 访问的却还是一个动态的URL。可用功能强大的“UrlRewrite”技术来实现URL重写转向功能, 只要服务器管理员想做, 那么某个.htm地址其实可以指向一个ASP程序、某个doc文档或是一个JSP程序。

4.3 在ASP中使用FSO组件生成HTML文件

利用对象模型FSO (File System Object) 可对文件系统进行访问处理, 该模型提供了一个基于对象的工具。通过它所提供的一系列属性和方法, 我们可以在开发动态WEB应用程序的过程中, 生成HTML文件。在使用这种方法时, 要求服务器支持FSO文本文件读写功能、当然也增加了程序设计的难度, 但可以节约租用内容管理 (CMS) 系统的资金, 对转化的静态页面的管理也比较方便, 是一种不错的方案。

4.4 提交创建的入口页面

前面说过, 搜索引擎机器人并不会自己“输入”参数, 所以要让上面这些动态页面被搜索引擎抓取, 我们还需要告诉机器人这些页面的地址 (也就是参数) 。我们可以创建一些静态的页面, 一般在网络营销中称为“gateway page” (入口页面) , 这些页面上有大量指向这些动态页面的链接。将这些入口页面的地址提交到搜索引擎, 这些页面和链接的动态页面 (改变过URL形式) 就能都被搜索引擎抓取了。

4.5 付费登录

对于整个网站都采用与数据库相连的内容管理系统 (CMS) 发布的动态网站而言, 提高搜索引擎可见度的最直接办法就是进行付费登录, 直接提交动态网页到搜索引擎目录, 或做关键字广告, 保证网站被搜索引擎收录。

5 结束语

随着搜索引擎技术的发展。有些已经能够对动态页面进行访问, 但为了确保网络蜘蛛免遭死循环之灾, 一般不会对页面中的链接进行深入访问。所以建议大家要稍微多花点时间在你的动态生成网页上, 以确保它们中的每一个都能够被搜索引擎索引到。随着动态页面技术的越来越成熟, 现今搜索引擎对其支持技术的缺陷所带来的麻烦将会越来越严重, 对网络搜索引擎的动态性支持研究将会是未来一段时间内搜索引擎研究的主题方向。

摘要:目前动态网站已经是网站建设的主流。网络搜索是从因特网上快速有效获取信息的主要手段, 传统的针对静态网页处理为主的搜索引擎策略已经越来越不适用于现在的网络环境。本文总结了几种适用于动态网页的搜索引擎策略, 大大增加了动态网页对搜索引擎的可见度。

关键词:因特网,搜索引擎,网络蜘蛛,静态网页,动态网页

参考文献

[1]王继成, 潘金贵, 张福炎.Web文本挖掘技术研究.计算机研究与发展, 2000, 37 (5) :513-520

[2]王继成, 孙正兴, 萧嵘.Web信息检索研究进展[J].计算机研究与发展, 2001, 38

[3]邓长寿, 赵秉岩.下一代Web搜索引擎探讨.情报科学, 2003, 3

[4]Sergey Brin, Lawrence Page.The anatomy of a large-scale hypertextual Web search engine[J].ComputerNetworks and ISDN Systems.1998.30 (1-7) :107-117.

[5]Nsjork M, Wiener J.Breadth-first search crawlingyields highquality pages[C].In:Proceedings of the10th International World Wide Web Conference, HongKong, Elsevier Science, 2001, 114-118

动态搜索 篇7

近几年,随着电力市场的发展,电力系统运行中的不确定性增加,电力系统的安全稳定运行面临着很大的挑战[1,2,3]。因此,对于电力系统安全稳定运行的概率安全性研究越来越多[4,5]。电力系统动态安全域DSR(Dynamic Security Regions)的研究方法为电力系统的概率安全评估提供了有力的工具[6,7]。利用DSR可以给出系统的安全性概率指标。

目前,求解电力系统DSR主要有拟合法[8]、实用解析法[9]和改进解析法[10]等方法。这些方法虽可在不同程度上获得令人满意的结果,但由于求DSR的方法都是针对大范围的超平面,直接应用于计算安全性概率指标会产生较大的误差。因此需要针对安全性概率指标进行小范围的超平面搜索,进而对电力系统进行概率安全评估。

1 电力系统DSR和概率不安全指标模型

1.1 电力系统DSR

在电力系统动态安全分析中已经提出了DSR的方法[11,12]。该域Ω(i,j,t)是注入功率空间上的集合,当且仅当事故前网络结构i中的注入功率向量y处于该集合内时,在发生了持续时间为t的给定事故之后,网络结构变为j,系统不会失去暂态稳定[13]。大量研究表明[8,9],DSR可以由描述各节点注入功率上下限的垂直于坐标轴的超平面和描述暂态稳定临界点的超平面围成,称之为实用动态安全域(PDSR)。其二维示意图如图1所示。

DSR的边界超平面可用式(1)表示:

其中,y=[y1,y2,…,yi,…,yn]T,为临界有功功率注入向量;a=[a1,a2,…,ai,…,an],ai为所求得的超平面方程的系数;n为功率注入的个数。

1.2 DSR搜索方法

目前,求解电力系统DSR主要有拟合法、实用解析法和改进解析法等方法。

a.拟合法。通过拟正交选点选取搜索方向,在这些方向上通过时域仿真计算求取多个注入功率临界点,用最小二乘法拟合得到DSR边界超平面系数的方法,简称为拟合法[8]。拟合法的计算结果比较准确可信,但由于一般需要至少搜索2n个临界点,因此计算量很大。当系统规模增大时,计算量呈几何级数增长。

b.实用解析法。实用解析法是通过搜索1个临界点,在该临界点做小扰动分析,得到各个超平面系数间的比例关系,最后估算超平面系数[9]。由于只需要搜索1个临界点,所以实用解析法的计算速度很快,但误差较大。

c.改进解析法。改进解析法是在实用解析法的基础上,根据实用解析法计算得到的DSR超平面系数和拟合法得到的超平面系数之间的相关性而提出来的[10]。这种方法将临界超平面系数分成发电机系数和负荷系数2个群,通过增加几个临界点,利用最小二乘法,估计各群系数与真实值之间的偏移量,得到改进的超平面系数。由于只需增加有限几个临界点,且增加个数与系统的规模无关,因此改进解析法的计算量相对于拟合法很小,同时计算误差比实用解析法明显减小。

1.3 概率不安全指标模型

文献[14]提出了一种电力系统概率不安全指标模型。该模型计及了负荷的不确定性、故障类型、故障地点、故障电阻、故障时间等随机因素对系统安全性的影响,定量计算系统不安全水平。概率不安全指标模型的核心是给定故障及其切除时间t时的不安全概率测度:

其中,MΩ(y)的物理意义是对于既定的线路故障,注入功率向量y位于DSRΩ外的概率,即发生给定故障后系统不安全的概率。

为简化计算,文献[14]进一步提出了2个假设。

假设1:节点注入功率yi服从正态分布,即

其中,μi和σi分别为负荷节点i的注入功率yi的期望值和均方差,n为注入功率的个数。

假设2:节点注入功率两两相互独立。

根据这2个假设,可将MΩ(y)化简为

其中,Φ(z)为标准正态分布函数。

已知DSRΩ的边界超平面系数ai,给定注入功率向量y,可由式(5)计算出z,代入式(4)即可得到给定故障的系统不安全概率测度MΩ。

2 DSR的小范围搜索法

DSR的小范围搜索法的基础为标准正态分布函数的快速衰减特性和加速衰减现象。

2.1 正态分布函数的快速衰减特性

z<0时,Φ(z)随z减小呈现指数级衰减,如表1和图2所示。

由此可以看出,Φ(z)具有快速衰减特性和加速衰减特性。

2.2 求解小范围DSR的必要性

在节点注入功率空间,一般运行点从距离它最近处的DSR边界处溢出失稳的概率最大,从距离较远处溢出失稳的概率较小。考虑到yi的正态分布特性(见式(3))和正态分布函数Φ(z)的快速衰减特性(见表1和图2),距离较远时溢出失稳的概率急剧减小。即给定故障时,系统的不安全概率测度MΩ(y)只对距离运行点最近处的DSR边界敏感,对稍远处的边界情况很不敏感。因此,计算MΩ(y)时,只需要在距离运行点最近处的小范围内求解DSR,不考虑DSR边界较远处的情况也不会带来明显的误差。

在大范围搜索求得的DSR边界,用于MΩ(y)计算时,有时会带来较大的误差,这时在小范围内求解DSR就显得十分必要。

以图3中二维平面上的简单情况说明DSR边界小范围搜索的必要性。

对某一给定故障,假设系统的DSR真实边界为一段圆心为(-6,-6)、半径为10的圆弧QHP,2个节点注入功率y1、y2都服从N(1,0.052)的正态分布且相互独立,即运行点为S(1,1),y1、y2的联合概率分布密度函数为

φ(y1,y2)=π200exp姨-200姨(y1-1)2+(y2-1)2姨姨(6)

通过数值积分可求得运行点落到弧外的概率为MΩ*=0.101 3,此即给定故障下系统不安全概率测度的真实值。

对运行点S而言,计算给定故障下系统不安全概率测度时,离S最近的点H附近的DSR边界最重要,用直线近似表示DSR边界时,这个直线要用H附近的区域如弧BHC近似,得到直线HP1。用HP1近似表示真实的边界计算MΩ时,误差不大。

在大范围内用直线近似表示边界时,传统方法得到的近似直线HP2不能较好地反映离运行点S最近的点H附近的边界面情况,因而用HP2代替真实边界面计算MΩ时,会带来较大的误差。

用不同范围的弧上拟合得到的近似边界直线计算给定故障下系统不安全概率测度MΩ,结果列于表2和图4中。

表中误差ξ定义为

从表2和图4可以看出,在失稳边界的大范围拟合超平面得到的系统不安全概率测度与真实值之间存在很大的误差,在小范围内拟合时,误差较小,在θ≈15.9°的小范围拟合时,接近真实值。

以上分析说明,针对求解系统故障后的不安全概率测度问题,在距离运行点最近的小范围内求解DSR边界是必要的。

2.3 小范围DSR搜索范围估算

在小范围内求DSR可减小系统不安全概率测度的计算误差,但小范围的确定需要研究。为此,定义视在距离的概念:

其中,ds为式(1)表示的超平面HP上任意一点B到不在HP上的点S(y1,y2,…,yn)的视在距离,yi~N(μi,σi2),i=1,2,…,n;ks=z/d0,z由式(5)计算得到,d0为点S到超平面HP的几何距离;d为点B到点S的几何距离。

同时定义点S到超平面HP的视在距离为ds0=z。

视在距离ds粗略反映了运行点S到DSR边界上任意点B的溢出失稳距离,可用于估算小范围DSR的搜索范围。

对给定故障及故障切除时间t以及运行点S,首先初步估算DSR的边界超平面HP0,计算z、d0、ds0、ks;给定边界判定系数λ(这里取2%),计算小范围边界点上对应的Φ(ds)=λΦ(ds0),得到相应ds。对于更远的点,忽略其影响;根据得到的ds,换算成几何距离d,由式δ=arccos(d0/d),进而求得小范围搜索空间角δ(在多维空间中,空间角度指空间各种位置的平面角,所以空间角的计算转化为平面角计算[12],而δ是相交向量的夹角,故δ表示平面角。

用该方法对2.2节中的例子进行验算,得到小范围空间角δ=22.8°,在此小范围内搜索得到DSR边界的近似直线表示,代入式(4),得到系统不安全概率测度为0.1024,与真实值MΩ*=0.101 3的误差只有1.1%,说明所提估算搜索小范围的方法可行。

2.4 小范围改进解析搜索方法

改进解析法计算速度快,计算结果误差不是太大,因此在进行小范围的DSR搜索时应用改进解析法。小范围改进解析搜索法的搜索过程如图5所示。

定义2个超平面的系数误差如下:

其中,aij-1、aij分别是第j-1次和第j次搜索到的超平面系数,yi为运行点S的注入功率,err为2个超平面的系数误差。

小范围改进解析搜索法的步骤如下。

步骤1根据经验确定一个搜索方向,搜索到一个初始临界点,应用实用解析法得到初始超平面。

步骤2从运行点向超平面做垂线,在运行点和垂足连线方向上搜索新的临界点,在新点处应用实用解析法求得新的超平面初值。

步骤3对所有搜到的临界点应用改进解析法得到新的超平面。

步骤4判断最近得到的2个超平面的系数误差err是否小于给定误差限ε或搜索次数是否超过设定的最大值m。如果结果为真则执行步骤5,否则回到步骤2。

步骤5用2.3节的方法估算搜索小范围。

步骤6在确定的小范围内搜索新的临界点,达到需要的个数后,应用改进解析法计算得到小范围的DSR边界超平面。

3 算例分析

本文以10机39节点系统[15]为例来说明DSR小范围搜索法的有效性。10机39节点系统接线图如图6所示。

假设线路16-21上节点16处发生三相金属性短路故障,故障清除时间为100 ms。节点注入功率如表3所示(new表示新英格兰10机39系统节点,后同),基准功率值为100 MW。表中,取发电机节点σi=3%μi,负荷节点σi=5%μi。取接在母线31上的发电机为平衡机。设ε=2%。

此算例使用小范围改进解析搜索方法过程中,由2.3节的方法得到小范围搜索空间角δ=8.3°,在此小范围内搜索得到DSR边界的近似直线表示,代入式(4),得到系统不安全概率测度为0.0257。

同时,将传统的方法在大范围内用可信的拟合法(大范围拟合法)和本文提出的小范围改进解析法计算DSR边界超平面做比较,并且为了检验小范围改进解析法的误差,在小范围解析法确定的小范围内采用拟合法再计算一次DSR边界超平面,以之作为检验基准。3种方法的计算结果见表4(表中,方法1、2、3分别代表大范围拟合法、小范围拟合法和小范围改进解析法,后同)。

3种方法计算出的系统不安全概率测度、计算误差、计算时间分别列于表5中。计算时间是在普通PC机上测试的时间。

由3种方法的计算结果比较可知,大范围拟合法得到的系统不安全概率测度明显偏大;在小范围内采用拟合法的计算结果相对于其他2种方法更接近真实值,因而可以作为检验其他方法误差的基准,但其计算量与大范围拟合法相同,对大系统不实用;提出的小范围改进解析法的计算结果与小范围拟合法十分接近,误差只有4.5%,且计算量小,只有拟合法的14.3%,说明所提小范围改进解析搜索方法是合理可行的。因此,DSR的小范围改进解析法为电力系统概率不安全指标计算和电力系统概率安全评估提供了快速有效的新途径。

4 结论

针对电力系统概率不安全指标计算,基于正态分布函数的快速衰减特性,提出了电力系统DSR的小范围搜索方法。首先用实用解析法和改进解析法在大范围内搜索得到DSR边界超平面的粗糙估计值,在此基础上,根据经验估算搜索的小范围,在这个小范围内利用改进解析法计算DSR边界的近似超平面。

动态搜索 篇8

RFID系统在客观应用时,读写器范围内出现多个标签同时识读的现象是很普遍的。这就会导致多个标签同时向读写器传输数据而产生碰撞,进而致使读写器接收数据失败。因此,多标签碰撞问题[1]是RFID系统进行广泛应用的难点和瓶颈所在,应当给予重点研究。

2. RFI D系统防碰撞算法分析

2.1 算法分类

目前,解决多标签碰撞问题的方法有多种。在无线电技术中,通常有四种:时分多址(TDMA)法、码分多址(CDMA)法、空分多址(SDMA)法、频分多路(FDMA)法。而对RFID系统来说,时分多址法是目前应用最为广泛的方法。时分多址[2]法从形式上又分为标签控制法和读写器控制法两类。这两类方法又包含多种防碰撞算法,如表1所示。

2.2 典型读写器控制法分析

从应用的角度考虑,对于存在大量待读标签的情况,二进制搜索算法比Aloha算法识别的准确性和效率要高。下面对读写器控制法中的各类二进制算法加以分析比较。

(1)二进制搜索算法

二进制防碰撞算法[3]的基本思想是将发生碰撞的标签分成左右两个子集0和1,先查询子集0,若没有冲突,则正确识别标签,若仍有冲突则再分裂,把子集01分成00和01两个子集,依次类推,直到识别出子集0中的所有标签,再按此步骤查询子集1。

该算法实现的关键在于:(1)要RFID系统同步,对于每个标签,都需要一个附加机制以产生随机数。(2)须有合适的位编码法(如曼彻斯特编码),以能识别出读写器中数据碰撞的比特的准确位置。(3)用标签序列号(EPC ID)唯一的特性[4]。(4)计一组有效的指令规则,高效、迅速地达到选择标签的目的[4]。

(2)动态二进制搜索算法

该算法是在二进制搜索算法基础上对数据传送时间进行缩短改进以提高效率的一种算法。其算法原理[5]是把数据分成两部分,收发双方各自传送其中一部分数据,当标签ID与查询前缀相符时,标签响应只发送其余的比特位,把传输的数据量减小到一半,达到缩短数据传送时间的目的来提高读取效率。

(3)跳跃式动态树形防碰撞算法

该算法在性能上均优于二进制搜索算法与动态二进制搜索算法。根据碰撞时的特点,跳跃式前后搜寻。识别N个标签,共需要问询2N-1次[6]。与二进制搜索算法主要有三点区别:

(1)在一个标签的EPC被识别后,跳跃式反碰撞算法的过程不是二进制搜索算法的重复[4]。阅读器发送的下一个代码所识别标签所在节点的父节点代码。

(2)在阅读器开始发送问询命令时,只发送代码“1”而不是发送与标签EPC等长的全1代码[4]。

(3)在下一个问询命令中,阅读器只发送若干位,而不像二进制搜索算法那样发送全位EPC值。

2.3 文献[4]算法分析

文献[4]中,提出了一种反碰撞改进算法。该算法在基于二进制搜索算法与跳跃式动态树形反碰撞算法约定的基础上,增添了两点不同的约定。其中一点约定是:由于二进制位上的取值具有相互排斥特性(非1即0),所以假如只有一位二进制位发生碰撞,则阅读器不需要发送请求命令而能够自动识别出这两个标签。但是,从技术实现的角度来讲,识别时还是需要对这两个标签进行一次辨别。否则,读写器本身是无法识读的。为此,该算法对文献中8个标签识读重复搜索的次数应当是9次。不过,该算法较其它典型的二进制算法性能优越很多。其最大优越性在于,由0与1的反复置换中,增大了与问询标签序列号相吻合的几率,从而大大缩短了查询的时间,减少了查询的次数,提高了检测效率。但由于该改进算法的目标是当碰撞连续发生时提高标签的识别速度,故其局限性在于,只适合标签碰撞位连续的情况。

3. 基于跳跃式动态树的二进制搜索改进算法

改进算法是受文献[4]中算法约定思维的启迪,在融合二进制搜索算法、跳跃式动态树形反碰撞算法、轮询法三种算法的思想和原理的前提下,提出的一种算法。与动态二进制搜索算法分两部分传输数据的原理不同。较文献[4]中算法在碰撞位状态上有所扩展。

3.1 算法提出

与二进制搜索算法和跳跃式动态树形防碰撞算法相同。需存在以下约定:(1)使用曼彻斯特编码。目的使读写器能够准确发现碰撞的比特位置。(2)要求所有标签能够在同一时刻响应阅读器的问询,以便标签能够同步发送它们的EPC值给读写器。(3)引入以下四个命令:第一个是请求命令。读写器发送一序列号(EPC值)作为请求命令进行询问。当标签序列号小于或等于请求命令序列号时,则回送其序列号给读写器。第二个是选择命令。读写器收到标签的EPC值后,若无碰撞发生,读写器就会选择这个标签,进行数据的传送。第三个是读写命令。根据读写命令来处理存储在标签内部的数据信息[4]。第四个是屏蔽命令。将已经读取到的标签进行屏蔽,使标签不在回应读写器的请求命令。

算法原理:首先,读写器发送问询代码“1”进行询问,让所有标签响应以确定所有碰撞位。而后,将所有碰撞位置0,将此EPC值作为下一步请求命令。无碰撞读标签并将其屏蔽。若存在碰撞,按照比特位由低到高的顺序,对碰撞位进行X个“1”(这里,X值由1-N,N为发生碰撞的位数)的全排列轮询,每一个排列序列号(EPC值)就是下一次的请求命令。在执行置0或置1全排列轮询的过程中,无碰撞读标签并将其屏蔽。若发生一位碰撞,在保持该排列序列号不变的基础上,将碰撞为置1,作为下一次的请求命令,即可读取标签并将其屏蔽。随后,继续执行碰撞位置1的全排列轮询,直至读取识读范围内的所有标签为止。

3.2 算法工作流程

(1)标签进入读写器的识读范围后,读写器发出发送问询代码“1”进行询问,让所有标签响应以确定所有碰撞位。将所有碰撞位置0,将此序列号作为下一个请求命令。(2)置0后,执行请求命令,无碰撞,依次执行选择命令、读写命令、屏蔽命令。(3)有一位碰撞,碰撞位置1,将此序列号作为请求命令。而后对标签依次执行选择命令、读写命令、屏蔽命令。(4)对碰撞位按照比特位由低到高的顺序,执行置1全排列。首先,将一位“1”在碰撞为做全排列轮询。无碰撞,读取标签。发生一位碰撞,碰撞位置1读取标签。一位置1全排列完成后,将“11”在碰撞位进行全排列。如此循环,一直完成N位(N为发生碰撞的位数)置1全排列,直至读取读写器范围内的所有待读标签为止。

4. 性能比较

防碰撞算法的最终目的是为了提高识读标签的速度与准确性,以完成读写器与标签之间数据的传送。下面通过具体的示例来进行算法性能的比较分析。

示例一:碰撞位连续的情况

有8张标签卡[4],序列号分别是:卡1:10000010;卡2:10001010;卡3:10010010;卡4:10011010;卡5:10100010;卡6:10101010;卡7:10110010;卡8:10111010。

改进算法识读过程:

第1次,读写器发出发送问询代码“1”进行询问,标签响应后读写器收到碰撞序列号为:10★★★010,可知第3、4、5位发生连续碰撞。将其均置为0,并将序列号(10000010)作为下一次请求命令。

第2次,读写器发出发送问询代码“10000010”进行询问。这时只有卡1响应,读写器对卡1完成选择、读写、屏蔽的过程。而后,对碰撞位按照比特位由低到高的顺序进行一位置1全排列轮询。首先得序列号(10001010),将其作为下一次请求命令。

第3次,读写器发出发送问询代码“10001010”进行询问。这时只有卡2响应,读写器对卡2完成选择、读写、屏蔽的过程。这时,继续执行一位置1全排列轮询。得序列号(10010010),将其作为下一次请求命令。

第4次,读写器发出发送问询代码“10010010”进行询问。这时只有卡3响应,读写器对卡3完成选择、读写、屏蔽的过程。这时,继续执行一位置1全排列轮询。得序列号(10100010),将其作为下一次请求命令。

第5次,读写器发出发送问询代码“10100010”进行询问。这时只有卡5响应,读写器对卡5完成选择、读写、屏蔽的过程。至此,一位置1全排列结束,读写器将按照比特位由低到高的顺序进行二位置1全排列轮询。得到序列号(10011010),将其作为下一次请求命令。

第6次,读写器发出发送问询代码“10011010”进行询问。这时只有卡4响应,读写器对卡4完成选择、读写、屏蔽的过程。这时,继续执行二位置1全排列轮询。得序列号(10110010),将其作为下一次请求命令。

第7次,读写器发出发送问询代码“10110010”进行询问。这时只有卡7响应,读写器对卡7完成选择、读写、屏蔽的过程。这时,继续执行二位置1全排列轮询。得序列号(10101010),将其作为下一次请求命令。

第8次,读写器发出发送问询代码“10101010”进行询问。这时只有卡6响应,读写器对卡6完成选择、读写、屏蔽的过程。至此,二位置1全排列结束,读写器将按照比特位由低到高的顺序进行三位置1全排列轮询。得到序列号(10111010),将其作为下一次请求命令。

第9次,读写器发出发送问询代码“10111010”进行询问。这时只有卡8响应,读写器对卡8完成选择、读写、屏蔽的过程。至此,所有标签识读完毕。

其它算法识读:跳跃式动态树形防碰撞算法根据其算法规律可知识读次数为15次。动态二进制搜索算法识读次数为28次。二进制搜索算法将会更多。文献[4]改进算法识读次数为9次。

示例二:碰撞位不连续的情况

有3张标签卡,序列号分别是:卡1:11010111;卡2:11010101;卡3:11111101。

改进算法识读过程详见表2所示。

其它算法识读:跳跃式动态树形防碰撞算法根据其算法规律可知识读次数为5次。动态二进制搜索算法与二进制搜索算法识读次数分别为7次和9次。

由上述示例可知,不同标签数各种算法对两个示例的识读次数比较见表3所示。

由表中显示的数据可以看出:对于相同数量的标签在识读时,改进算法的识读性能比上述四种算法均优越。当标签数量增大时,改进算法的识读次数增加幅度不大,而其它算法的增加幅度都比较大。并且改进算法识读次数相对于标签数量的增加幅度也是最少的。同时,改进算法对于标签碰撞位连续和不连续的情况都适合。

5. 结束语

本文提出的改进算法是基于二进制搜索、跳跃式动态数形防碰撞算法基础上改进的一种多标签识别防碰撞算法。它是将二进制的分群(0和1)、跳跃式的初始碰撞位检测及序列号轮询进行融合,并渗入数学中的全排列方法原理,提出的一种算法实现。

该算法的最大优越性在于:一次性检测碰撞,以后一直进行序列号置1的全排列轮询,不用重复进行碰撞位检测,从而大大缩减了防碰撞检测的时间;对标签碰撞位连续与不连续情况均适用,实际应用性强;更适宜对大量的标签进行读取识别,并能够有效的缩短识读时间;不仅可应用于多标签防碰撞的识别上,而且由于其识读次数与与标签数相差不大,识别速度快,还有望应用于检测标签(物体)的数量上。这些对提高RFID系统的防碰撞性能显得尤为重要。

参考文献

[1]Klaus Finkenzeller,RFID-Handbook Fundamentals and Applications in Contactless Smart Cards Identification[M](2nd Edition),2003.

[2]L.Burdet,RFID multiple access methods[A],Technical Report ETH Zurich,2004.

[3]Vogt H,Mutiple Objet Identification with Passive RFID Tags Systems,Man and Cybernetics[A].2002IEE International Conference,2002:6-9.

[4]王亚奇,一种改进的RFI D系统反碰撞算法[J].单片机与嵌入式系统应用,2007,(9):16—17.

[5]李兴鹤,胡咏梅,王华莲等,基于动态二进制的二叉树搜索结构RFI D反碰撞算法[J].山东科学,2006,19(2):51—55.

上一篇:信息通信行业下一篇:电工学实验教学