CPLEX optimization

IBM® Analytical Decision Management applications can be configured to include the Optimization tab and use complex mathematical (CPLEX) based optimization. An example of such an application is IBM Analytical Decision Management for Campaign Optimization.

Scoring in a CPLEX based application occurs in two phases:

  1. Phase 1 processes the rules and models. This is the same as any other IBM Analytical Decision Management project that does not use CPLEX.
  2. Phase 2 invokes CPLEX to perform the optimization. This phase is unique to IBM Analytical Decision Management projects that use CPLEX. This second phase, which utilizes CPLEX to perform the optimization, can be further divided into two parts:
    1. OPL model processing. The CPLEX OPL component uses the OPL model and incoming data to produce the mathematical structures used by the CPLEX solver. This processing is memory intensive and will not use disk.
    2. CPLEX solver. The memory needed in this phase is indeterminate. While it could slow things down, the solver has the ability to leverage disk if needed.

Projects that use CPLEX based optimization generally do not scale linearly with the number of records scored. All things being equal, increasing the number of records by 10X often results in score times that are significantly larger than 10X (the score times will likely rise exponentially). This occurs because the CPLEX solving phase does not scale linearly. In fact, the solving time is not predictable. It is possible that seemingly larger problems solve faster than smaller problems. This occurs because optimization determines the best combination across all entities taken as a whole, as opposed to determining the best result for each entity taken individually. The algorithms that are used do not scale predictably as the problem size increases.

Performance and resource requirements (memory) are largely indeterminate for the CPLEX solver. In general, more combinations and higher complexity require more resources and more time. The actual data values impact the speed of the optimization. Performance does not scale linearly and is not predictable. Some problems cannot be solved.

The performance of CPLEX based optimization is influenced by many factors such as:

  • Problem size
  • Business problem modeling in the Optimization Programming Language (OPL)
  • The complexity of the OPL model
  • The data (values) being optimized
  • Resources (memory and CPU) available