Bilevel programming and price setting problems