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第三方库


热门话题
socketJava UDP连接   java deeplearning4j为CNN培训创建数据仓库   java启动另一个jar并向其提供输入   java将FileChooseParams中的mime类型转换为正确的格式,以用于Intent。集合类型   java Android MediaPlayer:同时流式处理和写入文件。   java如何在Spring云数据流中注册应用程序?   类中的java静态字段初始化序列   java如何在socket中进行变量替换。发送函数   java在向ZooKeeper添加带空格的字符串时的奇怪行为   java中的derby注册表单   java如果我有一个可运行线程和一个实现线程,如何使用wait()和notify()?   java在安卓中以y轴旋转imageview中的立方体   工作进程响应rabbitmq消息的java长时间运行进程   java Ehcache与数据库不同步   java加载JNI Dll   java如何在一个arraylist中对两个不同的模型进行排序?