Errors in Unica Optimize session results

Many issues that you might encounter in Unica Optimize sessions can be resolved by obtaining details from the session logs. Some of these errors might cause a Unica Optimize session to fail. Some of these errors might be the cause of unexpected optimization results.

The LP solver was unable to find an optimal solution to the chunk problem

Description of problem

The outer algorithm (the part that handles the capacity rules) found that the problem given to it for a customer sample is not solvable. This error might mean that one of two conditions:

  • There is a logical contradiction in the capacity rules.
  • A solution to those rules is not possible with the existing data.

This error can also occur if the scores used for the proposed contacts exceed the numerical precision of the floating point math used. In general, do not exceed a range of 1.0 to 1.0e+11.

Solution

Look for problems with the logic of the capacity rules, and for mismatches with the rules and the proposed contact data. For instance, if a capacity rule requires a minimum of something, make sure that the PCT has at least that many of that item.

Also, check for sample-related provisioning problems. If there seems to be no problem with the rules and data, collect the following files from the log directory of your Unica Optimize installation:

  • Unica Optimize session log
  • All files that start with ACO_

Send these files to Technical Support so that they can analyze them.

The generation loop was unable to eliminate all slack and surplus variables

Description of problem

The outer algorithm (the part that handles the capacity rules) progresses by creating alternative solutions to the per customer rules that are generated by the inner (core) algorithm. It creates alternatives by temporarily changing offers scores, and looking for solutions that have not yet been generated. You receive this error if the following two conditions are met:

  • The outer algorithm cannot satisfy the capacity rules with any of its alternate solutions.
  • The core algorithm is not creating alternative solutions.

This error might mean either of the following conditions:

  • The per customer rules and the capacity rules are inherently in conflict, so no solution is possible.
  • The data is such that a solution is not possible.
Solution

Look for problems with the logic of the rules, and for mismatches with the rules and the proposed contact data. For instance, You have a per customer minimum of 1 on all offers, channels, and segments. This rule results in at least as many offers as there are customers in the results. If you also have a capacity rule with a maximum value that was less than the number of customers, this rule causes an inherent logical conflict between the per customer rule and the capacity rule.

Also, check for sample-related provisioning problems. If there seems to be no problem with the rules and data, collect the following files from the log directory of your Unica Optimize installation:

  • Unica Optimize session log
  • All files that start with ACO_

Send these files to Technical Support so that they can analyze them.

You can use the ContinueOnGenerationLoopError configuration property to have Unica Optimize skip the set of customers if this error occurs or stop the Unica Optimize session.

Unprocessable customer

Description of problem

At the end of each session run, there are some log entries that summarize the results. One of the entries is: "Total # of Unprocessable Customers". This error indicates that no solution can be found for the number of customers shown. When this error occurs, it is not an unrecoverable error. The result is that the "unprocessable" customers receive no offers.

You can get a separate file that contains details of unprocessable customers in comma-separated values (CSV) format in the Unica Optimize server log directory by setting the Optimize|logging|enableBailoutLogging property to TRUE. This file is unprocessables_10-digit-session-ID.csv and is in the partition/partition[n]/logs directory in the Unica Optimize installation directory. Customers skipped because they cannot be processed are marked with unprocessable in the unprocessables_10-digit-session-ID.csv file.

Solution

Unprocessable customers can occur for one of the following reasons:

  • The rules and data make it impossible to find a solution.

    If you set ContinueOnGenerationLoopError to True and you receive the error The generation loop was unable to eliminate all slack and surplus variables, the customers from the set that caused the error are marked as unprocessable.

  • The algorithm exceeded the number of alternatives to solve the problem.

    The number of alternatives is configured by the Optimize|AlgorithmTuning| MaxAlternativesPerCustomerEvaluated property in the session level advanced settings and the configuration properties. Setting the value of this property to a higher number lowers the likelihood that the customer is unprocessable (assuming that it is not inherently unsolvable). However, when it occurs, it also makes the performance penalty higher.

No offers

Description of problem

If a particular customer receives no offers, it is not necessarily an error. Unless a per customer minimum is found in the per customer rules, it is perfectly legal to reject all offers of some customers, if no rules are violated and the overall score is maximized. It can also be a side-effect of an error, as when there is no legal combination of offers given the rules, or when the customer is unprocessable.

Solution

Check the following conditions:

  • Whether a per customer minimum exists in the rules
  • Ensure that given the rules, all combinations are legal
  • Whether there are any unprocessable customers

Invalid size provided to the init count table. (1,0): CODE 5: Internal Error 5

Description of problem
No channel offer attribute values are defined.
Solution
You must define some channel offer attribute values.

Unica Optimize does not satisfy Max limit of Min/Max # Offers Capacity rule

Description of problem

Unica Optimize session does not meet the maximum setting of the Min/Max # Offers Capacity rule.

The minimum and maximum limits of the Min/Max # Offers Capacity rule are not hard limits. The Unica Optimize session generates less than the maximum number of offers if there are not enough proposed contacts. However, occasionally even when there are enough proposed contacts that meet criteria, the maximum is not met.

Solution

There are many reasons why solutions are not found, dependent on your set of rules and data. Some possible reasons include:

  • Using fractional scores between -1 and 1. Fractional scores between -1 and 1 might give suboptimal results. Fractional scores greater than 1 and less than -1 are allowed.
  • Using a range of scores greater than 100,000. If your range of scores is outside of this limitation, the Unica Optimize might not meet capacity rules.