using System; using System.IO; using System.Linq; using System.Reflection; using System.Threading; using HeuristicLab.Algorithms.GeneticAlgorithm; using HeuristicLab.Clients.Hive; using HeuristicLab.Common; using HeuristicLab.Core; using HeuristicLab.PluginInfrastructure; using HeuristicLab.PluginInfrastructure.Manager; using HeuristicLab.Problems.TestFunctions; using HeuristicLab.Clients.Hive.Jobs; using HeuristicLab.Optimization; namespace HeuristicLab.HiveEngine.Test { public class Program { static void Main(string[] args) { PluginManager pm = new PluginManager(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); pm.DiscoverAndCheckPlugins(); pm.Run(pm.Applications.Where(x => x.Name == "HeuristicLab.HiveEngine.Test").SingleOrDefault()); } } [Plugin("HeuristicLab.HiveEngine.Test", "1.0.0.0")] [PluginFile("HeuristicLab.HiveEngine.Test.exe", PluginFileType.Assembly)] public class TestPlugin : PluginBase { } [Application("HeuristicLab.HiveEngine.Test")] public class TestApp : ApplicationBase { public override void Run() { ContentManager.Initialize(new PersistenceContentManager()); OptimizerJob job = new OptimizerJob(new Experiment()); job.IndexInParentOptimizerList = 15; byte[] data = PersistenceUtil.Serialize(job); var job2 = PersistenceUtil.Deserialize(data); #region Credentials ServiceLocator.Instance.Username = "cneumuel"; ServiceLocator.Instance.Password = "YouWillNeverKnow"; #endregion GeneticAlgorithm ga = new GeneticAlgorithm(); ga.Problem = new SingleObjectiveTestFunctionProblem(); ga.Engine = new HiveEngine(); ga.PopulationSize.Value = 3; ga.MaximumGenerations.Value = 3; //var plugins = new List(); //IEnumerable types; //PersistenceUtil.Serialize(ga, out types); //PluginUtil.CollectDeclaringPlugins(plugins, types); ga.Start(); while (ga.ExecutionState != Core.ExecutionState.Stopped && ga.ExecutionState != Core.ExecutionState.Paused) { Thread.Sleep(2000); Console.Clear(); Console.WriteLine(string.Join(Environment.NewLine, ga.Results.Select(x => x.ToString()).ToArray())); Console.WriteLine("---"); Console.WriteLine("Log:"); Console.WriteLine(string.Join(Environment.NewLine, ga.Engine.Log.Messages.ToArray())); } Console.WriteLine("finished: " + ga.ExecutionState); Console.WriteLine("Storing..."); ContentManager.Save((IStorableContent)ga, string.Format("result_{0}.hl", DateTime.Now.ToString("yy.MM.dd HH;mm;ss")), true); Console.WriteLine("Finished"); Console.ReadLine(); } } }