设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
查看: 40033|回复: 42

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

[复制链接]
发表于 2009-10-2 12:54:20 | 显示全部楼层 |阅读模式
山脉, 盆地, 如何模拟...
想不出来, 烦人烦人...

写点别的东西吧.


文明4中, 外交非常重要, 而外交交易谈判是进行外交的一个最重要的途径.

本文的目标大致为:
介绍外交交易谈判的基础概念.
交易达成的必要条件.
交易对象何时可以交易.
AI何时愿意交易交易对象, 何时不愿意交易.
交易对象的价值.

[ 本帖最后由 Khyron 于 2010-1-1 02:40 编辑 ]

评分

2

查看全部评分

 楼主| 发表于 2009-10-2 12:54:52 | 显示全部楼层
保留, 也许用作索引.
 楼主| 发表于 2009-10-2 13:04:16 | 显示全部楼层
外交交易中, 可交易的对象有17种, 如下:
Gold
Gold Per Turn
World Map
Peace Treaty(10 Turns)
Vassal State
Capitulation
Open Borders
Defensive Pact
Permanent Alliance
Technology
Resources
Cities
Make Peace With
Declare War on
Stop Trading With
Adopt
Convert

另有一伪对象:
Cease Fire




[ 本帖最后由 Khyron 于 2009-10-2 23:42 编辑 ]
发表于 2009-10-2 13:24:19 | 显示全部楼层
原帖由 Khyron 于 2009-10-2 12:54 发表
山脉, 盆地, 如何模拟...
想不出来, 烦人烦人...

写点别的东西吧.





用3dmax做个模型加到游戏内,再用feature来模拟足够了。。。
 楼主| 发表于 2009-10-2 13:59:52 | 显示全部楼层

回复 #4 ztjal 的帖子

多谢建议

我的问题不是这方面, 是关于map script的.
 楼主| 发表于 2009-10-2 15:40:26 | 显示全部楼层

交易物品价值的决定权

外交交易谈判桌上, 卖主手中筹码的价值是由买方决定的,  确切地讲, 买方眼中这个筹码值多少, 在这场谈判中它就值多少.
当然, 虽然价值由买方确定, 和卖主是有关的.

翻译成程序语言, 用伪代码表示则为:
ItemValue = eBuyer.AI_dealVal(eSeller, [Item], bIgnoreAnnual = false, iExtra = 0)


交易提议中, 玩家的预期收获的价值等于对方的交易物品清单中所有交易物品的价值之和. 预期付出的价值等于自己的交易物品清单中所有交易物品的价值之和.

左方玩家的付出是自己交易物品清单中所有交易物品, 价值由右方玩家决定; 收获是右方玩家交易物品清单中所有交易物品, 价值由(左方)自己决定.
右方玩家的付出是自己交易物品清单中所有交易物品, 价值由左方玩家决定; 收获是左方玩家交易物品清单中所有交易物品, 价值由(右方)自己决定.


交易物品清单, 交易对象清单: 指交易提议中, 一方玩家拿出的交易对象的总称.

如果谈判双方处于交战状态下, 一份交易提议中, 双方的交易物品清单均总含有Cease Fire这一伪对象. 虽然当这份提议带有Peace Treaty(10 Turns)时, 它是隐藏的.

比如下图中:
Catherine的交易物品清单有:
War with Tokugawa
War with Saladin
War with Charlemagne
War with Wang Kon
War with Lincoln

我的交易物品清单有:
Mysticism(科技)


[ 本帖最后由 Khyron 于 2009-12-29 03:20 编辑 ]
 楼主| 发表于 2009-10-2 23:44:08 | 显示全部楼层

可交易/愿意交易

外交交易中, 卖主什么时候可以交易一个对象, 直观的讲, 这个对象出现在他的交易清单中即可交易, 未出现则不可交易.
当我们谈论卖主是否愿意交易一个对象时, 总假设他可交易这个对象, 当这个对象是红色时, 则不愿意, 白色则愿意.
这两者的详细分析将在以后展开.


在下图中, Catherine和我的交易中, 不可交易以下对象:
Peace Treaty(10 Turns)
Capitulation
Technology
Defensive Pact

而这2个对象她不愿意卖给我
Vassal State
Permanent Alliance

 楼主| 发表于 2009-10-2 23:45:55 | 显示全部楼层
一个外交交易若想达成
首先双方各自提供的物品均是自己愿意交易的, 即使是AI之间的交易, 也不例外.
AI在是否愿意出售交易对象这一问题上, 对人类和AI一视同仁, 并不区分. 事实上, 人类对人类和AI也一视同仁. 另外玩家位于左方还是右方对"可交易"和"愿意交易"没有影响.


其次, 要比较双方提供的物品的价值, 满足一定条件才能达成.
这时AI和人类对价值平衡的要求是不同的. 交易双方的地位也不是对称的, 交易发起者有时要付出更多.

注: 回合之中的ai的外交交易提议只有你立即接受, 才算ai发起, 你若试图进行谈判, 你立刻成为发起者.


文明4中, 虽然外交交易中可以使用金钱, 但本质上还是以物易物, 大多数情形下交易双方都有买家卖家身份. 用买方卖方称呼双方会产生误解.
所以有时我用左方和右方来称呼参与交易的二玩家.
讨论可交易/愿意交易这类问题, 必然与某交易物品有关, 这时我也会用买方卖方来区别二者.
讨论价值平衡时, 我将用发起者/接受者或ai/人类来区别二者.

当人类玩家和电脑玩家之间进行外交交易时, 无论交易是由人类发起还是AI发起, AI永远位于左方, 而人类位于右方.
 楼主| 发表于 2009-10-3 02:19:47 | 显示全部楼层

交易提议的分类

对于AI之间的交易, 价值匹配的要求本文就不展开了, 以后若是介绍AI如何执行外交, 会详细解释的. 大致描述一下, 就是不能差的太离谱.
人类之间的交易, 那全靠各自的自由意志, 也不用多说.
至于AI发起的与人类的交易, 价值匹配的算法虽然不同, 但和人类发起的交易的价值匹配的要求实质上是一样的.

因此, 我们将只讨论人类和AI之间交易对价值匹配的要求. 发起者是谁, 那没有影响.
所以从现在开始, 我们总假设人类是外交交易谈判的发起者. 如无特别声明, 外交交易提议是由人类(用我们代称)向AI提出的. 而对于我们让AI提出的反提议, 则会特别指出.

这时对于正常交易提议特殊交易提议, 价值匹配的算法是不同的.

什么是正常交易提议? 什么是特殊交易提议?
对于一个交易提议, 左方玩家的交易清单总价值大于0, 右方玩家的交易清单没有任何物品且价值为0时, 其属于特殊交易提议.
其它的交易提议均是正常交易提议.

换句话说, 我们想空手套白狼的话, 就不是生意了, 要么我们在勒索人家, 要么我们在乞讨.
我们若是出了价, 哪怕是一文钱, 那生意归生意, 规矩就不能坏了.

对于特殊交易提议, 又分3类:
(1) 宗主国对附庸资源(Resources)的勒索;
(2) 此AI玩家对人类玩家的态度比Pleased差时, 为普通勒索;
(3) 此AI玩家对人类玩家的态度是Pleased, 或更好时, 为乞讨.

注: 事实上只有人类才能向AI发起特殊交易提议. AI对人类的勒索和帮助属于外交范畴, 但均不属于外交交易范畴. 由于人类玩家不能成为附庸, 所以AI无法向人类发起宗主国对附庸资源的勒索.

Ex.1

此图中, Catherine对你的态度是Friendly, 所以第二栏是: Could you spare this for a good friend?
如果你点击那里, 则向Catherine乞讨.

Ex.2

此图中, Catherine对你的态度是Cautious, 所以第二栏是: We demand that you give this to us in tribute.
如果你点击那里, 将是勒索.

Ex.3

这张图中, Catherine是你的附庸, 而左方的交易对象只有资源, 这时第二栏的文字是: Time for your tribute! Refusal means WAR!
这种提议就是宗主国对附庸资源的勒索.

Ex.4

请注意, 这样的交易提议看似是特殊交易, 但又不完全是. 这是由于某些交易对象的价值为0导致的.
所以当你点击"Could you spare this for a good friend?"(或"We demand that you give this to us in tribute"), 从价值匹配的角度将仍是一个正常交易提议.
但由于点击了"Could you spare this for a good friend?"(或"We demand that you give this to us in tribute"), 在其它方面等同于乞讨(或勒索).


注: 更好的应对方法是选"What do you want for this?", 让AI提出一反提议, 这时AI的反提议会是一个空的交易物品清单, 然后你选同意就可达成这个交易.没有乞讨(勒索)的附带作用.

Ex.5

这是一个标准的正常交易提议, 虽然价值差的太远, 但仍是正常的生意.

[ 本帖最后由 Khyron 于 2010-1-2 17:19 编辑 ]
 楼主| 发表于 2009-10-3 17:34:45 | 显示全部楼层

特殊交易的附带作用

当一个玩家向另一玩家发起正常交易提议时, 如果后者拒绝接受, 则不会有任何影响, 等同于这个交易提议不存在; 如果后者接受提议, 双方交易达成, 仅仅相当于双方交换了些东西.

对于特殊交易提议, 则有额外的影响.
(1) 宗主国对附庸资源的勒索
如果AI拒绝你的宗主国对附庸资源的勒索, 此AI将向你宣战.
(2) 普通勒索
只要你对AI进行普通勒索, 无论AI是否同意, 它都将记恨在心, 即
MEMORY_MADE_DEMAND_RECENT计数加1
如果它对你的MEMORY_MADE_DEMAND计数小于10, MEMORY_MADE_DEMAND计数将加1
(3) 乞讨
只要你向AI乞讨, 无论AI是否同意, 它也会记住, 即
MEMORY_MADE_DEMAND_RECENT计数加1

想深入了解AI的MEMORY_MADE_DEMAND, MEMORY_MADE_DEMAND_RECENT计数, 可参见这篇短文: 电脑的记性和忘性(BTS3.17)

[ 本帖最后由 Khyron 于 2010-1-2 17:17 编辑 ]
发表于 2009-10-3 18:03:25 | 显示全部楼层
(1) 宗主国对附庸资源的勒索
如果AI拒绝你的宗主国对附庸资源的勒索, 此AI将向你宣战.

为什么勒索小弟科技被拒绝,不会宣战?
 楼主| 发表于 2009-12-29 03:25:12 | 显示全部楼层

AI接受正常交易提议的充要条件

当谈到AI是否接受正常交易提议时, 已经有了2个隐含假设:
(1) 我们向AI发出的交易提议中双方的交易对象清单中的对象都已经是各自愿意交易给对方的;
(2) 这是一个正常交易提议, 即我们的报价至少包括一个交易对象.
注: 根据前面讨论, 如果AI提供的交易对象总价值为0, 即使我们没有提供任何交易对象, 这也算正常交易提议. 这种情况非常少见, 可以说是唯一的, 只对应AI的和平附庸交易.

在这样的前提下, AI愿意接受此外交交易提议的充要条件是以下二者之一:
(1) 此AI和我们属于同一组队
(2) 这个交易提议中我们提供的交易对象清单的总价值大于等于AI提供的交易对象清单的总价值. 换句话说, 就是AI的所得要不小于其付出.

所得不小于付出
这就是AI和人类做生意时的核心准则. 无论是人类向AI发出的交易提议, 还是人类请求AI提出的反提议, 都要满足这一准则; 甚至AI主动发出的外交提议, 也不能违背.
但如果大家同属一个组队时, 就不分彼此了.

读到这里, 也许有人会有疑问, 仅仅是"不小于"吗? 为什么我们和AI交换科技时, 特别是神级时, 很不平等, 总是比AI付出多很多呢?
有这种感觉, 很正常. 但的确AI只要求"所得不小于付出". 稍后我将介绍科技的交易价值, 一切就会明了. 其实在前面的说明中我已经给出答案了.

为了方便举例说明, 先跳过勒索,乞讨等AI接受特殊交易提议的充要条件, 直接介绍金钱和科技的交易价值.
 楼主| 发表于 2009-12-29 03:27:20 | 显示全部楼层

金钱(TRADE_GOLD)的交易价值

金钱在买方玩家眼中的交易价值等于其数量的2倍, 如果买方没有财政困难(AI_isFinancialTrouble); 买方有财政困难, 则是3倍.

所以, 当你有财政困难时, 收购AI手中的金钱会比较亏; 而AI有财政困难时, 可以考虑用金钱做交易筹码.

一个玩家(人类或AI)何时有财政困难呢?
大致来说, 当这个玩家的((1+ 金钱收入 + 科研产出 - 总支出) * 100 / (1+ 金钱收入 + 科研产出))低于安全百分比时, 则他有财政困难. 一般来说这个安全百分比等于40.
国库对此没有影响, 即使国库有99999999金, 玩家仍可能有财政困难.

对于AI玩家, 有更简单的方法判断其是否处于财政困难中. 有以下2种方法:
(1) 通过外交交易中金钱的交易价值来判断.
(2) AI有财政困难时, 除了工人, 工船和传教士, 不会接受任何单位的赠送.
 楼主| 发表于 2009-12-29 03:31:32 | 显示全部楼层

科技(TRADE_TECHNOLOGIES)的交易价值

假设
V = 一个科技在买方玩家眼中的价值, 即其所属组队眼中的此科技的交易价值
C = 买方所属组队研究此科技的花费 - 买方所属组队研究此科技的进度
K = 和买方所属组队已经相遇且拥有这个科技的组队的数量
P = 和买方所属组队已经相遇的组队的数量
M = 此科技的交易修正量

按以下公式依次计算可得科技的交易价值
V = C * 3 / 2 + C / 2 * (P - K) / P
V = V * max(0, M + 100) / 100
V = V - V % 10 (这句的含义是将个位清零)
V = max(10, V) 如果买方是人类

Tips: 由于科技的交易修正量对交易价值的影响, 这项不为0的可以考虑自行研发, 而通过交换获得那些交易修正量等于0的.

我们再来仔细研究这项:
C = 买方所属组队研究此科技的花费 - 买方所属组队研究此科技的进度
对于一个科技, 组队研究此科技的花费受这个组队的难度影响. 而非模组非剧情下, AI组队的难度总是贵族(Noble), 而玩家的难度则由游戏难度确定.
因此只要不是贵族难度下, 即使同一科技, 在AI和你的眼中研究花费是不同的. 这就是为什么高难度下, 我们和AI交换科技总是显得很亏的原因.
有兴趣的可以自行测试贵族难度下字母表(Alphabet)和君主制(Monarchy)的公平交换.


附: 科技的交易修正量
以下科技的交易修正量等于10, 其它科技的交易修正量全为0.
FEUDALISM
GUILDS
MILITARY_TRADITION
ECOLOGY
ELECTRICITY
FISSION
FLIGHT
ADVANCED_FLIGHT
COMPOSITES
STEALTH
GENETICS
FIBER_OPTICS
FUSION
ARCHERY
HORSEBACK_RIDING
MACHINERY
GUNPOWDER
RIFLING
STEEL
ASSEMBLY_LINE
RAILROAD
ARTILLERY
INDUSTRIALISM
ROCKETRY
SATELLITES
ROBOTICS
Gold

注: 由于1<=K<=P, M=0或10, 所以科技的交易价值大约是其烧瓶数量的1.5倍-2.2倍.
 楼主| 发表于 2009-12-29 03:34:37 | 显示全部楼层

例子

难度: Settler
大小: Duel
速度: Normal
共有3玩家: Stalin(人类), Mansa Musa(AI), Tokugawa(AI)
大家都已经相遇



科技状况如下:



我(Stalin)现在准备和Mansa Musa谈谈生意
 楼主| 发表于 2009-12-29 03:36:37 | 显示全部楼层
相关数据列表
科技 花费(Noble) 花费(Settler) 拥有科技的组队
Archery 60 36 Mansa Musa
Masonry 80 48 Mansa Musa
Hunting 40 24 Stalin


首先让我们来计算Archery, Masonry, Hunting这3个科技的交易价值.
Archery
买方: Stalin(人类)
C=36, K=1, P=2, M=10
V = (36 * 3 / 2 + 36 / 2 * (2-1) / 2) * (10 + 100) / 100
  = 63 * 110 / 100
  = 69
由于买方是人类玩家, 个位要清零. 所以
交易价值: 60

Masonry
买方: Stalin(人类)
C=48, K=1, P=2, M=10
V = (48 * 3 / /2 + 48 / 2 * (2-1) /2) * 100 /100
  = 84
V = V - V % 10 = 80
交易价值: 80

Hunting
买方: Mansa Musa(AI)
C=40, K=1, P=2, M=0
V = (40 * 3 / 2 + 40 / 2 * (2-1) /2) * 100 / 100
  = 70
交易价值: 70

游戏中目前是第二回合, 很明显大家都没有财政困难, 也就是说金钱的交易价值是其数量的2倍.
那么就交易价值来说, 有以下等式:
Archery = 60 <= 30
Masonry = 80 <= Hunting + 10 = Hunting + 5
因此, 从Mansa Musa手中, 我可以只用30 就可换来Archery; 只用Hunting + 5金可换来Masonry.

现在我们来检验这2个判断是否正确.

先将Archery加入Mansa Musa的交易物品清单中, 然后请他自己提出一个报价.

Mansa Musa说: How does this deal sound?
不出所料, 30 就能换来Archery.

对于Masonry, 我们将Masonry和Hunting加入他和我们的交易物品清单中, 然后请他提出反提议.

Mansa Musa说: Here's my offer.
的确只需再加5 .

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

财政困难的影响

先用WB给Mansa Musa加上一打的城市, 这样他肯定有财政困难了. 和他做生意, 我手中的每一 不只值2点, 而有3点的交易价值.



同样, 先给出理论预测:
Masonry = 80 <= 27  * 3
我们预测现在只需27 , 就可从Mansa Musa手中得到Masonry

还是老方法, 先将Masonry加入到Mansa Musa的交易物品清单中, 然后请自己提出报价:

咦, 怎么需要26 +Hunting?

我来解释吧
AI是通过CvPlayerAI::AI_counterPropose来获得反提议的交易物品清单. 但这个函数中有个小bug, 导致了计算所需 数量有时比正确数值小1.
回到刚才的例子, 不得不再加入Hunting, 以满足AI的"所得不小于付出"的准则.

如果我们将Masonry加入到Mansa Musa的交易物品清单的同时, 将27 加入到我们自己的交易物品清单中, 然后请Mansa Musa提出报价, 这时


Do you find this offer tempting?
他愿意用27 换Masonry.

完美的验证.

[ 本帖最后由 Khyron 于 2009-12-29 15:20 编辑 ]
发表于 2009-12-29 09:44:37 | 显示全部楼层
lz技术男啊,佩服。
模拟山脉,盆地,是要自己做mod?那把河流也加强吧,如同海,内河占整个格子,也有产出,且战舰可进入内河,城市可沿河,但不能修建在河的格子上,原先只占格子边缘的小河保留,作为大内河的支流。
能否看看我的帖子,我对文明5的一些设想(人口,宝物等)
http://www.civclub.net/bbs/viewt ... &extra=page%3D1
设想一,应该很合理,设想二,有些无厘头,但能提高不少趣味性
发表于 2009-12-29 10:33:35 | 显示全部楼层
看看
人过留个图
顺召唤沙丘战争和东方叙事诗汉化
发表于 2009-12-29 10:35:10 | 显示全部楼层
做个标记,晚上慢慢看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 21:46

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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