I have a directed acyclical graph. Each node represents an event with start and end dates and each edge represents a constraint between to events with 2 properties:
- max interval between previous event end and next event start
- min interval between previous event end and next event start
When an event's date is updated, all edge constraints should be respected and every other event's date should be recalculated if those constraints are violated. Problem is that there might be multiple conflicting constraints and I'm struggling to find best way to traverse the graph updating events without breaking previously satisfied constraints.
I have no formal CS education and my knowledge in this area is quite limited. Is there an existing algorithm to solve my problem?