找回密码
 注册
X系列官方授权正版
搜索
楼主: ecloud

[讨论] TC关于UT用船的一点疑问

[复制链接]
 楼主| 发表于 2016-2-3 13:11:51 | 显示全部楼层
卫道士 发表于 2016-2-3 12:04
不需要能卖出炮的地方能卖出小麦,只要路上有能卖小麦的地方就行了啊,行商不就是这样做的么,每到一个站 ...

UT都是跳跃,点对点,没有路过一说
目前来说MK3的逻辑还是相当有效的
卖完上一次货,在当地星区寻找低于平均价并且总利润额最高的商品,带走。然后利用最高价查询软件在一定半径(由船长等级决定)内船上货物最高售价地,跳过去,如此循环
简单直接,高效,拥堵少,因为价格变化而导致再次跳跃的几率低。虽然看上去浪费货舱,但是在一定规模船队时总体效率很高
回复

使用道具 举报

发表于 2016-2-3 14:19:14 | 显示全部楼层
Macaulish 发表于 2016-2-3 11:52
你这么说就没底了,如果武器的利润是小麦的10倍甚至更高,为什么不先赚武器这笔钱呢?再说了,那你能保证 ...

要解决也不难。而且实际并不需要飞到一半再发现有更高利润。完全可以提前解决,省了那比小麦的时间和Cr.

原版25级贸易员购买商品跳跃距离是5,卖出商品跳跃距离是25。
现在把购买商品跳跃距离改的足够高,(例如50),罗列即时到未来5min内每一个工厂的产物数量*最高差价,然后对每条可能的贸易线路计算时间收益率=(产物数量*差价-跳跃成本)/(跳跃时间+飞行时间),做排序。只要你的电脑够强大,不怕卡。。。

关于未来5min的数据如何获得。。。这个还没有完全想好。除非恰好有一个PSP工厂刚好快要过了4个小时产出两个PSP。。这种概率也。。。
另外,就算不考虑未来5min的数据,我想如果过了5min,PSP的利润会是小麦的十倍,那么在那之前利润也不会比小麦低。

综上,仅仅提高购买商品距离,并增加排序步骤(原版是没有这个步骤的),当足矣。
回复

使用道具 举报

发表于 2016-2-3 16:47:01 | 显示全部楼层
ecloud 发表于 2016-2-3 13:11
UT都是跳跃,点对点,没有路过一说
目前来说MK3的逻辑还是相当有效的
卖完上一次货,在当地星区寻找低于 ...

点对点本来就是低效的做法啊,跳跃又不是直接从空间站跳到空间站的,从跳跃点到利润最高的空间站的路程可能都够跑近的空间站几个来回了。
理想中的行商就是设计一条周期性行商路线,在每个站点都有买进卖出的动作,不浪费每一分空间,只不过在游戏中做不到而已。
相对来说自己建厂开店的效率就要高很多了。
回复

使用道具 举报

 楼主| 发表于 2016-2-3 17:41:19 | 显示全部楼层
vmake 发表于 2016-2-3 14:19
要解决也不难。而且实际并不需要飞到一半再发现有更高利润。完全可以提前解决,省了那比小麦的时间和Cr.
...

如果是按照游戏时间5分钟轮训,那么你开了1000X加速以后电脑根本受不了,没有民用电脑能承受那么大计算量
0.3秒一次轮训计算,每个计算的实际运算步骤可能上千,就算20条船,那就是每0.3秒数万乃至十万次计算,折合每秒上百万,这还没有算入读取每个空间站物产所需要的内存操作
这是刀片集群干的活…
如果你挂机的时候开资产菜单监视UT的内容,你就会发现,当一条船轮训可采购货品的时候,大约是每真实时间一秒钟轮训一种商品。这大概就是我那台电脑做这个操作所需要的真实运算量。我那台是5KiMac老款,3.5G主频的i5,不能算弱的了吧。就算用最强的民用电脑,再优化一下算法,顶多提升10倍,每0.1秒轮训一种商品而已,离你的要求还差的很远很远
回复

使用道具 举报

发表于 2016-2-3 19:12:26 | 显示全部楼层
ecloud 发表于 2016-2-3 17:41
如果是按照游戏时间5分钟轮训,那么你开了1000X加速以后电脑根本受不了,没有民用电脑能承受那么大计算量 ...

5分钟只是我随便估了一次贸易所需的时间。。当时我也提到了电脑要够强大才行。(学术不精,真不知这算法时间复杂度有多高)
但这套方案已经比飞到一半还在不停检测有没有更好的贸易方案要节约很多算力了。

1秒一次的切换可能是根据游戏时间引擎步进来的,可以限制运算量,感觉不能把它作为衡量电脑性能的标准。
回复

使用道具 举报

发表于 2016-2-3 23:13:41 | 显示全部楼层
本帖最后由 Macaulish 于 2016-2-4 02:03 编辑
vmake 发表于 2016-2-3 19:12
5分钟只是我随便估了一次贸易所需的时间。。当时我也提到了电脑要够强大才行。(学术不精,真不知这算法 ...


这你就错了。我想要的智能化TS,不是看见西瓜就丢了芝麻这么简单。

引用你之前的帖子“现在把购买商品跳跃距离改的足够高,(例如50),罗列即时到未来5min内每一个工厂的产物数量*最高差价,然后对每条可能的贸易线路计算时间收益率=(产物数量*差价-跳跃成本)/(跳跃时间+飞行时间),做排序。只要你的电脑够强大,不怕卡。。。",就好比你自己说的,你在买入商品的这一刻,如何计算出从你买入到你卖出这段时间里出现的价格波动,如何来实现呢?难道你还要监控每一条NPC船当前运的什么货,预备卖到哪个目的地,会不会和你计划好的贸易路线产生冲突?如果冲突是不是还要计算双方船只的速度差,和离目标地点的距离?

且不说以上的问题能不能算得清楚,即便能算清楚你这个模式要如何实现呢?是让你的每条商船都在买入货物前先这么算一遍?这样的话,如何防止你的商船内部竞争呢?数据实时交换,那又怎么判别优先级呢?

或者说由一个运算能力超强的核心单元把整个宇宙的海量数据分析之后得出的结果依不同的货船类型派发给你的每一艘商船?这样的模式能够在多大的范围内实行? 10个星系?100个星系?还是1000个星系?能控制多少艘商船同时进行贸易? 100艘?1000艘?10000艘?无论那种模式,你的贸易规模都受限于你的运算能力,相同的运算能力条件下,规模越大,效率越低,一旦贸易规模超过你的运算能力,你的整个贸易系统就可能崩溃,所有商船都停着等待一个算不出来的结果。

智能化TS不需要很强的计算能力,只需要具备记录和比较的功能,再给他设定一个终极目标(对TS来说就是优先买进利润最高的商品,并且优先卖出)就可以,在贸易规模较小时AI可能比不上你的“云计算+计划经济”模式,但是规模越大,AI的优势就越明显,某种程度来说,是不受规模限制的。

就拿我前面举的例子来说,作为一艘货船,他的运算能力,不可能也不需要在它买入麦子时去判定这是不是全宇宙利润最高的商品,可能买入麦子这一刻武器工厂还没把10倍利润的武器造出来,也可能武器已经生产出来了,甚至于还有20倍利润的商品,但是货船的探测能力有限,根本没发现,一切皆有可能),TS根据自身有限的探测范围,认为在它买入麦子的这一刻,这就是利润最高的商品,但是在它驶往麦子销售点的途中,发现了10倍利润的武器,对于这样一个随机性的突发情况,AI的作用就是在情况发生变化的时候,判定自身是否要改变策略去追逐更高的利润,还是继续执行既定的策略。

最初级的AI功能来说(太高深的我也讲不明白),判定的依据就是根据TS自身以往的每一次的交易记录。比如说,麦子这种商品买进卖出100次,平均利润是10%,但是武器买进卖出10次,平均的利润是100%,根据这样的条件,AI判定才会让TS丢掉部分麦子去买进武器。

不仅如此,对于不同的货船,会出现不同的交易记录,所以AI就会出现不同的判断,假如你的贸易船是一艘速度60+的普通TS,那么你和同一区域内的春花这种高速货船(天哪,我居然也把春花说成货船了)竞争买卖武器,可能你时常会买不到,或者卖不出高利润,这样一来,开始几次可能AI会“偷鸡不成蚀把米”,久而久之,你的交易记录里,武器这种商品的平均利润率就不会很高,甚至于还不如麦子,那么当你再遇到这种情况时,就不会丢了麦子去抢购武器,反之对于春花来说,它对于武器这种商品的平均回报率肯定要比速度60+的TS高,因此在发现武器和麦子同时售卖时,春花肯定还是优先选择武器,但普通TS最终可能会先去抢麦子。

AI的优势不是通过强大的计算能力使每一次作出的选择都是正确的,而是从不断变化的实际情况和自身条件形成的经验中总结出最正确的选择,为什么说AI可以突破规模限制,因为AI的特点就是独立决策,差异化,和去中心化。
回复

使用道具 举报

发表于 2016-2-4 09:12:40 | 显示全部楼层
Macaulish 发表于 2016-2-3 23:13
这你就错了。我想要的智能化TS,不是看见西瓜就丢了芝麻这么简单。

引用你之前的帖子“现在把购买商品跳 ...

好吧,我发现我的回帖是属于严重歪楼了,哈哈,跟楼主道个歉。
回复

使用道具 举报

发表于 2016-2-4 13:01:02 | 显示全部楼层
抱歉,歪楼已久。。可以另开新帖了
道完歉再歪一楼
==========================================================================================

我只是提了一个算法的设想。。肯定有不足的地方。当初想,货船为什么开到一半才发现武器利润高?

解释:
1.一般情况:一开始武器利润就在那里,没探测到
2.罕见情况:武器是到了后来,在已经开始贸易的情况下由于a.新产出/b.被消耗而出现新的高价买家,才导致利润暴涨的。

解决方案:
针对1.
1.扩大初始探测距离。这计算并不很复杂。每种商品搜索宇宙中最低价和最高价。
2.“给TS以记录和比较的功能”,等效于在航行时还要调取附近的数据。但这个想法确实很好,因为这等于将方法1中调一次全局数据替换成为了调至少两次(购买前一次,每卖出前一次)附近数据,在全局数据越多时算力优势越明显,但会造成多次贸易的时间、Cr.损失。
综上,这两种方法存在一个全局数据量和多次贸易损失的平衡点。

针对2.
a.如何发现该罕见情况。
1.预测未来5min。即使数据量充足也很复杂而难以计算。弃。
2.“给TS以记录和比较的功能”。如果要在航行中发现,那么势必实时监控,这同样需要大量算力。但由于这并非全宇宙的搜索比较,故可行性还是有的。(试想贸易船仅多达20条时遍布宇宙,是否可以认为等效全宇宙数据实时监控搜索比较?算力如何?弃?)
综上,无解决方案。

b.如何处理该罕见情况。
1.经验法。AI会根据过去每次交易独立自动判别该处理方法。
2.调取贸易商队中空闲\即将完成交易的船只来处理。
综上,这两种方法存在一个系统中总船只数量的平衡点。鉴于该罕见情况的发现尚存问题,姑且先不讨论吧。可行方案还有很多。。。

PS:原版23级+的贸易员会自动规划路线避免内部冲突,“Extremely high-level Traders (level 23+) will additionally co-ordinate their trade runs with each other to avoid multiple Traders heading for the same stations. ”
回复

使用道具 举报

发表于 2016-2-6 11:23:24 | 显示全部楼层
Macaulish 发表于 2016-2-3 23:13
这你就错了。我想要的智能化TS,不是看见西瓜就丢了芝麻这么简单。

引用你之前的帖子“现在把购买商品跳 ...

想法很好,可惜经济问题的模型显然不是棋类。你的设想只有在大数定律成立的前提下才有效,但这是不可能满足的。也许前500次的是买军备的期望收益更高,但后400次就是麦子高,再后700次可能又是矿石最高,无论你的AI怎么学习最后都没有意义。
所以归结到地,追求每笔交易的最大收益是不可能办到的,和现实一样,最优且最简的方案还是稳定的大宗交易品收益。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站