Conversion from Context Free Grammar to Chomsky Normal Form :
(I ll tell you the steps and will also solve the example you asked simultaneously)
Step 1 : Introduce New Non-terminal $S_0$ and make it derive the start variable which is S
Thus
$S_0$ -> S
S -> ASA | aB
A -> B | S
B -> b | $\varepsilon$
Step 2 : Eliminate all $\varepsilon$ transitions
THus we need to eliminate B -> $\varepsilon$
For this we must to replace B with $\varepsilon$ in RHS of every production having B
THus we get,
$S_0$ -> S
S -> ASA | aB | a
A -> B | S | $\varepsilon$
B -> b
Now new $\varepsilon$ transition is introduced which is A -> $\varepsilon$ .. thus we need to eliminate it too
$S_0$ -> S
S -> ASA | aB | a | SA | AS | S ... Note: S -> S can be ignored
A -> B | S
B -> b
Step 3 : Eliminate all Unit transitions i.e. those productions having exactly one non-terminal in RHS .
thus we need to eliminate A -> B , A->S ,$S_0$ -> S
THus,first removing A-> B
$S_0$ -> S
S -> ASA | aB | a | SA | AS
A -> b | S
B -> b
NOw removing A-> S
$S_0$ -> S
S -> ASA | aB | a | SA | AS
A -> b | ASA | aB | a | SA | AS
B -> b
NOw removing $S_0$ -> S
$S_0$ -> ASA | aB | a | SA | AS
S -> ASA | aB | a | SA | AS
A -> b | ASA | aB | a | SA | AS
B -> b
Step 4 : Now eliminate all the productions that are non in CNF
$S_0$ -> AM | NB | a | SA | AS
S -> AM | NB | a | SA | AS
A -> b | AM | NB | a | SA | AS
B -> b
M -> SA
N-> a
The above CFG is in CNF .
:)
What you have isn’t in Chomsky normal form: the productions $S\to aS$, $S\to aA_0$, and $A\to aA$ don’t meet the requirements. After removing the $\lambda$ production you should have
$$\begin{align*}
&S\to aS\mid aA\mid a\mid bB\\
&A\to aA\mid a\\
&B\to bB\mid aaB
\end{align*}$$
This has no unit productions, but the only productions that are compatible with Chomsky normal form are $S\to a$ and $A\to a$, so the others have to be cleaned up. Introduce new non-terminals $A_0$ and $B_0$ together with productions $A_0\to a$ and $B_0\to b$, and replace $a$ and $b$ in non-terminal productions by $A_0$ and $B_0$, respectively, to get this equivalent grammar:
$$\begin{align*}
&S\to A_0S\mid A_0A\mid a\mid B_0B\\
&A\to A_0A\mid a\\
&B\to B_0B\mid A_0A_0B\\
&A_0\to a\\
&B_0\to b
\end{align*}$$
This has two productions that are incompatible with Chomsky normal form, $S\to A_0S$ and $B\to A_0A_0B$: the former is bad because the initial symbol appears on the righthand side, and the latter is bad because the righthand side is too long. The first problem is fixed by adding a new non-terminal $S_0$, making it the initial symbol, and adding the production $S_0\to S$. The second is fixed by adding a new non-terminal $X$, replacing the production $B\to A_0A_0B$ with $B\to A_0X$, and adding the production $X\to A_0A_0$. The result is the following grammar in Chomsky normal form:
$$\begin{align*}
&S_0\to S\\
&S\to A_0S\mid A_0A\mid a\mid B_0B\\
&A\to A_0A\mid a\\
&B\to B_0B\mid A_0X\\
&X\to A_0B\\
&A_0\to a\\
&B_0\to b
\end{align*}$$
Best Answer
It's clear that Chomsky normal form grammars are not unique. If they were, we could check two grammars for equivalence by transforming them to normal form and see if they were equal -- but equivalence of context-free grammars is known to be undecidable.
The phrase "normal form" is a bit fuzzy; there are no properties that are required to use it. You get whatever you get, in each case.
In the case of Chomsky normal form, the relevant sense of "normal form" is something like "a restricted form that is nevertheless strong enough to express everything we're interested in".
One use for such a normal form could be to simplify proofs. If you're trying to prove that something or other holds for all context-free languages, it may be technically simpler to assume that the grammar is given in Chomsky normal form than it would be to treat arbitrary context-free grammars. For example, induction steps may be easier to carry out if you can assume there are no inner $\epsilon$-productions.