Re: NMinimize -DifferentialEvolution
- To: mathgroup at smc.vnet.net
- Subject: [mg114058] Re: NMinimize -DifferentialEvolution
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Mon, 22 Nov 2010 07:38:08 -0500 (EST)
----- Original Message -----
> From: "lightnation" <lightnation at naver.com>
> To: mathgroup at smc.vnet.net
> Sent: Friday, November 19, 2010 4:10:36 AM
> Subject: NMinimize -DifferentialEvolution
> NMinimize[Flatten[{obj,constraints}],var,Method-
> >"DifferentialEvolution"];
>
> The sentence above is to solve the optimzation problem whose objective
> function and constraints are represented as "obj", "constraints"
> respectively, using genetic algorithm built in Mathematica in the name
> of "DifferentialEvolution".
>
> This type of command is to solve the complex problem which cannot be
> solve in the analytic ways.
>
> The question is,
> How can we solve the optimization problem involving the system
> which is expressed in "DAE"(Differential and Algebraic Equation) way.
> The typical exampe of DAEsystem is the power system.
> The structure of electric grid is represented as the algebraic
> equation(load+loss=generation),
> the dynamics concerning the motion of rotator in generator is
> represented in differential equations.
>
> For instance,
>
> letting
> constraints=Flatten[{constraint1,constraint2,constraint3,
> ...........eigconstraint}]
>
> eigconstraint can be represented as,
>
> Max[Re[#]&/@Eigenvalues[DAEsystem_Matrix]]<=0
>
> and DAEsystem_Matrix can be expressed through the system linearization
> in the symbolic way.
> However, Mathematica does not have the capability
> of calculating the large DAEsystem such as power system in the
> symbolic way.
> (The message meaning "Kernel" has been shut down emerged.
> I guess this is related to the capacity of RAM.)
> Instead, Mathematica can calculate the DAEsystem_Matrix when given the
> initial values.
>
> My question is
> How can we formulated this type of problem to the 'NMinmize" command?
> I mean
> how can I epxress the "eigconstraint" when it is not clearly expressed
> in symbolic way as described above?
>
> I am waiting for the wise answer from others.
> Thank you.
Not certain, but from your description it might be that an unneeded symbolic computation is being attempted. A way to avoid that is to define
eigconstraint[mat : {{_?NumericQ ..} ..}] :=
Max[Re[#] & /@ Eigenvalues[mat]] >= 0
This will restrict it to only operate on explicitly numeric matrices.
Daniel Lichtblau
Wolfram Research