Index: branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml	(revision 13492)
@@ -115,5 +115,5 @@
                                         <d3:Header Content="Quality-Chart"/>
                                         <d3:VerticalAxisTitle Content="Qualität" />
-                                        <d3:HorizontalAxisTitle Content="Evaluierungen"/>
+                                        <d3:HorizontalAxisTitle Content="Iterationen"/>
                                     </d3:ChartPlotter>
                                 </Grid>
@@ -130,5 +130,5 @@
                                     <d3:ChartPlotter Grid.Column="1" x:Name="SelectionChartPlotter" LegendVisible="False" EnableSmoothPanningForNumericAxes="True" >
                                         <d3:VerticalAxisTitle Content="Qualität" />
-                                        <d3:HorizontalAxisTitle Content="Evaluierungen"/>
+                                        <d3:HorizontalAxisTitle Content="Iterationen"/>
                                     </d3:ChartPlotter>
                                 </Grid>
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml.cs	(revision 13492)
@@ -142,10 +142,10 @@
                     run.TreeInfos = mctsSolver.GetTreeInfos();
 
-                    //byte[] output = mctsSolver.GenerateSvg();
-                    //if (output != null && output.Length > 0)
-                    //{
-                    //    run.SvgFile = string.Format("MCTS_SVG_#{0}_{1}.svg", run.RunNumber, DateTime.Now.Ticks);
-                    //    File.WriteAllBytes(run.SvgFile, mctsSolver.GenerateSvg());
-                    //}
+                    byte[] output = mctsSolver.GenerateSvg();
+                    if (output != null && output.Length > 0)
+                    {
+                        run.SvgFile = string.Format("MCTS_SVG_#{0}_{1}.svg", run.RunNumber, DateTime.Now.Ticks);
+                        File.WriteAllBytes(run.SvgFile, mctsSolver.GenerateSvg());
+                    }
                     mctsSolver.FreeAll();
                 }
@@ -192,5 +192,5 @@
             if (policy == typeof(UCTPolicy))
             {
-                policyInstance = new UCTPolicy();
+                policyInstance = new UCTPolicy(vm.Epsylon);
             }
             else if (policy == typeof(ThresholdAscentPolicy))
@@ -457,4 +457,13 @@
             {
                 TextBoxEpsylon.Visibility = Visibility.Visible;
+                TextBoxEpsylon.Text = Math.Sqrt(1).ToString();
+                TextBlockEpsylon.Text = "Epsylon";
+                TextBlockEpsylon.Visibility = Visibility.Visible;
+            }
+            else if (vm.SelectedPolicy == typeof (UCTPolicy))
+            {
+                TextBoxEpsylon.Visibility = Visibility.Visible;
+                TextBoxEpsylon.Text = Math.Sqrt(2).ToString();
+                TextBlockEpsylon.Text = "c";
                 TextBlockEpsylon.Visibility = Visibility.Visible;
             }
@@ -468,24 +477,22 @@
         private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
         {
-            if (ChartSelector.SelectedItem == TabSelectionIndicator)
-            {
-                if (vm.SelectedRun != null)
-                {
-                    if (vm.SelectedRun.RunState == RunState.Finished)
-                    {
-                        ClearSelectionChart();
-                        DrawSelectionChart(vm.SelectedRun);
-                    }
-                }
-            }
-            else if (ChartSelector.SelectedItem == TabQualityChart)
-            {
-                if (vm.SelectedRun != null)
-                {
-                    if (vm.SelectedRun.RunState == RunState.Finished)
-                    {
-                        ClearQualityChart();
-                        DrawQualityChart(vm.SelectedRun);
-                    }
+            if (vm.SelectedRun != null && vm.SelectedRun.RunState == RunState.Finished)
+            {
+
+                if (ChartSelector.SelectedItem == TabSelectionIndicator)
+                {
+
+                    ClearSelectionChart();
+                    DrawSelectionChart(vm.SelectedRun);
+                }
+                else if (ChartSelector.SelectedItem == TabQualityChart)
+                {
+
+                    ClearQualityChart();
+                    DrawQualityChart(vm.SelectedRun);
+                }
+                else if (ChartSelector.SelectedItem == TabItemTree)
+                {
+                    DrawTreeChart(vm.SelectedRun);
                 }
             }
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.Bandits/Policies/UCTPolicy.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.Bandits/Policies/UCTPolicy.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.Bandits/Policies/UCTPolicy.cs	(revision 13492)
@@ -12,5 +12,7 @@
     private readonly double c;
 
-    public UCTPolicy(double c = 1.0) {
+      // c = sqrt(2)
+    public UCTPolicy(double c = 1.41421356237)
+    {
       this.c = c;
     }
@@ -30,5 +32,5 @@
           q = double.PositiveInfinity;
         } else {
-            q = aInfo.SumReward / aInfo.Tries + 2.0 * c * Math.Sqrt(Math.Log(totalTries) / aInfo.Tries);
+            q = aInfo.SumReward / aInfo.Tries + c * Math.Sqrt(Math.Log(totalTries) / aInfo.Tries);
         }
         if (q > bestQ) {
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GeneticProgramming/StandardGP.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GeneticProgramming/StandardGP.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GeneticProgramming/StandardGP.cs	(revision 13492)
@@ -30,6 +30,6 @@
       PopulationSize = 1000;
       TournamentGroupSize = 4;
-      MutationRate = 0.15;
-      MaxSolutionSize = 201;
+      MutationRate = 0.05;
+      MaxSolutionSize = 40;
       MaxSolutionDepth = 17;
       this.saveAlg = saveAlg;
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/Base/TreeNode.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/Base/TreeNode.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/Base/TreeNode.cs	(revision 13492)
@@ -1,10 +1,5 @@
-﻿using System;
+﻿using HeuristicLab.Algorithms.Bandits;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using HeuristicLab.Algorithms.Bandits;
-using HeuristicLab.Algorithms.Bandits.BanditPolicies;
-using HeuristicLab.Problems.GrammaticalOptimization;
 
 namespace HeuristicLab.Algorithms.MonteCarloTreeSearch.Base
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch.cs	(revision 13492)
@@ -86,6 +86,6 @@
                         currentNode.GetChildActionInfos());
                     currentNode = currentNode.children[currentActionIndex];
-                    selections++;
-                    CheckSelection(currentNode, selections);
+                    //selections++;
+                    //CheckSelection(currentNode, selections);
                 }
 
@@ -98,6 +98,6 @@
                         currentNode.children[behaviourPolicy.SelectAction(random, currentNode.GetChildActionInfos())
                             ];
-                    selections++;
-                    CheckSelection(currentNode, selections);
+                    //selections++;
+                    //CheckSelection(currentNode, selections);
                 }
                 if (currentNode.phrase.Length <= maxLen)
@@ -223,5 +223,5 @@
         public byte[] GenerateSvg()
         {
-            if (GetTreeInfos().TotalNodes < 1000)
+            if (GetTreeInfos().TotalNodes < 6000)
             {
                 IGetStartProcessQuery getStartProcessQuery = new GetStartProcessQuery();
@@ -233,5 +233,5 @@
                     getProcessStartInfoQuery,
                     registerLayoutPluginCommand);
-                wrapper.GraphvizPath = @"../../../Graphviz2.38/bin";
+                wrapper.GraphvizPath = @"../../../../Graphviz2.38/bin";
                 StringBuilder dotFile = new StringBuilder("digraph {");
                 dotFile.AppendLine();
@@ -279,15 +279,20 @@
                         foreach (TreeNode childNode in currentNode.children)
                         {
-                            toDoNodes.Add(childNode);
-                            // declare node
-
-                            string hexColor = GetHexNodeColor(Color.White, Color.OrangeRed, childNode.actionInfo.Value);
-                            dotFile.AppendLine(
-                                string.Format("{0} [label=\"{1}\\n{2:0.00}/{3}\", style=filled, fillcolor=\"{4}\"]",
-                                    childNode.GetHashCode(),
-                                    childNode.phrase, childNode.actionInfo.Value, childNode.actionInfo.Tries, hexColor));
-                            // add edge
-                            dotFile.AppendLine(string.Format("{0} -> {1}", currentNode.GetHashCode(),
-                                childNode.GetHashCode()));
+                            if (childNode.actionInfo.Tries > 1)
+                            {
+                                toDoNodes.Add(childNode);
+                                // declare node
+
+                                string hexColor = GetHexNodeColor(Color.White, Color.OrangeRed,
+                                    childNode.actionInfo.Value);
+                                dotFile.AppendLine(
+                                    string.Format("{0} [label=\"{1}\\n{2:0.00}/{3}\", style=filled, fillcolor=\"{4}\"]",
+                                        childNode.GetHashCode(),
+                                        childNode.phrase, childNode.actionInfo.Value, childNode.actionInfo.Tries,
+                                        hexColor));
+                                // add edge
+                                dotFile.AppendLine(string.Format("{0} -> {1}", currentNode.GetHashCode(),
+                                    childNode.GetHashCode()));
+                            }
                         }
                     }
Index: branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch_PruneLeaves.cs
===================================================================
--- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch_PruneLeaves.cs	(revision 13485)
+++ branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch_PruneLeaves.cs	(revision 13492)
@@ -48,4 +48,5 @@
                         // already removed all child nodes so remove it too..
                         currentNode.parent.RemoveChildren(currentNode);
+                        i--;
                         continue;
                     }
@@ -75,4 +76,9 @@
                     Propagate(currentNode, quality);
                 }
+                else
+                {
+                    i--;
+
+                }
             }
         }
