没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/release/download_crawler_static/9398926/bg1.jpg)
河南理工大学
计算机科学与技术学院
课程设计报告
2015— 2016 学年第一学期
课程名称 Java
语言程序设计
设计题目 利用粒子群算法优化函数
姓 名 任晓兵
学 号 321509010205
专业班级 计算机(本) 1502
指导教师 刘 志 中
2015 年 1 月 6 日
![](https://csdnimg.cn/release/download_crawler_static/9398926/bg2.jpg)
1
目录
一.课程设计内容.............................................................................................................................12
(一)课程设计题目......................................................................................................................12
(二)课程设计目的.....................................................................................................................12
(三)课程设计要求......................................................................................................................12
二.算法相关知识.............................................................................................................................12
(一) 粒子群算法简介.................................................................................................................12
PSO 算法............................................................................................................................12
(二) 粒子群算法的运算流程....................................................................................................12
三.算法的 JAVA 实现.........................................................................................................................13
比较编辑:........................................................................................................................................13
演化计算技术.....................................................................................................................................13
(二)主要程序代码......................................................................................................................15
1.主函数..............................................................................................................................15
3.代码实现.........................................................................................................................15
//package noah;...........................................................................................................................15
.....................................................................................................................................................15
import java.io.BufferedReader;..................................................................................................15
import java.io.FileInputStream;..................................................................................................15
import java.io.IOException;........................................................................................................15
import java.io.InputStreamReader;.............................................................................................15
import java.util.ArrayList;..........................................................................................................15
import java.util.Random;............................................................................................................15
.....................................................................................................................................................15
public class PSO {.......................................................................................................................15
.....................................................................................................................................................15
private int bestNum;...................................................................................................................15
private float w;...........................................................................................................................15
private int MAX_GEN;// 迭代次数..........................................................................................15
private int scale;// 种群规模......................................................................................................16
.....................................................................................................................................................16
private int cityNum; // 城市数量,编码长度...........................................................................16
private int t;// 当前代数.............................................................................................................16
.....................................................................................................................................................16
private int[][] distance; // 距离矩阵..........................................................................................16
.....................................................................................................................................................16
private int[][] oPopulation;// 粒子群.........................................................................................16
private ArrayList<ArrayList<SO>> listV;// 每科粒子的初始交换序列.................................16
.....................................................................................................................................................16
private int[][] Pd;// 一颗粒子历代中出现最好的解,............................................................16
![](https://csdnimg.cn/release/download_crawler_static/9398926/bg3.jpg)
2
private int[] vPd;// 解的评价值.................................................................................................16
.....................................................................................................................................................16
private int[] Pgd;// 整个粒子群经历过的的最好的解,每个粒子都能记住自己搜索到的最
好解.............................................................................................................................................16
private int vPgd;// 最好的解的评价值.....................................................................................16
private int bestT;// 最佳出现代数.............................................................................................16
.....................................................................................................................................................16
private int[] fitness;// 种群适应度,表示种群中各个个体的适应度....................................16
.....................................................................................................................................................16
private Random random;............................................................................................................16
.....................................................................................................................................................16
public PSO() {............................................................................................................................16
.....................................................................................................................................................16
}..................................................................................................................................................16
.....................................................................................................................................................16
/**...............................................................................................................................................16
* constructor of GA....................................................................................................................16
*..................................................................................................................................................16
* @param n................................................................................................................................16
* 城市数量.................................................................................................................................16
* @param g................................................................................................................................16
* 运行代数.................................................................................................................................16
* @param w...............................................................................................................................16
* 权重.........................................................................................................................................16
**/...............................................................................................................................................16
public PSO(int n, int g, int s, float w) {.....................................................................................16
this.cityNum = n;........................................................................................................................16
this.MAX_GEN = g;..................................................................................................................16
this.scale = s;..............................................................................................................................16
this.w = w;..................................................................................................................................16
}..................................................................................................................................................16
.....................................................................................................................................................16
// 给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默...............16
@SuppressWarnings("resource")...............................................................................................17
/**...............................................................................................................................................17
* 初始化 PSO 算法类................................................................................................................17
* @param filename 数据文件名,该文件存储所有城市节点坐标数据..............................17
* @throws IOException.............................................................................................................17
*/.................................................................................................................................................17
private void init(String filename) throws IOException {..........................................................17
// 读取数据.................................................................................................................................17
int[] x;.........................................................................................................................................17
int[] y;.........................................................................................................................................17
String strbuff;.............................................................................................................................17
![](https://csdnimg.cn/release/download_crawler_static/9398926/bg4.jpg)
3
BufferedReader data = new BufferedReader(new InputStreamReader(...................................17
new FileInputStream(filename)));.............................................................................................17
distance = new int[cityNum][cityNum];....................................................................................17
x = new int[cityNum];................................................................................................................17
y = new int[cityNum];................................................................................................................17
for (int i = 0; i < cityNum; i++) {..............................................................................................17
// 读取一行数据,数据格式 1 6734 1453...............................................................................17
strbuff = data.readLine();...........................................................................................................17
// 字符分割.................................................................................................................................17
String[] strcol = strbuff.split(" ");..............................................................................................17
x[i] = Integer.valueOf(strcol[1]);// x 坐标.................................................................................17
y[i] = Integer.valueOf(strcol[2]);// y 坐标.................................................................................17
}..................................................................................................................................................17
// 计算距离矩阵........................................................................................................................17
// ,针对具体问题,距离计算方法也不一样,此处用的是 att48 作为案例,它有 48 个城
市,距离计算方法为伪欧氏距离,最优值为 10628.............................................................17
for (int i = 0; i < cityNum - 1; i++) {.........................................................................................17
distance[i][i] = 0; // 对角线为 0................................................................................................17
for (int j = i + 1; j < cityNum; j++) {.........................................................................................17
double rij = Math........................................................................................................................17
.sqrt(((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]).............................................................................17
* (y[i] - y[j])) / 10.0);.................................................................................................................17
// 四舍五入,取整....................................................................................................................17
int tij = (int) Math.round(rij);.....................................................................................................17
if (tij < rij) {................................................................................................................................17
distance[i][j] = tij + 1;................................................................................................................17
distance[j][i] = distance[i][j];.....................................................................................................17
} else {........................................................................................................................................17
distance[i][j] = tij;......................................................................................................................17
distance[j][i] = distance[i][j];.....................................................................................................17
}..................................................................................................................................................17
}..................................................................................................................................................17
}..................................................................................................................................................17
distance[cityNum - 1][cityNum - 1] = 0;...................................................................................18
.....................................................................................................................................................18
oPopulation = new int[scale][cityNum];...................................................................................18
fitness = new int[scale];.............................................................................................................18
.....................................................................................................................................................18
Pd = new int[scale][cityNum];...................................................................................................18
vPd = new int[scale];.................................................................................................................18
.....................................................................................................................................................18
/*.................................................................................................................................................18
* for(int i=0;i<scale;i++) { vPd[i]=Integer.MAX_VALUE; }..................................................18
*/.................................................................................................................................................18
![](https://csdnimg.cn/release/download_crawler_static/9398926/bg5.jpg)
4
.....................................................................................................................................................18
Pgd = new int[cityNum];...........................................................................................................18
vPgd = Integer.MAX_VALUE;.................................................................................................18
.....................................................................................................................................................18
// nPopulation = new int[scale][cityNum];................................................................................18
.....................................................................................................................................................18
bestT = 0;....................................................................................................................................18
t = 0;...........................................................................................................................................18
.....................................................................................................................................................18
random = new Random(System.currentTimeMillis());.............................................................18
/*.................................................................................................................................................18
* for(int i=0;i<cityNum;i++) { for(int j=0;j<cityNum;j++) {...................................................18
* System.out.print(distance[i][j]+","); } System.out.println(); }..............................................18
*/.................................................................................................................................................18
.....................................................................................................................................................18
}..................................................................................................................................................18
.....................................................................................................................................................18
// 初始化种群,多种随机生成办法........................................................................................18
void initGroup() {......................................................................................................................18
int i, j, k;.....................................................................................................................................18
for (k = 0; k < scale; k++)// 种群数...........................................................................................18
{..................................................................................................................................................18
oPopulation[k][0] = random.nextInt(65535) % cityNum;........................................................18
for (i = 1; i < cityNum;)// 粒子个数..........................................................................................18
{..................................................................................................................................................18
oPopulation[k][i] = random.nextInt(65535) % cityNum;.........................................................18
for (j = 0; j < i; j++) {.................................................................................................................18
if (oPopulation[k][i] == oPopulation[k][j]) {............................................................................18
break;..........................................................................................................................................18
}..................................................................................................................................................18
}..................................................................................................................................................18
if (j == i) {..................................................................................................................................18
i++;.............................................................................................................................................18
}..................................................................................................................................................19
}..................................................................................................................................................19
}..................................................................................................................................................19
.....................................................................................................................................................19
/*.................................................................................................................................................19
* for(i=0;i<scale;i++) { for(j=0;j<cityNum;j++) {...................................................................19
* System.out.print(oldPopulation[i][j]+","); } System.out.println(); }.....................................19
*/.................................................................................................................................................19
}..................................................................................................................................................19
.....................................................................................................................................................19
void initListV() {........................................................................................................................19
剩余26页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
qq_33703504
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 自动驾驶核心算法-YOLOv11多目标追踪与碰撞预警系统开发指南.pdf
- 自动驾驶核心-YOLOv11多目标轨迹跟踪与碰撞预警系统开发.pdf
- 自动驾驶新范式-YOLOv11多传感器融合障碍物检测方案.pdf
- 浙江大学 翁恺 C 语言程序设计课程视频及课件
- Python 实现1-DGAN生成对抗网络的数据生成(含模型描述及示例代码)
- MATLAB实现BO-LSSVM贝叶斯优化算法优化最小二乘支持向量机数据回归预测 (含模型描述及示例代码)
- MATLAB实现CNN-LSSVM基于卷积神经网络-最小二乘支持向量机的数据回归预测(含模型描述及示例代码)
- python-3.13.0
- Matlab实现EEMD集合经验模态分解时间序列信号分解(含模型描述及示例代码)
- 边缘计算优化-YOLOv11模型量化压缩与嵌入式设备部署指南.pdf
- 边缘计算新标杆-YOLOv11模型量化与TensorRT加速实战.pdf
- 边缘计算优化-YOLOv11在嵌入式设备的轻量化部署与性能调优.pdf
- 跨模态融合实践-YOLOv11与多传感器数据协同的仓储管理.pdf
- 轨道交通安全-YOLOv11道岔异物检测与列车进站预警系统.pdf
- 跨模态融合实践-YOLOv11红外与可见光双传感器目标追踪.pdf
- 跨平台实战-YOLOv11模型在Jetson、TensorRT的极致优化技巧.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)