第3章 基于划分-测试-扩展的实值检测器生成算法

来源:互联网 发布:淘宝实名认证帐号 编辑:程序博客网 时间:2024/06/06 05:05

第3章 基于划分-测试-扩展的实值检测器生成算法

      本章旨在改善PT-RNSA算法的性能,在划分-测试的基础上引入了扩展策略,提出了基于划分-测试-扩展的实值检测器生成算法(PTS-RNSA:Real-Valued Detector Generation Algorithm based on the Partition-Test-Spread Proess),并通过实验将其与PT-RNSA算法以及V-detector算法做了对比,取得了不错的效果。

3.1  PT-RNSA算法的缺陷及其改进方法

      PT-RNSA算法具有成熟检测器生成代价低,成熟检测器无交叉,非我空间被均匀覆盖等优点。但是,该算法也有其明显的不足之处,主要在于,要达到一定的检测率,其所需要生成的成熟检测器数目往往很多。

      本节提出了PT-RNSA算法的一种改进思路,在保持PT-RNSA算法原有优势的同时,通过引入扩展策略,提出了基于划分-测试-扩展的实值检测器生成算法(PTS-RNSA),在不降低检测器集覆盖率的前提下,减少了所需的成熟检测器数目,提高了算法的性能。

      图3.1给出了PTS-RNSA的核心思想。

 

1.         初始化:将整个表示空间看作一超长方体,并将其作为候选超长方体(候选检测器)。

2.         划分:  将超长方体均匀划分成一些更小的候选超长方体。

3.         测试:  判断这些候选超长方体是否与自我集合相交;如果所有的候选超长方体都与自我集合相交,则转到第2步,对每一个候选超长方体进行再次划分;否则,转到第4步。

4.         扩展:  对于不与自我集合相交的候选超长方体,尽可能大的扩展其覆盖范围。扩展以

后,各候选超长方体覆盖范围被更新。对每一个更新后的候选检测器,如果其不与自我集合相交,则视之为成熟检测器,否则,转到第2步,继续划分与自我集合相交的候选检测器。

图3.1  PTS-RNSA核心思想

 

      根据图3.1的描述可得知,PTS-RNSA主要分为三个过程:划分过程、测试过程与扩展过程。区别于PT-RNSA,PTS-RNSA在保留划分过程与测试过程的基础上,增加了扩展过程。扩展过程,主要用来增加成熟检测器的覆盖范围,减少成熟检测器数目。需注意的是,扩展过程完成后,一些相邻的候选检测器有可能被合并成。而且,扩展过程完成后,与自我集合相交的候选检测器的覆盖范围将可能有所减少。

      图3.2给出了PTS-RNSA在二维空间中的划分-测试-扩展过程的示例,直观显示了PTS-RNSA的划分、测试以及扩展思想。其中,黑色区域为自我,空白区域为非我,空白长方形为候选检测器,浅颜色的长方形为成熟检测器。

 

 

       图3.2(a)是初始的候选检测器,与自我集合相交。因此,根据PTS-RNSA算法,它被均匀划分为四个小长方形,如图3.2(b)。然而,这四个小长方形均与自我集合相交,所以每个小长方形将被进一步划分。图3.2(c)-图3.2(n)依次描述了这一划分-测试-扩展过程。

      图3.2(c)-图3.2(e)表示的是左上角的小长方形划分-测试-扩展过程。图3.2(c)是划分过程,图3.2(d)是测试过程,图3.3(e)是扩展过程。

      在图3.2(c)中,左上角的长方形被均匀的划分成四个小的长方形,在图3.2(d)中,这四个小的长方形被分别测试是否与自我集合相交,在图3.2(e)中,将不与自我集合相交的长方形的覆盖范围尽可能的扩展,最后生成2个成熟检测器。而与自我集合相交的长方形则在其覆盖范围被缩小后留待进一步划分。

      图3.2(f)-图3.2(h),图3.2(i)-图3.2(k),图3.2(l)-图3.2(n)描述了类似的划分-测试-扩展过程。

 

3.2  二维空间中扩展策略

       一个候选检测器被均匀的划分成四个子候选检测器后,按照子候选检测器与自我集合相交的个数,可以分为以下四类情况:

A、划分成的四个子候选检测器中只有一个与自我集相交。

B、划分成的四个子候选检测器中有2个与自我集相交。

C、划分成的四个子候选检测器中有3个与自我集相交。

D、划分成的四个子候选检测器中有4个与自我集相交。

      在D类中,候选检测器所划分成的四个子候选检测器均与自我集相交,根据PTS-RNSA, 将每一个子候选检测器再次划分。在另外三类中,每一类均包含几种小情况,对每一种情况均采用扩展策略分别对其做出适当的扩展。

     由候选检测器划分而成的四个子候选检测器,按顺时针方向,将四个子候选检测器分别标记为W1、W2、W3、W4。

     本节其余部分将专门介绍对于每一类所采用的扩展方案。

 

。。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。。

      由于图片太多了 在此省略具体分析部分 :》

 

3.3  PTS-RNSA在二维空间的实现

      图3.10 描述了PTS-RNSA 算法在二维空间中实现的伪代码。PTS-RNSA与PT-RNSA的主要区别在于:PT-RNSA 对由候选检测器划分而来的子候选检测器,首先进行一一测试,如果不与自我集相交,则立即看作为成熟检测器,如果相交,则继续划分;而PTS-RNSA 在对这些子候选检测器进行测试后,并不立即把它作为成熟检测器或将其划分,而是根据这些候选检测器与自我集的相交情况,采取相应的扩展策略,扩展以后再将与自我集不相交的子候选检测器者作为成熟检测器,相交者则继续进行划分-测试-扩展过程。

 

 

d: 表示一候选检测器,d =<c, r>

c: 检测器的中心点,c = <cx, cy>

r: 检测器的中心点到各维边界上的距离,r=<rx, ry>

r0: 预定义的最小的检测器中心点到各维边界上的距离

D: 成熟检测器集合

Q: 队列数据结构

Si(1≤i≤4):表示第i个子候选检测器是否与自我集相交,FALSE表示不相交,TRUE表示相交。

Num:表示有几个子候选检测器与自我集相交。

vi(1≤i≤4):表示与第i个子候选检测器相交的自我个体序列。

1.         PTS-RNSA( )

2.         {

3.         初始化:d =<c, r> 设置候选检测器的初值,使其能够覆盖整个问题表示空间;

成熟检测器集合D 置为空;

队列 Q 置为空队列;

4.         IF (候选检测器d 不与自我集合相交) THEN

5.           {

6.           D←D∪{d};

7.           RETURN;

8.           }

9.         EnQueue( d );// 将候选检测器 d 置入队列Q中

10.     WHILE (Q! = NULL )

11.       {

12.       d = DeQueue( Q );// 在队列Q中取出第一个元素并将之在队列中移除

13.       PTS-Detector( d );

14.       }

15.     }

16.     PTS-Detector( d ){

17.        IF ( r < r0 )  RETURN;

18.        将候选检测器 d 均匀的划分成四个子候选检测器 di (1≤i≤4);

19.        S1=S2=S3=S4=FALSE;

20.        num=0;

21.        FOR each di (1≤i≤4)

22.          IF (di 与自我集相交) {

23.             Si=TRUE;

24.             num++;

25.             在vi中保存与第i个子候选检测器相交的自我个体序列;

26.          }

27.        Switch(num){

28.         Case 1: 根据S1S2S3S4值的情况,决定执行A类哪种具体的扩展方案

29.         Case 2: 根据S1S2S3S4值的情况,决定执行B类哪种具体的扩展方案

30.         Case 3: 根据S1S2S3S4值的情况,决定执行C类哪种具体的扩展方案

31.        }

32.        FOR each di (1≤i≤4)

33.          IF (di!= φ) {

34.             IF(di 不与自我集相交)

35.               D←D∪{ di };

36.             ELSE

37.               IF(di不被任何自我个体完全覆盖)

38.                   EnQueue(di );

39.          }

40.     }

图3.10  二维空间中PTS-RNSA算法实现伪代码

 

        图3.10 描述了PTS-RNSA在二维空间中实现的伪代码。

 

 

。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。

      实验数据太多了 在此省略  呵呵 。。

 

 

原创粉丝点击