Documentation/Modules/BoundHandler

Aus OpenDino
Version vom 18. März 2013, 22:48 Uhr von Dirk (Diskussion | Beiträge) (Created page with "==Summary== Some optimizations require bounds on the design variables '''xxx'''. E.g. for the diameter of any mechanical support must be above a certain minimum value. As not a...")
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Summary

Some optimizations require bounds on the design variables xxx. E.g. for the diameter of any mechanical support must be above a certain minimum value.

As not all optimization algorithms include bound handling, the module BoundHandler was created.

Properties

General

Algorithm deterministic.
Design Variables Continuous variables, discrete or mixed variables are possible.
Objectives any number.
Constraints any number.
Boundaries Design variables values outside the boundaries are corrected.
Initial Search Region not affected.
Typical X not affected.
Initialization not required.

Connections

Starting at his module One connection of type optimization
Ending at this module One connection of type optimization

Actions

Name Description
- -

Options

The options are currently described as "pop-up help".

Module Description

Any optimization algorithm proposes a new solution x. Some of the values of x might be outside the lower bounds xl and upper bounds xu, specified in the "Problem" module. These variables are corrected to values within the bounds by two different methods:

1. set to bounds

If one of the variables x is below or above the bounds, it is set to the bound value, i.e.

   if x < xl, then x = xl
   else if x > xu, then x = xu

2. reflect

If one of the variables x is below or above the bounds, it is reflected from the bound. The reflection is done such that if x goes to infinity, x is equal to the lower bound and if x goes to minus infinity, it is set to the upper bound.

   if x < xl, then x = xu + (xl- xu) / (x - xu) * (xl- xu);
   else if x > xu, then x = xl + (xu- xl) / (x - xl) * (xu- xl)

Usage

-

Source Code

ToDo:Link to SVN

References

-