On Jun 25, 2011, at 11:46 AM, Ben Webb wrote:
> On 6/24/11 12:29 PM, Daniel Russel wrote: >> We have been discussing ideas for accelerating the evaluation of >> certain restraints, particularly excluded volume and >> connectivity-based ones, by taking advantage of the fact that you >> often don't care how bad things are once they are sufficiently bad. >> To be more concrete, the idea is to add a function >> Model::evaluate_if_ok(Restraints, Weights) > > Sounds reasonable to me. Presumably this method would not request > derivatives from the restraints though, since I don't know how you'd > return derivatives for your "bad" score. That would limit your proposal > to optimizers that don't use first derivatives, but I guess that's not > such a big deal. Good point, I'd forgotten to mention that issue.
My current plan is to just disallow requesting derivatives. Some mixed mode might make sense where you can only get derivatives at configurations which aren't too bad, but it is not clear how to do that right now. There also might be a clean way to make things work by defining the scoring function to be the original scoring function with capping. But that direction is not clear either.