## Function GeneratorHere we provide an Eclipse plugin for programmers that allows to evolve (i.e., to get in an automated way) simple functions that meet specified requirements (pass through given points). Sources of the project are avaliable at GitHub.
This program is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
## InstallationThere are two possible ways of installing theFunction Generator plugin:
- Automatic
**(recommended)** - Manual
## Automatic
The recommended way of installation is using project's Update Site. Just paste the link into the ## ManualTo install this Eclipse plug-in: - Install Eclipse if it is not installed already
*(The plug-in has been tested with Eclipse 3.6 and 3.7)*. - Copy file FunctionGenerator_x.x.x.jar to the plugins folder in Eclipse
installation directory
*(The x.x.x part of the name denotes plug-in version number)*. - Run Eclipse.
FunctionGenerator_1.0.1.jar
(~4.2MB) ## UsageTo run the plug-in, you can either click the FG icon on the toolbar, or select Function Generator -> Generate Function in the main menu.
The main program window should be shown. There are many options there, from the top: - Problem type – defines that floating-point or integer arithmetic should be used.
- Constraints – constraint point for symbolic regression. Usually more points give more accurate results, but increase computation times. The constraints can be added manually, or by using the linear scaling problem wizard. To use the wizard, click on the "Linear scaling problem" button.
- Options
*Load*/*Save*allow for storing constraint points in the*CSV*(*Comma Separated Values*) file format. - Basic settings
- Size of population – the number of individuals in population. Usually
more individuals cover search space better, but increase computation
times and memory consumption.
*Default: 25000*. - Number of generations – number of generations for evolutionary
algorithm.
*Default: 50*. - Max depth of tree – maximum depth of the genetic programming tree that represents the function expression you look for. Too big tree size may cause overfitting (lack of generalization). The limit set too low may disallow expressions complex enough to describe your data.
*Default: 6*.
*INI*file – see the*Load*/*Save*buttons in the basic settings section. - Size of population – the number of individuals in population. Usually
more individuals cover search space better, but increase computation
times and memory consumption.
- Available functions – the list of available base functions. Function sets for
floating-point and integer problems differ a bit.
*Literal Value*and*Range Literals*allow to define constants that may be helpful for the optimization process.
When problem definition is done, click the
Linear scaling problem wizard lets you define constraints on independent variable x0 and dependent variable y. The constraints can be constant or variable (if a variable constraint is chosen, then a new variable – a new dimension will be added to the problem). The user input interpretation is shown at the bottom.
When computation begins, the progress window is shown. Each output entry contains fitness value of the best individual in generation (0 – best fitness, ∞ - worst fitness), its adjusted version using the following equation: adjusted = 1/(1+fitness), and hits points – the number of fulfilled constraints.
During the evolution process, a window with current best solution is shown (the
For one-dimensional functions, there preview is available (the When evolution is done, the result window is shown. A sample result function is underlined in the screenshot below.
» |