Errors in Contact Optimization session results
Many issues that you might encounter in Contact Optimization sessions can be resolved by obtaining details from the session logs. Some of these errors might cause a Contact Optimization 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:
*
*
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 Contact Optimization installation:
*
*
Send these files to IBM® 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:
*
*
This error might mean either of the following conditions:
*
*
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 Contact Optimization installation:
*
*
Send these files to IBM® Technical Support so that they can analyze them.
You can use the ContinueOnGenerationLoopError configuration property to have Contact Optimization skip the set of customers if this error occurs or stop the Contact Optimization 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 Contact Optimization 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 Contact Optimization 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:
*
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 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:
*
*
*
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.
Contact Optimization does not satisfy Max limit of Min/Max # Offers Capacity rule
Description of problem
Contact Optimization 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 Contact Optimization 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:
*
*