This version is a Refactored version of the original AMOSA code in order to make the code structure more portable. Several changes have been made:
- The
AMOSATypetype has been defined in order to encapsulate all the necessary parameters of the AMOSA. This will reduce the number of external variables, in addition, it will reduce the possible conflict when it uses within another routine. - The
amosaParamstype which defines in theamosa_real.cwill pass to all the functions during the process. - Functions name are changed for clarification
ReadParametersreads the commands lines and write the problem dependents variables inamosaParams.InitAMOSAinitializes all the variablesRunAMOSAstarts the optimization
- Define a new objective function and make it accessible to other files.
- Modify the
number_of_variablesandnumber_of_functionsfunctions to return the correct number of variables and objectives. Or rewrite theReadParamtersto read the inputs from your problem configuration file. - Initialize the algorithm variables.
- Consider defining a new type to carry your problem parameters which are necessary for computing your objective function; however, you could either rewrite the
main_processand other function to work with your type or provide adouble *sto AMOSA native functions which will then automatically update in each iteration. - Run the algorithm.
- Write a
ReportResult(optional)
The real-coded Archived Multi Objective Simulated Annealing (AMOSA) is introduced and develop by the writers of the following paper:
- Authors: Sanghamitra Bandyopadhyay, Sriparna Saha, Ujjwal Maulik and Kalyanmoy Deb.
- Paper Title: A Simulated Annealing Based Multi-objective Optimization Algorithm: AMOSA
- Journal: IEEE Transaction on Evolutionary Computation, Volume 12, No. 3, JUNE 2008, Pages 269-283.
The original code is available for the download from Sriparna Saha's website at: http://www.isical.ac.in/~sriparna_r
Please contact the authors if you have any comments, suggestions or questions about this file or Archived Multi-objective Genetic Algorithm (AMOSA) via: sriparna_r@isical.ac.in/sanghami@isical.ac.in/
To compile, just run:
make
Run the program as:
./amosa problem
For instance if you want to run ZDT1 function then write in the terminal as
- ./amosa ZDT1
The Output functional values will be in "saplot.out".
To plot the curve of Pareto Optimal font, Here is the steps
Step 1: Open terminal
Step 2: Type gnuplot
Step 3: Type plot "saplot.out"`