Safe Haskell | None |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Defines the weight associated with each criterion.
Synopsis
- data CriteriaWeights criterionWeight
- tag :: String
- weightOfMaterialTag :: String
- weightOfPieceSquareValueTag :: String
- onymousOperators :: [(String, CriteriaWeights criterionWeight -> CriterionWeight criterionWeight, CriterionWeight criterionWeight -> Transformation criterionWeight)]
- calculateWeightedMean :: (Fractional weightedMean, Real criterionValue, Real criterionWeight) => CriteriaWeights criterionWeight -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> CriterionValue criterionValue -> WeightedMeanAndCriterionValues weightedMean criterionValue
- normalise :: (Fractional criterionWeight, Ord criterionWeight, Show criterionWeight) => Transformation criterionWeight
- perturbWeights :: (Fractional criterionWeight, Real criterionWeight, Show criterionWeight, RandomGen randomGen) => randomGen -> criterionWeight -> Transformation criterionWeight
- mkCriteriaWeights :: (Eq criterionWeight, Num criterionWeight) => CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriterionWeight criterionWeight -> CriteriaWeights criterionWeight
Types
Type-synonyms
Data-types
data CriteriaWeights criterionWeight Source #
- The weight of various criteria used to select a move from alternatives, at specific point in the game.
- CAVEAT: these weights determine the effective value of isolated or doubled
Pawn
s, & this value shouldn't be less than their weighted normalised rank-value, otherwise sacrifice would be beneficial.
Instances
Constants
weightOfMaterialTag :: String Source #
Used to qualify the XML.
weightOfPieceSquareValueTag :: String Source #
Used to qualify the XML.
onymousOperators :: [(String, CriteriaWeights criterionWeight -> CriterionWeight criterionWeight, CriterionWeight criterionWeight -> Transformation criterionWeight)] Source #
A list of named accessors & mutators.
Functions
calculateWeightedMean Source #
:: (Fractional weightedMean, Real criterionValue, Real criterionWeight) | |
=> CriteriaWeights criterionWeight | |
-> CriterionValue criterionValue | material: maximum if a player's move equals the maximum total piece value (including queened |
-> CriterionValue criterionValue | mobility: maximum when the opponent is check-mated. |
-> CriterionValue criterionValue | pieceSquareValue: maximum when this player occupies all the strategically important squares & the opponent none. |
-> CriterionValue criterionValue | castlingPotential: maximum when this player either has castled or can, but the opponent has been permanently prevented. |
-> CriterionValue criterionValue | defence: maximum when this player's pieces are fully utilised in defence, but none of the opponent's are. |
-> CriterionValue criterionValue | doubledPawns: maximum when this player hasn't any doubled |
-> CriterionValue criterionValue | isolatedPawns: maximum when this player hasn't any isolated |
-> CriterionValue criterionValue | passedPawns: maximum when this player has 8 passed |
-> WeightedMeanAndCriterionValues weightedMean criterionValue | The individual criteria values, & their weighted mean. |
- Returns the weighted sum of the specified criteria, divided by the sum of the weights; https://chessprogramming.wikispaces.com/evaluation
- Each criterion increases in proportion to some desirable attribute of the proposed game.
- Each criterion should be in the same range of magnitudes, so that none dominates the total, thus making the total a clear measure of the value attributed to each.
- Also writes individual unweighted criterion-values, to facilitate post-analysis; if the corresponding weight is zero, for efficiency evaluation of the criterion is avoided.
normalise :: (Fractional criterionWeight, Ord criterionWeight, Show criterionWeight) => Transformation criterionWeight Source #
Adjust the mean weight, so that the maximum weight is 1
.
:: (Fractional criterionWeight, Real criterionWeight, Show criterionWeight, RandomGen randomGen) | |
=> randomGen | |
-> criterionWeight | Change-magnitude. |
-> Transformation criterionWeight |
- Independently perturbs each criterion-weight by a random value, of configurable magnitude.
- Under this transformation, criterion-weights of
0
, will remain unchanged, thus irrelevant criteria remain irrelevant.
Constructor
:: (Eq criterionWeight, Num criterionWeight) | |
=> CriterionWeight criterionWeight | material. |
-> CriterionWeight criterionWeight | mobility. |
-> CriterionWeight criterionWeight | pieceSquareValue. |
-> CriterionWeight criterionWeight | castlingPotential. |
-> CriterionWeight criterionWeight | defence. |
-> CriterionWeight criterionWeight | doubledPawns. |
-> CriterionWeight criterionWeight | isolatedPawns. |
-> CriterionWeight criterionWeight | passedPawns. |
-> CriteriaWeights criterionWeight |
Smart-constructor.