Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/28/13 17:54:46 (11 years ago)
Author:
sforsten
Message:

#1980:

  • added necessary interface ICondition, IAction, IInput
  • removed not used class MatchSelector and interface IMatchSelector
  • added constructors to ItemDictionary
  • added new encoding
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/XCSModel.cs

    r9161 r9194  
    3434    public int ClassifierCount { get { return Count; } }
    3535
     36    public IClassifierComparer ClassifierComparer { get; set; }
     37
    3638    [StorableConstructor]
    3739    protected XCSModel(bool deserializing) : base(deserializing) { }
     
    5153    }
    5254
    53     public IEnumerable<IClassifier> GetAction(IEnumerable<IClassifier> classifiers) {
     55    public IEnumerable<IAction> GetAction(IEnumerable<IInput> classifiers) {
    5456      foreach (var classifier in classifiers) {
    5557        yield return GetAction(classifier);
     
    5759    }
    5860
    59     public IClassifier GetAction(IClassifier classifier) {
     61    public IAction GetAction(IInput classifier) {
    6062      var matchedClassifiers = new ItemCollection<XCSClassifier>();
    6163      foreach (var xcsClassifier in this) {
    62         if (xcsClassifier.Classifier.MatchCondition(classifier)) {
     64        if (xcsClassifier.Classifier.MatchInput(classifier)) {
    6365          matchedClassifiers.Add(xcsClassifier);
    6466        }
     
    6769      if (matchedClassifiers.Count == 0) { return null; }
    6870
    69       IDictionary<IClassifier, double> predictionArray = CreatePredictionArray(matchedClassifiers);
     71      IDictionary<IAction, double> predictionArray = CreatePredictionArray(matchedClassifiers);
    7072      return predictionArray.OrderByDescending(x => x.Value).First().Key;
    7173    }
    7274
    73     private IDictionary<IClassifier, double> CreatePredictionArray(ItemCollection<XCSClassifier> matchedClassifiers) {
    74       var predictionArray = new Dictionary<IClassifier, double>();
    75       var fitnessSumPerAction = new Dictionary<IClassifier, double>();
     75    private IDictionary<IAction, double> CreatePredictionArray(ItemCollection<XCSClassifier> matchedClassifiers) {
     76      var predictionArray = new Dictionary<IAction, double>(ClassifierComparer);
     77      var fitnessSumPerAction = new Dictionary<IAction, double>(ClassifierComparer);
    7678
    7779      foreach (var xcsClassifier in matchedClassifiers) {
     
    8688      }
    8789
    88       var actions = new List<IClassifier>(predictionArray.Keys);
     90      var actions = new List<IAction>(predictionArray.Keys);
    8991      foreach (var action in actions) {
    9092        if (fitnessSumPerAction[action] != 0) {
Note: See TracChangeset for help on using the changeset viewer.