Gå till innehåll

Hur fungerar oddsräknare?


tdr

Recommended Posts

Detta är kanske en dum fråga, men hur fungerar egentligen en oddsräknare som räknar ut sannolikheten för en hand att vinna mot en annan hand eller HD? Program jag syftar på är då exempelvis PokerStove.

 

Simulerar den varje situation ett stort antal gånger helt enkelt eller använder den sig av någon speciell algoritm?

 

Om jag exempelvis vill räkna ut hur ofta QQ står mot AKs och AK, simulerar den då:

 

Fall 1: QQ vs AKs, där den simulerar varje hand, dvs. delar ut en flop, turn, river och ser sedan vilken hand som står som vinnare (eller split) med exempelvis 1 miljon simuleringar för att få ett bra sannolikhetsvärde?

 

(Enligt pokerstove 53.951% vs 46.049%)

 

Fall 2: QQ vs AK, samma tillvägagångssätt som ovan.

 

(Enligt pokerstove 56.758% vs 43.242%)

 

Tar den sedan och slår ihop möjligheterna? Dvs. I första fallet QQ vs AKs var det 53.951% att QQ vinner, dvs av 100 000 simuleringar vinner QQ 53951 ggr, och i andra fallet med QQ vs AK vinner QQ 56758/100000 gånger.

 

Dvs: QQ vinner mot AK eller AKs 53951+56758 = 110709 / 200 000 gånger, vilket ger sannolikheten 55.354%.

 

Anledningen att jag frågar är att när jag kör simuleringen QQ vs HD'n AK eller AKs så ger den sannolikhet 56.056% jämfört med "mina" 55.354%.

 

Gör jag rätt?

Länk till kommentar
Dela på andra webbplatser

Skillnaden mellan beräkningarna bör bero på att programmet tagit hänsyn till att det finns 12 kombinationer av AK-offsuit medan det bara finns 4 kombinationer av AK-suited, d v s att AKo är tre gånger vanligare än AKs.

 

 

De tre uträkningarna är gjorda i PokerStove, således bör beräkningarna stämma om man räknar QQ vs AK (Enligt pokerstove 56.758% vs 43.242%)

och QQ vs AKs (Enligt pokerstove 53.951% vs 46.049%) separat och slår ihop dem manuellt

(53951+56758 = 110709 / 200 000 gånger, vilket ger sannolikheten 55.354%) ?

 

Borde det inte bli samma resultat som när man räknar QQ vs HD'n (AK + AKs)?

 

Därför undrar jag om jag räknar rätt när jag slår ihop resultaten manuellt?

Länk till kommentar
Dela på andra webbplatser

Eftersom AKo är tre gånger vanligare än AKs utgår jag ifrån att Pokerstove viktar vinstsannolikheterna därefter, d v s sannolikheten att vinna mot AKo ges 3 gånger större betydelse än sannolikheten att vinna mot AKs. Det vill säga din metod måste modifieras om motståndarhänderna inte är lika vanliga, medan den stämmer om motståndarhänderna är lika vanliga.

 

3/4*56,758% + 1/4*53,951% = 56,056% vilket stämmer överens med vad du skriver Pokerstove ger för resultat.

Länk till kommentar
Dela på andra webbplatser

Eftersom AKo är tre gånger vanligare än AKs utgår jag ifrån att Pokerstove viktar vinstsannolikheterna därefter, d v s sannolikheten att vinna mot AKo ges 3 gånger större betydelse än sannolikheten att vinna mot AKs. Det vill säga din metod måste modifieras om motståndarhänderna inte är lika vanliga, medan den stämmer om motståndarhänderna är lika vanliga.

 

3/4*56,758% + 1/4*53,951% = 56,056% vilket stämmer överens med vad du skriver Pokerstove ger för resultat.

 

Ok, nu förstår jag vad du menar. Tack!

Länk till kommentar
Dela på andra webbplatser

Jag har lekt med tanken om man skulle kunna göra en oddsräknare som ist för att simulera försöker räkna ut oddsen, med nån lite mer sofistikerad metod än den som vi använder i huvudet när vi räknar outs. Det skulle kunna snabba upp beräkningarna betydligt och tillåta stora HD:ar att utvärderas snabbt mot varandra och därmed även tex. jämnviktsstrategier att kunna sökas.

Länk till kommentar
Dela på andra webbplatser

Jag har lekt med tanken om man skulle kunna göra en oddsräknare som ist för att simulera försöker räkna ut oddsen, med nån lite mer sofistikerad metod än den som vi använder i huvudet när vi räknar outs. Det skulle kunna snabba upp beräkningarna betydligt och tillåta stora HD:ar att utvärderas snabbt mot varandra och därmed även tex. jämnviktsstrategier att kunna sökas.

 

Det enda jag kan komma att tänka på om man inte använder simulering är att använda kombinatorik, dvs ta fram alla möjliga "subsets" där ordning inte spelar roll på en 7-manna hand (234589T är samma som T345892) men upprepning inte är tillåten.

 

Sedan kollar man vilken hand som är vinnande (eller split) för varje scenario och räknar ut sannolikheten, men det är kanske denna metod PokerStove redan använder sig av?

 

Att beräkna mellan 2 spelare som har stor HD går relativt snabbt med PokerStove, men med flera spelare blir det givetvis tidskrävande.. tror dock det är svårt att finna en mer optimerad algoritm än PokerStove använder sig av

Länk till kommentar
Dela på andra webbplatser

Det jag tänkte var mer att lära datorn att känna igen vissa mönster, tex drag till olika händer. Sen får den räkna sannolikheten att den svagare handen sätter sitt drag o räkna med re-draws för den starkare handen. Borde kunna göras allt från ganska grovugget och simpelt till hyffsat exakt.

Länk till kommentar
Dela på andra webbplatser

Det jag tänkte var mer att lära datorn att känna igen vissa mönster, tex drag till olika händer. Sen får den räkna sannolikheten att den svagare handen sätter sitt drag o räkna med re-draws för den starkare handen. Borde kunna göras allt från ganska grovugget och simpelt till hyffsat exakt.

 

Ok, du menar att t.ex. fallen där man har 45 och brädan är 67J eller om man har 67 och brädan är 45J så ska den tolka det som ett typ av drag istället för 2 olika och halvera antalet beräkningar för det? Tror dock det blir lite krånligt att implementera det med tanke på re-draws som gör att det inte kommer bli så många situationer att "halvera" och istället kommer komplexitet läggas på att identifiera de olika "dragen".

 

Men hur som helst, lycka till med det! :)

Länk till kommentar
Dela på andra webbplatser

Ok, du menar att t.ex. fallen där man har 45 och brädan är 67J eller om man har 67 och brädan är 45J så ska den tolka det som ett typ av drag istället för 2 olika och halvera antalet beräkningar för det? Tror dock det blir lite krånligt att implementera det med tanke på re-draws som gör att det inte kommer bli så många situationer att "halvera" och istället kommer komplexitet läggas på att identifiera de olika "dragen".

Nej inte riktigt så heller. Snarare så här:

 

Säg att du vill evaluera 67 mot KK på floppen 45J. I stället för att simulera alla möjliga utfall av turn och river och räkna hur många gånger respektive hand vinner, så räknar programmet ut att 67 har si och så stor chans att träffa en hand som slår KK, men att KK i sin tur har si och så stor chans att träffa kåk/fyrtal. Sen räknar den ut equity utifrån detta.

 

Således eliminerar vi simulationerna helt och hållet.

 

Man skulle kunna göra det genom att låta programmet räkna ut vilka kombinationer av turn och river som ger 67 bästa handen och hur många som ger split. I de flesta fall är det ganska simpelt för en människa att göra, men det riktiga kruxet är att lära en dator att göra det.

Länk till kommentar
Dela på andra webbplatser

Nej inte riktigt så heller. Snarare så här:

 

Säg att du vill evaluera 67 mot KK på floppen 45J. I stället för att simulera alla möjliga utfall av turn och river och räkna hur många gånger respektive hand vinner, så räknar programmet ut att 67 har si och så stor chans att träffa en hand som slår KK, men att KK i sin tur har si och så stor chans att träffa kåk/fyrtal. Sen räknar den ut equity utifrån detta.

 

Således eliminerar vi simulationerna helt och hållet.

 

Man skulle kunna göra det genom att låta programmet räkna ut vilka kombinationer av turn och river som ger 67 bästa handen och hur många som ger split. I de flesta fall är det ganska simpelt för en människa att göra, men det riktiga kruxet är att lära en dator att göra det.

 

Ok, jag förstår vad du menar, är en intressant idé, men kan bli lite jobbigt att implementera.. men man vet aldrig :)

Länk till kommentar
Dela på andra webbplatser

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Endast 75 max uttryckssymboler är tillåtna.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigerare

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...