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

Refactor operator architecture #95

Closed HeuristicLab-Trac-Bot closed 14 years ago

HeuristicLab-Trac-Bot commented 16 years ago

Issue migrated from trac ticket # 95

milestone: HeuristicLab 3.3.0 | component: Core | priority: highest | resolution: done

2008-03-30 23:54:55: @s-wagner created the issue


The operator architecture suffers from some drawbacks related to calling operators and handling parameters.

This ticket represents a master ticket for a comprehensive refactoring of the operator architecture.

Related tickets: #48, #57, #67, #68, #93, #94

HeuristicLab-Trac-Bot commented 16 years ago

2008-03-31 00:52:10: @gkronber commented


I take the chance to describe some of my views in this ticket. I believe there are strong symmetries in the current evaluation model of HL and the evaluation model of Scheme. So the ideas I pursued the last few days are mainly about adapting the way name-binding is handled in Scheme for HL. This is in line with the idea of what we called 'Call'-objects in our previous discussion leading to ticket #57. The main concept being to move the functionality of scopes into two separate entities. My view is that scopes mix two separate concepts:

  1. Grouping simple values to an collection of values (which are moved and destroyed together)
  2. a. Binding of names to values a. Binding of formal and actual names (over multiple steps)

The rough idea is to move bindings to 'environments' or 'frames' which are created by the engine for each application of an operator to a scope. The engine stores the mapping of actual to formal names for the current operator in the environment. Environments can be hierarchically linked (for instance when using CombinedOperators). In the new model the scopes would only store variables in a structured and easily navigable data-structure same as now. Bindings in environments point to the data in the scope-tree. We could probably implement this almost in the same way as it is implemented in the scopes now.

However the environment-model is probably bad in our situation. We have to remember that the scope-tree was designed especially in this way to make parallelization easy. The scheme environment-model is definitely not adequate for this and would have to be stripped down severely to prevent problems. There are also other minor issues that I won't discuss in this ticket. It should suffice to say that it gets messy quickly.

Anyway my conclusion for now is that while we might copy some smaller ideas from scheme it's probably not possible fully adapt the evaluation model of HL to it. Further discussions are needed.

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-18 17:45:05: @s-wagner changed status from new to assigned

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-21 08:35:03: @s-wagner changed milestone from 3.1 to 3.2

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 01:50:30: @s-wagner removed owner (was swagner)

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 01:50:30: @s-wagner changed status from assigned to new

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 02:00:30: @s-wagner removed owner

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 02:22:09: @s-wagner changed status from new to assigned

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 02:23:21: @s-wagner commented


Created branch "Operator Architecture Refactoring" in r606

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-27 02:23:40: @s-wagner changed status from assigned to new

HeuristicLab-Trac-Bot commented 15 years ago

2008-09-28 23:50:08: @s-wagner changed status from new to assigned

HeuristicLab-Trac-Bot commented 15 years ago

2008-11-29 23:21:54: @s-wagner changed status from assigned to new

HeuristicLab-Trac-Bot commented 15 years ago

2008-12-01 09:35:39: @s-wagner changed status from new to assigned

HeuristicLab-Trac-Bot commented 15 years ago

2008-12-01 09:45:21: @s-wagner commented


Removed branch "Operator Architecture Refactoring" in r878 (not migrated) and created it again in r879.

HeuristicLab-Trac-Bot commented 15 years ago

2009-01-23 00:19:17: @s-wagner changed milestone from 3.2 to Iteration 0

HeuristicLab-Trac-Bot commented 15 years ago

2009-01-23 00:19:17: @s-wagner commented


Milestone 3.2 deleted

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-02 22:47:24: @s-wagner commented


Removed branch "Operator Architecture Refactoring" in r1991 (not migrated).

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-02 22:49:09: @s-wagner commented


Created branch "Operator Architecture Refactoring" again in r1992. Finally, the time has come to get this done!!!

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-03 02:41:38: @s-wagner commented


Refactoring of the operator architecture started in r1994.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-06 02:10:13: @s-wagner commented


Continued refactoring in r2027.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-06 16:54:00: @s-wagner commented


Continued refactoring in r2029.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-08 02:02:34: @s-wagner commented


Continued refactoring in r2030.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-09 00:58:39: @s-wagner commented


Continued refactoring in r2033.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-09 10:28:09: @epitzer commented


Replying to [comment:20 swagner]:

Continued refactoring in r2033. When you are using the GC memory handles, they might actually change while you use them. Why not simply use plain old references to all already objects? They are safer and more transparent and will get rid of the need for GUIDs or ids alltogether.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-14 22:29:04: @s-wagner commented


Replying to [comment:21 epitzer]:

Replying to [comment:20 swagner]:

Continued refactoring in r2033. When you are using the GC memory handles, they might actually change while you use them. Why not simply use plain old references to all already objects? They are safer and more transparent and will get rid of the need for GUIDs or ids alltogether.

OK, I will change this according to your suggestion.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-15 02:18:54: @s-wagner commented


Continued refactoring in r2042.

HeuristicLab-Trac-Bot commented 15 years ago

2009-06-16 03:37:35: @s-wagner commented


Continued refactoring in r2046.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 04:54:29: @s-wagner commented


Starting to commit first results from the refactoring of HeuristicLab.Core and related plugins. Multiple commits will follow now. Please note that the HeuristicLab 3.3 solution might not build until all commits are done.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 05:01:55: @s-wagner commented


Committed HeuristicLab.Core in r2652 and r2653.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 05:04:58: @s-wagner commented


Committed HeuristicLab.Core.Views in r2654 and r2655.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 05:11:07: @s-wagner commented


Committed remaining changes in r2656.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 05:14:58: @s-wagner commented


Finished committing first results from the refactoring of HeuristicLab.Core and related plugins.

NOTE: Not all plugins in the HeuristicLab 3.3 solution have already been adapted to these changes. Therefore they will NOT build at the moment and have to be unloaded in the solution.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-20 17:25:33: @s-wagner commented


Fixed update of execution time in EngineBaseView in r2662.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-21 01:31:42: @s-wagner commented


Started to adapt HeuristicLab.Data and HeuristicLab.Operators in r2663.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-21 02:06:16: @s-wagner commented


Abandoned policy that the names of all abstract base classes have to end with "Base" in r2664. Renaming of all base classes has to be carried out in some other plugins such as HeuristicLab.PluginInfrastructure or HeuristicLab.MainForm as well.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-21 05:11:02: @s-wagner commented


Continued work on HeuristicLab.Data in r2665.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-22 03:29:39: @s-wagner commented


Continued work on HeuristicLab.Data in r2669.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-25 02:34:43: @s-wagner commented


Unified visual appearance of views and continued work on HeuristicLab.Data in r2676.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-25 05:47:13: @s-wagner commented


Continued work on HeuristicLab.Data in r2677.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-26 05:15:33: @s-wagner commented


Continued work on HeuristicLab.Data and HeuristicLab.Operators in r2684.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-26 17:28:19: @s-wagner commented


Fixed error in parameter lookup in r2685.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-27 03:56:21: @s-wagner commented


Started to implement ideas which came up during today's presentation of HeuristicLab.Core and related plugins in r2687.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-28 05:20:09: @s-wagner commented


Finished to implement ideas which came up during yesterday's presentation of HeuristicLab.Core and related plugins in r2694.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-29 02:59:10: @s-wagner commented


Added two new plugins for parameters and parameter views in r2714.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-29 04:16:20: @s-wagner commented


Adapted on parameters to be able to use generic content types of views in r2715.

HeuristicLab-Trac-Bot commented 14 years ago

2010-01-30 05:05:57: @s-wagner commented


Worked on content definitions of views and corrected a bug when cloning a CombinedOperator in r2727.

HeuristicLab-Trac-Bot commented 14 years ago

2010-02-01 20:13:25: @s-wagner commented


Fixed hint path for external libraries used in HeuristicLab.Persistence in r2731.

HeuristicLab-Trac-Bot commented 14 years ago

2010-02-02 18:15:02: @s-wagner commented


Added extension method to pretty print type names in r2739.

HeuristicLab-Trac-Bot commented 14 years ago

2010-02-03 04:43:24: @s-wagner commented


Worked on parameters and operators in r2740.

HeuristicLab-Trac-Bot commented 14 years ago

2010-02-04 03:06:44: @s-wagner commented


Added ItemArray and ItemArrayView in r2746.

HeuristicLab-Trac-Bot commented 14 years ago

2010-02-04 04:49:00: @s-wagner commented


Changed access modifiers in CombinedOperatorView in r2747.