icybee

Results 290 comments of icybee

Even with the game tree difference the whole thing still seems wired to me. Seems it needs more experiments. Hope you can provide the piosolver result file, it would help...

> Uploaded pio files. One with same config as TexasSolver and another without the 3x IP raise. I do think its a tree construction issue. > > In poker theory,...

Ok, 其实你应该提的是pull request而不是issue,我会看下这个提交,如果测试通过我这次会手动合并下 下次提交的时候可以学习下github的pull request功能

> 1. 关于-4和-2。 我理解你的意思,我是有考虑你说的这种情况的,只不过这里确实是-2没错,对手的-2在其他地方被等价的减掉了,我证明过两种情况的等价性,所以应该是没有问题的 2. 关于公共牌和 5/4。公共牌ban掉的组合也以其他形式影响ev,并不直接以概率乘的形式。你可以发现我程序里用的ev并不是绝对的ev(prob*收益),而是一种相对的ev形式。 我当时证明了一整个稿纸本,这种程序里用的相对ev可以等价于绝对ev的cfr算法,所以并不需要进行这种5/4乘法运算,我认为这里没有问题。 3. 但是我并非神仙,所以依然可能证明出现问题,如果觉得这里有问题,有没有可能通过一些实验说明这一点,比如在某些场面下你修改后的算法cfr可以收敛,而我的“baseline”无法收敛?

> 对于第2点,不论是绝对ev还是相对ev都没有关系,我说的重点不是这个。重点在于,计算父节点ev时,fold子节点fold_ev和chance子节点chance_ev的差异,fold子节点不需要5/4,chance子节点需要5/4,也就是用fold_ev+chance_ev代替了fold_ev+5/4*chance_ev。用我说的方式计算,两个子节点ev都不需要5/4 嗯嗯,了解,我短时间还没有理解你说的5/4,也就是 “另一个乘上5/4才是真实值” 我得找个时间证明一下,看看是不是这样。不知道是否方便做一些实验在当前代码上验证一下你的这个5/4的思路呢?主要关注收敛性/收敛速度等等。

> ,call动作进入发牌节点,这两个子节点的期望收益一个是真实值,另一个乘上5/4才是真实值,两个值直接(加权)求和就有问题。 hi~我想了一下,总感觉哪里怪怪的,是否可以用实验证明一下呢~就是你说的这个方法的收敛性?这份代码我写了太久了,很多细节我都记不太清了,但是我记得possible_deals这个我当时是推了很久公式,而且做了很多收敛性实验的。 如果可以做几个实验,说明确实在使用你说的 -4 的情况下程序收敛性更好,我感觉就很能说明问题了~

> 这里计算`possible_deals`应该要减去双方手牌张数之和,也就是减4,而不是减2 > 拿6张牌{A,B,C,D,E,F}举例,对于任意具体的节点,例如player1拿A,player2拿B,发公共牌时实际只有4个动作{C,D,E,F},也可以对齐到6个动作,其中2个动作概率为0,剩余4个动作概率均为1/4。对于向量形式,例如计算player1的信息集A的期望收益(或虚拟价值),player2拿{B,C,D,E,F},虽然发公共牌有5种情况,但是对5个子节点加权求和时,只有4个子节点的期望收益做出了贡献。 > 现在的计算方式乘上5/4才是真实值。这也不是什么大问题,真正出问题是在发牌节点的父节点处。假设父节点的fold动作进入叶子节点,call动作进入发牌节点,这两个子节点的期望收益一个是真实值,另一个乘上5/4才是真实值,两个值直接(加权)求和就有问题。 我知道你说的-4的意思了,我回忆了一下,我一开始写的是-4,后来推完公式这里才改成-2的,原因我还真忘了。。回头我做一下实验,如果改成-4收敛性变好那肯定说明你的理论是对的

> 使用TexasSolverGui.exe配置后,导出一个配置文件到 resources/text/test.txt > > 使用 console_solver.exe -i resources/text/test.txt > > 会提示 command not recognized : set_raise_limit command not recognized : set_print_interva110 > > 但直接用TexasSolverGui.exe又能正常计算的,不知道是哪里没设置对么? 可能是我写的bug,格式没有完全对上,需要 ``` set_raise_limit 3 set_print_interval...

> 命令行读取参数是按照空格分割字符串得到 > > https://github.com/bupticybee/TexasSolver/blob/02e52e4bb47473d2854626f8c19f26e698c73347/src/tools/CommandLineTool.cpp#L91-L93 > > > GUI读取参数是通过删除前导字符后取剩余部分,所以没有空格也行 > https://github.com/bupticybee/TexasSolver/blob/02e52e4bb47473d2854626f8c19f26e698c73347/mainwindow.cpp#L95 > > > GUI导出参数时没有加空格,`set_print_interval`后面加个空格就行了 > https://github.com/bupticybee/TexasSolver/blob/02e52e4bb47473d2854626f8c19f26e698c73347/mainwindow.cpp#L364 > > > `CommandLineTool.cpp`里面没有解析`set_raise_limit`的代码,添加进去就行了 哦哦,赞~这里是我的疏忽,写出bug了

> No, raking is not implemented for now, however I can say it's easy to implement.