Opened 6 years ago
Last modified 3 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 6 years ago by swagner
comment:2 Changed 6 years ago by swagner
Added new empty plugins (HeuristicLab.Modeler, HeuristicLab.Optimization.Networks) in r11063.
comment:3 Changed 6 years ago by swagner
Added new empty plugin HeuristicLab.Optimization.Networks.Views in r11069.
comment:4 Changed 6 years ago by swagner
Worked on optimization networks in r11177.
comment:5 Changed 6 years ago by swagner
Worked on optimization networks in r11401.
comment:6 Changed 6 years ago by swagner
Worked on optimization networks in r11406.
comment:7 Changed 6 years ago by swagner
Worked on optimization networks in r11409.
comment:8 Changed 6 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 6 years ago by swagner
- Description modified (diff)
Worked on optimization networks in r11412.
comment:10 Changed 6 years ago by mkommend
- Owner changed from swagner to architects
- Status changed from accepted to assigned
comment:11 Changed 6 years ago by swagner
- Description modified (diff)
Worked on optimization networks in r11421.
comment:12 Changed 6 years ago by swagner
Worked on optimization networks in r11423.
comment:13 Changed 6 years ago by swagner
Worked on optimization networks in r11431.
comment:14 Changed 6 years ago by swagner
Worked on optimization networks in r11438.
comment:15 Changed 6 years ago by swagner
Worked on optimization networks in r11449.
comment:16 Changed 6 years ago by swagner
Worked on optimization networks in r11451.
comment:17 Changed 6 years ago by swagner
Worked on optimization networks in r11452.
comment:18 Changed 6 years ago by swagner
- Description modified (diff)
comment:19 Changed 6 years ago by swagner
Worked on optimization networks in r11454.
comment:20 Changed 6 years ago by swagner
Worked on optimization networks in r11463.
comment:21 Changed 6 years ago by swagner
Worked on optimization networks in r11465.
comment:22 Changed 6 years ago by swagner
Worked on optimization networks in r11468.
comment:23 Changed 6 years ago by swagner
Worked on optimization networks in r11481.
comment:24 Changed 6 years ago by swagner
- Description modified (diff)
comment:25 Changed 6 years ago by swagner
Worked on optimization networks in r11489.
comment:26 Changed 6 years ago by swagner
Worked on optimization networks in r11490.
comment:27 Changed 6 years ago by swagner
Worked on optimization networks in r11500.
comment:28 Changed 6 years ago by swagner
Worked on optimization networks in r11501.
comment:29 Changed 6 years ago by swagner
- Description modified (diff)
comment:30 Changed 6 years ago by swagner
Worked on optimization networks in r11519.
comment:31 Changed 6 years ago by swagner
Worked on optimization networks in r11520.
comment:32 Changed 6 years ago by swagner
Worked on optimization networks in r11526.
comment:33 Changed 6 years ago by swagner
Worked on optimization networks in r11527.
comment:34 Changed 6 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
comment:35 Changed 6 years ago by swagner
r11528: Implemented review comments
- adapted formatting of multi-line LINQ queries
- renamed Entity to NetworkItem
comment:36 Changed 6 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 6 years ago by swagner
- Description modified (diff)
comment:38 Changed 6 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 6 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 6 years ago by swagner
r11539: Small UI tweaks and bug fixes
comment:41 Changed 6 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 6 years ago by swagner
r11562: Started working on programmable network items.
comment:43 Changed 6 years ago by swagner
r11563: Continued working on programmable network items:
- implemented view and some refactoring
comment:44 Changed 6 years ago by swagner
r11564: Continued working on programmable network items
comment:45 Changed 6 years ago by swagner
- Description modified (diff)
comment:46 Changed 6 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 6 years ago by swagner
r11576: Merged changes r11062:11557 from trunk/sources into branches/OptimizationNetworks
comment:48 Changed 6 years ago by swagner
r11577: Restructured solution and projects and switched all projects to .NET 4.5
comment:49 Changed 6 years ago by swagner
r11602: Continued working on programmable network items
- added VariableStore to all programmable network items
comment:50 Changed 6 years ago by swagner
- Description modified (diff)
comment:51 Changed 6 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 6 years ago by swagner
r11712: Implemented review comments:
- checked and adapted item images
comment:53 Changed 6 years ago by swagner
r11713: Implemented review comments:
- checked and adapted item descriptions
comment:54 Changed 6 years ago by swagner
r11714: Enabled port parameter changes in ConfigurationPort and ExecutionPort
comment:55 Changed 6 years ago by abeham
- 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 6 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 6 years ago by abeham
- changed branch to build to trunk
- Reintegrated distributed additions to Core, Operators, etc. into Networks plugin
comment:58 Changed 6 years ago by mkommend
r12323: Added simple optimization network for solving features selection problems.
comment:59 Changed 6 years ago by gkronber
r12324: renamed classes and files (hard coded network and connector)
comment:60 Changed 6 years ago by gkronber
r12325: added solution cache
comment:61 Changed 6 years ago by gkronber
r12326: derived SelectionProblem from BinaryProblem (now PPP can be used as feature selection algorithm)
comment:62 Changed 6 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 5 years ago by ascheibe
- Milestone changed from HeuristicLab 3.3.12 to HeuristicLab 3.3.13
comment:64 Changed 5 years ago by jkarder
r12943: fixed deserialization of ProgrammableNetwork
comment:65 Changed 5 years ago by jkarder
r12944: added code resources
comment:66 Changed 5 years ago by jkarder
r12945: disabled compiler warning cs0436 for all code resources
comment:67 Changed 5 years ago by jkarder
r13077: worked on optimization networks
- added first version of network visualization
- updated frame files
comment:68 Changed 5 years ago by jkarder
- Description modified (diff)
comment:69 Changed 5 years ago by jkarder
r13135: worked on optimization networks
- refactored network visualization
comment:70 Changed 5 years ago by ascheibe
- Milestone changed from HeuristicLab 3.3.13 to HeuristicLab 4.0
comment:71 Changed 5 years ago by ascheibe
- 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 5 years ago by ascheibe
comment:73 Changed 5 years ago by jkarder
r13799: worked on optimization networks
- improved network visualization
comment:74 Changed 4 years ago by jkarder
r13833: worked on optimization networks
- added layout algorithm prototype
- fixed bug in LoadVisualProperties methods
comment:75 Changed 4 years ago by jkarder
r13839: worked on optimization networks
- added layout calculation for ports
comment:76 Changed 4 years ago by jkarder
r13873: worked on optimization networks
- improved network visualization
comment:77 Changed 4 years ago by jkarder
r14586: worked on optimization networks
- added projects for integrated optimization (orchestration)
comment:78 Changed 4 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 4 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 4 years ago by abeham
r14596: unversioned Plugin.cs and AssemblyInfo.cs
comment:81 Changed 4 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 4 years ago by jkarder
r14601: worked on optimization networks
- created separate project for ttp optimization
- removed some unused classes
comment:83 Changed 4 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 4 years ago by jkarder
r14605: worked on optimization networks
- fixed vrp variegation in LrpOrchestratorNode1
comment:85 Changed 4 years ago by jkarder
r14606: worked on optimization networks
comment:86 Changed 4 years ago by abeham
r14607: added GetSolution() method to FLP
comment:87 Changed 4 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 4 years ago by jkarder
r14611: worked on optimization networks
comment:89 Changed 4 years ago by jkarder
r14613: worked on optimization networks
- fixed event handler registration
comment:90 Changed 4 years ago by jkarder
r14616: worked on optimization networks
comment:91 Changed 4 years ago by jkarder
r14617: worked on optimization networks
comment:92 Changed 4 years ago by mkommend
r14618: Corrected minor mistake in Layout.Vector struct (maybe connected to C# compiler version).
comment:93 Changed 4 years ago by mkommend
r14619: Corrected project files for TTP networks.
comment:94 Changed 4 years ago by mkommend
r14620: Corrected project files for NetworkVisulization.
comment:95 Changed 4 years ago by jkarder
r14621: worked on optimization networks
- added lrp network 2
- minor code changes
comment:96 Changed 4 years ago by mkommend
r14624: Refactored messages in orchestrated algorithm node.
comment:97 Changed 4 years ago by mkommend
r14625: Added network for integrated machine learning.
comment:98 Changed 4 years ago by jkarder
r14628: worked on optimization networks
- added variegation problem for minimization and maximization
- refactored some classes
comment:99 Changed 4 years ago by jkarder
r14629: worked on optimization networks
- fixed bugs in ttp network/orchestrator 3
comment:100 Changed 4 years ago by mkommend
r14631: Updated OrchestratedAlgorithmNode to work with problems as well.
comment:101 Changed 4 years ago by jkarder
r14632: worked on optimization networks
- fixed project references
comment:102 Changed 4 years ago by jkarder
r14633: worked on optimization networks
comment:103 Changed 4 years ago by jkarder
r14635: worked on optimization networks
- created default parameters for orchestration and evaluation ports
- adapted FeatureSelectionNetwork
comment:104 Changed 4 years ago by jkarder
r14639: worked on optimization networks
- fixed output paths
comment:105 Changed 4 years ago by abeham
r14642: added disposal of errorhandler and datasource
comment:106 Changed 4 years ago by abeham
r14646: Added version of FLP that minimizes opening costs only
comment:107 Changed 4 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 4 years ago by jkarder
r14653: worked on optimization networks
- improved ttp evaluation
comment:109 Changed 4 years ago by jkarder
r14671: worked on optimization networks
- added ttp as basic problem for baseline comparison
comment:110 Changed 4 years ago by mkommend
r14675: Worked on optimization networks for integrated machine learning.
comment:111 Changed 4 years ago by abeham
r14676: branched VRP and VRP.Views plugin
- adapted project files output path and references
comment:112 Changed 4 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 4 years ago by abeham
comment:114 Changed 4 years ago by mkommend
r14686: Updated FeatureSelectionOrchestrator.
comment:115 Changed 4 years ago by mkommend
r14686: Updated FeatureSelectionOrchestrator.
comment:116 Changed 4 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 4 years ago by jkarder
r14896: worked on optimization networks
- fixed bug in lrp network 5
comment:118 Changed 3 years ago by jkarder
r15894: fixed output paths and project references
comment:119 Changed 3 years ago by jkarder
r15895: renamed branch according to guidelines
comment:120 Changed 3 years ago by jkarder
r15896: added surrogate modeling network
comment:121 Changed 3 years ago by jkarder
r15897: fixed svn:ignore properties
Created branch OptimizationNetworks in r11062.