안녕 뉴비다. 먼저 난 PS 레귤러고 밑에 열심히 토론 중인 천상계급 플레이어는 아니라고 밝혀둔다.
2013년까지만 해도 풀링만 치다가 작년 초에 6max로 전환하고 1년전쯤 50NL 6max로 블업해서 2~3bb/100정도로 먹고사는 평범한 레귤러다.
곧 100NL+ 가서 풍족한 삶을 누리고 싶었던 플레이어인데 PS가 내 얼마 되지도 않을 레백 수익을 강탈해갈거라는 정보를 듣고
미래에 대한 계획을 다시 짜고 있는 와중에 마침 친분이 있는 천상계 플레이어가 열심히 토론을 하고있길래 읽어보고 여러분과 같이 공부에 동참하고자
GTO solver인 PioSolver소개도 간단하게 할겸 글쓰기 버튼을 눌러본다.
http://www.pokergosu.com/index.php?mid=free&page=5&document_srl=643736
여기 댓글을 보면 알 수 있듯이 난 PioSolver를 구매했고 PokerSnowie도 써봤다.
최근 PS를 포함한 여러 포커룸에서 bot(or bot으로 의심되는)들이 밴 당한 사실이 있고 이 놈들은 200NL+을 crushing할 정도로
상당한 수준의 AI들이었다. 이 사건은 NLHE 6max에서도 이미 AI수준이 우리같은 쪼렙들보다 훨씬 높은 단계에 와있다는 것을 말한다.
체스가 이미 오래전에 AI에게 정복된 것처럼 NLHE 6max 100bb 게임도 그리 오랜 시간이 지나지 않아 AI가 인간을 앞지를 것이라는 생각이 든다.
1. 우선 생각해봐야 할 것은 프리플랍 레인지다.
현재 공개된 GTO 프로그램 중에는 프리플랍 solution은 없다. PioSolver와 GTORB 모두 프스트플랍 GTO solver다.
APPS를 보면 추천 레인지가 있지만 착각하지 말아야 할 것이 이건 GTO가 아니고 자세히 보면 자기 친구가 만들었다고 나와있다;;
게다가 3.5x오픈 기준이라(요즘 3.5x로 오픈하는 애들 있냐?) 블라인드 방어도 타이트해서 참고로 하긴 어려울거다.
따라서 굳이 프리플랍 레인지를 어딘가에서 참고하고 싶다면 난 차라리 PokerSnowie 추천 레인지를 보라고 말하고 싶다.
저 위에 링크에서도 말했듯이 PokerSnowie는 GTO solver가 아니라 인공신경망 방식으로 만든 AI다. 이 방식은 아직 수많은 변수의
포스트플랍에서 어떠한 solution을 제시하는 부분에 있어서 의문이 있는 상태지만 이 방식이 효율적인 프리플랍 레인지를 구축하는 데에는
상당히 괜찮다고 생각한다.
이건 PokerSnowie가 제시하는 utg 3x오픈 기준 co레인지다. 초록색이 3벳이고 노란색이 cold call, 숫자가 포함된 부분은 3벳을 섞어주는 비율이다.
보는 바와같이 cold call레인지가 상당히 타이트하다. ep상대로 AKo, KQs, ATs을 100% 3벳하는 것과 65s이 60% 3벳을 제외하고 왜 노란색이 칠해져있는지(오류?)
마음에 안 들긴 하다. 물론 내가 마음에 안 든다고 해서 엄청난 핸드샘플로 만든 레인지를 지적하는 것은 아니다. 암튼 APPS에서 제시하는 레인지보다는 그나마
이게 좀 더 현실적이라고 생각한다.
2. Tree building and flop solution
PokerSnowie co레인지가 살짝 내 기준과는 다른게 있긴 하지만 어쨌든 저 레인지를 사용해서 입력해봤다.
상대가 25/20이라고 했으므로 ep open range는 20정도로 해봤다. 20 조금 안되긴 할텐데 귀찮아서 여기 있는 기본 defined range를 적용시켰다.
pot은 소수점 단위가 안 되므로 x100하여 입력했다. 벳사이징은 정확히 실전처럼 나오도록 %를 조정했다.
이제보니 effective stack에 970을 입력해야 되는데 실수했다. 어차피 별 차이는 없다. 그냥 넘어가자 ㅡㅡ
보는바와 같이 ep는 플랍에 대부분의 레인지를 첵하는게 좋다고 나온다. 97%가 첵이다. ep오픈이 20%이고 co레인지가 저따위니 당연하다.
상대 coldcall레인지도 안 보고 oop에서 습관적으로 아무거나 컨티벳했던 애들은 다시 한번 생각해봐라. AA조차도 첵이 EV가 높다.
실전에서는 ep가 벳을 했는데 co은 대부분의 레인지로 콜을 한다. 이건 너무 당연해서 캡쳐 생략이다.
3.turn
ep의 세컨배럴에 88은 역시 그냥 폴드가 좋다. 사실은 플랍벳 레인지가 워낙 좁아 node locking 기능을 이용해서 실전에서 상대 플랍 컨벳 레인지를 대략 추측하여
수정하여 진행하면 더 좋을거같지만 벳 레인지가 어느 특정 핸드에 몰려있는게 아니라 여러 콤보가 고르게 섞여있어서 그냥 진행시켰다. 어차피 PioSolver에 대한
소개글이고 진지먹은 글이 아니라 양해바란다. 그리고 배고파서 빨리 밥먹으러 가야겠다.
암튼 KJ을 레이즈하는게 좀 특이한데 상대 세컨배럴 레인지에 JTs, T9s, 86s, 76s, 65s, QQ,JJ같은게 많아서 그런거같다. ep레인지를 너무 넓게 잡은 효과(?)다.
88보다는 76s, 65s류의 핸드가 블러프하기는 더 좋다고 나오는데 우리가 실전에서는 이런 핸드를 ep상대로 잘 콜드콜하지 않기 때문에 굳이 이 보드에서
블러프 레이즈를 해야한다면 88, AJs정도가 대안이 될 수 있을거다.
이 결과는 우리가 설정한 프리플랍 레인지에 따라 큰 영향을 받는다. 그리고 계속 잊지 말아야 할 것은 상대방도 optimal하게 플레이한다는 가정이다.
마이크로 레벨에서의 상대라고 생각해서는 안 된다. 천상계로 가기 전까지는 exploitative play에 주력하자.
암튼 이 외에도 여러가지 기능이 있는데 이정도로만 소개해보겠다. GTO 프로그램 구입 의향이 있는 사람은 참고했으면 한다.
궁금한거 있으면 물어봐도 좋은데 일단 난 밥먹으러 나갈게
2015.11.06 20:00:15
2015.11.06 21:22:32
@tiger7
2015.11.06 20:05:12
2015.11.06 20:46:28
@뱃져
2015.11.06 20:55:02
@경제학부전공
2015.11.06 21:10:45
@뱃져
2015.11.06 21:44:11
@경제학부전공
2015.11.06 22:03:59
@뱃져
2015.11.06 22:14:24
@경제학부전공
2015.11.07 16:35:08
@Alice
2015.11.08 18:56:46
@빅브
2015.11.06 22:16:16
@경제학부전공
2015.11.06 20:28:10
그런데 상대가 25/20이라고 해서 utg가 20% 정도로 레이즈를 할 것 같지는 않고 실제로는 꽤 많이 타이트할 거임
그래서 이 플랍에서 90% 이상 첵을 하는 건 약간 비약처럼 느껴지기는 하지만
니가 여러 번 얘기한 대로 이건 그냥 프리플랍 레인지에 따라 결과가 어차피 많이 달라지는 부분이라
더 얘기를 해봐야 다람쥐 쳇바퀴가 될 것 같다
그리고 턴에서 레이즈 말야
GTO는 EP가 플랍에서 거의 100%에 가깝게 첵한다고 가정을 했지만
실제로 저 스샷을 보니 플랍, 턴에서 배럴을 한 시나리오를 찍은 것 같은데
이 때 EP의 더블배럴 레인지는 어떻게 잡은 거임?
스샷에서는 안 보이는 것 같은데, CO의 턴 전략 역시 저 레인지에 따라 꽤 달라질 것 같음
(88보다 76s이나 JTs가 더 블러프 레이즈 하기에 좋다는 말은 어제 간단히 쓰긴 했는데 역시 프리 레인지에는 많이 없는 듯)
아무튼 좋은 소개글 고맙고 화이팅!
2015.11.06 20:52:21
@Alice
그리고 플랍 첵 레인지가 97이지만 우리가 시나리오에서 벳을 선택했을 경우 pio는 플랍 벳 레인지(3%)를 벳 했다고 가정한다.
그러면 거기서 optimal한 더블배럴 레인지가 생성된다. 당연히 내가 스스로 잡은건 아니고.
저기 첫번째 플랍 스샷을 보면 핸드에 빨간색으로 가늘게 줄 그어져있는게 보일텐데 그 확률로 벳을 한다는 의미고
우리가 벳을 선택하면 그 핸드를 벳하는 것으로 가정하고 턴에 레인지가 만들어진다.
2015.11.06 22:04:51
@경제학부전공
실제로는 utg가 저 보드에서 3% 벳하는 게 옵티멀이라고 보기에는 너무 힘들기 때문에
플랍 베팅 레인지를 임의로 우리가 정해놓고 턴에서만 이 상황을 풀면
IP 플레이어 (=CO)가 레이즈를 해야 하는지 아닌지에 조금 더 근접한 해답이 나올 것 같음
내가 요즘 홀덤을 많이 하면 이 프로그램을 당장 사겠는데
오마하랑 다른 것들 한다고 바빠서 보류중이었음
근데 지금 보니 가격 별로 비싸지도 않은데 걍 사버릴까도 싶다..
2015.11.06 22:09:52
@Alice
그리고 KJs 은 우리 co레인지에서 99다음으로 좋은 핸드라 그렇게 놀랄건 아닌거같은데, 이건 전적으로 utg 의 더블베럴 레인지에 따라 달렸다고 봄.
2015.11.06 23:33:00
@Alice
2015.11.06 23:37:16
@경제학부전공
piosolver는 그냥 컴퓨터에서 돌아가는 것 같길래
안 그래도 요즘 컴퓨터 새로 사려고 사양 맞추는 중인데 저걸 같이 사볼까 싶었지
얼핏 보니 custom 버젼은 개발자 모드도 있고 컴파일도 하드웨어에 맞출 수 있던데 그게 좀 땡김
아, 물론 프로그램 하나에 몇백불 하는게 결코 싸다고 생각하는 건 아니지만
저걸로 1-2주 정도만 공부해도 얻을 수 있는 리턴이 프로그램 하나의 값을 충분히 초월하기 때문에
이런 건 가능하면 무조건 사는 편임
연애할 때 (정확히는 연애 초기 내지는 시작되기 전에) 비싼 옷들을 지르는 심정이랄까..
2015.11.06 21:06:02
2015.11.06 21:07:19
2015.11.06 23:12:48
Basic, Pro, Advanced
어떤게 나을까요 흰님?
2015.11.06 23:36:27
어차피 우리가 기껏해야 i7 cpu일거니까 basic이면 어차피 모든 기능 다 되고 충분하다
근데 MTT 플레이어면 다른 전용 프로그램들 많을텐데 이것도 필요성이 있나?
2015.11.06 23:48:24
@경제학부전공
2015.11.06 23:51:58
mtt는 gto에 대한 이해가 사실 별로 중요하지 않기 때문에
(정확히 말하면 필드가 너무 약하고 exploit 해야 하는 허점이 너무 많아서 gto 플레이가 크게 의미가 없기 때문에)
이 프로그램이 mtt에 직접적인 도움이 된다고 보기는 어렵다
2015.11.06 23:52:05
2015.11.07 00:30:47
@Kappa
간단히 말해서 pokersnowie의 SB 디펜스 컨셉은 플랫이 안 좋다는 거고 그게 사실 대부분의 경우 맞다. 방어해야 할 레인지를 다 3벳으로 돌리니까 굳이 수딧커넷터까지 포함시키지 않는거같다. 하지만 플랫이 대부분의 경우 좋지 않다고는 해도 실전에서는 BB에 약한 플레이어가 있는 경우라든가 밸류라 하기엔 약하고 블러프로 돌리기엔 강한 핸드들도 분명히 있기 때문에(폴라레인지 구성이 안 되어져서 4벳을 맞았을 때 처치곤란핸드들이 많이 생긴다) 플랫을 해야하는 경우도 있다고 보지만 저렇게 한다고 저게 잘못됐다고 말하기는 어려운 부분이 많다. 밑에 다른 추천글 토론에서도 여러번 언급된 부분이지만 프리플랍 레인지라는게 제일 어려운 부분이거든.
2015.11.07 00:58:10
@경제학부전공
2015.11.07 01:18:37
@Kappa
2015.11.07 01:30:29
@경제학부전공
2015.11.07 01:41:17
@Kappa
참고로 PioSolver 포맷이니까 복사하면 차트로 볼 수잇음
2015.11.07 02:02:10
@Kappa
아무튼 나는 지금까지 미디움 파켓페어들은 3bet해서 블러프로 넘겨버리기엔 벨류가 아깝다고 생각하고잇엇거든... 저 경우에는 레인지를 타이트하게 잡아서 수딧커넥터를 빼고 파켓페어들을 블러프 3bet 레인지로 넣엇다는 얘기야? 그리고 그런 레인지도 딱히 문제 될건 없다는 얘기??
2015.11.07 02:48:36
@Kappa
2015.11.07 02:56:58
@경제학부전공
preflopadvisor 이게 개념만 봐서는 엄청 유용할꺼같은데 벳 사이징이 고정되잇어서 그런지 2bet에서 3bet 4bet 5bet 갈수록 현실에서 그대로 적용하기에는 애매한 감이 잇는거같네 암튼 덕분에 흥미로운 프로그램 알아간다
2015.11.07 03:05:57
@Kappa
나도 덕분에 좀 더 자세히 보게됐다.
2015.11.07 01:55:00
@Kappa
폴드하는 레인지는 귀찮아서 아직 확인은 안해봄
2015.11.07 02:03:21
@경제학부전공
AA,KK,QQ,JJ,TT,99,88,77,66,55,AK,AQ,AJ,ATs,A9s,A8s,A7s:0.74,A6s:0.47,A5s,
A4s,A3s:0.3,A2s:0.3,KQ,KJs,KJo:0.19,KTs,K9s:0.79,QJs,QJo:0.63,QTs,Q9s:0.61,
JTs,J9s:0.96,T9s 이렇게 194.5 콤보
2015.11.07 02:16:09
@Kappa
2015.11.07 02:25:11
@Kappa
2015.11.07 02:46:07
@경제학부전공
대부분의 포지션에서 2bet을 상대할때 JTs~87s를 폴드하고 76s~54s을 3bet하는거도 독특한거같은데 이건 상대방의 3bet calling range에 대해서 높은 수딧커넷터로 플랍에서 드로우로 세미블러핑할때보다 낮은 수딧 커넥터로 플랍에서 드로우가 맞앗을때 세미블러핑 할때가 FE가 더 높아서 계속 블러핑하기 좋아서 그런건가?
2015.11.07 03:02:43
@Kappa
2015.11.07 01:55:21
2015.11.07 03:00:18
쉽사리 댓글을 못달겠네..
후..내가 활동할 곳은 어디인가
2015.11.07 03:42:27
2015.11.07 03:58:39
@경제학부전공
2015.11.07 04:03:47
@Kappa
2015.11.07 08:33:45
@Kappa
2015.11.07 04:08:02
@Kappa
2015.11.07 04:05:44
그래서 나도 해봤는데 아예 utg 레인지를 더 타이트하게 잡고 13프로 정도 co 콜드콜 레인지를 조금더 올렸음 9Ts JTs 89s 나 모이런거 다 포함되게 .. 근데 oop 에서 플랍첵이 100프로로 나오네 -_-;;
지금 piosolver 첨에 좀 오류나서 뭔가 잘못된거일수도 있을꺼같은데-_-;; utg 레인지 타이트하게 잡고 다시 한번 해줄수 있음? ㅜ 스샷은 필요없고 flop check이 백프로로 나와서 bet 옵션을 볼수도없네 ㅎㅎ 내 께 뭔가 오류가 났나싶어서 -_-; 다른것 말고 플랍 c-bet 만 어떻게 바뀌는지 그것만 좀 알고싶음 ㅜㅜ
그리고 utg 플랍 첵 95프로 이러는게 난 나쁜거 같지 않음 옵티멀인지 아닌지는 아무도 모르고 동의 안할수도 있고 그렇지만 ㅎㅎ 나도 실제로 백프로까진 아닌데 첵많이 하는편임 실제로도.. 실제로 oop 에서 c-bet 30프로 이런애들 있는데 상대하기 까다로움.. 첵/콜도 많이 하고 첵/레이즈 레인지도 있고 첵첵되면 딜레이씨벳도 어그레시브하고 나오고 그래서 .. range 잘짜면 이것도 굉장히 strong 한 전략이라고생각 ..
2015.11.07 07:59:09
@baebba
2015.11.07 11:36:18
@baebba
2015.11.07 07:31:30
이거 플랍에서 레인지 놓고 계산 돌리면
100% 첵하라는 전략이 나올 때까지 시간이 얼마나 걸림?
마찬가지로 턴이나 리버 상황을 입력하고 계산을 돌리면 그 때는 얼마나 걸림?
2015.11.07 08:00:52
@Alice
그리고 벳사이징을 여러개 설정할 수도 있는데 이럴 경우 더걸리고 메모리도 많이 필요함. 그리고 플랍,턴리버 따로 돌리는게 아니라 한꺼번에 돌리는거고
일단 한번 돌린 후에 플랍 레인지를 임의로 조정한다거나 할 때는 시간이 거의 안 걸리는듯 함.
2015.11.07 08:04:20
@경제학부전공
그런데 플랍이 뜬 상황에서 일단 변수가..
1) 턴, 리버 카드 = 얼추 990가지 경우의 수
2) 각 플레이어의 벳/첵에 따라 갈라지는 트리 = 대략 20개 이상으로 예상
3) 각 플레이어의 레인지 안에 들어있는 핸드 콤보의 수 = 위의 상황에서는 150 * 100 = 15000개 정도
이걸 다 곱하면 경우의 수가 꽤 나올 것 같은데
물론 i5 4세대의 연산 속도라면 3분 안에 하나의 해를 구할 수는 있겠지만
그게 유일한 해라는 보장이 없을 뿐더러, 다른 해를 모두 찾는 데에는 시간이 상당히 많이 걸릴 것 같아서 해본 질문임
2015.11.07 08:24:39
@Alice
그리고 위에서 co-equilibrium 얘기한거같은데 pio돌려보면 알겠지만 많은 경우에 특정 핸드의 두 액션의 ev가 거의 같은 경우는 수없이 많고 간혹 소수점까지 동일 경우도 있을텐데 이런 경우 여러 개의 해가 있을 수 있다는 의미인가? pio는 이런 경우 조금이라도 미세하게 높은 쪽의 액션을 선정하거나 아니면 어떤 다른 로직에 의해서 분류하는 것 같다. 그리고 이런 경우에도 사용자가 액션을 택일해서 다른 트리를 선택해 볼 수 있기 때문에 여러 개의 해가 있다는 것이 그런 의미라면 3분 동안 여러 개의 해를 구해놓았다는 것이 된다.
2015.11.07 08:43:54
@경제학부전공
이건 수학적인 이해가 약간 있다면 설명이 빠를 텐데
conjugate gradient와 상관이 있다고 생각함
예를 들어 해가 두 가지 있는데 이게 근접한게 아니고 상당히 동떨어져 있다고 하면
(즉 하나의 해에서는 EP가 무조건 100% 첵을 해야 하는데, 다른 해에서는 EP가 40% 첵을 해야 한다든가)
짧은 시간 안에 solver로 모든 해를 다 스캔해 내지 못할 가능성이 있음
이런 경우 확률적인 방법을 써야 하고 가장 대표적인 게 몬테 카를로 시뮬레이션인데
실제 piosolver가 이런 면에서 알고리즘을 어떻게 구성했는지는 알 수 없지만
3분 안에 가능한 모든 해를 다 구해놓았다고 하는 것은 약간 믿기 어려움 (그러나 충분히 가능하긴 함)
2015.11.07 08:46:31
@경제학부전공
주어진 한 계 [system]의 에너지 최소값을 구할 때 많이 쓰는게 conjugate gradient 방법인데
이게 온도가 너무 낮다거나 하는 이유로 국소 최소값 [local minima]에 갇혀 버리면
이것보다 더 에너지가 낮은 global minima가 존재할 수 있음에도 불구하고 저기로 나아갈 수가 없음
이 경우 온도를 확 올려버려서 에너지 트랩을 전부 탈출하도록 한 다음 다시 천천히 온도를 낮추는 방법도 있고 뭐 그러함
GTO 해를 찾는 것도 여러 가지 알고리즘이 있지만 이와 비슷할 가능성이 있음
2015.11.07 09:01:23
@Alice
2015.11.07 10:22:19
@Alice
여기다 물어보는게 나을듯! ㅎ
2015.11.07 15:23:58
@Alice
나 대학원떄 하던거랑 비슷한 얘기하네
mrf-graph cut으로 논문 좀 쓰고 그랬는데 ㅋㅋㅋ
2015.11.07 17:42:45
@글한더
공돌이는 아니지만 이과생이었음
2015.11.08 17:14:20
@Alice