App is hosted at this link
- Initialize h to the most specific hypothesis in H
- For each positive training instance x
- For each attribute constraint ai in h
- If the constraint ai in h is satisfied by x
- Then do nothing
- Else replace ai in h by the next more general constraint that is satisfied by x
- For each attribute constraint ai in h
- Output hypothesis h
G <- maximally general hypotheses in H
S <- maximally specific hypotheses in H
For each training example d, do
- If d is a positive example
- Remove from Gany hypothesis inconsistent with d
- For each hypothesis s in S that is not consistent with d
- Remove s from S
- Add toSall minimal generalizations h of s such that
- h is consistent with d, and
- some member of G is more general than h
- Remove from S any hypothesis that is more general than another hypothesis in S
- If d is a negative example
- Remove from S any hypothesis inconsistent with d
- For each hypothesis g in Gthat is not consistent with d
- Remove g from G
- Add to G all minimal specializations h of g such that
- h is consistent with d, and
- some member of S is more specific than h
- Remove from G any hypothesis that is less general than another hypothesis in G