CN109189781B - 一种车联网知识库表示方法,装置及系统 - Google Patents
一种车联网知识库表示方法,装置及系统 Download PDFInfo
- Publication number
- CN109189781B CN109189781B CN201810857766.XA CN201810857766A CN109189781B CN 109189781 B CN109189781 B CN 109189781B CN 201810857766 A CN201810857766 A CN 201810857766A CN 109189781 B CN109189781 B CN 109189781B
- Authority
- CN
- China
- Prior art keywords
- knowledge
- vertex
- unit
- function
- iov
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 196
- 238000005070 sampling Methods 0.000 claims description 126
- 230000008676 import Effects 0.000 claims description 10
- 230000006855 networking Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 326
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000008602 contraction Effects 0.000 description 13
- 238000012217 deletion Methods 0.000 description 13
- 230000037430 deletion Effects 0.000 description 13
- 238000013213 extrapolation Methods 0.000 description 13
- 230000004807 localization Effects 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000013459 approach Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 238000009795 derivation Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012885 constant function Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012888 cubic function Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 239000002244 precipitate Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D15/00—Steering not otherwise provided for
- B62D15/02—Steering position indicators ; Steering position determination; Steering aids
- B62D15/021—Determination of steering angle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2552/00—Input parameters relating to infrastructure
- B60W2552/30—Road curve radius
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Traffic Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种基于单纯复形SC的车联网IOV知识表示方法,所述方法包括:用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
Description
技术领域
本发明涉及车联网领域,特别涉及一种车联网知识库表示方法,装置及系统。
背景技术
近来,车联网一个明显的发展趋势是从基于规则的方式向基于学习的方式过渡。过渡方式可以分为两类:割裂式的过渡和融合式的过度。割裂式的过渡中,新的基于学习的IOV系统完全按照学习的方法、从头学起,从形式到内容、完全抛弃旧的基于规则的系统。也就是说,之前在基于规则的框架下总结和沉淀下来的大量规则和经验(或者说知识),也一同被抛弃、浪费掉了。在融合式的过渡中,把基于规则的系统的知识运用到基于学习的框架里,最大程度的发挥前者的能量。换句话说,用基于学习的系统替换基于规则的系统,抛弃的只是后者的形式,而保留下来的是后者的知识。
IOV领域里的学习,有其自身的特性,在学习方式上很适合使用通用人工智能(AGI)的方式来学习。这种学习方式的目标是让机器像人一样的思考和学习,特点是能够基于已有的基础知识,不间断的在线学习和更新,扩充旧知识、沉淀新知识,以适应新情况。
目前,大多数基于学习的IOV系统是割裂式过渡的产物,而融合式过渡相对空白。即便有些尝试,也大多聚焦在某个具体问题上。由于缺少通用的、基础性的手段,适用于整个IOV领域,在IOV领域进行AGI式的学习还有很大困难。
发明内容
本发明实施例提供了一种车联网知识库表示方法,装置及系统,以提供适用于整个IOV领域的通用的基础性的手段。
一方面,本发明实施例提供一种基于单纯复形SC的车联网IOV知识表示方法,所述方法包括:
用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
可选地,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
可选地,一个顶点的信息包括:所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
可选地,利用单元数组记录所述SC所有单元的信息。一个单元的信息包括:所述单元的顶点索引值和所述单元中每个面的对应面。
可选地,所述SC的边界由所述SC里对应面为空的面组成的。
一方面,本发明实施例提供一种基于单纯复形SC的车联网IOV知识表示装置,所述装置包括:
知识表示单元,用于用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
安全边界表示单元,用于用所述SC的边界来表示所述IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
可选地,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
可选地,一个顶点的信息包括:所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
可选地,利用单元数组记录所述SC所有单元的信息。一个单元的信息包括:所述单元的顶点索引值和所述单元中每个面的对应面。
可选地,所述SC的边界由所述SC里对应面为空的面组成的。
一方面,本发明实施例提供、一种基于SC的IOV知识的导入方法,所述方法包括:
把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
对所述知识函数F进行离散采样,建立顶点集合P;
建立单元集合C,用各个单元填补所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
可选地,对所述知识函数F进行离散采样,建立顶点集合P,包括:
初始化顶点集合P为空;
对每一个知识函数F,执行下列步骤、对Fi进行离散采样。
基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
通过安全判断函数g,判断p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;
如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
把候选采样点p加入到顶点集合P,作为一个新的顶点。
可选地,建立单元集合C,用各个单元填补顶点之间的空白,形成最终的知识库SC,包括:
把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
以所述P-为顶点集合,建立k-1维的单元集合C-;
把所述顶点集合P-和所述单元集合C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
以所述P为顶点集合,以所述S-为边界约束,建立k维的单元集合C;
把所述顶点集合P和所述单元集合C合并,形成最终的知识库SC。
一方面,本发明实施例提供一种基于SC的IOV知识的导入装置,所述装置包括:
抽象单元,用于把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
顶点集合建立单元,用于对所述知识函数F进行离散采样,建立顶点集合P;
单元集合建立单元,用于建立单元集合C,用各个单元填补顶点集合建立单元建立的所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
可选地,顶点集合建立单元,包括:
候选样点确定模块,用于基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
判断模块,用于通过安全判断函数g,判断候选样点确定模块确定的p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
更新模块,用于把候选采样点p加入到顶点集合P,作为一个新的顶点。
可选地,单元集合建立单元包括:
拆分模块,用于把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
第一单元集合建立模块,用于以所述P-为顶点集合,建立k-1维的单元集合C-;
边界表示模块,用于把所述顶点集合P-和所述单元集合C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
第二单元集合建立模块,用于以所述P为顶点集合,以所述S-为边界约束,建立k维的单元集合C;
合并模块,用于把所述顶点集合P和所述单元集合C合并,形成最终的知识库SC。
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
这种情况下,所述目标点在边界内。所述包含所述目标点的单元
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,在上述搜索找到下一个单元的过程中,检查当前搜索单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。即,下一个单元前的单元即为目标单元。
可选地,上述步骤中,获取输入的目标点坐标之外的搜索起始点和起始单元,包括如下两种实现方式:
途径一:借用上次的查询结果。IOV的知识查询往往是实时的、两次查询之间的时间间隔非常短,且很多情况下,相邻两次的查询有很好的连续性,即上次查询的点离这次查询的点往往挨得很近。这种情况下,可以用直接用上次查询的目标点和目标单元、作为这次查询的起始点和起始单元。
途径二:划分搜索区域+指定区域代理:如果上次查询的点不满足这样的条件、即查询的连续性不好,可以把整个搜索空间事先划分成小一些的搜索区域,为每个区域指定一个代理单元、并记录下来;查询的时候,所有落在这个区域里的目标点,缺省的都用这个区域的代理单元作为搜索的起始单元。
具体地,可选地,上述步骤中,获取输入的目标点坐标之外的搜索起始点和起始单元,包括:
●步骤2.1:查看是否有上次搜索的结果,即上次定位的目标点q’、目标单元cq’。
○如果有,进入步骤2.2;
○如果没有,进入步骤2.3。
●步骤2.2:查看上次定位的目标点q’和本次定位的目标点q是否在同一个搜索区域。
○如果是,进入步骤2.4;
○如果不是,进入步骤2.3。
●步骤2.3:用缺省的区域代理作为额外的搜索线索。包括:
○步骤2.3.1:计算目标点q所在的搜索区域Uq;
○步骤2.3.2:把起始单元cp设置为搜索区域Uq的代理单元;
○步骤2.3.3:把起始点p设置为起始单元cp的中心点,坐标为cp所有顶点坐标的平均值。
●步骤2.4:用上次的搜索结果作为额外的搜索线索。包括:
○步骤2.4.1:把起始单元cp设置为上次定位的目标单元cq’。
○步骤2.4.2:把起始点p设置为上次定位的目标点q’。
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位装置,所述方法包括:
获取单元,用于获取输入的目标点坐标之外的搜索起始点和起始单元;
搜索单元,用于从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
这种情况下,所述目标点在边界内。所述包含所述目标点的单元
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取单元,用于获取输入的目标点坐标之外的搜索起始点和起始单元;
搜索单元,用于从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,搜索单元具体用于:检查当前搜索到的单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。即,下一个单元前的单元即为目标单元。
可选地,获取单元具体用于,查看是否有上次搜索的结果,即上次定位的目标点q’、目标单元cq’;
如果有,查看上次定位的目标点q’和本次定位的目标点q是否在同一个搜索区域,如果在同一个区域,则用上次的搜索结果作为额外的搜索线索。可选地包括:把起始单元cp设置为上次定位的目标单元cq’;把起始点p设置为上次定位的目标点q’。
如果没有,用缺省的区域代理作为额外的搜索线索。可选地,包括:计算目标点q所在的搜索区域Uq;把起始单元cp设置为搜索区域Uq的代理单元;把起始点p设置为起始单元cp的中心点,坐标为cp所有顶点坐标的平均值。
一方面,本发明实施例提供一种基于SC的IOV知识推演方法,所述方法包括:
根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
计算所述点p在对应的目标单元c中的局部坐标;
例用p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
一方面,本发明实施例提供一种基于SC的IOV知识推演装置,所述装置包括:
目标单元寻找单元,用于根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
局部坐标计算单元,用于计算所述点p在对应的目标单元c中的局部坐标;
函数值计算单元,用于例用p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
一方面,发明实施例提供一种基于SC的IOV知识更新方法,所述方法包括
IOV知识的局部微调,可以归结为修改SC顶点上的函数值;
IOV知识的局部采样率调整,可以归结为增加、删除SC内部顶点;
IOV知识边界的扩充及收缩,可以归结为增加SC外部顶点、或删除SC边界顶点。
可选地,修改SC顶点上的函数值可以为:对于给定顶点,直接修改此顶点上记录的函数值。
可选地,知识边界的收缩、及知识空间局部采样率的降低,都可以通过删除SC的某个顶点来实现。
可选地,假设待删除的定点为px,则删除此顶点的步骤包括:
●步骤1:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●步骤2:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,转入步骤3;如果不是,则属于删除内部顶点的情况,转入步骤5。
●步骤3:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。
●步骤4:删除顶点px,即从SC的顶点数组里删除px。
●步骤5:把px合并到一个相邻的顶点,并删除相关的单元。可以由如下几步来实现:
○步骤5.1:选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○步骤5.2:把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○步骤5.3:对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○步骤5.4:对于单元集合Cx’的每一个单元,直接删除。
可选地,知识边界的扩张、及知识空间局部采样率的提高,都可以通过增加新的SC的顶点来实现。
可选地,在k维SC增加顶点p的步骤包括:
●步骤1:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,点p对应的目标单元c可以通过前述基于SC的IOV知识点快速定位的方法得到。
●步骤2:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标。
●步骤3:把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
●步骤4:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,转入步骤5;如果不是,则属于在SC边界以外插入新顶点的情况,转入步骤6。
●步骤5:以p为中心,把目标单元c拆分成k+1个新的单元。
●步骤6:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
一方面,发明实施例提供一种基于SC的IOV知识更新装置,所述装置包括
修改单元,用于修改SC顶点上的函数值;可选地,修改单元,用于对于给定顶点,直接修改此顶点上记录的函数值。
删除单元,用于删除SC内部顶点或删除SC边界顶点;
增加单元,用于增加SC内部定点或增加SC外部顶点。
可选地,假设待删除的定点为px,删除单元包括:
●寻找模块:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●边界判断模块:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,调用第一删除模块;如果不是,则属于删除内部顶点的情况,调用第二删除模块。
●第一删除模块:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。删除顶点px,即从SC的顶点数组里删除px。
●第二删除模块:把px合并到一个相邻的顶点,并删除相关的单元。第二删除模块具体用于:
○选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○对于单元集合Cx’的每一个单元,直接删除。
可选地,知增加单元包括:
●目标单元计算模块:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,目标单元计算模块可以通过前述基于SC的IOV知识点快速定位的方法得到点p对应的目标单元c。
●增加模块:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标,把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
●判断模块:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,调用拆分模块;如果不是,则属于在SC边界以外插入新顶点的情况,调用扩展模块。
●拆分模块:以p为中心,把目标单元c拆分成k+1个新的单元。
扩展模块:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
此计算机系统可以装在在汽车上,装载有此计算机系统的汽车具有自动驾驶的能力。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
对所述知识函数F进行离散采样,建立顶点集合P;
建立单元集合C,用各个单元填补所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,在上述搜索找到下一个单元的过程中,检查当前搜索单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
计算所述点p在对应的目标单元c中的局部坐标;
例用p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
本发明再一方面,提供一种计算机系统,包括:一个或多个处理器、存储器、通信接口、接收器、发射器,以及输入输出模块;当处理器可用于调用存储于存储器中实现程序时,执行以下步骤:
IOV知识的局部微调,可以归结为修改SC顶点上的函数值;
IOV知识的局部采样率调整,可以归结为增加、删除SC内部顶点;
IOV知识边界的扩充及收缩,可以归结为增加SC外部顶点、或删除SC边界顶点。
可选地,修改SC顶点上的函数值可以为:对于给定顶点,直接修改此顶点上记录的函数值。
可选地,知识边界的收缩、及知识空间局部采样率的降低,都可以通过删除SC的某个顶点来实现。
可选地,假设待删除的定点为px,则删除此顶点的步骤包括:
●步骤1:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●步骤2:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,转入步骤3;如果不是,则属于删除内部顶点的情况,转入步骤5。
●步骤3:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。
●步骤4:删除顶点px,即从SC的顶点数组里删除px。
·步骤5:把px合并到一个相邻的顶点,并删除相关的单元。可以由如下几步来实现:
○步骤5.1:选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○步骤5.2:把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○步骤5.3:对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○步骤5.4:对于单元集合Cx’的每一个单元,直接删除。
可选地,知识边界的扩张、及知识空间局部采样率的提高,都可以通过增加新的SC的顶点来实现。
可选地,在k维SC增加顶点p的步骤包括:
·步骤1:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,点p对应的目标单元c可以通过前述基于SC的IOV知识点快速定位的方法得到。
·步骤2:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标。
·步骤3:把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
·步骤4:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,转入步骤5;如果不是,则属于在SC边界以外插入新顶点的情况,转入步骤6。
·步骤5:以p为中心,把目标单元c拆分成k+1个新的单元。
步骤6:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
对所述知识函数F进行离散采样,建立顶点集合P;
建立单元集合C,用各个单元填补所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,在上述搜索找到下一个单元的过程中,检查当前搜索单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
计算所述点p在对应的目标单元c中的局部坐标;
例用p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
本发明又一方面还提供一种知识库软件,该知识库软件的程序代码可以存放在一种可读的存储介质中,当作装载在自动驾驶汽车上的计算机或者车联网里的控制中心读取所述可读的存储介质中的协议栈软件的程序代码的时候,实现下面的步骤:
IOV知识的局部微调,可以归结为修改SC顶点上的函数值;
IOV知识的局部采样率调整,可以归结为增加、删除SC内部顶点;
IOV知识边界的扩充及收缩,可以归结为增加SC外部顶点、或删除SC边界顶点。
可选地,修改SC顶点上的函数值可以为:对于给定顶点,直接修改此顶点上记录的函数值。
可选地,知识边界的收缩、及知识空间局部采样率的降低,都可以通过删除SC的某个顶点来实现。
可选地,假设待删除的定点为px,则删除此顶点的步骤包括:
·步骤1:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●步骤2:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,转入步骤3;如果不是,则属于删除内部顶点的情况,转入步骤5。
●步骤3:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。
●步骤4:删除顶点px,即从SC的顶点数组里删除px。
●步骤5:把px合并到一个相邻的顶点,并删除相关的单元。可以由如下几步来实现:
○步骤5.1:选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○步骤5.2:把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○步骤5.3:对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○步骤5.4:对于单元集合Cx’的每一个单元,直接删除。
可选地,知识边界的扩张、及知识空间局部采样率的提高,都可以通过增加新的SC的顶点来实现。
可选地,在k维SC增加顶点p的步骤包括:
●步骤1:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,点p对应的目标单元c可以通过前述基于SC的IOV知识点快速定位的方法得到。
●步骤2:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标。
●步骤3:把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
●步骤4:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,转入步骤5;如果不是,则属于在SC边界以外插入新顶点的情况,转入步骤6。
●步骤5:以p为中心,把目标单元c拆分成k+1个新的单元。
步骤6:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
本发明实施例通过以上技术方案,采用了非结构化的SC,用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识,达到了灵活的知识采样方式、采样点可以任意分布在任意位置、达到了极低的空间复杂度,并且支持快速的内存操作。基于SC的知识表示方式可以很方便,并较精确的指定安全边界,从而使得上层的在线学习算法可以把知识空间探索限制在安全范围内。
附图说明
图1是本发明实施例提供的一种基于单纯复形SC的车联网IOV知识表示装置示意图;
图2是本发明实施例提供的一种基于表格的知识表示方案示意意图;
图3是本发明实施例提供的一种基于SC的IOV知识的导入装置示意图;
图4是本发明实施例提供的几种SC表示示意图;
图5是本发明实施例提供的一种应用场景示意图;
图6是本发明实施例提供的一种基于SC的IOV知识库系统流程图;
图7是本发明实施例提供的一种知识库SC表示IOV知识的方法场景示例图;
图8是本发明实施例提供的一种知识库SC的数组表示法示意图;
图9是本发明实施例提供的一种知识库SC的安全边界表示的示意图;
图10是本发明实施例提供的一种知识导入的流程示意图;
图11是本发明实施例提供的一种知识导入的流程示意图;
图12是本发明实施例提供的一种基于SC的知识点快速定位流程图;
图13是本发明实施例提供一种基于SC的知识点快速定位的示意图;
图14是本发明实施例提供的一种基于SC的知识点快速定位的示意图;
图15是本发明实施例提供的一种基于SC的IOV知识推演的流程图;
图16是本发明实施例提供的一种基于SC的IOV知识推演的示意;
图17是本发明实施例提供的一种知识更新流程图;
图18是本发明实施例提供的一种知识更新示意图;
图19是本发明实施例提供的一种知识更新示意图;
图20是本发明实施例提供的一种知识更新示意图;
图21是本发明实施例提供一种基于SC的IOV知识点快速定位装置示意图;
图22是本发明实施例提供一种基于SC的IOV知识推演装置示意图;
图23是发明实施例提供一种基于SC的IOV知识更新装置示意图;
图24是发明实施例提供一种应用场景示意图;
图25是发明实施例提供一种计算机程序产品示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图4是本发明实施例示出的几种SC的表示示意图,如图4所示:
单纯复形:
单纯复形(Simplicial Complex,简称SC)是来自于拓扑学的一个概念,是用来表示多维拓扑空间的一种方式。简单来讲,是用若干具有简单形式的单元(Cell)来拼接出一个复杂的拓扑空间。一个单纯复形(SC)是若干单元(Cell)的组合,每个单元可以是:0维单元(点),1维单元(线段,有2个顶点),2维单元(三角形,有3个顶点),3维单元(四面体,有4个顶点),或者更高维的K维单元(由K+1个顶点所包围的K维超体)。每个K-Cell会包含若干低维度的面(Face)。比如,一个3-Cell(四面体)包含:四个2-Face(三角形面片),六个1-Face(线段、边)和四个0-Face(点)。
一个单纯复形的维度由它所包含的最高维度的单元决定;如果最高维度的单元是K维,那么这个单纯复形就是K维的。比如,一个2维的单纯复形就是一个三角形网格。也就是说,单纯复形可以认为是三角形网格在任意维度的扩展。通常,一个K维SC会包含K维及K维以下所有维度的Cell,即一个异阶的SC。作为一个特例,如果一个K维SC只包含K维Cell、而没有更低维的Cell,这是一个同阶的SC(Homogeneous SC),如图4所示。再特殊一些,一个2维的同阶SC是一个三角形网格,一个3维的同阶SC是一个四面体网格。
代理单元:用于快速知识点定位的概念。给定一个目标点的坐标,需要找到它所在的目标单元。为了加速搜索,一种办法是把整个搜索空间(整个SC空间)划分成若干个小一些的搜索区域,每个搜索区域里指定一个代理单元,作为在这个搜索区域里进行搜索的缺省的搜索起始点。
网格SC:
在计算机辅助设计(CAD)或计算机图形学(CG)中,常常会用到两种特殊的同阶SC:
1)三角形网格:用来描述一个平面或曲面(如人脸);本质上是一个2维拓扑学SC、嵌入在2维几何空间(平面)或3维几何空间(曲面)里面。
2)四面体网格:用来描述一个立体(如机械部件);本质上是一个3维拓扑学SC、嵌入在3维几何空间。
基于拟合函数的模型:
常用于各种回归(Regression)算法、及经典的统计学习算法(如各种贝叶斯模型等)中。先选定某种形式的函数(比如二次函数、三次函数、随机过程等等),通过某种优化过程、来调整函数里的参数(如各项的系数、或先验概率参数),使得最终的拟合函数能尽可能的逼近已知的训练数据上的函数值。同时,对于未知的输入点,也可以通过这个拟合的函数算出相应的函数值;如果函数拟合得好,这个算出来的函数值应该与理想的函数值尽量接近。
基于神经网络(Neural Network,NN)的模型:
常用于深度学习等类型的算法中。先选定某种形式的网络(如层数、每层的点数、层与层之间的连接关系等),通过某种训练过程(即优化过程)、来调整网络里的参数(即边上的权重),使得最终的网络能尽量准确的反应已知的训练数据上的函数值。同时,对于未知的输入点,也可以送到这个网络里、算出相应的函数值;如果网络训练的好,这个算出来的函数值应该与理想的函数值尽量接近。
基于表格的知识表示方案:
1)均匀表格(UL):对于d-维的函数,用一个d-维的正交的表格来表示,每个格点(交叉点)是一个采样点,上面记录那一点的函数值。在每个维度上,各采样点之间是等距(均匀分布)的,即每个小格子形状和大小都完全一样,如图2A所示。
2)非均匀表格(NL):同UL类似,整体还是一个正交结构(称之为结构化),即每条线都是横平竖直、且贯穿头尾的。只不过各采样点之间可以不等距(即非均匀分布),如图2B所示。
3)K-D树(KT):类似于NL,但不再是正交结构(称之为半结构化),即每条线不一定贯穿头尾。另外,决策树(DT)算法从本质上讲也是基于KT的,如图2C所示。
如何提供一种系统和方法,以实现IOV知识的表示,并提供知识的定位、推演、更新等管理功能,从而支持IOV从基于规则的技术路线向基于学习的技术路线的融合式过渡,并且适配支持各种AGI式的学习算法和各种IOV应用。具体来说,要实现这种系统和方法,会面临如下的具体问题:
技术问题1:IOV规则的再利用
在IOV技术路线转换的过程中,最好能把基于规则的技术路线中所积累的规则和经验,在基于学习的技术路线中最大化的利用起来,而不是简单的抛弃经验、从头学起。而这些积累起来的规则和经验,可能是一个包含经验参数的公式(如描述低速方向盘转角的卡尔曼模型),也可能是一段优化过程(如描述高速方向盘转角的运动学模型),或者是其它形式。对于这些不同问题、不同形式的规则,如何用一种统一的方式进行再表达、并导入到新的学习系统里?
技术问题2:IOV知识的局部性表示
IOV的很多知识,很难用一个全局的、单一的公式或模型来描述。比如,方向盘转角与车速及道路曲率的关系,在低速的时候、适合用卡尔曼模型来描述,而高速的时候、则更适合用运动学模型来描述。而即便是只看一个模型(比如卡尔曼模型),在知识空间的不同区域(即不同的车速和曲率的组合),模型中的参数(比如预瞄距离)也应当取不同的最优值。如何表示这种模型因区域而异的知识、而不是死板的套用单一的全局模型?
技术问题3:IOV知识的安全边界表示
IOV的知识往往直接关系到安全。比如,在直道上开120km/h、或者在一个接近直角的弯道开30km/h都是安全的,但是在接近直角的弯道开120km/h对于绝大多数车辆来说都是不安全的。也就是说,在这种涉及车速和曲率的组合的知识里、以及许多其它的IOV知识里,经常需要划定一条边界、以区分安全的和不安全的组合。如何精确、方便的描述和表示这种安全边界、并为安全边界的更新提供底层支持?
技术问题4:IOV知识的举一反三
AGI式的IOV学习系统强调从少量的知识点出发、推算出任意知识点的能力。比如,仅知车速为0、10、20、30、40、50、60(km/h)、曲率为0、0.02、0.04、0.06、0.08、0.10的时候的方向盘转角该打多大,需要能自动推算(内推)出车速在0~60之间、曲率在0~0.10之间的任意组合的方向盘转角值,甚至是自动推算(外推)出车速超过60、曲率超过0.10的时候的方向盘转角值。如何实现这种仅知若干离散知识点、自动推演出整个知识空间的能力?
技术问题5:IOV知识的局部更新
AGI式的IOV学习系统强调对知识的微调,可以限制在某个确定的局部范围内、而非牵一发而动全身。比如,如果车速为30、曲率为0.06的附近的方向盘转角值不理想,那应当允许仅调整这个组合附近的方向盘转角值。另外,还有其它的更新类型,如局部采样率的提高或降低、安全边界的局部收缩或扩张等。如何为这些不同类型的知识局部更新提供底层支持?
技术问题6:SC自身短板的弥补
每一类知识表示方式都有它的短板,本发明实施例所采用的SC的表示方式也不例外。对于IOV知识表示而言,拓扑学SC的一大缺陷是不支持快速的知识点定位,而知识点定位恰恰是IOV知识管理会频繁用到的一个操作、必须要快速完成。拓扑学SC的其它缺陷见1.4.2章。如何弥补拓扑学SC本身的短板、使得它能更好的服务于IOV知识的表示和管理?
为了解决上述技术问题,本发明实施例提供一种基于SC的IOV知识库表示及利用方法和系统。把拓扑学里的SC概念和技术引入到IOV领域,把原本用来描述拓扑空间和进行拓扑分析的工具,转变成了任意维度通用的知识表示和知识管理工具:用SC作为载体,对知识进行离散采样、连续推演,实现快速知识定位、局部化的知识更新。
本发明的主要实施例概述如下:
实施例1:基于SC的IOV知识表示方式
○用SC作为IOV多维连续空间上的知识的载体,进行离散采样、连续推演。
●用附带k’维函数值的k维SC来表示一个IOV知识f:Rk→Rk’(即有k个输入变量、有k’个输出值的函数:<x1,…,xk>→<y1,…,yk’>):
■SC里的任意一点都代表f的一个输入点;
■SC里的任意一点都有一个k维的坐标,即k个输入变量在这一点上的值;
■SC里的任意一点都有一个k’维的函数值,即f在这一点上的k’个输出值。
●离散采样、连续推演:
■离散采样:用SC的顶点作为采样点,只在这些点上记录坐标和函数值,在其它点(非采样点)上不记录。
■连续推演:用SC的单元来做函数值推演的媒介。SC里任意一个非采样点上的函数值,用相应单元的顶点(采样点)上的函数值来推演出来。
○用SC的边界来表示IOV知识的边界(安全边界、有效边界、或其它),
○设计了特殊的数据结构,从而实现快速内存操作、及对任意维度的通用性。
实施例2:基于SC的IOV现有知识的导入方法
○设计了通用的把知识导入SC的方法(即知识库的初始化方法):先选择合适的SC顶点(离散采样点)集合,并计算每个顶点上的函数值,再建立SC单元来无缝连接各顶点。
○特别的,现有知识也包含了来自于基于规则的IOV系统的知识,从而实现了现有规则的再表达和导入(技术问题1)。
实施例3:基于SC的IOV知识点快速定位方法
○设计了通过附加额外线索来加速搜索的方法:把直接搜索给定目标点所在的目标单元的问题,转化成一个间接搜索的过程:先给搜索确定一个起始单元和起始点,然后从起始单元开始、沿着起始点到目标点的射线、线性的搜索目标单元。这样,可以把原本浩大的搜索空间(整个SC),缩小到被射线所贯穿的一串单元,获得了指数级的搜索加速,从而弥补了拓扑学SC最大的短板(技术问题6)。
○设计了额外线索的获取方法:对整个SC空间进行结构化的分区,并根据多次定位的连续性情况,分别使用目标点所在区域的代理单元(本区域缺省的搜索起始单元)及其中心点、或者使用上次查询的目标单元及目标点作为本次搜索的起始单元及起始点,从而实现了在任何情况下、都可以快速的获取额外的搜索线索。
实施例4:基于SC的IOV知识推演方法
○用SC单元上的局部函数来实现局部知识推演:在SC的每个单元上,用一个局部函数来表示这个单元上的局部知识;单元内任意一点上的知识推演,等同于在这个点上调用相应的局部函数。每个局部函数,都由本单元顶点上的函数值(即离散采样值)来决定,不同单元上的局部函数可以不同。
○用局部坐标来实现局部函数:每个单元上的局部函数,以本单元各顶点上的函数值为基底、以目标点在本单元里的局部坐标为系数、以某种方式组合而来。具体的组合方式及局部坐标计算方式,均支持多种方案,只要满足某些特定的要求(函数值唯一性、采样点吻合性、任意维度普适性)即可。
○设计了基于上述局部函数和局部坐标的知识推演方法,同时支持知识的内推(针对位于SC的某个单元内部或边界上的点)和外推(针对位于SC边界以外的点),从而实现知识的举一反三(技术问题4)。
实施例5:基于SC的IOV知识更新方法
○设计了修改SC顶点上的函数值的方法,从而支持IOV知识的局部微调(技术问题5)。
○设计了增加、删除SC内部顶点的方法,从而支持IOV知识的局部采样率的改变(技术问题5)。
○设计了增加、删除SC外部顶点的方法,从而支持IOV知识边界的扩充及收缩(技术问题2)
为使本领域普通技术人员更好的理解本发明实施例的内容,下面对本发明实施例的应用场景作一个详细的介绍:
本发明实施例可应用于IOV的各种场景和问题,比如自动驾驶里面的四类场景:低速跟随、高速巡航、窄道通行、自动泊车。当然除上述四种场景外,其它场景也是适用的。每类场景中都会涉及很多可用本发明实施例来表示和管理的知识。这里举几个具体的例子:
1、低速跟随场景中的方向盘转角控制:这是一个车辆控制的问题。假设有一条已经规划好的行驶轨迹,而这条轨迹可能是直的、也可能是弯的;自车要想尽可能准确的沿着这条轨迹开,那么每个时刻需要打多大的方向盘转角δ?这个转角δ取决于如下因素:当前自车速度v和轨迹曲率κ。换句话说,这里涉及的知识是它们之间的关系:δ=f(v,κ)。
2、高速巡航场景中的拥堵判断:这是一个行为规划的问题。当自车在高速上巡航时,如果正前方有另外一辆车(前车)阻挡,自车需要估计一个拥堵值φ,如果这个拥堵值大于某个给定的阈值的时候,自车就要执行换道的逻辑。这个拥堵值φ取决于如下因素:自车期望速度(如道路限速)vd、自车速度v、前车速度vb、和自车到前车的距离l。换句话说,这里涉及的知识是:φ=f(v,vd,vb,l)。
3、窄道通行场景中的运动轨迹选择:这是一个运动规划的问题。假设上层某块提供了若干条可供选择的轨迹(都平行于某条中心轨迹),自车需要为每条轨迹计算可通行性(一个实数)c,并选择可通行性最高的那条轨迹来开。这个可通行性c取决于如下因素(假设本轨迹上有一个障碍物):本轨迹与中心轨迹的间距d、自车与前面障碍物的距离l、前面障碍物的速度vb、和与上一时刻所选轨迹的横向偏差h。换句话说,这里涉及的知识是:c=f(d,l,vb,h)。
4、自动泊车场景中的方向盘转角控制:这是一个车辆控制的问题。假设自车要倒入一个空车位,一般要通过一个三段的路径(右打倒车、左打前进、右打倒车)或更多段的调整来完成。那么,对于每个阶段而言,自车需要决定每个时刻的方向盘转角δ。这个转角取决于如下因素:自车的坐标x、y,自车朝向与车位中心线的夹角θ。换句话说,这里涉及的知识是:δ=f(x,y,θ)。
本发明实施例适用于上述所有类型的场景、以及其中所有的多维(含一维)连续空间上的知识,包括但不限于上面列举的例子。
可选地,为了方便图示以及解释本发明中的技术点,本发明在一个实施例中,选取前轮转角这个应用场景作为特例:如果要让车沿着一条规划好的轨迹行驶,每个时刻的车前轮转角(等价于方向盘转角)应该打多大?如图5所示,ABCD中的场景分别对应上述四个场景。
根据车辆控制学的理论,前轮转角δ取决于当前的车速v和轨迹的曲率κ。
当前车速v:即车的快慢,一般的取值范围为0~180(单位是km/h),0代表车完全静止,180代表车最大能达到的速度。
轨迹曲率κ:即当前位置轨迹的弯曲程度,轨迹弯得越厉害,曲率越大。一般的取值范围为0~1.0,其中曲率为0代表的是直道(没有任何弯曲),曲率为1.0代表的是弯曲程度的最大极限。注意:为了简化描述,这里我们仅考虑向左弯的轨迹。向右弯的轨迹的曲率是负值(范围为0~-1.0),与向左弯的情况完全对称。
前轮转角δ:即前轮朝向与车身中轴的夹角,一般的取值范围为0~45(单位是度),0代表车轮摆正(直行),45代表车轮向左偏转的极限(方向盘左打到底)。注意:为了简化描述,这里我们仅考虑前轮左转的情况。向右转的转角是负值(范围为0~-45),与向左转的情况完全对称。
需要说明的是,上述取值,仅仅是举例,不应理解为本发明实施例的限制,在其他实施例中,亦可以有不同于上述取值的取值范围。
在图5中,A、B、C中的实线是几种不同情况下自车要走的轨迹,D是一个给定了轨迹曲率k、车速v时前轮转角δ的例子。
车辆在实际行驶过程中,不同的时刻会有不同的车速v、面对不同的轨迹曲率κ,相应的需要采用不同的前轮转角δ。因此,这里涉及的IOV知识是:面对车速v和曲率κ的各种不同的组合,应该采用多大的前轮转角δ?换句话说,要搞清楚它们之间的对应关系,也就是函数δ=f(v,k)。
根据IOV领域大量的实践经验、并结合理论研究,这个关系(知识)在不同的情况下适合用不同的模型来描述。比如:
如果速度小于30:适合使用卡尔曼模型。这个模型可以直接写成一个δ关于v和κ的显式公式,这个公式里还包含若干参数(比如预瞄时间等),一般可以设为来自经验值的常数(比如预瞄时间固定为2秒)。
如果速度大于30:适合使用运动学模型。这个模型没有办法直接写成一个δ关于v和κ的显式公式,只能通过某种优化方法(比如最小二乘法等)、从若干个包含δ、v、κ的公式里把δ反解出来。同样的,这里面也涉及若干需要赋值的参数。
在基于规则的IOV系统里,就是通过使用不同形式的“规则”来表示上述两种模型:
如果速度小于30:直接使用前面提到的显式公式来表示卡尔曼模型,包括给其中的参数赋予某个固定的经验值。对于不同的车速v和曲率κ,直接调用这个公式计算出相应的前轮转角δ。
如果速度大于30:用一段专门解决上述优化问题的代码(比如一个C语言函数:double optimize_angle(double speed_v,double curvature_k)来实现上述运动学模型,包括给其中的参数赋值。对于不同的车速v和曲率κ,直接调用这段代码计算出相应的前轮转角δ。
本发明实施例中,在基于学习的IOV系统里,可以用一种统一的知识表示方式,来表示任意情况下的前轮转角知识,而不用区分低速、高速的不同模型。
在学习开始之前,可以把上述基于规则的IOV系统的经验、包括低速时的显式公式和高速时的隐式模型,都导入到这种统一的知识表示方式上,形成一个初始的知识库,作为后续学习的起点。
在学习过程中,可以允许对初始的知识库进行细致的微调,以弥补这些理论模型与现实情况之间的差异。
下面详细介绍本发明实施例的技术方案。本发明实施例是推进IOV从基于规则向基于AGI式学习的融合式过渡。从推进方式上而言,本发明实施例并不是直接解决IOV领域里的某个具体问题,也不是提供某个具体的IOV学习算法;而是从根基入手,为整个IOV领域提供一个从规则到学习的连接纽带和融合平台、并直接支持AGI式学习。
基于此,发明实施例提供一个通用的IOV知识库系统,该系统可以实现:
通用的知识表示方式:使得IOV里的各种知识都能以此来进行表达,同时也能方便的把已有的规则导入进来、进而在后续学习中得到有效利用。
通用的知识管理方法:直接定义在上述表示方式上、同时可以被各种上层的AGI学习算法和IOV具体问题所公用;相当于建立了底层知识表示和上层学习算法之间的通用接口。
为了实现上述通用的知识库系统,需要理解IOV知识的本质,或者说,需要对知识进行一定的数学抽象。在本发明实施例中:知识即函数。事实上,IOV里大量的知识都可以抽象成多维连续空间上的函数:
f:Rd→Rd'
其中输入是d维连续空间里的一个点(即有d个输入变量),输出是d’维空间里的一个点(即有d’个输出变量)。
比如在自动驾驶领域,可以把整个自动驾驶任务抽象成一个非常高维、且高度复杂的函数:其输入是若干个变量,分别用来表示自车的状态(位置、速度等)、他车的状态、环境信息等;其输出也是若干个变量,用来表示对油门、刹车、方向盘等的控制命令。要学习的就是这两者之间的对应关系、或者说函数。
当然在现实中,往往需要把这个大问题分解成若干小问题来学习,但这些小问题同样可以抽象成函数,只不过是维度低一些、相对简单一点的函数。比如:
在一个可选的实施例中:在一个简化的keep lane场景里,需要学习方向盘转角(y)与当前车速(x1)和道路曲率(x2)的关系。这可以抽象成一个函数:f:R2→R1,即:y=f(x1,x2);
在一个可选的实施例中:在一个简化的跟车场景里,需要学习纵向控制量(y1)、横向控制量(y2)与当前时刻的自车速度(x1)、自车方向(x2)、前车速度(x3)、前车方向(x4)、前车距离(x5)的关系。这可以抽象成一个函数:f:R5→R2,即:(y1,y2)=f(x1,x2,x3,x4,x5)。
基于这种数学抽象,本发明实施例将数学(具体点说,是拓扑学)里的SC(单纯复形)概念引入到IOV学习领域,设计了一种全新的知识表示方式,并在此基础上设计了相应的IOV知识管理功能,从而形成了一个完整的IOV知识库系统。
可选地,本发实施例可通过计算机存储器中的软件程序代码来实现,对计算机的硬件、操作系统等没有特殊要求。
图6是本发明实施例提供的一种基于SC的IOV知识库系统流程图,下面结合基于SC的IOV知识库系统流程图(图6),分别介绍:
●基于SC的IOV知识表示方法
●基于SC的IOV现有知识的导入方法
●基于SC的IOV知识点快速定位方法
·基于SC的IOV知识推演方法
·基于SC的IOV知识更新方法
实施例1:基于SC的IOV知识表示方法
如何用SC来表示IOV知识?本实施例将详细阐述:
●用知识库SC表示IOV知识的方法
·知识库SC的数组表示方法
·安全边界的表示方法
用知识库SC表示IOV知识的方法:
使用一种特殊的SC,也就是知识库SC,附带函数值的同阶SC。所谓同阶SC,就是一个k维SC里的单元全都是k维单元(简称为单元)。另外,我们只关心每个k维单元的(k-1)-Face(简称为面)和0-Face(简称为顶点)。
○用SC作为IOV多维连续空间上的知识的载体,进行离散采样、连续推演。
·用附带k’维函数值的k维SC来表示一个IOV知识f:Rk→Rk’(即有k个输入变量、有k’个输出值的函数:<x1,…,xk>→<y1,…,yk’>):
■SC里的任意一点都代表f的一个输入点;
■SC里的任意一点都有一个k维的坐标,即k个输入变量在这一点上的值;
■SC里的任意一点都有一个k’维的函数值,即f在这一点上的k’个输出值。
●离散采样、连续推演:
■离散采样:用SC的顶点作为采样点,只在这些点上记录坐标和函数值,在其它点(非采样点)上不记录。
■连续推演:用SC的单元来做函数值推演的媒介。SC里任意一个非采样点上的函数值,用相应单元的顶点(采样点)上的函数值来推演出来。
图7提供了一种以前轮转角为例,用知识库SC表示IOV知识的方法。如图7所示,以前轮转角δ与车速v和曲率k的关系为例,可以用一个2维知识库SC来表示。图7中A、B、C、D代表自车在几个不同时刻的运行状态,也就是它在面对不同的车速和曲率的组合的时候、分别采用什么样的前轮转角值。在知识库SC的这种表示方法里,这四种状态分别用SC里四个不同的点(或顶点)来表示:
●状态A用顶点p2表示:顶点p2的坐标(25,0.46)代表A中的车速v和曲率κ的组合,p2上的函数值18代表A中采用的方向盘转角值δ。而且这个坐标和函数值都直接记录在SC的存储结构里。
●状态B用点p表示:类似于A和p2,只不过坐标和函数值都不用记录;这样的点有无穷多个,不可能也没必要都记录。
●状态C用顶点p1表示:同A和p2。
●状态D用顶点p3表示:同A和p2。
描述得更完整一些:前轮转角这个IOV知识涵盖了所有可能的车速v和曲率κ的组合、以及每种组合下应该采用的前轮转角值δ;由于车速v和曲率κ都是连续的变量,这种组合有无穷多种。但在知识库SC这种表示方法里:
●只需要记录有限的若干种组合及其对应的前轮转角值。这些有限的组合就是这个IOV知识的离散采样点,用SC里的顶点来表示(比如p1,p2,p3);每个采样点所对应的车速v和曲率κ的组合、以及相应的前轮转角值,分别就是顶点的坐标、以及函数值,这些都直接记录在SC的存储结构里。
●除去这些有限的组合,剩下的无穷多种组合都是非采样点,用SC里的顶点以外的点来表示(比如p);每个非采样点所对应的车速v和曲率κ的组合、以及相应的前轮转角值,也分别就是点的坐标、以及函数值,只不过这些都不用记录在SC的存储结构里。非采样点的坐标通常由知识库的上层调用者给出,而函数值则通过周围顶点上的函数值自动推演出来,也就是连续推演。
·为了实现上述的连续推演,就需要知道对于任意一个非采样点,它周围有哪几个采样点。这个是通过知识库SC里的单元来实现的:用单元来无缝的填充各个顶点(采样点)之间的空白地带,使得任意一个非采样点都包含在一个单元里,然后就可以用这个单元的顶点(采样点)来推演这个非采样点上的值。所以,SC里的单元其实是知识推演的媒介。
知识库SC的数组表示方法:
知识库SC,采用的是基于数组的数据结构、避免使用指针,这样便于快速的内存操作。虽然指针可以增加数据结构的灵活性,但由于本专利采用的SC的特殊性、及特殊的关注点,我们其实不需要指针提供的灵活性,仅用数组就可以达到我们的目标。对于一个附带k’维函数值的k维SC,可用如下两个数组表示:
·数组一:顶点的数组(SC::Points),用来记录所有的顶点的信息。
○数组的长度即本SC里的顶点的数目,数组里的每个元素存储一个顶点的信息。
■每个顶点可以用一个整数index(即在顶点数组里的位置)来表示。
○一个顶点的信息包括:
■本顶点的坐标(POINT::Coord):一个坐标向量,长度是函数的输入变量的数目(即几何维数,可以不等于k)。
■本顶点的函数值(POINT::Value):一个函数值向量,长度是函数的输出变量的数目(即输出空间的维数)。
·数组二:单元的数组(SC::Cells),用来记录所有的单元的信息和面的信息。
○数组的长度即本SC里的单元的数目,数组里的每个元素存储一个单元的信息。
■每个单元可以用一个整数index(即在单元数组里的位置)来表示
■单元里的每个面可以用整数对<i,j>来表示,其中i是单元index,j代表这是单元里的第几个面。
○每个单元的信息包括:
■本单元的顶点(CELL::Points):总共有k+1个顶点,记录每个顶点的index。
■本单元的面(CELL::Faces):总共有k+1个面,记录每个面的对应面(用整数对<i,j>来表示);特别的,如果某个面没有对应面(即暴露在边界上),就记录为<-1,-1>。
如图8所示,以前轮转角δ与车速v和曲率κ的关系为例,它所对应的知识库SC可以如下的数组来表示:
●顶点数组:记录所有顶点的信息;以其中的第1个顶点P1为例:
○此顶点的坐标:
■车速:v=53;
■曲率:κ=0.72;
○此顶点的函数值:
■前轮转角:δ=18;
●单元数组:记录所有单元的信息;以其中的第2个单元c2为例:
○此单元包含的顶点有:
■c2的第1个顶点:1,即p1,也就是顶点数组里的第1个顶点;
■c2的第2个顶点:3,即p3,也就是顶点数组里的第3个顶点;
■c2的第3个顶点:5,即p5,也就是顶点数组里的第5个顶点;
○此单元包含的面及其对应面为:
■c2的第1个面(即与c2第1个顶点p1相对的面):<3,2>,即对应面为单元c3的第2个面(即与c3第2个顶点p4相对的面);
■c2的第2个面(即与c2第2个顶点p3相对的面):<-1,-1>,即没有对应面,也就是说这是个边界面;
■c2的第3个面(即与c2第3个顶点p5相对的面):<1,2>,即对应面为单元c1的第2个面(即与c1第2个顶点p2相对的面)。
上述表示方式中,采用了几何信息与拓扑信息的松耦合的结合方式;也就是以下二者可以独立定义、且互不相等:
●拓扑维数:即SC本身的维数k、亦即每个单元的维数;
●几何维数:即顶点的坐标的维数、亦即输入变量的数目,一般大于或等于拓扑维数。
这种松耦合的好处是数据结构的通用性更好,我们可以用同一套数据结构来表示一个知识库SC和它的安全边界,只不过设置不同的参数而已。例如:
●一个3维的知识库SC是拓扑3维、几何3维的,它的安全边界是拓扑2维、几何3维的(等价于是嵌入在3维空间里的曲面);
●一个2维的知识库SC是拓扑2维、几何2维的,它的安全边界是拓扑1维、几何2维的(等价于是嵌入在2维平面里的曲线)。
安全边界的表示方法:
之所以引入安全边界的表示方法,首先是因为IOV里的大量问题都是安全至上的,在运行和学习的过程中,有一个明确的安全边界的表示方法是至关重要的。另外,现有技术(比如基于表格的方案)在安全边界的表示上有明显的弊端,而知识库SC在这方面具有明显的优势。
在本方案里,我们用SC的边界来表示知识的安全边界。对应到上述的基于数组的知识库SC的表示方法里,安全边界就是由SC里对应面为空(记录维<-1,-1>)的面(即边界面)组成的。显而易见,安全边界把整个知识空间划分成:
●安全区域:位于边界或边界以内的区域,也就是有单元和顶点覆盖的区域;
●不安全区域:位于边界以外的区域,也就是没有单元和顶点覆盖的区域。
与表格相比,能更精确的描述安全边界,且不用存不安全区域。
知识库SC只需要记录安全区域的信息,而不用记录不安全区域的信息。作为对比,在基于表格的知识表示方式里,两个区域都要占据内存空间。因此,知识库SC更节省空间。图9是以前轮转角为例,知识库SC的安全边界表示的示意图,这一点可以从图9中清楚的看到。
知识库SC可以很精确的描述知识库边界,因为边界面可以有任意的走向,而真实的安全边界也是可以任意走向的,因此前者可以很灵活的逼近后者。作为对比,在基于表格的知识表示方式里,安全边界是阶梯状的、只能沿着坐标轴的走向,很难逼近任意走向的真实安全边界。因此,知识库SC对安全边界的描述可以更加精确。这一点可以从图9中清楚的看到。
实施例2:基于SC的IOV现有知识的导入方法
本步骤解决的问题是:如何把现有的IOV知识导入到知识库SC这种表示方式上、作为对知识库的初始化?
下面详细阐述:
●方法及流程概述
●现有知识统一表示的技术方案
·建立顶点集合的方法
·建立单元集合的方法
方法及流程概述:
现有知识可以有多种来源,都可以用来对知识库SC进行初始化。比如:
·来自基于规则的系统里:也就是在基于规则的技术路线下积累起来的各种公式、规则等。
·来自其它基于学习的系统里:也就是在其它方式的基于学习的技术路线下学习来的模型(比如神经网络或其它)。
把现有知识导入到知识库SC里,本质上是对规则进行离散采样。关键是,现有知识可能会以不同的形式来呈现,怎样才能归一化到知识库SC这种表示方式上呢?这需要依赖于“知识即函数”的抽象,一旦把不同形式的知识抽象成了函数,就用统一的流程把函数转换成知识库SC。具体的将现有的知识导入流程如图10所示,这是对系统流程(图6)里步骤1的展开。
下面分三部分对上述流程进行具体说明:
·现有知识统一表示的技术方案(步骤1.1)
·建立顶点集合的技术方案(步骤1.2)
·建立单元集合的技术方案(步骤1.3)
现有知识统一表示的技术方案
对现有知识的导入,支持多种形式的知识表示形式。常见的表示形式有:
·用公式来表示:y=Formula(x1,x2,…,xk),其中Formula是某个可以明确写下来的公式。把任意一组(x1,x2,…,xk)的值代入这个公式,都可以计算出来唯一的一组输出值(y1,y2,…,yk’)。以前轮转角为例(2.3.1章),卡尔曼模型就属于这一类表示方式。
·用程序例程来表示:比如一个C语言的例程double[]Procedure(double x1,double x2,…double xk),其中Procedure是这段例程的名字,对于任意一个输入的组合(x1,x2,…,xk),这个例程都可以计算出来唯一的一组返回值(y1,y2,…,yk’)。以前轮转角为例(2.3.1章),运动学模型就属于这一类表示方式。
·用某个机器学习模型来表示:比如一个训练好的神经网络模型Model,假设它的第一层(输入层)有k个输入节点,最后一层(输出层)有k’个输出节点。那么把任意一组(x1,x2,…,xk)的值送到Model的输入节点上,经过模型的向前推导,在Model的输出节点上都会得到唯一的一组输出值(y1,y2,…,yk’)。
无论上述哪种表示形式,本质上都可以抽象成一个对应关系函数f:(x1,x2,…,xk)→(y1,y2,…,yk’),也就是任意跟定一组自变量的值(x1,x2,…,xk)、都会通过f唯一的决定一组输出值(y1,y2,…,yk’),而这种决定关系反映的是与IOV相关的、来自运动学、动力学等的物理定律。同时,考虑到IOV的安全性要求,还需要抽象出一个安全判断函数g,用来判断任意跟定的一组自变量的值(x1,x2,…,xk)是安全的还是不安全的。同时,还需要给出这两个函数的定义域D。
综上所述,对于一个给定的输入空间为k维、输出空间为k’维的IOV知识Z而言,步骤1.1需要抽象出一个知识函数F,也就是一个三元组(D,f,g),它包括:
●知识定义域D:{mini<=xi<=maxi|i=1,2,…,k},也就是每一个输入变量xi能取的最小和最大值。
●对应关系函数f:f(x1,x2,…,xk)=(y1,y2,…,yk’),也就是把知识定义域D内部的任意一组输入值(x1,x2,…,xk),对应成唯一一组输出值(y1,y2,…,yk’)。
●安全判断函数g:g(x1,x2,…,xk)=0或1,也就是对于知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断它在这个IOV知识里是不是一个安全的组合,1表示安全,0表示不安全。
有了知识函数F的定义,步骤1.1事实上就是在获取F=(D,f,g)这个三元组。具体流程可描述如下:
●步骤1.1.1:确定定义域D:这个一般可以从输入的知识本身的适用范围获得。
●步骤1.1.2:确定对应关系函数f:这个取决于输入的知识的表示形式:
○如果Z是用公式Formula给出的,那么f就用一段实现这个Formula的程序代码来实现;
○如果Z是用一个例程Procedure给出的,那么f就用个Procedure本身的程序代码来实现;
○如果Z是用一个模型Model给出的,那么f就用实现这个Model的向前推导的程序代码来实现。
●步骤1.1.3:确定安全判断函数g:这个需要从输入获得;
○如果输入没有这个信息,那么就默认为整个定义域D都是安全的,也就是对D内部所有可能的输入值(x1,x2,…,xk):g(x1,x2,…,xk)=1。
○如果输入有这个信息,那么跟知识本身的表示形式一样,也分三种情况;可按照步骤1.1.2的相同的方法来实现。
建立顶点集合的技术方案
有了知识函数的抽象,步骤1.2就可以对一个具体的知识函数进行离散采样。需要说明的是,对于一个的知识Z,在它的定义域D内部的不同的区域,可能采用了不同的知识函数{F1,F2,…}。
图11为以前轮转角为例,步骤1(现有知识导入)的方案示意图。A是建立顶点集合(步骤1.2),B是建立单元集合(步骤1.3)。
以前轮转角y与车速x1和曲率x2的关系为例,如图11A所示,低速的时候(x1<=30)采用卡尔曼模型,而高速的时候(x1>30)采用运动学模型。因此它会被抽象成两个知识函数{F1,F2},其中每个知识函数都有自己独立的定义域、对应关系函数和安全判断函数:
●F1=(f1,g1,D1):
○ D1:0<=x1<=30,0<=x2<=1.0。
○ f1:用实现卡尔曼模型的程序代码来实现;
○ g1:跟卡尔曼模型相关的一段安全判断程序代码来实现;
●F2=(f2,g2,D2):
○ D2:30<x1<=160,0<=x2<=1.0。
○ f2:用实现运动学模型的程序代码来实现;
○ g2:跟运动学模型相关的一段安全判断程序代码来实现;
一般来说,假设给定的知识Z包含m个知识函数{F1,F2,…,Fm},可以通过步骤1.2对每个知识函数分别进行离散采样,建立顶点集合P。一个可行的具体流程如下:
●步骤1.2.1:初始化顶点集合P为空;
●步骤1.2.2:对每一个知识函数Fi=(Di,fi,gi)(i=1,2,…,m),执行下列步骤、对Fi进行离散采样。
○步骤1.2.2.1:基于对应关系函数fi以及顶点集合P里现有的顶点,确定位于Di里面的一个新的候选采样点p的坐标(x1,x2,…,xk)。确定方法可采用任何一种现有的同功能的方法。
○步骤1.2.2.2:通过安全判断函数gi,判断p是否在安全区域内。如果是,则继续下面步骤;如果不是,则忽略候选采样点p、跳回到步骤1.2.2.1、选择下一个候选采样点。
○步骤1.2.2.3:通过对应关系函数fi,计算候选采样点p所对应的函数值(y1,y2,…,yk’)。
○步骤1.2.2.4:把候选采样点p(包括它的坐标和函数值),加入到顶点结合P,作为一个新的顶点。跳回到步骤1.2.2.1、选择下一个候选采样点。
以前轮转角为例,如图11A所示,它的离散采样分了两部分进行。
●第一部分位于虚线左边,这是低速的部分,其中的黑色的顶点是基于卡尔曼模型进行的采样。
●第二部分位于第一部分位于虚线右边,这是高速的部分,其中的黑色的顶点是基于运动学模型进行的采样。
建立单元集合的技术方案
建立了顶点集合P以后,可以通过步骤1.3进一步建立单元集合C,来无缝的填补顶点之间的空白,形成最终的知识库SC。到了这一步,已经与知识的具体表现形式无关了,也与一个知识抽象成哪几个知识函数无关了。一个可行的具体流程如下:
●步骤1.3.1:把顶点集合P分成两个子集合:P-和P+。其中:
○ P-包含所有在边界上的顶点;
○ P+包含所有不在边界上的顶点。
●步骤1.3.2:以P-为顶点集合,建立k-1维的单元集合C-;把顶点集合P-和单元集合
C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界。这一步可以用任何现有的高维点云的建模方法来实现,比如:
○“The Quickhull algorithm for convex hulls”,C.Bradford Barber,DavidP.Dobkin,and Hannu Huhdanpaa.ACM Transactions on Mathematical Software,22(4):469–483,December 1996.
●步骤1.3.3:以P为顶点集合,以k-1维的单纯复形S-为边界约束,建立k维的单元集合C。把顶点集合P和单元集合C合并,形成最终的知识库SC。这一步可以用任何现有的带边界约束的高维点云的建模算法来实现。比如:
○“Sweep Algorithms for Constructing Higher-Dimensional ConstrainedDelaunay Triangulations”,Jonathan Shewchuk,Proceedings of the SixteenthAnnual Symposium on Computational Geometry,2000.
以前轮转角为例,如图11B所示。首先,建立知识库SC的安全边界(步骤1.3.2),也就是图11B中的曲线(边界)、一个1维的SC。然后,以这个1维SC为边界约束,建立了最终的2维SC,也就是图11B中的单元所覆盖的区域,从而形成了最终所需要的2维的知识库SC。
2.3.4.3实施例之步骤2:基于SC的IOV知识点快速定位方法
本步骤解决的问题是:在一个知识空间里,给定一个任意点,如何找到它周围有哪几个已知的采样点、以便进行后续操作(如知识推演、更新等)?对应到基于SC的表示方法上,给定任意一个点(即目标点)的坐标,如何找到相应的单元(即目标单元)?包括两种情况:
●内部点定位:如果目标点是位于SC边界以内的,那么需要找到一个包含它的目标单元;(如图14A)
●外部点定位:如果目标点是位于SC边界以外的,那么需要找到一个在边界上、不包含目标点、但离目标点相对较近的目标单元;(如图14B)
在基于SC的知识库系统里,知识点定位是其它很多方法(比如知识推演、知识更新等)所依赖的,会被频繁调用,所以必须能够快速定位、以满足实时响应性。但是拓扑学SC本身并不提供这样的快速定位能力(因为没有这种需求);那在知识库SC里,如何弥补这个短板?下面详细阐述:
●方法及流程概述
●获取额外搜索线索的方法
●基于线索的快速定位方法
方法及流程概述:
在浩瀚的SC空间里,直接搜索包含目标点的目标单元并不容易;在毫无线索的情况下,几乎需要遍历SC里所有的单元。原因是SC本身是无结构的,无法像结构化的表格那样提供一步到位的快速检索。
为了在知识库SC上实现快速定位,本方法的解决方案是:给搜索附加一些额外的线索,也就是附加一个起始单元、及位于这个单元内部的一个起始点,作为搜索的起点;同时,以从起始点到目标点的射线,作为搜索的方向。如果有了这两个额外线索,那么搜索空间就被大大降低、变成了被射线所贯穿的一串单元。
基于SC的知识点快速定位的具体流程如图12所示,这是对系统流程(图6)里步骤2的展开。
下面分两部分介绍上述流程:
●获取额外搜索线索的技术方案(步骤2.1至2.4);
●基于线索的快速定位的技术方案(步骤2.5至2.10)。
获取额外搜索线索的技术方案:
本技术方案采用了两种不同的途径来获取额外的搜索线索(即起始单元及起始点),并通过对两种途径的有机结合,使得在任何情况下、都可以快速的获取合适的起始单元及起始点:
●途径一:借用上次的查询结果。IOV的知识查询往往是实时的、两次查询之间的时间间隔非常短,且很多情况下,相邻两次的查询有很好的连续性,即上次查询的点离这次查询的点往往挨得很近。这种情况下,可以用直接用上次查询的目标点和目标单元、作为这次查询的起始点和起始单元。
●途径二:划分搜索区域+指定区域代理:如果上次查询的点不满足这样的条件、即查询的连续性不好,我们还可以用分而治之的想法:把整个搜索空间事先划分成小一些的搜索区域,为每个区域指定一个代理单元、并记录下来;查询的时候,所有落在这个区域里的目标点,缺省的都用这个区域的代理单元作为搜索的起始单元。
关于途径二的实现,需要建立一个额外的索引结构T来实现分区治理。这个索引结构必须具备快速索引能力,也就是任意给定一点的坐标,可以快速的查找到它所在的区域。一种可行的实现方法是采用现有技术三(1.3章)里提到的多维均匀表格(注意:现有技术三在这里只是本方案的辅助手段,不是方案的主体)。这个表格的维度与SC相同,表格里的每个格子对应于SC里的一个区域;表格可以比较稀疏,因此SC的每个区域可以包含多个SC的单元。表格里的每个格子记录相应的SC区域里的某个单元、即此区域的代理单元,作为在本区域内进行定位的缺省的起始单元。每个区域的代理单元可以任意选择,只要这个单元的一部分(比如中心点)这个区域里即可。如果某个区域完全位于SC边界之外,那么这个区域的代理单元设为空,也就是把索引表格里相应格子的代理单元设为-1。
获取额外线索的技术方案对应于步骤2流程(图12)里的步骤2.1至2.4:
●步骤2.1:查看是否有上次搜索的结果,即上次定位的目标点q’、目标单元cq’。
○如果有,进入步骤2.2;
○如果没有,进入步骤2.3。
●步骤2.2:查看上次定位的目标点q’和本次定位的目标点q是否在同一个搜索区域。
○如果是,进入步骤2.4;
○如果不是,进入步骤2.3。
●步骤2.3:用缺省的区域代理作为额外的搜索线索。包括:
○步骤2.3.1:计算目标点q所在的搜索区域Uq;可通过附加的索引结构T直接算出。
○步骤2.3.2:把起始单元cp设置为搜索区域Uq的代理单元;可从附加的索引结构T直接读取。
○步骤2.3.3:把起始点p设置为起始单元cp的中心点,坐标为cp所有顶点坐标的平均值。
●步骤2.4:用上次的搜索结果作为额外的搜索线索。包括:
○步骤2.4.1:把起始单元cp设置为上次定位的目标单元cq’。
○步骤2.4.2:把起始点p设置为上次定位的目标点q’。
图13是以前轮转角为例,步骤2(快速知识点定位)中、获取额外搜索线索的方案示意图。点q是本次定位的目标点,q’和cq’是上次定位的目标点和目标单元,整个SC空间被划分成6个搜索区域(灰色虚线),单元是各个搜索区域的代理单元。在不同的输入下(A和B),选取的线索(起始单元)不一样。A中选取的是代理单元c3,B中选取的是上次定位的结果cq’。
以前轮转角为例(如图13所示),上述技术方案可用如下的实例来说明。
●实例A(如图13A所示):本次定位的目标点q位于左上的搜索区域,而上次定位的目标点位于中下的搜索区域,二者不在一个区域。根据步骤2.1和2.2的判断,应该进入步骤2.3、选取左上搜索区域的区域代理c3作为搜索的起始单元,用它的中心点作为搜索的起始点。
●实例B(如图13B所示):本次定位的目标点q位于中下的搜索区域,而上次定位的目标点也位于中下的搜索区域,二者在用一个区域。根据步骤2.1和2.2的判断,应该进入步骤2.4、选取上次定位算出的目标区域cq’作为搜索的起始单元,用上次定位的目标点q’作为搜索的起始点。
基于线索的快速定位的技术方案:
获取了额外的搜索线索(起始单元及起始点)之后,就可以把知识点定位的搜索空间限制在从起始点到目标点的这条射线上:整个搜索过程从起始单元开始,沿着射线方向、并通过单元与单元间的邻接关系(对应面),找到下一个单元、再下一个单元,直到碰到一个单元包含我们的目标点,这就是我们要找的目标单元。如果目标点在边界以外,那就返回出界之前的最后一个单元。
基于线索的快速定位的技术方案对应于步骤2流程(图12)里的步骤2.5至2.10:
●步骤2.5:初始化搜索单元,也就是把当前搜索单元c初始化成之前的步骤算出的起始单元cp。之后的步骤(2.6~2.10)是一个循环体,会沿着搜索射线p→q不断的查找下一个搜索单元,直至找到目标单元。
●步骤2.6:检查当前的搜索单元c是否包含目标点q。
○如果是,那么意味着已经找到了目标单元(即c),则进入步骤2.10;
○如果不是,则还要循环的找,进入步骤2.6。
●步骤2.7:沿着搜索射线p→q找下一个搜索单元c’。包括:
○步骤2.7.1:计算穿出面,即射线是从当前搜索单元c的第几个面(假设为第i个面)穿出去的,记录为<c,i>。这个可以通过计算射线p→q与单元c的每个面是否相交获得。
○步骤2.7.2:计算穿入面,射线又从哪个单元的哪个面(假设为第j个面)穿进去了,记录为<c’,j>。这个可以直接通过知识库SC的数组表示方法(见2.3.4.1章)中所存储的对应面关系来读取。
○步骤2.7.3:上述穿出面<c’,j>中的c’作为下一个搜索单元。注意,这个c’可能等于-1(如果穿出面在边界上、没有对应面的话),也可能不等于-1(如果穿出面不在边界上、有对应面的话)。
●步骤2.8:检查下一个搜索单元是否为空,即c’是否为-1。
○如果是,那么搜索射线p→q在穿过当前搜索单元c后就出了边界,则退出循环、跳转到步骤2.10;
○如果不是,那么搜索射线p→q还在SC内部延伸,应当继续搜索,则进入步骤2.9。
●步骤2.9:把当前搜索单元c设置为沿着射线的下一个搜索单元c’,跳转回步骤2.6继续下一个循环。
●步骤2.10:目标单元cq已经找到,即当前搜索单元c,返回目标单元cq=c。这里包括两种情况:
○如果是从步骤2.6跳转过来的:那么目标单元c包含目标点q,也就是说目标点q在SC边界以内,这属于内部点定位的情况。
○如果是从步骤2.8跳转过来的:那么目标单元c不包含目标点q,也就是说目标点q在SC边界以外,这属于外部点定位的情况。
图14是以前轮转角为例,步骤2(快速知识点定位)中、基于线索的快速定位的方案示意图。点q是本次定位的目标点,点p和单元c1是从之前的步骤获取的搜索的起始点和起始单元(即搜索线索),射线是搜索射线。A是内部点定位的实例,B是外部点定位的实例。
以前轮转角为例(如图14所示),上述技术方案可以用如下的实例来说明,包括内部点定位和外部点定位两种情况:
●内部点定位的实例(如图14A所示):本次定位的目标点q位于SC边界以内,从之前的步骤2.1至2.4获取的搜索的起始点是p、起始单元是c1,搜索射线是p→q。从当前搜索单元为c1起(步骤2.5),整个搜索经历4遍循环:
○第1遍循环(图14A1):当前搜索单元为c1,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为c2,由步骤2.8判断c2不为空,由步骤2.9更新当前搜索单元为c2,进入下一遍循环;
○第2遍循环(图14A2):当前搜索单元为c2,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为c3,由步骤2.8判断c3不为空,由步骤2.9更新当前搜索单元为c3,进入下一遍循环;
○第3遍循环(图14A3):当前搜索单元为c3,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为c4,由步骤2.8判断c4不为空,由步骤2.9更新当前搜索单元为c4,进入下一遍循环;
○第4遍循环(图14A4):当前搜索单元为c4,经步骤2.6判断、包含目标点q;至此,已经找到了包含目标点p的目标单元c4,所以跳出循环、经由步骤2.10输出c4并结束搜索。
●外部点定位的实例(如图14B所示):本次定位的目标点q位于SC边界以外,从之前的步骤2.1至2.4获取的搜索的起始点是p、起始单元是c1,搜索射线是p→q。从当前搜索单元为c1起(步骤2.5),整个搜索经历3遍循环:
○第1遍循环(图14B1):当前搜索单元为c1,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为c2,由步骤2.8判断c2不为空,由步骤2.9更新当前搜索单元为c2,进入下一遍循环;
○第2遍循环(图14B2):当前搜索单元为c2,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为c3,由步骤2.8判断c3不为空,由步骤2.9更新当前搜索单元为c3,进入下一遍循环。
○第3遍循环(图14B3):当前搜索单元为c3,经步骤2.6判断、不包含目标点q;由步骤2.7算出沿着p→q的下一个搜索单元为-1,由步骤2.8判断为空,即射线穿过c3后、尚未到达目标点q就出界了,说明目标点在边界以外。至此,已经找到了不包含目标点q的在边界上的目标单元c3,所以跳出循环、经由步骤2.10输出c3并结束搜索。
2.3.4.4实施例之步骤3:基于SC的IOV知识推演方法
本步骤解决的问题是:IOV的知识推演,应该转换成知识库SC上的何种操作、如何实现?具体来说,对IOV知识空间而言,需要从有限的、离散的采样点上的知识,推算出任意点上的知识;对应到知识库SC上,给定一个任意的目标点p,如何从周围顶点上的函数值、推算出p上的函数值?这包括两种情况:
●内部点上的知识推演(内推):如果目标点p是位于SC边界以内的,如何推算出p上的函数值?(如图16A)。
●外部点上的知识推演(外推):如果目标点p是位于SC边界以外的,如何推算出p上的函数值?(如图16B)。
下面详细阐述:
●方法及流程概述
●计算目标单元的技术方案
●计算局部坐标的技术方案
●计算局部函数的技术方案
方法及流程概述:
基于SC的IOV知识推演,本质上是一种整体离散化、局部连续化的方案。具体一点说,
●用局部函数来实现局部的知识推演:在SC的每个单元上,用一个局部函数来表示这个单元上的局部知识;不同单元上的局部函数可以不同。每个局部函数,都由本单元顶点上的函数值来决定。某一点上的知识推演,等同于在这个点上调用相应的局部函数。
●用局部坐标来实现局部函数:任意目标点p在给定的目标单元C中,都有一个局部坐标:{a1,a2,…,ak+1},这个局部坐标体现了p点在单元里相对位置,也体现了单元各顶点{p1,p2,…,pk+1}对p的影响力;局部函数可以定义为以各顶点函数值为基底、以局部坐标为系数的某种组合。也就是说,任一点的函数值,可以由目标单元的各顶点的函数值、借用局部函数的形式推演出来。
●局部坐标和局部函数有多种实现方式:无论采用何种技术方案来实现,只要满足如下要求即可:
○函数值唯一性(只针对内推):SC内部和边界上的每个点,内推出的函数值是唯一的;即:如果一个点位于两个或多个单元的交界处(即单元边界上),那么无论用哪个单元上的局部函数来内推,在这个点上的取值都要一样。(对于外推的唯一性,本发明不做强制要求)
○采样点吻合性:对于SC里的每个顶点,用局部函数推演出来的函数值应该等于这个点上的采样的函数值,即推演值等于采样值。
○任意维度普适性:所有的函数和方法都要适用于任意维度的知识空间。
基于SC的IOV知识推演的基本流程如图15所示,这是对系统流程(图6)里步骤3的展开。
下面分三部分对上述流程进行详细说明:
●计算目标单元的技术方案(步骤3.1);
●计算局部坐标的技术方案(步骤3.2);
●计算局部函数的技术方案(步骤3.3)。
计算目标单元的技术方案:
步骤3.1需要由给定的任意点p的坐标,找出p点所对应的目标单元;包括两种情况:
●如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);
·如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。
这是一个典型的基于SC的知识点定位问题,可以直接调用步骤2的快速知识点定位方法。相关技术细节参见2.3.4.3章。
计算局部坐标的技术方案
步骤3.2需要计算给定的点p在相应的目标单元c(来自于步骤3.1)中的局部坐标。假设这是一个k维的SC:
·p在SC中的坐标为(xp,1,xp,2,…,xp,k)
●c的顶点集合为:{p1,p2,…,pk+1}
●每个顶点pi的坐标为:(xi,1,xi,2,…,xi,k)
那么p在c中的局部坐标可以通过如下子步骤来计算:
●步骤3.2.1:构造一个k x k的矩阵M=[(p1-p2) (p1-p3) … (p1-pk+1)]T,并计算M的行列式d;
·步骤3.2.2:对每一个i=1,2,…,k+1,构造矩阵Mi=[(p-p1) (p-p2) … (p-pk+1)]T(不包含p-pi),并计算每个Mi的行列式di;由此得到:{d1,d2,…,dk+1}。
·步骤3.2.3:计算p的局部坐标(a1,a2,…,ak+1),其中:ai=di/d;
容易验证,上述步骤计算出来的局部坐标与下面步骤(3.3)计算出来的局部函数结合在一起,满足方法及流程概述里提到的三个条件,所以是一种合理的计算方法。同时,局部坐标还可以用其它方法来实现,只要满足上述三个条件即可。
计算局部函数的技术方案
步骤3.3需要用p的局部坐标、和c的顶点的函数值组合出某种局部函数,用来计算(推演)p点的函数值。具体可通过如下子步骤实现:
·步骤3.3.1:构造一个单元c上的局部函数,这个函数是以c的顶点函数值{f(p1),f(p2),…,f(pk+1)}为基底、以局部坐标(a1,a2,…,ak+1)为系数的某种组合。可以采用如下的任意一种:
○局部线性函数:f(p):=a1f(p1)+a2f(p2)+…+ak+1f(pk+1)
○局部常数函数:f(p):=f(pt),其中pt是局部坐标{a1,a2,…,ak+1}里绝对值最小的at对应的顶点。如果有多于一个at有最小绝对值,那就选择坐标最小的那个顶点pt。
●步骤3.3.2:用上述局部函数计算点p上的函数值f(p)。具体来说,把下列的值带入到上述局部函数的公式进行计算即可:
○点p的局部坐标{a1,a2,…,ak+1};(由步骤3.2计算获得)
○ c的顶点函数值{f(p1),f(p2),…,f(pk+1)};(有步骤3.1获得c、然后直接在SC的数据结构里读取各顶点的函数值)。
容易验证,上述步骤计算出来的局部函数与之前的步骤3.2计算出来的局部坐标结合在一起,满足方法及流程概述里提到的三个条件,所以是一种合理的计算方法。同时,局部函数还可以用其它方法来实现,只要满足上述三个条件即可。
图16是以前轮转角为例,步骤3(知识推演)的方案示意图。A是用线性局部函数进行内推的例子,B是用线性局部函数进行外推的例子。点p是待推演的目标点,单元(p1,p2,p3)是p对应的目标单元。<a1,a2,a3>是p相对于(p1,p2,p3)的局部坐标。
以前轮转角为例(如图16所示),上述步骤3.1至3.3的技术方案可以用如下的实例来说明,包括知识内推和知识外推两种情况:
·知识内推的实例(如图16A):假设我们想知道,在车速v=38、曲率k=0.48的时候,
前轮转角应该打多大;也就是在SC里对点p(38,0.48)上的函数值进行推演。
○通过步骤3.1对点p进行定位,得到点p所对应的目标单元为c(p1,p2,p3),且p包含在c中。同时得知p1,p2,p3的函数值分别为23.0,17.0,21.0;
○通过步骤3.2,计算点p在单元c里的局部坐标为(0.45,0.35,0.20)。
○通过步骤3.3,假设采用线性局部函数,计算点p的函数值为:
f(p)=0.45*23.0+0.35*17.0+0.20*21.0=20.5。也就是说,前轮转角应该为20.5。
●知识外推的实例(如图16B):假设我们想知道,在车速v=80、曲率k=0.65的时候,前轮转角应该打多大;也就是在SC里对点p(80,0.65)上的函数值进行推演。
○通过步骤3.1对点p进行定位,得到点p所对应的目标单元为c(p1,p2,p3),且p并不包含在c中,也就是说点p位于SC现有的边界之外。同时得知p1,p2,p3的函数值分别为31.0,27.0,23.0;
○通过步骤3.2,计算点p在单元c里的局部坐标为(0.9,0.3,-0.2)。
○通过步骤3.3,假设采用线性局部函数,计算点p的函数值为:
f(p)=0.9*31.0+0.3*27.0-0.20*23.0=31.4。也就是说,前轮转角应该为31.4。
2.3.4.5实施例之步骤4:基于SC的IOV知识更新方法
本步骤解决的问题是:IOV的知识更新,应该转换成知识库SC上的何种操作、后者如何实现?下面详细阐述:
●方法及流程概述
●基于修改SC顶点函数值的知识更新方案
●基于删除SC顶点的知识更新方案
●基于增加SC顶点的知识更新方案
图17是本发明实施例提供的一种知识更新流程图,方法及流程概述:
IOV知识更新有不同的类型,都可以对应到SC上的某些基本操作。在本方案里,我们选取若干常用的IOV知识更新类型,对应到如下的SC基本操作上:
●IOV知识的局部微调,可以归结为修改SC顶点上的函数值;
●IOV知识的局部采样率调整,可以归结为增加、删除SC内部顶点;
●IOV知识边界的扩充及收缩,可以归结为增加SC外部顶点、或删除SC边界顶点。
基于SC的知识更新的具体流程见图17,这是对系统流程(图6)中步骤4的展开。
下面分三部分对上述流程进行详细说明:
●基于修改SC顶点函数值的更新方案(步骤4.1);
●基于删除SC顶点的更新方案(步骤4.2至4.6);
●基于增加SC顶点的更新方案(步骤4.7至4.14)。
基于修改SC顶点函数值的更新方案
对知识空间某个点上的知识进行微调,可以通过对SC的某个顶点上的函数值进行修改来实现。修改顶点函数值的技术方案对应于步骤4流程(图17)里的步骤4.1。
●步骤4.1:对于给定顶点px,直接修改此顶点上记录的函数值。
图18是本发明实施例提供的以前轮转角为例,步骤4(知识更新)中、修改SC顶点函数值的方案示意图。其中矩形框中的顶点p1是待修改的顶点。以前轮转角为例(如图18所示),上述技术方案可用如下的实例来说明:
●通过修改SC顶点函数值,实现知识局部微调的实例:
○比如知识库里记录的车速48、曲率0.6时的前轮转角值为23.0。但在实际运行中的反馈不理想、方向盘打过了。之所以会出现这种不理想,一个可能的来源是,这个前轮转角值是从别的车上通过知识迁移过来的初始值,本来就需要在这辆车上微调。而上层算法决定要把这种情况下的前轮转角值减小到21.5比较合理。
○对应到SC上,需要更新顶点p1(48,0.6)的函数值:由步骤4.1,直接把顶点p1上记录的函数值改为21.5。
基于删除SC顶点的更新方案
知识边界的收缩、及知识空间局部采样率的降低,都可以通过删除SC的某个顶点(包括调整周围的单元)来实现。删除SC顶点的技术方案对应于步骤4流程(图17)里的步骤4.2至4.5。
●步骤4.2:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●步骤4.3:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,转入步骤4.4;如果不是,则属于删除内部顶点的情况,转入步骤4.6。
●步骤4.4:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。
●步骤4.5:删除顶点px,即从SC的顶点数组里删除px。
●步骤4.6:把px合并到一个相邻的顶点,并删除相关的单元。可以由如下几步来实现:
○步骤4.6.1:选取一个与px相连接的顶点,比如选取单元c1(见步骤4.2)里任何一个不同于px的顶点px’;
○步骤4.6.2:把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○步骤4.6.3:对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○步骤4.6.4:对于单元集合Cx’的每一个单元,直接删除。
图19是本发明实施例提供的以前轮转角为例,步骤4(知识更新)中、删除SC顶点的方案示意图。A是删除内部顶点(从而降低采样率)的例子,B是删除边界顶点(从而收缩知识边界)的例子。矩形框中的顶点p1是待删除的点。以前轮转角为例(如图19所示),上述技术方案可用如下的实例来说明:
●通过删除SC内部顶点、实现降低知识局部采样率的实例(如图19A所示):
○比如在离线(或在线)进行知识库优化的时候,发现在车速为15、曲率为0.65这个采样点附近的采样密度比较高,但实际运行中发现这个采样点有些冗余,与通过附近的其它采样点推演出来的值非常接近。这说明可以降低这个点附近的采样率。
○对应到SC上,如图19A所示,需要删除内部顶点p1:
■由步骤4.2找出了顶点p1周围的所有单元,共6个(图19A1),记为集合C。
■由步骤4.3判断p1不在边界上,进入步骤4.6。
■由步骤4.6,选取顶点p2(步骤4.6.1),并把单元集合C分成两部分(步骤4.6.2):同时包含p1,p2的两个单元(p1,p2,p3)与(p1,p7,p2)、与其它四个只包含p1的单元。删除前面两个单元(步骤4.6.4),并把后面四个单元里的p1替换成p2(步骤4.6.3)。直观的说,相当于把p1p2这条边进行了短路,把原来的6个单元(图19A1)重新合并成4个单元(图19A2),从而达到删除p1的目的。
●通过删除SC边界上的顶点、实现知识边界收缩的实例(如图19B所示):
○比如在线运行时,发现之前的一个采样点(车速80、曲率0.8)已经不再是安全的了,比如随着车胎的磨损,目前的车辆已经不像之前那样、可以如此高的速度来通过如此急的弯道了,则说明随着机械性能的下降,需要收缩现有的安全边界。
○对应到SC上,如图19B所示,需要删除边界顶点p1:
■由步骤4.2找出了顶点p1周围的所有单元,共3个(图19B1),记为集合C。
■由步骤4.3判断p1在边界上,进入步骤4.4。
■由步骤4.4,直接把C里的3个单元全部删除(图19B2)。
■由步骤4.5,把顶点p1直接删除。
基于增加SC顶点的更新方案
知识边界的扩张、及知识空间局部采样率的提高,都可以通过增加新的SC的顶点(包括调整周围的单元)来实现。增加SC顶点的技术方案对应于步骤4流程(图17)里的步骤4.7至4.14。:
●步骤4.7:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。这个一个典型的知识点定位问题,可直接调用步骤2的快速知识点定位方法来获取。
●步骤4.8:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标。
●步骤4.9:判断调用者是否给出了新顶点的函数值y。如果是,直接转到步骤4.11;如果不是,需要先进入步骤4.10去计算一个y值。
●步骤4.10:计算y值;可直接调用步骤3的知识推演方法,利用p所在的目标单元推演出一个函数值y,作为新顶点px的初始的函数值。
●步骤4.11:把新顶点px的函数值设为y。注意,这个y可以是调用者直接给出的,也可以是自动推演出来的。
·步骤4.12:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,转入步骤4.13;如果不是,则属于在SC边界以外插入新顶点的情况,转入步骤4.14。
●步骤4.13:以p为中心,把目标单元c拆分成k+1个新的单元。
·步骤4.14:直接在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
图20是本发明实施例提供的以前轮转角为例,步骤4(知识更新)中、增加SC顶点的方案示意图。A是在SC内部增加新顶点(从而提高采样率)的示意图,B是在SC边界以外增加新顶点(从而扩张知识边界)的示意图。矩形框中的点p是要插入的点;插入后变成新顶点p101。以前轮转角为例(如图20所示),上述技术方案可用如下的实例来说明:
·通过增加SC内部顶点、实现提高知识局部采样率的实例(如图20A所示):
○比如在线运行时,单元c(p1,p2,p3)内部的点上的推演出来的方向盘转角的值反馈不太好、但单元各顶点p1,p2,p3上的方向盘转角值反馈良好;这说明此单元上的采样密度过低、不足以刻画这附近函数的实际形状。
○对应到SC上,需要增加一个新的点p(30,0.6)(由上层调用者给出):
■由步骤4.7计算出点p对应的目标单元c(p1,p2,p3)(图20A1)。
■由步骤4.8在SC的顶点数组里增加一个新的顶点p101,坐标设为p的坐标(30,0.6)。
■由步骤4.9判断调用者没有给出新顶点的函数值(假设没给出),并由步骤4.10通过推演的方法计算出函数值27.5,并由步骤4.11把新顶点p101的函数值设为27.5。这个值可以在后续进行更新。
■由步骤4.11判断目标单元c包含点p,然后由步骤4.13把单元c拆分成了三个新单元(图20B2)。这相当于在单元c上提高了采样密度。
●通过增加SC边界外的顶点、实现知识边界扩张的实例(如图20B所示):
○比如在线运行时,上层算法发现了一个新的可行的组合:车速38、曲率0.8,而这个组合并不在当前知识库的边界之内。这说明探索到了一个新的区域,。
○对应到SC上,需要在SC边界以外增加一个新的点p(38,0.8)(由上层调用者给出):
■由步骤4.7计算出点p对应的目标单元c(p1,p2,p3)(图20B1)。
■由步骤4.8在SC的顶点数组里增加一个新的顶点p101,坐标设为p的坐标(38,0.8)。
■由步骤4.9判断调用者给出了新顶点的函数值(假设已给出)y=31.0,并由步骤4.11把新顶点p101的函数值设为31.0。
由步骤4.12判断目标单元c不包含点p,然后由步骤4.14在单元c(p1,p2,p3)之外增加一个新单元c’(p1,p101,p2)(图20B2)。这相当于把边界从原有的单元c扩展至新单元c’和新顶点p101。
本发明实施例提供了一种车联网知识库表示方法,装置及系统,以提供适用于整个IOV领域的通用的基础性的手段。
一方面,本发明实施例提供一种基于单纯复形SC的车联网IOV知识表示方法,所述方法包括:
用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
可选地,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
可选地,一个顶点的信息包括:所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
可选地,利用单元数组记录所述SC所有单元的信息。一个单元的信息包括:所述单元的顶点索引值和所述单元中每个面的对应面。
可选地,所述SC的边界由所述SC里对应面为空的面组成的。
如图1所示,一方面,本发明实施例提供一种基于单纯复形SC的车联网IOV知识表示装置,所述装置包括:
知识表示单元110,用于用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
安全边界表示单元120,用于用所述SC的边界来表示所述IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
可选地,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
可选地,一个顶点的信息包括:所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
可选地,利用单元数组记录所述SC所有单元的信息。一个单元的信息包括:所述单元的顶点索引值和所述单元中每个面的对应面。
可选地,所述SC的边界由所述SC里对应面为空的面组成的。
一方面,本发明实施例提供、一种基于SC的IOV知识的导入方法,所述方法包括:
把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
对所述知识函数F进行离散采样,建立顶点集合P;
建立单元集合C,用各个单元填补所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
可选地,对所述知识函数F进行离散采样,建立顶点集合P,包括:
初始化顶点集合P为空;
对每一个知识函数F,执行下列步骤、对Fi进行离散采样。
基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
通过安全判断函数g,判断p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;
如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
把候选采样点p加入到顶点集合P,作为一个新的顶点。
可选地,建立单元集合C,用各个单元填补顶点之间的空白,形成最终的知识库SC,包括:
把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
以所述P-为顶点集合,建立k-1维的单元集合C-;
把所述顶点集合P-和所述单元集合C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
以所述P为顶点集合,以所述S-为边界约束,建立k维的单元集合C;
把所述顶点集合P和所述单元集合C合并,形成最终的知识库SC。
如图3所示,一方面,本发明实施例提供一种基于SC的IOV知识的导入装置,所述装置包括:
抽象单元210,用于把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断所述输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
顶点集合建立单元220,用于对所述抽象单元210抽象成的知识函数F进行离散采样,建立顶点集合P;
单元集合建立单元230,用于建立单元集合C,用各个单元填补顶点集合建立单元220建立的所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
可选地,顶点集合建立单元,包括:
候选样点确定模块2201,用于基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
判断模块2202,用于通过安全判断函数g,判断候选样点确定模块2201确定的p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
更新模块2203,用于把候选采样点p加入到顶点集合P,作为一个新的顶点。
可选地,单元集合建立单元包括:
拆分模块2301,用于把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
第一单元集合建立模块2401,用于以所述拆分模块2301分出的P-为顶点集合,建立k-1维的单元集合C-;
边界表示模块2402,用于把所述所述拆分模块2301分出的顶点集合P-和所述第一单元集合建立模块2401建立的单元集合C-合并,形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
第二单元集合建立模块2403,用于以所述P为顶点集合,以边界表示模块2402形成的所述S-为边界约束,建立k维的单元集合C;
合并模块2404,用于把所述顶点集合P和所述第二单元集合建立模块2403建立的单元集合C合并,形成最终的知识库SC。
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
这种情况下,所述目标点在边界内。所述包含所述目标点的单元
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取输入的目标点坐标之外的搜索起始点和起始单元;
从起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,在上述搜索找到下一个单元的过程中,检查当前搜索单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。即,下一个单元前的单元即为目标单元。
可选地,上述步骤中,获取输入的目标点坐标之外的搜索起始点和起始单元,包括如下两种实现方式:
途径一:借用上次的查询结果。IOV的知识查询往往是实时的、两次查询之间的时间间隔非常短,且很多情况下,相邻两次的查询有很好的连续性,即上次查询的点离这次查询的点往往挨得很近。这种情况下,可以用直接用上次查询的目标点和目标单元、作为这次查询的起始点和起始单元。
途径二:划分搜索区域+指定区域代理:如果上次查询的点不满足这样的条件、即查询的连续性不好,可以把整个搜索空间事先划分成小一些的搜索区域,为每个区域指定一个代理单元、并记录下来;查询的时候,所有落在这个区域里的目标点,缺省的都用这个区域的代理单元作为搜索的起始单元。
具体地,可选地,上述步骤中,获取输入的目标点坐标之外的搜索起始点和起始单元,包括:
●步骤2.1:查看是否有上次搜索的结果,即上次定位的目标点q’、目标单元cq’。
○如果有,进入步骤2.2;
○如果没有,进入步骤2.3。
●步骤2.2:查看上次定位的目标点q’和本次定位的目标点q是否在同一个搜索区域。
○如果是,进入步骤2.4;
○如果不是,进入步骤2.3。
●步骤2.3:用缺省的区域代理作为额外的搜索线索。包括:
○步骤2.3.1:计算目标点q所在的搜索区域Uq;
○步骤2.3.2:把起始单元cp设置为搜索区域Uq的代理单元;
○步骤2.3.3:把起始点p设置为起始单元cp的中心点,坐标为cp所有顶点坐标的平均值。
●步骤2.4:用上次的搜索结果作为额外的搜索线索。包括:
○步骤2.4.1:把起始单元cp设置为上次定位的目标单元cq’。
○步骤2.4.2:把起始点p设置为上次定位的目标点q’。
如图21所示,一方面,本发明实施例提供一种基于SC的IOV知识点快速定位装置,所述方法包括:
获取单元310,用于获取输入的目标点坐标之外的搜索起始点和起始单元;
搜索单元320,用于从获取单元310获取的起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到包含所述目标点的单元。
这种情况下,所述目标点在边界内。所述包含所述目标点的单元;
一方面,本发明实施例提供一种基于SC的IOV知识点快速定位方法,所述方法包括:
获取单元310,用于获取输入的目标点坐标之外的搜索起始点和起始单元;
搜索单元320,用于从获取单元310获取的起始单元开始,沿着所述起始点和所述目标点之间的射线方向、并通过单元与单元间的对应面,找到下一个单元,直到找到出界之前的最后一个单元。
可选地,搜索单元320具体用于:检查当前搜索到的单元是否包含目标点q,如果是则表示当前单元即为目标单元。如果不是,继续搜寻下一个单元,并继续检查搜寻到的下一个单元是否为空,如果为空,说明所述目标点在边界外,所述出界之前的最后一个单元为目标单元。即,下一个单元前的单元即为目标单元。
可选地,获取单元310具体用于,查看是否有上次搜索的结果,即上次定位的目标点q’、目标单元cq’;
如果有,查看上次定位的目标点q’和本次定位的目标点q是否在同一个搜索区域,如果在同一个区域,则用上次的搜索结果作为额外的搜索线索。可选地包括:把起始单元cp设置为上次定位的目标单元cq’;把起始点p设置为上次定位的目标点q’。
如果没有,用缺省的区域代理作为额外的搜索线索。可选地,包括:计算目标点q所在的搜索区域Uq;把起始单元cp设置为搜索区域Uq的代理单元;把起始点p设置为起始单元cp的中心点,坐标为cp所有顶点坐标的平均值。
一方面,本发明实施例提供一种基于SC的IOV知识推演方法,所述方法包括:
根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
计算所述点p在对应的目标单元c中的局部坐标;
例用p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
如图22所示,一方面,本发明实施例提供一种基于SC的IOV知识推演装置,所述装置包括:
目标单元寻找单元410,用于根据给定的任意点p的坐标,找出p点所对应的目标单元;
可选地,如果点p位于SC边界以内:需要找到一个包含它的目标单元c,利用c做后续的推演(内推);如果点p位于SC边界以外:需要找到一个在边界上、不包含p、但离p相对较近的目标单元c,利用c做后续的推演(外推)。具体的寻找p点所对应目标单元的方法,在前述实施例中已经详细描述,在此不再赘述。
局部坐标计算单元420,用于计算目标单元寻找单元410找出的所述点p在对应的目标单元c中的局部坐标;
函数值计算单元430,用于例用局部坐标计算单元420计算的p的局部坐标和c的顶点的函数值组合出局部函数,用所述局部函数计算所述p点的函数值。
一方面,发明实施例提供一种基于SC的IOV知识更新方法,所述方法包括
IOV知识的局部微调,可以归结为修改SC顶点上的函数值;
IOV知识的局部采样率调整,可以归结为增加、删除SC内部顶点;
IOV知识边界的扩充及收缩,可以归结为增加SC外部顶点、或删除SC边界顶点。
可选地,修改SC顶点上的函数值可以为:对于给定顶点,直接修改此顶点上记录的函数值。
可选地,知识边界的收缩、及知识空间局部采样率的降低,都可以通过删除SC的某个顶点来实现。
可选地,假设待删除的定点为px,则删除此顶点的步骤包括:
●步骤1:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
●步骤2:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,转入步骤3;如果不是,则属于删除内部顶点的情况,转入步骤5。
●步骤3:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。
●步骤4:删除顶点px,即从SC的顶点数组里删除px。
●步骤5:把px合并到一个相邻的顶点,并删除相关的单元。可以由如下几步来实现:
○步骤5.1:选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○步骤5.2:把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○步骤5.3:对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○步骤5.4:对于单元集合Cx’的每一个单元,直接删除。
可选地,知识边界的扩张、及知识空间局部采样率的提高,都可以通过增加新的SC的顶点来实现。
可选地,在k维SC增加顶点p的步骤包括:
●步骤1:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,点p对应的目标单元c可以通过前述基于SC的IOV知识点快速定位的方法得到。
●步骤2:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标。
●步骤3:把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
●步骤4:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,转入步骤5;如果不是,则属于在SC边界以外插入新顶点的情况,转入步骤6。
●步骤5:以p为中心,把目标单元c拆分成k+1个新的单元。
●步骤6:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
如图23所示,一方面,发明实施例提供一种基于SC的IOV知识更新装置,所述装置包括
修改单元510,用于修改SC顶点上的函数值;可选地,修改单元,用于对于给定顶点,直接修改此顶点上记录的函数值。
删除单元520,用于删除SC内部顶点或删除SC边界顶点;
增加单元530,用于增加SC内部定点或增加SC外部顶点。
可选地,假设待删除的定点为px,删除单元包括:
·寻找模块5201:找出所有以px为顶点的单元,假设找的单元集合为C={c1,c2,…,cm}。
·边界判断模块5202:判断px是否在SC的边界上;如果是,则属于删除边界顶点的情况,调用第一删除模块5303;如果不是,则属于删除内部顶点的情况,调用第二删除模块5304。
·第一删除模块5303:删除所有以px为顶点的单元,即从SC的单元数组里删除集合C中所有的单元。删除顶点px,即从SC的顶点数组里删除px。
·第二删除模块5304:把px合并到一个相邻的顶点,并删除相关的单元。第二删除模块具体用于:
○选取一个与px相连接的顶点,比如选取单元c1里任何一个不同于px的顶点px’;
○把以px为顶点的单元集合C分成两部分Cx和Cx’,其中Cx’里的单元同时包含px和px’为顶点,而Cx里的单元只包含px为顶点、不包含px’为顶点。
○对于单元集合Cx里的每一个单元ci,把ci里的顶点px替换成顶点px’。
○对于单元集合Cx’的每一个单元,直接删除。
可选地,增加单元包括:
●目标单元计算模块5301:计算点p对应的目标单元c。注意,这里的点p还不是SC的一个顶点;这里输入的只是点p的坐标。
可选地,目标单元计算模块可以通过前述基于SC的IOV知识点快速定位的方法得到点p对应的目标单元c。
●增加模块5302:在SC的顶点数组里增加一个新的顶点px=p,也就是新顶点的坐标等于点p的坐标,把新顶点px的函数值设为y。可选地,这个y可以是调用者直接给出的,也可以是基于前述基于SC的IOV知识推演方法的实施例自动推演出来的。
●判断模块5303:判断目标单元是否包含点p。如果是,则属于在SC内部插入新顶点的情况,调用拆分模块5304;如果不是,则属于在SC边界以外插入新顶点的情况,调用扩展模块5305。
●拆分模块5304:以p为中心,把目标单元c拆分成k+1个新的单元。
扩展模块5305:在目标单元c外侧,增加一个新的单元c’,相当于在c处把边界扩展到c’。
图24,是本发明实施例提供的一种应用场景的示意图,计算机720可以包括具有多个计算机的服务器,例如负载均衡服务器群,为了从计算机系统112接收、处理并传送数据的目的,其与网络的不同节点交换信息。该服务器可以被类似于计算机系统110配置,具有处理器730、存储器740、指令750、和数据760。
指令750存储在存储器740中,当指令750被处理器730执行的时候,执行上述实施例1-5的功能或者步骤.由于前面对实施例1-5已经进行了详细描述,在此不再赘述。
需要说明的是计算机720可以是装载在汽车101上的,也可以放在车联网中的控制中心内,在此不做特别的限定。
在一个示例中,图25示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品600是使用信号承载介质601来提供的。所述信号承载介质601可以包括一个或多个程序指令602,其当被一个或多个处理器运行时可以提供以上针对实施例1-5描述的功能或者部分功能。
在一些示例中,信号承载介质601可以包含计算机可读介质603,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等等。在一些实施方式中,信号承载介质601可以包含计算机可记录介质604,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质601可以包含通信介质605,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,信号承载介质601可以由无线形式的通信介质605(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令602可以是,计算机可执行指令或者逻辑实施指令。在一些示例中,诸如针对实施例1-5描述的计算设备的计算设备可以被配置为,响应于通过计算机可读介质603、计算机可记录介质604、和/或通信介质605中的一个或多个传达到计算设,的程序指令602,提供各种操作、功能、或者动作。应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
本发明实施例部分方法,用来对上层的自动驾驶规控算法进行多层次、多角度的支持。具有如下有益效果:
·节省空间:这个主要是采用了非结构化的SC、而不是结构化的表格。一般来说,对于一个k维的知识空间来说,如果要想增加一个新的采样点,采用不同的方案耗费的空间有指数级的差别:
○均匀表格(UL):假设每个维度上有n个采样点;那么需要增加(2k-1)*nk个采样点。
○非均匀表格(NL):假设每个维度上有n个采样点;那么需要增加k*nk-1个采样点。
○知识库SC:无论已经有多少个顶点和单元,都只需要增加1个采样点和k个单元。
另外,由于知识库SC里对安全边界以外的区域无需采样、存储,又能进一步节省空间。
·节省时间:这个主要来源于快速知识点定位方法、弥补了原有的拓扑学SC的最大短板(定位太慢)。一般来说,对于一个k维、包含O(mk)数量级的单元的知识库SC,没有加速算法的话,需要搜索的单元数目为O(mk);加速后的搜索空间仅为比如实验中,有一个3维的知识库SC,包含约103(1000)个单元;我们附加了一个3维的稀疏索引结构、把空间划分为33(=27)个搜索区域。通过调用快速知识点定位算法,每次定位需要搜索的单元数目不超过4个。
·自动推演:比如前轮转角这个知识的知识库里,仅存储了速度为10、15、20、25、30、35、40的开法。通过知识库的自动推演功能,可自动执行10~30间任意速度的开法,以及稍小于10、稍大于40的开法。
●充分利用现有知识:这个主要来源于现有知识(含规则)的导入。比如前轮转角这个知识的知识库,是用某套基于规则的系统里的规则来进行初始化的。具体来说,在速度小于30的区间,导入了基于卡尔曼模型的规则;在速度大于30的区间,导入了基于运动学原理的规则。导入之后、刚开始运行的时候,虽然还没有经过学习的调整,也已经可以提供相当靠谱的自驾效果了:基本可以沿着目标轨迹行驶,偶尔会稍许偏离,但不会偏太远。这就是导入的规则在起作用。这为后面的基于学习的调整改进提供了很好的基础。、到没有明显偏离在初次运行时、还没有进行学习的时候,对前轮转角的控制就已经比较好了(这是之前积累的规则在起作用);经过很短一段时间的自动运行和在线学习,对前轮转角的控制明显更加平滑)。
●基于已有知识的快速学习:这个主要来源于知识更新、尤其是快速的局部更新,哪里不太好就调整哪里,而无需像基于模型的算法那样进行缓慢的、牵一发动全身的全局优化。比如前轮转角这个知识的知识库,在导入了现有知识(规则)之后,就开始基于学习的方法、一边运行、一边改进这个知识。比如在给定的路段上,经过短短几分钟的自动驾驶,就可明显看到自驾效果的提升:从一开始的有稍许偏离、到没有明显的偏离。
本实施例用来对上层的自动驾驶规控算法进行多层次、多角度的支持。目前已通过了多次的模拟器和实车测试,具有如下有益效果:
●节省空间:这个主要是采用了非结构化的SC、而不是结构化的表格。一般来说,对于一个k维的知识空间来说,如果要想增加一个新的采样点,采用不同的方案耗费的空间有指数级的差别:
○均匀表格(UL):假设每个维度上有n个采样点;那么需要增加(2k-1)*nk个采样点。
○非均匀表格(NL):假设每个维度上有n个采样点;那么需要增加k*nk-1个采样点。
○知识库SC:无论已经有多少个顶点和单元,都只需要增加1个采样点和k个单元。
另外,由于知识库SC里对安全边界以外的区域无需采样、存储,又能进一步节省空间。
●节省时间:这个主要来源于快速知识点定位方法、弥补了原有的拓扑学SC的最大短板(定位太慢)。一般来说,对于一个k维、包含O(mk)数量级的单元的知识库SC,没有加速算法的话,需要搜索的单元数目为O(mk);加速后的搜索空间仅为比如实验中,有一个3维的知识库SC,包含约103(1000)个单元;我们附加了一个3维的稀疏索引结构、把空间划分为33(=27)个搜索区域。通过调用快速知识点定位算法,每次定位需要搜索的单元数目不超过4个。
●自动推演:比如前轮转角这个知识的知识库里,仅存储了速度为10、15、20、25、30、35、40的开法。通过知识库的自动推演功能,可自动执行10~30间任意速度的开法,以及稍小于10、稍大于40的开法。
●充分利用现有知识:这个主要来源于现有知识(含规则)的导入。比如前轮转角这个知识的知识库,是用某套基于规则的系统里的规则来进行初始化的。具体来说,在速度小于30的区间,导入了基于卡尔曼模型的规则;在速度大于30的区间,导入了基于运动学原理的规则。导入之后、刚开始运行的时候,虽然还没有经过学习的调整,也已经可以提供相当靠谱的自驾效果了:基本可以沿着目标轨迹行驶,偶尔会稍许偏离,但不会偏太远。这就是导入的规则在起作用。这为后面的基于学习的调整改进提供了很好的基础。、到没有明显偏离在初次运行时、还没有进行学习的时候,对前轮转角的控制就已经比较好了(这是之前积累的规则在起作用);经过很短一段时间的自动运行和在线学习,对前轮转角的控制明显更加平滑)。
●基于已有知识的快速学习:这个主要来源于知识更新、尤其是快速的局部更新,哪里不太好就调整哪里,而无需像基于模型的算法那样进行缓慢的、牵一发动全身的全局优化。比如前轮转角这个知识的知识库,在导入了现有知识(规则)之后,就开始基于学习的方法、一边运行、一边改进这个知识。比如在给定的路段上,经过短短几分钟的自动驾驶,就可明显看到自驾效果的提升:从一开始的有稍许偏离、到没有明显的偏离。
下面以列表的形式,针对所要解决的技术问题,给出的技术方案带来的有益效果,如表1所示。
表1:本发明的有益效果
需要说明的是,本发明实施例的作用是奠定基础、指引方向。基于本发明实施例,可以在多个层面、多个方向进行扩展。本发明实施例虽然是针对输入空间是连续空间的IOV知识,但是如果输入空间是混合的(即有些维度是连续的、有些维度是离散的),也可以使用本发明实施例来管理连续的那部分知识。更进一步,可以设计一个管理离散知识的知识库系统,并与本发明实施例融合在一起,拓展成适用于更多IOV知识类型的知识库系统。本发明实施例里的各种知识管理方法,如果作为本系统里的模块来看、是定义在SC这种知识表示方式上的。但是,如果把它们从本系统脱离出来、作为独立的方法来看,是可以定义到其它的表示方式上来的,只要这种表示方式有支持离散采样、连续推演的可能(如结构化、半结构化的表示方法)。核心思想是类似的,只是具体实现方法、效果会有不同。本发明实施例集中在相对底层的、基本的IOV知识管理功能。但本发明实施例里有很多新的想法,对上层算法的开发是有很大启发的;同时,本发明实施例里的技术点,可以为上层算法提供必要的底层支持,以此为基础,向上层功能扩展,进一步开拓上层的IOV学习算法。
本发明实施例的技术点都是针对IOV的,本发明为了形象化的描述本发明实施例的技术点,依托于IOV作为应用环境描述的。实际上不局限于此。事实上,任何领域、任何应用,只要涉及多维连续空间的知识,就可以抽象成多维空间上的函数,本发明实施例即可适用。可以以此为基础,与各领域实际问题结合、开拓应用层面的发明。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成。结合本发明实施例所公开的方法的步骤,可以直接体现为处理器中的硬件及软件模块组合执行完成。当使用软件实现时,可以将实现上述功能的代码存储在计算机可读介质中。计算机可读介质包括计算机存储介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以是随机存取存储器(英文全称为random-access memory,英文缩写为RAM)、只读存储器(英文全称为read-only memory,英文缩写为ROM)、电可擦可编程只读存储器(英文全称为electrically erasable programmable read-only memory,英文缩写为EEPROM)、只读光盘(英文全称为compact disk read-only memory,英文缩写为CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。计算机可读介质可以是压缩碟(英文全称为compact disk,英文缩写为CD)、激光碟、数字视频光碟(英文全称为digital videodisk,英文缩写为DVD)、软盘或者蓝光碟。
以上所述仅为本发明实施例的较佳实施例,并不用以限制本发明,凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (18)
1.一种基于单纯复形(SC)的车联网(IOV)知识表示方法,其特征在于,所述方法包括:
用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
用SC的边界来表示IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
2.如权利要求1所述的IOV知识表示方法,其特征在于,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
3.如权利要求2所述的IOV知识表示方法,其特征在于,一个顶点的信息包括:
所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
4.如权利要求1-3任一项所述的IOV知识表示方法,其特征在于,利用单元数组记录所述SC所有单元的信息。
5.如权利要求4所述的IOV知识表示方法,其特征在于,一个单元的信息包括:
所述单元的顶点索引值和所述单元中每个面的对应面。
6.如权利要求1所示的IOV知识表示方法,其特征在于,所述SC的边界由所述SC里对应面为空的面组成的。
7.一种基于单纯复形SC的车联网IOV知识表示装置,其特征在于,所述装置包括:
知识表示单元,用于用附带k’维函数值的k维SC来表示k维连续空间上的k’维知识;其中,SC的顶点的坐标为k个输入变量的值(x1,…,xk),所述顶点上的函数值为函数的k’个输出值(y1,…,yk’),二者的关系是:(y1,…,yk’)=f(x1,…,xk’),其中f为基于IOV知识的对应关系函数;k和k’为自然数;
安全边界表示单元,用于用所述SC的边界来表示所述IOV知识的安全边界,其中,IOV知识包括自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度,以及参数之间符合车辆动力学客观规律的关系,其中自动驾驶车辆的方向盘转角、道路曲率和自动驾驶车辆的速度通过所述自动驾驶车辆上的传感器获取。
8.如权利要求7所述的IOV知识表示装置,其特征在于,利用顶点的数组记录所有顶点的信息,其中,所述数组的长度为所述SC里的顶点的数目,所述数组里的每个元素存储一个顶点的信息。
9.如权利要求8所述的IOV知识表示装置,其特征在于,一个顶点的信息包括:
所述顶点的坐标和所述顶点的函数值,所述顶点的函数值为所述顶点的坐标在所述基于IOV知识的对应关系函数中的函数值。
10.如权利要求7-9任一项所述的IOV知识表示装置,其特征在于,利用单元数组记录所述SC所有单元的信息。
11.如权利要求10所述的IOV知识表示装置,其特征在于,一个单元的信息包括:
所述单元的顶点索引值和所述单元中每个面的对应面。
12.如权利要求7所示的IOV知识表示装置,其特征在于,所述SC的边界由所述SC里对应面为空的面组成的。
13.一种基于SC的IOV知识的导入方法,其特征在于,所述方法包括:
把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
对所述知识函数F进行离散采样,建立顶点集合P;
建立单元集合C,用各个单元填补所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
14.如权利要求13所述的导入方法,其特征在于,对所述知识函数F进行离散采样,建立顶点集合P,包括:
初始化顶点集合P为空;
对每一个知识函数F,执行下列步骤、对F进行离散采样;
基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
通过安全判断函数g,判断p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;
如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
把候选采样点p加入到顶点集合P,作为一个新的顶点。
15.如权利要求13所述的导入方法,其特征在于,建立单元集合C,用各个单元填补顶点之间的空白,形成最终的知识库SC,包括:
把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
以所述P-为顶点集合,建立k-1维的单元集合C-;
把所述顶点集合P-和所述单元集合C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
以所述P为顶点集合,以所述S-为边界约束,建立k维的单元集合C;
把所述顶点集合P和所述单元集合C合并,形成最终的知识库SC。
16.一种基于SC的IOV知识的导入装置,其特征在于,所述装置包括:
抽象单元,用于把各种不同形式的知识抽象成知识函数F,所述知识函数F包括对应关系函数f,也安全判断函数g,以及知识定义域D;其中,f为基于IOV知识的对应关系函数;所述安全判断函数g用于对知识定义域D内部的任意一组输入值(x1,x2,…,xk),判断输入数值在所述IOV知识里是否是一个安全的组合;所述知识定义域D用于确定是每一个输入变量xi能取的最小和最大值,其中,i=1,2,…,k;
顶点集合建立单元,用于对所述知识函数F进行离散采样,建立顶点集合P;
单元集合建立单元,用于建立单元集合C,用各个单元填补顶点集合建立单元建立的所述顶点集合P中各顶点之间的空白,形成最终的知识库SC。
17.如权利要求16所述的导入装置,其特征在于,顶点集合建立单元,包括:
候选样点确定模块,用于基于对应关系函数f以及顶点集合P里现有的顶点,确定位于D里面的一个新的候选采样点p的坐标;
判断模块,用于通过安全判断函数g,判断候选样点确定模块确定的p是否在安全区域内;如果不是在安全区域内,则忽略候选采样点p,选择下一个候选采样点;如果是在安全区域内,通过所述对应关系函数f,计算候选采样点p所对应的函数值;
更新模块,用于把候选采样点p加入到顶点集合P,作为一个新的顶点。
18.如权利要求16所述的导入装置,其特征在于,单元集合建立单元包括:
拆分模块,用于把顶点集合P分成两个子集合:P-和P+,其中:P-包含所有在边界上的顶点;P+包含所有不在边界上的顶点;
第一单元集合建立模块,用于以所述P-为顶点集合,建立k-1维的单元集合C-;
边界表示模块,用于把所述顶点集合P-和所述单元集合C-合并、形成一个k-1维的封闭的单纯复形S-,用来表示知识库SC的边界;
第二单元集合建立模块,用于以所述P为顶点集合,以所述S-为边界约束,建立k维的单元集合C;
合并模块,用于把所述顶点集合P和所述单元集合C合并,形成最终的知识库SC。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857766.XA CN109189781B (zh) | 2018-07-31 | 2018-07-31 | 一种车联网知识库表示方法,装置及系统 |
EP19844326.9A EP3822806A4 (en) | 2018-07-31 | 2019-07-31 | METHOD, DEVICE AND SYSTEM FOR REPRESENTING A KNOWLEDGE BASE IN THE VEHICLE INTERNET |
PCT/CN2019/098716 WO2020025004A1 (zh) | 2018-07-31 | 2019-07-31 | 一种车联网知识库表示方法,装置及系统 |
US17/158,969 US20210150376A1 (en) | 2018-07-31 | 2021-01-26 | Method, apparatus, and system for representing internet of vehicles knowledge base |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857766.XA CN109189781B (zh) | 2018-07-31 | 2018-07-31 | 一种车联网知识库表示方法,装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189781A CN109189781A (zh) | 2019-01-11 |
CN109189781B true CN109189781B (zh) | 2022-03-29 |
Family
ID=64937525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857766.XA Active CN109189781B (zh) | 2018-07-31 | 2018-07-31 | 一种车联网知识库表示方法,装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210150376A1 (zh) |
EP (1) | EP3822806A4 (zh) |
CN (1) | CN109189781B (zh) |
WO (1) | WO2020025004A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189781B (zh) * | 2018-07-31 | 2022-03-29 | 华为技术有限公司 | 一种车联网知识库表示方法,装置及系统 |
CN110579216B (zh) * | 2019-09-12 | 2022-02-18 | 阿波罗智能技术(北京)有限公司 | 测试场景库构建方法、装置、电子设备和介质 |
US20230077863A1 (en) * | 2021-09-09 | 2023-03-16 | Motional Ad Llc | Search algorithms and safety verification for compliant domain volumes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093559A (zh) * | 2007-06-12 | 2007-12-26 | 北京科技大学 | 一种基于知识发现的专家系统构造方法 |
CN106446812A (zh) * | 2016-09-13 | 2017-02-22 | 西安科技大学 | 基于进似熵模板匹配的驾驶状态辨识方法 |
CN107251018A (zh) * | 2014-12-10 | 2017-10-13 | 凯恩迪股份有限公司 | 用于基于组合超图形的数据表示和操作的装置和方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8965677B2 (en) * | 1998-10-22 | 2015-02-24 | Intelligent Technologies International, Inc. | Intra-vehicle information conveyance system and method |
US8938348B2 (en) * | 2011-12-13 | 2015-01-20 | Mitsubishi Electric Research Laboratories, Inc. | Method for optimizing run curve of vehicles |
US9940584B2 (en) * | 2015-02-13 | 2018-04-10 | International Business Machines Corporation | Leveraging an external ontology for graph expansion in inference systems |
CN107924384A (zh) * | 2015-03-11 | 2018-04-17 | 阿雅斯迪公司 | 用于使用预测学习模型预测结果的系统和方法 |
JP6305484B2 (ja) * | 2016-09-12 | 2018-04-04 | 本田技研工業株式会社 | 車両制御装置 |
CN106649983B (zh) * | 2016-11-09 | 2019-11-08 | 吉林大学 | 用于无人驾驶车辆高速运动规划的车辆动力学模型建模方法 |
CN109189781B (zh) * | 2018-07-31 | 2022-03-29 | 华为技术有限公司 | 一种车联网知识库表示方法,装置及系统 |
US11640379B2 (en) * | 2020-01-02 | 2023-05-02 | Kyndryl, Inc. | Metadata decomposition for graph transformation |
KR102287065B1 (ko) * | 2020-02-28 | 2021-08-05 | 아주대학교산학협력단 | 위상 데이터 분석(tda) 기법을 이용한 차량의 추돌 가능성 예측 방법 및 장치 |
US11948083B2 (en) * | 2020-11-16 | 2024-04-02 | UMNAI Limited | Method for an explainable autoencoder and an explainable generative adversarial network |
EP4264498A1 (en) * | 2020-12-17 | 2023-10-25 | Umnai Limited | Explainable transducer transformers |
-
2018
- 2018-07-31 CN CN201810857766.XA patent/CN109189781B/zh active Active
-
2019
- 2019-07-31 WO PCT/CN2019/098716 patent/WO2020025004A1/zh unknown
- 2019-07-31 EP EP19844326.9A patent/EP3822806A4/en active Pending
-
2021
- 2021-01-26 US US17/158,969 patent/US20210150376A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093559A (zh) * | 2007-06-12 | 2007-12-26 | 北京科技大学 | 一种基于知识发现的专家系统构造方法 |
CN107251018A (zh) * | 2014-12-10 | 2017-10-13 | 凯恩迪股份有限公司 | 用于基于组合超图形的数据表示和操作的装置和方法 |
CN106446812A (zh) * | 2016-09-13 | 2017-02-22 | 西安科技大学 | 基于进似熵模板匹配的驾驶状态辨识方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3822806A4 (en) | 2021-10-06 |
EP3822806A1 (en) | 2021-05-19 |
CN109189781A (zh) | 2019-01-11 |
WO2020025004A1 (zh) | 2020-02-06 |
US20210150376A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12043280B2 (en) | Systems and methods for graph-based AI training | |
Sakcak et al. | Sampling-based optimal kinodynamic planning with motion primitives | |
LaValle et al. | Rapidly-exploring random trees: Progress and prospects: Steven m. lavalle, iowa state university, a james j. kuffner, jr., university of tokyo, tokyo, japan | |
Kallmann et al. | Navigation meshes and real-time dynamic planning for virtual worlds | |
Kallmann et al. | Geometric and discrete path planning for interactive virtual worlds | |
Yi et al. | Path planning of a manipulator based on an improved P_RRT* algorithm | |
CN109189781B (zh) | 一种车联网知识库表示方法,装置及系统 | |
CN112596549B (zh) | 基于连续凸规则的多无人机编队控制方法、装置及介质 | |
Gu et al. | DM-DQN: Dueling Munchausen deep Q network for robot path planning | |
Rajendran et al. | Strategies for speeding up manipulator path planning to find high quality paths in cluttered environments | |
Plaku et al. | Multi‐group motion planning in virtual environments | |
Jiachen et al. | Robot path planning based on improved dung beetle optimizer algorithm | |
Zhang et al. | An efficient planning method based on deep reinforcement learning with hybrid actions for autonomous driving on highway | |
McMahon et al. | Robot motion planning with task specifications via regular languages | |
Wang et al. | Research on path planning of mobile robot based on improved jump point search algorithm | |
Li | Motion planning for dynamic scenario vehicles in autonomous-driving simulations | |
Sibai et al. | SceneChecker: Boosting scenario verification using symmetry abstractions | |
Huang et al. | MOPED: Efficient Motion Planning Engine with Flexible Dimension Support | |
Funk et al. | Orientation-aware hierarchical, adaptive-resolution A* algorithm for UAV trajectory planning | |
Chen et al. | From topological map to local cognitive map: a new opportunity of local path planning | |
Gao et al. | Adaptive Task Planning and Formal Control Synthesis Using Temporal Logic Trees | |
Nayak et al. | Bidirectional sampling based search without two point boundary value solution | |
Adler | The Traveling Salesman Problem for Systems with Dynamic Constraints | |
Li et al. | Path Planning of Manipulator Based on Improved Informed-RRT* Algorithm | |
Chi et al. | AM-RRT*: An Automatic Robot Motion Planning Algorithm Based on RRT |
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 |