Remove crafty namespace from solver

This commit is contained in:
Asriel Camora
2023-10-02 12:16:43 -07:00
parent cfb5c53f3b
commit e6081f5e60
15 changed files with 24 additions and 24 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
using Craftimizer.Simulator; using Craftimizer.Simulator;
using Craftimizer.Simulator.Actions; using Craftimizer.Simulator.Actions;
using Craftimizer.Solver.Crafty; using Craftimizer.Solver;
using System.Diagnostics; using System.Diagnostics;
namespace Craftimizer.Benchmark; namespace Craftimizer.Benchmark;
@@ -77,11 +77,11 @@ internal static class Program
Console.WriteLine($"{state.Quality} {state.CP} {state.Progress} {state.Durability}"); Console.WriteLine($"{state.Quality} {state.CP} {state.Progress} {state.Durability}");
//return; //return;
var (_, s) = Solver.Crafty.Solver.SearchStepwiseFurcated(config, state, a => Console.WriteLine(a), default); var (_, s) = Solver.Solver.SearchStepwiseFurcated(config, state, a => Console.WriteLine(a), default);
Console.WriteLine($"Qual: {s.Quality}/{s.Input.Recipe.MaxQuality}"); Console.WriteLine($"Qual: {s.Quality}/{s.Input.Recipe.MaxQuality}");
return; return;
Solver.Crafty.Solver.SearchStepwiseFurcated(config, new(input), null, default); Solver.Solver.SearchStepwiseFurcated(config, new(input), null, default);
//Benchmark(() => ); //Benchmark(() => );
} }
+2 -2
View File
@@ -1,6 +1,6 @@
using Craftimizer.Simulator; using Craftimizer.Simulator;
using Craftimizer.Simulator.Actions; using Craftimizer.Simulator.Actions;
using Craftimizer.Solver.Crafty; using Craftimizer.Solver;
using Dalamud.Configuration; using Dalamud.Configuration;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -21,7 +21,7 @@ public static class AlgorithmUtils
{ {
try try
{ {
Solver.Crafty.Solver.Search(me, state, actionCallback, token); Solver.Solver.Search(me, state, actionCallback, token);
} }
catch (AggregateException e) catch (AggregateException e)
{ {
+1 -1
View File
@@ -1,4 +1,4 @@
using Craftimizer.Solver.Crafty; using Craftimizer.Solver;
using Dalamud.Interface; using Dalamud.Interface;
using Dalamud.Interface.Windowing; using Dalamud.Interface.Windowing;
using ImGuiNET; using ImGuiNET;
@@ -3,7 +3,7 @@ using System.Diagnostics.Contracts;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public struct ActionSet public struct ActionSet
{ {
@@ -2,7 +2,7 @@ using System.Diagnostics.Contracts;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
// Adapted from https://github.com/dtao/ConcurrentList/blob/4fcf1c76e93021a41af5abb2d61a63caeba2adad/ConcurrentList/ConcurrentList.cs // Adapted from https://github.com/dtao/ConcurrentList/blob/4fcf1c76e93021a41af5abb2d61a63caeba2adad/ConcurrentList/ConcurrentList.cs
public struct ArenaBuffer<T> where T : struct public struct ArenaBuffer<T> where T : struct
@@ -1,6 +1,6 @@
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public sealed class ArenaNode<T> where T : struct public sealed class ArenaNode<T> where T : struct
{ {
@@ -1,6 +1,6 @@
using CompState = Craftimizer.Simulator.CompletionState; using CompState = Craftimizer.Simulator.CompletionState;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public enum CompletionState : byte public enum CompletionState : byte
{ {
@@ -4,7 +4,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics; using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86; using System.Runtime.Intrinsics.X86;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
internal static class Intrinsics internal static class Intrinsics
{ {
[Pure] [Pure]
@@ -50,7 +50,7 @@ internal static class Intrinsics
var vcmp = Avx.CompareEqual(vfilt, vmax); var vcmp = Avx.CompareEqual(vfilt, vmax);
var mask = unchecked((uint)Avx2.MoveMask(vcmp.AsByte())); var mask = unchecked((uint)Avx2.MoveMask(vcmp.AsByte()));
var inverseIdx = BitOperations.LeadingZeroCount(mask << ((8 - len) << 2)) >> 2; var inverseIdx = BitOperations.LeadingZeroCount(mask << (8 - len << 2)) >> 2;
return len - 1 - inverseIdx; return len - 1 - inverseIdx;
} }
@@ -2,7 +2,7 @@ using System.Diagnostics.Contracts;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
// Adapted from https://github.com/dtao/ConcurrentList/blob/4fcf1c76e93021a41af5abb2d61a63caeba2adad/ConcurrentList/ConcurrentList.cs // Adapted from https://github.com/dtao/ConcurrentList/blob/4fcf1c76e93021a41af5abb2d61a63caeba2adad/ConcurrentList/ConcurrentList.cs
public struct NodeScoresBuffer public struct NodeScoresBuffer
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
[StructLayout(LayoutKind.Auto)] [StructLayout(LayoutKind.Auto)]
public sealed class RootScores public sealed class RootScores
@@ -2,7 +2,7 @@ using Craftimizer.Simulator;
using Craftimizer.Simulator.Actions; using Craftimizer.Simulator.Actions;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
[StructLayout(LayoutKind.Auto)] [StructLayout(LayoutKind.Auto)]
public struct SimulationNode public struct SimulationNode
@@ -75,7 +75,7 @@ public struct SimulationNode
); );
var fewerStepsScore = var fewerStepsScore =
config.ScoreFewerStepsBonus * (1f - ((float)(state.ActionCount + 1) / config.MaxStepCount)); config.ScoreFewerStepsBonus * (1f - (float)(state.ActionCount + 1) / config.MaxStepCount);
return progressScore + qualityScore + durabilityScore + cpScore + fewerStepsScore; return progressScore + qualityScore + durabilityScore + cpScore + fewerStepsScore;
} }
@@ -3,7 +3,7 @@ using Craftimizer.Simulator.Actions;
using System.Diagnostics.Contracts; using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public sealed class Simulator : SimulatorNoRandom public sealed class Simulator : SimulatorNoRandom
{ {
@@ -129,7 +129,7 @@ public sealed class Simulator : SimulatorNoRandom
if (wouldFinish) if (wouldFinish)
{ {
// don't allow finishing the craft if there is significant quality remaining // don't allow finishing the craft if there is significant quality remaining
if (Quality < (Input.Recipe.MaxQuality / 5)) if (Quality < Input.Recipe.MaxQuality / 5)
return false; return false;
} }
else else
@@ -188,7 +188,7 @@ public sealed class Simulator : SimulatorNoRandom
} }
public static CompletionState CalculateCompletionState(SimulationState state, int maxStepCount) => public static CompletionState CalculateCompletionState(SimulationState state, int maxStepCount) =>
(state.ActionCount + 1) >= maxStepCount ? state.ActionCount + 1 >= maxStepCount ?
CompletionState.MaxActionCountReached : CompletionState.MaxActionCountReached :
(CompletionState)CalculateCompletionState(state); (CompletionState)CalculateCompletionState(state);
} }
+3 -3
View File
@@ -5,9 +5,9 @@ using System.Diagnostics.Contracts;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using Node = Craftimizer.Solver.Crafty.ArenaNode<Craftimizer.Solver.Crafty.SimulationNode>; using Node = Craftimizer.Solver.ArenaNode<Craftimizer.Solver.SimulationNode>;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
// https://github.com/alostsock/crafty/blob/cffbd0cad8bab3cef9f52a3e3d5da4f5e3781842/crafty/src/simulator.rs // https://github.com/alostsock/crafty/blob/cffbd0cad8bab3cef9f52a3e3d5da4f5e3781842/crafty/src/simulator.rs
public sealed class Solver public sealed class Solver
@@ -155,7 +155,7 @@ public sealed class Solver
vInt = Vector.Max(vInt, Vector<int>.One); vInt = Vector.Max(vInt, Vector<int>.One);
var v = Vector.ConvertToSingle(vInt); var v = Vector.ConvertToSingle(vInt);
var exploitation = (W * (s / v)) + (w * m); var exploitation = W * (s / v) + w * m;
var exploration = CVector * Intrinsics.ReciprocalSqrt(v); var exploration = CVector * Intrinsics.ReciprocalSqrt(v);
var evalScores = exploitation + exploration; var evalScores = exploitation + exploration;
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public enum SolverAlgorithm public enum SolverAlgorithm
{ {
@@ -1,6 +1,6 @@
using Craftimizer.Simulator; using Craftimizer.Simulator;
using Craftimizer.Simulator.Actions; using Craftimizer.Simulator.Actions;
namespace Craftimizer.Solver.Crafty; namespace Craftimizer.Solver;
public readonly record struct SolverSolution(List<ActionType> Actions, SimulationState State); public readonly record struct SolverSolution(List<ActionType> Actions, SimulationState State);