Learning classifier systems ( LCS ) are a family of rule-based machine learning algorithms that combine a discovery component , typically a genetic algorithm , with a learning component , performing either supervised learning , reinforcement learning , or unsupervised learning .