遗传算法(GA)解决数据拟合和拟合方程中未知参数代码
本代码为遗传算法求解模型未知参数的程序,在建立模型的过程中,模型的待定系数通常是未知的,而通过数据拟合出来的模型无法求解,遗传算法通过以下步骤: (1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体。 (2)个体评价:计算群体P(t)中各个个体的适应度。 (3)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。 (4)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。 (5)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。 (6)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。 对未知参数进行求解,当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止。预设的代数一般设置为100-500代。