Ahmet Tanakol
Ahmet Tanakol

Reputation: 899

Maximizing an objective function in CPLEX by using ILOG

I was working on a project and I was wondering something about the functions of CPLEX for ILOG. For instance, I'm selling products for each customer, I have different probabilites for each of 6 products.It means probability of a person buying a product is different. Let's assume I have 2 customers and 6 products. For first customer, probabilities are 0.5 for first product, 0.3 for second product etc... So I want to maximize my profit and I know revenue for each product. My problem is how I can select the best profitable product according to these probabilities. Obviously, there has to be a way of using these probabilities. In the project, they are just giving probabilities but there is no explanation of how to use them. For now, my function is like this:

maximize
 sum (c in Customers, p in Products, ch in Channels)  (Revenue[p] * quantity[c][ch] - quantity[c][ch] * Cost[ch]); 

Quantity is used to determine how many times a channel is used to sell a product. There is a cost for 4 different channels.

Upvotes: 1

Views: 1292

Answers (1)

TimChippingtonDerrick
TimChippingtonDerrick

Reputation: 2072

It's not clear to me quite what are the decision variables that you are trying to get values for. I am guessing that you are trying to find the quantities for each customer on each channel (the quantity[c][ch] are the variables in the model, while Revenues and Costs are known?).

I am also a little confused why there is no apparent index on the quantity variables for the products - that would seem to be more normal if that is the type of model you are working on, something like:

maximize
 sum (c in Customers, p in Products, ch in Channels)  (Revenue[p] * quantity[c][ch][p] - quantity[c][ch][p] * Cost[ch]); 

Of course I may be completely wrong... Also, I may be playing fast and loose with the terminology here, but I want to get across at least a simple starting approach. Once you have something like what you need then you can extend the model or look into more complex handling of the uncertainty, maybe with more sophisticated handling of conditional probabilities, using multiple scenarios, etc.

To include probabilities, a simple way to achieve this is to think about the expectation value which can be thought of as simply the value times its probability, so on that basis a sale of $100 with a probability of 0.3 only has an expectation value of $30, while a different sale of $80 with probability 0.5 has an expectation of $40 and so is more valuable. Is that the sort of reasoning you were looking for?

If that is OK as an initial approach, then you could try something like:

maximize
 sum (c in Customers, p in Products, ch in Channels)  Probability[p] * (Revenue[p] * quantity[c][ch][p] - quantity[c][ch][p] * Cost[ch]); 

Upvotes: 0

Related Questions