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?