Autonomous Agents and Multi-Agent Systems