Decomposition algorithms for generalized potential games