I am doing an optimization problem for the filling and extraction of a warehouse. One of the constraints is that the filling volume cannot exceed a given limit for one day: For example, on the 3rd of April a maximum of 60 kg, on the 8th of May, 70 kg.
Using pandas I import the column with the maximum inventory profile for each day and impose the restriction as follows (For the lower limit I also have a profile that I impose for each day):
$$\sum_{i=0}^i X_i \le H_i$$ $$\sum_{i=0}^i X_i \ge L_i$$
m.addConstrs(sum(x[i] for i in dias)<=Hvol[i] for i in dias)
m.addConstrs(sum(x[i] for i in dias)>= Lvol[i] for i in dias)
Days is a list associated with the index $i$, representing each day. What python does is that the sum of 365 days is always less than $H_i$, instead of the sum up to day $i$ being less than $H_i$.
What python does: $$\min \sum_{i=0}^n X_i \le H_i$$ $$n=365$$ $$X_1+X_2+X_3+\ldots+X_{365} \le H_1$$
$$X_1+X_2+X_3+\ldots+X_{365} \le H_2$$
Instead of:
\begin{align}X_1&\le H_1\\X_1+X_2&\le H_2\\\cdots\end{align}