Optimizing price, lot size and backordering level for products with imperfect quality, different holding costs and non-linear demand