Heterogeneous-Agent Reinforcement Learning Algorithms