SPeeDI公司+:二维混合系统模型检查器

混合动力系统
结合离散和连续动力学的混合系统作为数学模型出现各种人工和自然系统,并作为复杂连续系统的近似系统。混合系统行为分析中的一个非常重要的问题是可达性,即使众所周知,对于大多数非平凡的混合子类系统这和所有有趣的验证问题都是无法确定的。大多数已证明的可判定性结果依赖于导致存在将状态空间划分为状态类的有限且可计算的划分在可达性方面等价。

多边形微分包含系统
一类有趣且仍然可判定的混合系统是SPDI-二维多边形微分包含(也称为多边形混合系统和简单平面微分包含)。如果你想象一个点在移动一个二维平面,SPDI在以下方面限制点的移动方式。将平面划分为有限个凸多边形部分。对于每个这样的多边形,两个向量表示最左侧和最右侧的方向点在该多边形中时可以移动。在[1]中,证明了SPDI是决定性的。

SPeeDI公司
工具SPeeDI[2]是一组用于机械操作和推理的实用程序关于SPDI,在5000条线路上完全实施哈斯克尔、通用、懒惰、,功能语言。

可视化辅助工具:
为了帮助可视化系统,该工具可以生成图形表示SPDI,以及其中的特定轨迹和特征。
信息收集:
SPeeDI计算边到边的后续函数组合并登记从一个边缘到另一个边缘的签名。
验证:
工具套件最重要的方面是基于[1]中给出了可判定性的构造性证明。用户可以给出受限的初始边缘和受限的最终边缘,该工具试图回答后者是否可以从前者到达。
跟踪生成:
只要可达性成功,SPeeDI就会生成可行轨迹条带使用不同的策略和它们的图形表示。
定性分析
SPeeDI的第二个版本,(SPeeDI+)增加了工具以根据[3]对SPDI进行定性分析。典型的定性问题include:“是否有汇区一旦进入,就永远不能离开?“;”它们是这些地区的吸引力?“;”是否存在这样的区域:区域可以从同一区域中的任何其他点到达而不离开它吗?". SPeeDI公司+计算此类对象的集合这些集合提供了有关混合系统。

未来发展方向
在不久的将来,我们将发布一个新版本的SPeeDI,它在内部使用有理数的任意精度描述,从而消除所有舍入分析中的错误。希望我们得到以下理论结果未来还将在工具包中实现:

SPDI的广度优先搜索分析:
在[4,5,6]中,我们确定了一种新的求解SPDI可达性的算法。这项新技术的优点是能够识别最短的轨迹显示可达性,并且该技术几乎与离散系统的标准前向模型检验算法,因此给出我们有机会将标准优化应用于算法。
基于相图的SPDI状态空间缩减:
在[8,9]中,我们确定了定性分析的结果(相图)可以使用SPDI的状态空间来减少SPDI。自SPeeDI以来+已经计算了给定SPDI的相图,计划这些约简用于改进可达性分析。
平行化SPDI的组成分析:
SPDI的相图也可用于将其分解为多个可以并行运行的独立可达性问题[10]。这个该技术在广度优先搜索算法中效果最好。
SPDI应用:
SPDI最突出的应用是用于逼近复杂的非线性微分平面上的方程,其精确解未知。可判定性SPDI的可达性及其相图构建将提供无价的帮助用于此类方程的定性分析。面临的挑战是找到一个平面的智能划分,以获得方程。


SPeeDI论文
[1] 平面微分包含可达性问题的可判定性, 尤金·阿萨林(Eugene Asarin)、杰拉尔多·施奈德(Gerardo Schneider)和塞尔吉奥·尤文(Sergio Yovine),HSCC’2001,LNCS第2034号,第89-104页,意大利罗马,2001。(PDF格式)(BiBTeX条目)
[2] SPeeDI——多边形混合系统的验证工具,尤金·阿萨林(Eugene Asarin)、戈登·佩斯(Gordon Pace)、杰拉尔多·施奈德(Gerardo Schneider)和塞尔吉奥·尤文(Sergio Yovine),在计算机辅助验证(CAV 2002)中发布在LNCS 2404中,丹麦哥本哈根,2002年。(PDF格式)(BiBTeX条目)
[3] 多边形微分包含的相图计算,尤金·阿萨林(Eugene Asarin)、杰拉尔多·施奈德(Gerardo Schneider)和塞尔吉奥·尤文(Sergio Yovine),2002年HSCC,LNCS第2289号,第49-61页,美国斯坦福,2002年3月。(PDF格式)(BiBTeX条目)
[4] 基于不变核的多边形微分包含模型检测, Gordon Pace和Gerardo Schneider,《验证与模型检查与抽象解释》(VMCAI 2004)即将出版2004年在意大利威尼斯LNCS举办。(PDF格式)(BiBTeX条目)
VMCAI’04论文的技术细节见两份技术报告:
[5] 一种新的确定SPDI可达性的广度优先搜索算法戈登·佩斯,马耳他大学计算机科学与人工智能系。技术报告CSAI2003-01。(PDF格式)(BiBTeX条目)
[6] 多边形微分包含的不变核杰拉尔多·施奈德,乌普萨拉大学信息技术系。技术报告2003-042。(PDF格式)(BiBTeX条目)
[7] 多边形混合系统不变性核的计算,杰拉尔多·施奈德,《北欧计算杂志》,11(2):194-2102004。
[8] 多边形混合系统状态空间约简的静态分析, 戈登·佩斯和杰拉尔多·施奈德,在《时间系统的形式化建模和分析》(FORMATS’06)中,Springer-Verlag LNCS(即将亮相),法国巴黎。2006(PDF格式)(BiBTeX条目)
上面的论文和一些额外的证据可以作为奥斯陆大学技术报告。
[9] 用于状态空间缩减的SPDI静态分析, 戈登·佩斯和杰拉尔多·施奈德,技术报告336,奥斯陆大学信息学系,挪威奥斯陆N-0316 Blindern,邮政信箱1080。2006(PDF格式)(BiBTeX条目)
[10] 多边形混合系统并行模型检查的合成算法, 戈登·佩斯和杰拉尔多·施奈德,在第三届国际计算理论研讨会(ICTAC’06)上,Springer-Verlag LNCS,突尼斯突尼斯。2006(PDF格式)(BiBTeX条目)
[11] 广义多边形混合系统的可达性分析,杰拉尔多·施奈德,在第23届美国计算机学会应用计算年度研讨会-软件验证轨道(SAC-SV'08)上,美国计算机学会,2008年3月。
[12] 多边形混合系统的算法分析。第一部分:可达性,尤金·阿萨林(Eugene Asarin)、杰拉尔多·施奈德(Gerardo Schneider)和塞尔吉奥·尤文(Sergio Yovine),理论计算机科学,379(1-2):231-2652007。
[13] 多边形混合系统的算法分析。第二部分:阶段肖像和工具,尤金·阿萨林(Eugene Asarin)、戈登·佩斯(Gordon Pace)、杰拉尔多·施奈德(Gerardo Schneider)和塞尔吉奥·尤文(Sergio Yovine),理论计算机科学,2007年。
[14] 多边形混合系统相图的计算与可视化,戈登·佩斯和杰拉尔多·施奈德,系统构建和分析的工具和算法(TACAS’08),Springer-Verlag LNCS,匈牙利布达佩斯,2008年。

工具包

概述:
SPeeDI公司+是一个旨在分析SPDI的工具包。描述工具可以在[2]中找到。它包括以下工具:

信息收集工具:
  • getmafs:给出SPDI中沿给定路径的累计MAF。
  • looptype:显示循环的类型(STAY、DIE等)
  • trysig:给出签名是否满足可达性问题。
可视化工具:
  • spdi2ps、spdi2fig:生成SPDI的PostScript/fig版本。
  • sig2ps、sig2fig:一起生成SPDI的PostScript/fig版本路径后面跟着签名。
  • path2fig:跟踪SPDI上给定间隔内路径上的可到达区域。
分析工具:
  • showsigs:显示可访问的将要分析的签名列表。
  • 可达性:尝试回答可达性问题是否可满足。
  • simsig:生成签名的具体实例的文本表示。
  • simsig2fig:沿着具体实例跟踪可到达的区域给定签名的。行为像simsig后面跟着path2fig。
定性分析(这些工具在版本2中提供):
  • 生存能力、可控性、不变性:计算并显示生存能力,给定循环的可控性、不变性核。
  • drawkernels:生成绘制了所有内核的SPDI无花果文件。
SPDI生成工具:
  • pspdi2spdi:定义SPDI参数化通常很方便可以通过以下方式在整个SPDI文件中更改某些值只需调整参数。此工具允许用户定义常量和宏。
  • MSPDI:这是一个Perl库,用于生成大型常规SPDI。到目前为止,它还没有正式文件,但你可以看看其中包括了一些示例,以了解如何使用它。
要求:
SPeeDI仅以源格式分发。要编译工具包,您需要最新版本的格拉斯哥-哈斯克尔编译器安装在您的机器上(如果您计划使用打包的Makefile,请进行make)。要使用脚本应用程序(用于元SPDI和参数化SPDI),您还将需要在您的机器上安装Perl。

如何编译:
编辑Makefile,使SRC和BIN目录指向正确的位置。默认情况下makefile假设定义了环境变量SPEEDI,这样源可以在$SPEEDI/src中找到,可执行文件将写入$SPEEDI/bin。只需键入在“make”中。您还可以使用ghc直接编译这些工具。

输入语法:
SPDI文件由三个单独的部分组成。第一个由关键字“Points:”开始其中(在单独的行中)一个使用语法命名并定义使用的点:
点名称。x坐标、y坐标
注意,点名称以句号结尾,坐标之间用逗号。点用于定义SPDI分区多边形的顶点。这个文件的第二部分由关键字“Vectors:”开始(在单独的一行上)然后是以与点相同的方式命名和定义的向量:
vector_name。x坐标、y坐标
最后,最后一部分由关键字“Regions:”开始,并包含SPDI区域多边形使用以下语法:
点_1:点_2:…:点_n:point_1、left_vector、right_vector
多边形顶点的名称(在输入文件的点部分中命名)以冒号分隔的顺序列出。重复第一个点以闭合多边形。最后,两个差分包含向量名在行的末尾,由逗号。
SPDI文件中以星号开头的行被视为注释。
SPDI文件示例用于阐明语法。

对于参数化SPDI文件的语法,运行不带参数的pspdi2spdi脚本获取输入格式的描述。

下载:
  • SPeeDI公司+(SPeeDI版本2):这是SPeeDI的最新版本,包括相图分析。
  • SPeeDI公司(1.2版):早期版本SPeeDI的。
  • 参数化SPDI:脚本到从参数化SPDI文件中提取SPDI文件。
  • MSPDI公司:这包括Perl库支持生成常规SPDI和包含许多示例的目录它的使用。


联系方式
戈登·佩斯
计算机科学系,
信息通信技术学院,
马耳他大学,
Msida MSD 06,
马尔塔

电话:(+356)2340 2504
传真:(+356) 2132 0539
电子邮件: Gordon.Pace@um.edu.mt
杰拉尔多·施奈德
信息学系,
奥斯陆大学,
邮政信箱1080 Blindern,
奥斯陆NO-0316,
挪威

电话:(+47) 22 85 29 71
传真:(+47) 22 85 24 01
电子邮件: gerardo@ifi.uio.no