Just adding that there are tricks that allow adding (apparently) non linear conditions to the problem such as variables that activate or not based on other conditions or even if-then-else statements.
Without these tricks the technique is pretty limited at solving real world problems.