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 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 =).