Task 4: Making intermediate decisions

You learn about identifying smaller, intermediate decisions to make your decision easier to manage.

When selecting a camera, multiple factors influence the decision beyond the basic considerations of budget, subject, and user level. Other criteria include camera color, tilt screen availability, viewfinder presence, or weight limitations.

Each additional factor exponentially increases the number of possible cases in a decision table, resulting in more rows to map scenarios to camera models.

Decision tables can grow exponentially with each condition column added. To manage this complexity, you can break the decision logic into smaller, manageable pieces by identifying intermediate decisions. Intermediate decisions work as follows:

  • Intermediate decisions depend on a subset of input data nodes, not all of them.
  • The final decision depends on these intermediate decisions rather than all original inputs.
  • This reduces the number of dependencies for the final decision.
  • Each intermediate decision has its own simplified decision logic

The benefits of breaking the decision logic into smaller, intermediate decisions are the following:

  • Reduces the number of cases the final decision must cover.
  • Decomposes one large decision table into several smaller tables.
  • Each smaller table covers fewer cases due to reduced dependencies.
  • Overall logic becomes more maintainable and understandable.

Take the camera example. Instead of having the camera model depend directly on all inputs, you can introduce an intermediate decision for choosing the sensor format.

An example of a decision table

The suggestion for the camera model goes from depending on the user level, subject, budget, weight limit, and tilt screen to depending on the sensor format, weight limit, and tilt screen. The sensor format depends on the user level, subject, and budget.

This reduces the camera model's dependencies from 5 to 3, significantly simplifying its decision table.

Note: The solution for the following exercises are available through the New decision service wizard under Practice tutorials. For more information about importing samples, see Building decision services.

Exercise 1: Creating a basic decision model

You build a decision model for camera selection with the following components:

  1. Go to the data model and create a new enumeration type weight limit with the three following values: 250 g, 500 g, and 1000 g.
  2. Go to the Models tab and create a new decision model. Then:
    1. Add three input data nodes to the decision model:
      • budget of output type budget
      • subject of output type subject
      • level of output type level
      • weight limit of output type weight limit
      • tilt screen of output type Boolean
    2. Add a decision node camera model and associate it with the output type string.

      Camera models are anonymously named as m1, m2, m3, and so on.

    3. Draw links between the camera model node and the five input data nodes.
  3. Add a decision table to the camera model decision node:
    1. Click the decision node and open the Logic tab.
    2. Click Create rule artifact and select Decision table.
    3. Add the following condition columns: weight limit, tilt screen, user level, budget, and subject.
    4. Add an action column camera model.
    5. Copy row contents from Task 3 into the appropriate columns.
    6. Duplicate rows for the different weight limits and tilt screen options. It requires six copies of the eight original rows.
    Note: For this exercise, leave the decision column empty for simplicity.
The following row represents all cases where:
  • The weight limit is 250 g.
  • No tilt screen is required.
  • The user level is beginner.
  • The budget is high (>= 1500).
A decision table with one row and six columns

Exercise 2: Introducing an intermediate decision

You simplify the decision model by introducing an intermediate decision for the sensor format:

  1. Add a decision node sensor format and associate it with the output type sensor format.
  2. Draw links between the sensor format node and the budget, subject, and level nodes.
  3. Delete the links between the camera model node and the budget, subject, and level nodes.
  4. Draw links between the camera model and the sensor format, weight limit, and tilt screen.
  5. Add a decision table to the sensor format decision node:
    1. Click the decision node and open the Logic tab.
    2. Click Create rule artifact and select Decision table.
    3. Copy row contents from Task 3 into the appropriate columns.
  6. Add a decision table to the camera model decision node:
    1. Click the decision node and open the Logic tab.
    2. Click Create rule artifact and select Decision table.
    3. Add the following condition columns: weight limit, tilt screen, and sensor format.
    4. Add an action column camera.
    5. Add a row for each possible case considering the following constraints:
      • No full-frame cameras under 250 g exist. These rows can be omitted as no suggestion is possible.
      • Only full-frame cameras are suggested if the weight limit is 1000 g.
The following suggests an m1 camera for:
  • A weight limit of 250 g
  • No tilt screen required
  • Micro Four Thirds sensor format
A decision table with one row and four columns

Lessons learned

Decision table rows can grow exponentially with condition columns. In many decision-making problems, breaking large decision tables into smaller ones by using intermediate decisions improves maintainability. However, decomposition is only effective when intermediate decisions break two or more dependencies between input data and the final decision.

The effectiveness of this approach depends on accurate dependency analysis. In the example, we assumed that camera model depends only on sensor format, not on subject, level, or budget. If different APS-C camera models are recommended for beginners versus professionals, this assumption breaks down. Careful analysis of the decision-making problem is essential to identify the correct dependencies.

Limitations

While the example uses only six nodes, real-world problems often involve numerous input data and decision nodes. Diagrams with more than 20 nodes can become difficult to read and understand. The following task presents a method to reduce diagram size and improve readability for complex decision models.