Automated negotiation for complex multi-agent resource allocation