Split solver into MCTS and algorithms

This commit is contained in:
Asriel Camora
2023-10-02 13:07:06 -07:00
parent e6081f5e60
commit c0f579f23b
12 changed files with 444 additions and 406 deletions
+38
View File
@@ -0,0 +1,38 @@
using System.Runtime.InteropServices;
namespace Craftimizer.Solver;
[StructLayout(LayoutKind.Auto)]
public readonly record struct MCTSConfig
{
public int MaxStepCount { get; init; }
public int MaxRolloutStepCount { get; init; }
public bool StrictActions { get; init; }
public float MaxScoreWeightingConstant { get; init; }
public float ExplorationConstant { get; init; }
public float ScoreStorageThreshold { get; init; }
public float ScoreProgress { get; init; }
public float ScoreQuality { get; init; }
public float ScoreDurability { get; init; }
public float ScoreCP { get; init; }
public float ScoreSteps { get; init; }
public MCTSConfig(SolverConfig config)
{
MaxStepCount= config.MaxStepCount;
MaxRolloutStepCount = config.MaxRolloutStepCount;
StrictActions = config.StrictActions;
MaxScoreWeightingConstant = config.MaxScoreWeightingConstant;
ExplorationConstant = config.ExplorationConstant;
ScoreStorageThreshold = config.ScoreStorageThreshold;
ScoreProgress = config.ScoreProgressBonus;
ScoreQuality = config.ScoreQualityBonus;
ScoreDurability = config.ScoreDurabilityBonus;
ScoreCP = config.ScoreCPBonus;
ScoreSteps = config.ScoreFewerStepsBonus;
}
}