On Wed, Jan 4, 2012 at 11:04 AM, Geoffrey Hutchison
<ge...@geoffhutchison.net> wrote:
> On Jan 4, 2012, at 9:19 AM, David Lonie wrote:
>> If there is an easily parsed / imported / OBConv-ertable database of
>> structures somewhere, it wouldn't be too difficult to come up with a
>> test.
>
> I think the question would be "how many molecules do you want?" There's a set 
> of 18 molecules in tests/files/forcefield.sdf and we could certainly make 
> that larger.
>
> It's easy enough to get the MMFF94 test file, which has ~700 molecules:
> http://ccl.net/cca/data/MMFF94/MMFF94_dative.mol2
>
> In developing the "auto-optimize" in Avogadro and some other side-projects 
> here at Pitt, I also have a set of files with stretched bonds, randomly 
> displaced atoms, etc. These are useful since they represent geometries far 
> from the minimum.

I would say "as many molecules as feasible" for general testing ;-) A
smaller set could be cherry-picked for profiling purposes. Yes, the
MMFF94 test set would be a good starting point for benchmarking, since
they should have well-represented energy surface. Storing a randomly
modified version for testing more strenuous minimizations is a good
idea, too.

>> Other important factors to test would be the trust radius (max step size) 
>> and step
>> adjustment factors in the simple line-search -- I'm not sure where the
>> currently used parameters came from.
>
> I eyeballed them, although in the recent months, I've been tinkering to give 
> both better time performance and better convergence. AFAICT, it's a black art 
> to get a good trust radius and adjustment factor. If anyone knows of papers 
> or methods to compute these, I'd be very interested.

Once we have a test set, we could do an empirical analysis to identify
a reasonable range.

>> In addition to the final energies, it would be interesting to count
>> calls to Energy() and steepest descent/conjugate gradient cycles are
>> required.
>
> If you're going to do all that, I suggest someone consider writing a BFGS 
> minimizer (which probably would require Eigen):
> http://en.wikipedia.org/wiki/BFGS_method
> http://en.wikipedia.org/wiki/Limited-memory_BFGS

There are also some existing opensource projects for other minimization methods:

LBFGS (MIT license): http://www.chokkan.org/software/liblbfgs/
Levenberg-Marquardt non-linear lsq (GPL):
http://www.ics.forth.gr/~lourakis/levmar/

I've used them both directly in the past with some success, though
they will probably be more useful as reference implementations if we
add these to OB.

> The BFGS minimizer would certainly converge faster and probably more tolerant 
> of unusual energy surfaces than steepest descent or conjugate gradients.

Especially if we can get a good approximation / fast solution of the
Hessian (Possibly another good student project...)

Dave

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to