hello
i am using vensim to do simulating with my thesis about inventory.
but i can't know how the optimization function calculated even use the trace function
could you tell me the calculating procedure of the Optimization function in Vensim
and what's the different between the modified Powell hill climbing algorithm and the original powell
Thanks for your help
Best Regards
Heather
The question of optimization function
-
- Senior Member
- Posts: 1107
- Joined: Wed Mar 12, 2003 2:46 pm
Hi Heather,
The Powell search technique is technically not a hill climbing technique but a conjugate gradient technique. The book Numerical Recipes in C that shows up in the bibliography (Appendix B of the Reference Manual) has a reasonable discussion of this. The implementation in Vensim is somewhat modified from this, but largely the same.
The Powell search technique is technically not a hill climbing technique but a conjugate gradient technique. The book Numerical Recipes in C that shows up in the bibliography (Appendix B of the Reference Manual) has a reasonable discussion of this. The implementation in Vensim is somewhat modified from this, but largely the same.
A good start is to take a look at the online help; look in the index for "Payoff Computation"
In short, for calibration optimization, the payoff is the sum over time of weight*(model-data)^2. For policy optimization, it's just the sum of weight*modelvar. Kalman filter payoffs are slightly more complicated.
The idea behind the Powell algorithm is described fairly well in Numerical Recipes (see chapter 10 here http://www.fizyka.umk.pl/nrbook/bookcpdf.html ). I don't know what the modifications are in the Vensim code, but they probably have more to do with robustness to floating point errors and boundaries rather than anything fundamental about the approach.
Tom
In short, for calibration optimization, the payoff is the sum over time of weight*(model-data)^2. For policy optimization, it's just the sum of weight*modelvar. Kalman filter payoffs are slightly more complicated.
The idea behind the Powell algorithm is described fairly well in Numerical Recipes (see chapter 10 here http://www.fizyka.umk.pl/nrbook/bookcpdf.html ). I don't know what the modifications are in the Vensim code, but they probably have more to do with robustness to floating point errors and boundaries rather than anything fundamental about the approach.
Tom
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
I always thought it was a direction set method. Doesn't conjugate gradient require derivatives (hence the name)?
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/