免疫优势克隆算法
基于正交设计的免疫克隆遗传算法

本 文在 免疫 克隆遗 传算 法 的基础 上 引入 了正交 实验设 计 的思想 , 应用 到杂 交算 子 中 。实 验结 果表 明 , 并
该算 法 收敛速 度 比经典算 法 更快 , 求解 精度 高 出几个 数量 级 。
1 算 法
1 1 基 本 步 骤 .
( )编码 1
采 用 实数 编码 。实数 编码 要 比二进 制编 码搜 索 的范 围大 , 度 也 更高 , 于 实数 编码 精 基
( ) 即 L ( 。 Q , 2) F 1 1
L2 I | ( 2 1
L 2 2
排 正交 试验 设计 , 到 子代种 群 P , 割形式 见式 ( ) 得 分 4
f 1 ( , 4 5 7 :2 , , ) p
I 2 1
( 3)
将 p , 的第 一个染 色 体看成 是 第一个 因素 , 三 个染 色体 看成 是第 二 个 因 素 。利用 正 交表 L ( 安 。 后 2)
一
领域 里 的新方 法 。免疫 克隆遗 传算 法 能够产 生一 定 的克隆个 体 , 中选 取较优 的个 体作 为后 代 , 从 提高 了搜 索 速度 , 且 加快 了算 法收 敛 。免 疫 克 隆遗 传 算 法 也 存 在 着 “ 熟 ” 局部 搜 索 能 力 差 的 问题 。 并 早 及 ]
的遗传 算法 能很 快 收敛到 最优 解附 近[ 。
( )选择 算子 2
在选择 操作 中 , 引入 一种适 应值 的非 单调 标度 变换 方法 , 目的是 让 适 应值 较 低 的
个体也 有较 大 的机会 参与 种群 的进 化 , 加种 群 的多 样性 , 利 于算 法 进 化 。在 每代 的进 化 中 , 保 留 增 有 都
免疫算法中的克隆变异操作

免疫算法中的克隆变异操作下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!免疫算法是一种启发式优化算法,利用模拟免疫系统中的免疫机制进行问题求解。
免疫算法——精选推荐

免疫算法理论与应用近代免疫的概念是指机体对自己或非己的识别并排除非己的功能,目的是维持自身生理平衡与稳定.免疫算法就是模拟免疫系统抗原识别、抗原与抗体结合及抗体产生过程,并利用免疫系统多样性和记忆机理抽象得到的一种免疫算法。
这里介绍免疫算法的算法流程与代码.免疫学中基本概念的思想在免疫算法设计中得到有效应用,即亲和力,相似度,浓度及激励度,根据算法需要给出描述. 定义1 亲和力指抗体与抗原的匹配程度.反映在优化问题上,抗体(NBP)的亲和力定义为函数,与成反比,在此仍表示抗aff:S (0,1)aff(x)f(x)f(x)x体对应的可行解的目标函数.这里选择 1 aff(x) ,0 1 .f(x)1e定义2 相似度指抗体与其他抗体的相似程度,其被定义为,此根据信息熵理论设计.体G为设M为含有m个字符的字符集,群Aff:S S *0,1+由N个长度为的字符串构成的集合,即l,其中G中基因座的其中为M 信息熵定义为 jG ,X ..., M,1 i l-xxxx12lim中第个符号出现在基因座上的概率. ,ij log(G,N)p pp Hj ij ijiji 1定义3 抗体浓度指抗体在抗体群中与其相似的抗体所占的比例,定义为函数即C(u) ,其中为C:X S *0,1+, , X|Aff(u,) -浓度阈值,,在此称为浓度抑0 1N制半径. 定义 4 激励度是指抗体应答抗原和被其他抗体激活的综合能力,定义为函e 数,其中为调节因子,.抗体应答 c(x)/1act:X S ,act(x) aff(x)抗原综合能力与其亲和力成正比,与其在抗体群中浓度成反比. 定义 5 克隆选择是指在给定的选择率下,,在抗体群中选择亲0 1和力较高的抗体.亲和力低的抗体则被清除. 定义6 细胞克隆是指在给定的繁殖数M下,抗体群X中所有抗体依据自s2身的亲和力及繁殖率共繁殖M个克隆的映射.,它是确定性映射,:X S Tcmxxxs即设为抗体群的繁殖率函数,为抗体群,则定义X {,,...,}r: 12m x抗体繁殖个相同的克隆构成的集合. 由下式确定:mmiiim . N r(X) af(f), Mmxmiiii 1定义 7 亲和突变是指抗体空间到自身的随机映射,,其作用方式:S S T m是抗体按与其亲和力成正比的可变概率独立地改变自身的基因,可选 . P(x) exp(aff(x))定义 8 克隆抑制指在抗体群中依据抗体的亲和力和相似度抑制部分抗体的确定性映射,.克隆抑制算子的设计,设X是群体规模为M的抗体群,: SMSTr 依据抗体的相似度和抑制半径以及式,将X划分为子群,不妨设Aff(u,) 获q个子群,利用处罚函数对中亲和力低的抗体进行处罚. ,1 i qPPii定义9 免疫选择是指在抗体群中依据抗体的激励度选择抗体的随机映射,N按其概率规则: S,STisac t()xiP{T } . x(X)ii act()xjx X j定义 10 募集新成员指在抗体空间S中随机选择抗体. 免疫算法描述如下: Step 1 确定初始群体规模N,克隆总数M,克隆选择率,抑制半径, 募集新成员插入率,. M N Step 2 随机产生N个抗体构成初始抗体群,计算中抗体亲和力. AA00 Step 3 利用克隆选择算子在中选择个抗体构成群体. NABnn1 Step 4 克隆选择算子作用繁殖M个克隆,中抗体进入记忆池,并更BBnn新记忆池中亲和力低的抗体. Step 5 依据亲和突变算子对每个克隆细胞进行突变,获得克隆集. Cn* Step 6克隆抑制算子作用于,获得克隆集C C nn* Step 7 计算与中亲和力较高的N个抗体的激励度.用比例选择选取CAnn 个抗体.其中中亲和力最高的不参与选择.获得新群体. N round( N)1ADnn Step8 由募集新成员算子任选个自我抗体插入,并计算round( N)Dn 个抗体的亲和力,从而获得. round( N)An1 Step 9 若满足终止条件,输出结果,否则,返回step 3. 免疫算法在函数优化中应用举例例Rosebrock函数的全局最大值计算. 222max )(1)f(,) 100 (xxxxx21121s..t8 2.0i4 8(12.04 x i确定编码方法:xx用长度为10的二进制编码串来分别表示俩个决策变量.10位二进制编码串,12xx可以表示从0到1023之间的1024个数,故将的定义域离散化为1023个,12均等的区域,包括俩端点共1024个不同的离散点.从离散点-2.048到 2.048,依次让它们对应于00000000000(0)到11111111111(1023)之间的二进制编码.再将xx,分别表示的两个10位长的二进制编码串接在一起,组成一个20位长的二12进制编码,它就构成了函数优化问题的染色体编码方法.使用这种编码方法,解空间与免疫算法的搜索空间具有一一对应的关系. 确定解码方法:解码时需将20位长的二进制编码串切断为二个10位长的二进制编码串,然后分别将它们转换成对应的十进制整数代码,分别记为和. 依据前述个体编码方yy12yx法和对定义域的离散化方法可知,将代码转换为的解码公式为:iiyx ,(i 1,2) 4.09 62.048i i1023求函数的全局最大值免疫算法代码如下:Rosebrock #include <stdio.h>#include<stdlib.h> #include<time.h>#include<math.h> #define LENGTH1 10 #define LENGTH2 10 #define CHROMLENGTH LENGTH1+LENGTH2 #define POPSIZE 300 int MaxGeneration =500; struct individual { char chrom[CHROMLENGTH+1]; ;//适应度double value ;//亲和力double affective//浓度double concentration;//激励度double activity; }; int generation; int best_index; struct individualpopulation[POPSIZE]; struct individual nextpopulation[POPSIZE];struct individual array[POPSIZE]; struct individual A; structindividual B; struct individual bestindividual; struct individual currentbest; int PopSize =80; double umu =0.08; double r =0.001; double rad =0.3; int clone_total =0;//******************************************************************** void GenerateInitialPopulation(); long DecodeChromosome(char *string,int point,int length); void CalculateObjectValue(struct individual array[],int n); void Calculateaffective(struct individual array[],int n); void EvaluatePopulation(); void affectivesort(struct individual array[],intn); void clonenum(); void MutationOperator(void);void GenerateNextPopulation(void); double CalculateSimilarity(struct individual A,struct individual B); voidInhibition(void); void chongzu(); void CalculateConcentrationValue(struct individual population[],int n);void CalculateActivityValue(struct individual population[],int n);void activeslect(); void sortnewmember(); void PerformEvolution();void FindBestIndividual(); void OutputTextReport();//******************************************************************** void main() { generation=0; GenerateInitialPopulation(); EvaluatePopulation(); while(generation<MaxGeneration) { generation++; GenerateNextPopulation(); EvaluatePopulation(); PerformEvolution(); OutputT extReport(); } } //******************************************************************** void GenerateInitialPopulation() { int i,j; srand((unsigned)time(NULL)); //srand((unsigned)time(0)); for(i=0;i<PopSize ;i++) { for(j=0;j<CHROMLENGTH;j++) { population[i].chrom[j]=(rand()%10<5)?'0':'1'; } population[i].chrom[CHROMLENGTH]='\0'; } } //********************************************************************void GenerateNextPopulation(void) {//排序选择亲和力高的进行克隆affectivesort(population,PopSize); clonenum(); MutationOperator(); Inhibition(); chongzu(); activeslect(); sortnewmember(); } //****************************************************** ************** void EvaluatePopulation(void) { CalculateObjectValue ( population,PopSize); Calculateaffective ( population,PopSize);FindBestIndividual(); } //****************************************************** *********************** long DecodeChromosome(char *string,int point,int length) { int i; long decimal=0L; char *pointer; for(i=0,pointer=string+point;i<length;i++,pointer++) { decimal+=(*pointer-'0')<<(length-1-i); } return(decimal); } //****************************************************** *********************** void CalculateObjectValue(struct individual array[],int n) { int i; long temp1,temp2; double x1,x2; for (i=0;i<n;i++) { temp1=DecodeChromosome(array[i].chrom,0,LENGTH1); temp2=DecodeChromosome(array[i].chrom,LENGTH1,LENGTH2);x1=4.096*temp1/1023.0-2.048; x2=4.096*temp2/1023.0-2.048; array[i].value=100*(x1*x1-x2)*(x1*x1-x2)+(1-x1)*(1-x1); } } //****************************************************** *********************** void Calculateaffective(struct individual array[],int n){ int i; for(i=0;i<n;i++) { array[i].affective=1.0/(exp(-(r*array[i].value))+1.0); } } //****************************************************** *********************** void affectivesort(struct individual array[],int n) { int i,j; struct individual a; for(j=0;j<n-1;j++){ for(i=0;i<n-1-j;i++) { if(array[i].affective<array[i+1].affective){ a=array[i+1]; array[i+1]=array[i]; array[i]=a; } } } }//****************************************************************** void FindBestIndividual() { int i; bestindividual=population[0]; for(i=0;i<PopSize;i++){ if(population[i].affective>bestindividual.affective){ bestindividual=population[i]; best_index=i; }if(generation==0) { currentbest=bestindividual; } else{ if(bestindividual.affective>currentbest.affective){ currentbest=bestindividual; } } } }//***************************************************************************** void PerformEvolution(){ if(bestindividual.affective>currentbest.affective){ currentbest=population[best_index]; } }//***************************************************************************** void clonenum() { int i,j; int M =100; int m[POPSIZE]; int L=0; double sum1=0; double sg =0.8; for(i=0;i<(int)(sg*M);i++) { sum1+=array[i].affective;m[i]=(int)(array[i].affective*M/sum1); clone_total+=m[i]; }for(i=0;i<(int)(sg*M);i++) { for(j=0;j<m[i];j++) nextpopulation[L++]=array[i]; } }//***************************************************************************** void MutationOperator(void) { int i,j; double p,po; for(i=0;i<clone_total;i++){ for(j=0;j<CHROMLENGTH;j++) { po=rand()%1000/1000.0; p=exp((-1)*nextpopulation[i].affective); if(po<p) { nextpopulation[i].chrom[j]=(nextpopulation[i].chrom[j]=='0')?'1':'0'; } } } }//***************************************************************************** double CalculateSimilarity (struct individual A,struct individual B) { int j=0; double sum=0.0; for(j=0;j<CHROMLENGTH;j++){ sum+=(A.chrom[j]=B.chrom[j])?0:1; } sum=sum*(log(2.0))/CHROMLENGTH; return sum; }//***************************************************************************** void Inhibition(void) { int i,j; int L=0;int numinh=0; //double rad =0.3; CalculateObjectValue(nextpopulation,clone_total); Calculateaffective(nextpopulation,clone_total); 排序进行抑制affectivesort(nextpopulation,clone_total);// for(i=0;i<clone_total-1;i++) { for(j=i+1;j<clone_total;j++) { if(CalculateSimilarity(nextpopulation[i],nextpopulation[j])>rad) { nextpopulation[++L]=nextpopulation[j]; } } clone_total=L+1;L=i+1; } clone_total=L+1; } //****************************************************** *********************** void chongzu() { int i; for(i=0;i<clone_total;i++){ population[i+PopSize]=nextpopulation[i]; } affectivesort(population,clone_total+PopSize); } //****************************************************** *********************** void CalculateConcentrationValue(struct individual population[],int n) { int i,j,m=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { m+=(CalculateSimilarity(population[i],population[j])<rad)?1: 0; } } population[i].concentration=m*(1.0)/(n); } //****************************************************** *********************** void CalculateActivityValue(struct individual population[],int n) { int i; double h=1.5; for(i=0;i<n;i++) { population[i].activity=population[i].affective*exp(-population[i].concentration/h); } } //****************************************************** *********************** void activeslect() { int i,index; double umu=0.08; int N3=(int)(PopSize*umu); double p;double sum2=0.0; double concent[POPSIZE]; struct individual con_population[POPSIZE];CalculateConcentrationValue(population,PopSize); CalculateActivityValue(population,PopSize); for(i=0;i<PopSize;i++) { sum2+=population[i].activity; } for(i=0;i<PopSize;i++) { concent[i]=population[i].activity/sum2; } for(i=1;i<PopSize;i++) { concent[i]=concent[i-1]+concent[i]; } for(i=0;i<PopSize;i++) { p=rand()%1000/1000.0; index=0; while (p>concent[index]) { index++; } con_population[i]=population[index]; } for(i=0;i<PopSize-N3;i++) { population[i]=con_population[i]; } } //***************************************************************************** void sortnewmember() { int i,j; intN3=(int)(PopSize*umu); for(i=0;i<N3;i++) { for(j=0;j<CHROMLENGTH;j++) { population[i+PopSize-N3].chrom[j]=(rand()%10<5)?'0':'1'; } population[i+PopSize-N3].chrom[CHROMLENGTH]='\0';} } //***************************************************************************** void OutputT extReport(void) { int i; printf("gen=%d,best=%f,",generation,currentbest.value);printf("chromosome="); for(i=0;i<CHROMLENGTH;i++) { printf("%c",currentbest.chrom[i]); } printf("\n"); } 运行结果为:所以该问题全局最优解为. f( 2.048,2.048) 3905.926227参考文献[1] 黄席樾,张著洪等.现代智能算法理论及应用.北京科学出版社,2005.[2] 周明.遗传算法原理及其应用.国防工业出版社,2002.202.。
免疫克隆选择算法的改进及其应用

免疫克隆选择算法的改进及其应用邱亚龙;张昕;范妙炳;叶奕纯;陈婷【摘要】Based on the principle of biological immune system, an improved immune clonally selection algorithm(ICSA) was proposed. The algorithm introduced the analysis of antigenic determinant, calculated the network cut factor of antibody space and the end times of antibodies evolution, and created environment required to produce antibodies; shock variation method was adopted to make antibodies mutated; Innovative space adaptive mutation was proposed creatively; The improved ICSA was applied to analyze the parameters optimization problem of the atmospheric pollution harm rate universal formulaRi=1/(1+ae-bxi)c; The results show that the algorithm within the scope of the global and local search is more exquisite. Solution accuracy is significantly increased.%基于生物免疫系统原理,提出了改进的免疫克隆选择算法。
一种新的免疫克隆选择算法

c n e g n e s e d I A s s o o b n e o u i n r t a e y c p b e o o v n o o v r e c p e . CS i h wn t e a v l t a y s r t g a a l f s l i g c mp e o lx
( c o l fE e to isa dI fr t n in s iest fS in ea d Te h oo y,Z e a g 2 2 0 ,Chn ) S h o lcr nc n n o mai ,Ja g uUnv riyo ce c n c n lg o o h  ̄in 1 0 3 ia
维普资讯
第 6卷 第 6期 20 0 7年 1 2月
江 南 大 学 学 报( 然 科 学 版) 自
J u na fJ a na o r lo i ng n Uni e st ( t r lSce c ii n) v r iy Na u a i n e Ed to
摘
要 : 出 了一种 新 的人 工免疫 系统 算法—— 免疫 隆选 择 算 法 , 述 了算 法的 操作 过 程。 用 提 克 描 采
函数优 化仿 真 实验 与进化 算 法进 行 比较 , 结果 表 明免 克 隆选择 算 法 收敛 速 度 快 , 解精 度 高, 疫 求 稳
定性好 , 并能有效 地 克服早 熟 问题 和骗 问题 .
织 、 忆 等进化 学 习 机理 , 合 分 类 器 、 经 网络 和 记 结 神
机器 推理 等系统 的一 些 优点 , 研 究 成 果 涉及 到控 其
制 、 据处 理 、 化 学 习和 故 障 诊 断 等许 多 领 域 , 数 优 已 经 成为 继神 经 网络 、 糊逻 辑 和 进 化计 算 后 人 Nhomakorabea 智 模
改进的免疫克隆选择算法及其在多峰值寻优中的应用

p a e r h c p b l y,l n r ii g p ro e k s ac a a i t i o g tan n e id,ec.T i e ag rtm ,b s d o e lc d n n ef—a p ig t h s n w lo i h a e n r a o ig a d s l da t n
C HANG Z iig hyn ,H i I AN L ,JANG D we ,RUAN W e qa g a i n in
( c o l f u m t n N r e s D a l U i r t , in 1 2 1 , hn ) S h o o A t ai , ot a t i i nv s y J i 3 0 2 C ia o o h n ei l
行时间和平均找到的峰值点个数都明显优于 C s o at 克隆选择算 法, r 多峰值 函数的优化效果得到 了显著改善。 关键词 :人工 免疫系统 ;克隆选择 ;实数 编码 ;自适应变焦变异 中图分类号 :T 1 P3 文献标识码:A 文章编号 :02—16 (0 0 0 0 3 0 10 6 3 2 1 )2— 18— 5
Ab t a t: r vs d i sr c A e ie mmu e c ln a ee to lo ih i u o wa d t e o v h o l msa sn r m h s n o o ils lcin ag rt m sp tfr r o r s le t eprb e r i g fo t eCa ・ i to c l na ee to l o i m ,s c se p re c e e d n y i h o fr t n o o ult n sz r oo ils l cin ag rt h u h a x e in e d p n e c n t e c n ma i fp p a i ie,we k mu i i o o a h
飞机着陆调度优化的混合免疫克隆算法

2 0 1 3年 2月
计算机 应 用与软 件
Co mp u t e r Ap p l i c a t i o n s a n d S o f t wa r e
Vo 1 . 3 0 No. 2 Fe b.2 01 3
飞机 着 陆调 度优 化 的 混合 免疫 克 隆算 法
同步更新 , 保持 种群 多样 性; 利用启发式变异算子进行广度寻优 , 得 到较优秀 的飞机 序列 ; 为加速深度探 索 , 提 出一种高 效的确定 性 算法帮助优化飞机的实际 降落 时间。实验表 明, 在静 态以及 动态不 同的问题背景下 , 该算 法都可 以在极 短的 时间 内得到最优 解, 具
有 较 好 的全 局 寻 优 能 力 和 较 快 的收 敛 速 度 。
关键词
中图分类号
飞机着 陆调度 问题
T P 1 8
人工 免疫 克隆选择 多约束组合优化
A D O I : 1 0 . 3 9 6 9 / j . i s s n . t 0 0 0 — 3 8 6 x . 2 0 1 3 . 0 2 . 0 3 0
刘 朕 李 锐
( 中国科学技术 大学计算机科学与技术学院 安徽 合肥 2 3 0 0 2 7 )
( 北京航空航天大学电子信息工程学院
北京 1 0 0 1 9 1 )
摘
要
飞机着 陆调度是一个 多约束 N P难 的组合优 化问题 。设计 一种 混合 免疫 克隆算法, 采用双 实数链编码 , 通过 幅度 角旋 转
L i Rui
o fS c i e n c e a n d T e c h n o l o g y o fC h i n a , He f e i 2 3 0 0 2 7 , A n h u i , C h i n a )
免疫系统的克隆技术

免疫系统的克隆技术免疫系统是人体的第一道防线,用于区分自身和异物并对抗病原体。
然而,当人体免疫系统无法识别一些病原体时,造成了很多疾病的发生,尤其是由病毒、细菌和癌症等疾病的发生率会更高。
而克隆技术为我们提供了一种新方法来研究、诊断和治疗这些疾病。
克隆技术是一种将DNA片段插入到细胞中以制造免疫细胞的方法。
一个成功的克隆技术需要两个主要的组成部分——单克隆抗体和转基因技术。
单克隆抗体是由单一的免疫细胞制造的抗体。
与传统方式相比,单克隆抗体具有一些显著的优势,包括高度特异性、高效性和可重复性。
使用单克隆抗体可以减少不同抗体之间的差异性,从而提高诊断和治疗的准确性和效率。
转基因技术是一种在生物体内改变DNA序列的技术。
通过改变DNA序列,我们可以设计特定的基因,使其产生所需的免疫细胞。
一旦基因被转化,免疫细胞便能够产生高效的单克隆抗体。
已有的某些技术使用转基因技术,从而创造出了在实验室中生产免疫细胞的系统。
在研究中,克隆技术已被广泛应用于从小鼠和人类免疫系统中获得单克隆抗体。
通过研究这些抗体,我们可以更好地了解它们对特定病原体的作用,及其对环境的响应方式。
例如,这些抗体可以用于诊断人类感染疾病,包括艾滋病、疟疾和应激反应等等。
同时,克隆技术还扩大了治疗癌症的希望。
在癌症治疗中,克隆技术主要用于克隆细胞,以便制造出足够数量的免疫系统细胞来对抗癌细胞。
这些免疫细胞先被提取出来并重组组合,然后被注射回患者的体内。
这些细胞将针对肿瘤的抗体导入病人体内,以进一步增强免疫系统的效能。
克隆技术的应用,并不仅仅限于癌症和感染性疾病。
它也可以检测其他的健康问题,如心血管疾病及精神疾病等。
无论应用于何种疾病,克隆技术无疑为人类健康领域带来了革命性的变化。
虽然克隆技术已被广泛应用于研究和治疗,但它的应用仍存在一些问题。
例如,针对某些疾病的治疗方法尚未完全确定,需要更多的研究来确定其有效性。
而某些免疫细胞注射可能会造成副作用,导致更严重的健康问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内 j ,乙 1
图象
图 1 函数的变换结果
( b ) 变换后的图象
1 9 2 0
电
子
与
信
』 L
学
报
第2 6卷
对于非函数优化问题, 对 目标函数进行变换是困难的; 而且, 对于复杂问题, 往往很难获得 有益的先验知识,因此,本文进一步提出在人工免疫系统中更一般的抗体免疫优势概念. 2 . 1 . 2 抗体免疫优势 本文用抗体免疫优势的概念来表示抗体编码每一位对抗原的不同重要 程度。这里没有完全遵循免疫优势的生物学定义,一方面是因为依据独特型调节网络理论,抗 体也具有抗原特性,因此将这一概念用于抗体是有生物学基础的;另一方面,在人工免疫系统 中主要操作是针对抗体,而非抗原。
- 1 2改回
和6 0 3 7 2 0 4 5 ) 资 助项目
第1 2期
杜海峰等:免疫优势克隆算法
1 9 1 9
似0 - 1 背包问题这样的组合优化问题以及复杂函数的优化问题,具有一定的通用性,而且性能 优于相应的进化算法.
2免疫优势
2 . 1定义[ 7 ] 免疫学认为,虽然一个抗原分子上可以有多个表位,但在诱导宿主免疫应答时可能只有一 种或一个表位起主要作用,使宿主产生以该特异性为主的免疫应答;这种现象称为免疫显性或 免疫优势 ( I m m u n o d o m i n a n c e ) , 起关键作用的表位称为显性表位。 免疫优势是在抗体与抗原相 互作用中产生的,其产生和作用都是一个动态的过程.免疫优势位点决定了在自 然选择中哪一
对于抗体 a=( a l , a 2 , . . . , a t ) ,如果对于任意的 a k 〔{ 0 , 1 } , k 护i 有
‘ 了 心 、
则称抗体编码的第 i 位具有免疫优势或免疫优势点 ( 显性表位) , 该位的取值称为优势值. 抗原 或抗体具有免疫优势的过程统称为获得免疫优势。 由此可见,不论是抗原还是抗体免疫优势,本质上都是将先验知识引入算法,从而改善算 法性能。所不同的是,抗原免疫优势更加强调抗原与抗体的关系以及问题本身的先验知识;而 抗体免疫优势着眼于抗体本身,对问题本身的依赖程度较低.与进化算法一样,人工免疫系统 算法同样是依靠编码来实现与问题本身无关的搜索算法,因此,对抗体免疫优势的研究更加具 有普遍性.本文主要讨论抗体免疫优势,显然,实践中有机结合两种免疫优势,将更加有利于 问题的解决。 2 . 2抗体免疫优势的获得 一方面,对求解问题可能一时难以形成可以利用的先验知识;另一方面,按照定义确定抗
n)
} 、 ̄
甲
g
一 一
一 一
‘ 1 . 几、
2 0
:
n
月 竹
i s
八 U C U n}
:
. 6 0 . 8 1 0 0 . 2 0 . 4 0 . 6 0 . 8
体免疫 优势的 代价太大, 计算量约 为O ( 2 t - 1 ) , 从而 使寻找 抗体免 疫优势的 工作失去意义。 一 个
显而易见的事实是,抗体群落中的最优抗体与其它抗体相比,更适应抗原的刺激,广义地讲, 它具有免疫优势.因此, 分析每次迭代中最优抗体, 从而获得免疫优势, 可以使算法更具通用性 以及应用的便利性,由于没有依赖与问题有关的先验知识,因此,也保持了算法作为弱方法适 应性强的特点。基于这一思路,可以构造很多获得免疫优势的方法。针对采用二进制编码的抗 体群落,本文提出了如下的抗体免疫优势算子。 记抗体群 A=[ a 1 a 2… a n ] 为
Ba s e d o n t h e c l o n a l s e l e c t i o nt h e o r y , a n e w h y b r i d A I S a l g o r i t h m, n a m e l y I m m u n o D o m i n a n c e
勿- i m m u n o d o m i n a n c e i s p u t f o r w a r d . C o m p a r e d w i t h C l o n e A l g o r i t h m ( I D C A ) , w i t h a n t i b o g e n e a l g o r i t h m s , I D C A i s s h o w n t o b e a n e v o l u t i o n a r y s t r a t e g y c a p a b l e o f s o l v i n g c o m p l e x
中 图 分类 号:
0 2 2 4
文 献标识码: A
文 章 编号: 1 0 0 9 - 5 8 9 6 ( 2 0 0 4 )Байду номын сангаас1 2 - 1 9 1 8 - 0 7
I mmu n o d o mi n a n c e C l o n e Al g o r i t h ms
D u H a i - f e n g J i a o L i - c h e n g L i u R u o - c h e n
J 厂
、 、 J 了
了 、
( 2 )
当k 二3 时, 有如图 1 所示的变换结果。 对比图 1 ( a ) , 图' ( b ) 可以 看出, 上述变换并没有
改变最优点的位置,只是更加突出了全局最优值与局部最优值的区别,因而使得亲合度函数的 性态更有利于问题的求解。
种抗原将面临更大的压力。 在人工免疫系统中, 抗原、 抗体、 抗原和抗体之间的亲和性分别对应于优化间题的目标函数 和各种约束条件、优化解、解与目标函数的匹配程度。人工免疫系统借鉴免疫学的相关机理, 通过抗体 自身的不断改变以适应抗原的刺激,达到解决问题的目的.为了叙述问题方便,一般
记f : R I} R为被优化的目 标函数, 亲合力函数 l p一般是目 标函数 f的函数, 不失一般性,
免疫优势克隆算法 1
杜海峰 焦李成 刘若辰
( 西 安 电 子 科 技 大 学 智 能 信 息 处 理 研 究 所雷 达 信 号 处 理 重 点 实 验 室西 安7 1 0 0 7 1 )
摘 要: 借鉴生物免疫学的有关理论,该文阐述了用于人工免疫系统的免疫优势概念,包括抗体免疫优 势和抗原免疫优势.进一步地,构造了不同的免疫优势算子, 并结合抗体克隆选择机理,提出了一种新的混 合人工免疫系统算法一 免疫优势克隆算法. 0 - 1背包问题和复杂函数优化问题的仿真试验表明,新算法具 有处理类似复杂问题的能力,且性能要优于相应的遗传算法. 关被词: 克隆,免疫优势,人工免疫系统,遗传算法
( I n s t i t u t e o f I n t e l l i g e n t I n f o r m a t i o n P r o c e s s i n g , K e y L a b o r a t o r y o f
R a d a r S i g n a l P r o c e s s i n g , X i d i a n U n i v e r s i t y , X i ' a n 7 1 0 0 7 1 , C h i n a ) A b s t r a c t I n s p i r e d b y t h e b i o l o g y i m m u n e s y s t e m, t h e c o n c e p t o f I m m u n o d o m i n a n c e i n i m m u n o l o g y i s i n t r o d u c e d t o A r t i i f c i a l I m m u n e S y s t e m ( A I S ) i n t h i s p a p e r . I n A I S , t h e
工智能对神经系统的借鉴和模拟的成果很丰富,已经有比较成熟的方法和模型以资利用,相较
而言, 对免疫系 统和内 分泌系统的 相应研究还处于初级阶 段, ・ 还没有形成一个统一的 框架[ 3 ] 。
克隆选择是生物免疫系统理论的重要学说。 克隆意为无性繁殖系, 即通过无性繁殖 ( 如细胞丝分 裂) 可连续传代并形成群体, 常用于细胞水平的描述. 这一概念已 经被广泛用于计算机编程、 系 统控制、交互式并行仿真等领域;其学习、记忆等特性同样也引起了人工免疫系统研究者的兴
第2 6卷第 1 2期
2 0 0 4年 1 2月
电子 与 息学 报
J o u r n a l o f El e c t r o n i c s
V o 1 . 2 6 No . 1 2
n f o r ma t i o n T e c h n o l o g y
D e c . 2 0 0 4
考虑函 数的最 大化问 题. 对于二 进制编码, 抗体a 〔 B 1 , B c ={ 0 , 1 1 ‘ 代 表所有长 度为l 的 二进
制串 组成的集合, 抗体群 A =f a l , a 2 , ' * , , a n } 为抗体 a的n元组。
在人工免疫系统中,本文提出两种免疫优势的概念: 2 . 1 . 1 杭原免疫优势 这里称能够影响抗体编码的直接基于问题的先验知识和有利于问题解 决的抗体亲合力函数性态改变为抗原免疫优势.目标函数的性态对求解问题有显著影响,之所 以不直接利用目标函数来替代抗体 一 抗原亲合力函数,就是期望通过亲合力函数的适当变换来 改变目标函数的性态以利于问题的求解。以式 ( 1 ) 函数的优化为例:
f W =1 0 + [ s i n ( ' / x ) ] / [ x 一 0 . 1 6 ) 2 + 0 . 1 ] , x E ( 0 , 1 )