5 ms·
My stepson has one- and I was astonished how good it is. I can’t say I’ve thought about it at length but at face value it seems a marvel. Is the logic for such
by Miserlou57 4y ago
My stepson has one- and I was astonished how good it is. I can’t say I’ve thought about it at length but at face value it seems a marvel. Is the logic for such a thing trivial and widely available?
- tsm 4y agoI have no idea how they actually work, but if I were asked to design one: • Choose some reasonable number of questions of the form "Is it ___"?. Let's say 256 • Come up with a list of objects, and for each one give it a 256-long bitvector encoding its answers to the questions • Maintain a set (implemented as another bitvector) of the potential items. Figure out which question would divide the set in two most closely; ask that question. I am the opposite of a hardware hacker or systems programmer, but it seems like this is algorithmically straightforward to implement with bit-twiddling.
- doubleunplussed 4y agoOne problem with this explanation of how it might work is that it appears to know far more than 256 things - though I don't know how many. And even if it did know only that many, how do you construct the set of questions? Actually programming the logic once you know it is the easy bit, it's constructing the dataset of answers and questions in the first place.
- kd5bjo 4y agoThis approach allows for 2^256 different things, one for each possible yes/no bitstring.
- doubleunplussed 4y agoAh yes, apologies. Still, big job to construct the database of what things correspond to what answers to the questions - and to choose the questions.
- afandian 4y agoI think you'd probably start with a dense matrix of questions x answers populated by humans. But I imagine there's a clever preprocessing step that's used to build the optimum tree of questions, avoiding getting caught in a local maximum and significantly reducing the data you'd have to store.
- ukoki 4y ago> Figure out which question would divide the set in two most closely; ask that question. This depends on the goal. One goal might be to answer all questions as quickly as possible, in which case partitioning the search space in two might be a good strategy. Another goal might be to have the best chance of guessing the item within 20 questions, in which case you will want to choose questions which maximise the % of the remaining search space you can uniqely identify with the remaining questions (perhaps weighted by popularity of that item).
- doubleunplussed 4y agoIt's been a longstanding question of mine how these things were programmed. How did they construct the database of answers and questions, and what the answer to each question would be for each possible answer?
- b4je7d7wb 4y agoMaybe it's some reinforcement learning.
- Luc 4y agoPeople could play the game at http://20q.net/ http://20q.net/ , and if it didn't guess your word it asked you to enter it. So it was trained by the players. It's a neural net, so very efficient on small devices.
- ableal 4y agoPage is working nicely, albeit with " © 1988-2007, 20Q.net Inc.," in the game pages, -2017 in the front page.
- c22 4y agohttps://patents.google.com/patent/US20060230008?oq=Artificial+neural+network+guessing+method+and+game https://patents.google.com/patent/US20060230008?oq=Artificia...
- aabbcc1241 4y agoLooks similar to the https://akinator.com https://akinator.com
- jeffnappi 4y agoApparently it uses a neural network - https://patents.google.com/patent/US20060230008 https://patents.google.com/patent/US20060230008