Skip to content

Add Axiom V2 exact subset solver - #20

Open
Dospacite wants to merge 1 commit into
Wynncraft:mainfrom
Dospacite:axiom-v2-subset-solver
Open

Add Axiom V2 exact subset solver#20
Dospacite wants to merge 1 commit into
Wynncraft:mainfrom
Dospacite:axiom-v2-subset-solver

Conversation

@Dospacite

@Dospacite Dospacite commented Jul 6, 2026

Copy link
Copy Markdown

Summary

Adds Axiom V2, an exact subset-reachability skill point solver by Dospacite.

The solver models each non-free equipment item as a candidate bit. For every candidate subset, skill totals and cascade thresholds are deterministic, so the algorithm explores reachable subsets instead of equip-order permutations. AxiomPlayer preprocesses equipment into packed requirement, bonus, threshold, and weight arrays.

README checklist

  • Implemented under com.wynncraft.algorithms.
  • Registered in AlgorithmRegistry as Axiom V2.
  • Uses a custom IPlayer implementation: AxiomPlayer.
  • Implements clearCache() and self-invalidates cached state by equipment array, candidate count, and assigned base totals.
  • Does not mutate IEquipment instances.
  • Tie-breaks by item count, then total skill point bonus weight.

Validation

./gradlew test -Palgo='Axiom V2' --rerun-tasks
Axiom V2 PASS: 120 FAIL: 0

Benchmark

Short local JMH run on OpenJDK 21.0.10:

./gradlew jmh -Palgo='Axiom V2' -PjmhArgs='-wi 1 -i 1 -f 1'

Result summary:

FullEquipBenchmark mean: 63.992 ns/op
OneByOneBenchmark mean: 2891.091 ns/op

@Dospacite
Dospacite force-pushed the axiom-v2-subset-solver branch from f2088a0 to 08a7d1b Compare July 6, 2026 01:05
@Dospacite
Dospacite marked this pull request as ready for review July 6, 2026 01:06
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.

1 participant