Explanation of the Algorithm

The logic of the heuristic scheme is explained.

The flowchart for the implemented algorithm is shown below.

The table below explains the terms used in the flowchart:

NAME OF THE PARAMETER DESCRIPTION
DISCR_CYCLE Initial cycles to be allowed before constraining.
DISCR_INTERVAL Cycles between the fixing of DVs.
DISCR_FRACTION Fraction of the DVs to be fixed in one cycle.
DISCR_CHANGE The maximum allowed change in the individual DVs over two iterations.
ELEM_IS_CONSTRAINED History array for discrete values.
RHO, RHO_OLD, RHO_OLDER Arrays with values of the DVs over the current and past two iterations respectively.
DIFF_RHO The change of each DV is calculated over the past two iterations.

The algorithm requires the following inputs from the user: number of cycles before the constraining starts, number of cycles between constraining, maximum change in each design variable, maximum fraction of variables to be constrained per cycle.

The first check is if the initial number of cycles is reached, this parameter allows the model to achieve some convergence before the constraining begins. The change of each design variable is calculated over the past two iterations. This change is stored in an array. Then this array is sorted and the specified percentage of variables with the lowest change is selected. These variables are fixed to their nearest discrete values and the corresponding discrete value is stored in the History array for discrete values. Further constraining cycles are done according to the interval DISCR_INTERVAL.