Let $L=\{a,b,ab,ba,bb,aab,bab,baab\}$. Find two Languages $L_1$ and $L_2$, both not equal to $\{\lambda\}$ over the Alphabet $\{a,b\}$ such that
$$L_1\cdot L_2=L.$$
The solution is $L_1=\{a,b,ba\}$, $L_2=\{\lambda, b, ab\}$.
Do you know a systematic way to always find the solution (or disprove the existence) for such a problem? I really can't see the process behind arriving to such a solution.
I tried to draw graphs with an "is-prefix-of" and "is-suffix-of" relation but that didn't get me to explain the solution.
I can’t give you an algorithm, but I can suggest how I might attack this particular problem. The words that begin with $b$ and are at least two letters long are $ba,bb,bab$, and $baab$, making up fully half of $L$, so I experiment with the possibility of putting $b$ in $L_1$ and $a,b,ab$, and $aab$ in $L_2$. Now
$$\{b\}\cdot\{a,b,ab,aab\}=\{ba,bb,bab,baab\}\;,$$
which at least doesn’t give me any unwanted words, and I still need to take care of $a,b,ab$, and $aab$. But these are exactly the words currently in $L_2$, so adding $\lambda$ to $L_1$ will do the job nicely: setting $L_1=\{\lambda,b\}$ and $L_2=\{a,b,ab,aab\}$ gives me a solution, albeit a different one from the one that you have.