pypepa是pepa的库和工具集。

pypepa的Python项目详细描述


皮佩帕

https://raw.github.com/tdi/pypepa/dev/docs/pypepa.png

pypepa是一个PEPA库,也是Jane为Performance Evaluation Process Algebra(PEPA)提供的工具集 希尔斯顿pyPEPA不是一个完全兼容PEPA的工具,它支持有限的PEPA语法(目前我们只允许在系统方程中使用<>运算符),即它不支持隐藏运算符(例如P\{a,b,}),也不计算通过时间pypepa也不使用kronecker状态空间表示和hillston的聚合算法,因此它的性能可能比pepa eclipse插件差。 所有这些功能以及更多功能都计划在下一个版本中添加。如果你愿意帮忙,就给我发邮件或者提出请求。

警告:pyPEPA正在开发中,这是一个测试版软件

PYPEPA由三部分组成:

  1. libpepa-用python编写的库,
  2. pypepa—用于求解和绘制图形的命令行工具,
  3. 用于解决大型pepa实验的distr/-map reduce工具。

更多文档可以在readthedocs上找到。

https://api.travis-ci.org/tdi/pyPEPA.png

新闻

(2014年5月19日)完全切换到python>;3.3

(2013年7月22日)添加了文档,pypepa现在在rtd.org上有文档

(2013年7月18日)PYPEPA现在可以计算组件状态的利用率,输出参数起作用 再次

(2013年6月7日)增加了对将速率定义为数学表达式的支持,例如r=2*3+7*n;

安装

套餐

使用pip:

$ pip install pypepa

手动:

  1. 克隆项目
$ git clone git@github.com:tdi/pyPEPA.git pypepa
$ cd pypepa
  1. 运行安装
$ python setup.py install

从源头

对于当前版本,我建议安装在virtualenv中

  1. 克隆项目
$ git clone git@github.com:tdi/pyPEPA.git pypepa
$ cd pypepa
  1. 制作一个virtualenv
$ mkvirtualenv -p /usr/bin/python3 pypepa
$ workon pypepa
  1. 安装所有要求
$ pip install pyparsing numpy scipy matplotlib

使用pypepa

基本参数

显示帮助命令:

$ pypepa -h

设置日志记录级别(默认为无):

$ pypepa --log {DEBUG, INFO, ERROR, NONE}

计算

计算银行情景的稳态默认情况下,putput指向您的终端

$ pypepa -st models/bankscenario.pepa

Statespace of models/bankscenario.pepa.1 has 7 states

Steady state vector
Using ; delimiter
1;Idle,WaitingForCustomer,WaitingForEmployee;0.08333333333333337
2;Informed,WaitingForCustomer,WaitingForEmployee;0.25
3;WaitingBankResponse,RequestReceived,WaitingForEmployee;0.16666666666666666
4;WaitingBankResponse,CustomerNotReliable,WaitingForEmployee;0.16666666666666666
5;WaitingBankResponse,CustomerReliable,WaitingForEmployee;0.16666666666666666
6;WaitingBankResponse,WaitingManagerResponse,EvaluatingOffer;0.08333333333333333
7;OfferReceived,WaitingForCustomer,WaitingForEmployee;0.08333333333333333

计算操作吞吐量:

$ pypepa -th models/bankscenario.pepa

Statespace of models/bankscenario.pepa.1 has 7 states

Throuhput (successful action completion in one time unit)

readInformation                          0.08333333333333337
createLoanRequest                              0.25
getNotReliableMessage                    0.16666666666666666
badOffer                                 0.08333333333333333
askManager                               0.16666666666666666
reset                                    0.08333333333333333
goodOffer                                0.08333333333333333
checkReliability                         0.3333333333333333

您可以计算一些时间步的瞬时时间可分配性:

$ pypepa --transient 5 models/bankscenario.pepa

Transient analysis from time0 to 10

Using ; delimiter
1;Idle,WaitingForCustomer,WaitingForEmployee;0.08351202761947342
2;Informed,WaitingForCustomer,WaitingForEmployee;0.2500169897974121
3;WaitingBankResponse,RequestReceived,WaitingForEmployee;0.16662129023697114
4;WaitingBankResponse,CustomerNotReliable,WaitingForEmployee;0.16657721277634494
5;WaitingBankResponse,CustomerReliable,WaitingForEmployee;0.16657721277634485
6;WaitingBankResponse,WaitingManagerResponse,EvaluatingOffer;0.08328947039778702
7;OfferReceived,WaitingForCustomer,WaitingForEmployee;0.08340579639566591

可以通过指定--solver|-s {direct, sparse}来选择解算器。 通过defalt,我们将稀疏解算器与lil矩阵结合使用,因为它速度更快,而且在总体上,由pepa模型生成的矩阵是稀疏的。在结果上也有不显著的差异

pypepa允许您通过指定-gdswitch来可视化所有pepa组件和模型的整个状态空间。生成的graphiz点文件由deault保存在当前目录中的dots文件夹中您可以使用xdot浏览点文件,需要先安装这些文件。

$ pypepa -gd bankdots models/bankscenario.pepa

最后,pypepa可以为我们提供一个测试速率和动作的工具。 在步骤1中,检查当rateReset从1更改为50时,askManager操作的throughtput如何更改此命令的默认结果将是matplotlib图形。 -var的格式是“vartype:varname:value range说明符:value range value”。有效的那个 vartype现在是rate,对于值范围说明符,您可以选择:rangelist。对于range 您需要提供START、STOP和STEP,而对于list则需要一个逗号分隔的值列表。 可以使用-f参数指定其他输出选项:graph、console、csv

$ pypepa -var "rate:rateReset:range:1,50,1" -val askManager  models/bankscenario.pepa
https://raw.github.com/tdi/pypepa/dev/docs/bankexample.png

格式化

可以使用--format选项指定-st-th--varrate的格式。 目前我们支持CSV(尽管不是逗号分隔)、console(默认)和graph(仅限 对于变率实验)此外,还可以使用file参数指定-o|--output选项,以指定保存CSV的位置

$ pypepa -st models/bankscenario.pepa -f csv -o bank_steady.csv

待办事项

功能

  1. 使用函数速率实现速率数学表达式(完成)
  2. 机具通过时间分析
  3. 实现隐藏运算符
  4. 实现三维图形和实验(完成)
  5. Kronecker状态空间与聚集的实现
  6. 通过mirco tribastone实现通用通信pepagenPEPA
  7. 为还原器添加模型操作语言
  8. 添加随机探测
  9. 添加BU算法的分布式版本
  10. 添加从外部文件(和命名空间)导入模型和组件的操作。

非功能性

  1. 优化优化

许可证和学分

版权所有(c)Dariusz Dwornikowski和波兹南理工大学。 在ApacheCommons2.0下发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
算法图形。路径方向Java枚举方向问题无法使用EAST   Java:将字符串转换为特定语言环境   javaspringboot&Thymeleaf为后续调用保存搜索表单的最佳方法   mapreduce程序中未调用java reducer   java如何将url中的Gif文件保存到手机中?   如何在JavaSwing中使用[Esc]键最小化JInternalFrame?   java创建了一个包含100个按钮、80个空按钮和20个随机按钮的网格布局   如何在java中使用数组对2d字符串数组中的每一行进行排序。分类   java无法识别的SSL消息,纯文本连接?例外   为什么Java编译器允许在抛出部分列出方法无法抛出的异常   java将预测数组添加到训练数组   java从Ajax调用获取响应文本   使用改型2的java应用程序等待一分钟后退出