Some Languages are trivial to find their respective context-free grammar. Like for example $ L= \{a^nb^n: n \geqslant 0\}$ . However some are really difficult to solve. I would like to have some advice on how I can tackle them.

For example I have the following language that I have been trying to solve for a while :

I tried to divide the problem into three cases as follow:

case i: n_{a} $ \le$ n_{b}

case ii: n_{b} $ \le$ n_{a} $ <$ 2n_{b}

case iii: n_{a} $ \ge$ 2n_{b}

The first case was easy to solve however I am stuck in case ii. At this point I don’t even know if the procedure that I chose is the correct one.