Generating multiple scenarios

This tutorial shows you how to generate multiple scenarios from a notebook using randomized data. Generating multiple scenarios lets you test a model by exposing it to a wide range of data.

About this task

The files used in this example are in the DO-samples project. The model concerned is StaffPlanning and the notebook is CopyAndSolveScenarios.

Note: To create and run Optimization models you must have both a Machine Learning service added to your project and a deployment space associated with your experiment:
  1. Add a Machine Learning service to your project. You can either do this at the project level (see Creating a Watson Machine Learning Service instance), or this can be done when you first create a new Decision Optimization experiment: click Add a service, select or create a New service, click Associate service in the item bar, then close the pane.
  2. Associate a deployment space with your Decision Optimization experiment (see Deployment spaces). A deployment space can be created or selected when you first create a new Decision Optimization experiment: click Create a deployment space, enter a name for your deployment space and click Create. For existing models, you can also create or select a space in the Overview information pane.


  1. Download and extract all the DO-samples on to your machine. You can also download just the file from the Model_Builder subfolder for your product and version, but in this case do not extract it.
  2. Create a project in IBM Watson Studio. Select Create an empty project, enter a project name and click Create.
  3. In the Overview tab of your project, click add a Machine Learning service and select an existing service instance (or create a new one) and click Select.
  4. Click Add to Project.
  5. Select Decision Optimization experiment.
  6. Select the From file tab in the Decision Optimization experiment pane that opens.
  7. Choose a deployment space from the drop-down menu (or create one) and click Create. If you haven't already associated a Machine Learning service with your project, you must first select Add a service to select or create one, before choosing your deployment space for your experiment.
  8. Click Add file. Then browse and choose the file from the Model_Builder folder selecting the relevant product and version subfolder in your downloaded DO-samples.
  9. Click Create.
    A Decision Optimization model is created with the same name as the sample.
  10. Working in Scenario 1 of the StaffPlanning model, you can see that the solution contains tables to identify which resources work which days to meet expected demand.
    If there is no solution displayed, or to rerun the model, click Run model in the sidebar, then click Run to solve the model.

Using random generator to create new scenarios


  1. In your project, click Add to Project.
  2. Select Notebook.
  3. Select the From file tab in the New notebook pane that opens.
  4. Browse and choose the CopyAndSolveScenarios notebook from the jupyter folder selecting the relevant product and version subfolder in your downloaded DO-samples.
  5. Click Create Notebook.
    The notebook opens in your project.
  6. In the Settings tab of your project, locate the Access Tokens section, and click New token +. Enter a token name, select Editor as the Access role and click Create.
  7. Return to your notebook from the Assets tab of your project and click the pencil icon to edit it. In the More menu More menu icon containing three vertical dots, select Insert Project Token. This adds your authorization token in a hidden cell.
  8. From the main home Navigation Menu, select Administer > Access (IAM) > API keys. Create and copy your API key.
  9. Return to your CopyAndSolveScenarios notebook and locate the cell containing client=Client(pc=pc,apikey="IAM_APIKEY", and replace IAM_APIKEY with your own IBM Cloud API key that you just copied.
  10. Locate the cell containing decision = client.get_model_builder(name="StaffPlanning").
    This cell instructs the notebook to copy Scenario 1 from the StaffPlanning model and use it to generate additional scenarios based on randomized data. If you’ve used another name for your model, replace Staffplanning with the name you chose.
  11. Run the notebook using Cell>Run All.
    The notebook uses the Python random module to generate data for five additional scenarios in the model named StaffPlanning. The new scenarios are named Copy 01 ... Copy 05. The number of scenarios to generate is specified in cell 9, N_SCENARIOS = 5.
  12. Open the StaffPlanning model to compare the solutions of the different scenarios. Click the Scenarios icon to open the Scenario pane and quickly move between scenarios. You can also see all your scenarios at a glance in the Overview pane.
  13. Click Visualization in the navigation pane to compare the different scenarios on the Multi Scenario tab.
    The Demand chart plots the demand for the different periods in the randomly generated scenarios. The KPIs chart plots the total cost across the randomly generated scenarios. The My KPIs chart provides a heat map of costs for the different scenarios along with the mix of temporary and fixed resources for each.


This example shows how easily you can test your model by generating additional scenarios based upon randomized data. Such testing makes it possible to assess whether the model is robust enough to perform effectively in an environment with variable data.