candidate-eliminate() { S=H中で最も特殊な仮説の集合; G=H中で最も一般的な仮説集合; for(each 事例 d in 事例集合D) if(d が正事例) { d と矛盾する仮説をGから取り除く for(each dと矛盾する仮説 s in S) { Sからsを取り除く S=S∪「dと矛盾せず、G中により一般的な仮説が存在する、 s の最小一般化仮説の集合」 } SからS中の他の仮説より一般的な仮説を削除する } else if(dが負事例) { d と矛盾する仮説をSから取り除く for(each dと矛盾する仮説 g in G) { Gからgを取り除く G=G∪「dと矛盾せず、S中により特殊な仮説が存在する、 g の最小特殊化仮説の集合」) } GからG中の他の仮説より特殊な仮説を削除する } }