A. 免疫算法的算法流程
1. 随机产生初始父代种群A1,根据先验知识抽取疫苗;
2. 若当前群体中包含最佳个体,则算法停止运行并输出结果;否则,继续;
3.对当前第k代父本种群Ak进行交叉操作,得到种群Bk;
4. 对Bk进行变异操作,得到种群Ck;
5. 对Ck进行接种疫苗操作,得到种群Dk;
6. 对Dk进行免疫选择操作,得到新一代父本Ak+1,转至第二步。

B. 免疫算法的提出
在生命科学领域中,人们已经对遗传(Heredity)与免疫(Immunity)等自然现象进行了广泛深入的研究。六十年代Bagley和Rosenberg等先驱在对这些研究成果进行分析与理解的基础上,借鉴其相关内容和知识,特别是遗传学方面的理论与概念,并将其成功应用于工程科学的某些领域,收到了良好的效果。时至八十年代中期,美国Michigan大学的Hollan教授不仅对以前的学者们提出的遗传概念进行了总结与推广,而且给出了简明清晰的算法描述,并由此形成目前一般意义上的遗传算法(GeneticAlgorithm)GA。由于遗传算法较以往传统的搜索算法具有使用方便、鲁棒性强、便于并行处理等特点,因而广泛应用于组合优化、结构设计、人工智能等领域。另一方面,Farmer和Bersini等人也先后在不同时期、不同程度地涉及到了有关免疫的概念。遗传算法是一种具有生成+检测 (generate and test)的迭代过程的搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,遗传算法是全局收敛的。然而,在对算法的实施过程中不难发现两个主要遗传算子都是在一定发生概率的条件下,随机地、没有指导地迭代搜索,因此它们在为群体中的个体提供了进化机会的同时,也无可避免地产生了退化的可能。在某些情况下,这种退化现象还相当明显。另外,每一个待求的实际问题都会有自身一些基本的、显而易见的特征信息或知识。然而遗传算法的交叉和变异算子却相对固定,在求解问题时,可变的灵活程度较小。这无疑对算法的通用性是有益的,但却忽视了问题的特征信息对求解问题时的辅助作用,特别是在求解一些复杂问题时,这种忽视所带来的损失往往就比较明显了。实践也表明,仅仅使用遗传算法或者以其为代表的进化算法,在模仿人类智能处理事物的能力方面还远远不足,还必须更加深层次地挖掘与利用人类的智能资源。从这一点讲,学习生物智能、开发、进而利用生物智能是进化算法乃至智能计算的一个永恒的话题。所以,研究者力图将生命科学中的免疫概念引入到工程实践领域,借助其中的有关知识与理论并将其与已有的一些智能算法有机地结合起来,以建立新的进化理论与算法,来提高算法的整体性能。基于这一思想,将免疫概念及其理论应用于遗传算法,在保留原算法优良特性的前提下,力图有选择、有目的地利用待求问题中的一些特征信息或知识来抑制其优化过程中出现的退化现象,这种算法称为免疫算法(ImmuneAlgorithm)IA。下面将会给出算法的具体步骤,证明其全局收敛性,提出免疫疫苗的选择策略和免疫算子的构造方法,理论分析和对TSP问题的仿真结果表明免疫算法不仅是有效的而且也是可行的,并较好地解决了遗传算法中的退化问题。

C. 暗黑2物理免疫的查看或者算法
初始的物理免疫为0,在1.10及以后版本玩家、雇佣兵的物理免疫上限最大为50%,中了伤害加深诅咒会减少100%。“减少XX点物理伤害”和“减少XX点法术伤害”这两个属性在所有计算公式(物理免疫、抗性等)之前,而不是在最后计算,楼上的说法是错误的。
D. 求人工智能免疫算法VC环境下的程序
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <time.h> #include <stdlib.h> #include "def.h" #include "TSP.h" //static DISTANCE dist[_CITY_AMOUNT][_CITY_AMOUNT]; char strFilename[100]; void funLoadData(DISTANCE distance[_CITY_AMOUNT][_CITY_AMOUNT]); void main() { string str = strFilename; int nPos; clock_t start, finish; n=0; cout << " |=========用鼠标拖入TSP文件,按回车键。=======|" << endl ; gets(strFilename); nPos = str.find("\\"); while (nPos != -1) { str = str.substr(0,nPos) + "\\" + str.substr(nPos) ; nPos = str.find("\\",nPos+2); } if (str.find("\"") != -1) { str = str.substr(1,str.length()-2); } cout << strFilename << endl; printf("输入进化代数:"); scanf("%d",&_TIMES); start=clock(); DISTANCE distance[_CITY_AMOUNT][_CITY_AMOUNT]; funLoadData(distance); Csga<_CONTAINER, _CONTAINER_P> CUnit((DISTANCE *)distance); //初始化 //开始遗传算法 if(!CUnit.fnCreateRandomGene()) //产生随机的基因 { exit(0); } // CUnit.funSortDist(); //循环基因编译,杂交,淘汰过程 CUnit.fnEvalAll(); for ( int i = 0; i < _TIMES; ++i ) { CUnit.fnDispProbability(); CUnit.fnGeneAberrance(); //基因变异 CUnit.fnDispProbability(); CUnit.fnGeneMix(); //基因杂交 CUnit.fnEvalAll(); //每隔_DISP_INTERVAL显示一次结果 if ( (i+1)%_DISP_INTERVAL == 0 || i == 0) { cout << "第" << i+1 << "代" << std::endl; CUnit.fnDispProbability(); CUnit.fnDispHistoryMin(); } } CUnit.fnOutputFile(); finish=clock(); float nTime=(float)(finish-start)/CLOCKS_PER_SEC; cout << endl << "OK ! It took " << nTime << " seconds." << endl; getchar(); } /*从文件中读取数据*/ void funLoadData(DISTANCE distance[_CITY_AMOUNT][_CITY_AMOUNT]) { FILE *fp; int i=0,j; char sTemp[64]; // if (!(fp = fopen("TSP_china30.txt","r"))) return; // if (!(fp = fopen("NODES.txt","r"))) return; if (!(fp = fopen(strFilename,"r"))) return; while (i<3) { fgets(szTspInfo[i++],1024,fp); // fgets(sTemp,1024,fp); // strcpy(szTspInfo[i++],sTemp); } fscanf(fp,"%s",sTemp); fscanf(fp,"%d",&n); i = 0; while (i++<5) { fgets(sTemp,1024,fp); } for (i=0;i<n;i++) { for (j=0;j<n;j++) { fscanf(fp,"%s",sTemp); distance[i][j] = atoi(sTemp); } //for (j=0;j<n;j++) } //for (i=0;i<n;i++) }
E. 我需要一个基于免疫遗传算法的matlab程序,关于函数寻优的,最好在附有讲解
% 主程序
%遗传算法主程序
%Name:genmain.m
%author:杨幂
clear
clf
%%初始化
popsize=50; %群体大小
chromlength=30; %字符串长度(个体长度)
pc=0.6; %交叉概率
pm=0.1; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体
%%开始迭代
for i=1:20 %20为迭代次数
[objvalue]=calobjvalue(pop); %计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pm); %变异
[bestindivial,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值
y(i)=max(bestfit);%储存最优个体适应值
n(i)=i;
pop5=bestindivial;%储存最优个体
%解码
x1(i)=decodechrom(pop5,1,chromlength/2)*2/32767;
x2(i)=10+decodechrom(pop5,chromlength/2+1,chromlength/2)*10/32767;
pop=newpop;%将新产生的种群作为当前种群
end
%%绘图
figure(1)%最优点变化趋势图
i=1:20;
plot(y(i),'-r*')
xlabel('迭代次数');
ylabel('最优个体适应值');
title('最优点变化趋势');
legend('最优点');
grid on
figure(2)%最优点分布图
[X1,X2]=meshgrid(0:0.1:2,10:0.1:20);
Z=X1.^2+X2.^2;
mesh(X1,X2,Z);
xlabel('自变量x1'),ylabel('自变量x2'),zlabel('函数值f(x1,x2)');
hold on
plot3(x1,x2,y,'ro','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5)
title('最优点分布');
legend('最优点');
hold off
[z index]=max(y); %计算最大值及其位置
x5=[x1(index),x2(index)]%计算最大值对应的x值
z
F. 免疫算法的分析有哪些
现代密码学将算法分为具有不同功能的几种常用的主要有三种:1.对称密码算法DES算法——二十世纪七十年代提出,曾经称霸对称加密领域30年AES算法——二十一世纪初提出用以取代DES算法IDEA算法——二十世纪九十年代初提出,也是一种流行算法RC4算法——经典的流密码算法2.公钥密码算法D-H算法——用于密钥协商,是第一种使用的公钥算法,基于离散对数难解问题RSA算法——最常用的公钥算法,功能强大3.哈希函数(杂凑函数)MD5——常用算法,用于产生80比特的输出SHA-1——也是常用算法,用于产生128比特输出---这是最经典的若干种算法说的不对之处请指正------个人意见仅供参考
G. IA优化算法是什么
IA优化算法指的是免疫算法是模仿生物免疫机制,结合基因的进化机理,人工构造出的一种新型智能优化算法。它具有一般免疫系统的特征,采用群体搜索策略,通过迭代计算,最终以较大的概率得到问题的最优解。
相比较于其他算法,免疫算法利用自身产生多样性和维持机制的特点,保证了种群的多样性,克服了一般寻优过程(特别是多峰值的寻优过程)中不可避免的“早熟”问题,可以求得全局最优解。免疫算法具有自适应性、随机性、并行性、全局收敛性、种群多样性等优点。

免疫算法主要模块:
抗原识别与初始抗体产生。根据待优化问题的特点设计合适的抗体编码规则,并在此编码规则下利用问题的先验知识产生初始抗体种群。
抗体评价。对抗体的质量进行评价,评价准则主要为抗体亲和度和个体浓度,评价得出的优质抗体将进行进化免疫操作,劣质抗体将会被更新。
免疫操作。利用免疫选择、克隆、变异、克隆抑制、种群刷新等算子模拟生物免疫应答中的各种免疫操作,形成基于生物免疫系统克隆选择原理的进化规则和方法,实现对各种最优化问题的寻优搜索。
H. 免疫算法的介绍
免疫算法是一种具有生成+检测 (generate and test)的迭代过程的搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,遗传算法是全局收敛的。

I. 为什么CRC校验时其初始值为所有位为1
下面为CRC的计算过程:
1.设置CRC寄存器,并给其赋值FFFF(hex)。
2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。
3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。
4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。
5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。
6.重复第2至第5步直到所有数据全部处理完成。
7.最终CRC寄存器的内容即为CRC值。
常用的CRC循环冗余校验标准多项式如下:
CRC(16位) = X16+X15+X2+1
CRC(CCITT) = X16+X12 +X5+1
CRC(32位) = X32+X26+X23+X16+X12+X11+X10+ X8+X7+X5+X4+X2+X+1
以CRC(16位)多项式为例,其对应校验二进制位列为1 1000 0000 0000 0101。
注意:这儿列出的标准校验多项式都含有(X+1)的多项式因子;各多项式的系数均为二进制数,所涉及的四则运算仍遵循对二取模的运算规则。
(注:对二取模的四则运算指参与运算的两个二进制数各位之间凡涉及加减运算时均进行XOR异或运算,即:1 XOR 1=0,0 XOR 0=0,1 XOR 0=1)
CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。
J. 免疫算法的相关概念
抗原:在生命科学中,是指能够刺激和诱导机体的免疫系统使其产生免疫应答,并能与相应的免疫应答产物在体内或体外发生特异性反应的物质。在我们的算法中,是指所有可能错误的基因,即非最佳个体的基因。
抗体:在生命科学中,是指免疫系统受抗原刺激后,免疫细胞转化为浆细胞并产生能与抗原发生特异性结合的免疫球蛋白,该免疫球蛋白即为抗体。在本文中是指根据疫苗修正某个个体的基因所得到的新个体。其中,根据疫苗修正某个个体基因的过程即为接种疫苗,其目的是消除抗原在新个体产生时所带来的负面影响。
免疫疫苗:根据进化环境或待求问题,所得到的对最佳个体基因的估计。
免疫算子:同生命科学中的免疫理论类似,免疫算子也分两种类型:全免疫和目标免疫,二者分别对应于生命科学中的非特异性免疫和特异性免疫。其中,全免疫是指群体中每个个体在变异操作后,对其每一环节都进行一次免疫操作的免疫类型;目标免疫则指个体在进行变异操作后,经过一定判断,个体仅在作用点处发生免疫反应的一种类型。前者主要应用于个体进化的初始阶段,而在进化过程中基本上不发生作用,否则将很有可能产生通常意义上所说的“同化现象”;后者一般而言将伴随群体进化的全部过程,也是免疫操作的一个常用算子。
免疫调节:在免疫反应过程中,大量的抗体的产生降低了抗原对免疫细胞的刺激,从而抑制抗体的分化和增殖,同时产生的抗体之间也存在着相互刺激和抑制的关系,这种抗原与抗体、抗体与抗体之间的相互制约关系使抗体免疫反应维持一定的强度,保证机体的免疫平衡。
免疫记忆:指免疫系统将能与抗原发生反应的抗体作为记忆细胞保存记忆下来,当同类抗原再次侵入时,相应的记忆细胞被激活而产生大量的抗体,缩短免疫反应时间。
抗原识别:通过表达在抗原表面的表位和抗体分子表面的对位的化学基进行相互匹配选择完成识别,这种匹配过程也是一个不断对抗原学习的过程,最终能选择产生最适当的抗体与抗原结合而排除抗原。
