Finding the best combination of purchases from different retailers

57 Views Asked by At

How best to buy 4 products from different sellers, assuming that purchases from each seller must be at least for a certain amount.

Below is the input data I have.

{
   "items":[
      {
         "name":"item1",
         "sellers":[
            {
               "name":"seller5",
               "price":"37.89"
            },
            {
               "name":"seller3",
               "price":"5.44"
            },
            {
               "name":"seller10",
               "price":"53.66"
            },
            {
               "name":"seller1",
               "price":"32.63"
            },
            {
               "name":"seller9",
               "price":"13.30"
            },
            {
               "name":"seller7",
               "price":"80.81"
            },
            {
               "name":"seller6",
               "price":"67.70"
            }
         ]
      },
      {
         "name":"item2",
         "sellers":[
            {
               "name":"seller10",
               "price":"73.70"
            },
            {
               "name":"seller7",
               "price":"58.72"
            },
            {
               "name":"seller3",
               "price":"55.40"
            },
            {
               "name":"seller5",
               "price":"77.89"
            },
            {
               "name":"seller9",
               "price":"42.52"
            },
            {
               "name":"seller8",
               "price":"50.04"
            },
            {
               "name":"seller1",
               "price":"29.16"
            }
         ]
      },
      {
         "name":"item3",
         "sellers":[
            {
               "name":"seller8",
               "price":"91.76"
            },
            {
               "name":"seller2",
               "price":"42.48"
            },
            {
               "name":"seller3",
               "price":"59.96"
            },
            {
               "name":"seller7",
               "price":"98.46"
            },
            {
               "name":"seller9",
               "price":"31.96"
            },
            {
               "name":"seller6",
               "price":"23.28"
            }
         ]
      },
      {
         "name":"item4",
         "sellers":[
            {
               "name":"seller1",
               "price":"23.81"
            },
            {
               "name":"seller6",
               "price":"63.45"
            },
            {
               "name":"seller9",
               "price":"27.44"
            },
            {
               "name":"seller2",
               "price":"51.22"
            },
            {
               "name":"seller3",
               "price":"82.37"
            },
            {
               "name":"seller8",
               "price":"86.12"
            }
         ]
      }
   ]
}

The algorithm will help you buy products in various online stores that have free delivery from a given amount.

The given example has only 1764 combinations, but ultimately I want to increase the number of products and sellers.

I wrote a brute force algorithm, but it is very time consuming. Is there an optimal algorithm?

0

There are 0 best solutions below