信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

解析一下“搜索”这类操作

已有 2895 次阅读 2011-10-16 12:33 |个人分类:基因软件开放实验室|系统分类:科研笔记| 搜索

搜索是一类非常重要的智能的操作。
搜索的目的就是要在一大群对象中,寻找符合某类搜索条件的一小群对象出来。
所以,搜索的要件是:
1.搜索源对象群
2.搜索条件
3.搜索目标对象群
 
在深入到“搜索”行为内部进行探索之前,先来探究一下,为什么需要搜索?
从搜索的作用看有:
一.系统构建性需求,一般来说是要在搜索出来对象之间建立或解除关系,可分为三种情况:
1.建立原来没有的关系,这种情况是系统构建的资源结合需要;
2.解除原有某种关系,这种情况是系统维护的资源释放的需要;
3.先建立关系,产生作用后,又立即解除关系;这种情况是系统运行的操作工具的需要。
二.系统评估性需求,就是对搜索出来的对象进行统计分析,去评估或发现系统的状态,然后再根据状态是否需要改变来决定对系统是否需要进行怎样的下一步操作。
 
从搜索的主体来看有:
  • 主体搜索:执行搜索操作是关系主体的一方,是主体对客体对象群进行搜索利用或监控操作。
  • 中介搜索:执行搜索操作的是中介服务方,为不同的搜索服务请求方进行寻找匹配的服务。
主体搜索可以通过请求中介搜索方式来实现,就可以让主体不必自己拥有搜索功能。
 
为了使搜索行为尽量和搜索的主体和作用需求无关,搜索的功能应该赋予给集合对象本身,集合对象为其他对象提供对自身的搜索服务,应该是最基本的功能部署的定位。当然,集合对象多是、但也不一定必须要是线性集合对象,也可以是有自身特殊组成结构和行为的对象。其他对象可以向集合对象征询:您这有这样的对象吗?这时,集合对象就启动对自身的搜索。
 
假设所有的搜索行为都是通过这样的部署来实现的,那么,我们建立了多少个可提供搜索服务的集合对象,我们就能提供多少种搜索的服务。我们只要为可能需要的搜索服务构建相应的集合对象就可,不同类型的搜索服务,可能面向的集合对象就不同,我们可以定制新的搜索类型,就可以定制新的集合对象。
 
搜索的第一个问题就是:搜索的需求者,如何知道他想找出的对象,就一定隐藏在某一个对象集合中呢?有什么办法可以不用遍历每个支持搜索的集合对象,就能直接选中要在其中进行搜索的集合对象呢?是否可以用“约会”方式?大家约好为了同类的需求和能提供该类搜索的集合对象,到同一个“地点”相会,或许是个办法。于是,我们设计很多不同类型的“约会地点”就可以了。
 
选定了搜索的源集合,接下来就是实施搜索,搜索需求者对实施搜索当然想又快又准,不过,在搜索需求本身一开始也不是十分明确的时候,可能反而需要搜索能模糊一点,但,还是越快越好。
影响搜索效率的因素可分为如下方面的因素:
1.搜索条件的复杂程度;
2.集合对象的规模大小和“结构关系与搜索条件的契合度”;
3.搜索方法的有效性;
搜索的效率一般用找到目标对象所需要的比较次数来衡量。因为,我们通常是用比较目标对象和搜索条件的方法来选出目标对象的。而这类搜索的主要开销,就在于将选择的对象的属性和搜索条件所规定的属性特征进行比较,得到所选择对象与搜索条件的吻合程度,根据吻合程度来决定,所选对象是否应该纳入到搜索目标对象集合中。
 
  • 搜索条件的复杂度,主要是从搜索条件中子条件的多少以及子条件之间的逻辑关系的多少,搜索条件越复杂,意味着搜索时对选中对象需要进行的比较和逻辑计算量越多。所以,搜索的效率就会越低。
  • 集合对象的规模是指集合对象中包含待选对象的个数多少,显然,一般来说,百里挑一比万里挑一要快。
  • 集合对象的结构关系与搜索条件的契合度是对集合对象本身的结构秩序对搜索的影响因素的统称。用一个比喻是:在一个街道规划清晰的城市中去找一个房子,比在街道规划混乱的城市中去找一个房子要容易一些,当然就会快一些。和搜索条件的契合度是指集合对象的结构关系,正好是按搜索条件的属性条件一致,则搜索快,不一致,就需要变换查找,就慢了。比如,在街道规划清晰,建筑物特征相似的城市中,给出门牌号条件找房子可能比给出建筑特征条件去找房子就容易些,快些。
  • 搜索方法主要是指搜索路径的选择。用怎样的方法来决定选择搜索的路径。在集合对象结构和搜索条件一定的情况下,最短路径总是存在的,此时,决定一个搜索行为是否走在最短的路径之下,当然取决与搜索方法所采用的路径选择方法了。我们常听到的所谓“哈密顿路径”就是所谓最短路径的含义。尽管“寻找哈密顿路径”和“寻找目标对象”在任务目标和已知条件上有些微妙的区别,但路径选择机制对搜索效率的影响是相似的。通常,我们在一个顺序集合中采用二分搜索,就比顺序搜索要快好多。

当然,上述的三个搜索效率的影响因素并不是各自孤立的,它们之间还存在关联性。所以,就可能存在通过精巧的设计,在三个方面形成某种配合,使得搜索效率较高,但通常,这样设计精巧的搜索机制,在适应面方面可能又引入了一些约束,使得搜索机制的通用性降低。

总的来说,基于比较操作构建的搜索机制,是一种“临时去发现”的机制。这种机制不管如何设计精巧,始终是一种“线性”的机制,即搜索消耗和搜索任务复杂度成正比的机制。有没有更好的可实现的机制呢?也就是搜索的消耗和任务复杂度不一定是线性的搜索机制呢?

高等生物的记忆和唤醒机制似乎就是一种非线性的搜索机制。

针对视觉加工和识别的生物机制的科学研究给出了2种猜测:
一个可能性就是一个细胞网络加工一个场景中不同块的信息并且将它拼凑起来形成一个能够理解的画面。
另一种极端的可能就是,大脑含有一个独立的神经元来识别每个物体。神经生物学家Jerome Lettvin将这种细胞命名为“祖母细胞”,意思为大脑含有一种能够识别自己祖母的特殊细胞。
不管实际的神经搜索机制内部是什么结构的,从“黑盒”的角度来看,视觉加工和识别的生物机制与基于递进的比较机制应该是不同的。当我们瞬间认出一张人脸时,应该不会存在将大脑中储存的所有人脸图像一一比较的过程——除非我们真的这样做,但往往我们需要这样做的时候,正是我们不能瞬间认出一张人脸的时候,这样做也往往不会奏效。
当我们陈述为什么能够一下子认出某张脸的理由时,我们总是可以说出这张脸和其他普通的脸所具有的独特的特征,一定是少数几个甚至唯一的一个与众不同的特征,曾经在记忆中留下了深刻的印记,当这个特征再次出现,留下印记的神经元被“感应式”地唤醒,而不是经过对所有神经元搜索一遍,才发现某个神经元存有特殊的记忆。
 
是否存在或能够实现“感应式”的搜索?
最近WEB上比较流行的一种搜索方式是标签的方式,给文章加上某些标签,那么,读者只需要点击自己关心的标签,就能立即把带有这些标签的文章列出来。看上去很像是文章和标签实现了关联的“感应”,而且,由于标签是作者自己选择的,一定和文章的语意有密切联系,因此,点击查看的读者,一般都能找到自己的兴趣文章。
这种看上去是一种“感应”方式,实际是前面提到的一种“约会”方式的深入应用。是供方主动提供搜索条件提示的方式,“感应”实际发生在读者头脑对标签的反应上,而不是搜索方法上。所以,不算是真正的“感应方式的搜索”。但给实现感应方式的搜索,提供了启发。
 
要实现真正的“感应式搜索”,可能需要实现我前段时间得到的“立体逻辑”的灵感。
搜索的不同逻辑条件可以看成是来自不同的逻辑维度,多个逻辑条件的组合,类似组成了一个立体的逻辑空间。被搜索的对象应该分布在这个逻辑空间的点上。改变逻辑条件的值,就相当于修改逻辑维度上的座标值,与其他逻辑维度的改变可以并发的进行,如果被搜索的对象本来就是分布于这样的立体逻辑空间中的的话,那么,搜索的结果,直接就是逻辑条件组合划定的逻辑空间中的对象了,似乎不需要进行任何的比较搜索。只要对象早先是按照逻辑空间进行分布的即可。
 
这种方式似乎可以实现即刻的搜索感应,并不需要做任何的比较,搜索条件本身就圈定了符合条件的对象。要是实现了,真还有点神奇。
可实现吗?有可能能实现的,实际上,要完成一个搜索,被搜索对象是否符合条件的判断是永远也少不了的。立体空间感应式搜索只是把这个判断提前到被搜索对象早先需要进行的位置分配的过程上去了。使得在搜索执行时,不再需要临时的比较判断,提高搜索效率。这相当于是把约会搜索模式推广到了立体空间上,实现了“立体空间约会”。
 
有点意思了。
 
所以,如果我们把搜索转换为是一种“约会”的话,搜索任务,就转化为如何设计约会空间了。被搜索的对象已经提前在那里等着搜索者了,搜索者只要按自己的兴趣选择到约会空间的不同区域,就找到了要找的对象。


https://wap.sciencenet.cn/blog-33982-497423.html

上一篇:也谈企业基因
下一篇:字符的形式化语义编码
收藏 IP: 112.91.148.*| 热度|

2 洪昆辉 zzjtcm

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 04:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部