SEARCH OF THE GLOBAL OPTIMUM FOR PROBLEMS OF OPTIMUM DESIGN OF SYSTEMS OR DEFINITIONS OF OPTIMUM LAWS OF MANAGEMENT.
USE
Under object of optimization it is possible to consider everything. The main indicator for possibility of research of an optimum it is interrelation between influence and reaction which is described taking into account the basic properties and functionality of object.
Search of the optimum decision can be executed several ways (fig. 1):
Mathematical model-->Optimum search (MM-->SO)
Experimental researches and mathematical the analysis-->Mathematical model-->Optimum search (ERMA-->MM-->SO)
Numerical modelling-->Experimental researches and mathematical the analysis-->Mathematical model-->Optimum search (NM-->ERMA-->MM-->SO)
Numerical modelling-->Optimum search (NM-->SO)
Fig. 1.
MATHEMATICAL MODEL
For the description of object of optimization use the structure of the data which describes mathematical investigated object and sets initial, boundary conditions, and also criterion of search of a global optimum. The model is described by rules of creation of classes for language programming Java (extends class OptimizationModelObject) and has the following structure:
public class test_001 extends OptimizationModelObject{
// Intervals of entrance parametres
private float[][] interval_x = {
{48.0f, 112.0f},
{20.7f, 62.1f},
{3.0f, 5.0f},
};
// The method returns array from an interval of entrance parameters
public float[][] get_interval(){ return interval_x; }
// The method returns value of digitization of area of entrance parameters
public int get_digitization_area_values(){ return 3; }
// The method returns value of digitization of area of values
public int get_digitization_values(){ return 100; }
// The method returns value of relative accuracy
public float get_precision(){ return 0.001f; }
// The method returns value of criterion of optimization
// Minimum = -Double.MAX_VALUE
// Maximum = Double.MAX_VALUE
public double get_criterion_optimization(){ return -Double.MAX_VALUE; }
// The method is used for inclusion (true) / reenergizing (false) a conclusion to the screen of intermediate calculations
public boolean is_debug(){return false;}
// The method describes model and returns value of parameter
// of optimization
// X - a array of entrance parameters
public double function(double[] X){
double y = 0.3000000019868215 -0.17749999463558197*(X[0]-48.0)/64.0 + 0.1262500025331974*(X[1]-20.7)/41.399998 + 0.14874999597668648*(X[2]-3.0)/2.0 -0.14750000089406967*(X[0]-48.0)/64.0*(X[0]-20.7)/41.399998 -0.16249998658895493*(X[0]-48.0)/64.0*(X[0]-3.0)/2.0 + 0.06499999761581421*(X[1]-20.7)/41.399998*(X[1]-3.0)/2.0 + 0.11000000437100729*Math.pow((X[0]-48.0)/64.0,2) + 0.022500005861123412*Math.pow((X[1]-20.7)/41.399998,2) + 0.0774999832113584*Math.pow((X[2]-3.0)/2.0,2);
return y;
}
}
After the model description in it save in a file with a class name test_001.* and expansion *.java (test_001.java). The received file of model (test_001.java) it is necessary to compilation using a command:
for Windows - javac -cp .;OptimizationModel.jar test_001.java for Linux/Unix - javac -cp .:OptimizationModel.jar test_001.java
At successful compilation the file with the same name test_001.* and with expansion *.class (test_001.class) will be created.
SEARCH OF THE GLOBAL OPTIMUM
For start of search of a global optimum it is enough to use a command from the console: java [CLASSPATH] OptimizationModelSolver [SOLVER] <MODEL> where:
CLASSPATH - the parameter describes a way to library OptimizationModel.jar;
SOLVER - the parameter specifies what technique to use (aam aaqm gzm)), if any parameter is not specified then all techniques are used;
MODEL - a name of a file of mathematical model.
Example of search of a global optimum for model - test_001
At start OptimizationModelSolver search of a global optimum with use of several techniques will be spent.
The result of calculation of an example of model test_001 is presented more low.
*** Start optimization ***
Sat Mar 20 04:51:59 EET 2010
Number of processors/thread: 2/4
Loading model: test_pe_001_1269053514510
Thread: 33-48 (time: 3) Y(X1, ..., Xn) = -8.94903307855923
Thread: 49-64 (time: 4) Y(X1, ..., Xn) = -4.684240944984636
Thread: 17-32 (time: 4) Y(X1, ..., Xn) = -8.94903307855923
Thread: 1-16 (time: 4) Y(X1, ..., Xn) = -8.94903307855923
Solver: AAQM
Solving time (hh:mm:ss) 00:00:00 (total: 4 ms)
Matrix of parameters of model
X1 = 48.0 ... 112.0
X2 = 20.7 ... 62.1
X3 = 3.0 ... 5.0
Optimal Result for Y(X1, ..., Xn) = -8.94903307855923
X1 = 112.0 X2 = 20.700000762939453 X3 = 3.0
*** End optimization ***
*** Start optimization ***
Sat Mar 20 04:51:59 EET 2010
Number of processors/thread: 2/4
Loading model: test_pe_001_1269053514510
Thread: 17-32 (time: 2) Y(X1, ..., Xn) = -8.94903307855923
Thread: 1-16 (time: 2) Y(X1, ..., Xn) = -8.94903307855923
Thread: 33-48 (time: 2) Y(X1, ..., Xn) = -8.94903307855923
Thread: 49-64 (time: 5) Y(X1, ..., Xn) = -4.684240944984636
Solver: AAM
Solving time (hh:mm:ss) 00:00:00 (total: 5 ms)
Matrix of parameters of model
X1 = 48.0 ... 112.0
X2 = 20.7 ... 62.1
X3 = 3.0 ... 5.0
Optimal Result for Y(X1, ..., Xn) = -8.94903307855923
X1 = 112.0 X2 = 20.700000762939453 X3 = 3.0
*** End optimization ***
*** Start optimization ***
Sat Mar 20 04:51:59 EET 2010
Number of processors/thread: 2/4
Loading model: test_pe_001_1269053514510
Thread: 33-48 (time: 31) Y(X1, ..., Xn) = -8.94903307855892
Thread: 17-32 (time: 54) Y(X1, ..., Xn) = -8.94903307855892
Thread: 49-64 (time: 30) Y(X1, ..., Xn) = -8.94903307855892
Thread: 1-16 (time: 28) Y(X1, ..., Xn) = -8.94903307855892
Solver: GZM
Solving time (hh:mm:ss) 00:00:00 (total: 54 ms)
Matrix of parameters of model
X1 = 48.0 ... 112.0
X2 = 20.7 ... 62.1
X3 = 3.0 ... 5.0
Optimal Result for Y(X1, ..., Xn) = -8.94903307855892
X1 = 111.99999999999864 X2 = 20.700000762939453 X3 = 3.0
*** End optimization ***
As a result of calculation of an example of model test_001 for function Y (X1, X2, X3) =... values Õ1, Õ2, Õ3 are found at which Y aspires to a minimum.