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):
GUI
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
Operating system
Command line
Windows java -cp .;OptimizationModel.jar OptimizationModelSolver test_001
Linux/Unix java -cp .:OptimizationModel.jar OptimizationModelSolver 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.
Technique X1 X2 X3 Decision time Quantity of iterations
aaqm 112.0 20.700000762939453 3.0 4 ms 384
aam 112.0 20.700000762939453 3.0 5 ms 768
gzm 111.99999999999864 20.700000762939453 3.0 54 ms 134912