Equim-chan / Mortal

🚀🀄️ A fast and strong AI for riichi mahjong, powered by Rust and deep reinforcement learning.
https://mortal.ekyu.moe
GNU Affero General Public License v3.0
1k stars 130 forks source link

about q_values not match action type #44

Closed teble closed 1 year ago

teble commented 1 year ago

mortal 输出: {'type': 'none', 'meta': {'q_values': [1.2168403, 0.33200026], 'mask_bits': 43980465111040, 'is_greedy': True, 'batch_size': 1, 'eval_time_ns': 39468600, 'shanten': 0, 'at_furiten': False}}

拆解mask_bists得到 (1<<43) | (1<<45) 对应q_values结果是 荣和 优先于 跳过,但是为什么mortal的实际操作却是跳过呢,本地运行mjai-reviewer运行结果下图所示 image

Equim-chan commented 1 year ago

Mortal 不完全是 end-to-end 的,它有一些 rule-based 策略。这里的情况是四确拒和,具体实现在 libriichi/src/state/agent_helper.rs

要关闭这个功能的话,可以在创建 MortalEngine 时设置 enable_rule_based_agari_guard=False

teble commented 1 year ago

Mortal 不完全是 end-to-end 的,它有一些 rule-based 策略。这里的情况是四确拒和,具体实现在 libriichi/src/state/agent_helper.rs

要关闭这个功能的话,可以在创建 MortalEngine 时设置 enable_rule_based_agari_guard=False

好的,感谢解答