Optimization Algorithm Toolkit (OAT) http://optalgtoolkit.sourceforge.net/ To Install: -------------------------------- 1. Ensure you have the latest version of Java installed: http://www.java.com 2. Download Optimization Algorithm Toolkit (OAT): http://downloads.sourceforge.net/optalgtoolkit 3. Unzip the downloaded .zip file into a directory, example /oat 4. To Start: 1. Windows: Double click the jar file: optalgtoolkit.jar 2. Command Line: In the installation directory type: java -jar optalgtoolkit.jar 5. For proxy support for usage with the Huygens Probe package, at the command line type: java -Dhttp.proxySet=true -Dhttp.proxyHost=HOST -Dhttp.proxyPort=PORT -jar optalgtoolkit.jar (be sure to replace HOST and PORT with your specific proxy host and port information) Software Versions used for Build: -------------------------------- * Java: 1.6, update 2 (java.sun.com) * Eclipse: 3.3.0 Europa (www.eclipse.org) * JFreeChart: 1.0.2 (www.jfree.org) * Open Source Physics: 1.0.4 (www.opensourcephysics.org) * JUnit: 4.2 (www.junit.org) * Huygens WS Client v2.1; 21 June 2006 (http://gungurru.csse.uwa.edu.au/cgi-bin/WebObjects/huygensWS) * Jakarta Commons (Math1.1) (commons.apache.org) * Colt 1.2.0 (http://dsd.lbl.gov/~hoschek/colt/) * SSJ: Stochastic Simulation in Java 1.2.2 (http://www.iro.umontreal.ca/~simardr/ssj/) * SOCR: Statistics Online 1.2 Computational Resource (http://www.socr.ucla.edu) Acknowledgements: -------------------------------- * Thanks to Daniel Angus for implementing some algorithm and problem instances in early 2006 * Thanks to lime_anneberit for her creative commons image (http://flickr.com/photos/lime_anneberit/38240592/) used in the splash start-up General Change History: -------------------------------- 1.4 * Added support in the API and the GUI for automatic algorithm configuration * Fixed inconsistent properties files * Added a massive experimentation API (!!!) * Added simple experiment interface for designing, running, and analyzing experiments * Normality tests Anderson-Darling, Cramer-von-Mises Criterion, Kolmogorov-Smirnov Test * Sample Comparison test One-Way Analysis of Variance (ANOVA), Kruskal-Wallis Test, Student's t-test, Mann-Whitney U Test * Maintain experiments and results off-line on disc * Major reorganization of packages into domains, explorer, and experimenter * Large scale package and class renaming to suit new convention * Added a generic epoch-based (population of solutions) algorithm * Reorganized bit-string algorithms in continuous optimization to binary optimization * Added support for binary optimization algorithms in continuous optimization domain * Restructured the webpage and added support section * Created a launcher as the main entry point for the application with a domain selector and experiment launcher * Added a check list for tasks to complete before a release (mainly testing tasks) * Rewrote the guts of algorithm and problem to use RunProbes and StopConditions API * Updated explorer GUI to reflect API changes for stop conditions and run probes * Changed CFO plots to use a queue of points * Updated the software license from GPL to LGPL * All ACO algorithms support automatic configuration for TSP 1.3 * Added generic crowding replacement strategy, and modified RTS and simple crowding to make use of it * Added a generic elitism, used for GA's * Removed elitism from Fitness Sharing - causes a bug, does not belong * Made fitness sharing generic and modified FSGA to use it * Cleaned up aspects of Differential Evolution implementation * Cleaned up PSO implementation * Added Evolutionary Programming (EP) - fr #1608132 * Added support for fast evolutionary programming (FEP) - fr # 1608135 * Minor bug fixes to utility classes * Added a solution quality line graph * Added a mutation and parallel mutation hill climber to binary problem * Added generic measure utilities * Modified character recognition to use average error as the system (solution) error * Improved general problem configuration exceptions * Added support for problem instance configuration in the GUI * Added more effective problem info and problem configuration validation for all configurable problems * Removed problem details panel from the GUI, uses a an about dialog instead. * FuncOpt GUI changed to use a standardized plot * Made the binary character recognition problem more robust, deleted clonalg, added parallel random hill climber 1.2 * Added Restricted the Tournament Selection algorithm - fr #1608162 * Separated simple crowding and deterministic crowding into separate algorithms, fixed various bugs in implementations * Added probabilistic crowding - fr #1608163 * Implemented a one dimensional function plot for function optimization - fr #1608366 * Changed Mahfoud functions to be 1D as specified in the paper, updated GUI elements to draw correctly. * Deleted uniform search as it is not scalable. * Added binary domain with simple trap functions and random search algorithm - fr #1605717 * Added more binary benchmark problems and unit tests * Updated the splash image, added "OAT" to it * Modified Timmis F1 and F2 to be 1D as specified in the source paper * Added opt-IA for binary problem domains * Added CLONALG and variants (CLONALG1, CLONALG2) to binary problem domain * Added opt-IA for numerical function optimization * Added a centralized version interface * Added opt-IMMALG algorithm - fr #1608143 * Generalized immune system probability mutation functions with error checking * Consolidated utility methods into utility classes, and utility classes into com.oat.utils.* * Created new EvolutionUtils and made all generic GA functions truly generic, simpler, more error checking (flushed out lots of little bugs) * Fixed bug in ACS * Fixed bug in diffuse GA that allowed pop-overlap & selection with units that had no evaluation yet * Made fitness sharing GA more defensive * Added better unexpected exception handling in the GUI during an algorithm run * Added Simple Immune Algorithm (SIA) * Created a bean utils class for working with java beans * Added CLIGA Algorithm * fixed bug where some functions report NaN for coord values - bug #1607284 * Removed GUI code from all algorithm's and made it generic using reflection (sweet!) * Added the graph coloring problem domain and 56 standard benchmark problem instances - fr #1612848 * Added Immune Algorithm (IA) for graph coloring problem * Support for relative and absolute coordinate systems in protein folding problem, and simplified domain definition * Added CLONALG TSP implementation * Renamed ants algorithms to more-correct aco (ant colony optimization) * Improved the robustness and efficiency, of the ACO approaches (fixed bugs, lots more error checking, more abstracted, etc...) * Removed many compiler warnings and improve use of generics throughout the framework * Added preliminary binary character recognition with random search and plots * Implemented CLONALG for binary character recognition * Provided algorithm reference information on algorithm list page, updated for all algorithms * Draw solutions in one-dimensional plot for native 1D functions - awesome for niching approaches * Added about java to about dialog with features to run gc, finalization, exit and system properties * Basic problem details for binary trap functions * Made algorithm about a modal dialog box, rather than a popup * Increased max function evaluations for binary trap functions to 10K * Fixed a bug in MMAS related to pheromone update and tmin tmax updates * Improved problem.cost() path, and made solution.evaluated more strict across the framework * Simplified parallel two-opt and greedy search for TSP domain * Instigated change management in the header of each java file * Numerous minor algorithm bug fixes * Removed solution stripping functionality from each algorithm loop 1.1 * Cleaned up accessor and mutator for algorithm configuration across all algorithms - bug #1604163 * Added JUnit tests for algorithm run consistency - fr #1604157 * Moved the Pop-ACO for func opt into the swarm package * Changed default behaviour of a miss-configured algorithm to throw an exception, rather than auto-correct * Repaired bug in ACS where automatic parameters are remembered between runs * Separated algorithm GUI configuration from algorithm parameter validation (fixed algorithm config API) - bug #1603549 * Deleted unpublished niching ACO algorithms * Minor algorithm configuration validation improvements and bug fixes * Implemented a generic getConfigurationDetails() in Algorithm - fr #1604216 * Added unit test to run all algorithms on all problems for each domain (using properties files for lists) * Fixed bug #1604863 ACS on TSP a208 * Fixed bug #1604945 FitnessSharing on Easom's Function (bug in normalized relative fitness) * Simplified algorithm dialog box, use pack method on JFrame, removed numParameters from algorithm, added ok button - bug #1604872 * Changed RandomSearch behaviour to evaluate in batches of 1000 solutions at a time (when possible) for all domains * Huygens Probe breaks up very large queries into batches of 1000 to send to the server - bug #1604211 * Updated the required jar's for the Applet .html files to only use those jars that are needed - bug #1604860 * Screenshots not displayed in IE cannot be reproduced - bug #1604108 * Added code examples for each problem domain, located in com.oat.examples * Added a JTree chooser for algorithms and problems in the gui - fr 1603547 * Fixed drawing bug with the AdjacencyMatrix - bug #1605150 * Adjusted parameters of the 3D plot for function optimization to improve speed and usability * Added more benchmark function optimization problems, organized based on source - fr #1603546 * Added a progress indicator for a run as per fr #1603543 * Added support for variable dimensionality in function optimization in the API, code example, JUnit test - fr #1603548 * Created a FAQ. Moved much of the content from the project webpage to a FAQ, also added code examples to the FAQ * Moved all algorithm specific information into the code and provided "about" algorithm in the API and GUI - fr #1603553 * Provided functionality to stop a run from another thread, also provided in the GUI - fr #1603561 * Support for convergence detection and stop run after convergence in API, GUI and example code - fr #1604214 * Minor bug fix - do not count problem evaluations above the max, added check in unit tests * Draw the confirmation red if it is incomplete for protein folding - fr #1606513 * Provided support for clearing points and optionally drawing optima on the interpolated plot - fr #1606512 * Added license agreement to each source file as suggested in the GPL * Added a generic GUI properties, and remember Huygens user email - fr #1603544 * Added a Help->About menu to the JFrame entry point * Added a splash window for the off-line application * Added context sensitive help (tool tips) to all suitable GUI elements * Added GPL text file to the project * Added ant script for compiling and preparing releases - fr #1607286 * Added an image to the splash screen of oats 1.0 * Initial Public Release