Changeset 5520 for branches/Algorithms.GradientDescent/HeuristicLab.Algorithms.GradientDescent/3.3/LevenbergMarquardtMove.cs
- Timestamp:
- 02/19/11 11:15:50 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Algorithms.GradientDescent/HeuristicLab.Algorithms.GradientDescent/3.3/LevenbergMarquardtMove.cs
r5516 r5520 30 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 31 using HeuristicLab.Problems.TestFunctions; 32 using HeuristicLab.Analysis; 32 33 33 34 namespace HeuristicLab.Algorithms.GradientDescent { … … 75 76 double epsf = 0; 76 77 double epsx = 0; 77 int maxits = 100;78 int maxits = 0; 78 79 double diffstep = .1; 79 80 … … 82 83 alglib.minlmstate state; 83 84 alglib.minlmreport report; 84 85 alglib.minlmcreatev(solution.Length, 1,solution, diffstep, out state);85 86 alglib.minlmcreatev(solution.Length, solution, diffstep, out state); 86 87 alglib.minlmsetcond(state, epsg, epsf, epsx, maxits); 87 alglib.minlmoptimize(state, CreateCallBack(EvaluatorParameter.ActualValue), ReportProgress, null); 88 alglib.minlmsetxrep(state, true); 89 alglib.minlmoptimize(state, CreateCallBack(EvaluatorParameter.ActualValue), CreateReportProgress(ResultParameter.ActualValue), null); 88 90 alglib.minlmresults(state, out solution, out report); 89 91 … … 104 106 } 105 107 106 private void ReportProgress(double[] arg, double func, object obj) { 107 if (!ResultParameter.ActualValue.ContainsKey(QualityResultsName)) 108 ResultParameter.ActualValue.Add(new Result(QualityResultsName, new DoubleValue())); 108 private alglib.ndimensional_rep CreateReportProgress(ResultCollection results) { 109 return (double[] arg, double func, object obj) => { 110 if (!results.ContainsKey(QualityResultsName)) { 111 DataTable table = new DataTable(QualityResultsName); 112 table.Rows.Add(new DataRow("Quality")); 113 results.Add(new Result(QualityResultsName, table)); 114 } 109 115 110 ((DoubleValue)ResultParameter.ActualValue[QualityResultsName].Value).Value = func; 116 DataTable resultsTable = (DataTable)results[QualityResultsName].Value; 117 resultsTable.Rows["Quality"].Values.Add(func); 118 }; 111 119 } 112 120 }
Note: See TracChangeset
for help on using the changeset viewer.