For given values of constants $\forall i $ $a_i, b_i, c$ such that $a_i, b_i, c \in Q^+$ and $0 < a_i < 1$, find all variables $n_i$ such that
$$n_i \in Z^+$$ and $$c \ge \sum_{i}{\frac{b_i}{n_i} * \lceil{a_i * n_i}\rceil}$$ while minimizing the cost function $$\sum_i{n_i}$$
What I have found: $$n\in Z^+, x \in Q^+ \implies x \leq \frac{\lceil{nx}\rceil}{n} \leq \lceil{x}\rceil, $$
$$x = \frac{\lceil{nx}\rceil}{n} \implies nx \in Z^+$$
So one neccesary condition is $$c \ge \sum_{i}{b_i * a_i}$$ So one solution for the given problem is $$n_i \hspace{1mm}\mid n_i * a_i \in Z^+$$ BUT this solution DOESN'T necessarily optimize the cost function.
Example:
Suppose this is the problem $$2 \ge \frac{3}{n_1} * \lceil{\frac{3}{7} * n_1}\rceil + \frac{1}{n_2} * \lceil{\frac{2}{8} * n_2}\rceil$$
From brute force, I know that optimal solution to this problem is $$n_1 = 2, n_2 = 2$$ whereas if we take $n_i$ to be the smallest integer such that $n_i * a_i \in Z^+$, we get $$n_1 = 7, n_2 = 4$$ These satisfy the constraint equation but are not optimal.
Not exact solution but maybe close?
So I was thinking that maybe an iterative algorithmic solution might exist. What I found is this: Since $\frac{\lceil{n_i * a_i}\rceil}{n_i}$ is minimum at the minimum $n_i$ such $n_i a_i \in Z^+$, lets say $n_i=k$, $n_i$ needs to be searched over $[1,k]$ only. Further more, suppose there are two values of $n_i$ such that $n_i=l_1 \implies n_i * a_i = d_1, d_1 \in Z^+$ and $n_i=l_2 \implies n_i * a_i = d_1 + 1$ then $\frac{\lceil{n_i * a_i}\rceil}{n_i}$ is monotonically decreasing between $n_i = l_1 + 1$ and $n_i = l_2$. Maybe this information can be used to do binary search somehow. Any ideas?
Edit:
I don't necessarily need a analytical solution. If someone can tell me how to use any software (such as ILP, matlab etc) to arrive at a solution, I will accept that too. Also, I am bit flexible on the cost function as long as it somewhat tries to minimize the values of all $n_i$ (such as $\sum{\frac{n_i}{b_i}}$ etc).
Note:
If it helps, you can also assume the following to make the problem easier: $$c \lt \sum{b_i}$$ $$c, b_i \in Z^+$$ $$n_i \leq N$$ for some given N. N should be around 10-20, so an iterative/algorithmic solution (not brute force) will also work.