資源簡介
粒子群算法 實現 最短路徑,解決TSL多旅行商問題,以此為基礎解決VRP問題

代碼片段和文件信息
package?algoProject;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Random;
public?class?PSOSolution?{
public?static?final?long?serialVersionUID?=?1L;
public?static?final?int?VEHICLE_COUNT?=?30;
public?static?final?int?MAX_VELOCITY?=?4;
public?static?final?int?MAX_ITERATION?=?100;
private?static?ArrayList?vehicles?=?new?ArrayList();
public?static?ArrayList?stations?=?new?ArrayList();
public?static?final?int?STATION_COUNT?=?10;
public?static?final?double?TARGET?=?86.63;
public?static?int?X[]?=?new?int[STATION_COUNT];
public?static?int?Y[]?=?new?int[STATION_COUNT];
public?List>?pathList;
public?List?finalList;
public?void?initializePath()
{
for?(int?i?=?0;?i? X[i]?=?new?Random().nextInt(30);
Y[i]?=?new?Random().nextInt(30);
}
for?(int?i?=?0;?i? VisitingStations?station?=?new?VisitingStations();
station.x(X[i]);
station.y(Y[i]);
stations.add(station);
}
return;
}
public?void?executePSO()?{
Vehicle?vehicle?=?null;
int?iterationNo?=?0;
boolean?done?=?false;
pathList?=?new?ArrayList<>();
initialize();
while?(!done)?{
if?(iterationNo?
for?(int?i?=?0;?i? List?sublist?=?new?ArrayList<>();
vehicle?=?vehicles.get(i);
System.out.print(“Route:?“);
for?(int?j?=?0;?j? System.out.print(vehicle.getStationData(j)?+?“?“);
sublist.add(vehicle.getStationData(j));
}
findTotalDistance(i);
System.out.print(“Distance:?“?+?vehicle.getVehicleBest()?+?“\n“);
if?(vehicle.getVehicleBest()?<=?TARGET)?{
done?=?true;
}
pathList.add(sublist);
}
bubbleSort();
fitnessFunction();
updatevehicles();
System.out.println(“iterationNo?number:?“?+?iterationNo);
iterationNo++;
}?else?{
done?=?true;
}
}
return;
}
public?void?initialize()?{
for?(int?i?=?0;?i? Vehicle?newVehicle?=?new?Vehicle(STATION_COUNT);
for?(int?j?=?0;?j? newVehicle.setStationData(j?j);
}
vehicles.add(newVehicle);
for?(int?j?=?0;?j?10;?j++)?{
randomStationArrange(vehicles.indexOf(newVehicle));
}
findTotalDistance(vehicles.indexOf(newVehicle));
}
return;
}
private?static?void?randomStationArrange(final?int?index)?{
int?stationA?=?new?Random().nextInt(STATION_COUNT);
int?stationB?=?0;
boolean?done?=?false;
while?(!done)?{
stationB?=?new?Random().nextInt(STATION_COUNT);
if?(stationB?!=?stationA)?{
done?=?true;
}
}
int?temp?=?vehicles.get(index).getStationData(stationA);
vehicles.get(index).setStationData(stationA?vehicles.get(index).getStationData(stationB));
vehicles.get(index).setStationData(stati
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\
?????文件????????7172??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\PSOSolution.java
?????文件??????????37??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\README.md
?????文件????????4422??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\Simulation.java
?????文件????????1147??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\Vehicle.java
?????文件?????????406??2017-05-10?02:04??vehicle-path-optimization-using-pso-master\VisitingStations.java
- 上一篇:計算機網絡謝希仁第七版課后答案完整版
- 下一篇:Axure手機開發必用的設計素材
評論
共有 條評論