Optimize vs Suggest

What is the difference between using optimize and suggest for allocating jobs?

Skedulo’s optimized scheduling uses two methods for automated job scheduling: Suggest and Optimize.

Suggest

You can use Suggest to find the best times to schedule a single job given a set of resources and a specific scheduling window.

Suggest uses real time optimization for schedulers who need to determine the best available resources to allocate work to on demand.

Suggest “suggests” an optimal time and resource to complete the job.

Suggest using the web application

To use Suggest in the Skedulo web application, open the job card for the job that you want to schedule in the Scheduling page.

Click the lightbulb icon on the card to populate the suggested times for you to schedule the job against the resources in your swimlane.

Suggest in the Skedulo web application.

Suggest using Planr REST API

You can use the Planr REST API for two types of Suggest functionality:

  • The /planr/optimize/suggest endpoint finds the best time to schedule a job given a set of resources for within a specified scheduling window. The request body provides the job UID , a list of resource IDs, and the scheduling window. The response provides a list of available resources and the time they are available to complete the job.

    See the Suggest: times to schedule a job section in this chapter of the developer documentation for more information about how to use the /optimize/suggest endpoint.

  • The /planr/optimize/resource_suggestions endpoint provides a list of resources that are available to complete the job and the time they are available. The request body provides the job UID, a list of resource IDs, and the time window for which you want to check their availability to do the given job. The response provides a list of the resources available during that timeframe, the time they are available to start the job, their current workload capacity, and any constraint violations.

    See Suggest: Resources and times for a job for more information about using the resource_suggestions endpoint.

See the API documentation for more information about how to use the Suggest optimized scheduling feature.

Optimize

Optimize takes a global view of scheduling multiple jobs and resources across a scheduling window. Unlike Suggest, which optimizes a single job, Optimize attempts to look at all possible job scheduling and resource assignments to create a valid scheduling solution.

Optimize using the Skedulo web application

You can use the Skedulo web application to run Optimize on multiple jobs and resources.

  1. Open the Scheduling page and select the jobs that you want to optimize.
  2. Select the optimization configuration options that you want the engine to take into account, such as Balanced Workload, Minimum Resources, or other settings such as Ignore travel on first job.
  3. Click the lightning bolt icon in the upper-left corner of the scheduling window.

The following is an example of optimized scheduling solution using Minimum Resources in the Skedulo web application:

Optimized jobs in the Skedulo web application.

For information about how to use the Optimize feature in the Skedulo web application, see the knowledge base article: Automate scheduling with optimization.

Optimize using the Optimization REST API

The /optimization/schedule endpoint attempts to schedule jobs against a given list of resources and returns a valid schedule. You can use this endpoint to specify availability windows for resources who are available outside the scheduling window for the job/s you want to schedule. This prevents optimization from returning invalid solutions and provides an extra layer of flexibility in optimized job scheduling.

See Optimize for more information about using the /optimize/schedule endpoint.

See the API documentation for more information about how to use the Optimize feature.


Suggest: Resources and times for a job

Optimize resources, schedule, and dispatch a job using the optimize/resource_suggestions endpoint and GraphQL


Suggest: Times to schedule a job

Optimize resources, schedule, and dispatch a job using the optimize/suggest endpoint and GraphQL


Optimized scheduling using the Skedulo API

Find a valid scheduling solution for multiple jobs and resources.