Skip to content

問題22

ATMを通じた支払いシステムをテストします。支払いはデビットカード(D)または現金(C)で行うことができ、受け入れ可否はPIN、要求金額、ATMの設置場所など複数の要因に依存します。ビジネスルールは以下のデシジョンテーブルで定義されています。

ID条件 / アクションR1R2R3R4R5R6R7R8R9R10R11R12
C1支払い方法DDDDDDDDCCCC
C2PIN OKYYYYNNNNn/an/an/an/a
C3要求金額 OKYYNNYYNNYYNN
C4設置場所 OKYNYNYNYNYNYN
A1支払い処理XXXX
A2銀行へ通知XX
A3顧客へ通知XXXXXXXXX

このデシジョンテーブルを最小化した後の**最小の列数(ルール数)**はいくつか?

  • a) 4
  • b) 5
  • c) 6
  • d) 7

最初に各ルールのアクションの組み合わせを整理します。

デビットカード(D)の場合:R1〜R8

ルールC2C3C4A1A2A3
R1YYYX
R2YYNXXX
R3YNYX
R4YNNXX
R5NYYX
R6NYNX
R7NNYX
R8NNNX

現金(C)の場合:R9〜R12

ルールC2C3C4A1A2A3
R9n/aYYX
R10n/aYNX
R11n/aNYX
R12n/aNNX

C2 は現金では常に「n/a」のため、条件として機能しません。

R9 と R10 の統合:

C4 の値のみ異なり、アクションが同じ(A1のみ)なので、C4 をドントケアにして1ルールに統合できます。

C1C2C3C4A1A2A3
RC1(R9+R10)Cn/aY-X

R11 と R12 の統合:

同様に、C4 をドントケアにして統合できます。

C1C2C3C4A1A2A3
RC2(R11+R12)Cn/aN-X

現金ルールは 2列 に削減されます。

デビットカードルールの最小化

Section titled “デビットカードルールの最小化”

R5〜R8の統合(A3のみ):

R5 と R6 は C4 のみ異なるため統合 → (C2=N, C3=Y, C4=-)

R7 と R8 は C4 のみ異なるため統合 → (C2=N, C3=N, C4=-)

さらに (C2=N, C3=Y, C4=-) と (C2=N, C3=N, C4=-) は C3 のみ異なるため統合 → (C2=N, C3=-, C4=-) → A3

R3 との比較:

R3 は (C2=Y, C3=N, C4=Y) → A3 のみ。
統合済み R5〜R8 は (C2=N, C3=-, C4=-) → A3 のみ。
両者は C2 が異なり(Y vs N)、かつ C3・C4 も異なるため、さらなる統合は不可能です。

デビットカードの最小化結果:

ルールC2C3C4A1A2A3元のルール
RD1YYYXR1
RD2YYNXXXR2
RD3YNNXXR4
RD4YNYXR3
RD5N--XR5〜R8

各ルールのアクションパターンが異なるため、これ以上の統合はできません。デビットカードルールは 5列 が最小です。

RD1RD2RD3RD4RD5RC1RC2
C1DDDDDCC
C2YYYYNn/an/a
C3YYNN-YN
C4YNNY---
A1XXX
A2XX
A3XXXXX

合計:5(デビット)+ 2(現金)= 7列

削減の試み結果
RD4(Y,N,Y)→A3 と RD5(N,-,-)→A3 の統合✗ C2 が Y と N で異なり、中間値が存在しない
RD1(Y,Y,Y)→A1 と RD2(Y,Y,N)→A1+A2+A3 の統合✗ アクションが異なる
RD3(Y,N,N)→A2+A3 と RD4(Y,N,Y)→A3 の統合✗ アクションが異なる(A2の有無)
RC1 と RC2 の統合✗ アクションが異なる(A1 vs A3)

d) 7


C1(支払い方法)が「D(デビット)」か「C(現金)」かで、ルールの構造が根本的に異なります。現金では C2(PIN OK)が常に「n/a」となるため、この条件が最初から無効化されます。最小化の前段階として、支払い方法ごとにルールグループを分けて考えることが重要です。

ドントケア(-)を適用できるのは、アクションが完全に一致するルールの間で、1つの条件だけが異なる場合です。段階的に適用します。

  1. まず1条件だけ異なるペアを見つけて統合する
  2. 統合されたルール同士でさらに統合できないか確認する
  3. 異なるアクションパターンのルールは統合できない

最小列数の下限はアクションパターンの種類数

Section titled “最小列数の下限はアクションパターンの種類数”

最小化後の列数は、異なるアクションパターンの種類数が下限となります。この問題では:

アクションパターン
A1 のみRD1, RC1 → 2列
A1+A2+A3RD2 → 1列
A2+A3RD3 → 1列
A3 のみRD4, RD5, RC2 → 3列

合計7列となり、これ以上は削減できません。