This is a JAVA Netbeans project based on JMetal 4.5 (http://jmetal.sourceforge.net/) where we added necessary codes to solve transit network design problem (TNDP) by applying many-objective evolutionary algorithms (MaOEAs). In addition, here we keep the datasets and statistical results used for our research works. Below we describe different components of this repository. This work was published in the journal IEEE Transactions on Intelligent Transportation Systems.
All the codes are organized within the directiry src/jmetal/
. Here we describe the codes that we added for solving TNDP.
We encoded a transit network using the following classes kept within src/jmetal/encodings/variable/
:
- Route.java
- RouteSet.java
We implemented this as a method named generateRouteSet()
inside the class RouteSet
.
We implemented this using src/jmetal/operators/crossover/RouteSetCrossover.java
.
We implemented four mutation operators inside src/jmetal/operators/mutation/
listed below:
- RouteSetAddlMutation.java (AddNodes)
- RouteSetDelMutation.java (DeleteNodes)
- RouteSetTELMutation.java (ShortenRoutes)
- RouteSetTEOMutation.java (ReduceOverlap)
We implemented five mutation schemes inside src/jmetal/operators/mutation/
listed below:
- RouteSetAddDelRand.java (Basic Scheme)
- RouteSetAddDelTELRand.java (Random Scheme I)
- RouteSetAddDelTEORand.java (Random Scheme I)
- RouteSetCombinedRandomMutation.java (Random Scheme I)
- RouteSetCombinedGuidedMutation.java (Guided Scheme)
We adapted four evolutionary algorithms to solve TNDP as follows:
- src/jmetal/metaheuristics/spea2/SPEA2.java
- src/jmetal/problems/TNDP/MOEAD.java
- src/jmetal/metaheuristics/nsgaIII/NSGAIII.java
- src/jmetal/metaheuristics/thetadea/ThetaDEA.java
We experiement with four algorithms varying differetn parameters we implemented four classes inside src/jmetal/problems/TNDP/
as follows:
- TNDPExpSPEA2.java
- TNDPExpMOEAD.java
- TNDPExpNSGAIII.java
- TNDPExpThetaDEA.java
We keep the datasets in the directory IO
. There are currently four datasets listed below:
- Mandl
- Mumford0
- Mumford2
- Mumford3
New datasets can be added very easily at any time.
We keep all the statistical results obtain throughout our research in the directory Experiment
. The results include the following things:
- Pareto fronts calculated for different datasets
- Sets of solutions generated by different algorithms
- HV, GAS and GDS obtained by different algorithms, genetic operators
To use our framework the following software packages are required:
To download our framework just clone the Git repository hosted in GitHub:
git clone https://github.com/ali-nayeem/JMetal4.5_Netbeans.git
Once cloned, you can compile the software and generate a jar file with the following commands:
ant compile
ant jar
To execute a class named src/jmetal/problems/TNDP/TNDPExpThetaDEA.java
, just run this command:
java -cp Jama-1.0.2.jar:grph-1.6.29-big.jar:dist/JMetal4.5.jar jmetal.problems.TNDP.TNDPExpThetaDEA