Reduction Algorithm