The solver/challenger is the GAN discriminator/generator.
The challenger is trained to create difficult questions. The solver is trained to strengthen pathways that correctly solve the questions like so:
> To guide the Challenger toward producing challenging yet solvable questions, we first define an uncertainty score. For a generated question x, we query the current Solver... The most frequent response is treated as the pseudo-label y˜(x), and we compute the Solver’s empirical accuracy....The uncertainty reward is then defined.... This function incentivizes questions where the Solver is maximally uncertain (accuracy approaches 50%)
Identifying the best pseudo-label seems like it would be the limitation of the approach.