Changeset 11727 for branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.Bandits/Policies/BanditPolicy.cs
- Timestamp:
- 12/29/14 11:02:36 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.Bandits/Policies/BanditPolicy.cs
r11711 r11727 1 1 using System; 2 2 using System.Collections.Generic; 3 using System.Diagnostics; 3 4 using System.Linq; 4 5 using System.Text; … … 7 8 namespace HeuristicLab.Algorithms.Bandits { 8 9 public abstract class BanditPolicy : IPolicy { 9 public int NumActions { get; private set; } 10 public BanditPolicy(int numActions) { 11 this.NumActions = numActions; 10 public IEnumerable<int> Actions { get; private set; } 11 private readonly int numInitialActions; 12 13 protected BanditPolicy(int numActions) { 14 this.numInitialActions = numActions; 15 Actions = Enumerable.Range(0, numActions).ToArray(); 12 16 } 13 17 14 18 public abstract int SelectAction(); 15 19 public abstract void UpdateReward(int action, double reward); 16 public abstract void Reset(); 20 21 public virtual void DisableAction(int action) { 22 Debug.Assert(Actions.Contains(action)); 23 24 Actions = Actions.Where(a => a != action).ToArray(); 25 } 26 27 public virtual void Reset() { 28 Actions = Enumerable.Range(0, numInitialActions).ToArray(); 29 } 17 30 } 18 31 }
Note: See TracChangeset
for help on using the changeset viewer.