MLDO tool design
From EVOCD
Let us assume that we have a function
result runDOT(obj,g,x,lb,ub,c,params)
where:
- double obj - the objective function f(x,c)
- double[] g - array of constraints functions g[1](x,c), g[2](x,c), ... g[k](x,c)
- double[] x - array of initial values of the design variables x[1],...,x[n]
- double[] lb - array of lower bounds of x
- double[] ub - array of upper bounds of x
- double[] c - array of constants used in obj and g
- int[] params - array of DOT parameters such as method, upper limit of iteration count, etc.
- result - a data structure capturing the results of a DOT run, such as the value of the objective function, values of the design variables at optimum, number or iterations run, etc.
All At Once
result=runDOT(obj,g,x,lb,up,c,params)
AL ATC Schema 1
tool implementation
design variables : z1, z2, z3, z4, z5, z6, z7 additional params: lambda, W
level 1: z1, z3, z4, z5 level 2: z2, z5, z6, z7
level 1:
optimization: runDOT(z1,z3,z4,z5; lambda,W,r) --> z1*,z3*,z4*,t=z5*
objective: obj = f(z1,z5; lambda,W,r)
constraints: g(1)= f(z3,z4,z5)
g(2)= f(z1,z3,z4,z5)
g(3)= -g(2)
level 2:
optimization: runDOT(z2,z5,z6,z7; lambda,W,t) --> z2*,r=z5* z6*,z7*
objective: obj = f(z2,z5; lambda,W,t)
constraints: g(1)= f(z5,z6,z7)
g(2)= f(z2,z5,z6,z7)
g(3)= -g(2)