研究文章|开放获取
Mauricio Guevara-Souza,埃德加·e·瓦列霍, ”使用多核技术加快人口复杂的模拟进化”,应用计算智能和软计算, 卷。2013年, 文章的ID345297年, 9 页面, 2013年。 https://doi.org/10.1155/2013/345297
使用多核技术加快人口复杂的模拟进化
文摘
我们探索使用多核处理技术进行模拟人口替代疾病的向量。在我们的模型中,模拟向量的土著人口接种小外生人口已感染的向量沃尔巴克氏体属细菌,授予豁免权的疾病。我们进行了一系列的计算模拟研究条件所需的入侵人口接管土著居民。鉴于本研究的计算负担,我们决定利用现代多核处理器技术模拟减少所需的时间。总的来说,应用程序的结果看起来有前途的方面和多核的使用技术。
1。介绍
我们研究项目的一部分,其主要目的是开发有用的计算工具和模型获得的见解对疾病的种群动态向量及其潜在的应用程序来开发新的策略来控制媒介传播的疾病,如疟疾和登革热(1]。
转基因的引入向量难治性疾病到野生原生种群达到疾病的替代携带数量是一种很有前途的疾病控制策略,但迄今为止只有探索在一定程度上(2,3]。
一个可能的选择,似乎前途是引入蚊子感染了沃尔巴克氏体属细菌为登革热和疟疾疾病控制野生种群。细菌产生各种各样的健身和繁殖改变机制,有助于建立免疫人群(4]。
沃尔巴克氏体属pipientis是一种细菌感染各种无脊椎动物类群。据估计,大约20%的昆虫都是感染这种细菌(5]。
可以迅速传播的细菌感染人口由于细胞质不相容,以至于在它的主机(6,7]。
这种机制导致女性的后代,不感染沃尔巴克氏体属和一个男性感染死亡。如果女性被感染,后代将生存和感染沃尔巴克氏体属不管男性(参见图的感染状况1)。
此外,它已被证明沃尔巴克氏体属提供了一些病毒抵抗宿主,因此有助于克服失去健康。尽管如此,这种机制导致人口的快速入侵主机。
动力学的理论模型沃尔巴克氏体属感染已经发展在过去(8]。原则上,这些模型应该能够解释感染原生种群的动态。然而,理论种群动态模型通常需要强有力的假设,如无限人口大小、概率计算,很难在实践中,等等。在这种背景下,计算机仿真已被证明是有用的在实际场景中证实了理论的有效性。我们相信成功的实验工作至关重要的是依靠健全的理论工作应该通过全面的计算机模拟进行验证。
基于这个前提,我们一直在开发和测试计算机仿真模型多年等各种基因驱动机制转座的元素和母体效应占主导地位的胚胎被逮捕(美狄亚)为了给预测这种人口替代疾病控制策略的有效性(9,10]。
我们相信,在这些机制起太大作用的有效替代野生种群的方式不会影响生态系统的食物链或其他重要变量。环境是在这样一个微妙的平衡,任何外部干预可以打破平衡的严重后果。
在本文中,我们提出一个野生种群替代使用向量的一系列实验感染了沃尔巴克氏体属细菌。各种场景的探索为每一个使用不同的参数。模拟的主要目的是确定所需要的条件沃尔巴克氏体属感染接管整个土著居民。
给出所需的计算密集型的模拟研究中,我们使用一些计算机技术顺序和并行对比他们在效率方面的使用计算机资源。
我们相信这种基准将宝贵的科学家不精通计算机技术来帮助他们选择最适当的技术研究。
为此,我们也探索到何种程度我们可以加快模拟通过使用各种多核技术,包括OpenMP和Java线程。重要的是要指出我们编程的四个模拟器尽可能使用相同的设计和编码标准之间的比较是公平的技术。
在应用方面,本文提供的实验结果提供了宝贵的见解与人口替换所需的条件,包括本地和入侵种群的大小,等等。
这里给出如上所述,这些结果是非常初步的,我们只使用模拟器研究多核技术是否适用于真正的问题但是我们想关注技术之间的基准,而不是计算模型的结果。
的技术用于这项研究中,我们发现Java线程是一个更有能力的技术模拟减少所需的时间,还因为它是一个计算机语言,相对容易学习,构建软件所需的时间更少。
本文的组织如下。节2我们简单描述一些关于编程语言和编程范式的理论对于那些不更新。部分3描述了我们在我们的研究项目中使用计算机模型。节4,我们目前的初步结果模拟器的性能基准测试不同的技术。部分5介绍我们的结论,对实验进行模拟和性能基准。
2。背景
2.1。计算机技术
2.1.1。编程语言编译和解释
根据他们的实现,有两个主要类别分类编程语言:编译和解释。编译语言,程序员输入的代码简化为一系列的机器语言指令都存储在一个可执行文件。另一方面,使用解释语言,代码保存在相同的语言或作为替代介绍程序员是存储在一个中间语言解读为一个虚拟机。
相信编译程序运行速度比解释,因为解释程序在运行时必须翻译成机器指令,但有一个权衡:解释语言更灵活。举个例子,解释程序可以在运行时添加或修改函数和变量,编译程序不能。解释型语言的另一个优点是,他们通常更容易学习和调试。
如今,科学计算的首选语言是编译的。这种偏好是由于认为编译语言更有效和更好的内存使用。然而,随着虚拟机技术的进步,效率差距已经缩小。
在这个工作我们实验了两个不同的编程语言:编译和解释。我们使用的语言是c++和Java的;他们被广泛使用。
2.1.2。串行和并行处理
当电脑第一次出现,直到最近,串行处理的主导范式。计算机中的指令处理主要以先进先出的方式有一些层次结构之间的指令之前确定关键业务进行更少的关键。
当cpu速度不够快,多任务操作系统。这实际上多任务只是一种幻觉,一次只执行一个任务。处理器切换任务这么快,用户可能不会注意到任务之间的切换。在串行处理中,只有一个路径指令执行和数据流之间的过程。
串行处理的一个优点是,程序非常可预测的结果,通常更容易建立一个串行程序。现在计算机硬件变得更便宜和更强大的非常迅速。一些年前,个人电脑在主内存和处理器的处理能力非常有限,但今天,任何人都可以得到一个更强大的计算机比三十年前超级计算机以一个合理的价格。
是很常见的,个人电脑配有多个处理器,每个处理器与多个核心。这个打开门到另一个称为并行处理的计算范例。
并行处理是使用多个CPU或执行程序的核心,通常通过使用线程。理想情况下,并行处理可以帮助计划执行得更快,因为更多的硬件分配执行指令,但这并非总是如此。
利用多个处理单元,该项目被设计以这样一种方式,几个可执行的指令和状态是很重要的,并不是每个项目都可以分解成代码段可以并行处理。
并行处理的主要缺点是程序的复杂性,它们更难编写和调试。另一个缺点是功耗和硬件要求,暂时不适合移动设备。
在这个工作我们写同样的程序在一个顺序和并行编程。顺序程序我们使用Java和c++中,我们使用Java线程的并行程序,c++ OpenMP库,分别。
2.1.3。Java虚拟机
Java虚拟机(JVM)负责执行Java的中间语言,称为Java字节码。JVM还提供了一个环境可以提供一些实用程序执行程序错误处理。使用JVM的主要优势是用Java编写的程序的可移植性。相同的代码可以执行在任何电脑或设备,启用了一个JVM。
JVM提供保护的硬件访问。每一个Java程序都分配一个最大内存可以使用。JVM中的内存配置参数。如果程序使用更多的内存比建立,JVM将抛出一个异常,然后杀死进程。这种保护机制实现保护计算机的内存被恶意程序破坏或编程错误。
在90年代中期,当Java出现了,主要的抱怨是关于程序的性能。他们非常缓慢而当时流行的语言如C或c++。总的来说,科学家们仍然有这个想法但目前JVM在这方面有显著改善,关闭编译语言和Java之间效率的差距。
此外,由于每个JVM根据操作系统和硬件,现在JVM旨在充分利用计算机资源,功能,传统的编译语言(如c++)没有。作为一个例子,JVM可以识别更多的处理器的代码使用和编译成机器语言来增加效率,而其他的程序保存在Java字节码(11]。
2.1.4。Java线程
Java线程包含核心的语言所以没有需要额外的库来使用它们。线程的概念很容易掌握。简而言之,一个线程是另一个路径在执行程序代码可以同时执行多个指令。有一些程序需要执行多个进程,线程可以在这些情况下非常有用。
所有的Java程序从一个线程,是主要的一个开始。在程序的主体,一些新的线程可以实例化并使用,每个线程有自己的调用堆栈。线程编程介绍新的挑战,特别是如果他们分享一些需要读取或写入的内存一次多个线程。有几种机制来防止共享内存腐败、并发性问题或死锁,但线程管理已经超出了本文的范围。
总之,线程可以是一个非常有价值的工具,加快和提高效率的Java程序,但他们必须小心使用,是效率的权衡对复杂性的设计和编码(12]。
2.1.5节讨论。OpenMP
OpenMP是一个第三方库,可以使用C, c++,或者Fortran编程语言。广泛用于科学和商业计算。OpenMP应用程序编程接口(API)使用众所周知的fork - join模型允许并行执行的程序,否则会被完全顺序。与OpenMP,执行多个线程可以执行不同的任务在图书馆使用可用的指令。这些指令是为了在计算机中使用所有可用的核心。
使用OpenMP的一个优点是正确的能力执行相同的程序顺序或并行的方式。然而,也有一些程序将执行正确的并行程序但不是连续的。此外,当涉及数学计算,使用不同数量的线程运行同一个程序可以产生不同的结果,由于协会的数字。
在Java线程,一个线程的程序开始执行的初始线程。这个线程按顺序执行指令,直到达到一个地区包围一个平行的指令。当这种情况发生时,线程的线程创建了一个团队来执行指令内封闭并行指令。可以指定线程的数量在OpenMP指令。的并行块,加入一个线程和线程的团队项目的执行顺序继续(13,14]。
3所示。材料和方法
计算机模型提出了这项工作是一组连接的蚊子种群通过迁移。每个人口发展独立于彼此。我们模拟了沃尔巴克氏体属机制在繁殖观察能否在转基因蚊子种群取代原生的帮助沃尔巴克氏体属感染。
进行模拟,计算机模型的两种变体。它们之间的区别仅仅是计算。第一个运行顺序的方式,而另一个使用多核科技发展每个人口平行使用所有可用的核心。模拟生物过程的人民受难是相同的变化。
3.1。蚊子表示
每个蚊子的人口是由一组属性模型的生活的最重要的特征。蚊子的第一个特征是染色体所代表的一个字母数组。所有的信件属于DNA字母(A、G、C、T)。
染色体的长度保持小节省计算资源,自沃尔巴克氏体属感染细菌而不是DNA修饰,染色体的长度不影响模拟的结果。
我们包含在模型的第二个功能是性。这区别个人是非常重要的,因为我们想要效仿繁殖过程尽可能接近自然。正如预期的那样,性属性可以假设只有两个值:男性和女性。
另一个重要特点是种群中个体的位置。为此我们使用两个变量。位置是很重要的,特别在生殖阶段和人口结构。
模拟沃尔巴克氏体属感染过程中,我们使用一个布尔标志指示是否个人被感染。
最后,我们个人的健康记录。这个值总是在0到100的范围。这是一个人的最重要的一个特征。高的健身价值增加个体产生后代的机会和它还控制它可以产生后代的数量。
3.2。人口结构
个人被组织在一个二维环形方格网,用于模拟自然栖息地。每个人的位置复制是很重要的,因为我们只限制雌性与雄性交配,坐落在一个固定的社区(见图2)。
组成的人口是大约一半男性和一半女性但由于个体的性别是随机生成的繁殖的时候,这种成分可以改变代代相传。
我们决定使用这个人口结构接近如何复制发生在自然种群个体的位置并不是随机的,它在个体的位置依赖。在许多人口众所周知,最好的适应个体倾向于聚在一起的中心人口和不喜欢的是偏远的地方。
3.3。沃尔巴克氏体属感染
在这部作品中,沃尔巴克氏体属感染表现个人的胞质不相容。感染过程进行仿真的开始。介绍了不同比例的受感染的蚊子在我们跟踪的所有人口,有多少蚊子感染沃尔巴克氏体属在每一代的结束。然后,我们计算每个人口的百分比的感染。在我们的实验性质,沃尔巴克氏体属健身的感染不涉及一个点球。
3.4。交配的限制
在理想的人群,复制品与随机交配。在自然界中,很少或没有这样的种群繁殖。有很多情况下,随机交配不可能的。在我们的模型中,我们使用地理限制为了使繁殖更像野生种群繁殖。
3.5。遗传算子
3.5.1。选择
选择合适的父母使用锦标赛选择但有两个重要的限制。第一个重要的限制是个体的性别。第一个父我们选择是女性。选择女之后,下一步是找到合适的男性。
第二个约束在这一点上。我们使用一个社区限制所以只有社区内的男性,可以选择的女性伴侣。我们使用锦标赛选择选择的男性和女性。
3.5.2。交叉
在我们的模型中,我们使用一个单点交叉产生后代的染色体。执行交叉之前,我们检查了沃尔巴克氏体属父母的地位。中描述的那样沃尔巴克氏体属部分,如果女性没有感染沃尔巴克氏体属男性是,细胞质不相容会杀死所有的后代,所以没有必要产生后代的染色体。如果后代是可行的,交叉操作发生的概率为100%。
转换完成后,沃尔巴克氏体属国旗是后代更新根据父母感染状况。我们相信,总是进行交叉操作接近如何繁殖后代以来发生在自然总是继承了父母双方的遗传物质。
3.5.3。突变
在我们的实验中我们使用统一的突变在所有情况下。因为个人的染色体不是二进制但包含字母,我们必须应用小修改突变过程。染色体中的每个字母我们生成一个随机数,如果超过一个阈值这封信突变。对于每一个字母,突变,我们使用另一个随机生成的数字。基于这个数字我们选择另一种DNA字母换成统一的概率分布。
3.5.4。迁移
人口迁移的一些个人的运动到另一个。在自然界中,这种机制非常重要,因为它引入了一些种群遗传多样性。在我们的模型中,生成每个新一代之前,我们收集个人的人口的比例,将它们移动到另一个人口迁移过程模拟。
新人参与生殖过程,引入新的遗传物质和在某些情况下更多的可能性沃尔巴克氏体属感染。
4所示。结果与讨论
4.1。人口替代由沃尔巴克氏体属感染
基因工程已经取得了很大的进步在过去的几年里。人们认为转基因蚊子可以设计以取代携带疟疾的等位基因无害的。如果这是真的,更可行的场景和成立的替代机制,可能导致野生种群将会非常有价值。这个实验的目的是发现可能与另一个场景来取代野生蚊子种群人口感染沃尔巴克氏体属。
确定参数的实验分为两组。第一组参数是固定在所有的实验。我们决定维持这些参数不变,因为我们认为他们没有在实验的结果产生重要的影响,所以不同不会影响结果以确定的方式。
这些参数及其值如表所示1。这个表中的值表示用于所有实验。
|
||||||||||||||||||||||||
第二组的参数测定使用广泛使用的统计方法称为拉丁超立方体抽样(lh) [15]。lh计算机模拟中使用,因为它会生成一个合理的分配从多维分布参数值的集合。这些参数选择等,因为我们认为他们是最重要的。此外,与真正的蚊子在实验中,我们可以有一些控制。
这些参数如表所示2表示为一个范围,而不是像其他参数作为一个简单的值。
|
||||||||||||||
我们做了详尽的实验结合不同参数的值,以覆盖尽可能多的场景。由于大量的组合参数,我们获得了大量的数据分析和合成,所以我们只展示结果,我们认为是最重要的。
在所有情况下,几个运行相同的参数,和给出的结果是平均的。我们分离的结果,实验三个部分。我们认为每个部分是重要的理解感染过程中不同参数的影响。
以下4.4.1。人口规模效应
在这种情况下我们想观察的影响人口规模的固定沃尔巴克氏体属感染。实验结果如图所示3。
我们可以看到在图3感染,人口的规模越来越大,加速其感染。在庞大的人口,感染通过所有的个人传播只有80代。相比之下,在小群体感染仍然接近于零。我们认为这种行为是由遗传漂变的影响。
表示是很重要的,一个非常小的比例的感染被用于实验。研究结果表明,它更有可能感染人口众多使用小型感染比例比试图感染人口不多甚至更大比例的感染。
4.1.2。感染的比例
在这个结果,我们展示如何感染的比例影响感染过程的速度。在本例中,我们使用的是中等大小的人口约90000人感染的观察不同百分比的影响。
这个实验的结果如图所示4。
没有惊喜这个实验获得的结果。在所有情况下,在整个人口感染传播,但传播与感染的比例更高更快。这个实验获得的有价值的信息是,即使一个很小比例的感染,如果人口足够大,更换土著人口是可行的。
4.1.3。人口数量
在这个实验中,我们想要观察如果人口的数量会影响感染的过程。我们比较获得的结果有两个,三个,四个种群通过迁移(参见图连接5)。在这种情况下,有一个中央人口和一个,两个,三个亚种群。中央人口族群之间的迁移,反之亦然。之间不存在迁移的亚种。
这个实验的结果如图所示6。
(一)
(b)
图表明,人口的数量并没有一个直接的影响在感染过程。如果人口数量的增加,有一个小扰动由于迁移过程但不够重要考虑人口数量的一个至关重要的参数。相反,我们要探索在未来如果接种只有一个人口为传播就足够了沃尔巴克氏体属感染到整个邻居数量。
4.2。计算机技术指标
这个实验的目的是观察基准不同的计算机技术的效率他们每个人在执行完全相同的计算机程序。在这个实验中,我们使用的是编译语言和semi-interpreted语言,他们两人顺序程序和并行。我们正在考虑Java semi-interpreted语言因为在严格意义上是编译为字节码,但是这些JVM字节码必须解释。
我们使用两个场景。第一个有两个人口和第二个四个人口。我们使用三种不同的人口规模,它们构成一个二维正方形网格。仿真的参数中指定的表3和相同的模拟实验。
|
||||||||||||||||||||||||||
我们选择这些参数,以保持尽可能模拟种群和个体本质上是如何表现的。唯一的参数,是走调的长度是个体的染色体。在自然界中,染色体是成千上万的基地,但我们认为使用这么大的染色体将导致浪费内存。
计算机用于运行实验有一个英特尔酷睿i5双核心处理器能够使用超线程执行一次四个任务。这台机器有四个字节的随机存取存储器(RAM),但是JVM配置为使用最多1 g的内存对于每一个实验。
跟踪每个实验完成的时间我们使用两个测量。第一个是时钟的集成开发环境(IDE)。第二个是一个时钟在每个项目开始第一个指令执行时,所有的计算完成时结束。他们都产生了相同的时间,以毫秒为单位。
执行这样的基准,是很重要的隔离程序尽可能多。实验运行时,没有其他的项目是由计算机执行。同时,电脑与互联网以防止无意下载互联网内容的操作系统更新。
此外,我们杀死了所有的用户和系统进程可能偏差结果,但我们不可能杀死所有的流程由于操作系统限制。实验结果如表所示4。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
对于每一个场景中,30进行运行。表的值的平均。值表示为一个百分比和反映每一个技术的加速最慢的一个,在这种情况下,C + +。
我们可以看到在桌子上4相比,Java线程非常优越的其他三个技术实验。
Java和OpenMP取得了类似的结果在总体上,在一些实验的Java获得更好的加快但在其余OpenMP更好。
c++是远远落后于其他技术。考虑到c++编译语言,一般被认为是一个非常有效的语言,这些实验的结果令人惊讶。
Java线程加速非常恒定在所有实验。无关紧要的人口规模或数量的结果几乎相同。
另一方面,OpenMP显然开始缩小差距对Java线程的数量和规模数量增加。也许对于一个模拟与大量的人口或人口与数以百万计的个人,OpenMP将更高效的技术。
在自然界中,大小的冈比亚疟蚊蚊子数量很少超过40000人。使用这个前提,Java线程将选择的技术来模拟的数量冈比亚疟蚊蚊子。
另一个原因选择Java或c++或Java线程OpenMP是设计和编码的复杂性的项目。编程远比c++与Java技术由于自动管理内存,更广泛的和有用的API和更健壮的ide中可用的开源社区。
5。结论
这里介绍的工作表明,计算机建模和模拟简化基于人群的研究现象。特别是,我们表明,计算模拟可以提供重要的见解实现人口替换策略所需的条件控制媒介传播的疾病,如疟疾和登革热。
这样的实验条件的确定是非常繁重的。此外,我们相信,计算模拟的建模能力相当不错进化种群生物学和遗传方面的,如遗传漂变和胞质不相容,等等。
这样的计算机仿真工具正在迅速的可用性是至关重要的几个研究小组已经开始实际的释放沃尔巴克氏体属来华的蚊子。国家如中国、澳大利亚、印度尼西亚、越南、巴西等,加入了消除登革热的程序,其目的是控制登革热沃尔巴克氏体属引起人口替换。信息发布沃尔巴克氏体属来华为控制登革热的蚊子可以发现(http://www.eliminatedengue.com/)。
此外,我们表明,使用现代多核技术可以非常有用的人口减少所需要的时间进行模拟实验为基础,实验和仿真器的编程。实际上,模拟人口生物学是高度并行的在一般情况下,这些应用程序和现代高吞吐量计算技术将是一个非常合适的选择。
我们还发现,计算机技术发展如此之迅速,大多数偏见(如编译和解释编程语言)的优越性已不再有效,至少在一个特定的问题。
引用
- m . Guevara-Souza e·e·瓦列霍,“计算机模拟人口疾病向量替换由母体效应占主导地位的胚胎被逮捕(美狄亚)”生物系统的软件工具和算法施普林格,页335 - 344年,2011年。视图:谷歌学术搜索
- j·m·马歇尔和c·e·泰勒“疟疾控制转基因蚊子,”《公共科学图书馆·医学》杂志上》第六卷,没有。2篇文章ID e1000020 2009。视图:出版商的网站|谷歌学术搜索
- 答:a .霍夫曼b·l·蒙哥马利j . Popovici et al .,“成功建立沃尔巴克氏体属在伊蚊种群减少登革热的传播。”自然,卷476,不。7361年,第459 - 454页,2011年。视图:出版商的网站|谷歌学术搜索
- c . j . McMeniman r . v . Lane, b . n .卡斯et al .,“稳定的缩短沃尔巴克氏体属感染的蚊子埃及伊蚊。”科学,卷323,不。5910年,第144 - 141页,2009年。视图:出版商的网站|谷歌学术搜索
- p·r·克雷恩j . w .电源e . Suh黄y·h·克罗利,s . l·多布森。”沃尔巴克氏体属感染,减少不成熟的昆虫生存:预测影响人口替代,”BMC进化生物学,11卷,不。1,第290条,2011。视图:出版商的网站|谷歌学术搜索
- s·l·多布森、c·w·福克斯和f . m . Jiggins”的效果沃尔巴克氏体属全身的胞质不相容在自然和操纵系统主机人口规模,”《皇家学会学报B,卷269,不。1490年,第445 - 437页,2002年。视图:出版商的网站|谷歌学术搜索
- d . c .来自”机制的基因测试沃尔巴克氏体属全身的胞质不相容的果蝇”,遗传学,卷154,不。2、771 - 776年,2000页。视图:谷歌学术搜索
- 诉答:a .詹森·m·Turelli和c . j . Godfray随机扩散沃尔巴克氏体属”,《皇家学会学报B,卷275,不。1652年,第2776 - 2769页,2008年。视图:出版商的网站|谷歌学术搜索
- m·格瓦拉和e·e·瓦列霍”基因替换的计算机模拟模型向量数量,”学报》第八届IEEE生物信息学和生物工程国际会议(BIBE ' 08)2008年10月,页1 - 6,IEEE,。视图:出版商的网站|谷歌学术搜索
- m·格瓦拉和e·e·瓦列霍,”计算机模拟在母体效应占主导地位的胚胎被逮捕(美狄亚)疾病向量人口替代”《第11届遗传和进化计算会议(GECCO ' 09)2009年7月,页1787 - 1788。视图:出版商的网站|谷歌学术搜索
- c . Horstman和g .康奈尔核心Java,Sun Microsystems出版社,圣地亚哥,加利福尼亚州,美国,2007年。
- b . Goetz,Java并发性在实践中美国,addison - wesley,纽约,纽约,2006年。
- b·查普曼使用OpenMP:便携式共享内存并行编程,麻省理工学院出版社,波士顿,质量,美国,2008年。
- w·Savitch解决问题与c++美国,addison - wesley,纽约,纽约,2011年。
- t . Santner、b·威廉姆斯和w·Notz计算机实验的设计与分析,施普林格系列统计,施普林格,2003年。
版权
版权©2013 Mauricio Guevara-Souza和埃德加·e·瓦列霍。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。