Ada bot poker Open Source baru yang disebut PokerPirate . Saya tertarik dengan cara kreatif apa pun di mana aplikasi web dapat mendeteksi / menggagalkan / mengalahkan bot poker. (Ini adalah diskusi akademis murni, dengan semangat yang sama dengan PokerPirate yang ditulis.)
security
artificial-intelligence
poker
benteng
sumber
sumber
Jawaban:
Mengalahkan bot dari perspektif sisi server
Banyak situs poker online menggunakan popup input Captcha yang dipicu oleh aktivitas mencurigakan.
Beberapa situs poker memantau waktu dan pola permainan (yaitu, skenario terburuk adalah pemain yang bermain 24x7 dan 16 tabel secara terus menerus, ada kemungkinan kecil kecil ini adalah manusia nyata. (Namun beberapa pemain memiliki kemampuan untuk memainkan tangan yang sangat besar volume yang bagi mata yang tidak berpengalaman akan tampak seperti bot)
Buang itu gangguan. Jika Anda mencurigai seorang pemain adalah bot, ubah semua posisi kartu bermain mereka dari beberapa piksel di layar, buat mereka berbeda warna / desain / pola untuk 1/100 tangan dan lihat apakah itu melempar mereka. Jika tidak dapat mengambil layar, maka semua keputusannya akan habis dan itu adalah bukti bot yang cukup meyakinkan.
Pengaturan waktu memberi tahu, jika pemain komputer merespons opsi dalam milidetik pada satu waktu tanpa jeda untuk memikirkan keputusan besar, ini bisa mencurigakan
Pemantauan diri. Situs web poker pokertableratings.com data menambang banyak situs besar. Itu telah disambut dengan penerimaan yang beragam, beberapa menyukai transparansi, yang lain membencinya . Manfaatnya adalah, bagaimanapun, ada contoh di mana statistik pemain yang mencurigakan (persentase VPIP, persentase PFR adalah beberapa dari sejumlah besar statistik terukur yang dapat dicatat) mengarah pada kesimpulan kecurangan
Jaringan klasifikasi yang cerdas secara artifisial dapat memantau statistik yang dapat dihitung untuk mengklasifikasikan pemain robot yang curang atau curang.
Kembali ketika poker online adalah entitas yang cukup baru, ada rumor dan pembicaraan dengan bukti terbatas bahwa beberapa tangkapan layar perangkat lunak klien poker dari desktop pemain yang mencurigakan untuk melihat apakah mereka menjalankan program yang membantu mereka. Namun (bahkan jika ini benar) menjalankan dua komputer untuk melakukan dua tugas secara independen akan mengatasi masalah ini.
Berbagi informasi antara pelanggar berulang di antara beberapa situs akan bermanfaat bagi industri, jika saja mereka dihormati dan dijalankan oleh orang yang bertanggung jawab yang kompeten
Beberapa bot mungkin secara desain cukup sederhana, jika Anda dapat menemukan gaya bermain mereka dan melihat bagaimana mereka bertindak dalam situasi yang sama (perhatikan ini hanya mungkin dengan bot yang tidak canggih yang memainkan strategi yang sangat dasar) Anda dapat menemukannya dengan cukup cepat.
Penggunaan fitur program yang tidak konsisten akan condong ke arah pemain menjadi asli. Ambil contoh banyak situs poker dalam permainan memiliki tombol 'Lipat saat giliran saya'. Jika Anda mendapat kartu yang buruk dan menunggu pemain lain memutuskan apa yang harus dilakukan, banyak pemain akan mencentang tombol ini. Bot dapat menggunakan tombol-tombol ini. Perbedaannya adalah, bot akan berada pada frekuensi penggunaan yang paling ekstrem, mereka mungkin akan menggunakannya sepanjang waktu, atau tidak sama sekali. Sedangkan pemain biasanya menekan 'autofold', tapi terkadang mereka akan tetap mengklik lipat bahkan dalam kondisi yang paling menguntungkan. Misalnya, pemain asli biasanya menekan lipat otomatis tetapi kali ini tidak. Itu dilipat ke sekeliling mereka tanpa pemain lain yang berakting, sekarang mereka telah disajikan dengan kondisi yang paling menguntungkan. Sekarang jika mereka menekan lipat, mereka akan cenderung menekan autofold sejak awal. Ini adalah perilaku yang tidak konsisten / tidak dioptimalkan / acak, konsisten dengan menjadi manusia. Waktu memberi tahu kapan fitur-fitur ini diklik adalah indikator lainnya. Penting untuk diketahui bahwa ini semua adalah indikator dan bukan bukti konklusif. Semua indikator perilaku ini dapat disimulasikan dengan mudah.
Mengalahkan bot dari sudut pandang pemain
Cobalah untuk mencatat dan mengumpulkan data sebanyak mungkin menggunakan perangkat lunak seperti PokerTracker
Mencoba mengidentifikasi pola dalam gaya bermainnya
Mencoba menemukan hubungan antara ukuran taruhan secara proporsional dengan pot / # pemain dan kekuatan tangan
Coba hitung rentang tangannya . Bot taruhan rendah mungkin tidak akan cukup sering menggertak untuk menjadi perhatian strategis yang signifikan, jadi membuat rentang tangan yang sangat akurat untuk itu seharusnya tidak terlalu rumit.
Mencoba menemukan kebocoran dalam permainannya melalui analisis data dan uji coba. Setelah kebocoran / pola ditemukan, cobalah untuk mengeksploitasinya secara berulang dan hindari situasi lain.
Dimana manusia mampu beradaptasi , bot mungkin kurang begitu, dan dimana manusia dibebani oleh rantai kemiringan , hasil pemikiran yang berorientasi dan frustrasi , bot tidak. Anda dapat menggunakan ini untuk keuntungan Anda.
Jadi intinya tidak ada yang dapat Anda lakukan untuk menghentikannya jika robot cukup pintar untuk mensimulasikan penundaan waktu nyata selama pengambilan keputusan, serta membuat pola permainan yang masuk akal dan realistis. Lemparkan dalam beberapa kondisi acak dan obrolan balik sederhana (kamus pemain poker biasanya cukup terbatas ) dan Anda memiliki pemain AI yang akan cukup sulit dideteksi.
Apa yang mungkin dilakukan bot untuk menghindari deteksi
Kunci untuk menghindari deteksi adalah memikirkan masalah dari sebanyak mungkin sudut. Anda mencoba meniru perilaku manusia yang cerdas di dunia yang sangat kecil dan terbatas. Sebagian besar simulasi perilaku yang dapat Anda jalankan cukup jelas, tetapi semakin tidak konsisten dan tidak dapat diprediksi bot Anda, semakin kecil kemungkinannya untuk ditemukan.
Buat jadwal bermain yang realistis (misalnya, 3–5 kali seminggu, 4 jam per sesi dengan minggu ganjil di sana-sini sepanjang tahun).
Jalankan program untuk membuat keputusan di komputer terpisah, kendalikan komputer zombie jika ada tangkapan layar situs.
Acak waktu tindakan (jangan langsung bertindak, tunggu 0,5–2 detik per tindakan)
Waktu untuk keputusan besar. Jika keputusan berada di ambang batas, hitung keputusannya lalu tunggu beberapa saat untuk mensimulasikan pemikiran.
Penggunaan acak fitur perangkat lunak klien. Simulasikan waktu istirahat ke toilet dengan mengklik tombol "keluarkan saya" di semua tabel dan berikan waktu istirahat 5 menit sesekali.
Obrolan simulasi, obrolan poker seringkali sangat sederhana, tidak pernah biasanya diskusi atau debat. Ucapkan hal-hal seperti "tidak beruntung" atau "stfu" pada saat-saat yang dapat dideteksi. Atau bahkan minta pembuat kode memantau botnya dan terlibat dalam obrolan selama eksekusi.
Pastikan gerakan mouse realistis. Jika tabel berubin jangan membuat keputusan di tabel kiri atas maka langsung buat di tabel kanan bawah. Sebagian besar perangkat lunak situs sekarang menawarkan pintasan keyboard, ini mungkin lebih baik digunakan sebagaimana mestinya daripada gerakan mouse.
Lakukan hal-hal yang tidak diharapkan oleh pengklasifikasi AI. Misalnya, setahun sekali menelepon mereka dengan pertanyaan sederhana yang tidak rumit ("Tolong, saya tidak dapat masuk hari ini!" Atau "Internet mati!") Kemungkinan besar tidak akan membuat banyak perbedaan, tetapi jika orang yang bekerja untuk perusahaan poker cukup pintar mereka mungkin telah mengenalinya sebagai indikator yang dapat diandalkan.
Sesi kekalahan sporadis. Kemiringan dapat disimulasikan dan bot dapat bermain buruk dan kehilangan sejumlah uang sesekali. Semua orang miring di beberapa titik.
Kekhawatirannya juga bahwa situs web poker tidak terlalu peduli jika bot berjalan di jaringan mereka, setiap pemain bernilai besar dalam menyapu dan secara teoritis dari sudut pandang bisnis yang murni sinis satu-satunya downside adalah pers yang buruk jika ditemukan. .
Bahkan ketika eksploitasi yang mencolok telah ditemukan, (cari di google untuk skandal jaringan Cereus atau Skandal Poker Mutlak , itu cukup mengejutkan) bisnis tersebut tampaknya bertahan dan tetap sehat, hanya kehilangan pemain yang berpendidikan dan menang (yang tidak banyak). Ini meningkatkan proporsi pemain yang kurang terampil ke jaringan, yang pada gilirannya akan menarik kembali pemain bagus. Itu tangkapan kuno yang bagus 22. Argumen yang sangat bagus untuk regulasi pasar yang tepat.
Penting untuk dicatat, bahwa untuk setiap pertandingan ada keseimbangan nash . Poker online memiliki garis waktu untuk itu seperti yang berjalan sekarang, itu harus pindah ke sesuatu yang lebih sosial (webcam / voip) bagi siapa pun untuk mempercayainya di masa depan (jika orang mempercayainya) karena bot pada akhirnya akan mengambil alih secara matematis superior, dan kebal secara psikologis. Komunitas AI poker sangat aktif , didorong oleh akademisi dan / atau keuntungan modal.
Versi poker yang lebih sederhana seperti poker terbatas hampir dipecahkan di ruang pencarian kecil. Hanya masalah waktu sebelum versi game yang lebih kompleks (variasi Tanpa Batas / Pot Limit Omaha, dll.) Dapat dikalahkan oleh pemain buatan.
Kesimpulan
Bot yang canggih tidak dapat dideteksi sampai industri beralih ke pengaturan game online yang lebih sosial. Ini tidak akan menyelesaikan masalah, tetapi tentunya akan mempersulit bot untuk menang di level yang lebih rendah. Kami sudah melihat sedikit perubahan dengan dirilisnya PKR , 3D , dan yang lebih interaktif , lebih sedikit tangan per jam dari situs lain di mana multitabilitas cukup sulit dilakukan oleh seorang pemain.
Masalahnya juga dipengaruhi oleh sifat industri, alasan lain untuk tetap berpegang pada situs web yang lebih bereputasi lebih besar di mana reputasi telah menjadi semakin terintegrasi ke dalam model bisnis mereka. Kurangnya transparansi dan transaran yang pura - pura tidak membantu penyebabnya.
Tantangan sebenarnya saat ini bagi pengembang bot adalah menulis algoritme yang menang, ini tidak semudah kelihatannya. Setiap orang yang bermain poker menganggap diri mereka baik, menang atau pemain impas, yang sama sekali tidak benar. Itulah mengapa orang terus bermain, bahkan ketika mereka kehilangan uang karena mereka berada di bawah ilusi, mereka tidak beruntung, atau gaya permainan mereka disalahpahami. Arogansi dan kelemahan dalam psikologi manusia ini telah membuat pemain kehilangan banyak uang dan merupakan alasan mendasar bahwa poker masih bisa menguntungkan.
Poker adalah permainan yang sangat rumit yang membutuhkan waktu bertahun-tahun untuk menguasai (Pepatah lama tetap benar, "Sepuluh menit untuk belajar, seumur hidup untuk dikuasai"). Unsur keberuntungan sangat terbatas dalam jangka panjang.
Seperti profesi lainnya, untuk menjadi baik, Anda perlu belajar selama ratusan demi ratusan jam, dan bermain selama ribuan. Anda akan memahami hal-hal yang tidak akan dipahami oleh pemain yang kurang berpengalaman, melihat hal-hal yang tidak akan terlihat oleh pemain yang kurang berpengalaman. Pembelajaran berlangsung untuk waktu yang sangat lama, mungkin lebih lama dari yang pernah kita alami. Ini permainan yang rumit.
Seberapa sering Anda melihat permainan uang taruhan tinggi di televisi dan mendengar seseorang meneriakkannya, "Itu panggilan yang mudah!" dengan demikian membuktikan bahwa amatir benar-benar tidak memahami atau mengenali kecanggihan dalam bermain, dan benar-benar percaya bahwa permainan pada level itu pada akhirnya masih sederhana. Tidak. Para pemain dengan taruhan tinggi (seringkali) ada di televisi karena mereka benar-benar benar- benarbaik. Mungkin juga ada meta game yang rumit yang sedang dimainkan, yang keberadaannya tidak dapat dikenali oleh amauer kami. Amatuer tidak akan berdiri di depan master catur dan berteriak pada mereka untuk memindahkan kesatria mereka, namun karena dinamika poker menjadi informasi yang tidak sempurna, psikologi mereka membuat mereka benar-benar percaya apa yang mereka katakan. Seperti dalam catur, keputusan bisa jadi rumit, sensitif, dan sangat penting untuk keseluruhan permainan. Ketika permainan bertambah kompleks, keputusan sepele tidak lagi sepele, karena lawan Anda mengharapkannya.
Setelah Anda memindahkan bot atau game Anda ke atas level, Anda pasti akan menemukan lebih banyak pemain yang lebih terampil. Kemudian, kompleksitas strategi Anda harus naik ke tingkat berikutnya, dengan mempertimbangkan gambar tabel , keseimbangan rentang , canggih dan cerdas (yaitu tidak hanya menggertak kelemahan, menggertak jarak dan menggertak gambar dll), dengan analisis jangkauan tangan yang lebih rinci. Ini benar-benar permainan yang berbeda saat Anda naik ke atas.
Setelah bot yang menang ditulis, tanpa ragu pembuat kode akan memiliki keterampilan, pengetahuan, dan akal sehat yang cukup untuk menerapkan bot dengan cara yang tidak terdeteksi. Ini sepele bagi mereka.
Jadi sebenarnya tidak ada yang bisa Anda lakukan. Jika Anda ingin bermain online, pahami risikonya. Jangan pernah mempertaruhkan uang lebih dari yang Anda mampu, dan upayakan untuk menyimpan catatan pengeluaran yang akurat sehingga Anda tidak memiliki kesalahan arah, tidak realistis dan pada akhirnya merusak perkiraan kemampuan Anda sendiri. Miliki stop loss, dan tinggalkan meja jika Anda tidak memiliki keunggulan, atau jika Anda tidak yakin apakah Anda memiliki keunggulan! Tentu saja, jika semua orang melakukan itu tidak ada yang akan menang, itulah sifat permainan yang predator dan eksploitatif, dari situlah persaingan berasal dan itulah yang membuatnya menyenangkan.
sumber
Ada tiga area terpisah untuk dipertimbangkan. Bot harus mengetahui keadaan tabel, membuat keputusan, dan mengirim keputusan itu kembali ke host.
Mencari tahu keadaan tabel jauh lebih mudah jika dikirim melalui kabel dalam beberapa bentuk yang dapat dikenali atau ditampilkan kepada pengguna sebagai teks standar. Pertama, jadikan pengenalan gambar satu-satunya pilihan, lalu buat sekeras mungkin. Tampilkan kartu dalam 3D dan ubah orientasi dan posisi kartu secara perlahan. Animasikan film kecil atau kembang api di depan kartu sehingga setiap tangkapan layar yang diberikan mungkin tidak terbaca tetapi perlu beberapa saat bahkan untuk menentukannya.
Tidak ada yang bisa dilakukan dengan membuat keputusan. Mencoba memutuskan apakah suatu keputusan dibuat oleh manusia atau tidak adalah seperti tes turing yang hampir tidak memiliki informasi.
Mengirim kembali keputusan dapat dipersulit dengan menggunakan 3D lagi. Persulit pengiriman paket secara langsung atau kirimkan keputusan dengan cara apa pun selain mengklik tombol dengan mouse. Gerakkan sedikit tombol pada setiap tindakan atau biarkan mereka mengapung perlahan di sekitar area bermain sambil menunggu keputusan. Nonaktifkan semua fitur tipe aksesibilitas yang memungkinkan tombol ditemukan atau dimanipulasi.
sumber
PokerPirate, seperti hampir semua bot poker yang pernah ditulis, bekerja dengan menggesek layar dan mensimulasikan klik mouse di aplikasi Windows poker. Oleh karena itu, lynch-pin ke sistem adalah kemampuannya mengenali objek dalam game dan melakukan tindakan di jendela. Sepintar mungkin di poker, kemungkinan masih bermasalah dengan operasi dasar ini.
Oleh karena itu, cara yang jelas untuk menggagalkan bot ini meliputi:
sumber
Idealnya, satu-satunya solusi yang valid adalah membuat logika honeypot yang memikat bot yang terlibat dengan memberikan godaan kondisi logika yang lebih disukai yang mendukung respons perilaku bot yang paling ideal. Setelah bot terlibat dalam honeypot Anda harus terus memberi makan kondisi bot yang lebih disukai dengan anggapan bot tidak memiliki batas waktu yang ditetapkan. Kemudian bot dapat diukur, dicatat, dan dipelajari. Selain bot, Anda juga akan memiliki data jaringan dan sesi yang diisolasi untuk studi asalkan bot tidak terhubung melalui TOR.
Dalam situasi ini, pertimbangan deterministik yang cocok untuk membedakan bot dari manusia kurang parah, namun pertimbangan deterministik atas identifikasi perilaku bot menjadi lebih parah. Sayangnya, pemilik bot dapat membuat perubahan pada bot untuk mencegah identifikasi tersebut jika pemilik tersebut mengetahui kondisi honeypot, atau pertimbangan logisnya.
sumber
Mengalahkan bot poker dapat mengambil dua bentuk: Anda dapat mencoba dan mengidentifikasi mereka dan melarang mereka dari sistem, atau Anda bisa mengalahkan mereka di poker. Mengalahkan mereka di poker adalah pertanyaan akademis yang lebih menarik. :-)
Lihat di sini untuk beberapa makalah tentang mengalahkan bot poker: http://www.cs.cmu.edu/~sganzfri/
sumber
Lihat posting ini
Posting ini juga memiliki beberapa tip bagus tentang cara menggagalkannya.
sumber
Pikiran lain tentang mengotak-atik layar agar sulit dipindai:
Buatlah kartu dari keseluruhan warna yang berbeda - mirip dalam istilah mata manusia tetapi tidak sama. Ini akan mempersulit memilih bahan untuk dibaca. Di sisi lain, taruh tulisan palsu pada kartu dengan warna yang tidak akan dipisahkan oleh mata manusia dari latar belakang.
sumber
Apakah masalah dengan bot adalah fakta bahwa mereka bermain lebih baik daripada pemain manusia yang layak, atau bahwa mereka dapat menunggu sekitar 24/7 hingga pemain buruk muncul dan kemudian mencoba memeras mereka?
Juga, apakah itu "sah" atau "curang" bagi seseorang untuk memiliki komputer yang duduk di sebelahnya saat dia bermain poker, berkonsultasi dengan komputer lain untuk meminta nasihat?
Saya tidak yakin bagaimana seseorang dapat mengklaim ruang solusi untuk poker batas "diselesaikan" ketika strategi optimal untuk seorang pemain akan dipengaruhi oleh apa yang diketahui tentang lawan. Bagaimana upaya menganalisis pemain mengklaim begitu sempurna sehingga tidak dapat ditingkatkan?
sumber
Jika Anda memiliki akses ke banyak pertandingan, Anda dapat menggunakan pendekatan data mining. Kekuatan bermain AI harus cukup konsisten, sementara mungkin ada pola sederhana untuk manusia - lebih lemah dalam beberapa putaran pemanasan pertama, dan kekuatan menurun setelah bermain untuk waktu yang lama. Selain itu, waktu pengambilan keputusan manusia mungkin meningkat ketika ada lebih banyak uang yang dipertaruhkan.
Jika Anda memiliki akses ke gerakan mouse (atau setidaknya lokasi klik yang benar bahkan untuk aplikasi web), seharusnya cukup mudah untuk mengenali bot, kecuali yang paling canggih. Manusia tidak menggerakkan mouse dalam garis lurus yang tepat, mereka memiliki periode percepatan dan perlambatan, distribusi lokasi klik yang dapat dideskripsikan secara statistik, dll.
sumber
Lihat Ajax Control Toolkit NoBot :
sumber
Solusi 100% tidak mungkin, yang saya maksudkan adalah solusi yang akan menghemat uang dengan menggunakan AI terhadap dirinya sendiri. Miliki contoh AI PokerPirate yang berjalan di sisi server dan bermain sebagai pemain tak terlihat di setiap game. Jika ada pemain yang melakukan terlalu banyak tindakan identik maka mereka mungkin menjalankan instance PokerPirate. Ini adalah jenis Honeypot atau perangkap yang bisa membuat penyerang jatuh. Penyerang dapat bertahan melawan honeypot ini dengan membuat bot mereka kurang berhasil. Jadi ini adalah menciptakan datang dari "Cat dan Mouse" di mana penyerang selalu bisa mencuri beberapa uang dan bek selalu dapat menyimpan beberapa uang.
sumber
"We've been working on categorizing and understanding styles of play, [...] it gets more difficult in games against top players because they mix up their play deliberately to confuse you." Being unpredictable is a good strategy, he adds. "If our computer is going to beat the world champion, it's got to do something similar."
Ada banyak cara yang lebih mudah. Iya. banyak saran yang benar, dan dibutuhkan. tetapi sekitar 90% penipuan terdeteksi dengan cara yang terlalu sederhana.
jika seseorang membiarkan bot bekerja untuknya, dia akan, setelah beberapa waktu, ingin bot kedua bekerja untuknya. (mesin lain atau apapun) tetapi: dia akan menggunakan kata sandi yang sama, karena sulit untuk mengingat 2 (<--- sarkastik)
apa yang tersisa: periksa akun dengan perilaku game yang sama dan hash kata sandi yang sama.
sumber