2014-10-22 27 views
5

Quindi ci sono giochi per computer Texas Hold'em in cui si giocano fino a 8 avversari e presumibilmente alcuni di questi giochi per computer ti dicono la tua probabilità di vincere assumendo che le mani dei tuoi avversari siano tutte casuali. Nel caso qualcuno non lo sappia, in Hold'em a ogni giocatore vengono distribuite 2 carte private e poi alla fine 5 carte comuni vengono distribuite nel mezzo (prima 3, poi 1, poi 1 altro), e il vincitore è il giocatore che può fai la migliore mano di poker con 5 carte che possono usare usando qualsiasi combinazione delle loro 2 carte private e le 5 carte comuni. In Omaha, a ogni giocatore vengono distribuite 4 carte private e ci sono ancora 5 carte comuni e il vincitore è il giocatore che può fare la migliore mano di poker a 5 carte usando 2 carte private e 3 carte comuni.Come funziona il software che calcola la probabilità di vincita di una mano Texas Hold'em o Omaha contro 8 mani dell'avversario casuale?

Quindi, in Hold'em, per mano privata di qualsiasi giocatore, ci sono più di 10^24 modi in cui possono essere distribuite le mani private di 8 avversari e le 5 carte comuni. Quindi, come calcolano/stimano la tua probabilità di vincere all'inizio, supponendo che le mani dei tuoi 8 avversari siano casuali? In Omaha la situazione è ancora peggiore, anche se non ho mai visto un gioco per computer Omaha che ti dà le tue probabilità contro 8 mani dell'avversario casuale. Ma comunque, ci sono trucchi di programmazione che possono far eseguire questi calcoli di probabilità di vincita (o dire, correggere entro 3 o 4 cifre decimali), più velocemente della forza bruta? Spero che qualcuno possa rispondere qui che ha scritto un programma del genere prima che funzioni abbastanza velocemente, quindi perché lo sto chiedendo qui. E spero che la risposta non riguardi la stima del campionamento casuale, perché c'è sempre una piccola possibilità che potrebbe essere lontana.

risposta

5

Come è stato identificato, il tasso di vincita previsto è una sommatoria intrattabile e deve essere approssimato. L'approccio standard consiste nell'utilizzare il metodo Monte Carlo che prevede la simulazione di diverse mani ripetute e la media empirica: # wins/# games.

È interessante notare che l'errore (MSE) di questo approccio di approssimazione è indipendente dalla dimensionalità (numero di combinazioni) in modo specifico, lasciando X = 1 se vinci, 0 se perdi, MSE = var (X)/N = p * (1-p)/N dove p = Prob (X = 1) (sconosciuto), e N è il numero di campioni.

Esiste tutta una serie di diverse tecniche Monte Carlo che possono migliorare la varianza dell'approccio di campionamento della vaniglia, come campionamento dell'importanza, numeri casuali comuni, Rao-Blackwellization, variabili di controllo e campionamento stratificato per nominarne solo alcuni.

modifica: ho appena visto che stai cercando un approccio di approssimazione non casuale, dubito che avrai molta fortuna con approcci approssimativi deterministici, so che lo stato attuale dell'arte nella ricerca sul poker compute usa metodi di Monte Carlo per calcolare queste probabilità, anche se con diversi trucchi di riduzione della varianza.

Per quanto riguarda "perché c'è sempre una piccola possibilità che potrebbe essere lontana" è sempre possibile ottenere un'alta probabilità legata al tasso di errore con la disuguaglianza di Hoeffding.

+0

Se il campionamento è lo stato attuale della tecnica, suppongo che sia proprio così. È triste però che ci sia ancora una piccola possibilità che alcune delle stime di probabilità vincenti calcolate siano lontane. E ci sono (52 scegli 2) possibilità che ciò accada. Grazie per la risposta. – user2566092

+0

@ user2566092 non c'è la possibilità che le stime siano lontane da te - può essere superiore a questo valore, se abbiamo media empirica $ m = 1/n \ sum_i X_i $, abbiamo da IE di Hoeffding che Pr (| m - E [m] |> t) <= exp {-2nt^2}, impostando RHS = \ delta, e osservando che X <= 1, abbiamo che | m - E [m] | <= sqrt (log (1/\ delta)/(2n)) + 1 * (\ delta). Data la tua precisione (4 decimali o quant'altro) puoi quindi determinare il valore richiesto per 'n' – fairidox

+0

Sono d'accordo con tutto ciò che stai dicendo, ma resta il fatto che potresti stimare la probabilità di vincita di essere 1.0 anche se in realtà è più come 0.5, se sei molto, molto sfortunato nel tuo campionamento. So che sto parlando di opportunità che possono essere molto più piccole della possibilità di avere un errore di calcolo dovuto alla radiazione cosmica, se la dimensione del campione è abbastanza grande. Ma comunque, c'è la possibilità. Non c'è modo di usare il campionamento per ottenere che la possibilità di una grande deviazione sia 0. – user2566092

0

Vorrei utilizzare una tabella di probabilità pre-calcolata invece di un calcolo al volo. Le tabelle che le elencano sono estremamente facili da trovare e sono esistite da un po 'di tempo, quindi sono strumenti collaudati. Sarebbe abbastanza semplice abbinare le tue carte coperte + carte comuni alla percentuale elencata in una tabella pre-calcolata e restituire il valore a te istantaneamente, saltando il tempo di calcolo al volo.

Ci sono solo 52 carte in un mazzo (classicamente), quindi se semplicemente trovi tutte le soluzioni possibili prima del tempo è molto più veloce leggere da quelle invece di ricalibrare le quote per ogni mano al volo.

Ecco un link a una tabella di probabilità incompleta: http://www.learn-texas-holdem.com/texas-holdem-odds-probabilities.htm

io avrei pensato come password cracking. Invece di forzare ogni carattere singolarmente, usa un elenco di password comuni per ridurre il tempo di elaborazione. La differenza in questo caso è che conosci ogni possibile combinazione in anticipo.

+0

Ma anche il pre-computing sembra richiedere una sorta di trucco se si desiderano le esatte probabilità perché per 8 mani dell'avversario casuali in Hold'em ci sono qualcosa come 10^21 possibilità per le mani degli avversari di ignorare l'ordine degli avversari, e va fino a 10^24 possibilità se le carte middle 5 non sono state ancora distribuite. In Omaha il numero di possibili mani dell'avversario per 8 avversari è qualcosa come 10-20 ordini di grandezza ancora più alti. – user2566092