斯皮迪+:二维混合系统模型检查器

混合动力系统
混合系统结合了离散和连续动力学,作为各种人工和自然系统的数学模型,并作为对复杂连续系统的近似。在分析混合系统行为时,一个非常重要的问题是 可达性,即使众所周知,对于混合系统的大多数非平凡子类来说,这个和所有有趣的验证问题都是不可判定的。大多数已证明的可判定性结果都依赖于严格的假设,即存在一个有限的、可计算的状态空间划分为与可达性等价的状态类。

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

斯皮迪
工具SPeeDI[2]是一个实用程序的集合,用于对SPDIs进行机械操作和推理,在5000行哈斯克尔,一种通用的、懒惰的、函数式语言。

可视化辅助工具:
为了帮助可视化系统,该工具可以生成SPDI的图形表示,以及其中的特定轨迹和特征。
信息收集:
SPeeDI计算边到边的后续函数组合,并登记从一个边到另一个边的 签名。
验证:
工具套件最重要的方面是基于[1]中给出的可判定性的构造性证明进行验证。用户可以给出受限的初始边和受限的最终边,工具试图回答后者是否可以从前者到达。
跟踪生成:
当使用不同的速度条和可行的可达性策略生成它们的可行轨迹时。
定性分析
SPeeDI的第二个版本+)在[3]的基础上,使用工具对SPDI进行定性分析。典型的定性问题包括:“是否存在一个一旦进入就永远无法离开的下沉区域?”“这些地区最吸引人的盆地是什么?”;“是否存在这样的区域,即该区域中的每个点都可以从同一区域中的任何其他点到达而不离开它?”。斯皮迪+计算一组描述这些集合的对象,这些集合提供有关混合系统定性行为的有用信息。

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

SPDIs的广度优先搜索分析:
在文[4,5,6]中,我们提出了一种在SPDIs上求解可达性的新算法,新技术的优点是能够识别最短的轨迹,显示可达性,而且该技术与离散系统的标准正向模型检验算法几乎相同,因此,我们有机会将标准优化应用到算法中。
基于相位图的SPDIs状态空间缩减:
在[8,9]中,我们确定了如何利用SPDI的定性分析(相位图)的结果来缩小SPDI的状态空间。自从斯皮迪+已经计算了给定SPDI的相位图,计划将这些缩减应用于改进可达性分析。
并联SPDI的组成分析:
SPDI的相位图也可用于将其分解为若干个可并行运行的独立可达性问题[10]。技术与广度优先搜索算法配合使用效果最好。
SPDI应用:
非线性方程组的精确解在平面上最为突出。SPDI的可达性及其相图构造的可判定性,对此类方程的定性分析有着重要的帮助。挑战在于找到一个平面的智能划分,以便得到方程的最佳逼近。


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

工具箱

概述:
斯皮迪+是一个旨在分析SPDIs的工具包。可在[10]工具说明中找到。它包括以下工具:

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

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

输入语法:
SPDI文件由三个独立的部分组成。第一个词以关键字“Points:” 开头,在此关键字下(在单独的行中)使用以下语法命名和定义使用的点:
点名称。x轴坐标,y轴坐标
注意,点名称以句号结尾,坐标用逗号分隔。点用于定义SPDI分区多边形的顶点。文件的第二部分由关键字“Vectors:”(在单独的一行中)开始,后跟以与点相同的方式命名和定义的向量:
vector_名称。x轴坐标,y轴坐标
最后,最后一部分以关键字“Regions:”开头,并使用以下语法包含SPDI region polygons :
点?1:点?2:…:点?n:点?1,左?向量,右?向量
多边形顶点的名称(在输入文件的“点”部分中命名)以冒号分隔的顺序列出。重复第一个点以闭合多边形。最后,两个微分包含向量名在行尾用逗号分隔。
SPDI文件中以星号开头的行被视为注释。
SPDI示例文件是为了澄清语法。

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

下载:
  • 斯皮迪+(SPeeDI第2版): 这是SPeeDI的最新版本,其中包括相位肖像分析。
  • 斯皮迪(1.2版):SPeeDI的早期版本。
  • 参数化SPDIs:从参数化的SPDI文件中提取SPDI文件的脚本。
  • MSPDI:这包括Perl库,这些库可以生成常规的spdi,还有一个目录,其中有许多使用spdi的示例。


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

电话:(+356)2340 2504
传真:(+356)2132 0539
电子邮件: Gordon.Pace@um.edu.mt
杰拉尔多·施耐德
信息学系,
奥斯陆大学,
P、 布林登1080号信箱,
奥斯陆0316号,
挪威

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