Inputs:

a set of constraints c

an initial point x

a feasibility distance tolerance a

a movement tolerance b

1

NINF = 0, for all j: nj = 0, sj = 0

2

For every constraint ci

3

If ci is violated

4

Calculate feasibility vector fv and the feasibility distance||fv||

5

If ||fv|| > a

6

NINF = NINF + 1

7

For every variable xj in ci

8

nj ¬ nj + 1, sj ¬ sj + fvij

9

End for

10

End if

11

End if

12

End for

13

If NINF = 0, then exist successfully

14

For every variable xj

15

tj = sj / nj

16

End for

17

If ||t|| £ b then exit unsuccessfully

18

x ¬ x + t

19

If necessary, reset x to respect any violated variable bounds

20

Go to step1