An optimizer attempts to improve the current configuration of the Model by modifying optimized particle attributes so as to lower the score (there are some exceptions such as Brownian Dynamics when in equilibrium, but those are, I think, self-explanatory). The primary effect is to change particle attributes.
A Sampler in contrast tries to produce a number of good configurations of the Model, often completely ignoring the Model's starting configuration (by randomizing particles, for example). It returns ConfigurationSet that allows you to load a configuration into the Model and then view it, save it or score it. The final state of the particles after using a Sampler is undefined.
Each of Optimizer and Sampler can be given a ScoringFunction that will then be used when evaluating and optimizing. By default it is Model::create_scoring_function(), but one created with any other set of restraints (a ScoringFunction will be created on the fly from a list of restraints if you pass one instead).
Hi,
I am trying to figure out the difference between sampler and optimizer.
When each one should be used/developed? What is the relationship between them?
How each one works with restraints and scoring functions?
Dina
_______________________________________________
IMP-dev mailing list
IMP-dev@salilab.org
https://salilab.org/mailman/listinfo/imp-dev