Free cookie consent management tool by TermsFeed Policy Generator

Opened 10 years ago

Last modified 6 years ago

#2205 assigned feature request

Implement basic infrastructure for optimization networks — at Version 37

Reported by: swagner Owned by: architects
Priority: highest Milestone: HeuristicLab 4.0
Component: Networks Version: branch
Keywords: Cc:

Description (last modified by swagner)

To Do:

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

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)

Change History (37)

comment:1 Changed 10 years ago by swagner

Created branch OptimizationNetworks in r11062.

comment:2 Changed 10 years ago by swagner

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

comment:3 Changed 10 years ago by swagner

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

comment:4 Changed 10 years ago by swagner

Worked on optimization networks in r11177.

comment:5 Changed 10 years ago by swagner

Worked on optimization networks in r11401.

comment:6 Changed 10 years ago by swagner

Worked on optimization networks in r11406.

comment:7 Changed 10 years ago by swagner

Worked on optimization networks in r11409.

comment:8 Changed 10 years ago by swagner

  • Component changed from ### Undefined ### to Optimization.Networks
  • Priority changed from high to highest
  • Status changed from new to accepted

comment:9 Changed 10 years ago by swagner

  • Description modified (diff)

Worked on optimization networks in r11412.

comment:10 Changed 10 years ago by mkommend

  • Owner changed from swagner to architects
  • Status changed from accepted to assigned

comment:11 Changed 10 years ago by swagner

  • Description modified (diff)

Worked on optimization networks in r11421.

comment:12 Changed 10 years ago by swagner

Worked on optimization networks in r11423.

comment:13 Changed 10 years ago by swagner

Worked on optimization networks in r11431.

comment:14 Changed 10 years ago by swagner

Worked on optimization networks in r11438.

comment:15 Changed 10 years ago by swagner

Worked on optimization networks in r11449.

comment:16 Changed 10 years ago by swagner

Worked on optimization networks in r11451.

comment:17 Changed 10 years ago by swagner

Worked on optimization networks in r11452.

comment:18 Changed 10 years ago by swagner

  • Description modified (diff)

comment:19 Changed 10 years ago by swagner

Worked on optimization networks in r11454.

comment:20 Changed 10 years ago by swagner

Worked on optimization networks in r11463.

comment:21 Changed 10 years ago by swagner

Worked on optimization networks in r11465.

comment:22 Changed 10 years ago by swagner

Worked on optimization networks in r11468.

comment:23 Changed 10 years ago by swagner

Worked on optimization networks in r11481.

comment:24 Changed 10 years ago by swagner

  • Description modified (diff)

comment:25 Changed 10 years ago by swagner

Worked on optimization networks in r11489.

comment:26 Changed 10 years ago by swagner

Worked on optimization networks in r11490.

comment:27 Changed 10 years ago by swagner

Worked on optimization networks in r11500.

comment:28 Changed 10 years ago by swagner

Worked on optimization networks in r11501.

comment:29 Changed 10 years ago by swagner

  • Description modified (diff)

comment:30 Changed 10 years ago by swagner

Worked on optimization networks in r11519.

comment:31 Changed 10 years ago by swagner

Worked on optimization networks in r11520.

comment:32 Changed 10 years ago by swagner

Worked on optimization networks in r11526.

comment:33 Changed 10 years ago by swagner

Worked on optimization networks in r11527.

comment:34 Changed 10 years ago by swagner

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
Last edited 10 years ago by swagner (previous) (diff)

comment:35 Changed 10 years ago by swagner

r11528: Implemented review comments

  • adapted formatting of multi-line LINQ queries
  • renamed Entity to NetworkItem

comment:36 Changed 10 years ago by swagner

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

comment:37 Changed 10 years ago by swagner

  • Description modified (diff)
Note: See TracTickets for help on using tickets.