risposta

16

sì, c'è un nome per questi classe di algoritmi - si chiama classification algorithms nel campo della machine learning. Decision trees è un esempio per l'algoritmo di classificazione.

In questo problema di classificazione, le funzionalità dell'algoritmo sono le risposte alla domanda.

Decidere quale domanda deve essere posta successivamente può essere fatto in vari modi - ad esempio cercando di massimizzare il previsto (o medio) entropy dalla domanda successiva.

+0

vorrei aggiungere a Amit di rispondere che non si dovrebbe sorprendere che alcune domande sono in grado di trovare il personaggio. Lo screenshot che ho visto aveva 5 possibilità di risposta. Chiedendo solo 8 domande, puoi distinguere tra 8^5 = 2^15 = 32768 caratteri, il che è sufficiente per coprire i personaggi pensati dalla stragrande maggioranza delle persone. – HerrKaputt

+0

@HerrKaputt - Teoricamente sì, ma ricorda che c'è "rumore" - le persone potrebbero scambiare o dare un significato diverso (fortemente d'accordo/debolmente d'accordo) alla stessa domanda. (Questo è il motivo per cui la semplice ricerca binaria fallisce in questi casi e hai bisogno di qualcosa che sia più basato sulle statistiche, che è esattamente ciò che gli algoritmi di classificazione intendono fare) – amit

+0

@HerrKaputt il numero di permutazioni dovrebbe essere '5^8' non' 8^5', tuttavia, ci sono solo due opzioni non cinque. "Non so" è ignorare una domanda e le varianti "probabilmente" servono solo a rendere più deboli le risposte "si" e "no". Quindi il numero di permutazioni per 8 domande è solo '2^8' che è' 256'. – dualed

2

Penso che questo sia come un sistema esperto, con struttura B-Tree.

2

Principali caratteristiche dei algoritmo:

  • auto-educare
  • errori -indulgenza
  • intelligente sistema di domanda successiva scegliere

Akinator modello algoritmo di gioco si chiama "sistema esperto basato su logica fuzzy".

E questo NON è un albero decisionale, perché non ha alcun indulgenza agli errori.

avevo scritto un po 'di tempo fa su C#, si può trovare dal link: https://github.com/ukushu/AkinatorEngine