

Two algorithms are used to obtain a feasible starting point.
When only boundary constraints are specified:
If the parameter
,
, violates a two-sided boundary constraint (or an equality constraint)
, the parameter is given a new value inside the feasible interval, as follows:
![\[ x_ j = \left\{ \begin{array}{ll} l_ j, & \mr{if \: } u_ j \leq l_ j \\[0.1in] l_ j + \frac{1}{2}(u_ j - l_ j), & \mr{if \: } u_ j - l_ j < 4 \\[0.1in] l_ j + \frac{1}{10}(u_ j - l_ j), & \mr{if \: } u_ j - l_ j \geq 4 \end{array} \right. \]](images/ormplpug_nlp0324.png)
If the parameter
,
, violates a one-sided boundary constraint
or
, the parameter is given a new value near the violated boundary, as follows:
![\[ x_ j = \left\{ \begin{array}{ll} l_ j + \max (1, \frac{1}{10}l_ j), & \mr{if \: } x_ j < l_ j \\[0.1in] u_ j - \max (1, \frac{1}{10}u_ j), & \mr{if \: } x_ j > u_ j \end{array} \right. \]](images/ormplpug_nlp0328.png)
When general linear constraints are specified, the algorithm of Schittkowski and Stoer (1979) computes a feasible point, which may be quite far from a user-specified infeasible point.