Sequential Unconstrained
A Continuous Search Method available in the Sizing Method panel. This method is unique in that it has an internal method to generate Discrete solutions as well.
Sequential Unconstrained (SU) finds the best case design by solving a series of unconstrained problems. This simplification is appealing because it is almost always easier to solve an unconstrained problem, making it possible to efficiently solve very large and complex problems. In order to account for the Design Requirements, the Objective function is artificially increased in Infeasible regions. This has the effect of driving the unconstrained solution into the feasible region.
Artificially increasing the Objective a large amount on the first cycle creates a numerically ill-conditioned problem which is difficult to solve. Instead, only a small penalty is added initially. This means it is likely the solution on the first cycle will be infeasible. The next cycle increases the penalty factor and uses the results of the previous cycle as a starting point. In this way, the optimum point is moved toward the feasible region in small, numerically stable, steps. Once the result of an unconstrained cycle ends in the feasible region, the process is stopped.
A Hybrid Method
The Modern Penalty Method does not use Branch and Bound for the determination of Discrete sizes. Instead, it can force the continuous solution into discrete "slots" by creating an artificial set of constraints after the continuous solution is complete. This prevents the need for searching an exceptionally large "tree" that would result with Branch and Bound. However, the method is generally only effective at finding discrete sizes +-1 size away from the continuous solution.
Sizing Control Parameters
-
Finite Difference Gradient Calculation - The most likely parameters to be changed, gradient calculation directly influences the search direction. See a detailed discussion in Estimating the Gradient.
-
Method - Forward or Central, directly affects the quality of the gradient at the cost of runtime. Central gradients are more accurate but require about twice as many hydraulic solutions.
-
Step Size - How much to perturb the pipe sizes to determine the gradient. If the Objective was known exactly, it would make sense to make these values very small. However, as Fathom itself is an iterative solver, the Objective is only known to within a certain tolerance. Making the Finite Difference Step Size too small actually introduces uncertainty into the gradient and can therefore generate poor search directions making the process take longer, if a solution can be found at all. A Step Size that is too large has a similar effect, so it is important to select an appropriate value between the two extremes. The best value to use depends on the system in question - when in doubt, use the default.
-
-
Print Text Debug File - Generate a tab-separated file reporting on each call to the hydraulic solver. Actual pipe sizes are presented along with current Objective value and Design Requirement status.
Caution: The Advanced Control Parameters below should not be changed under normal circumstances without the direction of AFT Support.
-
Sizing Level Convergence
-
Maximum Iterations - This value is the number of sizing iterations, not the number of hydraulic solutions allowed. Generally, the hydraulic solution is by far the slowest part of the process, and as the number of uniquely sized pipes increases, so does the number of required hydraulic solutions. A problem with 100 independently sized pipes would require, at minimum, 100 hydraulic solutions just for 1 sizing iteration. That said, it is important to have an adequate number of sizing iterations regardless of the number of variables - if the process is stopped prematurely, the ideal sizes have not been found.
-
Consecutive Iterations for Convergence - The sizing process will be repeated at least this number of times while satisfying the convergence criteria. It is helpful to allow additional iterations because the sizing process can occasionally make little change in one iteration and then significant change in the next.
-
Relative Tolerance - Changes smaller than this relative amount (default of 0.1%) are considered small enough to be converged. Note that the number of iterations requiring a change in the value of the Objective smaller than this amount can be modified.
-
Absolute Tolerance - The value entered here is multiplied by the initial Objective value. The resulting value is considered as an absolute tolerance. By default, the Objective is scaled to 1,000 meaning that the default value of 0.0001 results in an absolute tolerance of 1,000*0.0001 = 0.1. Objective values smaller than 0.1 will use the absolute criterion instead of the relative.
-
-
Sub-Problem Iterations
-
Maximum - This is the maximum number of approximate problem cycles.
-
Consecutive for Convergence - The approximations will be repeated at least this number of times while satisfying the Sizing Level Convergence tolerance criteria.
-
-
Sequential Unconstrained Parameters
-
Maximum Number of Independent Pipe Sizes for Branch and Bound - Not used when Sequential Unconstrained is directly selected.
-
Number of Discrete Iterations - This number of cycles with the artificial discrete constraints in place will be run. If this value is greater than 1, it is possible that discrete sizes more than one size away from the continuous solution can be found. However, this does not force an exhaustive search of all potential discrete sizes in this range.
-
Continuous Penalties
-
Initial Multiplier - This is the penalty applied to the Objective in the first continuous unconstrained cycle.
-
Multiplier on Additional Iterations - The penalty is increased by this amount each continuous cycle.
-
-
Discrete Penalties
-
Initial Multiplier - This is the penalty applied to the Objective in the first discrete unconstrained cycle.
-
Multiplier on Additional Iterations - The penalty is increased by this amount each discrete cycle.
-
-
-
Design Requirement Tolerances
-
Violated - A very small positive value, which allows Design Requirements to be violated. It is important to allow this small violation for numerical reasons, as attempting to force values to zero is often difficult computationally.
-
Active - This small negative number determines how close to the Design Requirement the Objective can be before the Design Requirement influences the search direction. This value is updated automatically during the sizing process.
-
-
Scaling Parameters
-
Desired Objective Scaled Value - In some cases it is helpful to scale the value of the Objective. Very large or very small unscaled Objective values can present numerical issues, and scaling can help with this.
-
Scale Factor for Design Requirements
-
Common - Design Requirements are always scaled (dividing by the user defined quantity) for numerical reasons. This factor allows additional scaling.
-
Violated Tolerance - This can be used to reduce the value of Violated Design Requirement Tolerance. This can be useful if the small violation is unacceptable for a feasible design.
-
-
-
Print Optimizer Debug File - Generate a debug file detailing the normalized and generalized optimization process.