A trust region algorithm for bilevel programing problems