Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improving the MUtility function #1929

Open
wants to merge 47 commits into
base: master
Choose a base branch
from

Conversation

ContradNamiseb
Copy link
Contributor

@ContradNamiseb ContradNamiseb commented Nov 9, 2023

In this PR I'm introducing 2 new tune able parameters, only the MovesLeftThreshold parameter is left from the old MUtility function. What this PR will do is prioritize shorter wins and longer losses.
The first parameter is MovesLeftMidpointMove this controls where the m-value crosses the y-axis as in moves with greater value than this parameter will have a negative m-effect value. This is done so moves that have shorter movesleft-value than MovesLeftMidpointMove can be prioritized higher than moves with longer movesleft-value than MovesLeftMidpointMove I would recomend (100) for this parameter.
The second parameter is the MovesLeftSteepnessFactor this should be the more tune-able parameter to match hardware as this parameter will differ depending on the nps. This sets the steepness of the curve, which is how quickly the m-value changes as the moves-left decrease or how high or low the m-value goes in simple terms. The higher this value is the greater the m-effect on node Q which might cause aggressive play and missing some deeper tactic's that might cause losses.

I found the old mutility lacking and I know its not giving the best m-effect to the best possible moves with higher q and lower mlh.
More comments
I overlooked that GetM() returns value in plies. So the m = (100.0f- child_m) / 200.0f would give negative values if ply count greater than 100.
changing defaults.
another mistake fixed.
To skip contempt if playing as black and eval negative.
Final defaults maybe before a tune.
Using the MUtility wrap again.
quick bug fix.
New mutility implemetation
build.cmd Outdated Show resolved Hide resolved
@mooskagh
Copy link
Member

To proceed, this change at least needs to show that it doesn't cause Elo or nps regression.

And preferably, also some better math-grounded justification for the changes, maybe discuss with @Naphthalin as he is the author of the original MUtility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants