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

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 (121)

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)

comment:38 Changed 10 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 10 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 10 years ago by swagner

r11539: Small UI tweaks and bug fixes

comment:41 Changed 10 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 10 years ago by swagner

r11562: Started working on programmable network items.

comment:43 Changed 10 years ago by swagner

r11563: Continued working on programmable network items:

  • implemented view and some refactoring

comment:44 Changed 10 years ago by swagner

r11564: Continued working on programmable network items

comment:45 Changed 10 years ago by swagner

  • Description modified (diff)

comment:46 Changed 10 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 10 years ago by swagner

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

comment:48 Changed 10 years ago by swagner

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

comment:49 Changed 10 years ago by swagner

r11602: Continued working on programmable network items

  • added VariableStore to all programmable network items

comment:50 Changed 10 years ago by swagner

  • Description modified (diff)

comment:51 Changed 10 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 10 years ago by swagner

r11712: Implemented review comments:

  • checked and adapted item images

comment:53 Changed 10 years ago by swagner

r11713: Implemented review comments:

  • checked and adapted item descriptions

comment:54 Changed 10 years ago by swagner

r11714: Enabled port parameter changes in ConfigurationPort and ExecutionPort

comment:55 Changed 9 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 9 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 9 years ago by abeham

r12232:

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

comment:58 Changed 9 years ago by mkommend

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

comment:59 Changed 9 years ago by gkronber

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

comment:60 Changed 9 years ago by gkronber

r12325: added solution cache

comment:61 Changed 9 years ago by gkronber

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

comment:62 Changed 9 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 9 years ago by ascheibe

  • Milestone changed from HeuristicLab 3.3.12 to HeuristicLab 3.3.13

comment:64 Changed 9 years ago by jkarder

r12943: fixed deserialization of ProgrammableNetwork

comment:65 Changed 9 years ago by jkarder

r12944: added code resources

comment:66 Changed 9 years ago by jkarder

r12945: disabled compiler warning cs0436 for all code resources

comment:67 Changed 9 years ago by jkarder

r13077: worked on optimization networks

  • added first version of network visualization
  • updated frame files

comment:68 Changed 9 years ago by jkarder

  • Description modified (diff)

comment:69 Changed 9 years ago by jkarder

r13135: worked on optimization networks

  • refactored network visualization

comment:70 Changed 9 years ago by ascheibe

  • Milestone changed from HeuristicLab 3.3.13 to HeuristicLab 4.0

comment:71 Changed 9 years 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 9 years ago by ascheibe

r13467 fixed a bug in ProgrammableItemView introduced in r13459

comment:73 Changed 8 years ago by jkarder

r13799: worked on optimization networks

  • improved network visualization

comment:74 Changed 8 years ago by jkarder

r13833: worked on optimization networks

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

comment:75 Changed 8 years ago by jkarder

r13839: worked on optimization networks

  • added layout calculation for ports

comment:76 Changed 8 years ago by jkarder

r13873: worked on optimization networks

  • improved network visualization

comment:77 Changed 7 years ago by jkarder

r14586: worked on optimization networks

  • added projects for integrated optimization (orchestration)

comment:78 Changed 7 years ago by abeham

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

comment:79 Changed 7 years 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 7 years ago by abeham

r14596: unversioned Plugin.cs and AssemblyInfo.cs

comment:81 Changed 7 years 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 7 years ago by jkarder

r14601: worked on optimization networks

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

comment:83 Changed 7 years ago by jkarder

r14604: worked on optimization networks

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

comment:84 Changed 7 years ago by jkarder

r14605: worked on optimization networks

  • fixed vrp variegation in LrpOrchestratorNode1

comment:85 Changed 7 years ago by jkarder

r14606: worked on optimization networks

comment:86 Changed 7 years ago by abeham

r14607: added GetSolution() method to FLP

comment:87 Changed 7 years 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 7 years ago by jkarder

r14611: worked on optimization networks

comment:89 Changed 7 years ago by jkarder

r14613: worked on optimization networks

  • fixed event handler registration

comment:90 Changed 7 years ago by jkarder

r14616: worked on optimization networks

comment:91 Changed 7 years ago by jkarder

r14617: worked on optimization networks

comment:92 Changed 7 years ago by mkommend

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

comment:93 Changed 7 years ago by mkommend

r14619: Corrected project files for TTP networks.

comment:94 Changed 7 years ago by mkommend

r14620: Corrected project files for NetworkVisulization.

comment:95 Changed 7 years ago by jkarder

r14621: worked on optimization networks

  • added lrp network 2
  • minor code changes

comment:96 Changed 7 years ago by mkommend

r14624: Refactored messages in orchestrated algorithm node.

comment:97 Changed 7 years ago by mkommend

r14625: Added network for integrated machine learning.

comment:98 Changed 7 years ago by jkarder

r14628: worked on optimization networks

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

comment:99 Changed 7 years ago by jkarder

r14629: worked on optimization networks

  • fixed bugs in ttp network/orchestrator 3

comment:100 Changed 7 years ago by mkommend

r14631: Updated OrchestratedAlgorithmNode to work with problems as well.

comment:101 Changed 7 years ago by jkarder

r14632: worked on optimization networks

  • fixed project references

comment:102 Changed 7 years ago by jkarder

r14633: worked on optimization networks

comment:103 Changed 7 years ago by jkarder

r14635: worked on optimization networks

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

comment:104 Changed 7 years ago by jkarder

r14639: worked on optimization networks

  • fixed output paths

comment:105 Changed 7 years ago by abeham

r14642: added disposal of errorhandler and datasource

Last edited 7 years ago by abeham (previous) (diff)

comment:106 Changed 7 years ago by abeham

r14646: Added version of FLP that minimizes opening costs only

comment:107 Changed 7 years 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 7 years ago by jkarder

r14653: worked on optimization networks

  • improved ttp evaluation

comment:109 Changed 7 years ago by jkarder

r14671: worked on optimization networks

  • added ttp as basic problem for baseline comparison

comment:110 Changed 7 years ago by mkommend

r14675: Worked on optimization networks for integrated machine learning.

comment:111 Changed 7 years ago by abeham

r14676: branched VRP and VRP.Views plugin

  • adapted project files output path and references

comment:112 Changed 7 years 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 years ago by abeham

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

comment:114 Changed 7 years ago by mkommend

r14686: Updated FeatureSelectionOrchestrator.

comment:115 Changed 7 years ago by mkommend

r14686: Updated FeatureSelectionOrchestrator.

comment:116 Changed 7 years 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 7 years ago by jkarder

r14896: worked on optimization networks

  • fixed bug in lrp network 5

comment:118 Changed 6 years ago by jkarder

r15894: fixed output paths and project references

comment:119 Changed 6 years ago by jkarder

r15895: renamed branch according to guidelines

comment:120 Changed 6 years ago by jkarder

r15896: added surrogate modeling network

comment:121 Changed 6 years ago by jkarder

r15897: fixed svn:ignore properties

Note: See TracTickets for help on using tickets.