Using Agents' Commitments for Multi-agent Problem Solving