使用遗传算法优化的人工免疫系统

9的观点(30天)
DCA的定义问题(AIS)给出了输出函数,
提供三种不同的输出输入权重矩阵。
输出的条件
如果C (csm) >刺& & C (mDC) > C (smDC)
C = 1;
其他的
C = 0;
结束
Cp =数据(目标1)
c =数据(目标2)
Cd =数据(目标,3)为目标的逻辑向量标签
显然,我有一个目标数据应该满足此条件,只要我正确优化权重。
所以,为此我为GA适应度函数创建下面的代码
函数[s、c] = DCA_weights (W、数据目标)
c (1) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
c (2) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
c (3) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
s = c (2) / c (3);%的比例减少C (smDC) / (CmDC)
和约束函数(在解决C (csm) <刺)
函数测查[c] = DCA_constraint_GA (W、数据目标)
c =(9.6 -数据(目标1))* W(1) +(9.6 -数据(目标2))* W(2) +(9.6 -数据(目标,3))* W (3);
测查= [];
我已经定义为权值上下界(6 6 6)和上界(6 6 6)
和最后的代码
ObjectiveFunction = @DCA_weights;
据nvar = 3;%的变量
磅= (6 6 6);%下界
乌兰巴托= (6 6 6);%上界
ConstraintFunction = @DCA_constraint_GA;
[x, fval] = ga(据nvar ObjectiveFunction,[],[],[],[],磅,乌兰巴托,ConstraintFunction);
但我总是得到以下的回应,
没有足够的输入参数的
我认为可能会有一个小错误,我失踪了,请帮助。
谢谢提前

接受的答案

斯蒂芬
斯蒂芬 2018年10月15日
编辑:斯蒂芬 2018年10月15日
你好,
解决像ga只有通过他们的目标函数只有一个参数——在你的情况中w .如果你的函数需要额外的参数你必须通过另一种方式。看到 传递额外的参数 看看这是最适合你的方法。我更喜欢嵌套函数,但还有其他的方法。不推荐使用全局变量。
如果你解决这个问题,它应该工作。
一般的例子:
%调用外部函数开始计算
outer_fcn
%定义外部函数包含额外的变量/值:
函数outer_fcn
data =;
目标=;
% ga在外部函数:
ObjectiveFunction = @DCA_weights;
据nvar = 3;%的变量
磅= (6 6 6);%下界
乌兰巴托= (6 6 6);%上界
ConstraintFunction = @DCA_constraint_GA;
[x, fval] = ga(据nvar ObjectiveFunction,[],[],[],[],磅,乌兰巴托,ConstraintFunction);
%(1非线性约束函数。内部函数)
函数测查[c] = DCA_constraint_GA (W、数据目标)
c =(9.6 -数据(目标1))* W(1) +(9.6 -数据(目标2))* W(2) +(9.6 -数据(目标,3))* W (3);
测查= [];
结束
%目标函数(2。内部函数)
函数[s、c] = DCA_weights (W、数据目标)
c (1) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
c (2) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
c (3) = 0.5 * (W(1) *数据(目标1)+ W(3) *数据(目标,3)+ W(2) *数据(目标2))/ W (W (1) + (2) + W (3));
s = c (2) / c (3);%的比例减少C (smDC) / (CmDC)
结束
%外部函数的结束
结束
致以最亲切的问候
斯蒂芬
28日评论
BR
BR 2018年10月18日
编辑:BR 2018年10月18日
是的伴侣,是这样认为的。由于一吨。
致以最亲切的问候
Baqar

登录置评。

更多的答案(0)

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!