Changeset 12832


Ignore:
Timestamp:
08/03/15 00:03:18 (6 years ago)
Author:
aballeit
Message:

#2283 limit parallelism

Location:
branches/HeuristicLab.Problems.GrammaticalOptimization
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml

    r12824 r12832  
    7373                <TextBlock Margin="2" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center">MaxIterations:</TextBlock>
    7474                <TextBox Name="TextBoxMaxIterations" Margin="2" Grid.Column="1" Grid.Row="1" Width="100" VerticalAlignment="Center" TextAlignment="Right" Text="{Binding MaxIterations}"></TextBox>
     75                <TextBlock Margin="2" Grid.Column="2" Grid.Row="1" VerticalAlignment="Center">MaxThreads:</TextBlock>
     76                <TextBox Name="MaxThreads" Margin="2" Grid.Column="3" Grid.Row="1" Width="100" VerticalAlignment="Center" TextAlignment="Right" Text="{Binding MaxThreads}"></TextBox>
    7577                <TextBlock Margin="2" Grid.Column="2" Grid.Row="0" VerticalAlignment="Center">MaxLen:</TextBlock>
    7678                <TextBox Name="TextBoxMaxLen" Margin="2" Grid.Column="3" Grid.Row="0" Width="100" VerticalAlignment="Center" TextAlignment="Right" Text="{Binding MaxLen}"></TextBox>
  • branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/MainWindow.xaml.cs

    r12830 r12832  
    33using System.Text;
    44using System.Threading;
     5using System.Threading.Tasks;
    56using System.Windows.Documents;
    67using System.Xml.Serialization;
     
    4546            vm.MaxIterations = 500000;
    4647            vm.NrRuns = 20;
     48            vm.MaxThreads = 5;
    4749        }
    4850
     
    126128                    //    File.WriteAllBytes(run.SvgFile, mctsSolver.GenerateSvg());
    127129                    //}
     130                    mctsSolver.FreeAll();
    128131                }
    129132            }
     
    183186            }
    184187
     188
     189
    185190            for (int i = 0; i < vm.NrRuns; i++)
    186191            {
     
    218223
    219224                vm.Runs.Add(run);
    220 
    221                 ThreadPool.QueueUserWorkItem(DoRun, run);
    222             }
     225            }
     226            Task.Run(() =>
     227                Parallel.For(0, vm.NrRuns, new ParallelOptions {MaxDegreeOfParallelism = vm.MaxThreads},
     228                    i => DoRun(vm.Runs[i])));
    223229        }
    224230
  • branches/HeuristicLab.Problems.GrammaticalOptimization/Evaluation/ViewModel/EvaluationViewModel.cs

    r12815 r12832  
    107107                this.maxIterations = value;
    108108                this.OnPropertyChanged("MaxIterations");
     109            }
     110        }
     111
     112        private int maxThreads;
     113
     114        public int MaxThreads
     115        {
     116            get { return this.maxThreads; }
     117            set
     118            {
     119                this.maxThreads = value;
     120                this.OnPropertyChanged("MaxThreads");
    109121            }
    110122        }
  • branches/HeuristicLab.Problems.GrammaticalOptimization/GrammaticalOptimization.sln

    r12830 r12832  
    104104  EndGlobalSection
    105105  GlobalSection(ProjectConfigurationPlatforms) = postSolution
    106     {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    107     {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|Any CPU.Build.0 = Debug|Any CPU
     106    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|Any CPU.ActiveCfg = Debug|x64
     107    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|Any CPU.Build.0 = Debug|x64
    108108    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|x64.ActiveCfg = Debug|x64
    109109    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Debug|x64.Build.0 = Debug|x64
     
    111111    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    112112    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Documentation|x64.ActiveCfg = Debug|Any CPU
    113     {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|Any CPU.ActiveCfg = Release|Any CPU
    114     {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|Any CPU.Build.0 = Release|Any CPU
     113    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|Any CPU.ActiveCfg = Release|x64
     114    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|Any CPU.Build.0 = Release|x64
    115115    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|x64.ActiveCfg = Release|x64
    116116    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.Release|x64.Build.0 = Release|x64
     
    118118    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    119119    {CB9DCCF6-667E-4A13-B82D-DBD6B45A045E}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    120     {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    121     {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
     120    {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|Any CPU.ActiveCfg = Debug|x64
     121    {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|Any CPU.Build.0 = Debug|x64
    122122    {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|x64.ActiveCfg = Debug|x64
    123123    {EEA07488-1A51-412A-A52C-53B754A628B3}.Debug|x64.Build.0 = Debug|x64
     
    125125    {EEA07488-1A51-412A-A52C-53B754A628B3}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    126126    {EEA07488-1A51-412A-A52C-53B754A628B3}.Documentation|x64.ActiveCfg = Debug|Any CPU
    127     {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
    128     {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|Any CPU.Build.0 = Release|Any CPU
     127    {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|Any CPU.ActiveCfg = Release|x64
     128    {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|Any CPU.Build.0 = Release|x64
    129129    {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|x64.ActiveCfg = Release|x64
    130130    {EEA07488-1A51-412A-A52C-53B754A628B3}.Release|x64.Build.0 = Release|x64
     
    132132    {EEA07488-1A51-412A-A52C-53B754A628B3}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    133133    {EEA07488-1A51-412A-A52C-53B754A628B3}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    134     {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    135     {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|Any CPU.Build.0 = Debug|Any CPU
     134    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|Any CPU.ActiveCfg = Debug|x64
     135    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|Any CPU.Build.0 = Debug|x64
    136136    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|x64.ActiveCfg = Debug|x64
    137137    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Debug|x64.Build.0 = Debug|x64
     
    139139    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    140140    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Documentation|x64.ActiveCfg = Debug|Any CPU
    141     {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|Any CPU.ActiveCfg = Release|Any CPU
    142     {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|Any CPU.Build.0 = Release|Any CPU
     141    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|Any CPU.ActiveCfg = Release|x64
     142    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|Any CPU.Build.0 = Release|x64
    143143    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|x64.ActiveCfg = Release|x64
    144144    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.Release|x64.Build.0 = Release|x64
     
    146146    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    147147    {524CBD70-6F99-46AF-AD00-A0BC9FD1175B}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    148     {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    149     {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|Any CPU.Build.0 = Debug|Any CPU
     148    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|Any CPU.ActiveCfg = Debug|x64
     149    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|Any CPU.Build.0 = Debug|x64
    150150    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|x64.ActiveCfg = Debug|x64
    151151    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Debug|x64.Build.0 = Debug|x64
     
    153153    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    154154    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Documentation|x64.ActiveCfg = Debug|Any CPU
    155     {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|Any CPU.ActiveCfg = Release|Any CPU
    156     {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|Any CPU.Build.0 = Release|Any CPU
     155    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|Any CPU.ActiveCfg = Release|x64
     156    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|Any CPU.Build.0 = Release|x64
    157157    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|x64.ActiveCfg = Release|x64
    158158    {24408F7D-EE0F-4886-A08B-EC324D662E47}.Release|x64.Build.0 = Release|x64
     
    160160    {24408F7D-EE0F-4886-A08B-EC324D662E47}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    161161    {24408F7D-EE0F-4886-A08B-EC324D662E47}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    162     {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    163     {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
     162    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|Any CPU.ActiveCfg = Debug|x64
     163    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|Any CPU.Build.0 = Debug|x64
    164164    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|x64.ActiveCfg = Debug|x64
    165165    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Debug|x64.Build.0 = Debug|x64
     
    167167    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    168168    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Documentation|x64.ActiveCfg = Debug|Any CPU
    169     {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
    170     {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|Any CPU.Build.0 = Release|Any CPU
     169    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|Any CPU.ActiveCfg = Release|x64
     170    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|Any CPU.Build.0 = Release|x64
    171171    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|x64.ActiveCfg = Release|x64
    172172    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.Release|x64.Build.0 = Release|x64
     
    174174    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    175175    {3A2FBBCB-F9DF-4970-87F3-F13337D941AD}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    176     {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    177     {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
     176    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|Any CPU.ActiveCfg = Debug|x64
     177    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|Any CPU.Build.0 = Debug|x64
    178178    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|x64.ActiveCfg = Debug|x64
    179179    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Debug|x64.Build.0 = Debug|x64
     
    181181    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    182182    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Documentation|x64.ActiveCfg = Debug|Any CPU
    183     {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
    184     {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|Any CPU.Build.0 = Release|Any CPU
     183    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|Any CPU.ActiveCfg = Release|x64
     184    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|Any CPU.Build.0 = Release|x64
    185185    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|x64.ActiveCfg = Release|x64
    186186    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.Release|x64.Build.0 = Release|x64
     
    188188    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    189189    {17A7A380-86CE-482D-8D22-CBD70CC97F0D}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    190     {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    191     {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|Any CPU.Build.0 = Debug|Any CPU
     190    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|Any CPU.ActiveCfg = Debug|x64
     191    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|Any CPU.Build.0 = Debug|x64
    192192    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|x64.ActiveCfg = Debug|x64
    193193    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Debug|x64.Build.0 = Debug|x64
     
    195195    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    196196    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Documentation|x64.ActiveCfg = Debug|Any CPU
    197     {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|Any CPU.ActiveCfg = Release|Any CPU
    198     {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|Any CPU.Build.0 = Release|Any CPU
     197    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|Any CPU.ActiveCfg = Release|x64
     198    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|Any CPU.Build.0 = Release|x64
    199199    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|x64.ActiveCfg = Release|x64
    200200    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.Release|x64.Build.0 = Release|x64
     
    202202    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    203203    {14BEC23F-63FD-4954-B8AE-E2F4962E9B57}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    204     {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    205     {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
     204    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|Any CPU.ActiveCfg = Debug|x64
     205    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|Any CPU.Build.0 = Debug|x64
    206206    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|x64.ActiveCfg = Debug|x64
    207207    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Debug|x64.Build.0 = Debug|x64
     
    209209    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    210210    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Documentation|x64.ActiveCfg = Debug|Any CPU
    211     {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
    212     {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|Any CPU.Build.0 = Release|Any CPU
     211    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|Any CPU.ActiveCfg = Release|x64
     212    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|Any CPU.Build.0 = Release|x64
    213213    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|x64.ActiveCfg = Release|x64
    214214    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.Release|x64.Build.0 = Release|x64
     
    216216    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    217217    {31171165-E16F-4A1A-A8AB-25C6AB3A71B9}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    218     {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    219     {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|Any CPU.Build.0 = Debug|Any CPU
     218    {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|Any CPU.ActiveCfg = Debug|x64
     219    {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|Any CPU.Build.0 = Debug|x64
    220220    {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|x64.ActiveCfg = Debug|x64
    221221    {E8138227-0C64-4E85-B676-21D3B97F254F}.Debug|x64.Build.0 = Debug|x64
     
    223223    {E8138227-0C64-4E85-B676-21D3B97F254F}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    224224    {E8138227-0C64-4E85-B676-21D3B97F254F}.Documentation|x64.ActiveCfg = Debug|Any CPU
    225     {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|Any CPU.ActiveCfg = Release|Any CPU
    226     {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|Any CPU.Build.0 = Release|Any CPU
     225    {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|Any CPU.ActiveCfg = Release|x64
     226    {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|Any CPU.Build.0 = Release|x64
    227227    {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|x64.ActiveCfg = Release|x64
    228228    {E8138227-0C64-4E85-B676-21D3B97F254F}.Release|x64.Build.0 = Release|x64
     
    230230    {E8138227-0C64-4E85-B676-21D3B97F254F}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    231231    {E8138227-0C64-4E85-B676-21D3B97F254F}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    232     {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    233     {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|Any CPU.Build.0 = Debug|Any CPU
     232    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|Any CPU.ActiveCfg = Debug|x64
     233    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|Any CPU.Build.0 = Debug|x64
    234234    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|x64.ActiveCfg = Debug|x64
    235235    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Debug|x64.Build.0 = Debug|x64
     
    237237    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    238238    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Documentation|x64.ActiveCfg = Debug|Any CPU
    239     {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|Any CPU.ActiveCfg = Release|Any CPU
    240     {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|Any CPU.Build.0 = Release|Any CPU
     239    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|Any CPU.ActiveCfg = Release|x64
     240    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|Any CPU.Build.0 = Release|x64
    241241    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|x64.ActiveCfg = Release|x64
    242242    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.Release|x64.Build.0 = Release|x64
     
    244244    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    245245    {8B4C199E-C08B-479E-9B82-6AE5B113459E}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    246     {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    247     {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
     246    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|Any CPU.ActiveCfg = Debug|x64
     247    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|Any CPU.Build.0 = Debug|x64
    248248    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|x64.ActiveCfg = Debug|x64
    249249    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Debug|x64.Build.0 = Debug|x64
     
    251251    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    252252    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Documentation|x64.ActiveCfg = Debug|Any CPU
    253     {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
    254     {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|Any CPU.Build.0 = Release|Any CPU
     253    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|Any CPU.ActiveCfg = Release|x64
     254    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|Any CPU.Build.0 = Release|x64
    255255    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|x64.ActiveCfg = Release|x64
    256256    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.Release|x64.Build.0 = Release|x64
     
    258258    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    259259    {2C115235-8FA9-4F7F-B3A0-A0144F8A35CA}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    260     {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    261     {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|Any CPU.Build.0 = Debug|Any CPU
     260    {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|Any CPU.ActiveCfg = Debug|x64
     261    {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|Any CPU.Build.0 = Debug|x64
    262262    {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|x64.ActiveCfg = Debug|x64
    263263    {D043325A-097F-4512-A8FC-CF706577FA46}.Debug|x64.Build.0 = Debug|x64
     
    265265    {D043325A-097F-4512-A8FC-CF706577FA46}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    266266    {D043325A-097F-4512-A8FC-CF706577FA46}.Documentation|x64.ActiveCfg = Debug|Any CPU
    267     {D043325A-097F-4512-A8FC-CF706577FA46}.Release|Any CPU.ActiveCfg = Release|Any CPU
    268     {D043325A-097F-4512-A8FC-CF706577FA46}.Release|Any CPU.Build.0 = Release|Any CPU
     267    {D043325A-097F-4512-A8FC-CF706577FA46}.Release|Any CPU.ActiveCfg = Release|x64
     268    {D043325A-097F-4512-A8FC-CF706577FA46}.Release|Any CPU.Build.0 = Release|x64
    269269    {D043325A-097F-4512-A8FC-CF706577FA46}.Release|x64.ActiveCfg = Release|x64
    270270    {D043325A-097F-4512-A8FC-CF706577FA46}.Release|x64.Build.0 = Release|x64
     
    272272    {D043325A-097F-4512-A8FC-CF706577FA46}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    273273    {D043325A-097F-4512-A8FC-CF706577FA46}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    274     {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    275     {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
     274    {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|Any CPU.ActiveCfg = Debug|x64
     275    {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|Any CPU.Build.0 = Debug|x64
    276276    {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|x64.ActiveCfg = Debug|x64
    277277    {ECD37682-DF7E-409F-912D-0965634556B5}.Debug|x64.Build.0 = Debug|x64
     
    280280    {ECD37682-DF7E-409F-912D-0965634556B5}.Documentation|x64.ActiveCfg = Debug|x64
    281281    {ECD37682-DF7E-409F-912D-0965634556B5}.Documentation|x64.Build.0 = Debug|x64
    282     {ECD37682-DF7E-409F-912D-0965634556B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
    283     {ECD37682-DF7E-409F-912D-0965634556B5}.Release|Any CPU.Build.0 = Release|Any CPU
     282    {ECD37682-DF7E-409F-912D-0965634556B5}.Release|Any CPU.ActiveCfg = Release|x64
     283    {ECD37682-DF7E-409F-912D-0965634556B5}.Release|Any CPU.Build.0 = Release|x64
    284284    {ECD37682-DF7E-409F-912D-0965634556B5}.Release|x64.ActiveCfg = Release|x64
    285285    {ECD37682-DF7E-409F-912D-0965634556B5}.Release|x64.Build.0 = Release|x64
     
    288288    {ECD37682-DF7E-409F-912D-0965634556B5}.ReleaseXBAP|x64.ActiveCfg = ReleaseXBAP|x64
    289289    {ECD37682-DF7E-409F-912D-0965634556B5}.ReleaseXBAP|x64.Build.0 = ReleaseXBAP|x64
    290     {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    291     {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
     290    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|Any CPU.ActiveCfg = Debug|x64
     291    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|Any CPU.Build.0 = Debug|x64
    292292    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|x64.ActiveCfg = Debug|x64
    293293    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Debug|x64.Build.0 = Debug|x64
     
    295295    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    296296    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Documentation|x64.ActiveCfg = Debug|Any CPU
    297     {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
    298     {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|Any CPU.Build.0 = Release|Any CPU
     297    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|Any CPU.ActiveCfg = Release|x64
     298    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|Any CPU.Build.0 = Release|x64
    299299    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|x64.ActiveCfg = Release|x64
    300300    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.Release|x64.Build.0 = Release|x64
     
    302302    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    303303    {CFEC60DC-14E0-47E4-A60E-8919FB5FEF5D}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    304     {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    305     {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|Any CPU.Build.0 = Debug|Any CPU
     304    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|Any CPU.ActiveCfg = Debug|x64
     305    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|Any CPU.Build.0 = Debug|x64
    306306    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|x64.ActiveCfg = Debug|x64
    307307    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Debug|x64.Build.0 = Debug|x64
     
    309309    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    310310    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Documentation|x64.ActiveCfg = Debug|Any CPU
    311     {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|Any CPU.ActiveCfg = Release|Any CPU
    312     {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|Any CPU.Build.0 = Release|Any CPU
     311    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|Any CPU.ActiveCfg = Release|x64
     312    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|Any CPU.Build.0 = Release|x64
    313313    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|x64.ActiveCfg = Release|x64
    314314    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.Release|x64.Build.0 = Release|x64
     
    316316    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    317317    {E8056611-E49C-4BC3-A682-A629D5CEC11C}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    318     {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    319     {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|Any CPU.Build.0 = Debug|Any CPU
     318    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|Any CPU.ActiveCfg = Debug|x64
     319    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|Any CPU.Build.0 = Debug|x64
    320320    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|x64.ActiveCfg = Debug|x64
    321321    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Debug|x64.Build.0 = Debug|x64
     
    323323    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    324324    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    325     {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|Any CPU.ActiveCfg = Release|Any CPU
    326     {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|Any CPU.Build.0 = Release|Any CPU
     325    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|Any CPU.ActiveCfg = Release|x64
     326    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|Any CPU.Build.0 = Release|x64
    327327    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|x64.ActiveCfg = Release|x64
    328328    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.Release|x64.Build.0 = Release|x64
     
    330330    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    331331    {D6BB65FC-240E-4241-B2ED-A7FB3F13E978}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    332     {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    333     {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
     332    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|Any CPU.ActiveCfg = Debug|x64
     333    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|Any CPU.Build.0 = Debug|x64
    334334    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|x64.ActiveCfg = Debug|x64
    335335    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Debug|x64.Build.0 = Debug|x64
     
    337337    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    338338    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    339     {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
    340     {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|Any CPU.Build.0 = Release|Any CPU
     339    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|Any CPU.ActiveCfg = Release|x64
     340    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|Any CPU.Build.0 = Release|x64
    341341    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|x64.ActiveCfg = Release|x64
    342342    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.Release|x64.Build.0 = Release|x64
     
    344344    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    345345    {351B0A6E-2F6B-497A-844B-DCB5A502FB0D}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    346     {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    347     {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|Any CPU.Build.0 = Debug|Any CPU
     346    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|Any CPU.ActiveCfg = Debug|x64
     347    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|Any CPU.Build.0 = Debug|x64
    348348    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|x64.ActiveCfg = Debug|x64
    349349    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Debug|x64.Build.0 = Debug|x64
     
    351351    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    352352    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    353     {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|Any CPU.ActiveCfg = Release|Any CPU
    354     {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|Any CPU.Build.0 = Release|Any CPU
     353    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|Any CPU.ActiveCfg = Release|x64
     354    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|Any CPU.Build.0 = Release|x64
    355355    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|x64.ActiveCfg = Release|x64
    356356    {FE34CBC0-D23C-4A95-BA64-83A031814010}.Release|x64.Build.0 = Release|x64
     
    358358    {FE34CBC0-D23C-4A95-BA64-83A031814010}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    359359    {FE34CBC0-D23C-4A95-BA64-83A031814010}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    360     {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    361     {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|Any CPU.Build.0 = Debug|Any CPU
     360    {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|Any CPU.ActiveCfg = Debug|x64
     361    {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|Any CPU.Build.0 = Debug|x64
    362362    {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|x64.ActiveCfg = Debug|x64
    363363    {5D336F48-3FB9-4382-B4B9-06974C764007}.Debug|x64.Build.0 = Debug|x64
     
    365365    {5D336F48-3FB9-4382-B4B9-06974C764007}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    366366    {5D336F48-3FB9-4382-B4B9-06974C764007}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    367     {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|Any CPU.ActiveCfg = Release|Any CPU
    368     {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|Any CPU.Build.0 = Release|Any CPU
     367    {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|Any CPU.ActiveCfg = Release|x64
     368    {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|Any CPU.Build.0 = Release|x64
    369369    {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|x64.ActiveCfg = Release|x64
    370370    {5D336F48-3FB9-4382-B4B9-06974C764007}.Release|x64.Build.0 = Release|x64
     
    372372    {5D336F48-3FB9-4382-B4B9-06974C764007}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    373373    {5D336F48-3FB9-4382-B4B9-06974C764007}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    374     {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    375     {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
     374    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|Any CPU.ActiveCfg = Debug|x64
     375    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|Any CPU.Build.0 = Debug|x64
    376376    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|x64.ActiveCfg = Debug|x64
    377377    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Debug|x64.Build.0 = Debug|x64
     
    379379    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    380380    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    381     {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
    382     {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|Any CPU.Build.0 = Release|Any CPU
     381    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|Any CPU.ActiveCfg = Release|x64
     382    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|Any CPU.Build.0 = Release|x64
    383383    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|x64.ActiveCfg = Release|x64
    384384    {0AD99D97-24ED-484D-9430-9905811F8A4F}.Release|x64.Build.0 = Release|x64
     
    386386    {0AD99D97-24ED-484D-9430-9905811F8A4F}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    387387    {0AD99D97-24ED-484D-9430-9905811F8A4F}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    388     {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    389     {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|Any CPU.Build.0 = Debug|Any CPU
     388    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|Any CPU.ActiveCfg = Debug|x64
     389    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|Any CPU.Build.0 = Debug|x64
    390390    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|x64.ActiveCfg = Debug|x64
    391391    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Debug|x64.Build.0 = Debug|x64
     
    393393    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
    394394    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Documentation|x64.ActiveCfg = Documentation|Any CPU
    395     {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|Any CPU.ActiveCfg = Release|Any CPU
    396     {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|Any CPU.Build.0 = Release|Any CPU
     395    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|Any CPU.ActiveCfg = Release|x64
     396    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|Any CPU.Build.0 = Release|x64
    397397    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|x64.ActiveCfg = Release|x64
    398398    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.Release|x64.Build.0 = Release|x64
     
    400400    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    401401    {A2576CE0-E492-490F-97E9-C0E7ABAFAF27}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    402     {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    403     {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|Any CPU.Build.0 = Debug|Any CPU
     402    {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|Any CPU.ActiveCfg = Debug|x64
     403    {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|Any CPU.Build.0 = Debug|x64
    404404    {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|x64.ActiveCfg = Debug|x64
    405405    {2CD52982-A1C2-4A14-9D69-D64719357216}.Debug|x64.Build.0 = Debug|x64
     
    407407    {2CD52982-A1C2-4A14-9D69-D64719357216}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    408408    {2CD52982-A1C2-4A14-9D69-D64719357216}.Documentation|x64.ActiveCfg = Debug|Any CPU
    409     {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|Any CPU.ActiveCfg = Release|Any CPU
    410     {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|Any CPU.Build.0 = Release|Any CPU
     409    {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|Any CPU.ActiveCfg = Release|x64
     410    {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|Any CPU.Build.0 = Release|x64
    411411    {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|x64.ActiveCfg = Release|x64
    412412    {2CD52982-A1C2-4A14-9D69-D64719357216}.Release|x64.Build.0 = Release|x64
     
    414414    {2CD52982-A1C2-4A14-9D69-D64719357216}.ReleaseXBAP|Any CPU.Build.0 = Release|Any CPU
    415415    {2CD52982-A1C2-4A14-9D69-D64719357216}.ReleaseXBAP|x64.ActiveCfg = Release|Any CPU
    416     {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    417     {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
     416    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|Any CPU.ActiveCfg = Debug|x64
     417    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|Any CPU.Build.0 = Debug|x64
    418418    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|x64.ActiveCfg = Debug|x64
    419419    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Debug|x64.Build.0 = Debug|x64
     
    421421    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Documentation|Any CPU.Build.0 = Debug|Any CPU
    422422    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Documentation|x64.ActiveCfg = Debug|Any CPU
    423     {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
    424     {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|Any CPU.Build.0 = Release|Any CPU
     423    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|Any CPU.ActiveCfg = Release|x64
     424    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|Any CPU.Build.0 = Release|x64
    425425    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|x64.ActiveCfg = Release|x64
    426426    {514A1E9D-0900-46A5-8073-F3C9CB2AAEE3}.Release|x64.Build.0 = Release|x64
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/Base/TreeNode.cs

    r12762 r12832  
    1414        public string phrase;
    1515        public TreeNode parent;
    16         public List<TreeNode> children;
     16        public TreeNode[] children;
    1717        public IBanditPolicyActionInfo actionInfo;
    18         public int level;
     18        public ushort level;
    1919
    20         public TreeNode(TreeNode parent, string phrase, IBanditPolicyActionInfo actionInfo, int level)
     20        public TreeNode(TreeNode parent, string phrase, IBanditPolicyActionInfo actionInfo, ushort level)
    2121        {
    2222            this.parent = parent;
     
    3434            return children.Select(n => n.actionInfo);
    3535        }
     36
     37        internal void RemoveChildren(TreeNode currentNode)
     38        {
     39            TreeNode[] newChildren = new TreeNode[children.Length-1];
     40            int counter = 0;
     41            for (int i = 0; i < children.Length; i++)
     42            {
     43                if (children[i] != currentNode)
     44                {
     45                    newChildren[counter] = children[i];
     46                    counter++;
     47                }
     48            }
     49            children = newChildren;
     50        }
    3651    }
    3752}
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch.cs

    r12829 r12832  
    120120            if (treeNode.children == null)
    121121            {
    122                 treeNode.children = new List<TreeNode>();
     122                List<TreeNode> newChildren = new List<TreeNode>();
    123123
    124124                var phrase = new Sequence(treeNode.phrase);
     
    137137                            {
    138138                                childNode = new TreeNode(treeNode, newSequence.ToString(),
    139                                     behaviourPolicy.CreateActionInfo(), treeNode.level + 1);
    140                                 treeNode.children.Add(childNode);
     139                                    behaviourPolicy.CreateActionInfo(), (ushort) (treeNode.level + 1));
     140                                newChildren.Add(childNode);
    141141                            }
    142142                        }
    143143                    }
    144144                }
     145                treeNode.children = newChildren.ToArray();
    145146            }
    146147        }
     
    164165        }
    165166
    166         private void GetTreeInfosRek(TreeInfos treeInfos, List<TreeNode> children)
    167         {
    168             treeInfos.TotalNodes += children.Count;
     167        private void GetTreeInfosRek(TreeInfos treeInfos, TreeNode[] children)
     168        {
     169            treeInfos.TotalNodes += children.Length;
    169170            foreach (TreeNode child in children)
    170171            {
     
    342343            return HexConverter(Color.FromArgb(newR, newG, newB));
    343344        }
     345
     346        public void FreeAll()
     347        {
     348            rootNode = null;
     349            GC.Collect();
     350        }
    344351    }
    345352}
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.MonteCarloTreeSearch/MonteCarloTreeSearch_PruneLeaves.cs

    r12829 r12832  
    4747                    {
    4848                        // already removed all child nodes so remove it too..
    49                         currentNode.parent.children.Remove(currentNode);
     49                        currentNode.parent.RemoveChildren(currentNode);
    5050                        continue;
    5151                    }
     
    6363                        // Version 2:
    6464                        // remove currentNode from tree..
    65                         currentNode.parent.children.Remove(currentNode);
     65                        currentNode.parent.RemoveChildren(currentNode);
    6666                    }
    6767                }
Note: See TracChangeset for help on using the changeset viewer.