11# Real World Benchmarks
22
3- This repository contains a collection of multi- and many-objective optimization problems
4- with real-world applications for benchmarking multiobjective evolutionary algorithms (MOEAs).
5- Please cite the following if using this code:
3+ This repository contains a collection of multi- and many-objective optimization problems with real-world applications
4+ for benchmarking multiobjective evolutionary algorithms (MOEAs). Please cite the following if using this code:
65
76> Zatarain Salazar, J., Hadka, D., Reed, P., Seada, H., & Deb, K. (2024). Diagnostic benchmarking of many-objective evolutionary algorithms for real-world problems. Engineering Optimization, 1–22. https://doi.org/10.1080/0305215X.2024.2381818
87
@@ -13,74 +12,66 @@ Please cite the following if using this code:
1312These codes are intended for use with the MOEA Framework. Follow the steps below to setup these real-world
1413benchmark problems:
1514
16- #### Prerequisites
15+ ### Requirements
16+
17+ These codes are intended to run on a Unix-like system (e.g., Ubuntu). In addition, please ensure the following
18+ dependencies are installed:
1719
18- Ensure your system has the following software installed:
19201 . Java 17+
20212 . Maven
21223 . GNU Make
22234 . GNU C/C++ compilers (` gcc ` and ` g++ ` )
2324
24- #### Setup MOEA Framework
25+ ### Setup with Eclipse
26+
27+ First, clone this repository:
2528
26- Download the latest MOEA Framework binaries or source code from http://moeaframework.org/ and
27- extract the archive to a folder on your computer. We will refer to this as folder as ` ${MOEAFRAMEWORK_ROOT} `
28- in the following steps.
29+ ``` bash
30+ git clone https://github.com/MOEAFramework/RealWorldBenchmarks.git
31+ ```
2932
30- #### Install Real-World Benchmark Library
33+ We recommend opening this project in an IDE, such as Eclipse or IntelliJ. Next, we must compile the benchmark
34+ problems, as several are written in C / C++. Open a new terminal window and run the following from the
35+ ` RealWorldBenchmarks ` folder:
3136
32- Download the latest version of the real-world benchmarks JAR file from the
33- [ releases page ] ( https://github.com/MOEAFramework/MOEAFramework/releases ) and place it in the
34- ` ${MOEAFRAMEWORK_ROOT}/lib ` folder.
37+ ``` bash
38+ make -C native
39+ ```
3540
36- #### Compile Benchmark Problems
41+ Finally, locate and run ` Example.java ` (in ` src/main/java ` ). In Eclipse, you would right-click on ` Example.java ` and
42+ select ` Run As > Java Application ` . If everything is setup correctly, you will see output showing the Pareto front.
3743
38- Several of the benchmark problems must be compiled before use. If using Windows, we include compiled
39- executables for each release version (see ` native-windows.zip ` ). Otherwise, to compile the executables, run:
44+ ### From Command Line
4045
41- 1 . Clone this repository - ` git clone https://github.com/MOEAFramework/RealWorldBenchmarks.git `
42- 2 . Run ` make -C native `
43- 3 . Copy or link the ` native/ ` folder into your MOEA Framework directory using either:
44- * Option 1 - Copy the entire directory with ` cp -R native/ ${MOEAFRAMEWORK_ROOT}/native `
45- * Option 2 - Create a symbolic link with ` ln -s $(realpath -s native/) ${MOEAFRAMEWORK_ROOT}/native `
46+ Alternatively, we can also build and run the example from the command line using Maven. First, we can package and test
47+ this project with:
4648
47- ## Maven
49+ ``` bash
50+ mvn package
51+ ```
4852
49- Alternatively, if you want to include these benchmark problems in a Maven project, add the following
50- dependency to your ` pom.xml ` . Please note that you will still need to compile the native executables
51- separately.
53+ This will verify all benchmark problems are built and running correctly. Then, run the example with:
5254
53- ``` xml
54- <dependency >
55- <groupId >org.moeaframework</groupId >
56- <artifactId >real-world-benchmarks</artifactId >
57- <version >1.1.0</version >
58- </dependency >
55+ ``` bash
56+ mvn compile exec:java -Dexec.mainClass=" org.moeaframework.benchmarks.Example"
5957```
6058
61- ## Usage
59+ ## Example
6260
63- To run one of these real-world benchmark problems, you can then either directly construct the problem:
61+ The following example, from ` Example.java ` , demonstrates solving the General Aviation Aircraft (GAA) problem using the
62+ NSGA-II algorithm, displaying the decision variables, objectives, and constraint values comprising the Pareto
63+ approximation set:
6464
65- ``` java
65+ <!-- java:src/main/java/org/moeaframework/benchmarks/Example.java [9:15] -->
6666
67- Problem problem = new GAA ();
67+ ``` java
68+ GAA problem = new GAA ();
6869
6970NSGAII algorithm = new NSGAII (problem);
7071algorithm. run(10000 );
7172
7273NondominatedPopulation result = algorithm. getResult();
73- ```
74-
75- or reference it by name if using the ` Executor ` :
76-
77- ``` java
78-
79- NondominatedPopulation result = new Executor ()
80- .withProblem(" GAA" )
81- .withAlgorithm(" NSGAII" )
82- .withMaxEvaluations(10000 )
83- .run();
74+ result. display();
8475```
8576
8677## Available Benchmarks
@@ -97,8 +88,8 @@ The following benchmark problems are available:
9788| Lake Pollution Control Policy | ` LakeProblem ` | 100 | 4 | 1 | [ 9] -[ 11] |
9889| Electric Motor Product Family | ` ElectricMotor ` | 80 | 20 | 60 | [ 12] |
9990
100- In addition, this repository contains twelve bi-objective water distribution system (WDS) design problems [ 13]
101- ranging from 8 to 567 decision variables:
91+ In addition, this repository contains twelve bi-objective water distribution system (WDS) design problems [ 13] ranging
92+ from ` 8 ` to ` 567 ` decision variables:
10293
10394| Problem | Problem Name | Variables | Objectives | Constraints |
10495| -------------------------------- | ------------ | :-------: | :--------: | :---------: |
@@ -115,14 +106,13 @@ ranging from 8 to 567 decision variables:
115106| Belerma Irrigation Network (BIN) | ` WDS(BIN) ` | 454 | 2 | 1 |
116107| Exeter Network (EXN) | ` WDS(EXN) ` | 567 | 2 | 1 |
117108
118- Additional information for specific problems can be found in the cited papers as well as
119- the README files and other documentation for each problem.
109+ Additional information for specific problems can be found in the cited papers as well as the ` README ` files and other
110+ documentation for each problem.
120111
121112## License
122113
123- Most of the software contained in this repository is copyright by the respective authors
124- who developed each benchmark problem. Please cite these original works if using any of the
125- benchmark problems.
114+ Most of the software contained in this repository is copyright by the respective authors who developed each benchmark
115+ problem. Please cite these original works if using any of the benchmark problems.
126116
127117## References
128118
0 commit comments