I’ve been trying out ideas for puzzle solving scripts, and have come to the conclusion that it would be useful to implement energy minimization.
My understanding is that the folding engine finds the minimum energy configuration for a given sequence. Eterna tackles the inverse problem, finding a sequence which gives a given configuration, which is the harder direction. Now simply finding the minimum energy sequence for a given configuration isn’t going to do the job because of misfolds, but
(i) it would be a start and (ii) it’s likely to be no more difficult than the forward problem.
My idea is to have an script for energy minimization with constraints. Constraints would include numbers of GU and GC pairs, but in addition, after a misfold occured, a constraint would be added to prevent it, and a new minimum energy found. This idea of trials, adding extra constraints on failure is based on the way boolean satisfiability algorithms work, and they are amazingly successful.
What I don’t want to do is to reinvent the wheel. Since Eterna includes folding engines, much of the energy minimization code must already be there, in particular the tables for energy parameters, Is there any way to access these in a script?