Inversion module 'general'

This lens inversion module can handle a variety of input data: image data, null space grids, time delay info, etc. Based on the precise input that was provided, one or more fitness measures will be used and the genetic algorithm will try to optimize these. The currently implemented fitness measures are:

In general, when more than one fitness measure is used, at the end of the algorithm a set of mass maps is found in which no single one will be better than another with respect to all fitness measures. While you can specify that all of these solutions need to be saved to files, usually you'll just want to keep a single solution. To choose this solution, the order of importance of the fitness measures can be left to the default or you can specify it yourself. See the section about 'module parameters' for more information.

Input images data list

The last argument to imgdata/list/add is called type, and can be used to specify what kind of data this is. This inversion module uses these type names to determine which fitness measures are needed in the genetic algorithm. Sometimes, an images data set will require some extra parameters to be specified, which you can do by setting the third argument to yes, in that case you'll need to add lines containing three entries: the name of the extra parameter, the type and the value. Supported types for these extra parameters are int (an integer number), real (a real number), bool (a boolean) and str (a string).

As mentioned above, the images data set type name describes what kind of data is contained in this entry, and can be one of the following:

Module parameters

Extra parameters for this module can be set using invert/grid/algparams/set with argument general (the name of this inversion module). Like the extra parameters in the imgdata/list/add command, three entries need to be provided for each extra parameter: the name, the type (int, real, bool or str) and the value. The defaults can be obtained using the command invert/grid/algparams/get with argument general, and are listed in the following table:

Parameter name Value (all int)
priority_causticpenalty 100
priority_pointimagenull 200
priority_extendedimagenull 200
priority_pointimageoverlap 300
priority_extendedimageoverlap 300
priority_timedelay 400
priority_weaklensing 500
priority_kappathreshold 600

As the names suggest, these describe priorities for fitness measures. These values do not have any effect on the way the genetic algorithm operates, only on the final solution that is chosen from the set of 'best' solutions.

Here, the lower the priority value, the more important it is considered to be, so if for example both the extendedimageoverlap and extendedimagenull fitness measures are used based on the provided images data sets, there may be more than one 'best' solution found by the genetic algorithm. You may decide to save all these solutions using an option to invert/gaparams/set, but typically you'll want to go on using a single solution.

It is based on the priorities that were specified, that one solution will be chosen. Using the default settings in our example, first the solution(s) will be chosen with the lowest value for the extendedimagenull fitness value, and then for extendedimageoverlap. You can force this order to be turned around by using invert/grid/algparams/set to lower the value for priority_extendedimageoverlap.

As you can see, some priorities have the same value. In case two fitness measures with the same priority are used, the number of images is typically used as a tie breaker. For example, if you've specified both point images and extended images as input, the fitness measures pointimageoverlap and extendedimageoverlap will be used. When choosing a single final solution, the fitness value that corresponds to most images will have the best priority for the default settings. So if there are more point images than extended images, the point image criterion will be considered first.