Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/31/17 16:54:03 (7 years ago)
Author:
jkarder
Message:

#2205: worked on optimization networks

  • added variegation problem for minimization and maximization
  • refactored some classes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratedAlgorithmNode.cs

    r14624 r14628  
    6565    [StorableConstructor]
    6666    protected OrchestratedAlgorithmNode(bool deserializing) : base(deserializing) { }
    67     protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner)
    68       : base(original, cloner) {
     67    protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner) : base(original, cloner) {
    6968      EvalHook = cloner.Clone(original.EvalHook);
    7069      RegisterEvents();
    7170    }
    7271    public OrchestratedAlgorithmNode() : this("OrchestratedAlgorithmNode") { }
    73     public OrchestratedAlgorithmNode(string name)
    74       : base(name) {
     72    public OrchestratedAlgorithmNode(string name) : base(name) {
    7573      var orchestrationPort = new MessagePort(OrchestrationPortName);
    7674      Ports.Add(orchestrationPort);
     
    9795    #region Port Events
    9896    private void OrchestrationPort_MessageReceived(object sender, EventArgs<IMessage, CancellationToken> e) {
    99       var message = e.Value;
    100       var orchestrationMessage = ((EnumValue<OrchestrationMessage>)message["OrchestrationMessage"]).Value;
     97      var requestMessage = e.Value;
     98      var messageFlags = ((EnumValue<OrchestrationMessage>)requestMessage["OrchestrationMessage"]).Value;
    10199
    102100      #region Prepare
    103       if (orchestrationMessage.HasFlag(OrchestrationMessage.Prepare)) {
     101      if (messageFlags.HasFlag(OrchestrationMessage.Prepare)) {
    104102        switch (Algorithm.ExecutionState) {
    105103          case ExecutionState.Prepared:
     
    110108              var prob = (IHeuristicOptimizationProblem)problemMsgVal.Value.Clone();
    111109
    112               if (orchestrationMessage.HasFlag(OrchestrationMessage.SetEvalHook)) {
     110              if (messageFlags.HasFlag(OrchestrationMessage.SetEvalHook)) {
    113111                var instEval = prob.Evaluator as InstrumentedOperator;
    114112                if (instEval != null && EvalHook != null) instEval.AfterExecutionOperators.Add(EvalHook);
     
    140138              }
    141139
    142               Algorithm.Prepare(orchestrationMessage.HasFlag(OrchestrationMessage.ClearRuns));
     140              Algorithm.Prepare(messageFlags.HasFlag(OrchestrationMessage.ClearRuns));
    143141            }
    144142            break;
     
    148146
    149147      #region Start
    150       if (orchestrationMessage.HasFlag(OrchestrationMessage.Start)) {
     148      if (messageFlags.HasFlag(OrchestrationMessage.Start)) {
    151149        switch (Algorithm.ExecutionState) {
    152150          case ExecutionState.Prepared:
     
    175173
    176174            if (sendResultMessage) {
    177               message["Results"] = (ResultCollection)Algorithm.Results.Clone();
    178               var msg = OrchestrationPort.PrepareMessage();
    179               msg["Results"] = (ResultCollection)Algorithm.Results.Clone();
    180               OrchestrationPort.SendMessage(msg);
     175              requestMessage["Results"] = (ResultCollection)Algorithm.Results.Clone();
     176              var responseMessage = OrchestrationPort.PrepareMessage();
     177              responseMessage["Results"] = (ResultCollection)Algorithm.Results.Clone();
     178              OrchestrationPort.SendMessage(responseMessage);
    181179            } else sendResultMessage = true;
    182180            break;
     
    186184
    187185      #region Pause
    188       if (orchestrationMessage.HasFlag(OrchestrationMessage.Pause)) {
     186      if (messageFlags.HasFlag(OrchestrationMessage.Pause)) {
    189187        if (Algorithm.ExecutionState == ExecutionState.Started) {
    190188          sendResultMessage = false;
    191189          try {
    192190            Algorithm.Pause();
    193           }
    194           catch (InvalidOperationException) {
     191          } catch (InvalidOperationException) {
    195192            // ExecutionState might have changed since we accepted the message
    196193          }
     
    200197
    201198      #region Stop
    202       if (orchestrationMessage.HasFlag(OrchestrationMessage.Stop)) {
     199      if (messageFlags.HasFlag(OrchestrationMessage.Stop)) {
    203200        switch (Algorithm.ExecutionState) {
    204201          case ExecutionState.Started:
     
    206203            try {
    207204              Algorithm.Stop();
    208             }
    209             catch (InvalidOperationException) {
     205            } catch (InvalidOperationException) {
    210206              // ExecutionState might have changed since we accepted the message
    211             }
    212             catch (NullReferenceException) {
     207            } catch (NullReferenceException) {
    213208              // BasicAlgorithm might have stopped since we accepted the message
    214209              // CancellationTokenSource is null in this case
Note: See TracChangeset for help on using the changeset viewer.