没有合适的资源?快使用搜索试试~ 我知道了~
SoftwareX 11(2020)100415原始软件出版物DeFinetti:一个分析3-策略集体交互的复制者动态的Mathematica程序马尔科·阿尔凯蒂美国宾夕法尼亚州立大学生物系ar t i cl e i nf o文章历史记录:收到2019年2020年1月1日收到修订版2020年保留字:博弈论复制动力学公共物品合作三元图三角图单纯形a b st ra ctDeFinetti是一个Mathematica程序,使用户能够可视化具有集体互动的三策略游戏的复制动力学,以研究不同生物复杂性水平的合作。该程序计算多个初始频率的游戏的复制动力学,并在三元图(DeFinetti图)上显示轨迹,适应度和终点。用户只需要指定收益,并可以更改参数,可视化其效果,自定义图形的样式并导出结果。©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。当前代码版本代码元数据当前代码版本v1.0此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2019_213法律代码许可证GNU通用公共许可证(GPL)使用GitHub的代码版本控制系统使用Mathematica的软件代码语言、工具和服务编译要求,操作环境依赖性DeFinetti需要Mathematica。Mathematica可在Windows、Mac和Linux上运行。如果可用,链接到开发人员文档/手册可计算文档中包含的文档问题支持电子邮件mua972@psu.edu当前可执行软件版本软件元数据当前软件版本v1.0此版本可执行文件的永久链接https://github.com/archetti/DeFinettiGNU通用公共许可证(GPL)计算平台/操作系统任何可以运行Mathematica的平台(Windows,Mac,Linux)安装要求&依赖性DeFinetti 需要Mathematica如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物包含在可计算文档问题支持电子邮件mua972@psu.edu电子邮件地址:mua972@psu.edu。https://doi.org/10.1016/j.softx.2020.1004152352-7110/©2020作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2M. Archetti / SoftwareX 11(2020)100415··× ××Fig. 1. 在三元图中,三个量a、b、c对应于三种类型A,B和C由等边三角形内一点的位置描述。 这个点到三角形每一边的距离与对应于相对顶点的量成比例。顶点表示纯类型。1. 动机和意义1.1. DeFinetti图DeFinetti图(也称为三元图、三元图、三角图、单纯形图或单纯形)是三个变量总和为一个常数的图。图中每个点的位置因此,三元图使用户能够在二维图中表示三个变量。虽然不是严格必要的,因为实际上只有两个变量(因为三个变量之和是一个常数),等边三角形以直观的方式用图形显示了三个变量的比率:每个变量的浓度在三角形的每个角上都是100%(纯类型),并随着距离这个角的增加而线性下降,在它对面的线上达到0%(根据Viviani定理:从任何内部点到等边三角形的边的距离之和等于三角形的高度的长度)。 1]。三元图被广泛使用,从化学和物理到地质学和生物学,以显示由三种类型组成的系统的状态。在生物学中,它们通常不仅用于描述静态系统,还用于描述种群随时间的动态变化。在群体遗传学中,三元图传统上用于显示具有一个基因座和两个等位基因的系统的基因型频率的变化(导致三种基因型)[1];自进化博弈论开始以来,三元图也引起了进化生物学家和行为生态学家的兴趣[2],以研究具有三种策略的个体之间的相互作用。1.2. 公共产品游戏公共产品博弈(PGG)是一种具有集体互动的多人博弈PGG的例子包括分泌可扩散分子的微生物[3]和分泌生长因子的癌细胞[4],以及哺乳动物[5,6]、鸟类[7]和蛛形纲动物[8,9]中的合作狩猎,合作哺乳动物[10]和鸟类[11]中的哨兵。共有自然资源的开发[12]是PGG的经典案例,环境科学和保护生物学中的集体相互作用的例子从土地管理[13]到与全球气候变化相关的问题[14,15]。类似的集体行动问题出现在大多数人类社会互动和公共产品干预中,例如疫苗接种活动中的群体免疫[16]。因此,从微生物学到生态学和环境科学,在许多情况下都会出现生产公共产品的集体行动问题,并且被认为在进化的大多数重大转变中至关重要[17]。虽然许多类型的PGG假设个人可以是合作者或背叛者(因此使用双策略游戏),但许多情况下涉及三种策略。三向共生[18另一个两种策略都不够的一般情况当公益来自第三方时,就发生了为提供公益而进行的合作。例如,共生体群体中的合作者可以向宿主提供可扩散的营养物(而非合作的共生体免费搭乘合作者的贡献),这反过来为共生体提供益处。这里的宿主是第三种类型,其适应度和频率随时间变化,因此必须使用三人游戏。间接提供公共产品的例子也存在于细胞生物学中:例如,在肿瘤中,产生或不产生扩散性生长因子的癌细胞可以用两种策略(合作者和背叛者)参与公共产品游戏;然而,更常见的是,癌细胞分泌诱导其他“基质”细胞为肿瘤提供有益生长因子的分子-因此,再次出现了DeFinetti图所1.3. 理由虽然某些编程语言存在扩展,为了绘制三元图,它们不允许绘制随时间的变化,而这在生物学中通常是必不可少的。发电机[23,24],以及它最近的同伴EvoDyn-3s[25],是无表例外,使用户能够在三元图上可视化3策略游戏的不同类型的动态(包括复制动力学)。最近的Python包egtplot[26]具有类似的功能。它们可以用来模拟三个或四个策略游戏,两个人口,3 2策略游戏和三个人口,2 2 2策略游戏,但不包括集体互动的多人游戏(公共产品游戏:PGG)。我开发了一个Mathematica程序来绘制具有集体互动的三策略多人游戏的复制动力学。在这里,我描述了这个软件,它也可以在https://github.com/archetti/DeFinetti上找到。该软件生成的图形示例可参见参考文献[22]和[27];此处报告了更多示例。2. 软件描述DeFinetti是一个用Mathematica编写的可执行程序。它包含了源代码和直观的使用说明,无需编译,只需使用Mathematica打开即可直接使用。参数和样式可以使用一系列直观的输入框、滑块和菜单进行修改,结果可以自动实时更新和导出,也可以通过按下按钮进行更新和导出,无需重新运行程序。隐藏在界面中的代码可以通过点击每个部分来显示(和修改,如果需要的话)2.1. 软件构架DeFinetti进行以下操作:如附录所述,使用用户提供的以下输入生成一个具有集体互动的三策略多人公共产品博弈:三种类型的名称;组大小;等式中每个类型i的成本ci。公式(2)(10);Bi,j的符号;起点的个数和世代的个数也可以由用户控制。在给定的起始点数值计算复制动力学M. Archetti / SoftwareX 11(2020)1004153= −==-·····==图二、 曲线显示了这三种类型的频率和人口的平均适应度随时间的对数尺度。参数:n10; c[0.1,0.2,0.3]; b[[0,1,1.1],[1,0,0],[1.1,0.3,0]]; h[[0.3,0.3,0.3],[0.3,0.3,0.3]]; s[[20,20,20],[20,20,20]]; inc[[True,True,真的,真的。相 应 的三元图如图1A和1B所示 。 3和5。图三. 图中参数的三元图。二、起点是固定的,但用户可以选择使用多少个起点以及轨迹(箭头和颜色梯度的数量),并通过直接点击单纯形添加更多的起点在2轴图中显示了三种策略的频率随时间的变化。显示了一系列的轨迹和箭头,显示了三元图中的动力学。在三元图中显示系统的端点使用用户选择的颜色梯度,根据总体的平均适应度为三元图中的轨迹着色。使用户能够直接在三元图上添加更多的起始点。2.2. 软件功能用户可以使用交互式输入字段、滑块和弹出菜单指定模型参数和绘图结果可以在控制改变时实时自动更新,或者在按下特定按钮时生成,从而能够快速更新受改变影响的结果,而不需要多次运行程序。程 序 生 成 的 文 件 名 为 path/time_filename , 其 中 path 是DeFinetti.nb文件所在目录的路径;time是文件生成的时间和日期(in此格式:year_month_day_[hours_minutes_seconds]),它标识每个结果;文件名是生成的文件的类型当修改参数时,可以生成列出参数值的文本文件(文件名:Parameters.txt)。该文件的内容如下:类型:具有三种类型的名称的向量; n:组大小N; c:对于等式1中的每个类型i,具有成本c i的向量。b:具有等式(2)h:具有等式(10)中的拐点hi,js:具有等式(10)中的陡度si,j的矩阵(10);inc:描述Bi,j的符号是否为正的矩阵。第一个图形结果是一系列显示效益函数(每种类型对彼此的影响)由方程描述。(10)给出这些参数。这些图将导出到文件名为Benefits.jpg的文件中。动态的第一个图显示了作为时间(世代)4M. Archetti / SoftwareX 11(2020)100415见图4。 使用不同参数获得的三元图示例(所有inc值均为正值)。 A:n=10;c=[0,0.1,0.2];b=[[0,0,0],[0.5,0.5,0.5],[1,1,1]];h=[[0.5,0.5,0.5],[0.5,0.5,0.5],[0.5,0.5,0.5]];s=[[20,20,20],[20,20,20],[20,20,20]]; B:n=10; c= [0.1,0.2,0,3];b=[[0,1,1.1],[1,0,0],[1.1,−0.3,0]];h=[[0.3,0.3,0.3],[0.3[001 pdf 1st- 31files] [001 pdf 1st-31files][0.2[001 pdf 1st-31files][001pdf 1st-31files[10[001 pdf 1st-31files][001 pdf 1st-[50[001 pdf 1st-31files][001 pdf 1st-31files图五、对 于 相 同 的 参 数 , 使用不同样式(箭头数量、起始点数量、颜 色 重新缩放)的 结 果 示 例 n = 10; c =[0.1,0.2,0.3];[001 pdf 1st-31files] b=[[0, 1,1.1],[1,0,0],[1.1,−0.3,0]];h=[[0.3,0.3,0.3],[0.3,0.3,0.3]];s=[[20,20,20],[20,20,20]]。数字,在对数尺度上突出初始,通常更广泛,变化)为给定的初始频率[图。2]。三种类型的初始频率可以使用滑块进行更改,并实时生成结果。生成数最初设置为200,但可以更改。用户还可以指定图的颜色默认情况下不导出此图,但用户可以保存此图程序的核心使用以下坐标变换生成三元图:如果纯A类型具有笛卡尔坐标(0,0),纯B具有坐标(1,0),则M. Archetti / SoftwareX 11(2020)1004155√==在三元图中,纯C类型的笛卡尔坐标是(1/2,3/2);因此点{a,b,c}具有笛卡尔坐标:{(2b+c)/[2(a+b+c)],(3/2)c/(a+b+c)}在三元图中,每个点代表每一代的三个频率;点实际上没有显示;相反,它们由段连接,形成描述种群随时间变化的轨迹。每一段的颜色箭头的频率,以及初始起始点的数量和代表平均适应度的颜色可以使用滑块进行自定义。除了在各种配色方案中进行选择之外,还可以对适应度值进行归一化(即,在观察到的适应度最小值和最大值之间重新调整它们)。这对于突出显示图中的适应度变化很有用,因为对于某些参数来说,这些变化可能太小;另一方面,不重新缩放值(即,使用绝对适应度值)可以更轻松地比较具有不同参数的图。最后,箭头被添加到轨迹中以显示动态的方向,并且可以选择是否显示端点(这是有用的,例如,在循环动态的情况下)[图10]。 3]。打印将导出到文件名为Simplex.pdf. 一个单独的文件,带有一 个 图 例 , 显 示 对 应 的 值也 会 自 动 生 成 并 导 出 ( 文 件 名Legend.pdf)。在软件的最后一部分,可以通过点击单纯形中的任何点来添加其他起始点[图10]。3]。这部分代码使用了Mathematica中的Round命令,并需要从笛卡尔坐标到单纯形坐标的逆变换:给定笛卡尔坐标{x,y},单纯形{a,b,c}上对应的坐标为:{1−x−y/3,x−y/3,2y/3}显示单个轨迹有时很有用,以便突出显示来自特定起始点的特殊动态,这些起始点不包括在默认设置中。用户可以决定是否将新轨迹与已经获得的轨迹重叠。默认情况下不导出该图,但用户可以保存该图,并将其添加(使用任何图像处理软件)到原始标准图中已显示的图中。3. 说明性实例使用不同参数生成的三元图的示例如图所示。 四、 使用不同的风格相同的参数的进一步的例子如图所示。 五、 图 7显示了DeFinetti如何使用户能够可视化在多发性骨髓瘤中肿瘤-基质相互作用研究中改变一组参数的结果[22]:三种策略是三种相互作用的细胞表型:成骨细胞(OB)、破骨细胞(OC)和恶性浆细胞(MM)。OB和OC细胞的健康平衡可以通过引入MM细胞而不稳定 图图7显示了由三种类型的细胞产生的细胞因子的拐点的位置(其模拟针对这些细胞因子的靶向治疗)如何改变以及模型的动力学和终点。4. 影响4.1. 与以前软件的DeFinetti与其他程序(如Dynamo[23,24],EvoDyn-3s[25]和egtplot[26])之间的主要区别在于,见图6。类型i对类型j的影响bi,j被描述为(类型i的个体数ni的)归一化逻辑函数,具有拐点hi,j;这里hi,j=0.4。示出了多条曲线,其中从si,j→0(线性益处)到si,j→∞(阶跃函数),陡度si,j(增加不透明度)DeFinetti绘制了三策略博弈图,其中包含集体互动(每个参与者的收益取决于许多其他参与者的策略),而不是两两互动(每个参与者的收益只取决于单个对手的策略)。此外,微小的差异包括能够可视化平均种群适应度的演变(尽管以动态速度的可视化为代价-Dynamo和EvoDyn-3s的一个DeFinetti的一个显著缺点是它仅限于复制动力学(Dynamo和EvoDyn-3可以绘制不同类型的动力学)。4.2. 局限性和可能的扩展确定具有集体互动的三策略多人非线性游戏的均衡是不可行的[27]。DeFinetti中的端点是通过查看上一代的频率值来推断的因此,可能会出现两个问题。首先,如果使用的代数不够高,可能会出现多个端点(因为每个轨迹都会过早截断);这个问题可以通过选择大量的代数来轻松解决,并且通常不会导致任何问题。第二,如果没有足够的起点被使用,一些终点可能会丢失,如果他们的吸引力盆很小(因为在那些吸引力盆内没有起点被使用);这是一个更严重的问题,可以通过选择大量的起点来解决-然而,这会导致以下可能的其他问题。当前版本唯一已知的严重问题是,在某些条件下(大量的起始点和使用健身颜色的归一化值),在某些机器上,“更新单纯形”按钮在更新参数后实际上这似乎是因为同时使用这两个选项需要高计算工作。有三种可能的解决方案:选择较少数量的起始点(如果需要,最终添加如上所述的单个轨迹);使用健身颜色的绝对值(而不是将其归一化);以及绘制没有颜色的动态。这些选项都很容易选择使用- ing互动命令。此外,如果需要针对许多轨迹的归一化适应度这个问题发生时,不会对程序的其他部分产生影响。6M. Archetti / SoftwareX 11(2020)100415= −=- -==+ +==-=++→→→→∞→nA,nB一BCnA, nxi= xi<$W( i)−xj W( j)见图7。可视化改变一组参数(h i,j)如何导致动力学、终点和适应性的变化。上图显示了不同hi,j值的效益函数。n 10;c[0.1,0.2,0.3];b[[0,1,1.1],[1,0,0],[1.1,0.3,0]];s[[20,20,20],[20,20,20]]。来源:Ref. [22 ]第20段。该程序允许改变指定用于三种类型的效益函数的参数,允许研究具有单调非线性效益的多人公共产品游戏的动态,从线性,凹和凸到在具有三种类型(iA,B,C)我们可以定义xAa; xBb;xCC(A)BC1);在一个混合良好的群体中,一个群体分别包含A、B和C型的nA、nB和N nAnB个体ni的概率由下式给出:sigmoid和阶梯函数。 它不包括更复杂的,非单调函数具有Math- ematica基础知识的用户可以轻松地修改源代码,(N−1)xnA·xnB·xN−nA−nB−1(一个)更复杂的利益功能或其他类型的三个-战 略 游 戏 也 可 以 引 入 复 制 因 子 动 力 学 的 替 代 方 案 , 就 像Dynamo[23,24]和EvoDyn-3s[25]为具有成对交互的游戏所做的那样。5. 结论DeFinetti能够可视化具有集体互动的三策略游戏的复制动力学,这是对只允许两两互动的ex-task程序的最DeFinetti的明显用途是在公共产品游戏的研究中,这在生物学的许多领域都很有用,从微生物学和A,B,C的收益分别是VA=bA,A(nA+1)+bB,A(nB)+bC,A(N−1−nA−nB)−cA(2)VB=bA,B(nA)+bB,B(nB+1)+bC,B(N−1−nA−nB)−cB(3)VC=bA,C(nC)+bB,C(nB)+bC,C(N−nA−nB)−cC(4)其中ci是类型i的成本,bi,j描述了类型i对类型j的影响。请注意,每个参与者类型i的适应度由下式给出:∑N−1N−∑1−nA(N−1)nA=0nB=0B从癌症研究到行为生态学和人类社会学,或我想鼓励同事们提出更多的改进和扩展建议。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作频率的变化基于复制因子的动力学:xA′=xA(WA−W)(6)xB′=xB(WB−W)(7)xC′=xC(WC−W)(8)其中W *xAWAxBWBxCWC。描述每种类型相互影响的效益函数由下式定义:阑尾 复制动态B (n)=[li,j(ni)-li,j(0)]、、(九)i、 j我[lij(N)−lij(0)]在进化博弈论中,时间通常被认为是基于复制动力学[28]标准化的逻辑函数Bi,j′⎡∑⎤j= a,b, cli,j(ni)=1+esi,j(hi,j-ni/N)(10)参数定义了类型i对类型j的影响i、j定义其中x i和W(i)分别是类型i的频率和适应度。因此,变化率x′i/xi等于类型i的适应度与总体平均适应度之差。作为标准的大型,混合良好的流行模型,在这种情况下,通过考虑在随机形成的大小为N的组中获得的收益来计算适应度,所述组由这样的组出现的概率加权。最大效益;hi,j定义拐点的位置:h i,j 1给出收益递增,h i,j0递减收益;s i,j定义了函数在拐点处的陡度(s i,j模拟了阈值公共产品博弈; s i,j 0模拟了线性收益[图1])。 6];并且(9)中的归一化防止逻辑函数(10)对于si,j变得恒定 0)。这个框架可以分析各种具有集体互动的非线性多人游戏[27,29]。.Wi=xAnA· xBnB· xCN−nA−nB−1·Vi(5)M. Archetti / SoftwareX 11(2020)1004157引用[1]Cannings C,Edwards AWF。自然选择和de Finetti图。《遗传学年鉴》,1968年;第31卷:第421- 428页。[2]史密斯·梅纳德。进化论与博弈论。英国剑桥:剑桥大学出版社,1982年。[3]West SA,Diggle SP,Buckling A,Gardner A,Griffin AS.微生物的社会生活。Annu Rev Ecol Evol Syst 2007;38:53[4]Axelrod R,Axelrod DE,Pienta KJ.肿瘤细胞之间合作的演变。Proc NatAcad Sci USA 2006;103:13474[5]Heinsohn R , Packer C. 复 杂 的 合 作 策 略 在 集 团 领 土 非 洲 狮 子 。Science1995;269:1260-2.[6]MacNingdom DR,Smith DW,Mech LD,Vucetich JA,Packer C.群体大小对狼捕猎麋鹿成功的非线性影响。Behav Ecol2011;23:75-82.[7]Bednarz JC。哈里斯鹰(Parabuteo unicinctus) Science1988;239:1525-7.[8]Kim KW,Krafft B,Choe JC.幼亚社会性蜘蛛合作捕食猎物。Behav EcolSociobiol2005;59:92-100.[9]Yip EC,Powers KS,Avilés L.合作捕获大型猎物解决了蜘蛛社会面临的规模挑战。Proc Natl Acad Sci USA2008;105:11818-22.[10]Clutton-Brock TH.合作哺乳动物中的自私哨兵。科学1999;284:1640-4.[11]Pulliam HR,Pyke GH,Caraco T. Juncos的扫描行为:一种博弈论方法。JTheoret Biol1982;95:89-103.[12]哈丁湾 公地的悲剧。 Science1968;162:1243-8.[13]放大图片Rustagi D,Engel S,Kosfeld M.有条件的合作和昂贵的监测是森林公地管理取得成功的原因。Science2010;330:961-5.[14][10]李国伟,李国伟,李国伟.缓解的政策阈值。Nat Geosci 2016;9:5[15]Steffen W , et al. 《 地 球 系 统 在 新 世 的 轨 迹 》 。 ProcNatl Acad SciUSA2018;2:10141-8.[16]Reluga TC,Galvani AP.人口对策的一般方法及其在疫苗接种中的应用。Math Biosci2011;230:67-78.[17]Maynard Smith J,Szathmáry E.进化中的主要转变。SanFrancisco,CA,USA:Freeman; 1995.[18]von Dohlen CD,Kohler S,Alsop ST,McManus WR.粉蚧β-变形菌内共生体含有γ-变形菌共生体。 Nature2001;412:433-6.[19]Márquez LM , et al. A virus in a fungus in a plant : three-waysymbiosisrequired for thermal tolerance. Science2007;315:513-5.[20]范德海德海草生态系统的基础是三个阶段的共生。Science2012;336:1432-4.[21]Sartakhti JS,Manshaei MH,Bateni S,Archetti M.进化动力学多 发 性骨髓瘤中肿瘤-间质相互作用的研究。PLoS One 2016;11(12). e0168856。[22]Sartakhti JS,Manshaei MH,Archetti M.多发性骨髓瘤中肿瘤-间质相互作用的博弈论:非线性获益的影响。游戏2018;9(32).[23]放 大 图 片 作 者 : Sandholm WH , Dokumaci E , Franchetti F. Dynamo :Diagramsforevolutionarygamedynamics.2012,http://www.ssc.wisc.edu/whs/dynamo。[24]Franchetti F , Sandholm WH. 发 电 机 导 论 : 进 化 博 弈 动 态 图 。 BiolTheory2013;8(2):167-78.[25]Izquierdo LR,Izquierdo SS,Sandholm WH. EvoDyn-3s:一个用于分析3策略游戏中进化动力学的可计算文档。SoftwareX2018;7:226-33.[26]Mirzaev I,Williamson DFK,Scott JG. Egtplot:一个用于三策略进化游戏的Python包。J. Open Source Softw2018;3(26):735.[27]阿凯蒂M如何分析非线性公共物品模型。游戏2018;9(17).[28]泰勒警局,Jonker LB.演化稳定策略与博弈动态。Math Biosci1978;40:145-56.[29]Archetti M,Scheuring I.评论:在没有分类的一次性社会困境中合作的演变。J Theoret Biol2011;299:9-20.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功