Changeset 5750
- Timestamp:
- 03/18/11 12:50:28 (14 years ago)
- Location:
- branches/DataAnalysis Refactoring
- Files:
-
- 1 deleted
- 8 edited
- 3 copied
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionView.cs
r5513 r5750 25 25 using HeuristicLab.MainForm.WindowsForms; 26 26 using HeuristicLab.PluginInfrastructure; 27 using System; 27 28 28 29 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views { … … 60 61 if (Content == null || formattersComboBox.SelectedIndex < 0) 61 62 textBox.Text = string.Empty; 62 else 63 textBox.Text = treeFormattersList[formattersComboBox.SelectedIndex].Format(Content); 63 else { 64 try { 65 textBox.Text = treeFormattersList[formattersComboBox.SelectedIndex].Format(Content); 66 } 67 catch (ArgumentException) { textBox.Text = "Cannot format the symbolic expression tree with the selected formatter."; } 68 catch (NotSupportedException) { textBox.Text = "Formatting of the symbolic expression tree is not supported by the selected formatter."; } 69 } 64 70 } 65 71 -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/RunCollectionVariableImpactView.cs
r5693 r5750 34 34 [View("RunCollection Variable Impact View")] 35 35 public sealed partial class RunCollectionVariableImpactView : AsynchronousContentView { 36 private const string variableImpactResultName = " Integrated variable frequencies";36 private const string variableImpactResultName = "Variable impacts"; 37 37 public RunCollectionVariableImpactView() { 38 38 InitializeComponent(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableView.Designer.cs
r5693 r5750 55 55 this.additiveWeightChangeLabel = new System.Windows.Forms.Label(); 56 56 this.additiveWeightChangeSigmaTextBox = new System.Windows.Forms.TextBox(); 57 this.tabControl = new System.Windows.Forms.TabControl(); 58 this.variableNamesTabPage = new System.Windows.Forms.TabPage(); 59 this.parametersTabPage = new System.Windows.Forms.TabPage(); 57 60 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 58 61 this.initializationGroupBox.SuspendLayout(); 59 62 this.mutationGroupBox.SuspendLayout(); 63 this.tabControl.SuspendLayout(); 64 this.parametersTabPage.SuspendLayout(); 60 65 this.SuspendLayout(); 61 66 // … … 67 72 // 68 73 this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 69 this.initialFrequencyTextBox.Size = new System.Drawing.Size(2 03, 20);74 this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20); 70 75 // 71 76 // nameTextBox … … 73 78 this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 74 79 this.errorProvider.SetIconPadding(this.nameTextBox, 2); 75 this.nameTextBox.Size = new System.Drawing.Size(2 03, 20);80 this.nameTextBox.Size = new System.Drawing.Size(285, 20); 76 81 // 77 82 // descriptionTextBox 78 83 // 79 84 this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 80 this.descriptionTextBox.Size = new System.Drawing.Size(2 03, 20);85 this.descriptionTextBox.Size = new System.Drawing.Size(285, 20); 81 86 // 82 87 // weightMuLabel … … 96 101 this.weightInitializationMuTextBox.Location = new System.Drawing.Point(92, 19); 97 102 this.weightInitializationMuTextBox.Name = "weightInitializationMuTextBox"; 98 this.weightInitializationMuTextBox.Size = new System.Drawing.Size(2 22, 20);103 this.weightInitializationMuTextBox.Size = new System.Drawing.Size(266, 20); 99 104 this.weightInitializationMuTextBox.TabIndex = 7; 100 105 this.toolTip.SetToolTip(this.weightInitializationMuTextBox, "The mu (mean) parameter of the normal distribution from which to sample the initi" + … … 110 115 this.initializationGroupBox.Controls.Add(this.weightMuLabel); 111 116 this.initializationGroupBox.Controls.Add(this.weightInitializationMuTextBox); 112 this.initializationGroupBox.Location = new System.Drawing.Point( 3, 79);117 this.initializationGroupBox.Location = new System.Drawing.Point(6, 6); 113 118 this.initializationGroupBox.Name = "initializationGroupBox"; 114 this.initializationGroupBox.Size = new System.Drawing.Size(3 20, 73);119 this.initializationGroupBox.Size = new System.Drawing.Size(364, 73); 115 120 this.initializationGroupBox.TabIndex = 8; 116 121 this.initializationGroupBox.TabStop = false; … … 133 138 this.weightInitializationSigmaTextBox.Location = new System.Drawing.Point(92, 45); 134 139 this.weightInitializationSigmaTextBox.Name = "weightInitializationSigmaTextBox"; 135 this.weightInitializationSigmaTextBox.Size = new System.Drawing.Size(2 22, 20);140 this.weightInitializationSigmaTextBox.Size = new System.Drawing.Size(266, 20); 136 141 this.weightInitializationSigmaTextBox.TabIndex = 9; 137 142 this.toolTip.SetToolTip(this.weightInitializationSigmaTextBox, "The sigma parameter for the normal distribution from which to sample the initial " + … … 147 152 this.mutationGroupBox.Controls.Add(this.additiveWeightChangeLabel); 148 153 this.mutationGroupBox.Controls.Add(this.additiveWeightChangeSigmaTextBox); 149 this.mutationGroupBox.Location = new System.Drawing.Point( 3, 158);154 this.mutationGroupBox.Location = new System.Drawing.Point(6, 85); 150 155 this.mutationGroupBox.Name = "mutationGroupBox"; 151 this.mutationGroupBox.Size = new System.Drawing.Size(3 20, 73);156 this.mutationGroupBox.Size = new System.Drawing.Size(364, 73); 152 157 this.mutationGroupBox.TabIndex = 9; 153 158 this.mutationGroupBox.TabStop = false; … … 171 176 this.multiplicativeWeightChangeSigmaTextBox.Location = new System.Drawing.Point(201, 45); 172 177 this.multiplicativeWeightChangeSigmaTextBox.Name = "multiplicativeWeightChangeSigmaTextBox"; 173 this.multiplicativeWeightChangeSigmaTextBox.Size = new System.Drawing.Size(1 13, 20);178 this.multiplicativeWeightChangeSigmaTextBox.Size = new System.Drawing.Size(157, 20); 174 179 this.multiplicativeWeightChangeSigmaTextBox.TabIndex = 9; 175 180 this.toolTip.SetToolTip(this.multiplicativeWeightChangeSigmaTextBox, "The sigma (std.dev.) parameter for the normal distribution to sample a multiplica" + … … 194 199 this.additiveWeightChangeSigmaTextBox.Location = new System.Drawing.Point(201, 19); 195 200 this.additiveWeightChangeSigmaTextBox.Name = "additiveWeightChangeSigmaTextBox"; 196 this.additiveWeightChangeSigmaTextBox.Size = new System.Drawing.Size(1 13, 20);201 this.additiveWeightChangeSigmaTextBox.Size = new System.Drawing.Size(157, 20); 197 202 this.additiveWeightChangeSigmaTextBox.TabIndex = 7; 198 203 this.toolTip.SetToolTip(this.additiveWeightChangeSigmaTextBox, "The sigma (std.dev.) parameter for the normal distribution to sample an additive " + … … 200 205 this.additiveWeightChangeSigmaTextBox.TextChanged += new System.EventHandler(this.additiveWeightChangeSigmaTextBox_TextChanged); 201 206 // 207 // tabControl 208 // 209 this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 210 | System.Windows.Forms.AnchorStyles.Left) 211 | System.Windows.Forms.AnchorStyles.Right))); 212 this.tabControl.Controls.Add(this.variableNamesTabPage); 213 this.tabControl.Controls.Add(this.parametersTabPage); 214 this.tabControl.Location = new System.Drawing.Point(3, 79); 215 this.tabControl.Name = "tabControl"; 216 this.tabControl.SelectedIndex = 0; 217 this.tabControl.Size = new System.Drawing.Size(399, 212); 218 this.tabControl.TabIndex = 10; 219 // 220 // variableNamesTabPage 221 // 222 this.variableNamesTabPage.Location = new System.Drawing.Point(4, 22); 223 this.variableNamesTabPage.Name = "variableNamesTabPage"; 224 this.variableNamesTabPage.Padding = new System.Windows.Forms.Padding(3); 225 this.variableNamesTabPage.Size = new System.Drawing.Size(391, 186); 226 this.variableNamesTabPage.TabIndex = 0; 227 this.variableNamesTabPage.Text = "Variable Names"; 228 this.variableNamesTabPage.UseVisualStyleBackColor = true; 229 // 230 // parametersTabPage 231 // 232 this.parametersTabPage.Controls.Add(this.mutationGroupBox); 233 this.parametersTabPage.Controls.Add(this.initializationGroupBox); 234 this.parametersTabPage.Location = new System.Drawing.Point(4, 22); 235 this.parametersTabPage.Name = "parametersTabPage"; 236 this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3); 237 this.parametersTabPage.Size = new System.Drawing.Size(391, 186); 238 this.parametersTabPage.TabIndex = 1; 239 this.parametersTabPage.Text = "Parameters"; 240 this.parametersTabPage.UseVisualStyleBackColor = true; 241 // 202 242 // VariableView 203 243 // 204 244 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 205 245 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 206 this.Controls.Add(this.mutationGroupBox); 207 this.Controls.Add(this.initializationGroupBox); 246 this.Controls.Add(this.tabControl); 208 247 this.Name = "VariableView"; 209 this.Size = new System.Drawing.Size(326, 235); 210 this.Controls.SetChildIndex(this.initializationGroupBox, 0); 248 this.Size = new System.Drawing.Size(408, 294); 211 249 this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0); 212 250 this.Controls.SetChildIndex(this.initialFrequencyLabel, 0); … … 215 253 this.Controls.SetChildIndex(this.nameTextBox, 0); 216 254 this.Controls.SetChildIndex(this.descriptionTextBox, 0); 217 this.Controls.SetChildIndex(this. mutationGroupBox, 0);255 this.Controls.SetChildIndex(this.tabControl, 0); 218 256 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 219 257 this.initializationGroupBox.ResumeLayout(false); … … 221 259 this.mutationGroupBox.ResumeLayout(false); 222 260 this.mutationGroupBox.PerformLayout(); 261 this.tabControl.ResumeLayout(false); 262 this.parametersTabPage.ResumeLayout(false); 223 263 this.ResumeLayout(false); 224 264 this.PerformLayout(); … … 238 278 private System.Windows.Forms.Label additiveWeightChangeLabel; 239 279 private System.Windows.Forms.TextBox additiveWeightChangeSigmaTextBox; 240 280 private System.Windows.Forms.TabControl tabControl; 281 private System.Windows.Forms.TabPage variableNamesTabPage; 282 private System.Windows.Forms.TabPage parametersTabPage; 241 283 } 242 284 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableView.cs
r5693 r5750 21 21 22 22 using System; 23 using System.Linq; 23 24 using System.Windows.Forms; 24 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views; 25 26 using HeuristicLab.MainForm; 26 27 using HeuristicLab.MainForm.WindowsForms; 28 using HeuristicLab.Core; 29 using HeuristicLab.Data; 30 using HeuristicLab.Core.Views; 31 using HeuristicLab.Collections; 27 32 28 33 29 34 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views { 35 30 36 [View("Variable View")] 31 37 [Content(typeof(Variable), true)] 32 38 public partial class VariableView : SymbolView { 39 private CheckedItemCollectionView<StringValue> variableNamesView; 40 33 41 public new Variable Content { 34 42 get { return (Variable)base.Content; } … … 38 46 public VariableView() { 39 47 InitializeComponent(); 48 variableNamesView = new CheckedItemCollectionView<StringValue>(); 49 variableNamesView.Dock = DockStyle.Fill; 50 variableNamesTabPage.Controls.Add(variableNamesView); 51 variableNamesView.Content = new CheckedItemCollection<StringValue>(); 52 53 RegisterVariableNamesViewContentEvents(); 40 54 } 55 56 private void RegisterVariableNamesViewContentEvents() { 57 variableNamesView.Content.ItemsAdded += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 58 variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 59 variableNamesView.Content.CheckedItemsChanged += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 60 variableNamesView.Content.CollectionReset += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 61 } 62 63 private void DeregisterVariableNamesViewContentEvents() { 64 variableNamesView.Content.ItemsAdded -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 65 variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 66 variableNamesView.Content.CheckedItemsChanged -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 67 variableNamesView.Content.CollectionReset -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed); 68 } 69 41 70 42 71 protected override void RegisterContentEvents() { … … 74 103 75 104 #region control event handlers 105 private void variableNames_Changed(object sender, CollectionItemsChangedEventArgs<StringValue> args) { 106 if (Content != null) { 107 Content.VariableNames = variableNamesView.Content.CheckedItems.Select(x => x.Value).ToList(); 108 } 109 } 110 76 111 private void weightMuTextBox_TextChanged(object sender, EventArgs e) { 77 112 double nu; … … 121 156 additiveWeightChangeSigmaTextBox.Text = string.Empty; 122 157 multiplicativeWeightChangeSigmaTextBox.Text = string.Empty; 158 // temporarily deregister to prevent circular calling of events 159 DeregisterVariableNamesViewContentEvents(); 160 variableNamesView.Content.Clear(); 161 RegisterVariableNamesViewContentEvents(); 123 162 } else { 163 var existingEntries = variableNamesView.Content.Select(x => x.Value); 164 165 // temporarily deregister to prevent circular calling of events 166 DeregisterVariableNamesViewContentEvents(); 167 // add additional entries 168 foreach (var variableName in Content.VariableNames.Except(existingEntries)) { 169 variableNamesView.Content.Add(new StringValue(variableName), true); 170 } 171 RegisterVariableNamesViewContentEvents(); 172 124 173 weightInitializationMuTextBox.Text = Content.WeightMu.ToString(); 125 174 weightInitializationSigmaTextBox.Text = Content.WeightSigma.ToString(); -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/ILaggedTreeNode.cs
r5532 r5750 22 22 23 23 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 24 namespace HeuristicLab.Problems.DataAnalysis {24 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { 25 25 public interface ILaggedTreeNode : ISymbolicExpressionTreeNode { 26 26 int Lag { get; set; } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.ExternalEvaluation.GP/3.4/ExternalEvaluationExpressionGrammar.cs
r5745 r5750 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 using HeuristicLab.Problems.DataAnalysis.Symbolic; 25 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;28 28 29 29 namespace HeuristicLab.Problems.ExternalEvaluation.GP { 30 30 [StorableClass] 31 [Item(" FullFunctionalExpressionGrammar", "Represents a grammar for functional expressions using all available functions.")]32 public class FullFunctionalExpressionGrammar : DefaultSymbolicExpressionGrammar {31 [Item("ExternalEvaluationExpressionGrammar", "Represents a grammar for functional expressions using all available functions.")] 32 public class ExternalEvaluationExpressionGrammar : SymbolicExpressionGrammar, ISymbolicDataAnalysisGrammar { 33 33 [Storable] 34 private HeuristicLab.Problems. ExternalEvaluation.GP.Variable variableSymbol;34 private HeuristicLab.Problems.DataAnalysis.Symbolic.Variable variableSymbol; 35 35 [StorableConstructor] 36 protected FullFunctionalExpressionGrammar(bool deserializing) : base(deserializing) { }37 protected FullFunctionalExpressionGrammar(FullFunctionalExpressionGrammar original, Cloner cloner) : base(original, cloner) { }36 protected ExternalEvaluationExpressionGrammar(bool deserializing) : base(deserializing) { } 37 protected ExternalEvaluationExpressionGrammar(ExternalEvaluationExpressionGrammar original, Cloner cloner) : base(original, cloner) { } 38 38 public override IDeepCloneable Clone(Cloner cloner) { 39 return new FullFunctionalExpressionGrammar(this, cloner);39 return new ExternalEvaluationExpressionGrammar(this, cloner); 40 40 } 41 41 42 public FullFunctionalExpressionGrammar()43 : base( ) {42 public ExternalEvaluationExpressionGrammar() 43 : base("ExternalEvaluationExpressionGrammar", "Represents a grammar for functional expressions using all available functions.") { 44 44 Initialize(); 45 45 } 46 46 47 private void Initialize() { 48 var originalStart = StartSymbol; 49 if (!(originalStart is ProgramRootSymbol)) { 50 var root = new ProgramRootSymbol(); 51 AddSymbol(root); 52 SetMinSubtreeCount(root, 1); 53 SetMaxSubtreeCount(root, 1); 54 SetAllowedChild(root, originalStart, 0); 55 56 StartSymbol = root; 57 } 58 47 private void Initialize() { 59 48 var add = new Addition(); 60 49 var sub = new Subtraction(); … … 76 65 constant.MinValue = -20; 77 66 constant.MaxValue = 20; 78 variableSymbol = new Variable();67 variableSymbol = new HeuristicLab.Problems.DataAnalysis.Symbolic.Variable(); 79 68 80 69 var allSymbols = new List<Symbol>() { add, sub, mul, div, mean, sin, cos, tan, log, exp, @if, gt, lt, and, or, not, constant, variableSymbol }; … … 87 76 88 77 foreach (var funSymb in functionSymbols) { 89 SetMinSubtreeCount(funSymb, 1); 90 SetMaxSubtreeCount(funSymb, 3); 78 SetSubtreeCount(funSymb, 1, 3); 91 79 } 92 80 foreach (var funSymb in unaryFunctionSymbols) { 93 SetMinSubtreeCount(funSymb, 1); 94 SetMaxSubtreeCount(funSymb, 1); 81 SetSubtreeCount(funSymb, 1, 1); 95 82 } 96 83 foreach (var funSymb in binaryFunctionSymbols) { 97 SetMinSubtreeCount(funSymb, 2); 98 SetMaxSubtreeCount(funSymb, 2); 84 SetSubtreeCount(funSymb, 2, 2); 99 85 } 100 86 101 SetMinSubtreeCount(@if, 3); 102 SetMaxSubtreeCount(@if, 3); 103 SetMinSubtreeCount(constant, 0); 104 SetMaxSubtreeCount(constant, 0); 105 SetMinSubtreeCount(variableSymbol, 0); 106 SetMaxSubtreeCount(variableSymbol, 0); 87 SetSubtreeCount(@if, 3, 3); 88 SetSubtreeCount(constant, 0, 0); 89 SetSubtreeCount(variableSymbol, 0, 0); 107 90 108 91 // allow each symbol as child of the start symbol 109 92 foreach (var symb in allSymbols) { 110 SetAllowedChild(originalStart, symb, 0);93 AddAllowedChildSymbol(StartSymbol, symb, 0); 111 94 } 112 95 113 96 // allow each symbol as child of every other symbol (except for terminals that have maxSubtreeCount == 0) 114 97 foreach (var parent in allSymbols) { 115 for (int i = 0; i < GetMax SubtreeCount(parent); i++)98 for (int i = 0; i < GetMaximumSubtreeCount(parent); i++) 116 99 foreach (var child in allSymbols) { 117 SetAllowedChild(parent, child, i);100 AddAllowedChildSymbol(parent, child, i); 118 101 } 119 102 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.ExternalEvaluation.GP/3.4/ExternalEvaluationSymbolicExpressionTreeStringConverter.cs
r5745 r5750 30 30 [StorableClass] 31 31 public class SymbolicExpressionTreeStringConverter : SymbolicExpressionTreeConverter { 32 private SymbolicExpressionTreeStringFormatter formatter;32 private ExternalEvaluationSymbolicExpressionTreeStringFormatter formatter; 33 33 34 34 [StorableConstructor] … … 36 36 protected SymbolicExpressionTreeStringConverter(SymbolicExpressionTreeStringConverter original, Cloner cloner) 37 37 : base(original, cloner) { 38 formatter = new SymbolicExpressionTreeStringFormatter();38 formatter = new ExternalEvaluationSymbolicExpressionTreeStringFormatter(); 39 39 formatter.Indent = original.formatter.Indent; 40 40 } … … 54 54 55 55 private void Initialize() { 56 formatter = new SymbolicExpressionTreeStringFormatter();56 formatter = new ExternalEvaluationSymbolicExpressionTreeStringFormatter(); 57 57 formatter.Indent = false; 58 58 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.ExternalEvaluation.GP/3.4/ExternalEvaluationSymbolicExpressionTreeStringFormatter.cs
r5745 r5750 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 using HeuristicLab.Problems.DataAnalysis.Symbolic; 29 using System; 27 30 28 namespace HeuristicLab. Encodings.SymbolicExpressionTreeEncoding{31 namespace HeuristicLab.Problems.ExternalEvaluation.GP { 29 32 30 [Item(" SymbolicExpressionTreeStringFormatter", "The default string formatter for symbolic expression trees.")]33 [Item("ExternalEvaluationSymbolicExpressionTreeStringFormatter", "A string formatter for symbolic expression trees for external evaluation.")] 31 34 [StorableClass] 32 public class SymbolicExpressionTreeStringFormatter : NamedItem, ISymbolicExpressionTreeStringFormatter {35 public class ExternalEvaluationSymbolicExpressionTreeStringFormatter : NamedItem, ISymbolicExpressionTreeStringFormatter { 33 36 34 37 public bool Indent { get; set; } 35 38 36 39 [StorableConstructor] 37 protected SymbolicExpressionTreeStringFormatter(bool deserializing) : base(deserializing) { }38 protected SymbolicExpressionTreeStringFormatter(SymbolicExpressionTreeStringFormatter original, Cloner cloner)40 protected ExternalEvaluationSymbolicExpressionTreeStringFormatter(bool deserializing) : base(deserializing) { } 41 protected ExternalEvaluationSymbolicExpressionTreeStringFormatter(ExternalEvaluationSymbolicExpressionTreeStringFormatter original, Cloner cloner) 39 42 : base(original, cloner) { 40 43 Indent = original.Indent; 41 44 } 42 public SymbolicExpressionTreeStringFormatter()45 public ExternalEvaluationSymbolicExpressionTreeStringFormatter() 43 46 : base() { 44 Name = " Default StringFormatter";47 Name = "External Evaluation Symbolic Expression Tree Formatter"; 45 48 Indent = true; 46 49 } 47 50 48 51 public string Format(ISymbolicExpressionTree symbolicExpressionTree) { 49 return FormatRecursively(symbolicExpressionTree.Root, 0); 52 // skip root and start symbols 53 return FormatRecursively(symbolicExpressionTree.Root.GetSubtree(0).GetSubtree(0), 0); 50 54 } 51 55 … … 57 61 if (node.Subtrees.Count() > 0) { 58 62 // symbol on same line as '(' 59 strBuilder.AppendLine(node.ToString()); 63 if (node.Symbol is Addition) { 64 strBuilder.AppendLine("+"); 65 } else if (node.Symbol is And) { 66 strBuilder.AppendLine("&&"); 67 } else if (node.Symbol is Average) { 68 strBuilder.AppendLine("avg"); 69 } else if (node.Symbol is Cosine) { 70 strBuilder.AppendLine("cos"); 71 } else if (node.Symbol is Division) { 72 strBuilder.AppendLine("/"); 73 } else if (node.Symbol is Exponential) { 74 strBuilder.AppendLine("exp"); 75 } else if (node.Symbol is GreaterThan) { 76 strBuilder.AppendLine(">"); 77 } else if (node.Symbol is IfThenElse) { 78 strBuilder.AppendLine("if"); 79 } else if (node.Symbol is LessThan) { 80 strBuilder.AppendLine("<"); 81 } else if (node.Symbol is Logarithm) { 82 strBuilder.AppendLine("ln"); 83 } else if (node.Symbol is Multiplication) { 84 strBuilder.AppendLine("*"); 85 } else if (node.Symbol is Not) { 86 strBuilder.AppendLine("!"); 87 } else if (node.Symbol is Or) { 88 strBuilder.AppendLine("||"); 89 } else if (node.Symbol is Sine) { 90 strBuilder.AppendLine("sin"); 91 } else if (node.Symbol is Subtraction) { 92 strBuilder.AppendLine("-"); 93 } else if (node.Symbol is Tangent) { 94 strBuilder.AppendLine("tan"); 95 } else { 96 throw new NotSupportedException("Formatting of symbol: " + node.Symbol + " not supported for external evaluation."); 97 } 60 98 // each subtree expression on a new line 61 99 // and closing ')' also on new line 100 62 101 foreach (var subtree in node.Subtrees) { 63 102 strBuilder.AppendLine(FormatRecursively(subtree, indentLength + 2)); … … 66 105 strBuilder.Append(")"); 67 106 } else { 68 // symbol in the same line with as '(' and ')' 69 strBuilder.Append(node.ToString()); 70 strBuilder.Append(")"); 107 if (node is VariableTreeNode) { 108 var varNode = node as VariableTreeNode; 109 // symbol in the same line with as '(' and ')' 110 strBuilder.Append(";" + varNode.VariableName + ";" + varNode.Weight.ToString("E4")); 111 strBuilder.Append(")"); 112 } else if (node is ConstantTreeNode) { 113 var constNode = node as ConstantTreeNode; 114 // symbol in the same line with as '(' and ')' 115 strBuilder.Append(";" + constNode.Value.ToString("E4")); 116 strBuilder.Append(")"); 117 } else { 118 throw new NotSupportedException("Formatting of symbol: " + node.Symbol + " not supported for external evaluation."); 119 } 71 120 } 72 121 return strBuilder.ToString(); … … 74 123 75 124 public override IDeepCloneable Clone(Cloner cloner) { 76 return new SymbolicExpressionTreeStringFormatter(this, cloner);125 return new ExternalEvaluationSymbolicExpressionTreeStringFormatter(this, cloner); 77 126 } 78 127 } -
branches/DataAnalysis Refactoring/HeuristicLab.Problems.ExternalEvaluation.GP/3.4/HeuristicLab.Problems.ExternalEvaluation.GP-3.4.csproj
r5572 r5750 108 108 <ItemGroup> 109 109 <None Include="HeuristicLabProblemsExternalEvaluationGPPlugin.cs.frame" /> 110 <Compile Include="ExternalEvaluationExpressionGrammar.cs" /> 111 <Compile Include="ExternalEvaluationSymbolicExpressionTreeBinaryConverter.cs" /> 112 <Compile Include="ExternalEvaluationSymbolicExpressionTreeConverter.cs" /> 113 <Compile Include="ExternalEvaluationSymbolicExpressionTreeStringConverter.cs" /> 114 <Compile Include="ExternalEvaluationSymbolicExpressionTreeStringFormatter.cs" /> 110 115 <Compile Include="HeuristicLabProblemsExternalEvaluationGPPlugin.cs" /> 111 116 <Compile Include="Properties\AssemblyInfo.cs" /> 112 117 <None Include="Properties\AssemblyInfo.frame" /> 113 <Compile Include="SymbolicExpressionTreeBinaryConverter.cs" />114 <Compile Include="SymbolicExpressionTreeConverter.cs" />115 <Compile Include="SymbolicExpressionTreeStringConverter.cs" />116 118 </ItemGroup> 117 119 <ItemGroup> … … 147 149 <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project> 148 150 <Name>HeuristicLab.PluginInfrastructure-3.3</Name> 151 </ProjectReference> 152 <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj"> 153 <Project>{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}</Project> 154 <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name> 149 155 </ProjectReference> 150 156 <ProjectReference Include="..\..\HeuristicLab.Problems.ExternalEvaluation\3.3\HeuristicLab.Problems.ExternalEvaluation-3.3.csproj"> … … 176 182 <Install>true</Install> 177 183 </BootstrapperPackage> 184 </ItemGroup> 185 <ItemGroup> 186 <Content Include="ExternalEvaluationGrammar.txt" /> 178 187 </ItemGroup> 179 188 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> -
branches/DataAnalysis Refactoring/HeuristicLab/3.3/Files.txt
r5699 r5750 75 75 HeuristicLab.Problems.ExternalEvaluation.GP\3.4:HeuristicLab.Problems.ExternalEvaluation.GP-3.4.dll 76 76 HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.3:HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3.dll 77 HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.4:HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.4.dll78 77 HeuristicLab.Problems.Knapsack\3.3:HeuristicLab.Problems.Knapsack-3.3.dll 79 78 HeuristicLab.Problems.Knapsack.Views\3.3:HeuristicLab.Problems.Knapsack.Views-3.3.dll -
branches/DataAnalysis Refactoring/HeuristicLab/3.3/Tests/HeuristicLab-3.3.Tests.csproj
r5697 r5750 439 439 <Name>HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3</Name> 440 440 </ProjectReference> 441 <ProjectReference Include="..\..\..\HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.4\HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.4.csproj">442 <Project>{A0AF4D54-6A04-483E-A26D-97F8C1141526}</Project>443 <Name>HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.4</Name>444 </ProjectReference>445 441 <ProjectReference Include="..\..\..\HeuristicLab.Problems.ExternalEvaluation.GP\3.3\HeuristicLab.Problems.ExternalEvaluation.GP-3.3.csproj"> 446 442 <Project>{E86E215D-E3CE-4244-978D-555D4E17AC09}</Project>
Note: See TracChangeset
for help on using the changeset viewer.