MOEA Framework a Free and Open Source Java Framework for Multiobjective Optimization
Total Page:16
File Type:pdf, Size:1020Kb
MOEA Framework A Free and Open Source Java Framework for Multiobjective Optimization User Manual Version 2.1 ii Copyright 2011-2014 David Hadka. All Rights Reserved. Permission is granted to copy, distribute and/or modify this document un- der the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Section being the section entitled \Preface", no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". iii iv Permission is granted to copy, distribute and/or modify the program code contained in this document under the terms of the GNU Lesser General Public License, Version 3 or any later version published by the Free Software Foundation. Attach the following notice to any program code copied or modified from this document: Copyright 2011-2014 David Hadka. All Rights Reserved. The MOEA Framework is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, ei- ther version 3 of the License, or (at your option) any later version. The MOEA Framework is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the MOEA Framework. If not, see <http://www.gnu.org/licenses/>. v vi Preface Thank you for your interest in the MOEA Framework. Development of the MOEA Framework started in 2009 with the idea of providing a single, consistent framework for designing, testing, and experimenting with multi- objective evolutionary algorithms (MOEAs). In late 2011, the software was open-sourced and made available to the general public. Since then, a large user base from the MOEA research community has formed, with thousands of users from over 112 countries. We are indebted to the many individuals who have contributed to this project through feedback, bug reporting, code development, and testing. As of September 2013, we have reached the next major milestone in the development and maturity of the MOEA Framework. Version 2.0 brings with it significant changes aimed to improve both the functionality and ease-of-use of this software. We plan to implement more algorithms within the MOEA Framework, which will improve the reliability, performance, and flexibility of the algorithms. Doing so places the responsibility of ensuring the correctness of the MOEA implementations on our shoulders, and we will continuously work to ensure results obtained using the MOEA Framework meet the stan- dards of scientific rigor. We also want to reach out to the community of researchers developing new, state-of-the-art MOEAs and ask that they consider providing reference implementations of their MOEAs within the MOEA Framework. Doing so not only disseminates your work to a wide user base, but you can take advan- tage of the many resources and functionality already provided by the MOEA Framework. Please contact [email protected] if we can assist in any way. vii viii Citing the MOEA Framework Please include a citation to the MOEA Framework in any academic publi- cations which used or are based on results from the MOEA Framework. For example, you can use the following in-text citation: This study used the MOEA Framework, version 2.1, available from http://www.moeaframework.org/. ix x Contributing to this Document This document is a work in progress. Please be mindful of this fact when reading this document. If you encounter any spelling or grammat- ical errors, confusing or unclear wording, inaccurate instructions, incom- plete sections or missing topics, please notify us by sending an e-mail to [email protected]. Please provide 1) the manual ver- sion number, 2) the location of the error, and 3) a description of the error. You may alternatively send an annotated version of the PDF file. With your help, we can provide a complete and accurate user manual for this product. xi xii Contents 1 Introduction 1 1.1 Key Features . .2 1.2 Other Java Frameworks . .3 1.2.1 Watchmaker Framework . .3 1.2.2 ECJ . .4 1.2.3 jMetal . .5 1.2.4 Opt4J . .5 1.2.5 Others . .6 1.3 Reporting Bugs . .6 1.4 Getting Help . .7 I Beginner's Guide - Installing and Using the MOEA Framework 9 2 Installation Instructions 11 2.1 Understanding the License . 11 2.2 Which Distribution is Right for Me? . 11 2.3 Obtaining a Copy . 12 2.4 Installing Dependencies . 12 2.4.1 Java 6+ (Required) . 13 2.4.2 Eclipse or NetBeans (Optional) . 14 2.4.3 Apache Ant (Optional) . 14 2.5 Importing into Eclipse . 14 2.6 Importing into NetBeans . 15 2.7 Testing your Installation . 15 2.8 Distribution Contents . 17 2.8.1 Compiled Binary Contents . 17 xiii xiv CONTENTS 2.8.2 Source Code Contents . 18 2.9 Conclusion . 19 3 Executor, Instrumenter, Analyzer 21 3.1 Executor . 21 3.2 Instrumenter . 25 3.3 Analyzer . 29 3.4 Conclusion . 32 4 Diagnostic Tool 33 4.1 Running the Diagnostic Tool . 33 4.2 Layout of the GUI . 34 4.3 Quantile Plots vs Individual Traces . 36 4.4 Viewing Approximation Set Dynamics . 37 4.5 Statistical Results . 38 4.6 Improving Performance and Memory Efficiency . 40 4.7 Conclusion . 40 5 Defining New Problems 41 5.1 Java . 42 5.2 C/C++ . 44 5.3 Scripting Language . 49 5.4 Conclusion . 51 6 Representing Decision Variables 53 6.1 Floating-Point Values . 53 6.2 Integers . 55 6.3 Boolean Values . 56 6.4 Bit Strings . 57 6.5 Permutations . 58 6.6 Programs (Expression Trees) . 59 6.7 Grammars . 61 6.8 Variation Operators . 63 6.8.1 Initialization . 63 6.8.2 Variation (Mutation & Crossover) . 63 6.9 Conclusion . 65 CONTENTS xv 7 Example: Knapsack Problem 67 7.1 Data Files . 68 7.2 Encoding the Problem . 69 7.3 Implementing the Problem . 70 7.4 Solving the Problem . 76 7.5 Conclusion . 77 II Advanced Guide - Large-Scale Experiments and other Advanced Topics 79 8 Comparative Studies 81 8.1 What are Comparative Studies? . 81 8.2 Executing Commands . 83 8.3 Parameter Description File . 84 8.4 Generating Parameter Samples . 84 8.5 Evaluation . 85 8.6 Check Completion . 86 8.7 Reference Set Generation . 87 8.8 Metric Calculation . 87 8.9 Averaging Metrics . 88 8.10 Analysis . 88 8.10.1 Best . 89 8.10.2 Attainment . 89 8.10.3 Efficiency . 90 8.11 Set Contribution . 90 8.12 Sobol Analysis . 91 8.13 Example Script File (Unix/Linux) . 93 8.14 PBS Job Scripting (Unix) . 96 8.15 Conclusion . 98 8.16 Troubleshooting . 98 9 Optimization Algorithms 103 9.1 Native Algorithms . 103 9.1.1 -MOEA . 103 9.1.2 NSGA-II . 105 9.1.3 -NSGA-II . 105 9.1.4 MOEA/D . 106 xvi CONTENTS 9.1.5 GDE3 . 107 9.1.6 Random Search . 108 9.2 JMetal Algorithms . 108 9.2.1 AbYSS . 109 9.2.2 CellDE . 109 9.2.3 DENSEA . 110 9.2.4 FastPGA . 110 9.2.5 IBEA . 111 9.2.6 MOCell . 111 9.2.7 MOCHC . 112 9.2.8 OMOPSO . 113 9.2.9 PAES . 114 9.2.10 PESA-II . 114 9.2.11 SMPSO . 115 9.2.12 SMSEMOA . 115 9.2.13 SPEA2 . 116 9.3 PISA Algorithms . 116 9.3.1 Adding a PISA Selector . 118 9.3.2 Troubleshooting . 119 9.4 Conclusion . 120 10 Advanced Topics 121 10.1 Configuring Hypervolume Calculation . 121 10.2 Storing Large Datasets . 122 10.2.1 Writing Result Files . 123 10.2.2 Extract Information from Result Files . 124 10.3 Dealing with Maximized Objectives . 125 10.4 Checkpointing . ..