Des jeux en ligne simples de 20 questions alimentés par une IA étrangement précise.
Comment devinent-ils si bien?
algorithm
artificial-intelligence
Papa Warbox
la source
la source
Réponses:
Vous pouvez le considérer comme l'algorithme de recherche binaire. À chaque itération, nous posons une question, qui devrait éliminer à peu près la moitié des choix de mots possibles. S'il y a un total de N mots, alors nous pouvons nous attendre à obtenir une réponse après log2 (N) questions.
Avec 20 questions, nous devrions de manière optimale être en mesure de trouver un mot parmi 2 ^ 20 = 1 million de mots.
Un moyen simple d'éliminer les valeurs aberrantes (mauvaises réponses) serait probablement d'utiliser quelque chose comme RANSAC . Cela signifierait qu'au lieu de prendre en compte toutes les questions auxquelles vous avez répondu, vous choisissez au hasard un sous-ensemble plus petit, ce qui suffit pour vous donner une seule réponse. Maintenant, vous répétez cela plusieurs fois avec différents sous-ensembles aléatoires de questions, jusqu'à ce que vous voyiez que la plupart du temps, vous obtenez le même résultat. vous savez alors que vous avez la bonne réponse.
Bien sûr, ce n'est qu'une des nombreuses façons de résoudre ce problème.
la source
code
lien pour le voir: openbookproject.net/py4fun/animal/animal.htmlUn arbre de décision prend directement en charge ce type d'application. Les arbres de décision sont couramment utilisés en intelligence artificielle.
Un arbre de décision est un arbre binaire qui pose «la meilleure» question à chaque branche pour distinguer les collections représentées par ses enfants gauche et droit. La meilleure question est déterminée par un algorithme d'apprentissage que les créateurs de l'application 20 questions utilisent pour construire l'arbre. Ensuite, comme le soulignent d'autres affiches, un arbre de 20 niveaux de profondeur vous donne un million de choses.
Un moyen simple de définir «la meilleure» question à chaque point est de rechercher une propriété qui divise le plus uniformément la collection en deux. De cette façon, lorsque vous obtenez une réponse oui / non à cette question, vous vous débarrassez d'environ la moitié de la collection à chaque étape. De cette façon, vous pouvez approximer la recherche binaire.
Wikipedia donne un exemple plus complet:
http://en.wikipedia.org/wiki/Decision_tree_learning
Et quelques informations générales:
http://en.wikipedia.org/wiki/Decision_tree
la source
Je recommande de lire sur le jeu ici: http://en.wikipedia.org/wiki/Twenty_Questions
En particulier la section Ordinateurs:
la source
Il se présente comme "le réseau neuronal sur Internet", et c'est là que réside la clé. Il stocke probablement les probabilités de question / réponse dans une matrice de rechange. En utilisant ces probabilités, il est capable d'utiliser un algorithme d'arbre de décision pour déduire la question à poser qui limiterait le mieux la question suivante. Une fois qu'il réduit le nombre de réponses possibles à quelques dizaines, ou s'il atteint déjà 20 questions, il commence à lire les plus probables.
L'aspect vraiment intrigant de 20q.net est que contrairement à la plupart des algorithmes d'arbre de décision et de réseau neuronal que je connaisse, 20q prend en charge une matrice clairsemée et des mises à jour incrémentielles.
Edit: Il s'avère que la réponse a été sur le net tout ce temps. Robin Burgener, l'inventeur, a décrit son algorithme en détail dans son dépôt de brevet en 2005 .
la source
Il utilise un algorithme d'apprentissage.
k-NN est un bon exemple de l'un d'entre eux.
Wikipédia: algorithme k-voisin le plus proche
la source