设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
楼主: Khyron

[原创] 外交交易研究随笔(BTS3.19) <更新: 乞讨的奥秘>

[复制链接]
发表于 2009-12-29 12:11:59 | 显示全部楼层
好帖子。
叶妹妹也很娇羞。
发表于 2009-12-29 13:29:29 | 显示全部楼层
不顶不行
发表于 2009-12-29 13:56:32 | 显示全部楼层
强人啊,学习了!
发表于 2009-12-29 20:30:28 | 显示全部楼层
我想要AI打人时,他说忙,他跑来要我帮忙时,怎么就没看到我也在忙?
发表于 2009-12-29 20:54:35 | 显示全部楼层
如果工人和工船还有传教士都不接受,是属于什么状态呢?
而且那次还很奇怪,我在AI的领土北边,赠送的按钮是亮的,工人移动到南边,赠送的按钮就灰了。
是在同一回合中,前后没有发生任何事情。
 楼主| 发表于 2009-12-29 22:18:07 | 显示全部楼层
原帖由 西艾薇.Z.罗莉 于 2009-12-29 20:54 发表
如果工人和工船还有传教士都不接受,是属于什么状态呢?
而且那次还很奇怪,我在AI的领土北边,赠送的按钮是亮的,工人移动到南边,赠送的按钮就灰了。
是在同一回合中,前后没有发生任何事情。


如果AI有财政困难, 赠送工人, 它会根据情况选择接受或不接受; 而工人, 工船和传教士以外的单位总是不接受.
对于工船和传教士, 无论有没有财政困难, 都会接受.
我还忘了提: 无论AI有没有财政困难, 它永远不会接受公司经理,
以上只是一个大致的原则.

在一些特殊情况下, AI也不会接受单位的赠送.
比如像:
双方在交战;
待赠送的单位有数量上限且AI已经有了足够的同类型单位;
待赠送的单位所处的位置有与赠送目标玩家敌对的单位;
等等


如果是同一回合, 同一大陆, 的确颇为奇怪.

[ 本帖最后由 Khyron 于 2009-12-29 22:26 编辑 ]
 楼主| 发表于 2009-12-31 19:55:03 | 显示全部楼层

特殊交易提议的处理机制

当人类玩家提出宗主国对附庸资源的勒索, 普通勒索, 乞讨这3种特殊交易提议时, AI不再使用"所得不小于付出"准则, 采用的是另一套方法, 来判断是否接受交易提议.
这一方法按下述流程实施:
首先根据特殊交易的类型, 来判断是否能够直接通过或否决此提议.
如果不能直接决定, 则计算人情阈值, 如果人类玩家的收获(即AI的付出), 小于此人情阈值, AI将接受这个交易提议, 否则拒绝.
另外如果是宗主国对附庸资源的勒索, 不直接使用AI的付出来和人情阈值比较, 要经过修正.

直接判定准则
(1) 宗主国对附庸资源的勒索
AI遇到此类提议时, 如果以下三者之一成立, 则直接通过提议.
a. 此AI对我们(提议发起者)的玩家级态度大于AI的附庸拒绝态度阈值(VassalRefuseAttitudeThreshold);
b. 此AI处于战争中;
c. 我们和某个组队有共同防御条约.
说明: 由于附庸拒绝宗主国对资源的勒索提议将导致其向宗主国开战. 那么条款b和c均表明AI面临这种勒索时不愿与2国同时作战, 很合情合理.

(2) 普通勒索
如果AI所属组队的军事力量(Power)大于我们所属组队的军事力量的4/3倍, 将直接否决普通勒索提议.

说明: 这一准则也很正常, 如果人家实力比我们强的多, 没有屈服的道理. 不过这里是4/3倍, 文明4中弱者还是可以勒索强者的.
注: 一个组队的军事力量等于组队中所有玩家的军事力量之和. 一个玩家的军事力量等于其士兵数量除以1000, 详细计算方法参见:士兵数量计算公式.

(3) 普通勒索和乞讨
如果AI对我们的MEMORY_MADE_DEMAND_RECENT计数(玩家级)大于0, 则直接否决提议.

注: 关于MEMORY_MADE_DEMAND_RECENT的两个重要事实
玩家A对玩家B的MEMORY_MADE_DEMAND_RECENT计数当且仅当B对A发起普通勒索交易提议或乞讨交易提议时增加, 与A是否接受提议无关.
一个玩家对另一玩家的MEMORY_MADE_DEMAND_RECENT计数若大于0, 则每回合有1/20的可能性减1.

说明: 文明4中的AI都是很有原则的, 帮忙只帮一次. 确切地讲, 开口求两次都不搭理. 只不过记忆力不是那么好.

人情阈值
我发明的, 用来称呼我们空手套白狼得到的最大价值.
假设
M = 我们组队和AI组队相遇的回合数
Ph = 我们组队的军事力量
Pa = AI组队的军事力量
如果此AI所属组队是我们所属组队的陆地目标(AI_isLandTarget), L = 6; 否则 L = 2.
G = 此AI对我们的和平时期赠予价值总量(AI_getPeacetimeGrantValue)
那么人情阈值T有
T = (M + 50) * L * (Ph + 100)/ (Pa + 100) - G

注: 组队陆地目标的定义参见: 边境冲突和数字8
注: AI对我们的和平时期赠予价值总量有2个来源
一就是我们0换N从AI得到的物品的总价值, 这既包括通过了的那些特殊交易提议中的我们的获得, 也包括AI在外交界面主动赠送的物品;
二是AI赠送给我们的单位的造价的1/5.
由于正常情况下AI不会赠送我们单位, 所以和平时期赠予价值总量全部由前者组成.

AI的付出
假设AI的付出价值为V
当提议属于宗主国对附庸资源的勒索时, 有修正
V = V * (Pa + 10) / (Ph + 10)

所以当我们提出的特殊交易提议无法由那些直接判定准则决定时
V < T  => AI接受提议
V >=T  => AI拒绝提议



附: 领袖的附庸拒绝态度阈值(VassalRefuseAttitudeThreshold)
VassalRefuseAttitudeThreshold Type
ATTITUDE_ANNOYED CATHERINE, FREDERICK, GANDHI, LOUIS_XIV, MANSA_MUSA
ATTITUDE_CAUTIOUS ASOKA, HATSHEPSUT, HUAYNA_CAPAC, JOAO, KUBLAI_KHAN, SALADIN, STALIN, SULEIMAN, SURYAVARMAN, TOKUGAWA, WANGKON, ZARA_YAQOB
ATTITUDE_PLEASED ALEXANDER, AUGUSTUS, BISMARCK, BOUDICA, BRENNUS, CHARLEMAGNE,CHURCHILL, CYRUS, DARIUS, DE_GAULLE, ELIZABETH, GENGHIS_KHAN, GILGAMESH, HAMMURABI, HANNIBAL, ISABELLA, JULIUS_CAESAR, JUSTINIAN, LINCOLN, CHINESE_LEADER, MEHMED, MONTEZUMA, NAPOLEON, PACAL,PERICLES, PETER, QIN_SHI_HUANG, RAMESSES, RAGNAR, FRANKLIN_ROOSEVELT, SHAKA, SITTING_BULL, VICTORIA, WASHINGTON, WILLEM_VAN_ORANJE
NONE BARBARIAN


[ 本帖最后由 Khyron 于 2010-1-2 17:18 编辑 ]
 楼主| 发表于 2010-1-1 02:37:06 | 显示全部楼层

实验

首先设定场景, 这回是:
Napoleon(人类), Hammurabi(AI)
难度: Settler
大小: Duel
速度: Normal

使用WB为双方添加科技, 分别是:
Napoleon: Alphabet(4), Currency(0)
Hammurabi: Alphabet(4), Fishing(0), Masonry(0), Bronze Working(8)
括号中的数字是科技的Power值.
先将Hammurabi对我们的态度调为Friendly(亲密), 扫除交换科技的障碍.

由于只有Hammurabi和我两个玩家, 而以下科技的科技交易修正量均为0, 因此它们对于我的交换价值公式可简化为:
V = C * 3 / 2 - (C * 3 / 2) % 10
科技 Fishing Masonry Bronze Working
Napoleon科技花费 C 24 48 72
交易价值 V 30 70 100


现在是3960BC, Turn 1. Napoleon和Hammurabi是在这个回合相遇的. 所以相遇的回合数目前是0.
为了便于计算, 再平衡双方的军事力量, 再给我(Napoleon)加一个战象. 这样双方的军事力量相同了, 都是20, 士兵数都是20000.
最后存档, 一切准备就绪, 可以开始了.



(1) 如果我向Hammurabi乞讨Bronze Working, 那会怎么样?
由于
M = 相遇的回合数 = 0
Ph = 我的军事力量 = 20
Pa = Hammurabi的军事力量 = 20
由于Hammurabi还未赠予我任何东西 => G = 0
从小地图中可以观察到, 巴比伦和法国还很远 => L = 2
现在Hammurabi对我的人情阈值
T = (0 + 50) * 2 * (20 + 100) / (20 + 100) - 0
  = 100
而Bronze Working对我的交易价值, 即Hammurabi的预期付出
V = 100
V只是等于, 没有小于T, 所以我们可以预测这个乞讨不会成功.

果然, Hammurabi: Sorry, but you press us too hard.
虽然乞讨失败了, Hammurabi对我的MEMORY_MADE_DEMAND_RECENT还是会增加1, 即从0变为1.

(2) 如果我们等一回合, 乞讨Bronze Working. 当然要先读档回到上一次乞讨前的状态.
T = 51 * 2 = 102 > V

这回, Hammurabi: Always happy to help...
这时, Hammurabi对我的MEMORY_MADE_DEMAND_RECENT会增加1, 对我的和平时期赠予价值总量增加100.
当然如果我不读档, 也不一定失败, 运气好了有可能他一回合就忘了我曾经求过他. 只不过这种事发生的概率只有5%.


(3)再次读档, 这回我想把Fishing, Masonry, Bronze Working这3个科技同时乞讨来.
一个解决方案就是增加我的军事力量, 从而增大我和Hammurabi的修正过的军事力量对比, 最终达成加大人情阈值的目标.
给自己加7个Infantry, 每个Infantry的军事力量为20, 现在我的军事力量是160

T = 50 * 2 * (160 + 100) / (20 + 100) = 216
而Fishing, Masonry, Bronze Working的交易价值总和为
V = 30 + 70 + 100 = 200
因此我们可以预测: 乞讨会成功.

不出所料, Hammurabi: Always happy to help...
Fishing, Masonry, Bronze Working入手
这时, Hammurabi对我的MEMORY_MADE_DEMAND_RECENT会增加1, 对我的和平时期赠予价值总量增加200.
发表于 2010-1-1 08:51:10 | 显示全部楼层
代码男……
发表于 2010-1-1 18:39:57 | 显示全部楼层
也就是说,一旦连续点乞讨20次的话,这一盘都别想再乞讨成功了……

根据这一段:

直接判定准则
(1) 宗主国对附庸资源的勒索
AI遇到此类提议时, 如果以下三者之一成立, 则直接通过提议.
a. 此AI对我们(提议发起者)的玩家级态度大于AI的附庸拒绝态度阈值(VassalRefuseAttitudeThreshold);
b. 此AI处于战争中;
c. 我们和某个组队有共同防御条约.
说明: 由于附庸拒绝宗主国对资源的勒索提议将导致其向宗主国开战. 那么条款b和c均表明AI面临这种勒索时不愿与2国同时作战, 很合情合理.


只要我们随便宣一个AI,或者与某个AI共防,或者有不止一个小弟,则勒索小弟肯定成功?
发表于 2010-1-2 04:14:45 | 显示全部楼层

回复 #30 llaann 的帖子

看起来有可能是这样
 楼主| 发表于 2010-1-2 17:15:44 | 显示全部楼层
原帖由 llaann 于 2010-1-1 18:39 发表
也就是说,一旦连续点乞讨20次的话,这一盘都别想再乞讨成功了……

根据这一段:

直接判定准则
(1) 宗主国对附庸资源的勒索
AI遇到此类提议时, 如果以下三者之一成立, 则直接通过提议.
a. 此AI对我们( ...



宗主国对附庸资源的勒索

请注意: 资源
只对资源(Resources)交易对象有效, 勒索其它交易对象属于普通勒索.

看来, 这两个字得用更大的字体.
发表于 2010-1-2 19:14:58 | 显示全部楼层
很可能发展成为神贴,所以留名
 楼主| 发表于 2010-1-3 20:07:10 | 显示全部楼层

乞讨心得

我们向AI乞讨的目的是什么?
一是想白得些东西
二是想获得10回合强制和平.

考虑到计算人情阈值时要减去AI和平时期对我们的赠予总价值, 可知我们能乞讨来的东西的总价值基本上与乞讨的次数无关. 换句话说, 对于同一AI, 我们多次乞讨和一次乞讨得到的东西的总价值是没什么区别的.
对于10回合强制和平这种收益, 则与乞讨成功的次数直接挂钩.
注意到:
AI的MEMORY_MADE_DEMAND_RECENT计数若大于0, 每回合有1/20的可能性减1.
理论上, 我们的最优方案是:
乞讨, AI忘了, 立刻再乞讨, AI忘了, 立刻再乞讨, ...

但遗憾的是游戏中我们没有办法直接获知我们乞讨过的AI记忆中我们行乞的次数.
对于AI的MEMORY_MADE_DEMAND_RECENT这个计数:
如果我们再次向它乞讨, 若它同意了, 那我们知道刚才它对我们的MEMORY_MADE_DEMAND_RECENT计数是0, 可经过我们这次乞讨又变为1了. 如果它不同意那更糟糕, 不但记得, 还记得我们乞讨过至少2次.
如果我们什么都不做, 自然不会增加MEMORY_MADE_DEMAND_RECENT计数, 可这样的话我们为什么要了解这个计数呢?
这像不像Catch-22中的情景.

进入中世纪或更靠后的时代, 我想大家更在意的是10回合强制和平. 如果我们向AI乞讨过一次, 那么下一次的乞讨的决定权就等于交给随机数了.
考虑到设置强制和平的秘密作用, 我觉得第一次乞讨像你的王牌, 不到关键时刻不要用掉. 当然对于那些和平或遥远的AI, 兑现即时收益还是不错的.


设置强制和平的秘密作用
众所周知, 两个组队签订10回合和平条约后, 双方会被设置为强制和平, 明显的效果就是双方不能主动向对方宣战. 条约消失后, 这种强制和平状态将被取消.
鲜为人知的是, 双方被设置为强制和平的同时, 如果有针对对方或其附庸的处于准备阶段的偷袭战争计划(AI_isSneakAttackPreparing), 将被取消.

组队A有针对组队B的处于准备阶段的偷袭战争计划的定义是:
组队A对于组队B的战争计划是WARPLAN_PREPARING_LIMITEDWARPLAN_PREPARING_TOTAL.

注: 不要对这里的PREPARING产生望文生义的错误, 未开战时A对B的战争计划可以不是以上二者之一. 即A对B仍有其它战争计划, 但还未宣战.
换句话说, 如果一个AI有战争计划, 即有针对某个组队的战争计划, 这时你向它乞讨并成功了. 如果他变得不忙了, 那它刚才的战争计划是针对你的, 并且一定是WARPLAN_PREPARING_LIMITED或WARPLAN_PREPARING_TOTAL; 如果他还是很忙, 则你不能保证它的战争计划是针对其它人的. 即使你是在它变忙后的第一时间乞讨的, 仍不能确定.
关于战争计划的详细介绍, 参见: ??????
对不起, 这篇文章还在我的脑子里, 没写出来呢, 虽然一直想写.
发表于 2010-3-7 15:36:22 | 显示全部楼层
关于LZ的最后一段,有过这么一段经历。

在被教唆和哈妹断边后,一个中立国的暗桩发现哈妹攒了一只部队正在以呈地图对角线的方式远征。随后哈妹向我处勒索一过时科技,得遂。其后发现该军势进入我国境后做布朗运动,只是不肯离去。合约期满,被宣。

这算是着了哪一类战争计划啊
发表于 2010-3-7 21:17:40 | 显示全部楼层
直接判定准则
(1) 宗主国对附庸资源的勒索
AI遇到此类提议时, 如果以下三者之一成立, 则直接通过提议.
a. 此AI对我们(提议发起者)的玩家级态度大于AI的附庸拒绝态度阈值(VassalRefuseAttitudeThreshold);
b. 此AI处于战争中;
c. 我们和某个组队有共同防御条约.
说明: 由于附庸拒绝宗主国对资源的勒索提议将导致其向宗主国开战. 那么条款b和c均表明AI面临这种勒索时不愿与2国同时作战, 很合情合理.


这个好像不对吧,有过收了两个小弟,但是对其中一个勒索被宣的经历
而且是勒索一个资源不被宣,勒索两个就被宣。。。
只好读档回来一个一个勒索了
发表于 2010-3-28 06:06:51 | 显示全部楼层
附庸国大概不算C类那种共同防御条约

比方说你是A,有小弟B,C     这种情况下勒索C,拒绝,被宣的情况就是“C对A发动了战争。C对B发动了战争。”

而如果是A和B没有附庸关系,而是签有一般的共同防御条约,那么情况就是“C对A发动了战争。B对C发动了战争。”

战争的祸首不一样啊~~
发表于 2010-4-1 05:03:29 | 显示全部楼层
原帖由 Khyron 于 2010-1-1 02:37 发表
由于只有Hammurabi和我两个玩家, 而以下科技的科技交易修正量均为0, 因此它们对于我的交换价值公式可简化为:
V = C * 3 / 2 - (C * 3 / 2) % 10


乞讨一段很有意思。

想问问V的计算公式是怎么样的,尤其在有多个players的情况
 楼主| 发表于 2010-4-18 03:41:52 | 显示全部楼层

回复 #38 dingding 的帖子

14楼有完整的科技的交易价值计算公式, 这是链接:
http://www.civclub.net/bbs/viewt ... mp;page=1#pid885484
发表于 2010-7-2 12:38:03 | 显示全部楼层
原来乞讨也不能随便啊
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|塞爱维(CIV)文明联盟    

GMT+8, 2024-3-28 19:23

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表