资源简介
java遗传算法_求TSP,java界面版,旅行商问题求问题的最优解

代码片段和文件信息
package liwu29;
/**
*
* @author liwu
* 遗传算法解决TSP旅行商问题
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
public class GA {
private int scale;// 种群规模
private int cityNum; // 城市数量,染色体长度
private int MAX_GEN; // 运行代数
private int[][] distance; // 距离矩阵
private int bestT;// 最佳出现代数
private int bestLength; // 最佳长度
private int[] bestTour; // 最佳路径
// 初始种群,父代种群,行数表示种群规模,一行代表一个个体,即染色体,列表示染色体基因片段
private int[][] oldPopulation;
private int[][] newPopulation;// 新的种群,子代种群
private int[] fitness;// 种群适应度,表示种群中各个个体的适应度
private float[] Pi;// 种群中各个个体的累计概率
private float Pc;// 交叉概率
private float Pm;// 变异概率
private int t;// 当前代数
private Random random;
public GA() {
}
/**
* constructor of GA
*
* @param s
* 种群规模
* @param n
* 城市数量
* @param g
* 运行代数
* @param c
* 交叉率
* @param m
* 变异率
*
**/
public GA(int s int n int g float c float m) {
scale = s;
cityNum = n;
MAX_GEN = g;
Pc = c;
Pm = m;
}
// 给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默
@SuppressWarnings(“resource“)
/**
* 初始化GA算法类
* @param filename 数据文件名,该文件存储所有城市节点坐标数据
* @throws IOException
*/
public void init(String filename) throws IOException {
// 读取数据
int[] x;
int[] y;
String strbuff;
BufferedReader data = new BufferedReader(new InputStreamReader(
new FileInputStream(filename)));
distance = new int[cityNum][cityNum];
x = new int[cityNum];
y = new int[cityNum];
for (int i = 0; i < cityNum; i++) {
// 读取一行数据,数据格式1 6734 1453
strbuff = data.readLine();
// 字符分割
String[] strcol = strbuff.split(“ “);
x[i] = Integer.valueOf(strcol[1]);// x坐标
y[i] = Integer.valueOf(strcol[2]);// y坐标
}
// 计算距离矩阵
// ,针对具体问题,距离计算方法也不一样,此处用的是att48作为案例,它有48个城市,距离计算方法为伪欧氏距离,最优值为10628
for (int i = 0; i < cityNum - 1; i++) {
distance[i][i] = 0; // 对角线为0
for (int j = i + 1; j < cityNum; j++) {
double rij = Math
.sqrt(((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j])
* (y[i] - y[j])) / 10.0);
// 四舍五入,取整
int tij = (int) Math.round(rij);
if (tij < rij) {
distance[i][j] = tij + 1;
distance[j][i] = distance[i][j];
} else {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 396 2018-09-12 19:37 liwu29\.classpath
文件 382 2018-09-12 19:37 liwu29\.project
文件 642 2018-09-12 19:37 liwu29\.settings\org.eclipse.jdt.core.prefs
文件 8744 2018-09-16 13:55 liwu29\bin\liwu29\GA.class
文件 3357 2018-09-16 13:56 liwu29\bin\liwu29\Panel.class
文件 18868 2018-09-16 13:55 liwu29\src\liwu29\GA.java
文件 2400 2018-09-16 13:56 liwu29\src\liwu29\Panel.java
目录 0 2018-09-16 13:53 liwu29\bin\liwu29
目录 0 2018-09-12 20:16 liwu29\src\liwu29
目录 0 2018-09-12 19:37 liwu29\.settings
目录 0 2018-09-16 13:53 liwu29\bin
目录 0 2018-09-12 20:08 liwu29\src
目录 0 2018-09-12 19:37 liwu29
----------- --------- ---------- ----- ----
34789 13
- 上一篇:android.support.v7
- 下一篇:Java实现的一个FTP客户端
相关资源
- Vue项目实现手机端上传图片,使用于
- 音乐相关的jar
- The Java Programming Language.4th.Edition.Aug.
- StudentManagerWeb.zip
- 淘淘商城修改后的pagehelper-3.4.2-fix.j
- im4java-ImageMagick图片压缩处理
- jai_imageio-1.1-alpha与Swingx-1.6.1的jar包
- 用javaGUI做的阳光酒店管理系统
- uCodeEditor v1.2.4.unitypackage
- 教室管理系统 javaGUI编程
- JavaGUI+JDBC模拟ATM项目
- tesseract-ocr 相关jar包 jar_jai_imageio-1.1
- android listview+fragment实现仿京东分类
- Android下自动连接指定SSID的WIFI的简单
- 基于JSP的网上简易论坛
- android 仿微信界面 ViewPager+Fragment
- Android 图表开源框架HelloCharts 之 柱状
- Android左侧导航栏。ListView动态显示导
- Android开发fragment界面上点击按钮跳转
- 套用并修改Android Studio模板Tab activit
- Android 开源组件PagerBottomTabStrip 快速构
- Java 类图大全(包含Java 1.4.2以来绝大
- Obfuscator Pro 3.9.10.unitypackage
- Swagger与SpringMVC项目整合相关jar包
- BoardDiag v2.99a.zip
- 于遗传算法的自动排课系统毕业设计
- redis-tomcat8以上集群所需要的jar :tomc
- android自定义控件CircleImageVIew
- javaGUI界面的多功能日历日历、记事本
- Android 官方推荐 : DialogFragment 创建对话
评论
共有 条评论