学习危险理论

在人工免疫领域里,有四种较为主流的算法:1.阴性选择法;2.人工免疫网络;3.克隆选择算法;4.危险理论和树突细胞算法。

其中危险理论是1994年有 Polly Matzinger提出的理论,该理论引发了免疫学界一场新的革命,堪称近几年来免疫学最重要的理论突破。

它打破了Forrest提出的阴性选择法中的自我与非我的传统理论。Matzinger认为在人体免疫中依旧存在正常的非我物质(如肠道中的事物和益生菌)以及非正常的自我物质(如癌细胞),因此免疫系统的动力并非抵御非我,而是对生命体检测和抵御危险的需求。


危险理论的主要观点是受损细胞发出危险信号激活抗原提呈细胞(APCs),并在受损细胞周围建立危险领域,危险域中的抗原物质将被巨噬细胞等APCs捕获并转交给本地淋巴结点,再提呈给淋巴细胞。B淋巴细胞分泌抗体,与抗原进行匹配,只有在危险域内与抗原成功匹配的淋巴细胞才会被激活,并克隆扩增。


总结:在危险理论中有两个触发点,1.抗原抗体匹配;2.在受损细胞危险域内


在应用危险理论时,应明确以下几点:

抗原必须是须有唯一标识的属性(如恶意代码或MAC地址),但抗原决定簇是一个集合或数组。

危险特征可以提取多个,用于形成受体,即抗体的基本组成单位。

抗体的功能是:1.自我防御 2.自我清除。每一个抗体具有检测范围,即检测半径Dr。如果抗原抗体之间的距离Dis(Ag,Ab)<Dr,则抗体可以用于检测抗原,抗体生成后被添加到抗体库内。

明确抗原、抗体、受体、淋巴细胞、健康细胞、受损细胞、危险信号和APCs分别对应应用模型中的何种物质。

决策中心:用于接受和处理危险信号,获取抗原提呈(接受抗原),建立危险域,生成并分发抗体。

抗体库:存放所有特征抗体,新生成的抗体会被添加到该库中。

自我特征库:储存正常的自我特征。用于通过阴性选择法生成抗体。


在危险特征中,应分清楚危险等级和危险半径。


用matlab编写的人工免疫算法 clc clear all close all tic; global n ww m=100;% m--抗体规模 n=22;% n--每个抗体二进制字符串长度 ww=1;%参数个数 mn=100;%从抗体集合里选择n个具有较高亲和度的最佳个体进行克隆操作 xmin=[0 0]; xmax=[9 9]; tnum=100;% tnum--迭代代数 pMutate=0.1;% pMutate--高频变异概率 cfactor=0.2;% cfactor--克隆(复制)因子 A=InitializeFun(m,n); %生成抗体集合A,抗体数目为m,每个抗体基因长度为n F='X+10*sin(X.*5)+7*cos(X.*4)'; %目标函数 %F='sin(10*X)' FM=[]; %存放各代最优值的集合 FMN=[]; %存放各代平均值的集合 t=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% while t<tnum t=t+1; X=DecodeFun(A(:,1:22),xmin,xmax); %将二进制数转换成十进制数 Fit=eval(F); %以X为自变量求函数值并存放到集合Fit中 if t==1 figure(1) fplot(F,[xmin(1),xmax(1)]); grid on hold on plot(X,Fit,'k*') title('抗体的初始位置分布图') xlabel('x') ylabel('f(x)') end if t==tnum figure(2) fplot(F,[xmin(1),xmax(1)]); grid on hold on plot(X,Fit,'r*') title('抗体的最终位置分布图') xlabel('x') ylabel('f(x)') end T=[]; %把零时存放抗体的集合清空 [FS,Affinity]=sort(Fit,'descend'); %把第t代的函数值Fit按从小到大的顺序排列并存放到FS中 XT=X(Affinity(end-mn+1:end)); %把第t代的函数值的坐标按从小到大的顺序排列并存放到XT中 FT=FS(end-mn+1:end); %从FS集合中取后mn个第t代的函数值按原顺序排列并存放到FT中 FM=[FM FT(end)]; %把第t代的最优函数值加到集合FM中 %克隆(复制)操作,选择mn个候选抗体进行克隆,克隆数与亲和度成正比,AAS是每个候选抗体克隆后在T中的开始坐标 [T,AAS]=ReproduceFun(mn,cfactor,m,Affinity,A,T); %高频变异操作,变异概率反比于抗体的亲和度 T=Hypermutation(T,n,pMutate,xmax,xmin); %把以前的抗体保存到临时克隆群体T里 AF1=fliplr(Affinity(end-mn+1:end)); %从大到小重新排列要克隆的mn个原始抗体 T(AAS,:)=A(AF1,:); %把以前的抗体保存到临时克隆群体T里%从临时抗体集合T中根据亲和度的值选择mn个(多峰函数的解决) X=DecodeFun(T(:,1:22),xmin,xmax); Fit=eval(F); AAS=[0 AAS]; FMN=[FMN mean(Fit)]; for i=1:mn [OUT(i),BBS(i)]=min(Fit(AAS(i)+1:AAS(i+1))); %克隆子群中的亲和度最大的抗体被选中 BBS(i)=BBS(i)+AAS(i); end AF2=fliplr(Affinity(end-mn+1:end)); %从大到小重新排列要克隆的mn个原始抗体 A(AF2,:)=T(BBS,:); %选择克隆变异后mn个子群中的最好个体保存到A里,其余丢失 end disp(sprintf('\n The optimal point is:')); disp(sprintf('\n x: %2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值