我正在做我的Masters项目,希望您能给我一些有关如何在Java中编程以下问题的想法:
贸易商想购买物品清单。有多个
可以从中购买商品的卖方/市场。市场有
与买方的距离不同。买方必须找出一种方法
在尽可能短的距离内购买最便宜的商品。
实质上,购买者希望在设法找到最便宜的商品的同时将其旅行成本降至最低。
我希望该说明有意义,如果不清楚,请告诉我,我将尝试以不同的方式进行解释。
到目前为止,我有一个Buyer类,Seller类,Item类和Main类。我计划使用Java Point类型放置买方的位置和卖方的位置。
我当时在考虑使用类似Dijkstra算法的最短路径,但问题是,如果买家走得更远,可能会以便宜的价格买到一件商品。
预先感谢您的帮助和时间。
最佳答案
“购买者必须找出一种在尽可能短的距离内购买最便宜的商品的方法。”
那就是找到最便宜的物品的位置,然后找到它们之间最短的路线。
如果在不同的位置以相同的价格可以购买到相同的物品,那么您将为每个路线做最短路径。
或者找到涵盖所有项目的最短路线,然后对价格求和。
仅当您添加了行进距离的成本因素(例如,在不同地点之间行驶的汽油)时,您行进的距离才与购物旅行的费用相关。
您可能要谷歌“遗传算法旅行推销员问题”