https://www.ingber.com/asa_new.txt This file contains a list of recent major changes in ASA. ======================================================================== Adaptive Simulated Annealing ASA-30.47 ======================================================================== ======================================================================== Major Changes Since Version 30.39 4 Sep 20 In asa_usr.c ASA_BYPASS has been added to simply bypass asa(). At the top of asa_usr.c the trigger is #ifndef ASA_BYPASS #define ASA_BYPASS FALSE #endif which can be simply changed. This can be useful to debug codes, to run the FITLOC simplex code after a good region is developed using asa(), etc. A nominal value of cost_value of 10000 has been set, which can easily be changed. ======================================================================== Major Changes Since Version 30.25 24 Dec 18 The default to exit ASA when an invalid cost function was calculated, giving an exit code of 8 to report an INVALID_COST_FUNCTION, has been replaced by an OPTIONS to reject the cost function as invalid, adding to the count of *number_invalid in the asa_out file, which can exit subject to the OPTIONS Limit_Invalid_Generated_States. Sometimes only a small percentage of generated states has parameters that cause this condition, and this is a reasonable way of continuing the sampling. When noEXIT_INVALID_COST_FUNCTION is set to FALSE, then the previous conditions are enforced, and ASA exits whenever an improper cost function is calculated. ======================================================================== Major Changes Since Version 30.6 8 Apr 14 asa_usr.c asa_usr.h Added code to restore regular annealing schedules under some conditions when ASA_FUZZY is TRUE. Initial QUENCH settings are saved in *ASA_FUZZY_Init_User_Quench_Cost_Scale *ASA_FUZZY_Init_User_Quench_Param_Scale In asa_usr.c they can be reset by the user, e.g., to 1.0, etc. ======================================================================== Major Changes Since Version 30.4 21 Jan 14 When ASA_PARALLEL is TRUE, the do loop around generated states that tests for invalid states is taken over, not within, blocks of parallel calculated cost functions for these generated states. ======================================================================== Major Changes Since Version 29.6 6 Jan 14 When ASA_PARALLEL is set to TRUE, code in ASA-MAKEFILE, asa.c, asa_usr.c, and asa_usr_asa.h is set to run under OpenMP using the gcc compiler; search for instances of _OPENMP. Change/add lines of code to correspond to your choice of parallel algorithm and compiler. While the section of ASA_PARALLEL code is set to run under OpenMP using the gcc compiler, you may change/add lines of code in the entire ASA_PARALLEL section to correspond to your choice of parallel algorithm and compiler. The entire ASA_PARALLEL section makes assignments to indexed variables to afford flexibility for other such algorithms. ======================================================================== Major Changes Since Version 29.5 19 Oct 13 In the cost function, when User_Tangents is TRUE, the user should test the incoming *cost_flag for a value of -1 (changed from FALSE) to calculate tangents. If ASA_QUEUE is TRUE, then the value of *cost_flag is tested for FALSE in previous states in queue and an invalid statement is available in the printout. ======================================================================== Major Changes Since Version 28.15 12 Sep 13 The ASA-LICENSE has been replaced with a BSD 3-Clause License, as posted on http://opensource.org/licenses/BSD-3-Clause . ======================================================================= ======================================================================== Major Changes Since Version 28.14 ======================================================================= 2 Apr 13 When USER_ASA_USR_OUT is TRUE, the user defines OPTIONS->Asa_Usr_Out_File to override the USER_OUT default of asa_out. ======================================================================== Major Changes Since Version 28.10 ======================================================================= 13 Apr 12 In ASA-README.[] it is emphasized that Simulated Annealing (SA) is NOT Simulated Quenching (SQ), but that ASA is easily modified using QUENCH OPTIONS, permitting various degrees of quenching. This is especially useful if you determine that your optimal state(s) can be reached using SQ. ======================================================================== Major Changes Since Version 28.1 ======================================================================= 5 Mar 11 When ASA_FUZZY is set to TRUE, a modified fuzzy-logic algorithm originally developed by Hime Junior performs an adaptive tuning of selected ASA OPTIONS. ASA_FUZZY has several adaptive parameters defined in asa_usr_asa.h, and some fixed #define parameters in the several subroutines at the bottom of asa_usr.c. The default functions are set to tune QUENCH_COST and QUENCH_PARAMETERS parameters, so these are tested to be TRUE in the default asa_usr_asa.h. If you change any defaults, pay attention to sections labeled ASA_FUZZY at top and bottom sections of asa_usr.c, and in asa_usr.h. Caution: Often ASA_FUZZY will turn on QUENCHing > 1, violating the proof of ASA. For many systems, this speeding up of the sampling process can be a welcome efficiency, but in some systems global minima may be missed. ======================================================================== Major Changes Since Version 27.6 ======================================================================= 9 Feb 11 ASA-LICENSE, ASA-README.ms Clause 5 was deleted, and Clause 6 was renumbered to Clause 5, to follow guidelines of the "New BSD License", http://en.wikipedia.org/wiki/BSD_License, beginning with Version 28.1. ======================================================================== Major Changes Since Version 26.40 ======================================================================= 10 Dec 10 When ADAPTIVE_OPTIONS is set to TRUE, it is possible to change relevant OPTIONS in the USER_DEFINES struct in asa_usr_asa.h during run time, by including an asa_adaptive_options file. This can be very useful to efficiently determine how to tune long runs. The function call to adaptive_options(USER_OPTIONS) should be placed at the top of your cost function. Some examples of the format of lines in the comma-delimited asa_adaptive_options file are given just above the adaptive_options function in asa_usr.c. ======================================================================== Major Changes Since Version 26.38 ======================================================================= 20 Jun 10 Hime Junior has created a site with his asa_fuzzy code and also a Windows graphical interface (see https://www.ingber.com/asa_contrib.txt): http://sites.google.com/site/stochasticglobaloptimization/home/fuzzy-asa 16 Jul 10 ftp is no longer supported for the ingber.com archive. ======================================================================== Major Changes Since Version 26.35 ======================================================================= New code has been added to asa_contrib.txt under @@ASA_FUZZY, including asa_fuzzy.c and guidelines for its use in ASA. I have added to asa_paper.html and asa_contrib.txt references to: %A Hime Aguiar e Oliveira Jr. %T Fuzzy Modeling with Adaptive Simulated Annealing %C Rio de Janeiro, Brazil %D 2004 %O URL http://www.optimization-online.org/DB_HTML/2004/07/901.html and two other 2007 and 2009 papers. ======================================================================== Major Changes Since Version 26.34 ======================================================================= Explicitly added -ffloat-store option to gcc compilations to maintain the same level of precision across levels of compiler optimization on different platforms. ======================================================================== Major Changes Since Version 26.33 ======================================================================= In asa_examples.txt I started a section "@@Some Helpful Code Snippets" with an entry "@@Independent Coordinates When Sampling Large Spaces". These snippets can be used together with some other experiences documented in the ASA-NOTES file., e.g., section "@@TUNING FOR SOME SYSTEMS". ======================================================================== Major Changes Since Version 26.30 ======================================================================= When ASA_EXIT_ANYTIME is set to TRUE, the first call to asa() creates the file asa_exit_anytime. To permit IMMEDIATE_EXIT before calculating the next generated state, simply delete the file asa_exit_anytime, and asa() will exit with code IMMEDIATE_EXIT. This can be useful on long runs. ======================================================================== Major Changes Since Version 26.28 ======================================================================= When calculating derivatives, an invalid cost function, i.e., returning *cost_flag = FALSE from the cost function, will exit asa() with *exit_code INVALID_COST_FUNCTION_DERIV. Also, when calculating derivatives, no extra test is performed to check that parameters are within their lower and upper bounds (since meshes for derivatives may exceed these bounds). If this is not desired, then within the cost function, within a test for USER_OPTIONS->Locate_Cost == 3, a decision may be made whether to return this *exit_code. ======================================================================== Major Changes Since Version 26.24 ======================================================================= There is now an RLaB interface to ASA. See Section @@RLAB Interface with ASA in asa_contrib.txt. ======================================================================== Major Changes Since Version 26.22 ======================================================================= ASA is now also listed at http://asa-caltech.sourceforge.net (http://asa-caltech.sf.net). Ismael Vaz has written an AMPL interface to ASA. This allows the ASA solver to be available through the NEOS server at http://neos.mcs.anl.gov/neos/solvers/go:ASA/AMPL.html. ======================================================================== Major Changes Since Version 26.13 ======================================================================= Added section @@Some Reflections After a Score of Years to ASA-NOTES. When using a DOS version of ASA, e.g., ASA.zip, on a Unix machine, some systems do not process continuation "\" lines properly. These lines are now joined to long lines in the code. A reference for a paper illustrating the use of both ASA optimization and ASA sampling has been placed in asa_papers.html, ingber_projects.html, and ASA-README.[]. %A L. Ingber %T Ideas by Statistical Mechanics (ISM) %R Report 2006:ISM %I Physical Studies Institute %D 2006 %O URL https://www.ingber.com/smni06_ism.pdf Links have been made to asa06_ism.pdf, combat06_ism.pdf, markets06_ism.pdf, and path06_ism.pdf. ISM integrates previous projects to model evolution and propagation of ideas/patterns throughout populations subjected to endogenous and exogenous interactions. ======================================================================== Major Changes Since Version 26.8 ======================================================================= When MULTI_MIN is set to TRUE and Multi_Specify is set to 0, and multiple best cost functions are found, the parameters of the final cost function reported will be the parameters of the last best cost function. Reference to a Haskell Interface with ASA is given in asa_contrib.txt. ======================================================================== Major Changes Since Version 26.2 ======================================================================= When MULTI_MIN is TRUE, asa_exit() calculates cost functions, and their associated parameters, in descending order, to leave the final state as the best state. ======================================================================== Major Changes Since Version 26.1 ======================================================================= Direct users to asa_examples.txt for an example of use of OPTIONAL_DATA_PTR and MULTI_MIN. ======================================================================== Major Changes Since Version 25.28 ======================================================================= Added ASA- prefix to CHANGES, LICENSE, Makefile, and NOTES to prevent conflicts with other software. ======================================================================== Major Changes Since Version 25.16 ======================================================================== The Makefile can be used to create DLL functions for Windows. ======================================================================== Major Changes Since Version 25.13 ======================================================================== There is an updated reference and URL to the paper mentioned in asa_contrib.txt and asa_papers.html %A H.A.O. Junior %T Fuzzy control of stochastic global optimization algorithms and very fast simulated reannealing %I hime@engineer.com %C Rio de Janeiro, Brazil %D 2001 %O URL: http://www.optimization-online.org/DB_FILE/2003/11/779.pdf ======================================================================== Major Changes Since Version 25.5 ======================================================================== Some compilers on some systems under some levels of optimization will not compile if stdout is present in the code. All instances of stdout and printf in the user and the asa modules can be commented out by setting INCL_STDOUT to FALSE. Note that this also will suppress some output from such OPTIONS as ASA_PIPE, TIME_CALC, etc. ------------------------------------------------------------------------ Major Changes Since Version 25.3 ------------------------------------------------------------------------ Added to asa_contrib.txt section @@ASA DLL to demonstrate how an ASA DLL can be created under Cygwin. I have added to asa_papers.html %A J. Zhou %A G. Livingston %A G. Grinstein %T Automatic Parameter Selection for Sequence Similarity Search %R Dept. Computer Science Preprint %I U Massachusetts %C Lowell, MA %D 2003 %O URL http://www.cs.uml.edu/~jzhou This study used ASA to select parameters for sequence similar region search in their autonomous AutoSimS model of general pairwise sequence similarity analysis. Their artificial intelligence approach involves more advanced features than commonly used BLAST and FASTA tools. Contact Jianping Zhou for more information. ------------------------------------------------------------------------ Major Changes Since Version 24.3 ------------------------------------------------------------------------ Renamed files to faciliate their use in larger projects: asa_user.h -> asa_usr_asa.h user.c -> asa_usr.c user.h -> asa_usr.h user_cst.c -> asa_usr_cst.c readme.ms -> ASA-README.ms test_asa -> asa_test_asa test_usr -> asa_test_usr ------------------------------------------------------------------------ Major Changes Since Version 24.2 ------------------------------------------------------------------------ Added section Generic ASA Interfaces to ASA-README. Added @@FUZZY_ASA section and code to asa_contrib.txt . The paper describing the code is mentioned in asa_paper.html . ------------------------------------------------------------------------ Major Changes Since Version 23.13 ------------------------------------------------------------------------ Changed pre-compile OPTIONS MULTI_NUMBER to adaptive USER_OPTIONS->Multi_Number. I have added to asa_papers.html: %A M. C. Forman %A A. Aggoun %A M. McCormick %T Simulated Annealing for Optimisation and Characterisation of Quantisation Parameters in Integral 3D Image Compression %B Image Processing II: Mathematical Methods, Algorithms and Applications %E J. M. Blackledge %E M. J. Turner %I The Institute of Mathematics and its Applications / Horwood Publishing %D 2000 %P 399-413 %O URL http://www.imtech.cse.dmu.ac.uk/3d-med/pubs/ima98.pdf %A M. C. Forman %T Compression of Integral Three Dimensional Television Pictures %R Ph.D. Thesis %I De Montfort University %C Leicester, United Kingdom %D 2000 These papers use ASA in quantisation scheme optimisation in three dimensional image compression. ------------------------------------------------------------------------ Major Changes Since Version 23.7 ------------------------------------------------------------------------ To permit compilation under g++ as well as gcc, some initializations were moved. I have added to asa_papers.html: %A H.A.O. Junior %T Fuzzy control of stochastic global optimization algorithms and very fast simulated reannealing %I hime@engineer.com %C Rio de Janeiro, Brazil %D 2001 This paper provides a supplementary algorithm for adaptive quenching to make ASA more efficient for many systems. You can obtain a copy from the author by sending an email to Hime Junior . ------------------------------------------------------------------------ Major Changes Since Version 22.12 ------------------------------------------------------------------------ Setting the lower bound equal to the upper bound will remove a parameter from consideration. Whenever this occurs, within asa() the effective dimension defining the size of the search space is reduced by the number of parameters so removed. When USER_ACCEPT_THRESHOLD is TRUE, a simple alternative to the Boltzmann function becomes available for the acceptance test, simply defining the probability of acceptance to be 1 if delta_cost <= cost_temp and 0 otherwise. The .txt suffix is added to 00index.txt, asa_contrib.txt, asa_examples.txt, asa_new.txt, and ingber_terms.txt. ASA-README.pdf now is included with the source code. In source code, the .txt suffix is added to ASA-README.txt and ASA-README+.txt. ------------------------------------------------------------------------ Major Changes Since Version 22.1 ------------------------------------------------------------------------ When ASA_PARALLEL is TRUE, each block of generated states is sorted to permit the lowest cost functions to pass first through the acceptance test. I have added information to https://www.ingber.com/MISC.DIR/asa_contrib.txt from Thomas Binder who has developed auxiliary function support for ASA_PARALLEL. I have added four 2001 lecture files. The lecture plates dealing most specifically with ASA are in %A L. Ingber %T Adaptive Simulated Annealing (ASA) and Path-Integral (PATHINT) Algorithms: Generic Tools for Complex Systems %R ASA-PATHINT Lecture Plates %I Physical Studies Institute %C Chicago, IL %D 2001 %O URL https://www.ingber.com/asa01_lecture.ps.gz The default name of the cost function is cost_function; this can be changed in asa_user.h (or the Makefile) by defining USER_COST_FUNCTION. When SELF_OPTIMIZE is TRUE, the default name of the recur cost function is recur_cost_function; this can be changed in asa_user.h (or the Makefile) by defining RECUR_USER_COST_FUNCTION. This of course requires compiling in the new cost function(s) and prototype(s). https://www.ingber.com/utils_file_formats.txt has some links to information on gzip, PostScript, PDF, tar, and shar utilties. In asa.c, fixed bug in use of ASA_PRINT with MULTI_MIN. ------------------------------------------------------------------------ Major Changes Since Version 21.2 ------------------------------------------------------------------------ All files that were under MISC.DIR have been merged into the main ingber.com directory. When ASA_SAVE is set to TRUE, Number_Cost_Samples is set to 1 after the initial run since all the required information for subsequent runs already has been collected. Changed user_cst.h to user_cst.c. This should not affect most users. ________________________________________________________________________ Lester Ingber Copyright (c) 1994-2023 Lester Ingber. All Rights Reserved. $Id: asa_new.txt,v 10.378 2024/01/11 11:24:00 ingber Exp ingber $