Come fare l'inferenza in un gioco di carte?

3

Nel gioco ci sono 5 giocatori, ognuno con 8 carte in mano. Nessuna altra carta è presente.

Utilizzo di Monte Carlo (MCTS) Eseguo molte simulazioni del gioco dallo stato corrente alla fine della partita. In quelle simulazioni gli avversari giocano con regole stupide molto semplici. Quando si genera una nuova simulazione, assegno a loro le carte sconosciute con una distribuzione casuale uniforme. Dico che una carta è sconosciuta se non è nella mia mano, non è sul tavolo e non è stata scartata prima, quindi deve essere nella mano di qualcun altro.

Tuttavia, la distribuzione casuale uniforme non è il modo migliore per distribuire le carte. Infatti, a volte è semplice per un giocatore umano un ragionamento del genere:

Se avesse avuto 3 ♥ lui probabilmente l'avrebbe scartato nel turno precedente poiché era una mossa molto buona . Quindi, è molto improbabile che scarterà 3 ♥ in mano in seguito.

Bene, prima di scartare, prima di generare le simulazioni Monte Carlo, assegnerei ad ogni avversario l'insieme delle carte sconosciute con la loro distribuzione di probabilità:

{(3 ♥, 0.20), (4 ♥, 0.12), (5 ♥, 0.03) ...}.

Come posso calcolare quelle probabilità? C'è qualche carta o qualche idea da cui partire?

EDIT: Un'idea: parlando in modo computazionale, sarebbe una buona idea eseguire una semplice simulazione Monte Carlo quando si sceglie la strategia degli avversari? Con semplice intendo una simulazione approssimativa, veloce, che termina in un tempo ridotto come un secondo. In questo modo, il prossimo turno avrei una misura della bontà degli avversari e potrei iniziare a fare inferenze da lì.

    
posta HAL9000 09.01.2014 - 10:36
fonte

1 risposta

3

Stai parlando di attribuire stati di convinzione agli altri giocatori. Questo è relativamente facile da fare se i tuoi avversari sono computer con semplici algoritmi; ad esempio, puoi eseguire la normale analisi dell'albero di gioco per tutti i casi possibili e valutare le azioni che gli avversari avrebbero fatto se avessero giocato deterministicamente e in modo ottimale secondo una certa metrica fissa.

Se i tuoi avversari sono programmi con algoritmi sofisticati come i tuoi o più sofisticati, le cose diventano molto difficili molto velocemente. Qualsiasi decisione tu possa programmare viene sfruttata dagli avversari che conoscono come reagirai, aprendo il percorso a tutti i tipi di bluff, truffe, apprendimento automatico per sfruttare la tua strategia come visto in passato, ecc. I giocatori umani pongono lo stesso problema, tranne per il fatto che i migliori sono ancora meglio in questo. In generale, anche i giochi di stato nascosti, anche se modestamente complessi, contro avversari umani tendono a diventare difficili da giocare con l'IA generale.

    
risposta data 09.01.2014 - 10:46
fonte

Leggi altre domande sui tag