Selecting a Decision domain in the Modeling Assistant

There are different decision domains currently available in the Modeling Assistant and you can be guided to choose the right domain for your problem.

Once you have added and imported your data into your model, the Modeling Assistant helps you to formulate your optimization model by offering you suggestions in natural language that you can edit. In order to make intelligent suggestions using your data, and to ensure that the proposed model formulation is well suited to your problem, you are asked to start by selecting a decision domain for your model.

Decision Optimization domains

The different decision domains currently available (Scheduling, Resource Assignment, Selection & Allocation, and Supply & Demand Planning) are presented as cards. If you hover over each card, you can read a brief description of each domain. If you know which option to choose you can select a decision domain and start formulating your model. Further information about each domain is provided later in this section.

If you are not sure of which decision domain to choose, you can select "Use this question and answer guide" and the Modeling Assistant will ask you a few questions and, based on your reply, it will quickly tell you which option you need.

The following diagram summarizes these questions and choices. The actual phrasing of these questions might vary and examples are also provided with each question, in the Modeling Assistant interface.

Flowchart showing question and yes-no answers leading to the choice of optimization model types

If you need a decision domain that is not currently supported by the Modeling Assistant, you can still formulate your model as a Python notebook or as an OPL model in the model builder editor.


Scheduling problems are about ordering things. You can use the Scheduling domain when you have tasks or activities that you need to schedule, to be done in a given order with specific start and end times, and rules (or precedence constraints) concerning what items can be performed before or after others. Your objective might be, for example, to minimize the total time taken to carry out all the tasks, or to minimize costs and to use resources efficiently. You also have the option to assign resources so that the solution will also tell you which particular resource to assign each task to. An assignable resource is a resource with capacity one. It can only be used in one way at the same time. Scheduling with assignable resources is a very special case of scheduling. If two tasks need the same assignable resource then these two tasks cannot overlap and must be put in order: one of the two tasks must be performed before the other. The HouseConstructionScheduling example provided in the DO-samples and described later in this section is a example of a Scheduling problem with assignment.

Resource Assignment

Resource Assignment problems are about matching things. You can use the Resource Assignment domain when you want to assign (or match) resources (workforce, equipment, budget,...) to targets (jobs, events, places), given their respective constraints. Your objective might be, for example, to minimize cost, or to maximize revenue from this assignment. The solution will provide you with a set of assignments (resource - target pairs). You can also choose to let the solution determine the quantities of resources needed for the assignments. The MarketingCampaignAssignment model provided in the DO-samples is an example of the Resource Assignment domain.

Selection and Allocation

Selection problems are about choosing from a list of possibilities. You can use the Selection and Allocation domain when you have combined all the possible choices you want to consider in one single table. This table might, for example, contain a pre-selection of choices you have already made based on predictive analysis. There might be still, however, a large number of possibilities to select from. You want Decision Optimization to help you decide the best (optimal) selection of these items (or combinations) so that you can attain your objectives and respect your constraints. Decision Optimization can also tell you the optimal quantities to allocate to each choice if this is appropriate. A typical example of a Selection and Allocation model is the sample PortfolioAllocation where you have several financial stock investments to select from. Also, the MarketingCampaignAssignment sample contains the scenario Scenario 4 - Selection which shows you how to formulate this Marketing Campaign problem as a Selection and Allocation model. In this case you have different marketing campaigns to select from all listed in the same data table.


Planning problems are about quantifying things. You can use the Planning domain when you want to decide what quantities or levels to have (for example inventory, production, materials, service) over periods of time (for example weeks, months, quarters). A typical example of a Planning model is a Production Planning problem where you need to know how much raw materials to have in stock in each quarter to be able to produce the optimal number of products to satisfy your demand.