资源简介
用遗传算法解决多维背包问题,采用java代码。用遗传算法解决多维背包问题,采用java代码用遗传算法解决多维背包问题,采用java代码用遗传算法解决多维背包问题,采用java代码。
代码片段和文件信息
import java.util.Random;
public class Chromosome implements GA_ParamCloneable{
private int gene[];
private int fitness;
private int objValue;
/**
* Constructor
* @param length: The length of Chromosome‘s gene.
*/
public Chromosome(int length){
if(length<0){
System.out.println(“The length of array is unreasonable.“);
}
else{
this.gene=new int[length];
}
}
/**
* Deep Clone!!!
*/
@Override
public Chromosome clone() {
Chromosome c = null;
try{
c = (Chromosome)super.clone();
c.setGene(c.getGene().clone());
}catch(CloneNotSupportedException e) {
e.printStackTrace();
}
return c;
}
/**
* Randomly set genes on current chromosome.
*/
public void randomSetGene(){
Random random=new Random();
for(int i=0;i gene[i]=Math.round(random.nextFloat());
}
}
/**
*
* @param primaryGeneArray
*/
public void setPrimaryGene(int[] primaryGeneArray){
Random random=new Random();
for(int i=0;i gene[i]=primaryGeneArray[i]==1?1:Math.round(random.nextFloat());
}
}
/**
* Return the fitness of Chromosome.
* @return int
*/
public int getFitness(){
return this.fitness;
}
/**
* Set the fitness of Chromosome.
* @param fitness: int
* @return void
*/
public void setFitness(int fitness){
this.fitness=fitness;
}
/**
* Acquire objValue.
* @return
*/
public int getObjValue() {
return objValue;
}
/**
* Set the chromosome‘s objValue.
* @param objValue
*/
public void setObjValue(int objValue) {
this.objValue = objValue;
}
/**
* Acquire genes
* @return
*/
public int[] getGene(){
return this.gene;
}
/**
*
* @param gene
*/
public void setGene(int[] gene){
this.gene=gene;
}
/**
*
* @param index
*/
public void notGene(int index){
this.gene[index]=1-gene[index];
}
/**
* Calculate the value of Chromosome.
* @param void
* @return int
*/
public int calcObjValue(){
int chormosomeValue=0;
for(int i=0;i chormosomeValue+=(gene[i]*VALUE_ARRAY[i]);
}
setObjValue(chormosomeValue);
return chormosomeValue;
}
/**
* Carrying out mutation on the current chromosome.
* @param size: the size of Chromosome.
* @return rate: the rate of mutation.
* @return void
*/
public void mutate(double rate){
Random random=new Random();
for(int i=0;i if(random.nextDouble() gene[i]=1-gene[i];
}
}
}
/**
* Print the gene.
*/
public void printGene(){
for(int elem:gene){
System.out.print(elem+“ “);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2019-12-09 21:58 GA\.classpath
文件 378 2019-12-09 21:58 GA\.project
文件 3137 2019-12-16 11:23 GA\bin\Chromosome.class
文件 2227 2019-12-15 19:38 GA\bin\GA_Param.class
文件 2484 2019-12-17 22:02 GA\bin\GA_Solution.class
文件 836 2019-12-16 11:30 GA\bin\Population$1.class
文件 10286 2019-12-16 11:30 GA\bin\Population.class
文件 581 2019-12-17 22:01 GA\bin\Program.class
文件 2823 2019-12-16 11:23 GA\src\Chromosome.java
文件 1470 2019-12-15 19:38 GA\src\GA_Param.java
文件 528 2019-12-17 22:43 GA\src\GA_Solution.java
文件 12166 2019-12-17 23:09 GA\src\Population.java
文件 181 2019-12-17 22:01 GA\src\Program.java
目录 0 2019-12-15 13:06 GA\bin
目录 0 2019-12-10 12:08 GA\src
目录 0 2019-12-17 22:42 GA
----------- --------- ---------- ----- ----
37329 16
- 上一篇:魔塔Java开源(素材+源码)
- 下一篇:Java实现Web服务器和客户端
相关资源
- 基于JAVA的kmeans算法
- 用java编写的多边形扫描填充算法,有
- java语言实现自动编码器算法autoencod
- 双层编码的遗传算法优化Flowshop调度程
- 旅行商问题-遗传算法--java
- JAVA基础编程练习题50题及经典算法9
- Java实现simHash算法
- 高效敏感词过滤JAVA实现DFA算法 5000字
- 遗传算法旅行者问题java实现
- 基于递归分割的迷宫生成算法与自动
- Java实现逻辑回归算法(LogRegression)对
- java编写整合操作系统五个算法
- 支持向量机算法实现Java、python、mat
- Java版数据结构与算法视频教程(20集
- 清华大学人工智能大作业源码
- java实现k-means算法137342
- 基于令牌桶算法的Java限流实现
- js+java实现国密算法SM2
- 完整都的java聚类算法包括界面
- java页面置换算法的模拟实现
- java 图的邻接表实现图的各种算法
- 五子棋 java版 博弈算法
- 国密算法SM3_SM4.zip
- 基于java图形界面的内存管理相关算法
- 粒子群算法
- SVM 算法 java 实现
- 操作系统页面置换算法-java界面化实现
- RSA加解密算法java源代码
- 对称加密AES算法,前后端实现
- java rsa非对称加密算法3个源代码
评论
共有 条评论