There is a problem I want to solve. The function is:

\begin{align}
&\underset{a,b,\textbf{vec}}{\text{minimize} \text{ }\text{ }\text{ }\text{ } } f=\sum_{i=1}^{b}(\textbf{vec}_i)^{a}\\
&\text{subject to    } \text{ }\text{ } f \geq F, \text{ } \sum_{i=1}^b \textbf{vec}_i = D, \text{ } a\leq N, b \leq D, \{\textbf{vec}_1,\cdots, \textbf{vec}_b\}\leq D
\end{align}

Basically, all the variables are non-negative values. I have two questions:

1. Because the size of $\textbf{vec}$ is dependent on another parameters $b$, then the number of variables in the objective function are not fixed beforehand. Does it still a MINLP problem?

2. How to solve it? is there some open-source software can deal with it easily?