Consensus in Multi-Agent Systems