一个比较复杂的综合性算法问题:无向加权图,集装箱

sxbyl 2009-01-08 12:18:34
问题是这样的,某商人,有一辆容量为A的空的集装箱卡车,开始位于B国的C城市,B国还有其他很多城市,每个城市都有一些特产和需要的货物,不同的城市可能有相同的特产,也可能需要相同的货物,但产量和需求量可能会有所不同,而且不同的特产所占空间不同,这个商人要做的就是开着卡车在这个国家买卖货物赚钱。

现在要求解出指定的行驶距离之后,该商人能够得到最佳收益的路线。

这好像不能归结为简单的无向加权图,因为无向加权图各个节点间的加权是固定的,而这个问题中,因为有卡车容量,货物体积,货物需求量/产量等因素的影响,如果组合不同的货物,那么加权值都是变化的。

这个问题很搞啊,哪位高手碰到过类似的模型?一定要帮忙帮忙!
如能解决,万分感谢!如果觉得分少,绝对可以另开帖再给!
...全文
247 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjq2003 2009-01-09
  • 打赏
  • 举报
回复
接分
gbb21 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sxbyl 的回复:]
引用 1 楼 gbb21 的回复:
你的问题不明确啊,比如,你没说路程的耗费成本怎么算?你没说是否同一货物的卖出价格受供求关系的影响,你没说货物提及价格的关系~你这个问题本身比较复杂,如果不定义清楚,是没法解决的。

路程耗费成本可以简化为只要是连接着的城市,距离就是1公里。供求关系也可以简化,一个货物的供求也被订单化,即需求被满足了就不会产生新的需求,也就是价格不会发生变化。其实价格是受影响的,但是如果…
[/Quote]

既然你是帮游戏做,肯定不能太简化模型,不然就没有意义了~
既然是NPC问题就只能近似解了,用模拟褪火算法来求个近似局部最优解吧~
首先,你先确定一个最大利润率的期望函数,也就是从当前的位置,车厢里的货物,得到利润的最大可能。这个函数可以先忽略车厢的容量,然后通过考虑货物单位利润率,和路程来考虑期望最大利润。
然后,就开始搜索,每搜索一步就调用那个期望函数,把当前状态通过模拟褪火来进行判断~看看是否剪枝~
在每走一步的时候,需要考虑车厢容量问题了,也就是在当前已走的路线下,确定最大的利润是啥。

对于褪火的温度控制,你可以定一个期望的总步数,或者定一个期望的最优解~
希望我的想法对你有所帮助,不过,这种东西不好做啊~
gbb21 2009-01-08
  • 打赏
  • 举报
回复
你的问题不明确啊,比如,你没说路程的耗费成本怎么算?你没说是否同一货物的卖出价格受供求关系的影响,你没说货物提及价格的关系~你这个问题本身比较复杂,如果不定义清楚,是没法解决的。
sxbyl 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gbb21 的回复:]
你的问题不明确啊,比如,你没说路程的耗费成本怎么算?你没说是否同一货物的卖出价格受供求关系的影响,你没说货物提及价格的关系~你这个问题本身比较复杂,如果不定义清楚,是没法解决的。
[/Quote]
路程耗费成本可以简化为只要是连接着的城市,距离就是1公里。供求关系也可以简化,一个货物的供求也被订单化,即需求被满足了就不会产生新的需求,也就是价格不会发生变化。其实价格是受影响的,但是如果这个也考虑进来,太麻烦了,简化一下好了。
  • 打赏
  • 举报
回复
是够搞的,不是一般的麻烦。乍看上去有点像多源多汇的网络流,但又不是一回事。
这个问题不是从实际抽象来的吧?倒像是在玩游戏。
既然是收益,那肯定还得牵扯到价格。不同货物单位利润额不一样,甚至相同货物不同地区的售价还不一样,那就更热闹了~

这肯定是个NP完全问题。本身货物装箱就可以看作是个NP问题,更何况这其中还掺杂了产地/销售地、需求量/供应量、距离等等太多需要考虑的因素,而且卡车还可以在两地之间多次往返。
所谓的最优路线,受到出发城市和路线长短、产销地、城市间距离、卡车容积诸多因素的影响,其中任一项变了,结果可能都会发生变化。

我倒是倾向于首先来尽量简化这个模型:比如可以减少货物种类(甚至只有一种产品,这样所有城市要么产、要么销)、将卡车想象成一个容积无限的理想模型...等等。
然后在具有产销关系的城市之间建立起有向边(不同种货物的产销关系可以看作几条不同颜色的有向边),权值视二者的供求量而定,没有供求关系的城市用权值为0的双向边连接。
最后从出发城市开始在有向图中进行宽度搜索,当运输一定量的某种货物之后,相应城市间对应颜色边的权值也要跟着调整...
sxbyl 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 atlight 的回复:]
EVE . 这个游戏太真实了 没有友情PK 一旦死亡 船只化为飞灰
一下就被打回原形了.

悄悄的根楼主说下: 做贸易时小心避开0.5以下星际 以免被海盗抓

完全地利益最大化是不可能的.不同星域的市场是不一样.在A星域看不见B星域市场和需求
并且NPC间的需求和出售也是动态变化的 价格也是动态的.
其实做贸易并不一定要做NPC的要的东西 玩家的物品好像更容易挣钱.

[/Quote]

我现在的分析工具就是完全避开低安全的,玩家的东西好像比较麻烦,还是NPC得来的简单些。
至于你说的看不到其他星域市场的问题,这个好解决,小号挂在连接点星系,一个号就可以看两三个星域的市场,导到文件里,程序一分析就可以了。
sxbyl 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mrliu_xz 的回复:]
这儿居然有EVEer。。。
怎么不去ECF讨论下呢

不过LZ哇。。。这个算法就算弄出来又有什么用呢
现在数据API又还没有开放
难道你每天上线把价格抄一遍?

你还不如做个分析吉他货物价格走向的软件更方便一些

PS:弄出来以后发我一份哈O(^_^)O
[/Quote]

不需要开放API的,多开几个小号,在星域连接点的星系一呆,每天上线把贸易货物的数据倒到文件里,软件分析文件就可以了
mrliu_xz 2009-01-08
  • 打赏
  • 举报
回复
EVE的市场数据可以通过相应的API获取
这个功能欧洲服务器已经开放了

不过国内服务器还没开放。。。虽然呼声很高=。=!
绿色夹克衫 2009-01-08
  • 打赏
  • 举报
回复
可能lz不用自己抄,可以自己抓数据吧!
有点像外挂的意思!

[Quote=引用 9 楼 mrliu_xz 的回复:]
这儿居然有EVEer。。。
怎么不去ECF讨论下呢

不过LZ哇。。。这个算法就算弄出来又有什么用呢
现在数据API又还没有开放
难道你每天上线把价格抄一遍?

你还不如做个分析吉他货物价格走向的软件更方便一些

PS:弄出来以后发我一份哈O(^_^)O
[/Quote]
mrliu_xz 2009-01-08
  • 打赏
  • 举报
回复
这儿居然有EVEer。。。
怎么不去ECF讨论下呢

不过LZ哇。。。这个算法就算弄出来又有什么用呢
现在数据API又还没有开放
难道你每天上线把价格抄一遍?

你还不如做个分析吉他货物价格走向的软件更方便一些

PS:弄出来以后发我一份哈O(^_^)O
绿色夹克衫 2009-01-08
  • 打赏
  • 举报
回复
原来是eve呀!我想的是大航海时代。

以前经常在两个港口之间倒货,倒到利润很低了,就换个地方不停倒!

这算不算是贪心算法呀?反正当时是有点贪心!
atlight 2009-01-08
  • 打赏
  • 举报
回复
EVE . 这个游戏太真实了 没有友情PK 一旦死亡 船只化为飞灰
一下就被打回原形了.

悄悄的根楼主说下: 做贸易时小心避开0.5以下星际 以免被海盗抓

完全地利益最大化是不可能的.不同星域的市场是不一样.在A星域看不见B星域市场和需求
并且NPC间的需求和出售也是动态变化的 价格也是动态的.
其实做贸易并不一定要做NPC的要的东西 玩家的物品好像更容易挣钱.


gbb21 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 litaoye 的回复:]
虽然条件很复杂,但感觉用简单的图就有可能解。可以将不同路线上不同货物的单位收益算出来,
然后对每个点变更货物的单位收益也算出来。然后似乎就不是很难了。

不过lz最好给些确切地例子,否则这么想有些抽象,
[/Quote]
这个还是不行的,不是简单贪心能做的,甚至最优路线里面根本没有单位受益好的几个货物,因为他们还受路线影响,车厢影响。
假设我知道了最优路线,也得用多项式时间去验证,这个应该是NP难问题~
sxbyl 2009-01-08
  • 打赏
  • 举报
回复
dlyme确实是强人,居然看出来是在玩游戏。这个确实是我想做的一个帮我分析游戏里最佳贸易路线的工具用到的,本以为很简单,谁知真正开始想算法的时候,这么麻烦。也只好再简化模型了:(

另:向各位郑重推荐我玩的这个星战网游EVE,这里有一个视频大家可以看下 http://www.tudou.com/programs/view/ZO9EHCDKRSA/
这个游戏全世界只有两台服务器,一台在冰岛,一个在中国,冰岛服务器就是通常说的欧服(OF),在线人数四万多,GF 2006年就开始了,但是因为这个游戏和很多国内玩家熟悉的泡菜游戏有非常大的区别,而且貌似比较复杂,所以导致玩家流失非常严重,去年才又开始好转,目前晚上在线稳定在5000+。
这是一个月卡游戏,月卡50元,淘宝上买44元,没有砍怪升级得经验值一说,只有技能点数,即使你下线关机,技能点也一直在涨,所以很适合上班族来玩。

有兴趣的可以去官网看看:http://www.eve-online.com.cn/index.htm

PS:为啥我要推荐这个游戏呢?因为我个人对这类题材的星战游戏很感兴趣,而EVE在国外网游排行榜上多年来一直位于前列,是相当不错的一款游戏,无奈国内玩家深受泡菜毒害,对这类型的游戏很难接受,导致人气低迷,实在痛心啊,所以借机在这里做个推荐,也让不知道的人了解一款优秀的游戏。
绿色夹克衫 2009-01-08
  • 打赏
  • 举报
回复
虽然条件很复杂,但感觉用简单的图就有可能解。可以将不同路线上不同货物的单位收益算出来,
然后对每个点变更货物的单位收益也算出来。然后似乎就不是很难了。

不过lz最好给些确切地例子,否则这么想有些抽象,

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧