遗传算法(大白话解析遗传算法):http://www.cnblogs.com/heaad/archive/2010/12/23/1914725.html
Java代码用遗传算法解决0-1背包:http://wenku.baidu.com/view/20beb6da6f1aff00bed51ea8
.html
一、
MapReduce和遗传算法结合:(参考文献:MapReduce-GA-eScience2008)
Map——评估每个个体
输入: (key, value)
(个体索引, 个体)
输出:
(key,value)
(相同默认的键值, 个体)
Reduce——选择局部最优个体
输出:
(key,value)
(个体, 1)
Reduce——全局最优
输出:
(key, value)
(最优个体,1)
Coordinator——交叉、变异
二、MapReduce和粒子群算法结合:(参考文献:Parallel PSOUsing MapReduce)
Map——得到最优个体解
输入:(key, value)(粒子索引,粒子状态:包括相邻节点、位置坐标、速度、位置值、个人最优位置、个人最 优值、全局最优位置、全局最优值)
输出:(key, value) (最优粒子索引,最优粒子状态:同上)
Reduce——得到最优全局解
输出:(key, value) (全局最优粒子索引,全局最优粒子状态:同上)
三、产生初始粒子
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
public class psotest {
private final int iRang= 30;
static int dim =2;
static int sizepop =20;
double sum1 = 0;
double sum2 = 0;
double g = 10000;
private Random random =new Random();
public double[][] pop =new double[sizepop][dim];
public double[][] dpbest= new double[sizepop][dim];
public double[][] V =new double[sizepop][dim];
public double[] fitness= new double[sizepop];
public double[] gbest =new double[dim];
public double[]fitnessgbest = new double[sizepop];
public double[]bestfitness = new double[sizepop];
int m_iTempPos =999;
public void c() {
for(int i = 0; i < sizepop;i++)
{
for(int j= 0; j < dim; j++) {
pop[i][j] = (