There's this side project I'm working on where I need to structure a solution to the following problem.

I have two groups of people (clients). Group "A" intends to buy and group "B" intends to sell a determined product "X".

The product has a series of attributes x_i and my objective is to facilitate the transaction between "A" e "B" by matching their preferences. The main idea is to point out to each member of "A" a corresponding in "B" who’s product better suits his needs, and vice versa.

Some complicating aspects of the problem:

  1. The list of attributes is not finite. The buyer might be interested in a very particular characteristic or some kind of design which is rare among the population and I can’t predict. Can’t previously list all the attributes;

  2. Attributes might be continuous, binary or non-quantifiable (ex: price, functionality, design).

Any suggestion on how to approach this problem and solve it in an automated way?
The idea is to really think out of the box here so feel free to "go wild" on your suggestions.

I would also appreciate some references to other similar problems if possible.

  • 4
    $\begingroup$ This question appears to cross posted across multiple sites. While it may be on topic here, it is also on topic (and has gained an answer) on Data Science.SE. Questions should exist in one place only unless there are extenuating circumstances. $\endgroup$ – MichaelT Jun 19 '14 at 2:43
  • $\begingroup$ As a computing problem it's hard to even make a start without some idea of scale and the success criteria. Is a cross-product possible? Should the answer be optimal, or just good enough? More info please. $\endgroup$ – david.pfx Jun 19 '14 at 6:30
  • $\begingroup$ You need to define the question better, e.g., what is "better suit their needs" $\endgroup$ – lgylym Jun 19 '14 at 11:01

This can be a cross between machine learning and simple matching exercise.

I think X_i tend to be rather defined and finite, while A_i can be vague and not finite. From a pure algorithm perspective I would search for instances where X_i = A_i and store the results into a container of sort. The more hits for certain X'es where X_i_n = A_i_k the more points X scores. X'es are then presented to A in the order of points from best match to lowest match.

Onto the machine learning mechanism, as the algorithm serves a lot of As (by that mean thousands and thousands, even millions) patterns will start to develop and certain combination of A_i's will be more prevalent, or in other words, worth more to other A_i's for a certain category of A. Using these patterns, the weighting of points will be re-balanced for higher chance of hitting the correct offers.

Kind of like how a search engine works.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.