A bilevel product pricing problem with ranks and utilities: Models and Algorithms