Changeset 11977 for branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization
- Timestamp:
- 02/11/15 03:01:59 (10 years ago)
- Location:
- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/SequentialDecisionPolicies/GenericFunctionApproximationGrammarPolicy.cs
r11976 r11977 62 62 63 63 64 /*65 const double beta = 1;64 65 const double beta = 20; 66 66 var w = from idx in Enumerable.Range(0, maxIdx) 67 67 let afterStateQ = activeAfterStates[idx] … … 71 71 selectedStateIdx = actionIndexMap[bestAction]; 72 72 Debug.Assert(selectedStateIdx >= 0); 73 */74 75 73 74 75 /* 76 76 if (random.NextDouble() < 0.2) { 77 77 selectedStateIdx = actionIndexMap[random.Next(maxIdx)]; … … 91 91 selectedStateIdx = actionIndexMap[bestIdxs[random.Next(bestIdxs.Count)]]; 92 92 } 93 94 95 96 93 */ 97 94 return true; 98 95 } … … 132 129 133 130 public double GetValue(string state) { 134 return problem.GetFeatures(state). Average(feature => GetWeight(feature));131 return problem.GetFeatures(state).Sum(feature => GetWeight(feature)); 135 132 } 136 133 … … 142 139 private void UpdateWeights(string state, double reward) { 143 140 double delta = reward - GetValue(state); 144 delta /= problem.GetFeatures(state).Count();145 const double alpha = 0.001;141 // delta /= problem.GetFeatures(state).Count(); 142 //const double alpha = 0.01; 146 143 foreach (var feature in problem.GetFeatures(state)) { 147 144 featureTries[feature.Id] = GetFeatureTries(feature.Id) + 1; 148 145 Debug.Assert(GetFeatureTries(feature.Id) >= 1); 149 //double alpha = 1.0 / GetFeatureTries(feature.Id);150 //alpha = Math.Max(alpha, 0.01);146 double alpha = 1.0 / GetFeatureTries(feature.Id); 147 alpha = Math.Max(alpha, 0.001); 151 148 152 149 double w; -
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/Solvers/SequentialSearch.cs
r11976 r11977 62 62 } 63 63 64 public bool StopRequested { 65 get; 66 set; 67 } 68 64 69 public override void Run(int maxIterations) { 65 70 Reset(); 66 71 67 for (int i = 0; /*!bestQuality.IsAlmost(1.0) && */!Done() && i < maxIterations; i++) {72 for (int i = 0; !StopRequested && !Done() && i < maxIterations; i++) { 68 73 var phrase = SampleSentence(problem.Grammar); 69 74 // can fail on the last sentence … … 171 176 172 177 private void Reset() { 178 StopRequested = false; 173 179 behaviourPolicy.Reset(); 174 180 greedyPolicy.Reset(); … … 238 244 } 239 245 #endregion 240 246 241 247 } 242 248 }
Note: See TracChangeset
for help on using the changeset viewer.