heal-research / HeuristicLab

HeuristicLab - An environment for heuristic and evolutionary optimization
https://dev.heuristiclab.com
GNU General Public License v3.0
32 stars 15 forks source link

Implement basic infrastructure for optimization networks #2205

Open HeuristicLab-Trac-Bot opened 10 years ago

HeuristicLab-Trac-Bot commented 10 years ago

Issue migrated from trac ticket # 2205

milestone: HeuristicLab 4.0 | component: Networks | priority: highest

2014-07-01 01:56:00: @s-wagner created the issue


To Do:

  • check handling of locked and read-only state of controls
  • executable networks

-*Topics for Discussion:**

  • design in general
    • how much logic should be included in a port?
    • problem of generic view types
    • exception handling
    • how to bridge the gap between internal and external ports of networks?
    • declarative definition of results
  • port-to-port communication
    • clone value?
    • how to switch threads?
    • should ports propagate their values immediately when they are connected?
  • data types
    • POCOs vs. IItems
    • generic vs. non-generic types (e.g. ports)
  • AlgorithmNode
    • port updates due to result changes (speed, events)

This ticket has to be merged into stable after #1265

HeuristicLab-Trac-Bot commented 10 years ago

2014-07-01 02:02:14: @s-wagner commented


Created branch [source:branches/OptimizationNetworks OptimizationNetworks] in r11062.

HeuristicLab-Trac-Bot commented 10 years ago

2014-07-01 03:24:34: @s-wagner commented


Added new empty plugins (HeuristicLab.Modeler, HeuristicLab.Optimization.Networks) in r11063.

HeuristicLab-Trac-Bot commented 10 years ago

2014-07-01 15:59:33: @s-wagner commented


Added new empty plugin HeuristicLab.Optimization.Networks.Views in r11069.

HeuristicLab-Trac-Bot commented 10 years ago

2014-07-10 03:28:59: @s-wagner commented


Worked on optimization networks in r11177.

HeuristicLab-Trac-Bot commented 9 years ago

2014-09-29 02:32:37: @s-wagner commented


Worked on optimization networks in r11401.

HeuristicLab-Trac-Bot commented 9 years ago

2014-09-30 02:14:27: @s-wagner commented


Worked on optimization networks in r11406.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-02 03:31:00: @s-wagner commented


Worked on optimization networks in r11409.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-02 23:48:54: @s-wagner changed priority from high to highest

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-02 23:48:54: @s-wagner changed status from new to accepted

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-02 23:48:54: @s-wagner changed component from ### Undefined ### to Optimization.Networks

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-03 02:20:55: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-03 02:20:55: @s-wagner commented


Worked on optimization networks in r11412.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-03 10:51:21: @mkommend changed status from accepted to assigned

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-03 10:51:21: @mkommend changed owner from @s-wagner to @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-07 08:33:49: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-07 08:33:49: @s-wagner commented


Worked on optimization networks in r11421.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-08 03:28:12: @s-wagner commented


Worked on optimization networks in r11423.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-09 03:11:17: @s-wagner commented


Worked on optimization networks in r11431.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-10 02:36:20: @s-wagner commented


Worked on optimization networks in r11438.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-11 03:32:35: @s-wagner commented


Worked on optimization networks in r11449.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-12 00:50:28: @s-wagner commented


Worked on optimization networks in r11451.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-12 03:02:58: @s-wagner commented


Worked on optimization networks in r11452.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-13 01:09:30: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-13 03:34:11: @s-wagner commented


Worked on optimization networks in r11454.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-14 04:33:55: @s-wagner commented


Worked on optimization networks in r11463.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-15 02:28:32: @s-wagner commented


Worked on optimization networks in r11465.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-16 03:59:07: @s-wagner commented


Worked on optimization networks in r11468.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-18 03:26:19: @s-wagner commented


Worked on optimization networks in r11481.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-19 21:44:02: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-23 04:12:27: @s-wagner commented


Worked on optimization networks in r11489.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-24 05:06:15: @s-wagner commented


Worked on optimization networks in r11490.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-24 23:51:27: @s-wagner commented


Worked on optimization networks in r11500.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-25 02:54:58: @s-wagner commented


Worked on optimization networks in r11501.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-01 20:03:53: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-02 03:04:01: @s-wagner commented


Worked on optimization networks in r11519.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-03 01:16:09: @s-wagner commented


Worked on optimization networks in r11520.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-07 01:06:19: @s-wagner commented


Worked on optimization networks in r11526.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-07 01:10:47: @s-wagner commented


Worked on optimization networks in r11527.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner commented


Results of code review with abeham, mkommend, ascheibe:

  • check item descriptions and item images (done)
  • check access modifiers (public, protected, private)
  • change formatting of multi-line LINQ queries (indentation, points should be at the beginning and not at the end of a line) (done)
  • IEntity, Entity
    • rename to INetworkItem and NetworkItem (done)
    • remove the Path property and the PathChanged event (done)
    • add a generic way for error handling to propagate errors through multiple network items (e.g. if a node contains a port with an invalid port connection, the node itself should also show an error)
  • Node
    • should be abstract (done)
    • add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
  • IGenericNode, GenericNode (done)
    • rename to IUserDefinedNode and UserDefinedNode or find an even better name (done)
    • should be sealed (done)
  • Network (done)
    • should be abstract (done)
    • Nodes should not be changeable by default (similar to Ports in Node) (done)
    • derive sealed IUserDefinedNetwork and UserDefinedNetwork (find an even better name?) (done)
  • Port
    • add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
  • ParameterizedPort (done)
    • Parameters should not be changeable by default (similar to Ports in Node) (done)
  • IGenericPort, GenericPort (done)
    • rename to IMessagePort and MessagePort (done)
    • only store the last message and not all messages (done)
    • refactor CanConnectToPort as there might occur a NullReferenceException and to avoid code duplication (done)
    • refactor PrepareMessage to avoid code duplication (done)
    • remove IConnectedPort (done)
    • add IConnectablePort to enable generic port connection handling in the GUI (done)
    • IMessagePort should implement IParameterizedPort and IConnectablePort (done)
  • PortParameter
    • add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
  • PortParameterType (done)
    • remove None (done)
  • AlgorithmNode (done)
    • replace algorithm.Runs.Clear() and algorithm.Prepare() by algorithm.Prepare(true) (done)
  • HookOperator (done)
    • check if there is an operator parameter for each port parameter (done)
    • clone Port by default and prevent cloning when necessary by registering the port as its own clone (e.g. in AlgorithmNode when cloning the algorithm before its execution) (done)
  • EntityView
    • increase the gap between the name label and the name textbox so that there is enough space to show the error icon if the name is not valid
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-08 01:18:08: @s-wagner

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-10 01:43:29: @s-wagner commented


r11528: Implemented review comments

  • adapted formatting of multi-line LINQ queries
  • renamed Entity to NetworkItem
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-10 02:35:32: @s-wagner commented


r11529: Implemented review comments

  • made Node and Network abstract
  • renamed GenericNode to UserDefinedNode and sealed it
  • added sealed UserDefinedNetwork
  • made Nodes in Network not changeable by default
  • made Parameters in ParameterizedPort not changeable by default
  • removed value None in PortParameterType
  • refactored call algorithm.PrepareMessage() in AlgorithmNode
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-10 02:56:52: @s-wagner edited the issue description

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-10 04:24:31: @s-wagner commented


r11530: Implemented review comments

  • renamed GenericPort to MessagePort
  • refactored CanConnectToPort
  • refactored PrepareMessage
  • removed IConnectedPort

Additional changes:

  • added UserDefinedMessagePort
  • refactored CloneConnectedPortParameters to CloneParametersFromPort and moved it to ParameterizedPort
  • added ports to NetworkView