Activities: Beginning of the planning engine

Activities: Beginning of the planning engine

The ground work of the Strolch planning engine has been laid.

One of the core ideas in building Strolch was to create a planning engine. The planning engine would work in combination of Order objects representing customer orders, Resource objects representing machines, human resources, etc., and Activity/Action hierarchies defining a workflow.

With the latest couple of commits to Strolch we have now added Activities and a basic planning of Actions onto Resources. Activities have an ordered list of IActivityElement which allows creating an arbitrary deep tree structure of Activity and Action elements.

Action objects have a list of IValueChange objects which define the start, end and further value changes over time on a referenced Resource. Thus planning an Activity is done by iterating the Activity hierarchy and for every Action selecting a relevant Resource and then then applying the changes of the Action on to the referenced TimeState on the Resource.

This implementation is currently very simple as it ignores all constraints which a Resource might have. In further development we shall implement a Violation model so that UIs can be built to visualize the over-use of Resources.

In even further steps we would then start implementing algorithms to not just apply the changes onto a Resource, but to actually search the Resource for time slots when the value changes would not violate any constraints applied to the resource.

We are very much looking forward to these new features. Stay tuned for your updates - even though they do take their time to arrive =).