update category: algorithm