I was playing "Guess who" with my sons and a friend, and she told me that she used to play with two cards to get a "not so simple game".
The questions have to be formulated in this way: "Are any of your characters female?", "Do any of your characters use hat?". This way, if the answer is NO, you get useful information and you can flip down the corresponding characters on your board, but if the answer is YES you cannot flip down any of the tiles on your board, so your question was not so informative. Compound questions as "Are any of your characters bald and wear glasses?" are not allowed.
I got intrigued by this variation of the game, and I have arrived to two conclusions:
There may exists situations of non-existence of solution. For example, imagine an extremely reduced version where there are only 4 nearly identical characters where Character A and Character B are blonde, while Character C and D are brunette. At the same time Characters A and C use glasses, while B and C don't. They 4 cannot be distinguished by any other characteristic. If your opponent has characters B and C, for example, you cannot separate them with this kind of questions.
The best strategy is, probably, to ask "peripheral" questions. That is, questions that do not divide the sample in two. Contrary to the winning strategy for the normal version, I think, but I am not sure, that it is better to ask for "rare features", to have more chances to get useful information. But I don't have a way to prove it.
Do you know if is there any serious approach to this problem in the literature? What do you think is the best algorithm to approach the solution (even if it cannot be reached, it should be possible to find the "enveloping set" of the solution).
Joining the different approaches of the answers and comments I have arrived to a satisfying answer. As Ross Millikan said, you have to focus in the universe of pairs, instead of individuals.
Then, taking the idea of vvg of comparing with Mastermind, you can codify every pair like a Mastermind sequence, not binary, but "trinary". For example, the pair (Tom, Susan), where Tom is a blonde man with no glasses and Susan a blonde woman with no glasses, can be codified with the sequence: $$ (1,2,0,...,...,...) $$
The first entry is a value for the feature "number of men in the pair", the following is the value of the feature "number of blonde people in the pair", the third one is "number of people wearing glasses", and so on. Every pair is codified with a sequence.
To play the game in an optimal way, I would write all the possible sequences, and then I would eliminate those not corresponding to a real pair (for example, maybe there is no pairs consisting of 2 bald men, both with glasses, both with green eyes).
By the way, if two pairs correspond to the same sequence-code, the game doesn't have solution. But we can find the "enveloping set".
Looking at the list of remaining allowed codes is easy to figure out what the next question should be: you can examine every column and see what question let you eliminate more codes. For example, if you have something like this:
the question "is either of them a man?" split your codes in 3/1, so can be a bit of a risk. But the question "has either of them green eyes?" split your space in halves, and lead to the solution as in the usual game.
Nevertheless, there are more complications. For example, there are characteristics which can imply others, like being bald an being blonde. And moreover, you have to be aware of 24*23 pairs-codes, which I think is impossible to do it by heart (at least for me) without the aid of a spreadsheat.
It is still very surprising to me that a so simple game as "Guess who" gets so complicated with this slight modification.