Conformational Space Annealing explained: A general optimization algorithm, with diverse applications

Many problems in science and engineering can be formulated as optimization problems. One way to solve these problems is to develop tailored problem-specific approaches. As such development is challenging, an alternative is to develop good generally-applicable algorithms. Such algorithms are easy to...

Full description

Saved in:
Bibliographic Details
Published inComputer physics communications Vol. 223; pp. 28 - 33
Main Authors Joung, InSuk, Kim, Jong Yun, Gross, Steven P., Joo, Keehyoung, Lee, Jooyoung
Format Journal Article
LanguageEnglish
Published Elsevier B.V 01.02.2018
Subjects
Online AccessGet full text
ISSN0010-4655
1879-2944
DOI10.1016/j.cpc.2017.09.028

Cover

More Information
Summary:Many problems in science and engineering can be formulated as optimization problems. One way to solve these problems is to develop tailored problem-specific approaches. As such development is challenging, an alternative is to develop good generally-applicable algorithms. Such algorithms are easy to apply, typically function robustly, and reduce development time. Here we provide a description for one such algorithm called Conformational Space Annealing (CSA) along with its python version, PyCSA. We previously applied it to many optimization problems including protein structure prediction and graph community detection. To demonstrate its utility, we have applied PyCSA to two continuous test functions, namely Ackley and Eggholder functions. In addition, in order to provide complete generality of PyCSA to any types of an objective function, we demonstrate the way PyCSA can be applied to a discrete objective function, namely a parameter optimization problem. Based on the benchmarking results of the three problems, the performance of CSA is shown to be better than or similar to the most popular optimization method, simulated annealing. For continuous objective functions, we found that, L-BFGS-B was the best performing local optimization method, while for a discrete objective function Nelder–Mead was the best. The current version of PyCSA can be run in parallel at the coarse grained level by calculating multiple independent local optimizations separately. The source code of PyCSA is available from http://lee.kias.re.kr.
ISSN:0010-4655
1879-2944
DOI:10.1016/j.cpc.2017.09.028