重複割引の最適な組み合わせを決定する

重要

このトピックは、Dynamics 365 for Retail、Dynamics 365 for Finance and Operations Enterprise Edition、および Dynamics 365 for Talent に適用されます。

割引が重複している場合は、最小トランザクションの合計または最上位の割引合計の重複割引の組み合わせを決定する必要があります。 一般的な「Buy 1、get X %off」(BOGO) 小売割引のように、購入される製品の価格に応じて割引額が異なる場合、このプロセスは組合せ最適化の問題になります。

この記事は、Microsoft Dynamics AX 2012 R3 の KB 3105973 (2015 年 11 月 2 日リリース) 以降、および Microsoft Dynamics 365 for Retail に適用されます。 適時に適用できるように重複する割引の組み合わせを決定するために、重複する割引を適用する方法を導入しました。 この新しいメソッドを [基準金額の値のランキング] と呼んでいます。 基準金額の値のランキングは、重複割引の可能な組み合わせを評価するために必要な時間が [小売パラメーター] ページでコンフィギュレーション可能なしきい値を超える場合に使用されます。 基準金額の値のランキング メソッドでは、重複する各ディスカウントについて、共有された製品のディスカウント値を使用して値が計算されます。 重複した割引は、最も高い相対値から最も低い相対値に適用されます。 新しい方法の詳細については、この資料の後半の「基準金額の値」を参照してください。 基準金額の値のランキングは、ある商品の割引額がその取引の他の商品の影響を受けない場合は使用されません。 たとえば、この方法は、2 つの単純割引、または単純割引および 1 つの製品数量割引には使用されません。

割引の例

共通の製品群に対して無制限の小売割引を作成することができます。 ただし、制限がないため、さまざまな製品で使用する割引を計算しようとすると、パフォーマンスの問題が発生する可能性があります。 次の例は、この問題をより詳細に説明しています。 例 1 では、2 つの製品と重複した 2 つの割引から始めます。 次に、例 2 では、製品が追加されるにつれて問題がどのように展開するかを示します。

例 1: 2 つの製品と 2 つの割引

この例では、各割引の資格を得るために 2 つの製品が必要で、割引を組み合わせることはできません。 この例の割引は、[最良価格] 割引です。 どちらの製品も両方の割引の対象となります。 ここに 2 つの割引があります。 重複する割引コンボ 01

いずれの 2 つの製品についても、これらの 2 つの割引のうち、より良いものは 2 つの製品の価格によって異なります。 両方の製品の価格が等しいかほぼ同じであれば、割引 1 がより良いといえます。 1 つの製品の価格が他の製品の価格よりも大幅に低い場合、割引 2 がより良いといえます。 これらの 2 つの割引を相互に評価するための数学的ルールは次のとおりです: 重複する割引コンボ 02

注: 製品 1 の価格が製品 2 の価格の 3 分の 2 に等しい場合、2 つの割引は同等です。 この例では、割引率 1 の有効割引率は数パーセント (2 つの製品の価格が離れている場合) から最大 25 パーセント (2 つの製品が同じ価格の場合) まで変化します。 割引 2 の有効割引率は固定されています。 それは常に 20 % です。 割引 1 の有効割引率は、割引率 2 以上であるか、またはそれ未満である可能性があるので、割り引かれなければならない 2 つの製品の価格によって最適な割引が異なります。 この例では、2 つの製品に 2 つの割引のみが適用されるため、計算が迅速に完了します。 可能な組み合わせは 2 つしかありません: 割引 1 のアプリケーションまたは割引 2 のアプリケーションです。 計算する順列はありません。 各割引の価値は両方の製品を使用して計算され、最適な割引が使用されます。

例 2: 4 つの製品と 2 つの割引

次に、4 つの製品と同じ 2 つの割引を使用します。 4 つの製品は両方とも割引の対象となります。 12 の可能な組み合わせがあります。 最後に、2 つの割引が、3 つの組み合わせの 1 つでトランザクションに適用されます: 割引 1 の 2 つのアプリケーション、割引 2 の 2 つのアプリケーション、または割引 1 の 1 つのアプリケーション、および割引 2 の 1 つのアプリケーション。 可能な組合せを説明するために、異なる価格を持つ 4 つの製品の 2 つの異なるセットを検討します。

  • 4 つの製品はすべて同じ価格、$15.00 です。 この場合、最高の割引組み合わせは割引 1 の 2 つのアプリケーションです。 2 つの製品は定価であり、2 つで 50 % 割引になります。 トランザクションの合計割引額は $ 45 (15 + 15 + 7.50 + 7.50) で、割引前の合計 $ 60 から $ 15 (25%) を差し引いたものです。 割引 2 はわずか $12 (20%) です。
  • 2 つの製品はそれぞれ $20 であり、1 つの製品は $15、および 1 つの製品は $5 です。 この場合、最良の割引組み合わせは、割引 2 の 1 つのアプリケーションおよび割引 1 の 1 つのアプリケーションです。 次の表は、割引を示しています。

表を読み取るには、行の 1 つの製品と列の 1 つの製品を使用します。 たとえば、割引 1 の表では、2 つの $20 の製品を組み合わせると、$10 の割引が得られます。 たとえば、割引 2 の表では、$15 の製品と $5 の製品を組み合わせると、$4 の割引が得られます。 重複する割引コンボ 03

最初に、割引を使用して、2 つの製品から得られる最大の割引を見つけます。 2 つの表は、2 つの製品のすべての組み合わせの割引金額を表示します。 表の網掛け部分は、製品がそれ自体とペアになっている場合、できない場合、同じ割引額を生成し、無視することができる 2 つの製品の逆のペア設定のいずれかを表します。 表を見ると、2 つの $20 品目の割引 1 が、すべての 4 つの製品のいずれかの割引に使用できる最大割引であることがわかります。 (この割引は、最初の表の緑色で強調表示されています。) これにより、$15 の製品と $5 の製品のみが残っています。 2 つの表を再度見ると、これらの 2 つの製品について、割引 1 は $2.50 の割引を、割引 2 は $4 の割引を提供することがわかります。 したがって、割引 2 を選択します。 合計割引は $14 です。 この説明をより簡単に視覚化するために、割引 1 と割引 2 の両方で可能な 2 つの製品の組み合わせの有効な割引率を示す 2 つの追加テーブルがあります。 これらの 2 つの割引については、2 つの製品が割引に入れられる順序は重要ではないため、組合せリストの半分のみが含まれます。 最も高い有効割引率 (25%) は緑で強調表示され、最も低い有効割引率 (10%) は赤で強調表示されます。

重複する割引コンボ 04

注: 価格が変動し、2 つ以上の割引が競合する場合、割引の最良の組み合わせを保証する唯一の方法は、両方の割引を評価し、それらを比較することです。

すべての可能な組み合わせ

このセクションでは、前のセクションの例を続けます。 より多くの商品や割引を追加し、計算して比較する必要がある組み合わせを表示します。 次の表は、製品数量が増加するにつれて可能な割引組み合わせの数を示しています。 この表は、上記の例のように 2 つの重複する割引がある場合と、3 つの重複する割引がある場合の両方を示しています。 すぐに評価する必要がある有効な割引の組み合わせの数は、高速コンピュータであっても、小売取引で受け入れられるように迅速に計算して比較できるものを超えています。

重複する割引コンボ 05

より大きな数量またはより重複した割引が適用される場合、可能な割引組み合わせの総数はすぐに数百万になり、可能な限り最良の組み合わせを迅速に評価して選択するために必要な時間が顕著になります。 小売価格エンジンでは、いくつかの最適化が行われ、評価する必要がある組み合わせの総数が削減されています。 ただし、割引の重複数とトランザクションの数量には制限がないため、重複した割引がある場合は常に多数の組み合わせを評価する必要があります。 この問題は、基準金額の値のランキングが取り組む問題といえます。

基準金額の値のメソッド

評価されるべき指数関数的に増加する組み合わせの問題を解決するために、2 つ以上の割引を適用できる製品セットの各割引の共有製品あたりの価値を計算する最適化が存在します。 この値を、共有製品の割引の [基準金額の値] と呼びます。 基準金額の値は、共有製品が各割引に含まれる場合、合計割引額における製品増加の平均といえます。 基準金額の値は、合計割引額 (DTotal) をとり、共有製品なしの割引額 (共有する DMinus\) を差し引き、その差を共有製品数 (ProductsShared) で割ることによって計算されます。 重複する割引コンボ 06

共有製品郡における各割引の基準金額の値が計算された後、割引は最大限の基準金額の値から最低限の基準金額の値まで、徹底して順番に共有製品に適用されます。 この方法では、1 回の割引インスタンスが適用されるたびに、残りのすべての割引可能性が比較されることはありません。 その代わりに、重複割引は 1 回比較され、その後順番に適用されます。 追加の比較は行われません。 [小売パラメータ] ページの [割引] タブで、基準金額の値のメソッドに切り替えるようにしきい値を設定できます。 合計割引を計算するための許容可能な時間は、小売業によって異なります。 ただし、この時間は、一般に、数 10 ミリ秒から 1 秒の範囲内に入ります。