Vixen
caa30e12
csharp
public static class UtilityScoring

How a set of considerations becomes one number.

Read the guide page for this →

Remarks

⚠ A weighted geometric mean, and the naive product is what everybody writes first. With every term in [0,1], a plain product makes an action with six considerations structurally worse than an identical action with three — so adding a consideration to tune an action quietly demotes it, and the demotion is invisible because every individual number looks right. Taking the nth root is the standard compensation and it makes the count irrelevant.

⚠ The zero rule survives the mean, and that is the point of using a product at all. A single zero factor makes the whole thing zero, which is how "never, under any circumstances" is expressed. A weighted sum cannot say that: a veto is outvoted by enough enthusiasm elsewhere, which is how an agent ends up drinking coffee while on fire.

Methods (1)

  • public static float Combine(ReadOnlySpan<float> scores, float weight = 1)

    Combines a set of consideration scores.

Used by (3)

  • QueryScorerExitCriteriaTestsVixen.Ai.Tests
  • UtilityCompensationTestsVixen.Ai.Tests
  • UtilitySetModelVixen.Editor.Ai