1. A method comprising: obtaining, via at least one computing device, a plurality of edges incident to a plurality of vertexes of a graph, each edge representing a similarity relationship between a consumer of a plurality of consumers and an item of a plurality of items and having a weighting as a score of the similarity relationship between the consumer and the item, the plurality of consumers and the plurality of items being represented as vertexes in the graph; obtaining, via the at least one computing device, a plurality of capacity constraints, a capacity constraint of the plurality that is associated with a consumer vertex being a constraint on selection of edges of the plurality of edges incident to the consumer vertex and a capacity constraint of the plurality that is associated with an item vertex being a constraint on selection of edges of the plurality of edges incident to the item vertex; and making, via the at least one computing device, a recommendation using selected edges from the plurality of edges, the selected edges being selected from the plurality of edges in accordance with the plurality of capacity constraints.