1、介绍
Gamut是为测试博弈算法而研制的一些列博弈生成器。使用gamut,很容易就能生成35个基础博弈类的实例。使用不同的参数选项,使生成不计其数的随机博弈分布变为可能。
2、运行
Java whoisit-jar gamut.jar
命令给出后,显示gamut帮助界面,但没有生成博弈。想要生成一个博弈,必须指定特定的参数。
生成有些博弈不需要什么参数。如Battle Of the Sexes博弈。下面是一个自定义支付值的Battle Of the Sexes博弈实例,它是由在gamut基本命令行中加入-g选项得到的:
java -jar gamut.jar -g BattleOfTheSexes
如果你要生成一个Battle Of the Sexes博弈,它的支付规定在0和150种变化,并且把输出保存为文件名为BoS.nfg的文件。这些选项可由全局参数设定。在命令行中指定全局参数,和
生成博弈是同样的风格。
Java -jar gamut.jar -g BattleOfTheSexes -normalize -min_payoff 0 -max_payoff 150 -output gambitoutput -f BoS.nfg英语必修5单词录音
其他博弈需要更多参数。例如,要生成一个Random博弈,参与人的数量和每个参与人的策略数必须指定。这些参数可以出现在命令行中全局参数的之前、之后或者散布在全局参数之间。
Java -jar gamut.jar -g RandomGame -players 4 -normalize -min_payoff 0 -max_payoff 150 -output gambitoutput -f Bos2.nfg -actions 2 4 5 7
最后,有些博弈需要使用函数、图或者子博弈类。这些类也必须参数化。当为这些函数、图或子博弈类指定参数的时候,参数必须是放在中括号中。下面的命令演示了为一个随机的Local-Effect Game指定参数,博弈使用了一个完全图和一个多项式函数。
Java -jar gamut.jar -g RandomLEG -players3 -graph CompleteGraph -graph_params [-nodes 3 -reflex_ok 0] -func PolyFunction-func_params [-degree 2 -coefs 2 1 3]
3 gamut的命令行选项
Gamut命令行是建立在层次化参数的基础上的,各层参数控制着生成的博弈的各个方面。全局参数包括要使用的博弈的类和输出,例如规格化的设定。每个博弈类都有自己要指定的参数。有些博弈还需要设定子博弈,图和函数等参数。
3.1全局参数
这些参数选项对所有博弈都有用。
●-g:指定要使用的博弈类。
●-f:输出的博弈的文件名
●-normalize:如果要规定支付在一个范围内就必须设定这个标记
●-min_payoff:当使用规定范围时的最小支付
●-man_payoff:当使用规定范围时的最大支付
3.2博弈特有的参数
每个博弈都有自己的参数集。两个最常用的特有参数是players和actions。
-players:指定参入人个数
-actions:指定每个参与人的策略个数。一般后面输入一个值即可,这个值也就是每个参与人的策略数。但在有些(非对称)博弈中,也接受对每个参与人输入一个策略数的串。
4可用到的gamut类
4.1博弈类
●BattleOfTheSexes:
Creates a 2x2 Battle of the Sexes Game
By default, allpayoff世界名著小说s will fall in the range [-100,100].This range can be altered by ttingThe normalization options or using integer payoffs.
Game Parameters: No parameters.
●RandomGame:
Creates wanna什么意思a game with the given number of players with payoffs distributed uni-formly at random.
By default, all payoffs will fall in crazy horthe range [-100,100].This range can be altered by tting the normalization options or using integer payoffs.
Game Parameters:
–players
–actions:non-symmetric version
●RandomLEG:
Creates a Local-Effect Game using the specified graph class and specified function class.
Plea noteshirt的意思 that you should be careful when you choo the graph class and t the graphParameters here.The graph chon should be symmetric (i.e. whenever there is an edgeFrom a to b there is also an edge from b to a) and should not have reflexive edges. Set theParameters for the graph accordingly!
GameParameters:
–players
–actions: symmetric version(ection3.2)
–graph: the name of the graph class to u
–graphparams: parameters to be handed off to the graph, must助动词 be enclod in [].
–func: the name of the function class to u
–funcparams: parameters to be handed off to the function, must be enclod in[].
4.2函数
●PolyFunction:
Reprents a general polynomial.Coeffcients and degree can either be specified explicitely,Or randomized to lie within given ranges.
Function Parameters:
–degree: degree of the polynomial function.
–coefs:有限公司 英文 coefficients of polynomial (should be a list of d+1 numbers where d is the degree),In the increasing order of degree.
–coefmin: lower bound on polynomial coeffcients, ud only for randomizing. Can be Anywhere from -1000 to 1000 but defaults to -10.
–coefmax:学位英语网上报名 upper bound on polynomial coeffcients, ud remember是什么意思only for randomizing. Can be Any where from -1000 to 1000 but defaults to 10.
4.3图
●CompleteGraph:
Generates a complete graph with a specified number of nodes.
Graph Parameters:
–nodes: Number of nodes in the graph. Must be >0 and ≤100. When randomized, no More than 20 nodes will be added to the graph. For some games, the number should be Even less and should be t by hand.
–reflexok: Set this to true if reflexive edges are allowed.
6输出
6.3可用的输出类
●GambitOutput:
以gambit的nfg格式输出博弈。