Simulation Techniques for Artificial Intelligence and Artificial Life