Agresi Dinamis – Menyesuaikan untuk Tangan Hebat & Lemah – Mac Poker Bot

Dalam posting saya sebelumnya, saya membahas pengenalan gameplay berbasis peluang pertama di luar tirai, lihat di sini: Odds Pasca-gagal & Bermain Lebih dari Sekedar Bingo Blinds, dengan Hasil Campuran.

Inilah aturan emas yang mendorong gaya bermain itu:

float aggression = 1.0;
long long maxCall = (self.totalBets + self.totalPot) * self.winningOdds * aggression;

Ini berhasil, dan memang memiliki potensi keuntungan, tetapi ini adalah kelemahan utama dalam strategi ini:

  • Terlalu banyak agresi dalam situasi berikut:
    • Kartu tinggi dengan peluang bagus tetapi tidak ada kecocokan sama sekali.
    • Pasangan yang lebih lemah, termasuk pasangan saku.
    • Dua pasang, ketika salah satu dari keduanya adalah pasangan saku di tangan pemain.
  • Terlalu sedikit agresi dalam situasi berikut:
    • Pertandingan yang lebih jarang seperti three of a kind atau lebih kuat, memaksimalkan keuntungan untuk pertandingan yang jarang terjadi dan biasanya mengalahkan pemain lain.
    • Terutama di awal permainan, karena kecil kemungkinannya orang lain bisa bersaing dengan mereka. Kami ingin menyingkirkan pemain yang memiliki keraguan, sambil menambah pot.
    • Khususnya untuk three of a kind atau lebih baik ketika kita memegang pocket pair di flop, karena lebih sulit bagi pemain lain untuk memprediksi ini sebagai opsi yang bersaing.

Tujuan pembaruan terbaru adalah untuk mengatasi kelemahan ini, di antara beberapa perbaikan bug & stabilitas. Implementasi saat ini adalah seperti ini:

float aggressionFactor = 1.0;

// set to true if table cards have a pair
bool tablePair = false;

switch(gameState) hand == kHandFlush) aggressionFactor = 1.6;

        // rare in the flop, but awesome at this stage, let's push it more
        else if(hand == kHandFullHouse) aggressionFactor = 1.7;

        // absolute beast to have it at this stage, don't hold back
        else if(hand == kHandFourOfAKind) aggressionFactor = 2.0;

        // rare
        else if(hand == kHandStraightFlush) aggressionFactor = 3;
        
        break;
        
    case kTurn:
        // high cards are weak, tone it down even more, only one card left
        if(hand == kHandHighCard) aggressionFactor = 0.8;
        
        // table pairs are weak pairs
        else if(
                (hand == kHandPair && tablePair) 

return aggressionFactor;

Bendera tablePair belum diimplementasikan dan ada dalam daftar tugas, tetapi sisanya berfungsi penuh. Saya bukan penggemar pernyataan if-else yang dirantai, tetapi untuk kecepatan dan sebagai bukti konsep untuk ide ini, ini akan dilakukan untuk saat ini.


Saya menjalankan sejumlah tes dengan beberapa tweak (dan bug) di antaranya. Dalam strategi saat ini, kami masih memanfaatkan peluang bingo untuk all-in jika preflop memberi kami peluang yang cukup kuat, tetapi kami juga memainkan tangan yang memiliki potensi hingga akhir putaran. Pasangan dan kartu tinggi dimainkan kurang agresif dari sebelumnya, tetapi tangan yang lebih kuat didorong lebih banyak untuk meningkatkan potensi keuntungan.

Bot memainkan 4 sesi, yang terakhir di akun uji lain yang belum digunakan dalam seminggu (sebagai kontrol, saya tidak percaya distribusi kartu Zynga). 3 dari 4 sesi sangat menguntungkan, jauh lebih tinggi daripada sesi lain yang pernah saya lakukan dengan bot ini sejauh ini. Satu sesi (yang ketiga pada akun pengujian utama) membuat kerugian sekitar 2 pembelian (800k x 2), tetapi menontonnya bermain, itu memiliki ibu dari semua tangan yang buruk sepanjang jalan. Saya kira bot melihat ketukan buruk pertama. Berikut rinciannya:

55 tangan di 4k big blind – untung $5 juta

Ringkasan

  • Keuntungan keseluruhan 6 max-buy in (800k x 6,25).

Kerusakan

  • Bingo di preflop:
    • ~9m diperoleh dari all-in di blind.
    • ~6m hilang dari all-in di blind.
  • Logika peluang:
    • ~1m diperoleh dari memainkan kartu tinggi secara agresif, saya pikir peluang untuk straight tinggi? Tidak yakin yang satu ini.
    • ~100rb hilang karena bermain dengan kartu tinggi.
    • ~400k hilang dari pasangan bermain (atau lipat pasca-gagal). Jauh lebih baik.
    • ~1,5m diperoleh dari bermain dua pasang secara agresif.
    • ~16k diperoleh dari meningkatkan perjalanan di sungai.

Poin pembelajaran

  • Hasil jauh lebih baik setelah mengutak-atik agresi satu pasangan. Kerugian jauh lebih terkontrol.
  • Strategi bingo preflop melihat fluktuasi yang besar, mungkin perlu meninjau dataset yang lebih besar pada ambang bingo tweak untuk melihat apakah kerugian dapat dikurangi. Keuntungan keseluruhan sekalipun.

49 tangan di 4k big blind – untung $10 juta

Ringkasan:

  • Keuntungan keseluruhan 13 max-buy in (800k x 12,75).
  • Sesi ini memainkan beberapa tangan monster, tetapi sayangnya saya melewatkan detailnya saat membuat makan malam.
  • Dari log saya melihat sesi ini melihat 4 monster AQ di tirai, yang semuanya sangat menguntungkan.

Kerusakan:

  • Bingo di preflop:
    • ~11.5m keuntungan dari all-in in blinds.
    • ~2m kerugian dari all-in di blind.
  • Logika peluang:
    • ~150k untung dari pasangan, perjalanan, dan flush.
      • Satu perjalanan adalah dari sepasang saku, dan memberikan keuntungan terbesar.
      • Siram tidak terjadi sampai sungai, jadi pot tidak bisa diberi makan tepat waktu.
    • ~ Kerugian 40rb dari kartu dan pasangan tinggi.

Poin Pembelajaran:

  • Kerugian berkurang dari tangan yang lebih lemah.
  • Strategi bingo preflop benar-benar bersinar di babak ini, dengan kerugian minimal. Mungkin keberuntungan sekalipun.
  • Tidak cukup tangan yang baik untuk memperkirakan kekuatan strategi peluang saat ini.

75 tangan di 4k big blind – rugi $1 juta

Ringkasan:

  • Kerugian keseluruhan ~2 max-buy in (800k x 1,5).
  • Ini adalah sesi yang mengerikan, salah satu yang terburuk yang pernah saya lihat sejauh ini.
  • Saya pikir itu cukup jelas di 75 tangan dimainkan, kerugian besar dari awal dan pemulihan ringan dari paruh kedua gameplay.

Kerusakan:

  • Bingo di preflop:
    • ~ 800k untung
    • ~ 1,8 m dalam kerugian
  • Logika peluang:
    • ~900rb diperoleh dari kartu tinggi
    • ~200rb hilang karena kartu tinggi
    • ~200rb diperoleh dari pasangan
    • ~1m hilang dari pasangan
    • ~100k diperoleh dari dua pasang atau lebih baik.

Poin Pembelajaran:

  • Pasangan bermain terlalu agresif sekali lagi, memberikan kerugian keseluruhan yang lebih besar daripada keuntungan.
  • Kartu tinggi sangat kuat dan menghasilkan cukup banyak keuntungan, mungkin menurunkan agresi pada mereka adalah sebuah kesalahan. Saya akan mengawasi itu dalam data, karena saya tidak ingin bertindak sebelum waktunya pada apa yang bisa dianggap “keberuntungan”.
  • Tangan dengan dua pasang atau lebih baik memberikan keuntungan keseluruhan, sehingga taktik itu berhasil.

39 tangan di 4k big blind – untung $6 juta

Ringkasan:

  • Keuntungan keseluruhan yang kuat dari ~8 pembelian maksimum (800k * 7,5).
  • Kumpulan data yang lebih kecil pada sesi ini, tetapi menunjukkan hasil positif pada akun terpisah, menekankan kembali bahwa ini bukan hanya kebetulan.
  • Semua preflop bingo adalah kemenangan, menghasilkan keuntungan ~ 5 juta.

Kerusakan:

  • Bingo di preflop:
  • Logika peluang:
    • ~600rb diperoleh dari kartu tinggi
    • ~80k hilang dari kartu tinggi
    • ~400rb diperoleh dari pasangan
    • ~70k hilang dari pasangan
    • ~200k diperoleh dari dua pasang atau lebih baik.
    • ~300k hilang dari dua pasang, dengan sepasang di atas meja.

Poin Pembelajaran:

  • Pasangan berada di bawah kendali yang lebih besar dalam hal ini, dengan penurunan yang lebih rendah sambil mempertahankan kenaikan moderat.
  • Kartu tinggi bersinar lagi, mungkin lebih penting daripada yang diantisipasi.
  • Dua pasangan lemah dimainkan terlalu agresif, karena bot tidak tahu salah satu pasangan ada di atas meja. Menyebabkan kerugian besar, mungkin karena pasangan yang lebih tinggi atau tiga kali lipat di atas meja. Sayangnya tidak melihat yang satu ini seperti yang terjadi.
    • Perlu menerapkan logika untuk menurunkan agresi dengan pasangan tabel, ketika semua bot memiliki dua pasangan atau pasangan tunggal karena ini.

  • Lebih banyak data mendukung bahwa strategi peluang ini berhasil, dengan agresi dinamis tergantung pada kekuatan tangan.
  • Komponen bingo dari strategi preflop mungkin perlu diubah, jika ada peluang saku yang memberikan kerugian yang lebih konsisten. Saya membutuhkan lebih banyak data untuk mendukung pilihan semacam itu.
  • Strategi post-flop berbasis odds terus memberikan keuntungan bertahap/jangka panjang, yang tampaknya meningkat dari tweak terbaru. Akan mencoba menggabungkan lebih banyak sesi dengan tweak terbaru tidak berubah.
  • Kerugian utama saat ini adalah:
    • All-in preflop yang tidak beruntung, meskipun sekarang sangat kecil dibandingkan dengan keuntungannya. Lebih banyak data diperlukan sebelum perubahan dilakukan di sini.
    • Bermain agresif dengan pasangan lemah, atau pasangan atau dua pasangan ketika ada pasangan di atas meja. Ini masih membutuhkan logika untuk mendeteksi itu, dan memiliki ruang untuk perbaikan.
  • Saya melihat bug dalam pelacakan logika menang/kalah/jumlah chip saat ini. Bug sekarang telah diperbaiki, tetapi beberapa perubahan/kemenangan/kerugian chip mungkin belum terdaftar di sesi ini

Itu saja untuk saat ini! Selain statistik & analitik yang membosankan, kemajuannya menggembirakan! Beberapa sesi sekarang menunjukkan lebih banyak keuntungan daripada yang pernah saya kelola dari bot. Bukan saja saya tidak kehilangan semua chip saya, tetapi saya menang lebih banyak daripada saya kalah (secara keseluruhan)!

Author: info

Leave a Reply

Your email address will not be published.