Optimization in system Dynamics

Use this forum to discuss any issues relating to Systems Dynamics and Systems Thinking.
Post Reply
duilio
Senior Member
Posts: 59
Joined: Wed Oct 20, 2004 3:07 pm

Optimization in system Dynamics

Post by duilio »

Hi folks, I'm currently working on a system dynamic long term model for electricity market. I'd be intrested in experience, hints , in including a linear optimization algorithm in a SD model. The algorithm simulates the spot price based on an auction and must create the yearly price.
Do you think it is enough to have a look at the Vensim on-line documentation?

thank You in advance
D
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

RE: optimization in SD

Post by LAUJJL »

I am too interested in putting optimization in simulation and particularly in setting optimal pricing, but can you
be more precise about your problem?
If nobody understands your problem well enough nobody will be able to help you.

Where do you intend to include your linear program, at the end of the simulation, at every time step, at one
particular time step. Is the optimization made in a simple simulation or during a Vensim model optimization.
Do you expect Vensim to make the optimization?
Explaining what is exactly meant by your spot price, the kind of auction and how is the yearly price created
would help.
Other remarks.
If you expect Vensim to make the job, you can transform any constraint in a payoff.
By example; Fj(Ai,Xi) <= 0 will be transformed into the payoff, payoffj = if then else(Fj(Ai,Xi)<= 0,0,-1000000)
with a weight of 1 to be added to the principal payoff.
Including the maximum or minimum of your optimization is more problematic, because if you add it to the list of
other payoffs, Vensim should calculate a global payoff, and the value of the parameters that will optimize the
model, will not necessarily optimize the linear programme included, unless the results of your linear programme
and the parameter that drive it have no influence on the rest of the model.
Optimum of (A + B) = optimum of (A) + optimum of (B), if A and B are driven by different parameters and are
independent from one another.
The simpler solution is to include an external function using a specific algorithm like Simplex by example.
This makes possible to optimize whatever you want at any time you want.
You can by this way make a price adjustment, at the time you need it, instead of waiting for the next step to
make the adjustment when you eventually do not need it anymore.
J.J. Laublé
duilio
Senior Member
Posts: 59
Joined: Wed Oct 20, 2004 3:07 pm

Optimization in SD

Post by duilio »

Hi, sorry for the lack of details in my question. The original problem was how to include an external program, doing for instance optimization, at every time-step of the simulation. Do you have any examples of how to include an external program? Is MATLAB or Visual Basic supported or do I need a C++ compiler ? Merry Christmas to everybody
Administrator
Super Administrator
Posts: 4590
Joined: Wed Mar 05, 2003 3:10 am

Post by Administrator »

You need to program something in C++. Its easy enough to call other applications as long as they allow it, but you do need to write some custom code to do it.

Tony.
Post Reply