topic Job scheduling optimiser user case in Anaplan Platform
https://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/42907#M4710
<P>Hi,</P><P> </P><P>Has the Anaplan optimiser been succesfully used for a job scheduling problem?</P><P> </P><P>Objective is to minimise the time taken to complete a set of jobs.</P><P> </P><P>Constraints are:</P><P>1) We have a list of resources who can each supply a maximum amount of time per time period.</P><P>i.e. Time spent by resource A in period X <= Time available for resource A in period X</P><P> </P><P>2) We have a list of jobs to be completed. Each job requires a fixed level of time from each resource to complete.</P><P>i.e. Total time required for job by resource A >= Total time spent on job by resource A across all time periods.</P><P> </P><P>3) Some jobs cannot be started until other jobs have completed. </P><P>i.e. If task 2 is dependent on task 1 completing.</P><P>Time Spent on task 2 in period X =0, if time spent on task 1 >0 in any period >X.</P><P> </P><P>Objective is easy to approximate using linear contraints (peanalising future periods very heavily).</P><P>Constraint 1 & 2 are easy to deal with using linear constraints.</P><P>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.</P><P> </P><P>If anyone has come across this before, please advise as to whether this is possible?</P><P> </P><P>Thanks,</P><P> </P><P>Peter.</P>Wed, 20 Mar 2019 16:14:58 GMTpeterbrydges2019-03-20T16:14:58ZJob scheduling optimiser user case
https://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/42907#M4710
<P>Hi,</P><P> </P><P>Has the Anaplan optimiser been succesfully used for a job scheduling problem?</P><P> </P><P>Objective is to minimise the time taken to complete a set of jobs.</P><P> </P><P>Constraints are:</P><P>1) We have a list of resources who can each supply a maximum amount of time per time period.</P><P>i.e. Time spent by resource A in period X <= Time available for resource A in period X</P><P> </P><P>2) We have a list of jobs to be completed. Each job requires a fixed level of time from each resource to complete.</P><P>i.e. Total time required for job by resource A >= Total time spent on job by resource A across all time periods.</P><P> </P><P>3) Some jobs cannot be started until other jobs have completed. </P><P>i.e. If task 2 is dependent on task 1 completing.</P><P>Time Spent on task 2 in period X =0, if time spent on task 1 >0 in any period >X.</P><P> </P><P>Objective is easy to approximate using linear contraints (peanalising future periods very heavily).</P><P>Constraint 1 & 2 are easy to deal with using linear constraints.</P><P>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.</P><P> </P><P>If anyone has come across this before, please advise as to whether this is possible?</P><P> </P><P>Thanks,</P><P> </P><P>Peter.</P>Wed, 20 Mar 2019 16:14:58 GMThttps://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/42907#M4710peterbrydges2019-03-20T16:14:58ZRe: Job scheduling optimiser user case
https://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45563#M5522
<P>Peter,</P><P> </P><P>Optimizer can be configured to have dependent variables constrained by the value of another value in the preceding time period.</P><P> </P><P>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:</P><P> </P><P>Variable 1: Task 1 Scheduled? (1 = True, 0 = False), dimensionalized by <STRONG>Time Block</STRONG></P><P>Variable 2: Task 2 Scheduled? (1 = True, 0 = False) dimensionalized by <STRONG>Time Block</STRONG></P><P> </P><P>List: <STRONG>Time Block</STRONG> with a Previous Property</P><P>Block 1 (Previous: BLANK)</P><P>Block 2 (Previous: Block 1)</P><P>Block 3 (Previous: Block 2)</P><P>Block 4 (Previous: Block 3)</P><P> </P><P><STRONG>Constraint 1:</STRONG> Task 1 <=1</P><P><STRONG>Constraint 2:</STRONG> Task 2 <=Task 1[LOOKUP: Previous Time Block]</P><P> </P><P>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.</P><P> </P><P>--Sam</P>Mon, 13 May 2019 18:05:07 GMThttps://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45563#M5522samaplan2019-05-13T18:05:07ZRe: Job scheduling optimiser user case
https://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45719#M5576
<P>Hi Sam,</P><P> </P><P>Thank you for your advise.</P><P>Two issues I'm still not sure how to cope with;</P><P> </P><P>1) A task may take multiple periods to complete. We need to define when it has completed rather than just scheduled.</P><P>It maybe that task 1 completes more than one time period before it is optimal to start task 2.</P><P>Thus we cannot just look up the prior time block?</P><P> </P><P>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.</P><P> </P><P>i.e. (Time spent on task 1 by resource A)*(<SPAN>Task 1 Scheduled?)<= Time available for resource A.</SPAN></P><P><SPAN>Is of form Variable*Variable<= Constant and thus non-linear.</SPAN></P>Wed, 15 May 2019 15:54:41 GMThttps://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45719#M5576peterbrydges2019-05-15T15:54:41ZRe: Job scheduling optimiser user case
https://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45723#M5577
<P>Hello for your 3rd constraint, could you try creating a variable wich is beggining of job </P><P>You will also create a properties which is ending of dependant job</P><P>for this property, you will add a formula which says that it is equal to the variable beggining of job + time to achieve the job</P><P>then in your constraint module, you write beggining of job- the properties >= 0</P><P>If you want i can try to do it with you tomorrow, because i don't know if the idea i shared is very clear</P>Wed, 15 May 2019 16:22:21 GMThttps://community.anaplan.com/t5/Anaplan-Platform/Job-scheduling-optimiser-user-case/m-p/45723#M5577dihya.atmani2019-05-15T16:22:21Z