Contact Optimization セッションの結果におけるエラー

Contact Optimization セッションで発生する問題点の多くは、セッション・ログから詳細を取得して解決できます。これらのエラーの中には、Contact Optimization セッションの失敗を招く可能性のあるものがあります。これらのエラーの中には、最適化に想定外の結果を招く原因となるものがあります。

LP ソルバーがチャンクの問題に対する最適なソリューションを判別できなかった

問題の説明

外部アルゴリズム (キャパシティー・ルールを処理する部分) で、与えられた顧客サンプルの問題を解決できないことが検出されました。このエラーは、次の 2 つの状態のいずれかを示している可能性があります。

  • キャパシティー・ルールに論理上の矛盾がある。
  • これらのルールに対するソリューションを既存のデータに適用できない。

また、推奨コンタクトに対して使用されるスコアが、使用される浮動小数点演算の数値精度を超えている場合にも、このエラーが起きることがあります。一般的に、これは 1.0 から 1.0e+11 の範囲を超えてはなりません。

解決策

キャパシティー・ルールのロジックに問題がないかどうか、またルールと推奨コンタクト・データに不一致がないかどうか調べてください。例えば、キャパシティー・ルールで何かの最小値が定められている場合、PCT にその項目が最小数以上含まれていることを確認してください。

また、サンプルに関連したプロビジョニングの問題がないかどうかも確認してください。ルールとデータに問題がないと思われる場合は、Contact Optimization のインストール済み環境のログ・ディレクトリーから以下のファイルを収集してください。

  • Contact Optimization セッション・ログ
  • 次の文字で始まるすべてのファイル: ACO_

これらのファイルを IBM® テクニカル・サポートにお送りいただければ、その内容を分析いたします。

生成ループは、遊び変数および余剰変数を全部は除去できませんでした (The generation loop was unable to eliminate all slack and surplus variables)

問題の説明

外部アルゴリズム (キャパシティー・ルールを処理する部分) は、内部 (コア) アルゴリズムによって生成された顧客ごとのルールの代替ソリューションを作成することによって処理を進めます。その際、オファー・スコアを一時的に変更し、未生成のソリューションを探すことにより、代替ソリューションを作成します。このエラーは、次の 2 つの条件が当てはまる場合に発生します。

  • 外部アルゴリズムが、そのいずれかの代替解決策でキャパシティー・ルールを満たすことができない。
  • コア・アルゴリズムが代替解決策を作成していない。

このエラーは、次の状態のいずれかを意味している場合もあります。

  • 顧客ごとのルールとキャパシティー・ルールが本質的に矛盾しているため、使用できるソリューションがない。
  • 適用できるソリューションがないデータである。
解決策

ルールのロジックに問題がないかどうか、またルールと推奨コンタクト・データに不一致がないかどうか調べてください。例えば、顧客当たりの最小値がすべてのオファー、チャネル、セグメントについて 1 であるとします。このルールでは、少なくとも、結果に含まれる顧客数と同じ数のオファーが存在することになります。この場合に、顧客数よりも少ない最大値を定めたキャパシティー・ルールがあると、顧客ごとのルールとキャパシティー・ルールに本質的な論理上の矛盾が存在することになります。

また、サンプルに関連したプロビジョニングの問題がないかどうかも確認してください。ルールとデータに問題がないと思われる場合は、Contact Optimization のインストール済み環境のログ・ディレクトリーから以下のファイルを収集してください。

  • Contact Optimization セッション・ログ
  • 次の文字で始まるすべてのファイル: ACO_

これらのファイルを IBM テクニカル・サポートにお送りいただければ、その内容を分析いたします。

エラーが発生したか、Contact Optimization セッションが停止した場合、ContinueOnGenerationLoopError 構成プロパティーを使用して、Contact Optimization が顧客セットをスキップするようにすることができます。

処理不能な顧客

問題の説明

各セッションの実行終了時に、結果を要約するログ項目がいくつか記録されます。その 1 つに「処理不能な顧客の総数」という項目があります。このエラーは、示されている顧客数に対して、ソリューションが見つからないことを示しています。このエラーが発生した場合、これはリカバリー不能エラーではありません。結果は、処理不能な顧客はオファーを 1 つも受け取らないということになります。

処理不能な顧客の詳細を含む個別ファイルをコンマ区切り値 (CSV) 形式で Contact Optimization サーバーのログ・ディレクトリーに保存するには、Optimize|logging| enableBailoutLogging プロパティーを TRUE に設定します。このファイルは unprocessables_10-digit-session-ID.csv で、Contact Optimization インストール・ディレクトリーの partition/partition[n]/logs ディレクトリーにあります。処理できないためにスキップされた顧客には、unprocessables_10-digit-session-ID.csv ファイルで「処理不能」というマークが付けられます。

解決策

処理不能な顧客は、以下のいずれかの理由で発生する可能性があります。

  • ルールとデータが原因で解決法がない

    ContinueOnGenerationLoopError を True に設定し、「生成ループで除去できなかったスラック変数と余剰変数がある (The generation loop was unable to eliminate all slack and surplus variables)」というエラーが発生した場合、このエラーが発生したセットの顧客は、処理不能というマークを付けられます。

  • アルゴリズムが問題を解決するための代替手段の数を超えた。

    代替手段の数は、セッション・レベルの拡張設定や構成プロパティーにある Optimize|AlgorithmTuning| MaxAlternativesPerCustomerEvaluated プロパティーで設定されます。このプロパティーの値を大きく設定すると、顧客が処理不能になる確率を下げることができます (本質的に解決不能ではない場合)。ただし、この設定により、顧客が処理不能になった場合にパフォーマンスが低下する危険が高まります。

オファーがない

問題の説明

特定の顧客がオファーを受け取らない場合、それは必ずしもエラーではありません。顧客ごとのルールで顧客当たりの最小値が定められていない場合、一部の顧客についてすべてのオファーが拒否されたとしても、ルール違反がなく、合計スコアが最大になる限り、それは正しい結果です。指定されたルールに対して正しいオファーの組み合わせが存在しない場合か、顧客が処理不能な場合、これはエラーの副次作用であることもあります。

解決策

以下の条件を確認します。

  • ルールに顧客当たりの最小値が存在するかどうか
  • 指定したルールに対し、すべての組み合わせが正しいこと
  • 処理不能な顧客が存在するかどうか

初期カウント・テーブルに指定されたサイズが無効。(1,0): コード 5: 内部エラー 5

問題の説明
チャネル・オファー属性値が定義されていません。
解決策
チャネル・オファー属性値を定義する必要があります。

Contact Optimization は、 「最小/最大オファー数キャパシティー・ルール (Min/Max # Offers Capacity rule)」の上限を満たしません。

問題の説明

Contact Optimization セッションは、 「最小/最大オファー数キャパシティー・ルール (Min/Max # Offers Capacity rule)」の最大設定を満たしません。

「最小/最大オファー数キャパシティー・ルール (Min/Max # Offers Capacity rule)」の下限と上限は、ハード・リミットではありません。Contact Optimization セッションが生成するオファーの数は、 推奨コンタクトの数が十分でない場合に、オファーの最大数未満になります。ただし、ときとして、基準を満たす推奨コンタクトが十分にある場合でも、オファーが最大数に満たないことがあります。

解決策

ルールとデータの組み合わせにより、解決法が見つからない理由はさまざまです。考えられる理由には、次のようなものがあります。

  • -1 から 1 までの小数スコアを使用している。-1 から 1 までの小数スコアを使用すると、部分的にしか最適化されていない結果が得られる可能性があります。1 よりも大きいか、-1 よりも小さい小数スコアは許可されます。
  • 100,000 よりも大きいスコア範囲を使用している。スコア範囲がこの制限を超えている場合、 Contact Optimization はキャパシティー・ルールを満たさない可能性があります。