专利名称:一种检测器的生成和检测方法
技术领域:
本发明是将生物免疫系统的各种优良特性应用于计算机系统中,主要用于解决计算机病 毒防治、网络入侵检测等实际问题,属于生物信息学和计算机科学的交叉技术领域,具体涉 及一种检测器的生成和检测方法。
背景技术:
免疫系统保护机体免受外部细菌、病毒等的侵袭,能够识别外来细胞或分子,然后从机 体内消除这些有害物质,同时观察身体内异常细胞的出现,并清除己经变异的细胞。免疫细 胞所面临的首要问题是如何定义自体/非自体,并进行识别。自体/非自体的识别是一种高效 率模式识别问题。
目前,人工免疫系统的研究包括非自体的识别机制与免疫网络理论两大类,其中最为重 要的是1994年,美国新墨西哥大学教授Forrest等人模拟生物免疫系统中T细胞的产生与作 用机制时所提出的否定选择方法(NSA),其中检测器的生成是否定选择方法的关键步骤之一。 各国科学家针对人工免疫系统中抗体和抗原的不同表示方式和匹配规则,设计了不同的检测 器生成方法。
根据匹配阈值r和检测器长度/是否发生改变,我们可将否定选择方法中检测器的生成方 法分为三大类
(1) r和/均不发生改变的检测器生成方法.
Forrest等人使用的是穷举检测器生成方法,该方法是一种很耗时的方法,其时间复杂度
和空间复杂度分别为o( —,二y, .乂)和o(/.Ag,其中&为匹配概率,i^为检测器匹配
失败概率,A^为自体集合大小。我们可以看出检测器的生成时间与自体集合的大小成指数关
系,并且容易产生冗余检测器。为了克服这些问题,Patrik等人在1996年提出了线性检测 器生成方法和贪心检测器生成方法,前者所耗时间分别与自体集合大小和检测器集合大小呈 线性关系,但与匹配阈值r呈指数关系,并仍有冗余;后者可消除冗余,但不能使检测器生 成时间最小化。
(2) r可变,/不变的检测器生成方法.
2004年,张衡等人提出了一种r可变的检测器生成方法。该方法减小了 "漏洞"数量和,使得检测器生成效率有所提高,但由于预检测器是随机生成的, 产生一个成熟检测器需要的迭代次数为^《(PD表示任意两个字符串匹配的概率,乂为
自体集合大小),其迭代次数与自体集合大小呈指数级增长,所需要的时间复杂度仍然很高; 当^</时,仍无法完全解决"漏洞"问题。
(3) /可变,r不变的检测器生成方法.
何申等人于2005提出了一种检测器长度/可变的检测器生成方法,该方法消除了 "漏洞" 区域,使得检测器的检测效率有所提高,但仍然存在冗余检测器问题,并且其检测器的生成 是基于L层的R叉树进行査找匹配的,所需要的时间复杂度和空间复杂度仍然很高。
综上所述,由于原先的抗原、抗体都是以难以处理的二进制字符串的形式表示的,所以 目前的检测器生成方法均不同程度地存在检测器生成效率低下、漏洞及冗余检测器问题。
发明内容
技术问题本发明的目的是彻底消除现有技术中生成检测器时存在的"漏洞"区域和冗 余检测问题,从而提高检测器的运行效率和识别非自体的能力,提供一种生成效率和检测效 率高的检测器生成和检测方法。
实现本发明目的的技术方案是 一种检测器生成和检测方法,包括
步骤l:基于数值区间检测器的生成包括条件设置,即设置以二进制字符串表示论域、 自体、非自体、抗原及抗体的规则,设置判断检测器与抗原是否匹配规则,设置每个成熟检 测器的区间;
步骤2:用检测器检测受保护的数据;
其特征是,所述匹配规则为对于任意字符串Z 当且仅当其对应的十进制
数值落在已定义的区间范围内时,为匹配。 上述步骤1中条件设置具体包括
① 论域设置由所有形为义=《%2 《 《(!' = 1,2广.,/,《e{0,l})的长度为/的二 进制字符串构成。
② 自体设置人工免疫系统中的合法信息,通常被表示成二进制字符串的形式。 非自体设置人工免疫系统中的非法信息,通常也表示成二进制字符串的形式。
③ 抗原设置进入人工免疫系统中的信息,包括自体抗原和非自体抗原。 抗体设置人工免疫系统经过自体耐受检査而产生的成熟检测器。④匹配规则对于任意二进制字符串义=《1「.《,当且仅当其对应的十进制数值落在
某个已设置成熟检测器的区间范围内时,称字符串与该成熟检测器匹配。
根据上面的定义,从一维空间的角度出发,产生基于数值形式的基于区间检测器生成方法。
所述成熟检测器区间设置包括下列步骤
步骤1:将长度为/的二进制字符串抗原、抗体转化为十进制形式的抗原、抗体,再将
2^和1J^对应的十进制值构成一个闭区间(即分别为区间的上、下界),此区间即为初 (个 /个
始检测器;
步骤2:将初始检测器与已知自体集合进行匹配检査,查找检测器中与自体匹配的点去 除,并将检测器区间从该点处划分生成两个子区间,添加到候选检测器集合;
步骤3:当已知自体集合中出现连续自体或重复自体时,对每次划分得到的子区间进行 整理、合并,即对候选检测器集合进行优化;
步骤4:重复步骤2-3,直到检测器不再与已知自体集合中的自体发生匹配为止,此时 生成的检测器集合即为成熟检测器集合。
所述步骤2进一步包括下列步骤
步骤①将需要检测的二进制字符串形式抗原转化为十进制数值;
步骤②按照匹配规则,将十进制形式的抗原与成熟检测器区间进行匹配检査;若发生匹 配,即判断抗原为非自体;否则为自体。
本发明基于数值形式的区间检测器生成方法,利用一维空间中的数值区间作为检测器, 参与系统的安全保护。本发明的方法不仅使得生成检测器的时间复杂度和空间复杂度比现有 检测器生成方法的时间复杂度和空间复杂度要低,而且彻底消除了 "漏洞"区域和冗余检测 器。
本发明将原先难以处理的二进制字符串转换成十进制的形式,即传统二进制字符串形式 表示的检测器就转变成数值区间,改进了检测器的生成效率和检测效率,有效提高了比较性 能。
有益效果
(l滩免了对r值的确定
现有的三类方法中匹配阈值r都是很难确定的,只有最佳的r值才能够在最小化检测器数 目的同时获得良好的识别能力。当r值较小时,将导致分类太粗,虽然单个检测器的识别能力较强,系统效率较高;如果r值过小时,会造成检测器无法通过自体耐受,不能生成成熟检 测器,容易产生大量的漏洞。当r值较大时,其分类较细,虽然有效减少了漏洞的数量,但需 要生成较多的检测器才能检测出同样数量的非自体,生成成熟检测器的代价较大;尤其当r值 过分大时,使得识别非自体所需要的检测器数量急剧增加,影响检测性能。所以,r值的确定 一直是传统的检测器生成方法未能很好解决的问题。而发明中提出的基于数值形式的区间检 测器生成方法恰恰避免了对r值的确定。
(2) 消除了 "漏洞"区域
现有的生成方法均不能满足无漏洞精确检测的要求。本发明提出的方法一开始就将二进制
串^5和iJL^l对应的十进制值构成的闭区间定义为初始检测器,这样长度为/的自体抗原
/个 汁
和非自体抗原全都落在该区间范围内。所以彻底消除了 "漏洞"。这是该方法的一个重要特 点。
(3) 消除了冗余检测器问题
在方法匹配过程中,当已知自体集合中出现连续自体或是重复自体时,可将已生成的候 选检测器区间整理、合并,最终得到互不相交的子区间。并且这些子区间检测器可识别出初 始检测器所能识别的所有非自体抗原。因此,经自体耐受训练并优化后的成熟检测器无须进 行冗余检测器的消除,有效提高了检测器的生成效率。
具体实施方式
. 下面结合实施例做进一步说明。
己知32位的二进制自体字符串(假设该卑包含了所有长度为/的自体)
00101000100100000100001010010011,将其分成长度为/ = 4的子自体字符串集合5,
S = {0010, 0101, 1010, 0100, 1000, 0001, 0010, 0100, 1001, 0010, 0100, 1000, 0000, 0000, 0001, 0010, 0100, 1000, 0000' 0001, 0010, 010,1010, 0100, 1001, 0010, 0100, 1001, 0011}。
将集合S中自体子字符串换用十进制数来表示,对应的子自体字符串集合可表示为
S = {2, 5, 10, 4, 8, 1, 2, 4, 9, 2, 4, 8, 0, 0, 1, 2, 4, 8, 0, 1, 2, 5, 10, 4, 9, 2, 4, 9, 3 } (1)检测器的生成
由于子字符串长度/ = 4,所以二进制形式的初始检测器区间范围从0000到1111,即[O, 15]。符合上例数域的初始检测器i ,:
。
按照上面方法的步骤2,我们将初始检测器《
中与集合S中的第一个自体"2"进行匹配,并去除匹配的点"2"。同时从匹配点"2"处将区间进行划分,形成候选检测器集 合/ 2:
和[3, 15]。
将候选检测器集合i^与集合S中的第二个自体"5"进行匹配,经过比较发现其落在[3, 15]区间内。根据方法则将区间[3, 15]中与自体"5"匹配的点去除,同时将区间从此处进行 划分,形成; 3:
, [3, 4], [6, 15]。
再将A与集合S中的下一个自体"10"进行匹配并进行划分。形成/ 4:
, [3, 4], [6, 9], [11, 15]。
接下来与检测器i^匹配的是自体"4",因为它与自体"5"连续,所以可将候选检测器整 理合并,生成&:
, {3}, [6, 9], [11, 15];……。依次重复。
在此过程中,每当出现重复自体或是连续自体时,都将产生的候选检测器集合进行整理、 合并,由上我们可以看出生成候选检测器的个数并没有随自体个数的增加而增加。
最终,我们得到成熟检测器集合为及[6, 7]和[11, 15], 二进制形式为[OllO, 0111] 和[IOII, llll]。 (2)检测受保护数据串
假设受保护数据串为长度/ = 4的字符串^: 0111, 1000, 0101, 1001,对应的十进制值
为7, 8, 5, 9。将其与生成的成熟检测器集合/ 进行匹配,按照匹配规则,发现只有7与 成熟检测器集合发生匹配,而5, 8, 9都不能与成熟检测器集合发生匹配。从而,我们可断 定只有7为非自体,而5, 8, 9均为自体。即受保护数据串中只有0111为非自体,而IOOO, 0101, 1001均为自体。
综上,我们可知基于数值形式的区间检测器的生成及其应用。
权利要求
1.一种检测器生成和检测方法,包括步骤1数值区间检测器的生成,包括条件设置,即设置以二进制字符串表示自体、非自体、抗原及抗体的规则,设置判断检测器与抗原是否匹配规则,设置每个成熟检测器的区间;步骤2用检测器检测受保护的数据;其特征是,所述匹配规则为对于任意字符串X=X1X2…Xl,当且仅当其对应的十进制数值落在已定义的区间范围内时,为匹配。
2、 根据权利要求1所述的方法,其特征是,所述成熟检测器区间设置包括下列步骤步骤1:将长度为/的二进制字符串抗原、抗体转化为十进制形式的抗原、抗体,再将22^5和U^i对应的十进制值构成一个闭区间(即分别为区间的上、下界),此区间即为初,个 '个始检测器;步骤2:将初始检测器与已知自体集合进行匹配,把检测器中与自体匹配的点去除,并将检测器区间从该点处划分生成两个子区间,添加到候选检测器集合;步骤3:当已知自体集合中出现连续自体或重复自体吋,对每次划分得到的子区间进行整理、合并,即对候选检测器集合进行优化;步骤4:重复步骤2-3,直到检测器不再与已知自体集合中的自体发生匹配为止,此时生成的检测器集合即为成熟检测器集合。
3、 根据权利要求1所述的方法,其特征是,所述步骤2进一步包括下列步骤步骤①将需要检测的二进制字符串形式抗原转化为十进制数值;步骤②按照匹配规则,将十进制形式的抗原与成熟检测器区间进行匹配检査;若发生匹配,即判断抗原为非自体;否则为自体。
4、 根据权利要求1所述的方法,其特征是,上述步骤1中条件设置还包括① 论域设置由所有形为X-J^X2…Z,…《("1,2,…,/,《e(0,lp的长度为/的二进制字符串构成;② 自体设置人工免疫系统中的合法信息,通常被表示成二进制字符串的形式;非自体设置人工免疫系统中的非法信息,通常也表示成二进制字符串的形式;③ 抗原设置进入人工免疫系统中的信息,包括自体抗原和非自体抗原;抗体设置人工免疫系统中的T细胞经过自体耐受而产生的成熟检测器。
全文摘要
本发明涉及一种检测器的生成和检测方法,该方法将最大区间定义为初始检测器;然后将其进行自体耐受训练。按照匹配规则,把检测器中与已知自体相匹配的点去除,同时将检测器区间从该点处划分生成两个子区间检测器,递归地对每个子区间进行检测。并在此过程中进行检测器的优化,最终将所生成的成熟检测器集合用与系统安全保护。该发明突破了已有检测器的生成方法及匹配规则,消除了“漏洞”和冗余检测器,进而提高了检测器的生成效率和检测效率。
文档编号G06N3/00GK101604408SQ20091002925
公开日2009年12月16日 申请日期2009年4月3日 优先权日2009年4月3日
发明者夏惠芬, 涛 蔡, 鞠时光 申请人:江苏大学