102 votes

Comment fonctionnent les 20 questions algorithmes de l’IA ?

Jeux en ligne simples 20 questions propulsé par une IA étrangement précise.

Comment ils pense qu’oui bien ?

55voto

Yogi Points 1083

Vous pouvez penser que le Binaire de l'Algorithme de Recherche. Dans chaque itération, nous poser une question, ce qui devrait éliminer près de la moitié du possible, le choix des mots. Si il y a un total de N mots, alors nous pouvons nous attendre à obtenir une réponse après log2(N) questions.

Avec 20 question, nous avons devraient idéalement être en mesure de trouver un mot parmi 2^20 = 1 millions de mots.

Un moyen facile d'éliminer les valeurs aberrantes (mauvaise réponse) serait probablement utiliser quelque chose comme RANSAC. Cela voudrait dire, au lieu de prendre en compte toutes les questions qui ont été répondues, vous choisir au hasard un sous-ensemble plus restreint, ce qui est assez pour vous donner une réponse unique. Maintenant, répétez-vous que, quelques fois avec d'autres sous-ensemble aléatoire de questions, jusqu'à ce que vous voyez 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, c'est juste une façon de nombreuses façons de résoudre ce problème.

25voto

Nathan Sanders Points 10641

Un arbre de décision qui prend en charge ce type d'application directement. Les arbres de décision sont couramment utilisés en intelligence artificielle.

Un arbre de décision est un arbre binaire qui demande "la meilleure" question à chaque branche de distinguer entre les collections représentée par son de droite et de gauche des enfants. La meilleure question est déterminé par un certain algorithme d'apprentissage que les créateurs de l'20 questions d'application utiliser pour construire l'arbre. Puis, comme d'autres affiches de ce point, un arbre de 20 niveaux de profondeur vous donne un million de choses.

Une façon simple de définir le "meilleur" question à chaque point est de rechercher une propriété qui est le plus uniformément divise la collection dans la moitié. De cette façon, lorsque vous obtenez une réponse oui/non à cette question, vous vous débarrasser de la moitié de la collection, à chaque étape. De cette façon, vous pouvez approximative de recherche binaire.

Wikipédia donne un exemple plus complet:

http://en.wikipedia.org/wiki/Decision_tree_learning

Et certains de contexte général:

http://en.wikipedia.org/wiki/Decision_tree

23voto

altCognito Points 23944

Je vous recommande de lire à propos du jeu ici: http://en.wikipedia.org/wiki/Twenty_Questions

En particulier, la section Ordinateurs:

Le jeu suggère que l'information (tel que mesuré par l'entropie de Shannon statistique) nécessaire pour identifier un objet arbitraire sur 20 bits. L' le jeu est souvent utilisé comme un exemple lorsque enseigner aux gens à propos de l'information la théorie de l'. Mathématiquement, si chaque la question est structuré de manière à éliminer la moitié de la des objets, des 20 questions permettre à l'interlocuteur de distinguer entre 220 ou de 1 048 576 sujets. En conséquence, la plus efficace stratégie pour une Vingtaine de Questions est à poser des questions qui vont diviser l' champ de possibilités environ de moitié à chaque fois. Le processus est analogue à une recherche binaire algorithme en informatique.

11voto

Cerin Points 9851

Il se vante d'être "le réseau neuronal sur internet", et c'est là que réside la clé. Il a probablement des magasins de la question/réponse probabilités dans un de rechange de la matrice. L'utilisation de ces probabilités, il est en mesure d'utiliser un algorithme d'arbre de décision pour en déduire la question à poser qui serait mieux affiner la question suivante. Une fois qu'il réduit le nombre de réponses possibles à quelques dizaines, ou si elle atteint 20 questions déjà, puis il commence la lecture la plus probable.

L'aspect vraiment intrigant de 20q.net c'est que contrairement à la plupart des arbres de décision et réseau de neurones algorithmes je suis au courant de, 20q prend en charge une matrice creuse et les mises à jour incrémentielles.

Edit: s'avère que la réponse est sur le net tout ce temps. Robin Burgener, l'inventeur, a décrit son algorithme en détail dans son 2005 demande de dépôt de brevet.

6voto

Shaun Mason Points 682

Il utilise un algorithme d’apprentissage.

k-VP est un bon exemple de l’un d'entre eux.

Wikipedia : algorithme de k plus proches voisins

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X