I just did some dehydrating exercise in the sun, so this will be what amounts to some pontificating shower thoughts. But you already clicked on the link so you might as well read it.
While trying to solve the knapsack problem I got to thinking about the realities of maximizing utility. Since I am a software engineer and engineering is just building tools to maximize utility, I let my mind frolic down that sweet sweet rabbit hole.
We can look at this problem as simple cost/benefit of each of the items in the group, or we can look at the value of the group as a whole. To understand the value of the group as a whole, we need to understand how things work together. Because right now I’m only interested in value and not cost, I’m going to focus on that. To understand value (or utility) we have to look at some basic principals of engineering. These principles are cohesion and coupling.
Cohesion is how well a group of tools work together and coupling is how difficult it is to get that group of items to play nice with other tools.
Maximizing cohesion is important because it increases utility combinatoric-ally, but decreasing coupling is also important because if you don’t, then utility will plateau. This is because, as we know, diversity is very important to keep from stagnating.