遗传算法之GAUL】的更多相关文章

遗传算法之GAUL简介 简介        GAUL(遗传算法工具库的简称) GAUL is an open source programming library, released under the GNU General Public License.  It is designed to assist in the development of code that requires evolutionary algorithms. GAUL官网地址为:http://gaul.source…
遗传算法GA的核心代码实现: 最核心: private static ArrayList<int[]> GA(ArrayList<int[]> pop,int gmax,double crossoverProb,double mutationRate) { HashMap<Integer,double[]> segmentForEach=calcSelectionProbs(pop); ArrayList<int[]> children=new ArrayL…
首先理解云计算里,资源调度的含义: 看了很多云计算资源调度和任务调度方面的论文,发现很多情况下这两者的意义是相同的,不知道这两者是同一件事的不同表述还是我没分清吧,任务调度或者资源调度大概就是讲这样一件事情: 用户有n个计算任务(Task),{t1,t2,t3,...tm},将这n个任务分配到m个资源(其实就是指虚拟机,Virtual Machine)上,用这m个资源来计算这n个任务(注意,一般n>m,且很多时候n>>m),直到所有任务都计算完成.如何分配使得这n个任务的总的计算时间最少…
解码操作是整个遗传算法最重要的一步,在这步里面我们利用配置文件中的信息将染色体解码成一个有向无环图. 在介绍解码操作之前我们先来看一下配置文件,在part1绪论中我们已经介绍了一个车间调度问题的基本信息可以用一个表格来表示:…
下面,我们以车间调度为例来谈谈遗传算法中的另一个重要操作变异.变异操作通常发生在交叉操作之后,它的操作对象是交叉得到的新染色体.在本文中我们通过随机交换染色体的两个位置上的值来得到变异后的染色体,变异操作的代码如下: def Mutation(p)://p是染色体 nt = len(p)//nt存放染色体的长度 i = randint(0, nt - 1)//i是0到nt-1之间的一个随机数 j = randint(0, nt - 1)//j是0到nt-1之间的一个随机数 m = [job fo…
上一次我们使用遗传算法求解了一个较为复杂的多元非线性函数的极值问题,也基本了解了遗传算法的实现基本步骤.这一次,我再以经典的TSP问题为例,更加深入地说明遗传算法中选择.交叉.变异等核心步骤的实现.而且这一次解决的是离散型问题,上一次解决的是连续型问题,刚好形成对照. 首先介绍一下TSP问题.TSP(traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问题规模的增大按指数方式增长,到目前为止还没有找到一个多项式时间的有效算法.TS…
以前搞数学建模的时候,研究过(其实也不算是研究,只是大概了解)一些人工智能算法,比如前面已经说过的粒子群算法(PSO),还有著名的遗传算法(GA),模拟退火算法(SA),蚁群算法(ACA)等.当时懂得非常浅,只会copy别人的代码(一般是MATLAB),改一改值和参数,东拼西凑就拿过来用了,根本没有搞懂的其内在的原理到底是什么.这一段时间,我又重新翻了一下当时买的那本<MATLAB智能算法30个案例分析>,重读一遍,发现这本书讲的还是非常不错的,不仅有现成算法的MATLAB实现,而且把每一种算…
本文主要介绍遗传算法(实数编码)的交叉操作中的SBX,模拟二进制交叉. 首先,给出个人用python2.7实现的代码,具体模块已上传到: https://github.com/guojun007/sbx_cross #!/usr/bin/env python #encoding:UTF-8 import numpy as np import random """ SBX 模拟二进制交叉 输入: population 种群矩阵 alfa 交叉概率 numRangeList 决策…
上篇我们用遗传算法求解了方程,其中用到的编码方式是二进制的编码,实现起来相对简单很多, 就连交配和变异等操作也是比较简单,但是对于TSP问题,就稍微复杂一点,需要有一定的策略, 才能较好的实现. 这次的TSP问题的题目是: 随机产生10~30个城市,每个城市之间的距离也是随机产生,距离的范围是[1,50],求最优的路径 ========================================================== 下面就是具体的求解,由于我的策略是基于知网上的<一种改进的遗…
1.编码 这篇文章中遗传算法对TSP问题的解空间编码是十进制编码.如果有十个城市,编码可以如下: 0 1 2 3 4 5 6 7 8 9 这条编码代表着一条路径,先经过0,再经过1,依次下去. 2.选择 选择操作仍然是轮盘赌模型,虽然不会出现路径长度为负数的情况,但是需要考虑与上篇文章不同的是求的是最小值.因此在代码中概率的计算为: 3.交叉 4.变异 变异操作就是交换两个城市,例如: 0 1 2 3 4 0 2 1 3 4 5.代码实现 #include<stdio.h> #include&…