Opened 3 years ago

Last modified 5 months ago

#2205 assigned feature request

Implement basic infrastructure for optimization networks

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

Description (last modified by jkarder)

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

Change History (117)

comment:1 Changed 3 years ago by swagner

Created branch OptimizationNetworks in r11062.

comment:2 Changed 3 years ago by swagner

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

comment:3 Changed 3 years ago by swagner

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

comment:4 Changed 3 years ago by swagner

Worked on optimization networks in r11177.

comment:5 Changed 3 years ago by swagner

Worked on optimization networks in r11401.

comment:6 Changed 3 years ago by swagner

Worked on optimization networks in r11406.

comment:7 Changed 3 years ago by swagner

Worked on optimization networks in r11409.

comment:8 Changed 3 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 3 years ago by swagner

  • Description modified (diff)

Worked on optimization networks in r11412.

comment:10 Changed 3 years ago by mkommend

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

comment:11 Changed 3 years ago by swagner

  • Description modified (diff)

Worked on optimization networks in r11421.

comment:12 Changed 3 years ago by swagner

Worked on optimization networks in r11423.

comment:13 Changed 3 years ago by swagner

Worked on optimization networks in r11431.

comment:14 Changed 3 years ago by swagner

Worked on optimization networks in r11438.

comment:15 Changed 3 years ago by swagner

Worked on optimization networks in r11449.

comment:16 Changed 3 years ago by swagner

Worked on optimization networks in r11451.

comment:17 Changed 3 years ago by swagner

Worked on optimization networks in r11452.

comment:18 Changed 3 years ago by swagner

  • Description modified (diff)

comment:19 Changed 3 years ago by swagner

Worked on optimization networks in r11454.

comment:20 Changed 3 years ago by swagner

Worked on optimization networks in r11463.

comment:21 Changed 3 years ago by swagner

Worked on optimization networks in r11465.

comment:22 Changed 3 years ago by swagner

Worked on optimization networks in r11468.

comment:23 Changed 3 years ago by swagner

Worked on optimization networks in r11481.

comment:24 Changed 3 years ago by swagner

  • Description modified (diff)

comment:25 Changed 3 years ago by swagner

Worked on optimization networks in r11489.

comment:26 Changed 3 years ago by swagner

Worked on optimization networks in r11490.

comment:27 Changed 3 years ago by swagner

Worked on optimization networks in r11500.

comment:28 Changed 3 years ago by swagner

Worked on optimization networks in r11501.

comment:29 Changed 3 years ago by swagner

  • Description modified (diff)

comment:30 Changed 3 years ago by swagner

Worked on optimization networks in r11519.

comment:31 Changed 3 years ago by swagner

Worked on optimization networks in r11520.

comment:32 Changed 3 years ago by swagner

Worked on optimization networks in r11526.

comment:33 Changed 3 years ago by swagner

Worked on optimization networks in r11527.

comment:34 Changed 3 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 3 years ago by swagner (previous) (diff)

comment:35 Changed 3 years ago by swagner

r11528: Implemented review comments

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

comment:36 Changed 3 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 3 years ago by swagner

  • Description modified (diff)

comment:38 Changed 3 years ago by swagner

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

comment:39 Changed 3 years ago by swagner

r11538: Implemented review comments:

  • added IConnectablePort
  • replaced MessagePort.Messages by MessagePort.LastMessage
  • removed Path and PathChanged in NetworkItem

Additional changes:

  • refactored CanConnectToPort
  • refactored cloning of port parameters in MessagePortView

comment:40 Changed 3 years ago by swagner

r11539: Small UI tweaks and bug fixes

comment:41 Changed 3 years ago by swagner

r11554: Implemented review comments:

  • added cloning of Port in HookOperator and prevented cloning of hook operator ports in AlgorithmNode instead
  • added additional checks that port parameters of a hook operator port match with parameters of hook operator

comment:42 Changed 3 years ago by swagner

r11562: Started working on programmable network items.

comment:43 Changed 3 years ago by swagner

r11563: Continued working on programmable network items:

  • implemented view and some refactoring

comment:44 Changed 3 years ago by swagner

r11564: Continued working on programmable network items

comment:45 Changed 3 years ago by swagner

  • Description modified (diff)

comment:46 Changed 3 years ago by swagner

r11565: Continued working on programmable network items

  • allowed code changes only in user-defined nodes and networks
  • added manual initialization of compiled programmable network items

comment:47 Changed 3 years ago by swagner

r11576: Merged changes r11062:11557 from trunk/sources into branches/OptimizationNetworks

comment:48 Changed 3 years ago by swagner

r11577: Restructured solution and projects and switched all projects to .NET 4.5

comment:49 Changed 3 years ago by swagner

r11602: Continued working on programmable network items

  • added VariableStore to all programmable network items

comment:50 Changed 3 years ago by swagner

  • Description modified (diff)

comment:51 Changed 3 years ago by swagner

r11682: Worked on cancellation

  • added throwing of OperationCanceledException in MessagePort.ReceiveMessage
  • tweaked AlgorithmNode to get rid of exceptions when the algorithm is aborted

comment:52 Changed 3 years ago by swagner

r11712: Implemented review comments:

  • checked and adapted item images

comment:53 Changed 3 years ago by swagner

r11713: Implemented review comments:

  • checked and adapted item descriptions

comment:54 Changed 3 years ago by swagner

r11714: Enabled port parameter changes in ConfigurationPort and ExecutionPort

comment:55 Changed 3 years ago by abeham

r11823:

  • Added cosolving KSPTSP network
  • Fixed output path in projects for release target
  • Fixed penalty in seqsolving KSPTSP network (would produce infeasible solutions)
  • Added some additional references

comment:56 Changed 3 years ago by ascheibe

  • Milestone changed from HeuristicLab 3.3.11 to HeuristicLab 3.3.12
  • Owner changed from architects to swagner

comment:57 Changed 3 years ago by abeham

r12232:

  • changed branch to build to trunk
  • Reintegrated distributed additions to Core, Operators, etc. into Networks plugin

comment:58 Changed 2 years ago by mkommend

r12323: Added simple optimization network for solving features selection problems.

comment:59 Changed 2 years ago by gkronber

r12324: renamed classes and files (hard coded network and connector)

comment:60 Changed 2 years ago by gkronber

r12325: added solution cache

comment:61 Changed 2 years ago by gkronber

r12326: derived SelectionProblem from BinaryProblem (now PPP can be used as feature selection algorithm)

comment:62 Changed 2 years ago by gkronber

r12327: removed hard coded string for the retrieval of the regression solution to allow using other regression algorithms (e.g. RF)

comment:63 Changed 2 years ago by ascheibe

  • Milestone changed from HeuristicLab 3.3.12 to HeuristicLab 3.3.13

comment:64 Changed 2 years ago by jkarder

r12943: fixed deserialization of ProgrammableNetwork

comment:65 Changed 2 years ago by jkarder

r12944: added code resources

comment:66 Changed 2 years ago by jkarder

r12945: disabled compiler warning cs0436 for all code resources

comment:67 Changed 2 years ago by jkarder

r13077: worked on optimization networks

  • added first version of network visualization
  • updated frame files

comment:68 Changed 23 months ago by jkarder

  • Description modified (diff)

comment:69 Changed 23 months ago by jkarder

r13135: worked on optimization networks

  • refactored network visualization

comment:70 Changed 23 months ago by ascheibe

  • Milestone changed from HeuristicLab 3.3.13 to HeuristicLab 4.0

comment:71 Changed 22 months ago by ascheibe

r13459

  • fixed another deserialization bug
  • AlgorithmNode: made locker object protected so that inherited classes that override the Execute method can use it
  • Improved responsiveness of ProgrammableItemView

comment:72 Changed 22 months ago by ascheibe

r13467 fixed a bug in ProgrammableItemView introduced in r13459

comment:73 Changed 17 months ago by jkarder

r13799: worked on optimization networks

  • improved network visualization

comment:74 Changed 17 months ago by jkarder

r13833: worked on optimization networks

  • added layout algorithm prototype
  • fixed bug in LoadVisualProperties methods
Last edited 17 months ago by jkarder (previous) (diff)

comment:75 Changed 17 months ago by jkarder

r13839: worked on optimization networks

  • added layout calculation for ports

comment:76 Changed 16 months ago by jkarder

r13873: worked on optimization networks

  • improved network visualization

comment:77 Changed 8 months ago by jkarder

r14586: worked on optimization networks

  • added projects for integrated optimization (orchestration)

comment:78 Changed 8 months ago by abeham

r14587: Added FLP (facility location problem) for use within a network that solves the location routing problem (LRP)

comment:79 Changed 8 months ago by abeham

r14595: Added OPL model for for the capacitated FLP (by vhauder) and a HeuristicLab algorithm to solve the model through CPLEX

comment:80 Changed 8 months ago by abeham

r14596: unversioned Plugin.cs and AssemblyInfo.cs

comment:81 Changed 8 months ago by jkarder

r14598: worked on optimization networks

  • switched from IConfigurationPorts to IMessagePorts
  • removed option to clone algorithms in OrchestratedAlgorithmNodes
  • made properties of TourProfitProblem storable
  • fixed event handler registration

comment:82 Changed 8 months ago by jkarder

r14601: worked on optimization networks

  • created separate project for ttp optimization
  • removed some unused classes

comment:83 Changed 8 months ago by jkarder

r14604: worked on optimization networks

  • updated ttp networks (1, 2, 3)
  • added lrp network (1)
  • fixed plugin dependencies

comment:84 Changed 8 months ago by jkarder

r14605: worked on optimization networks

  • fixed vrp variegation in LrpOrchestratorNode1

comment:85 Changed 8 months ago by jkarder

r14606: worked on optimization networks

comment:86 Changed 8 months ago by abeham

r14607: added GetSolution() method to FLP

comment:87 Changed 8 months ago by jkarder

r14610: worked on optimization networks

  • added abstract base classes for ttp networks/orchestrators
  • removed ttp networks/orchestrators from HeuristicLab.Networks.IntegratedOptimization
  • runs can now be cleared when preparing OrchestratedAlgorithmNodes

comment:88 Changed 8 months ago by jkarder

r14611: worked on optimization networks

comment:89 Changed 8 months ago by jkarder

r14613: worked on optimization networks

  • fixed event handler registration

comment:90 Changed 8 months ago by jkarder

r14616: worked on optimization networks

comment:91 Changed 8 months ago by jkarder

r14617: worked on optimization networks

comment:92 Changed 8 months ago by mkommend

r14618: Corrected minor mistake in Layout.Vector struct (maybe connected to C# compiler version).

comment:93 Changed 8 months ago by mkommend

r14619: Corrected project files for TTP networks.

comment:94 Changed 8 months ago by mkommend

r14620: Corrected project files for NetworkVisulization.

comment:95 Changed 8 months ago by jkarder

r14621: worked on optimization networks

  • added lrp network 2
  • minor code changes

comment:96 Changed 8 months ago by mkommend

r14624: Refactored messages in orchestrated algorithm node.

comment:97 Changed 8 months ago by mkommend

r14625: Added network for integrated machine learning.

comment:98 Changed 8 months ago by jkarder

r14628: worked on optimization networks

  • added variegation problem for minimization and maximization
  • refactored some classes

comment:99 Changed 8 months ago by jkarder

r14629: worked on optimization networks

  • fixed bugs in ttp network/orchestrator 3

comment:100 Changed 8 months ago by mkommend

r14631: Updated OrchestratedAlgorithmNode to work with problems as well.

comment:101 Changed 8 months ago by jkarder

r14632: worked on optimization networks

  • fixed project references

comment:102 Changed 8 months ago by jkarder

r14633: worked on optimization networks

comment:103 Changed 8 months ago by jkarder

r14635: worked on optimization networks

  • created default parameters for orchestration and evaluation ports
  • adapted FeatureSelectionNetwork

comment:104 Changed 8 months ago by jkarder

r14639: worked on optimization networks

  • fixed output paths

comment:105 Changed 8 months ago by abeham

r14642: added disposal of errorhandler and datasource

Last edited 8 months ago by abeham (previous) (diff)

comment:106 Changed 8 months ago by abeham

r14646: Added version of FLP that minimizes opening costs only

comment:107 Changed 8 months ago by jkarder

r14649: worked on optimization networks

  • added lrp network 3
  • fixed bug in distance calculation
  • renamed FLP.mod to FLP_1.mod
  • activated cma analyzer per default

comment:108 Changed 8 months ago by jkarder

r14653: worked on optimization networks

  • improved ttp evaluation

comment:109 Changed 7 months ago by jkarder

r14671: worked on optimization networks

  • added ttp as basic problem for baseline comparison

comment:110 Changed 7 months ago by mkommend

r14675: Worked on optimization networks for integrated machine learning.

comment:111 Changed 7 months ago by abeham

r14676: branched VRP and VRP.Views plugin

  • adapted project files output path and references

comment:112 Changed 7 months ago by abeham

r14677: added results tab to solution view to analyze vrp solution in more detail

  • reorganized insertion infos and adapted some evaluators and instances

comment:113 Changed 7 months ago by abeham

r14677 should be released (if at all) together with ticket #2733

comment:114 Changed 7 months ago by mkommend

r14686: Updated FeatureSelectionOrchestrator.

comment:115 Changed 7 months ago by mkommend

r14686: Updated FeatureSelectionOrchestrator.

comment:116 Changed 5 months ago by jkarder

r14895: worked on optimization networks

  • added lrp networks (4, 5)
  • fixed lrp evaluation
  • updated flp models
  • updated to cplex 12.7

comment:117 Changed 5 months ago by jkarder

r14896: worked on optimization networks

  • fixed bug in lrp network 5
Note: See TracTickets for help on using tickets.