Rule-Based Algorithms