GECCO 2016 is hosting the Workshop on Real-Parameter Black-Box Optimization Benchmarking (BBOB 2016), which will be the first time in the BBOB Workshop series where bi-objective problems are examined. This is particularly exciting for us since this competition allows anyone to test any optimization algorithm on a suite of 55 bi-objective problems. The bi-objective problems are constructed by selecting two single-objective functions with known characteristics. Many of the single-objective functions are well-known, such as the Schaffer and Schwefel problems, but additional transformations are applied to increase the difficulty of the functions. This is a perfect opportunity for anyone using the MOEA Framework to show off their optimization algorithm. In this post we will demonstrate how to connect the MOEA Framework to the BBOB 2016 test suite (which is part of the Coco Framework).
0 Comments
The termination condition determines when an optimization algorithm is completed. This post describes a new feature in the MOEA Framework where you can specify termination conditions for an algorithm. We now provide built-in support for fixing the maximum number of evaluations or the maximum wallclock time, but other means can be devised.
If you have used the MOEA Framework in the past, you may have noticed it does not support many plotting options. Yes, it has the Diagnostic Tool for plotting the runtime outputs for an algorithm, but it can only display data generated in the tool. If you were running algorithms programatically, there were not plotting options...until today.
The next release of the MOEA Framework, version 2.7, will contain improved support for defining new decision variable types. This post outlines these changes and walks through a simple example of creating a new type. This code is currently available in the master branch of https://github.com/MOEAFramework/MOEAFramework.
Sensitivity analysis is the "study of how the uncertainty in the output of a mathematical model or system can be apportioned to different sources of uncertainty in its inputs" [Wikipedia]. Sensitivity analysis is a powerful technique for gaining insight into a model by understanding in general terms how the model's output is influenced by the model's inputs. In this post, we provide a short introduction to sensitivity analysis using visual scatter plots followed by an introduction of SALib, an open source Python library for sensitivity analysis.
In the last post, we discussed how to introduce new problems to the MOEA Framework. Researchers developing new multi-objective optimization algorithms may also find it convenient to implement their algorithm within the MOEA Framework for several reasons:
The MOEA Framework is a Java library for multiobjective optimization. While it comes with an assortment of optimization algorithms and test problems, its true power lies in its ability to solve user-defined problems. This post details the steps required to define new optimization problems within the MOEA Framework.
Suppose we have two datasets, which are typically called populations. We want to determine if the two datasets are similar in some way, such as having the same population mean. We could compare the mean value of each dataset, but what happens if one of the dataset, by random chance, contained unusually large values. We might incorrectly assert the datasets are different even if the underlying processes that generated the two datasets are identical. To avoid this potential problem, we turn to statistical tests to provide more rigor.
Congratulations! Your study has been accepted to a journal or conference. The burden of sending endless drafts to your adviser is over. Now what?
One of the key metrics judging the contribution of a study is the number of citations it receives. More citations indicates more researchers are reading and (hopefully) learning from your work. If your study includes any type of computer code, providing your code to others will help increase accessibility and visibility. In this post, we will discuss some of the considerations when deciding to release your code publicly. In many fields today, science is increasingly conducted on a computer. Engineers build computer models of their system, data scientists manipulate and analyze massive datasets, and many other disciplines are utilizing computer simulations and modeling in their workflow. As a computer scientist, I spend most of my day working on a computer. In this blog, I hope to share my experiences and best practices across a range of topics relevant to scientists.
|
Who we are
Keyboard Scientist is a blog about conducting science in a digital world, discussing topics ranging from programming, model design and analysis, and publishing. In addition, we post a range of topics concerning our open source optimization framework. Subscribe
Enter your e-mail address below to receive notifications of new posts.
Archives
January 2016
Categories |