Job scheduling optimiser user case
Hi,
Has the Anaplan optimiser been succesfully used for a job scheduling problem?
Objective is to minimise the time taken to complete a set of jobs.
Constraints are:
1) We have a list of resources who can each supply a maximum amount of time per time period.
i.e. Time spent by resource A in period X <= Time available for resource A in period X
2) We have a list of jobs to be completed. Each job requires a fixed level of time from each resource to complete.
i.e. Total time required for job by resource A >= Total time spent on job by resource A across all time periods.
3) Some jobs cannot be started until other jobs have completed.
i.e. If task 2 is dependent on task 1 completing.
Time Spent on task 2 in period X =0, if time spent on task 1 >0 in any period >X.
Objective is easy to approximate using linear contraints (peanalising future periods very heavily).
Constraint 1 & 2 are easy to deal with using linear constraints.
While contraint 3 can easily also be modelled in Anaplan, I'm not sure how to model it without using logic which is clearly non-linear and thus not compatible with optimiser.
If anyone has come across this before, please advise as to whether this is possible?
Thanks,
Peter.
Comments
-
Peter,
Optimizer can be configured to have dependent variables constrained by the value of another value in the preceding time period.
I suggest that you separate a given time block into a dynamic time series consisting of hours, blocks, etc. For example, if there are 4 time blocks per day, the variables can be set up like so:
Variable 1: Task 1 Scheduled? (1 = True, 0 = False), dimensionalized by Time Block
Variable 2: Task 2 Scheduled? (1 = True, 0 = False) dimensionalized by Time Block
List: Time Block with a Previous Property
Block 1 (Previous: BLANK)
Block 2 (Previous: Block 1)
Block 3 (Previous: Block 2)
Block 4 (Previous: Block 3)
Constraint 1: Task 1 <=1
Constraint 2: Task 2 <=Task 1[LOOKUP: Previous Time Block]
This will constrain Task 2 so that it can only be scheduled if Task 1 was performed in the previous block. We have some example of this logic in action with a workforce scheduling optimizer where shifts must be contiguous.
--Sam
0 -
peterbrydges Member, ALL USERS, Partner, Certified Master Anaplanner, Certified Model Builder Posts: 5 Certified Master Anaplanner
Hi Sam,
Thank you for your advise.
Two issues I'm still not sure how to cope with;
1) A task may take multiple periods to complete. We need to define when it has completed rather than just scheduled.
It maybe that task 1 completes more than one time period before it is optimal to start task 2.
Thus we cannot just look up the prior time block?
2) I think introducing the additional variables below and linking them to the time the resources spend on the task will make the resource constraint non-linear.
i.e. (Time spent on task 1 by resource A)*(Task 1 Scheduled?)<= Time available for resource A.
Is of form Variable*Variable<= Constant and thus non-linear.
0
Categories
- All Categories
- 2.3K Anaplan Community
- Academy
- Anaplan Talent Builder
- Model Design Course
- The Anaplan Way
- Archive
- 2 Idea exchange
- 62 Enterprise Scale
- 1.1K Extensibility
- 21 Intelligence
- 1.6K Planning & Modeling
- 331 Security
- Community Connections
- Connections
- Experiences
- Groups
- Personas
- Employees
- CS Toolkit
- Customer Care Center
- Forums
- Academy & Training
- Community Feedback & Updates
- Japan
- Anaplan Community Japan
- Anaplan Community Japan Knowledge Base
- HyperCare Japan
- JP-Central
- Support-Japanese
- Partners
- Partner Leadership Council
- Partner Product Council
- 724 Platform
- Anapedia
- App Hub
- Centers Of Excellence
- Extensions
- Planual
- Platform Updates
- 724 User Experience
- Profile Builder
- Resources
- Anaplan Advocates
- Anaplan Live!
- Community
- Community Advancement
- Community Connections
- Partner Program
- The Official Master Anaplanner Program
- Videos
- Welcome to the Anaplan Community!
- Success Central
- Support
- Case Portal Link
- Common Support Questions
- HyperCare Redirect
- Known Issues and Workarounds
- Support test page
- SupportFAQ
- Survey
- 2 Training Day Takeaways