I have the following question, and I need to write it as an integer programming problem:
A manager of a company wants to by presents to his 100 employers. He can buy the presents from two different suppliers:
- Every present costs 110\$. For any present above 500, the manager would have to pay 5\$ extra for insurance (for example, for 502 presents, there will be 10\$ extra for insurance).
- Every present costs 120$. For any present above 300, there is a discount of 30% (each present above 300 costs 84\$).
I need to find how many presents he should buy from each supplier, in order to spend the minimal amount of money.
I defined:
$x_1, x_2$ - The number of presents to buy from each supplier.
$z_1$ - Indicator which represents whether or not $x_1 \ge501$
$z_2$ - Indicator which represents whether or not $x_2 \ge301$
I know how to represents the indicators using linear functions, but I don't know how to find a linear objective function.
My best suggestion is:
$$ 110x_1+5z_1(x_1-500)+120x_2-36z_2(x_2-300) $$
However, this is not a linear function, because I multiply the decision variables.
How can I turn it into a linear function?
represents the indicators using linear functions
? $\endgroup$ – user1543037 Nov 15 '20 at 7:41