1 Introduction
-
A large number of design variables. In the Vertex Morphing practice, the “usual” number is around 10e5 − 10e6. That makes solving the optimization problem not straightforward;
-
The objectives, as well as the physical constraints, are non-linear in state and design;
-
The sensitivity analysis for different objective or constraint functions cannot always be solved analytically; thus, they are solved with a tolerance;
-
The sensitivities of the different responses have to be scaled due to the different physical units. Scaling may mean that information regarding the size of the raw sensitivities is lost;
-
Calculation of the f(x),∇f(x),g(x),∇g(x) is computationally expensive. Doing physical analysis may take up ≈ 50–80% of the one optimization iterations computational time;
-
Line search techniques can be numerically expensive or non-accurate for highly non-linear functions. In practice, a constant step size may be preferred.
2 Rosen’s gradient projection algorithm
2.1 Gradient projection method
2.2 Reduced gradient projection algorithm
2.3 Numerical example
3 Relaxed gradient projection algorithm
3.1 Buffer (critical) zone
3.2 Search direction
3.3 Buffer adaptation functions
3.4 Simplified relaxed gradient projection algorithm
3.5 Optimization algorithm
4 Numerical examples
4.1 Analytical optimization problems
Problem | #2 |
Classification | PBR-T1-2 |
Number of variables | n = 2 |
Number of constraints | m = 1 |
Objective function | |
f(x) = 100(x2 − x12)2 + (1 − x1)2 | |
Constrained function | |
1.5 ≤ x2 | |
Start | |
x0 = (− 2, 1) | |
f(x0) = 909 | |
Reference solution | |
\(x^{*} = (2a \text { }\cos \limits (\frac {1}{3} \text { } \arccos (1/b)), 1.5)\) | |
a = (598/1200)0.5 | |
b = 400a3 | |
f(x∗) = 0.0504261879 | |
RGP solution | |
x∗ = (1.22437007, 1.49999902) | |
f(x∗) = 0.05042600898328847 | |
g(x∗) = 9.765624997548628e − 07 | |
niter = 261 | |
RGP settings | |
step size | 5e − 4 |
Problem | #22 |
Classification | QQR-T1-6 |
Number of variables | n = 2 |
Number of constraints | m = 2 |
Objective function | |
f(x) = (x1 − 2)2 + (x2 − 1)2 | |
Constrained function | |
− x1 − x2 + 2 ≥ 0 | |
\(-{x_{1}^{2}} + x_{2} \geq 0 \) | |
Start | |
x0 = (2, 2) | |
f(x0) = 1 | |
Reference solution | |
x∗ = (1.0, 1.0) | |
f(x∗) = 1.0 | |
RGP solution | |
x∗ = (0.99999962, 1.00000126) | |
f(x∗) = 1.0000007616095747 | |
g1(x∗) = − 8.769388442075865e − 07 | |
g2(x∗) = 2.0193504708387877e − 06 | |
niter = 102 | |
RGP settings | |
step size | 5e − 2 |
Problem | #43 |
---|---|
Classification | QQR-T1-11 |
Number of variables | n = 4 |
Number of constraints | m = 3 |
Objective function | |
\(f(x) = {x_{1}^{2}} + {x_{2}^{2}} + 2{x_{3}^{2}} +{x_{4}^{2}}\) | |
− 5x1 − 5x2 − 21x3 + 7x4 | |
Constrained function | |
\(8 - {x_{1}^{2}} - {x_{2}^{2}} -{x_{3}^{2}} - {x_{4}^{2}} -\) | |
x1 + x2 − x3 + x4 ≥ 0 | |
\(10 - {x_{1}^{2}} - 2{x_{2}^{2}} -{x_{3}^{2}} - 2{x_{4}^{2}}\) | |
+ x1 + x4 ≥ 0 | |
\(5 - 2{x_{1}^{2}} - {x_{2}^{2}} -{x_{3}^{2}}\) | |
− 2x1 + x2 + x4 ≥ 0 | |
Start | |
x0 = (0, 0, 0, 0) | |
f(x0) = 0 | |
Reference solution | |
x∗ = (0.0, 1.0, 2.0,− 1.0) | |
f(x∗) = − 44 | |
RGP solution | |
x∗ = (1.31159684e − 07, 1.0, | |
2.0,− 9.99999586e − 01) | |
f(x∗) = − 43.999999009762654 | |
g1(x∗) = 9.520910907445668e − 07 | |
g2(x∗) = 1.0000019930022122 | |
g3(x∗) = 1.9072899259953147e − 08 | |
niter = 2766 | |
RGP settings | |
step size | 5e − 2 |
4.2 Structural optimization problem
Gradient projection | |
Step size | 0.15 |
Compliance constraint corr. coeff. | 1.0 |
Compliance constraint corr. coeff. | 1.0 |
RGP and SRGP | |
Step size | 0.15 |
Buffer scale factor eq. (18) | 1 |
Initial BSF | 2.0 |
4.3 Structural optimization problem with geometrical constraint
Gradient projection | |
Step size | 0.5 |
Maximum displacement constraint corr. coeff. | 1.0 |
Packaging constraint corr. coeff. | 0.05 |
RGP and SRGP | |
Step size | 0.5 |
Buffer scale factor (18) | 1 |
Initial BSF | 2.0 |
4.4 Computational time
Method | GP | RGP | SRGP |
---|---|---|---|
Aver. time, 1 Iter, s | 247 | 250 | 248 |
Full time, s | 14326 | 10750 | 14136 |