我正在制作一种用于教育目的的神经网络游戏遗传算法。
,我希望能够在我的gpu (启用cuda)上运行我的python代码,以节省一些时间并加速这个过程。
我的代码的原理很简单,我的遗传算法是一个全局循环,在每一次迭代中,我需要评估我的种群中的每一个神经网络。
while(some_condition):
# ...
game = Game()
for i in range(len(self.networks)):
self.networks[i].score = game.start(network=self.networks[i])
# ...
正如您所看到的,我
我想实现一个遗传算法(我还不确定语言/框架,也许是)来优化一些流体的混合比。
每个混合物包含多达5种成分的a, b, c, d, e,我将其建模为具有变化值的基因。由于染色体代表混合比,有两个附加条件(至少):
(1) a + b + c + d + e = 1
(2) a, b, c, d, e >= 0
我还处在计划我的项目的阶段,因此我不能给出样本代码,但是我想知道这些条件是否以及如何在一个框架如钟表匠的遗传算法中实现。
编辑
由于这似乎并不是直截了当的澄清:
问题是条件(1) -如果每个基因a, b, c, d, e是随机独立选择的,发生这种情况的概率约为0。因此,我需要以
我用Matlab中的遗传算法求解一个优化问题,我的目标函数是用变量v最小化代价,
function b = cost (v)
load ('data.mat');
c1=0;
for i = 1:N
for j=1:1
c1 = c1 + c(i,j)*v(i,j);
end
end
b=c1;
我的约束是康斯特
function [z] = const(v)
load ('data1.mat');
Z1=1;
for i=1:N
for j=1:1
a(i,j) = (1-v(i,j))*t(i,j);