Given a connected un-directed simple graph $G=(V,E)$, is there a polynomial time algorithm to find the smallest subset $S$ of $V$ such that each node in $V \setminus S$ has at least 50% of its neighbors in $S$? And if so, can that be extended to the vertex-weighted case and for cases where 50% itself is a parameter $p$ in the range (0,100)%?
The ILP of the above (in generality) can be written as: $$ \min_{x\in \{0,1\}^{|V|}} w^\top x\\ \mbox{subject to}~~ Ax \geq (p/100)D(1-x), $$ where $w$ is the vector of vertex weights, $A$ is the adjacency matrix of $G$ and the $D$ is the diagonal degree matrix.