Introduction
When using the Diabatix platform, one can assign multiple targets when setting up a design case. One can choose both multiple objectives and constraints. When selecting multiple objectives, this is technically a multi-objective optimization, and the importance of each of objective can be changed relative to eachother. When selecting multiple constraints, each constraint will be satisfied as long as this is physically possible. The satisfaction of constraint(s) will always take priority over minimizing/maximizing objectives.
A weighting value allows the user to specify the importance of each objective. After selecting a desired objective, you are able to change the weighting factor of it.
A weighting value equal to 1 translates to that objective having the highest priority, while a value close to 0 translates to the target having the lowest priority.
✎ Note |
---|
Multiple objectives can have the same weighting factor. For example, two objectives can both have a weighting factor equal to one. This translates to both objectives being equally important and for this example, both objectives have the highest priority. |
Example |
---|
To make this article easier to understand, a simple thermal optimization problem will be used. This simple thermal problem only has 2 objectives, a temperature objective and a pressure objective. |
Pareto front
"Many real-world optimization problems presume a vector of conflicting objectives. These objectives are to be optimized simultaneously" [1]. "The optimal solution of a multi-objective problem is not unique, instead there exists a Pareto optimal solution set. For a specific optimization problem, a final compromised solution should be specified from the Pareto optimal solution set according to the preference of the designer or the actual demand" [2].
This compromised solution can be selected in two manners:
- changing the weighting factors of each of the objectives and/or
- by imposing constraints.
Example |
---|
For our simple thermal problem this will translate to the following: For any optimal design will there be another one that can reduce the temperature further at the cost of an increased pressure drop. For instance the other design has narrower channels which aids the heat transfer to/from the fluid, but this will increase the pressure drop when the fluid flows through it. |
✎ Note |
---|
Two objectives with the same name (e.g. temperatureMinimization) are treated separately. The weighting factors are not summed! |
Weighting factors for objectives
As stated in the introduction, giving a higher weighting factor to an objective translates to that objective having a higher importance. The diffucilty with doing an optimization based solely on objectives, is the fact that it is a priori uncertain what design on the Pareto front will be returned. It only allows to put all objectives in a hierarchy.
A constraint, on the other hand, allows to more easily specify which point on the Pareto front is the desired one (more on this in the next section).
Example |
---|
For our simple two-objective problem: if you assign a higher weighting factor to the temperatureMinimization objective compared to the pressureMinimization objective, the generative design tool will return a design which favors a reduction in temperature over a reduction in pressure. Switching the weighting factors of the objectives will result in the generative design tool returning a design favoring a lower pressure drop over a lower maximum temperature. |
⚠ Important |
---|
Only using objectives will not give you great control over the Pareto optimal solution. |
Weighting factors for constraints
Constraints are targets which must be satisfied at all times. Meaning that they are more restrictive to the final (optimal) design compared to objectives. Due to this definition, prioritising constraints through weighting factors is irrelevant.
Constraints are inherently more powerful than objectives and are thus capable of decreasing the size of the Pareto optimal solution set. However, one must be carefull when assigning them. Setting too many constraints or setting constraints which are too strict can make the optimization problem infeasible (the Pareto optimal solution set is empty). Running a simulation (called a control simulation) before doing a design will help you understand the problem (and its potential limits). This in turn will allow you to select more feasible constraints.
The support engineers at Diabatix can also help you with setting up a feasible design case as this group has a lot of experience with multi-objective optimization problems.
Example |
---|
Going back to our simple thermal problem one last time. If the control simulation shows that the maximum temperature of the geometry is \(60 °C\) and the pressure drop through it is \(20 kPa\). The problem will most definitely become infeasible when setting a maximumTemperature constraint equal to \(10 °C\) and minizing the pressure drop. |
⚠ Important |
---|
Constraints allow greater control over which Pareto optimal solution will be returned. However, the problem can become infeasible! |
References
- Jyotsna K. Mandal, Somnath Mukhopadhyay, and Paramartha Dutta. multi-objective Optimization. Springer Singapore, 2018
- Xu Han and Jie Liu. Introduction to multi-objective Optimization Design. eng. In: Numerical Simulation-based Design. Singapore: Springer Singapore, 2020, pp. 141-151. ISBN:9789811030895.