Unless I'm mistaken, you can solve your problem in $O(n\log n)$ time using a greedy algorithm.
Minimizing $f(S)$ is equivalent to maximizing
$$\textstyle g(S') = \sum_{i \in S'} b_i + \big(\sum_{i\in S'} \alpha_i\big) \log \sum_{j \in S'} \alpha_j$$
for $b_i=w_i + \alpha_i\log(\alpha_i)$. Here $S'$ is the complement of your $S$.
Assume WLOG that $\alpha_i>0$ (otherwise $i\in S'$ iff $b_i>0$).
Introduce indicator variable $x_i$ for the event that $i\in S'$,
then relax the problem by allowing $x_i\in[0,1]$. The relaxed problem is to choose $x\in[0,1]^n$ maximizing
$$\textstyle G(x) = \sum_{i} x_i b_i + \big(\sum_i x_i \alpha_i\big) \log \sum_{j} x_j \alpha_j.$$
The partial derivative of $G(x)$ with respect to $x_i$ is
$$\textstyle b_i + \alpha_i\, \lambda(x),$$
where $\lambda(x) = 1 + \log\sum_j x_j \alpha_j$.
So at any optimal $x$, you have
$$x_i = \begin{cases}
0 & \text{if}~ b_i/\alpha_i < -\lambda(x) \\
1 & \text{if}~ b_i/\alpha_i > -\lambda(x) \\
? & \text{if}~ b_i/\alpha_i = -\lambda(x).
\end{cases}
$$
WLOG, the ratios $b_i/\alpha_i$ are distinct for each $i$ (otherwise an insignificant perturbation of the $b_i$'s makes them so). So only a single $x_i$ is undetermined by the above condition. Since $G(x)$ is convex, one of the two neighboring solutions $x'$ (obtained by changing that $x_i$ to zero or one) has $G(x') \ge G(x)$.
Hence, defining $S_j = \{i : b_i/\alpha_i \le b_j/\alpha_j\}$ and $S_0=\emptyset$, the optimal set is $S_j$ for some $j\in\{0,\ldots,n\}$.
So, here is the algorithm. Assume that $\alpha_i > 0$ for each $i$, and (by sorting first in $O(n\log n)$ time), that
$b_1/\alpha_1 > b_2/\alpha_2 > \cdots > b_n/\alpha_n$.
Enumerate all sets $S_j$ (and compute $G(S_j)$ for each) in $O(n)$ time, then take the best.