Add deterministic compile option
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<Platforms>x64</Platforms>
|
||||
<Configurations>Debug;Release</Configurations>
|
||||
<Configurations>Debug;Release;Deterministic</Configurations>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -32,7 +32,7 @@
|
||||
<ProjectReference Include="..\Solver\Craftimizer.Solver.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(IS_BENCH)'=='1'">
|
||||
<PropertyGroup Condition="'$(IS_BENCH)'=='1' Or '$(Configuration)'=='Deterministic'">
|
||||
<DefineConstants>$(DefineConstants);IS_DETERMINISTIC</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
+24
-2
@@ -2,15 +2,37 @@ using Craftimizer.Simulator;
|
||||
using Craftimizer.Simulator.Actions;
|
||||
using Craftimizer.Solver;
|
||||
using ObjectLayoutInspector;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Craftimizer.Benchmark;
|
||||
|
||||
internal static class Program
|
||||
{
|
||||
private static Task Main(string[] args)
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
#if IS_DETERMINISTIC
|
||||
var b = new Bench();
|
||||
|
||||
var initConfig = Bench.Configs.First();
|
||||
var initState = Bench.States.First();
|
||||
|
||||
var config = new MCTSConfig(initConfig.Data);
|
||||
|
||||
var s = Stopwatch.StartNew();
|
||||
for (var i = 0; i < 100; ++i)
|
||||
{
|
||||
var solver = new MCTS(config, initState);
|
||||
var progress = 0;
|
||||
solver.Search(initConfig.Data.Iterations, ref progress, CancellationToken.None);
|
||||
var solution = solver.Solution();
|
||||
Console.WriteLine($"{i+1}");
|
||||
}
|
||||
s.Stop();
|
||||
Console.WriteLine($"{s.Elapsed.TotalMilliseconds:0.00}ms");
|
||||
#else
|
||||
RunBench(args);
|
||||
return Task.CompletedTask;
|
||||
#endif
|
||||
|
||||
// return RunOther();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user