Contact Optimization 通过将所建议联系分解成称为“组块”的客户随机子样来进行工作。属于单个客户的全部所建议联系以及联系历史记录都是随该客户在其所属组块中处理的。一个客户只能属于单个组块。优化算法的准确度取决于统计上彼此类似的这些客户组块。组块的大小越大,产生此要求的可能性越高。交叉客户容量约束均匀分布在这些组块之间。例如,
Contact Optimization 会话包含一条用于指定最多允许存在 1000 个商品 A 的约束。如果该
Contact Optimization 会话通过 10 个组块运行,那么每个组块都具有最多允许 100 个商品 A 的容量规则。
您可使用算法调整变量 CustomerSampleSize 来设置最大组块大小。组块越大,结果越准确。但是,会话运行时间和内存资源也会增加。如果未仔细规划,请不要使用大于 10,000 的组块大小。许多系统没有足够内存资源来同时处理 10,000 个以上客户。这种缺少内存资源的情况会导致
Contact Optimization 会话运行失败,并且出现内存不足错误。在许多情况下,较大的组块大小可能根本不会显著提高解决方案的最佳性,但仍然要用更多时间和内存来运行。以已优化联系表中留存事务的评分总和的形式度量最佳性。根据特定优化问题和性能需要,您可能需要调整
CustomerSampleSize。
较小的最大组块大小可能促使创建较多组块。此设置使规则更可能依赖于数量比组块数少很多的某个元素(例如电子邮件渠道)。如果组块大小减少至 100,那么将存在 1,000 个组块。现在,规则的最小值小于组块数,这使修改的规则值为 0.02(20 除以 1,000)。在此情况下,2% 的组块使用最小值为 1 的规则,其余 98% 的组块使用最小值为 0 的规则。只要每个组块在统计上类似(与电子邮件渠道相关),Contact Optimization 就会按预期方式处理该规则。如果提供有电子邮件的客户数少于存在的组块数,那么会出现问题。如果仅 500 个客户提供有电子邮件,那么每个组块仅有 50% 的机会包含提供有电子邮件的客户。此外,特定组块同时包含提供有电子邮件的客户和最小值为 1 的规则的可能性仅为 1%。
Contact Optimization 平均返回的商品数仅为 5,而不是所指定最小数目 20。