Linear Program with dependent variables, allocation problem

562 Views Asked by At

I have 3 boilers and a they are filled with water, the water levels are $(w_1, w_2, w_3)$. The temperature increase per time step $t$ in each boiler is different and denoted with $(d_1^t, d_2^t, d_3^t)$. Now, the goal is to maximize the temperature increase of the water for the next time step $t$. I could simply take the projected temperature increase at time step $t+1$ and write a linear program to maximize the temperature of the water.

Objective function: $$ d_1^{t+1}*w_1^{t+1} + d_2^{t+1}*w_2^{t+1} + d_3^{t+1}*w_3^{t+1} $$

Subject to: $$ w_1^{t+1} + w_2^{t+1} + w_3^{t+1} = 1 $$

I know how much water needs to be redirected per tank by taking the difference between the newly maximized water level $w_n^{t+1}$ and the current water level $w_n^t$. E.g.:

$$\Delta_{n}^{t+1} = w_n^{t+1} - w_n^t$$

Now, i have the constraint, that the amount of redirected water is cooled off by a percentage $p_{n,m}$ when redirecting from tank $n$ to tank $m$. Therefore, i want to maximize:

$$ d_1^{t+1}*w_1^{t+1} + d_2^{t+1}*w_2^{t+1} + d_3^{t+1}*w_3^{t+1} - p_{1,2} * \Delta_{1}^{t+1} - p_{2,3} * \Delta_{2}^{t+1} - p_{3,1} * \Delta_{3}^{t+1} $$

The more water i am redirecting the more water is likely cooled off and it is not the best to possibly redirect the complete water every time step, it is directly dependent on the amount of water in each tank in the previous time step.

I want to maximize this objective function, however i fail to define the constraints properly, that $\Delta_n^{t+1} = w_n^{t+1} - w_n^t$ is guaranteed in the maximization. Am i defining $\Delta_{n}^{t+1}$ correctly? In addition, there will likely be more tanks in the future. How i can extend the function properly to an arbitrary number of tanks?