CN117312722A - 一种基于smt求解器的多系统任务规划方法 - Google Patents
一种基于smt求解器的多系统任务规划方法 Download PDFInfo
- Publication number
- CN117312722A CN117312722A CN202311222434.1A CN202311222434A CN117312722A CN 117312722 A CN117312722 A CN 117312722A CN 202311222434 A CN202311222434 A CN 202311222434A CN 117312722 A CN117312722 A CN 117312722A
- Authority
- CN
- China
- Prior art keywords
- sequence
- constraint
- task
- instruction
- solver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000002452 interceptive effect Effects 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012800 visualization Methods 0.000 claims description 4
- 238000012300 Sequence Analysis Methods 0.000 claims description 3
- 238000003384 imaging method Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 244000007853 Sarothamnus scoparius Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于SMT求解器的多系统任务规划方法,涉及自动化任务规划和调度领域,包括以下步骤:S1:对输入的任务序列进行解析;S2:信息预处理,根据输入的任务序列以及要求输出的序列生成相应的指令模板;S3:子系统建模,生成待求解的初始指令序列;S4:通过交互式工具将自然语言约束转化为符合要求的一阶谓词逻辑公式,并通过Z3库函数添加到SMT求解器中;S5:SMT求解器进行约束求解,子系统的约束加入到SMT求解中后,调用Solver.check(self,*assumptions)方法即可完成求解;S6:根据SMT求解器返回的结果,对任务序列进行分析,生成最终的指令序列。本发明将自然语言约束转化为一阶谓词逻辑公式,通过SMT求解器进行求解,并对结果进行解析,最终得到符合条件的指令序列。
Description
技术领域
本发明涉及自动化任务规划和调度领域,尤其是涉及一种基于SMT求解器的多系统任务规划方法。
背景技术
满足性模块化理论(Satisfiability Modulo Theories,SMT)是计算逻辑领域中的一个重要分支,专门针对特定理论或模型的一阶逻辑公式的满足性问题。SMT求解器的核心目标是确定给定的一阶逻辑公式是否存在满足所有约束条件的解。与此相对的是传统的SAT求解器,专注于命题逻辑。SMT求解器的优势在于它们可以处理更为丰富和复杂的数据类型,例如整数、实数、数组、列表和其他自定义数据结构。此外,SMT求解器也支持更为复杂的操作和关系,如算术运算、序列操作等。在实际应用中,这使得SMT求解器可以很直接地表示和处理多种实际问题中的约束条件。
自动化任务规划和调度在多个领域中均有广泛应用,如制造业、物流、航空航天和机器人技术等。核心思想是将一个复杂的目标任务分解为一系列可执行的子任务,并确定其执行顺序以满足各种约束条件。在航天领域,卫星的操作和管理是一个典型应用。由于卫星资源例如能源、存储和传输带宽的有限性,对任务进行有效的调度至关重要。常见的技术方法包括启发式算法、优化算法、基于规则的方法等。其中,基于规则的方法通常通过定义一组静态规则来为每个任务分配资源和确定其执行时间。优化算法如遗传算法或粒子群优化则试图找到最优或近似最优的任务序列。
尽管现有的任务规划和调度技术在多个应用领域中已经取得了成功,但仍存在以下问题:
效率问题:尤其在面对大量任务和复杂约束时,现有的方法可能需要很长的计算时间才能得到解决方案。
灵活性问题:许多现有的方法特别是基于规则的方法缺乏灵活性,难以适应动态变化的任务需求和约束条件。
准确性和可靠性问题:启发式方法和某些优化方法可能只能提供近似解,而不能保证找到真正的最优解或满足所有约束的解。
自然语言约束的处理:尽管某些方法可以处理形式化的约束,但将自然语言描述的约束转化为形式化逻辑仍然是一个挑战。
因此,有必要提供一种基于SMT求解器的多系统任务规划方法,来解决上述问题。
发明内容
本发明的目的是提供一种基于SMT求解器的多系统任务规划方法,将自然语言约束转化为一阶谓词逻辑公式,通过SMT求解器进行求解,并对结果进行解析,最终得到符合条件的指令序列。
为实现上述目的,本发明提供了一种基于SMT求解器的多系统任务规划方法,包括以下步骤:
S1:对输入的任务序列进行解析,输入不同的任务序列,系统读取后传递给预处理系统进行建模;
S2:信息预处理,根据输入的任务序列以及要求输出的序列生成相应的指令模板;
S3:子系统建模,生成待求解的初始指令序列;
S4:通过交互式工具将自然语言约束转化为符合要求的一阶谓词逻辑公式,并通过Z3库函数添加到SMT求解器中;
S5:SMT求解器进行约束求解,子系统的约束加入到SMT求解中后,调用Solver.check(self,*assumptions)方法即可完成求解;
S6:根据SMT求解器返回的结果,对任务序列进行分析,生成最终的指令序列。
优选的,在步骤S1中,所述任务序列解析步骤如下:输入任务包含两种,一类是数传记录类型任务,包含了数据传输时所使用的资源的数量情况以及占用的时间段的相关信息;一类是数传回放类型任务,包含了回放时所使用的资源的数量情况及占用时间段的相关信息。
优选的,在步骤S2中,根据任务序列的执行情况、任务特点产生额外的可选指令,约束条件的类型包含与或非和蕴含四种,在Z3中调用接口And()、Or()、Not()、Implies()来实现,约束包括静态约束和动态约束,静态约束是对生成指令的固定信息进行描述,是在给定输入序列后其对应的指令变量就无法再变更的约束;
动态约束描述的是对指令工作时间段及完成某个工作的时间点进行约束的时间相关信息。
优选的,在步骤S3中子系统分为星务子系统、控制子系统、可见红外相机子系统、宽幅相机子系统、数传子系统、实时处理子系统,分别用star_affairs_sys,control_sys,vis_infra_sys,wide_cam_sys,data_trans_sys,realtime_proc_sys表示,每个子系统中包含一个约束列表,存储了所有自然语言约束所转化的一阶谓词逻辑公式和一个指令列表,其顺序根据输入任务序列的序列确定,每条指令序列包含了指令时间、指令编码、所属任务ID和控制模式,采用Z3求解器中的Int变量表示。
优选的,在步骤S4中,交互式工具执行及约束添加的步骤如下:
S41:初始输入接收,根据用户输入的自然语言描述的约束或条件,工具进行初步解析和识别关键结构;
S42:自动解析与转换,基于预先定义的规则、模板或算法,工具将输入的自然语言句子转化为一阶谓词逻辑;
S43:可视化与验证,工具提供一个界面,用户看到转化的一阶谓词逻辑,并对其进行验证;
S44:交互式反馈,用户认为转化不正确或不完整,直接修改或提供更多信息澄清其原始描述;
S45:确认与输出,用户满意转化逻辑,工具输出这个一阶谓词逻辑表达式;
S46:学习与适应,工具根据用户的反馈和互动学习,改进其自动转化算法,取得一阶谓词逻辑公式c后,通过调用Z3求解器的Solver.add(self,*args)将c添加到求解器中。
优选的,在步骤S6中,调用Solver.check(self,*assumptions)方法,根据结果是否等于sat来进一步处理;
结果为sat,表明当前输入的任务序列满足目前所有的约束,指令序列的所有信息已经生成,通过调用Solver.model(self),拿到一个list,里面存储了所有指令序列中的Z3变量的值,通过对该model进行解析,生成最终的指令序列;
结果为unsat,表明当前的任务序列不满足当前的约束,存在两条约束之间相互冲突,通过Solver.unsat_core(self)拿到约束集合c的一个子集,不在其中的约束便是unsat的最终原因。
因此,本发明采用上述一种基于SMT求解器的多系统任务规划方法,具备以下有益效果:
(1)本发明采用了Z3-solver求解器,用于检查逻辑表达式的可满足性,可以找到一组约束中的其中一个可行解。Z3-solver可应用于软/硬件的验证与测试、约束求解、混合系统的分析、安全、生物,以及几何求解等问题。
(2)本发明将自然语言约束转化为一阶谓词逻辑公式,通过SMT求解器进行求解,并对结果进行解析,最终得到符合条件的指令序列。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1是本发明一种基于SMT求解器的多系统任务规划方法的整体执行流程图;
图2是本发明实施例一中输入的数传记录类型任务序列;
图3是本发明实施例一中指令序列的模板;
图4是本发明实施例一中样例生成指令序列的表格。
具体实施方式
以下通过附图和实施例对本发明的技术方案作进一步说明。
除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
本发明中使用的“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其它要素的可能。术语“内”、“外”、“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。在本发明中,除非另有明确的规定和限定,术语“附着”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
如图1所示,本发明提供了一种基于SMT求解器的多系统任务规划方法,包括以下步骤:
S1:对输入的任务序列进行解析,输入不同的任务序列,系统读取后传递给预处理系统进行建模;本发明所应用的系统是卫星系统,在步骤S1中,任务序列解析步骤如下:输入任务包含两种,一类是数传记录类型任务,此类约束描述的是卫星系统中所有的数据传输任务,包含了数据传输时所使用的资源的数量情况以及占用的时间段的相关信息;一类是数传回放类型任务,此类任务描述的是卫星系统中所有的回放任务,包含了回放时所使用的资源的数量情况及占用时间段的相关信息。
S2:信息预处理,根据输入的任务序列以及要求输出的序列生成相应的指令模板;在步骤S2中,根据任务序列的执行情况、任务特点产生额外的可选指令,卫星系统包含了星务子系统、控制子系统、可见红外相机子系统、宽幅相机子系统、数传子系统、实时处理子系统等多个子系统。每个系统会产生不同的指令序列,例如,控制子系统会产生成像机动指令,可见红外相机子系统和宽幅相机子系统会产生相机数据指令,数传子系统会产生数据记录模式指令,实时处理子系统会产生实时信号指令等。
约束条件的类型包含与或非和蕴含四种,在Z3中调用接口And()、Or()、Not()、Implies()来实现,约束包括静态约束和动态约束,静态约束是对生成指令的固定信息进行描述,是在给定输入序列后其对应的指令变量就无法再变更的约束;如指令类型、使用固定资源数量等,例如“若任务类型不等于0x4000/0x4001则需要生成控制命令块(93)”,这类约束即要求生成指令的指令类型为93,并且始终保持该值不变。
动态约束描述的是对指令工作时间段及完成某个工作的时间点进行约束的时间相关信息,如指令的发出时间、终端开机时间等,这些信息可以根据我们的需要来添加约束进行调整,以得到最优的任务序列,该类约束在后续的转化阶段进行处理。
S3:子系统建模,生成待求解的初始指令序列;在步骤S3中每个子系统中包含一个约束列表,存储了所有自然语言约束所转化的一阶谓词逻辑公式和一个指令列表,其顺序根据输入任务序列的序列确定,每条指令序列包含了指令时间、指令编码、所属任务ID和控制模式,采用Z3求解器中的Int变量表示。
S4:通过交互式工具将自然语言约束转化为符合要求的一阶谓词逻辑公式,并通过Z3库函数添加到SMT求解器中;在步骤S4中,将自然语言约束转化为一阶谓词逻辑公式是由交互式工具完成,该交互式工具工作的主要步骤有初始输入接收、自动解析与转化、可视化与验证、交互式反馈、再次解析与调整、确认与输出、学习与适应。交互式工具执行及约束添加的步骤如下:
S41:初始输入接收,根据用户输入的自然语言描述的约束或条件,工具进行初步解析和识别关键结构,如主语、谓语、宾语等。
S42:自动解析与转换,基于预先定义的规则、模板或算法,工具将输入的自然语言句子转化为一阶谓词逻辑;例如,“不同子系统的任务不可以同时发送”可能被转化为!=j,instr[i].tcmd!=instr[j].tcmd。
S43:可视化与验证,工具提供一个界面,用户看到转化的一阶谓词逻辑,并对其进行验证;其中可能会有亮亮、提示或其他可视化元素帮助用户理解逻辑结构。
S44:交互式反馈,用户认为转化不正确或不完整,直接修改或提供更多信息澄清其原始描述;
S45:确认与输出,用户满意转化逻辑,工具输出这个一阶谓词逻辑表达式;以供其它系统或用户使用。
S46:学习与适应,工具根据用户的反馈和互动学习,改进其自动转化算法,使其更加准确。取得一阶谓词逻辑公式c后,通过调用Z3求解器的Solver.add(self,*args)将c添加到求解器中。
S5:SMT求解器进行约束求解,子系统的约束加入到SMT求解中后,调用Solver.check(self,*assumptions)方法即可完成求解;
S6:根据SMT求解器返回的结果,对任务序列进行分析,生成最终的指令序列。步骤S6中,调用Solver.check(self,*assumptions)方法,根据结果是否等于sat来进一步处理;
结果为sat,表明当前输入的任务序列满足目前所有的约束,指令序列的所有信息已经生成,通过调用Solver.model(self),拿到一个list,里面存储了所有指令序列中的Z3变量的值,通过对该model进行解析,生成最终的指令序列;
结果为unsat,表明当前的任务序列不满足当前的约束,存在两条约束之间相互冲突,通过Solver.unsat_core(self)拿到约束集合c的一个子集,不在其中的约束便是unsat的最终原因。
实施例一
各个子系统的处理方式一样,我们选择以数传子系统为主来展开,并且只考虑数传记录任务序列作为系统的输入。
首先介绍系统的输入和输出:
输入的数传记录任务序列包含以下信息:任务ID TaskID、成像开始时间t0、成像持续时间dt、机动时间texe、成像使用相机FU_CAM、成像类别F_CalT、任务类型IMType、推扫标志F_ScanType。输入的序列如图2所示,将其读入到系统中。
输出的每条指令序列包含以下信息:指令时间tcmd、指令编码cmdID、所属任务IDCmdTaskID、控制模式Ctrl_Mode、可见红外相机指令1编号Cam_ID1、可见红外相机指令1时间Cam_t1、可见红外相机指令1时长Cam_dt1、可见红外相机指令2编号Cam_ID2、可见红外相机指令2时间Cam_t2、可见红外相机指令2时长Cam_dt2、宽幅相机工作模式、WCam_ID、宽幅相机工作指令时间WCam_t、宽幅相机工作指令时长WCam_dt、数传工作模式DTA_Mode、数传工作时间DTA_t、数传工作时长DTA_dt,对输出指令进行建模,得到图2所示的指令模板,其中每个字段都是通过Z3求解器中的Int型变量表示。
预处理并为各个子系统建模的流程:
子系统分为星务子系统、控制子系统、可见红外相机子系统、宽幅相机子系统、数传子系统、实时处理子系统,分别用star_affairs_sys,control_sys,vis_infra_sys,wide_cam_sys,data_trans_sys,realtime_proc_sys表示,然后为各个子系统建模:
首先是对静态约束进行解析,生成相应的初始指令序列,用instr_xxx_sys表示,这个过程通过调用MySolver.init_instr_list(self)完成,下面是部分子系统生成初始序列的过程:
对于control_sys,其存在静态约束“若任务类型不等于0x4000/0x4001则需要生成控制命令块(93)”,若IMType字段满足条件,便可根据图3所示的指令模板生成一条指令序列添加到控制子系统中,并将其指令编码通过约束的形式加入到求解器中,例如MySolver.add(instr.cmdID==93);
对于vis_infra_sys,其存在静态约束“若子任务“成像使用相机FU_CAM”中使用可见相机或者红外相机,则需要生成可见红外相机指令块(94)”,若FU_CAM字段满足条件,生成一条指令序列添加到可见红外相机子系统中,并将其指令编码通过约束的形式加入到求解器中,例如MySolver.add(instr.cmdID==94);
对于wide_cam_sys,其存在静态约束“若子任务“成像使用相机FU_CAM”中使用宽幅相机,则需要生成宽幅相机指令块(96)”,若FU_CAM字段满足条件,生成一条指令序列添加到宽幅相机子系统中,并将其指令编码通过约束的形式加入到求解器中,例如MySolver.add(instr.cmdID==96);
对于data_trans_sys,其存在静态约束“若任务类型不等于0x4000/0x4001/0x001F,则需要生成数传指令块(95),同时置对应的数传工作模式DTA_Mode=0(记录模式),数传工作时间是t0-1,时长是dt+1”,若IMType字段满足条件,生成一条指令序列添加到数传子系统中,并将其指令编码通过约束的形式加入到求解器中,例如MySolver.add(And(instr.cmdID==94,instr.DTA_Mode==0,instr.DTA_t==t0–1,instr.DTA_dt+1));
由此完成各个子系统的建模,现在每个子系统各自包含对应的初始指令序列,接下来是对各个子系统对应的动态约束进行处理,以数传子系统为主进行说明:
该过程主要是将自然语言约束转化为一阶谓词逻辑公式,这个过程通过函数add_constraints_into_xxx_sys(Solver s),其中xxx表示各个子系统的名称,以下是对数传子系统处理的结果:
对于动态约束1“发送数传指令块的时间需要比数传工作时间至少提前4s”,将其转化为一阶谓词逻辑公式instr[i].DTA_t-instr[i].tcmd>=4。
对于动态约束2“发送两个相同模式的程控数据块,第二个程控数据块需要与第一个程控数据块结束时间间隔4s”,将其转化为一阶谓词逻辑公式 instr[j].tcmd–instr[i].DTA_t–instr[i].DTA_dt>=4。
对于动态约束3“若任务类型不等于0x4001,则该任务需要对数传终端和固存开机:
先“终端开机”,后“固存开机”,将其转化为一阶谓词逻辑公式Implies(task[i].IMType!=0x4001,And(instr[i].terminal_open>0,instr[i].sd_open>0))。
对于动态约束4“对于任务类型为0x001F的任务,终端开机指令至少要在该任务成像时间前72s发出,其他任务是50s”,将其转化为一阶谓词逻辑公式:
And(Implies(task[i].IMType==0x001F,
task[i].t0–instr[i].terminal_open>=72),
Implies(Not(task[i].IMType==0x001F),
task[i].t0–instr[i].terminal_open>=50)。
对于动态约束5““终端开机”后,至少间隔30s,再执行其他指令”,将其转化为一阶谓词逻辑公式,将其转化为一阶谓词逻辑公式:
Implies(instr[i].terminal_open0,
instr[i].sd_open–instr[I].terminal_open>=30)。
对于动态约束6““固存开机”后,至少间隔20s,再执行其他指令”,将其转化为一阶谓词逻辑公式:
Implies(instr[i].sd_open>0,instr[i].tcmd–instr[i].sd_open>=20)。
对于动态约束7“数传开机后,属于记录模式的第一个数传指令块时间要比数传工作时间至少早10s,后续的至少早4s”,将其转化为一阶谓词逻辑公式:
Implies(instr[i].DTA_t-instr[i].tcmd<10,And(instr[i].terminal_open==0,instr[i].DTA_t-instr[i].tcmd>=4))。
对于动态约束8“若任务类型不等于0x4001,则该任务需要对数传终端和固存关机:先“固存预关机”,再“固存关机”,最后“终端关机””,将其转化为一阶谓词逻辑公式:
Implies(instr[i].IMType!=0x4001,Implies(instr[i].sd_preclose>0,
And(instr[i].sd_close>instr[i].sd_preclose,
instr[i].terminal_close>instr[i].sd_close))。
对于动态约束9“在输入1任务序列中,若一个任务的数传工作结束时间(成像开始时间+持续时间)与下一个任务的数传工作开始时间(成像时间)相距小于300s,则本次不进行关机操作,后一次也不用开机操作”,将其转化为一阶谓词逻辑公式:
And(Implies(instr[i+1].DTA_t–instr[i].DTA_t–instr[i].
DTA_dt<=300,And(instr[i].sd_preclose==0,instr[i].
terminal_open==0),Implies(Not(instr[i+1].
DTA_t–instr[i].DTA_t–instr[i].DTA_dt<=300),
And(instr[i].sd_perclose>0,instr[i].terminal_open>0))。
对于动态约束10“固存预关机指令执行时间比成像结束时间至少大1s”,将其转化为一阶谓词逻辑公式:
Implies(instr[i].sd_preclose>0,instr[i].sd_preclose–instr[i].
DTA_t–instr[i].DTA_dt>1)。
对于动态约束11“固存预关机指令,间隔2s后,再发送固存关机指令”,将其转化为一阶谓词逻辑公式:
Implies(instr[i].sd_preclose>0,
instr[i].sd_close–instr[i].sd_preclose>2)。
对于动态约束12“固存关机指令,间隔2s后,再发送终端关机指令”,将其转化为一阶谓词逻辑公式:
Implies(instr[i].sd_close>0,
instr[i].terminal_close–instr[i].sd_close>2)。
将这些约束转化为上述的一阶谓词逻辑公式后,调用函数MySolver.add_constraint_in_constraint_list(self,type,c)将其加入到各自对应的子系统的约束列表中,其中type用于指定添加的子系统,c为待添加额约束。
最后调用MySolver.add_all_constraints_in_solver(self)将所有子系统的约束集合中的约束添加到Z3求解器中,并调用MySolver.solve(self)进行求解,根据结果是否为sat来进行相应的解析。若结果为sat,表明当前输入的任务序列满足目前所有的约束,并且所需要的指令序列的所有信息已经生成,通过调用Solver.model(self),我们拿到一个list,里面存储了所有指令序列中的Z3变量的值,通过对该model进行解析,便可以生成最终的指令序列;若结果为unsat,表明当前的任务序列不满足当前的约束,一定是存在某两条约束之间相互冲突,因此,此时可以通过Solver.unsat_core(self)拿到约束集合c的一个子集,不在其中的约束便是unsat的最终原因。对于这个具体实例,返回结果为sat,生成的指令序列如图4所示。
因此,本发明采用上述一种基于SMT求解器的多系统任务规划方法,将自然语言约束转化为一阶谓词逻辑公式,通过SMT求解器进行求解,并对结果进行解析,最终得到符合条件的指令序列。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (6)
1.一种基于SMT求解器的多系统任务规划方法,其特征在于:包括以下步骤:
S1:对输入的任务序列进行解析:输入不同的任务序列,系统读取后传递给预处理系统进行建模;
S2:信息预处理,根据输入的任务序列以及要求输出的序列生成相应的指令模板;
S3:子系统建模,生成待求解的初始指令序列;
S4:通过交互式工具将自然语言约束转化为符合要求的一阶谓词逻辑公式,并通过Z3库函数添加到SMT求解器中;
S5:SMT求解器进行约束求解,子系统的约束加入到SMT求解中后,调用Solver.check(self,*assumptions)方法即可完成求解;
S6:根据SMT求解器返回的结果,对任务序列进行分析,生成最终的指令序列。
2.根据权利要求1所述的一种基于SMT求解器的多系统任务规划方法,其特征在于:在步骤S1中,所述任务序列解析步骤如下:输入任务包含两种,一类是数传记录类型任务,包含了数据传输时所使用的资源的数量情况以及占用的时间段的相关信息;一类是数传回放类型任务,包含了回放时所使用的资源的数量情况及占用时间段的相关信息。
3.根据权利要求2所述的一种基于SMT求解器的多系统任务规划方法,其特征在于:在步骤S2中,根据任务序列的执行情况、任务特点产生额外的可选指令,约束条件的类型包含与或非和蕴含四种,在Z3中调用接口And()、Or()、Not()、Implies()来实现,约束包括静态约束和动态约束,静态约束是对生成指令的固定信息进行描述,是在给定输入序列后其对应的指令变量就无法再变更的约束;
动态约束描述的是对指令工作时间段及完成某个工作的时间点进行约束的时间相关信息。
4.根据权利要求3所述的一种基于SMT求解器的多系统任务规划方法,其特征在于:在步骤S3中,子系统分为星务子系统、控制子系统、可见红外相机子系统、宽幅相机子系统、数传子系统、实时处理子系统,分别用star_affairs_sys,control_sys,vis_infra_sys,wide_cam_sys,data_trans_sys,realtime_proc_sys表示,每个子系统中包含一个约束列表,存储了所有自然语言约束所转化的一阶谓词逻辑公式和一个指令列表,其顺序根据输入任务序列的序列确定,每条指令序列包含了指令时间、指令编码、所属任务ID和控制模式,采用Z3求解器中的Int变量表示。
5.根据权利要求4所述的一种基于SMT求解器的多系统任务规划方法,其特征在于:在步骤S4中,交互式工具执行及约束添加的步骤如下:
S41:初始输入接收,根据用户输入的自然语言描述的约束或条件,工具进行初步解析和识别关键结构;
S42:自动解析与转换,基于预先定义的规则、模板或算法,工具将输入的自然语言句子转化为一阶谓词逻辑;
S43:可视化与验证,工具提供一个界面,用户看到转化的一阶谓词逻辑,并对其进行验证;
S44:交互式反馈,用户认为转化不正确或不完整,直接修改或提供更多信息澄清其原始描述;
S45:确认与输出,用户满意转化逻辑,工具输出这个一阶谓词逻辑表达式;
S46:学习与适应,工具根据用户的反馈和互动学习,改进其自动转化算法,取得一阶谓词逻辑公式c后,通过调用Z3求解器的Solver.add(self,*args)将c添加到求解器中。
6.根据权利要求5所述的一种基于SMT求解器的多系统任务规划方法,其特征在于:在步骤S6中,调用Solver.check(self,*assumptions)方法,根据结果是否等于sat来进一步处理;
结果为sat,表明当前输入的任务序列满足目前所有的约束,指令序列的所有信息已经生成,通过调用Solver.model(self),拿到一个list,里面存储了所有指令序列中的Z3变量的值,通过对该model进行解析,生成最终的指令序列;
结果为unsat,表明当前的任务序列不满足当前的约束,存在两条约束之间相互冲突,通过Solver.unsat_core(self)拿到约束集合c的一个子集,不在其中的约束便是unsat的最终原因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311222434.1A CN117312722B (zh) | 2023-09-21 | 2023-09-21 | 一种基于smt求解器的多系统任务规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311222434.1A CN117312722B (zh) | 2023-09-21 | 2023-09-21 | 一种基于smt求解器的多系统任务规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312722A true CN117312722A (zh) | 2023-12-29 |
CN117312722B CN117312722B (zh) | 2024-03-19 |
Family
ID=89296431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311222434.1A Active CN117312722B (zh) | 2023-09-21 | 2023-09-21 | 一种基于smt求解器的多系统任务规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312722B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080281563A1 (en) * | 2007-05-07 | 2008-11-13 | Nec Laboratories America | Modeling and verification of concurrent systems using smt-based bmc |
US20100192129A1 (en) * | 2008-10-03 | 2010-07-29 | Microsoft Corporation | Semantic subtyping for declarative data scripting language by calling a prover |
CN104965788A (zh) * | 2015-07-03 | 2015-10-07 | 电子科技大学 | 一种代码静态检测方法 |
CN109034670A (zh) * | 2018-09-06 | 2018-12-18 | 中国人民解放军国防科技大学 | 一种卫星在轨活动规划方法及系统 |
CN112231205A (zh) * | 2020-09-29 | 2021-01-15 | 安徽中科国创高可信软件有限公司 | 基于smt求解器的一阶逻辑公式程序验证方法及系统 |
CN114154784A (zh) * | 2021-10-21 | 2022-03-08 | 航天恒星科技有限公司 | 一种基于规则的敏捷遥感卫星任务规划方法 |
CN114528717A (zh) * | 2022-03-18 | 2022-05-24 | 皖江工学院 | 一种基于sd-mop模型下的水资源优化方法 |
CN114756581A (zh) * | 2022-04-22 | 2022-07-15 | 上海交通大学 | 模板化数据库查询计划的等价性验证方法及系统 |
CN114781330A (zh) * | 2022-03-22 | 2022-07-22 | 上海工业控制安全创新科技有限公司 | 一种基于需求建模的类型检查方法 |
CN115328110A (zh) * | 2021-04-23 | 2022-11-11 | 动态Ad有限责任公司 | 用于自主运载工具的系统和方法以及存储介质 |
CN115509712A (zh) * | 2022-10-07 | 2022-12-23 | 大连理工大学 | 一种基于smt的自动驾驶系统实时性任务调度分析方法 |
CN115904479A (zh) * | 2022-12-22 | 2023-04-04 | 博雅正链(北京)科技有限公司 | 一种监管合约规则冲突检测方法 |
-
2023
- 2023-09-21 CN CN202311222434.1A patent/CN117312722B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080281563A1 (en) * | 2007-05-07 | 2008-11-13 | Nec Laboratories America | Modeling and verification of concurrent systems using smt-based bmc |
US20100192129A1 (en) * | 2008-10-03 | 2010-07-29 | Microsoft Corporation | Semantic subtyping for declarative data scripting language by calling a prover |
CN104965788A (zh) * | 2015-07-03 | 2015-10-07 | 电子科技大学 | 一种代码静态检测方法 |
CN109034670A (zh) * | 2018-09-06 | 2018-12-18 | 中国人民解放军国防科技大学 | 一种卫星在轨活动规划方法及系统 |
CN112231205A (zh) * | 2020-09-29 | 2021-01-15 | 安徽中科国创高可信软件有限公司 | 基于smt求解器的一阶逻辑公式程序验证方法及系统 |
CN115328110A (zh) * | 2021-04-23 | 2022-11-11 | 动态Ad有限责任公司 | 用于自主运载工具的系统和方法以及存储介质 |
CN114154784A (zh) * | 2021-10-21 | 2022-03-08 | 航天恒星科技有限公司 | 一种基于规则的敏捷遥感卫星任务规划方法 |
CN114528717A (zh) * | 2022-03-18 | 2022-05-24 | 皖江工学院 | 一种基于sd-mop模型下的水资源优化方法 |
CN114781330A (zh) * | 2022-03-22 | 2022-07-22 | 上海工业控制安全创新科技有限公司 | 一种基于需求建模的类型检查方法 |
CN114756581A (zh) * | 2022-04-22 | 2022-07-15 | 上海交通大学 | 模板化数据库查询计划的等价性验证方法及系统 |
CN115509712A (zh) * | 2022-10-07 | 2022-12-23 | 大连理工大学 | 一种基于smt的自动驾驶系统实时性任务调度分析方法 |
CN115904479A (zh) * | 2022-12-22 | 2023-04-04 | 博雅正链(北京)科技有限公司 | 一种监管合约规则冲突检测方法 |
Non-Patent Citations (5)
Title |
---|
ZHUO CHENG等: "Scheduling overload for real-time systems using SMT solver", IEEE, 21 July 2016 (2016-07-21), pages 1 * |
张奕裕等: "基于核外计算的Datalog引擎设计与实现", 软件学报, vol. 34, no. 8, 19 January 2023 (2023-01-19), pages 3587 * |
曹旭等: "基于时延抖动与信道使用量约束的供热网络无线TSN流量调度算法", 移动通信, vol. 47, no. 8, 15 August 2023 (2023-08-15), pages 28 * |
王凡;尹浩伟;蒋峰岭;郭玉堂;: "服务机器人自然语言处理的研究与应用", 安徽科技学院学报, vol. 32, no. 04, 14 September 2018 (2018-09-14), pages 61 * |
陈立前等: "抽象解释及其应用研究进展", 计算机研究与发展, vol. 60, no. 2, 15 February 2023 (2023-02-15), pages 227 * |
Also Published As
Publication number | Publication date |
---|---|
CN117312722B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109143952B (zh) | 可编程逻辑控制器编程语言转换系统 | |
Wang et al. | An approach to generate the traceability between restricted natural language requirements and AADL models | |
CN109032056B (zh) | 可编程逻辑控制器编程语言转换方法 | |
Moreira et al. | Adding rigour to object-oriented analysis | |
CN115630146A (zh) | 基于人机交互的需求文档自动生成方法、装置和存储介质 | |
Schönberger et al. | Algorithmic support for model transformation in object‐oriented software development | |
CN117312722B (zh) | 一种基于smt求解器的多系统任务规划方法 | |
Fritzsche et al. | Putting performance engineering into model-driven engineering: Model-driven performance engineering | |
US20050138602A1 (en) | System and method for deriving a process-based specification | |
KR102275763B1 (ko) | 딥러닝 모델로부터 딥러닝 어플리케이션을 자동으로 생성하는 방법 및 시스템 | |
CA2503629C (en) | Code generation | |
Ramzy et al. | First steps towards bridging simulation and ontology to ease the model creation on the example of semiconductor industry | |
Polenov et al. | Intellectualization of the models translation tools for distributed storage of models | |
Iliasov et al. | Formal derivation of a distributed program in Event B | |
Hu et al. | Accelerating reinforcement learning-based ccsl specification synthesis using curiosity-driven exploration | |
Szpyrka et al. | From process models to concurrent systems in alvis language | |
Zatout et al. | A model-driven approach for the verification of an adaptive service composition | |
König et al. | Modelling production workflows in automotive manufacturing | |
Billman et al. | Needs analysis: the case of flexible constraints and mutable boundaries | |
Ali et al. | Scalable scenario specifications to synthesize component-centric behaviour models | |
von Olberg et al. | Approach to generating functional test cases from bpmn process diagrams | |
Spanoudakis et al. | An agent modeling language implementing protocols through capabilities | |
Bhattacharjee et al. | Validated code generation for activity diagrams | |
McCune | Building program models incrementally from informal descriptions | |
Winnell et al. | Towards composable simulation: Supporting the design of engine assembly lines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |