目录
大自然里的各种生物在生存环境中相互竞争,优胜劣汰,不断进化,对环境具有良好的适应性,人们细心观察着周围神奇的大自然,激发出无限的想象,模拟生物的进化机制,提出了一系列进化计算方法,如进化规划、遗传算法、粒子群优化算法以及鱼群算法等。然而,这些方法仍拘泥于在种群空间中进行,能够利用的信息资源只是当前的或者上一步进化信息,而未充分挖掘和利用进化过程中的历史知识,和对未来搜索的有效预测。所以,如何提取有效信息并有效利用进化过程中隐含的各类信息,以提高进化效率,成为该领域的一个研究热点文化是用符号、价值意义和社会规范表示整个人类群体的生产方式和生活过程的集合,文就是知识的结构性积累;化就是教化与人。人类一代代继承着在文化,以超越其他所有物种的速度进化着,才有了文明如此发达的今天。如果没有文化就没有可以借鉴的经验,人类社会就会在不断地重复试错中徘徊不前。
文化算法,从两个层面分别模拟生物的进化和文化的进化,两个过程既相互独立又相互影响,是一种基于知识的双层进化系统。该算法优点就在于,可以从每次的搜索中提取解决问题的有效信息,并反馈指导种群的搜索过程,在精度和效率上都使算法有效提升。
人工神经网络可以实现有监督和无监督条件下的分类和回归工作,通过适当地调节权重系数,使神经网络的输出收敛于正确的目标7。而这些权重系数,是通过网络的学习训练得到的,训练过程是通过预先提供的一批数据,经由网络分析找出输入一输出之间潜在的规律。之后,网络的输出数据就是根据这些规律推算出来的。人工神经网络有以下主要特点:
(1)较强的学习能力;
(2)较好地模拟人的思维感知过程的能力;
(3)较强的联想能力和容错能力
(4)较好的并行协同处理能力;
(5)是一个非线性动力系统。
本文仅展现部分代码,
- function Culture = AdjustCulture(Culture, spop)
- n = numel(spop);
- nVar = numel(spop(1).Position);
- for i = 1:n
- if spop(i).Cost<Culture.Situational.Cost
- Culture.Situational = spop(i);
- end
- for j = 1:nVar
- if spop(i).Position(j)<Culture.Normative.Min(j) ...
- || spop(i).Cost<Culture.Normative.L(j)
- Culture.Normative.Min(j) = spop(i).Position(j);
- Culture.Normative.L(j) = spop(i).Cost;
- end
- if spop(i).Position(j)>Culture.Normative.Max(j) ...
- || spop(i).Cost<Culture.Normative.U(j)
- Culture.Normative.Max(j) = spop(i).Position(j);
- Culture.Normative.U(j) = spop(i).Cost;
- end
- end
- end
- Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
- end
function Culture = AdjustCulture(Culture, spop)
n = numel(spop);
nVar = numel(spop(1).Position);
for i = 1:n
if spop(i).Cost
end
for j = 1:nVar
if spop(i).Position(j)
Culture.Normative.L(j) = spop(i).Cost;
end
if spop(i).Position(j)>Culture.Normative.Max(j) ...
|| spop(i).Cost
Culture.Normative.U(j) = spop(i).Cost;
end
end
end
Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
end
function Culture = AdjustCulture(Culture, spop)
n = numel(spop);
nVar = numel(spop(1).Position);
for i = 1:n
if spop(i).Cost
end
for j = 1:nVar
if spop(i).Position(j)
Culture.Normative.L(j) = spop(i).Cost;
end
if spop(i).Position(j)>Culture.Normative.Max(j) ...
|| spop(i).Cost
Culture.Normative.U(j) = spop(i).Cost;
end
end
end
Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
end
function Culture = AdjustCulture(Culture, spop)
n = numel(spop);
nVar = numel(spop(1).Position);
for i = 1:n
if spop(i).Cost
end
for j = 1:nVar
if spop(i).Position(j)
Culture.Normative.L(j) = spop(i).Cost;
end
if spop(i).Position(j)>Culture.Normative.Max(j) ...
|| spop(i).Cost
Culture.Normative.U(j) = spop(i).Cost;
end
end
end
Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
end
function Culture = AdjustCulture(Culture, spop)
n = numel(spop);
nVar = numel(spop(1).Position);
for i = 1:n
if spop(i).Cost
end
for j = 1:nVar
if spop(i).Position(j)
Culture.Normative.L(j) = spop(i).Cost;
end
if spop(i).Position(j)>Culture.Normative.Max(j) ...
|| spop(i).Cost
Culture.Normative.U(j) = spop(i).Cost;
end
end
end
Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
end
完整代码:基于文化算法优化的神经网络预测研究
[1]魏秀. 文化算法优化RBF神经网络及应用研究[D].太原理工大学,2011.