What would be the objective functions for this problem?

217 Views Asked by At

I have the following data (this is just a sample of my entire dataset):

# Distance PriceIndex Rating
1 400      3          5
2 420      2          4
3 500      1          2

Considering the PriceIndex indicates if a venue is less (1) or more (4) pricey, and the rating from 1 (worst) to 5 (best).

There is not preference between Distance, PriceIndex and Rating, so how should my objective function should be so I can provide the number of the best solutions considering the following objectives?

  • minimize Distance
  • minimize PriceIndex
  • maximize Rating

UPDATE

The only restrictions this problem has are: Rating must be > 2 and another binary var (let's call it X) that must be equal to 1.

This will be used in a mobile application developed for a college homework. So think about apps like Foursquare (now Swarm) that suggest restaurants nearby. The idea here is to provide not just the places nearby but also the best rated and less pricey.

This homework is about solving multiobjective optimization problems using heuristics and/or metaheuristics.

1

There are 1 best solutions below

9
On BEST ANSWER

Edited based on OP comments

You can use the concept of "non-dominated" solutions to great effect here. Since you've stated that there is no preference for any of the criteria, we can't really use a preemptive approach. Also, you are not really looking for the optimal site, so an objective function doesn't really make sense here.

First, lets calculate a normalized distance on a 1-5 scale: 1=Distance to furthest site, 5=distance to closest site, others are calculated as:

$$\mathrm{DistFactor_i=} 5-\frac{dist_i-dist_{min}}{dist_{max}-dist_{min}}$$

Next, invert your cost factor so that 1=Most expensive, 5=least expensive. This will allow us to represent each site in the space $(x,y,z)\in \mathbb{[1,5]}^3$.

You can now use one of the algorithms in this paper or here to find the "nondominated" set of points in this space. It is the sites corresponding to these points that your app should return.