candidate eliminate(候補消去)アルゴリズム

事例と矛盾しない仮説のうち,最も特殊な仮説集合Sおよび最も一般的な仮説集合Gを導く. SとGの間の仮説は全て事例と矛盾しない仮説となる.
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中の他の仮説より特殊な仮説を削除する
	    }
}