I mean like goal programming optimization programs like old Simplex for example have a series of goals which are prioritized and each step creates the constraints for the next step. Simplex involves linear inequality constraints, which corresponds to like a high dimensional hypergem. Simplex ignores the interior of that object and traverses the vertices. It only scrapes the surface, the most optimal, and its path dependent, prone to wildly different results depending on priority ordering. A much less efficient approach but much bigger solution space would involve including the sub-optimal space (some of it anyway) and without a prioritization scheme. Like you could have a formula representing offense and one representing defense and say on a scale of 1 to 100 for each you could seek sets where Offense > 95 and Defense > 75 (just a stylized example to get at the boolean string idea), or you could require Offense > 95 and then optimize the best defense that meets that requirement. I don't want to get complicated suggesting you actually develop Offense and Defense models but rather want to provide a simplistic stylized example of a non- or less prioritization based approach.