Hello,
I am hoping to see how well BP performs in minimizing a function when I change how each factor to variable message's value is calculated (in other words, how the guess of the minimization of each factor is calculated). I don't want to change the function being minimized or the variables in my problem, just the way the minimization is done/attempted. It seems to me that I could define my own Function class (as in a child of the FunctionBase class) for each approach I wish to use (e.g. simulated annealing, brute force, etc.), where I put my solver code in the operator() function. Then I could create a new GraphicalModel (on the identical problem) with this custom function class substituted for something like the ExplicitFunction class (which is equivalent to a brute force solver as far as I can tell, since it stores all possible values for each variable in each of its states).
Since I'm rather new to openGM, I was hoping to hear both if this sounds correct as far as you can tell (e.g. it's not the case that I should be leaving the GraphicalModel alone and instead defining a different Inference algorithm or changing the UpdateRules) and also how to go about doing this. Specifically, if I have some solver code like guess_minimal_state(variables, function_to_minimize), how can I get this to be used to evaluate function_to_minimize within each factor?
Thank you!