Skip to content

simulated annealing library with example problems

Notifications You must be signed in to change notification settings

chapmanj/libSimAnn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

libSimAnn

simulated annealing library with example problems

Motivation πŸ€“

This library stems from learning about meta-heuristics, specifically simulated anealing, in an Adaptive Optimization course at Auburn University. After becoming familar with the mechanics, I decided to generalize the framework to increase accessability.

Useage πŸ“–

An example use case NetBeans package is included named SimulateAnnealing-Example. It presents the Quadratic Assignment Problem and the Six-hump Camel Back problems to illustrate differences in encodings used for this search type.

  1. Import the pSA package.

  2. Instance the SimAnn solver class and set the parameters for the psuedo-random number generator and for displaying search updates.

  3. Define your encoding.

    Generally, simulated annealing can be applied to both continuous and combinatorial problems. In the example, the QAP_ex (and later the SHCB_ex) class was developed to model a solution. Your encoding class needs to implement the IEncoding interface which mandates creating functions:

    • evaluate : also termed objective function, which returns the value to optimize ( maximize / minimize )

    • preturb : a method to evaluate neighboring solutions (by altering the current solution)

    • randomize : a method to generate random starting solutions

  4. Run the search.

    The returned solution will be the best solution found during the search.

Future πŸ‘¨β€πŸ’»

  • Remove steal

    There were a few mechanics around passing values I was unable to figure out. Please review the example cases to see how and why I used them.

About

simulated annealing library with example problems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages