A Negotiation Protocol For Optimal Decision Making By Collaborating Agents