テスト圧縮の問題

n個の故障f1, f2, ..., fnとm個のテストパターンt1, t2, ..., tmに対して,各故障がどのテストパターンで検出されるかの情報が与えられているとする.表1中の○は,故障が検出されることを示している.このとき,すべての故障を検出するための最小数のテストパターンを求める.

表1
t1 t2 t3 t4 ... tm
f1
f2
f3
...
fn
  1. 手順1:F={f1, f2, ..., fn}, T={t1, t2, ..., tm}, Ts=φとする.
  2. 手順2:手順2.1をFまたはTが空になるまで続ける.
  3. 手順2.1:Tの各テストパターンに対して,Fの故障の中で検出する故障数を求め,最も多くの故障を検出するテストパターンを選択し,それをTから除外し,Tsに含める.検出された故障をFから除く.

上記の方法は貪欲法と呼ばれる方法で,少ないテストパターンが選択されますが,最少かどうかは分かりません.他にも色々な方法があります.また,故障数が非常に多い場合,例えば,数千万個以上や,表1のような情報が与えられていない場合など,様々な問題が考えられます.