建筑物分间方法、电子设备及计算机存储介质转让专利

申请号 : CN202111500409.6

文献号 : CN114386138B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 常青玲徐世廷崔岩王昱涵

申请人 : 五邑大学中德(珠海)人工智能研究院有限公司

摘要 :

本发明公开了一种建筑物分间方法、电子设备及计算机存储介质,方法包括:获取建筑物户型图对应的无向图;根据无向图,搜索得到最大回路;根据最大回路,生成第一邻接矩阵及对应的第一退化图;根据第一退化图,搜索得到最小回路;根据最小回路和第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图;将第二退化图更新为第一退化图,重新搜索得到最小回路,以生成更新后的第二邻接矩阵及对应的第二退化图,直至更新后的第二邻接矩阵退化为空;根据最大回路和每一最小回路,得到建筑物户型图对应的分间结果。本发明能够确保回路搜索的可靠性,而且能够有效降低数据处理的复杂度,进而能够有效提高建筑物分间处理的速度。

权利要求 :

1.建筑物分间方法,其特征在于,包括如下步骤:

获取建筑物户型图对应的无向图;

根据所述无向图,搜索得到最大回路;

根据所述最大回路,生成第一邻接矩阵及对应的第一退化图;

根据所述第一退化图,搜索得到最小回路;

根据所述最小回路和所述第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图;

将所述第二退化图更新为所述第一退化图,重新搜索得到所述最小回路,以生成更新后的所述第二邻接矩阵及对应的所述第二退化图,直至更新后的所述第二邻接矩阵退化为空;

根据所述最大回路和每一所述最小回路,得到所述建筑物户型图对应的分间结果;

所述根据所述最大回路和每一所述最小回路,得到所述建筑物户型图的分间结果之前,还包括:获取所述无向图的连通性;

根据所述无向图的连通性,得到所述最大回路及所述最小回路之间的包含关系,其中,所述包含关系表征与所述分间结果的关联;

所述根据所述无向图的连通性,得到所述最大回路及所述最小回路之间的包含关系,包括:当所述无向图为连通图,所述最大回路为一个,得到每一所述最小回路均包含于所述最大回路中;

当所述无向图为非连通图,所述最大回路至少有两个,所述得到所述最大回路及所述最小回路之间的包含关系包括以下步骤:将所述第二退化图更新为所述无向图,重新搜索得到所述最大回路及所述最小回路,直至更新后的所述第二邻接矩阵和所述第二退化图同时退化为空;

获取取值范围存在重叠的两个所述最大回路;

根据所述取值范围存在重叠的两个所述最大回路,得到取值范围小的所述最大回路为内部最大回路、取值范围大的所述最大回路为外部最大回路;

根据所述外部最大回路中的每一所述最小回路以及所述内部最大回路,筛选出与所述内部最大回路取值范围有重叠的所述最小回路为外包围最小回路,得到所述内部最大回路包含于所述外包围最小回路中。

2.根据权利要求1所述的建筑物分间方法,其特征在于,获取建筑物户型图对应的无向图,包括:获取所述建筑物户型图;

根据所述建筑物户型图,生成所述无向图,其中,所述建筑物户型图的墙体投影中心线为所述无向图的边,所述建筑物户型图的墙体投影中心线的端点为所述无向图的顶点。

3.根据权利要求1所述的建筑物分间方法,其特征在于,所述根据所述无向图,搜索得到最大回路,包括:根据所述无向图,将第一坐标轴上的最大值或最小值对应的顶点作为第一起始点,其中,所述第一坐标轴为与x轴或y轴平行的轴线,所述第一坐标轴经过所述第一起始点;

以所述第一起始点为第一出发点,获取每一与所述第一出发点连接的第一邻接边;

以所述第一坐标轴为第一基准线,计算每一所述第一邻接边对应的第一方向因子,其中,所述第一方向因子用于表示所述第一邻接边相对于所述第一基准线的第一旋转角关系;

比较每一所述第一方向因子,得到最小的所述第一方向因子对应的所述第一邻接边为第一路径;

将所述第一路径的终点更新为所述第一出发点,并将所述第一路径更新为所述第一基准线,直至更新后的所述第一路径的终点与所述第一起始点重合;

根据多个所述第一路径,得到所述最大回路。

4.根据权利要求3所述的建筑物分间方法,其特征在于,所述根据所述最大回路,生成第一邻接矩阵及对应的第一退化图,包括:根据所述最大回路,将每一所述第一路径对应的数值输入到邻接矩阵,得到初始邻接矩阵,其中,所述邻接矩阵的初始值都为0,每遍历所述第一路径一次,所述邻接矩阵中对应所述第一路径的元素加1;

根据所述初始邻接矩阵,删除所述初始邻接矩阵中数值为2的元素,生成所述第一邻接矩阵及对应的所述第一退化图,其中,所述第一退化图由所述无向图删除遍历两次的所述第一路径后得到。

5.根据权利要求1所述的建筑物分间方法,其特征在于,所述根据所述第一退化图,搜索得到最小回路,包括:根据所述第一退化图,将第二坐标轴上的最大值或最小值对应的顶点作为第二起始点,其中,所述第二坐标轴为与x轴或y轴平行的轴线,所述第二坐标轴经过所述第二起始点;

以所述第二起始点为第二出发点,获取每一与所述第二出发点连接的第二邻接边;

以所述第二坐标轴为第二基准线,计算每一所述第二邻接边对应的第二方向因子,其中,所述第二方向因子用于表示所述第二邻接边相对于所述第二基准线的第二旋转角关系;

比较每一所述第二方向因子,得到最小的所述第二方向因子对应的所述第二邻接边为第二路径;

将所述第二路径的终点更新为所述第二出发点,并将所述第二路径更新为所述第二基准线,得到最大的所述第二方向因子对应的所述第二邻接边为第三路径;

将所述第三路径的终点更新为所述第二出发点,直至更新后的所述第三路径的终点与所述第二起始点重合;

根据所述第二路径和多个所述第三路径,得到所述最小回路。

6.根据权利要求5所述的建筑物分间方法,其特征在于,根据所述最小回路和所述第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图,包括:根据所述最小回路,将每一所述第二路径对应的数值输入到所述第一邻接矩阵,得到中间邻接矩阵,其中,每遍历所述第二路径一次,所述第一邻接矩阵中对应所述第二路径的元素加1;

根据所述中间邻接矩阵,删除所述中间邻接矩阵中数值为2的元素,生成所述第二邻接矩阵及对应的所述第二退化图,其中,所述第二退化图由所述第一退化图删除遍历两次的所述第二路径后得到。

7.一种电子设备,其特征在于,包括:

存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的建筑物分间方法。

8.一种计算机存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至6中任意一项所述的建筑物分间方法。

说明书 :

建筑物分间方法、电子设备及计算机存储介质

技术领域

[0001] 本发明涉及户型数据处理领域,特别涉及一种建筑物分间方法、电子设备及计算机存储介质。

背景技术

[0002] 随着人们生活水平的不断提高,房地产家装行业的配套产品也在逐步升级,智能家装设计平台应运而生。
[0003] 相关技术中,智能家装设计平台主要用于对建筑物进行户型设计、家装设计等,对于建筑物内房间的划分一般是设计师以人工的方式对建筑物户型图进行定义的,部分智能家装设计平台能够根据建筑物户型图进行分间,但难以处理房间格局复杂的建筑物户型图,且分间处理需要消耗大量的时间,分间效率低。

发明内容

[0004] 本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提供了一种建筑物分间方法、电子设备及计算机存储介质,能够根据建筑物户型图得到建筑物的分间结果,分间效率高。
[0005] 本发明第一方面实施例提供一种建筑物分间方法,包括如下步骤:
[0006] 获取建筑物户型图对应的无向图;
[0007] 根据无向图,搜索得到最大回路;
[0008] 根据最大回路,生成第一邻接矩阵及对应的第一退化图;
[0009] 根据第一退化图,搜索得到最小回路;
[0010] 根据最小回路和第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图;
[0011] 将第二退化图更新为第一退化图,重新搜索得到最小回路,以生成更新后的第二邻接矩阵及对应的第二退化图,直至更新后的第二邻接矩阵退化为空;
[0012] 根据最大回路和每一最小回路,得到建筑物户型图对应的分间结果。
[0013] 根据本发明的上述实施例,至少具有如下有益效果:通过建筑物户型图生成无向图,能够有效简化图形的复杂程度,从而有效提高分间处理速度,根据无向图搜索能够得到最大回路和最小回路,进而得到建筑物的分间结果,分间过程中设置邻接矩阵用于对数据进行记录分析,不仅能够避免重复搜索已得到的回路,从而能够确保回路搜索的可靠性,而且能够有效降低数据处理的复杂度,进而能够对搜索结束条件实现快速判断,能够有效提高建筑物分间处理的速度。
[0014] 根据本发明第一方面的一些实施例,获取建筑物户型图对应的无向图,包括:
[0015] 获取建筑物户型图;
[0016] 根据建筑物户型图,生成无向图,其中,建筑物户型图的墙体投影中心线为无向图的边,建筑物户型图的墙体投影中心线的端点为无向图的顶点。
[0017] 根据本发明第一方面的一些实施例,根据无向图,搜索得到最大回路,包括:
[0018] 根据无向图,将第一坐标轴上的最大值或最小值对应的顶点作为第一起始点,其中,第一坐标轴为与x轴或y轴平行的轴线,第一坐标轴经过第一起始点;
[0019] 以第一起始点为第一出发点,获取每一与第一出发点连接的第一邻接边;
[0020] 以第一坐标轴为第一基准线,计算每一第一邻接边对应的第一方向因子,其中,第一方向因子用于表示第一邻接边相对于第一基准线的第一旋转角关系;
[0021] 比较每一第一方向因子,得到最小的第一方向因子对应的第一邻接边为第一路径;
[0022] 将第一路径的终点更新为第一出发点,并将第一路径更新为第一基准线,直至更新后的第一路径的终点与第一起始点重合;
[0023] 根据多个第一路径,得到最大回路。
[0024] 根据本发明第一方面的一些实施例,根据最大回路,生成第一邻接矩阵及对应的第一退化图,包括:
[0025] 根据最大回路,将每一第一路径对应的数值输入到邻接矩阵,得到初始邻接矩阵,其中,邻接矩阵的初始值都为0,每遍历第一路径一次,邻接矩阵中对应第一路径的元素加1;
[0026] 根据初始邻接矩阵,删除初始邻接矩阵中数值为2的元素,生成第一邻接矩阵及对应的第一退化图,其中,第一退化图由无向图删除遍历两次的第一路径后得到。
[0027] 根据本发明第一方面的一些实施例,根据第一退化图,搜索得到最小回路,包括:
[0028] 根据第一退化图,将第二坐标轴上的最大值或最小值对应的顶点作为第二起始点,其中,第二坐标轴为与x轴或y轴平行的轴线,第二坐标轴经过第二起始点;
[0029] 以第二起始点为第二出发点,获取每一与第二出发点连接的第二邻接边;
[0030] 以第二坐标轴为第二基准线,计算每一第二邻接边对应的第二方向因子,其中,第二方向因子用于表示第二邻接边相对于第二基准线的第二旋转角关系;
[0031] 比较每一第二方向因子,得到最小的第二方向因子对应的第二邻接边为第二路径;
[0032] 将第二路径的终点更新为第二出发点,并将第二路径更新为第二基准线,得到最大的第二方向因子对应的第二邻接边为第三路径;
[0033] 将第三路径的终点更新为第二出发点,直至更新后的第三路径的终点与第二起始点重合;
[0034] 根据第二路径和多个第三路径,得到最小回路。
[0035] 根据本发明第一方面的一些实施例,根据最小回路和第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图,包括:
[0036] 根据最小回路,将每一第二路径对应的数值输入到第一邻接矩阵,得到中间邻接矩阵,其中,每遍历第二路径一次,第一邻接矩阵中对应第二路径的元素加1;
[0037] 根据中间邻接矩阵,删除中间邻接矩阵中数值为2的元素,生成第二邻接矩阵及对应的第二退化图,其中,第二退化图由第一退化图删除遍历两次的第二路径后得到。
[0038] 根据本发明第一方面的一些实施例,根据最大回路和每一最小回路,得到建筑物户型图的分间结果之前,还包括:
[0039] 获取无向图的连通性;
[0040] 根据无向图的连通性,得到最大回路及最小回路之间的包含关系,其中,包含关系表征与分间结果的关联。
[0041] 根据本发明第一方面的一些实施例,根据无向图的连通性,得到最大回路及最小回路之间的包含关系,包括:
[0042] 将第二退化图更新为无向图,重新搜索得到最大回路及最小回路,直至更新后的第二邻接矩阵和第二退化图同时退化为空;
[0043] 当无向图为连通图,最大回路为一个,得到每一最小回路均包含于最大回路中;
[0044] 当无向图为非连通图,最大回路至少有两个,得到最大回路及最小回路之间的包含关系包括以下步骤:
[0045] 获取取值范围存在重叠的两个最大回路;
[0046] 根据取值范围存在重叠的两个最大回路,得到取值范围小的最大回路为内部最大回路、取值范围大的最大回路为外部最大回路;
[0047] 根据外部最大回路中的每一最小回路以及内部最大回路,筛选出与内部最大回路取值范围有重叠的最小回路为外包围最小回路,得到内部最大回路包含于外包围最小回路中。
[0048] 本发明第二方面实施例提供一种电子设备,包括:
[0049] 存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现第一方面任意一项的建筑物分间方法。
[0050] 由于第二方面实施例的电子设备应用第一方面任意一项的建筑物分间方法,因此具有本发明第一方面的所有有益效果。
[0051] 根据本发明第三方面实施例提供的一种计算机存储介质,存储有计算机可执行指令,计算机可执行指令用于执行第一方面任意一项的建筑物分间方法。
[0052] 由于第三方面实施例的计算机存储介质可执行第一方面任意一项的建筑物分间方法,因此具有本发明第一方面的所有有益效果。
[0053] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0054] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0055] 图1是本发明实施例的建筑物分间方法的主要步骤图;
[0056] 图2是本发明实施例的建筑物分间方法中获取无向图的步骤图;
[0057] 图3是本发明实施例的建筑物分间方法中搜索最大回路的步骤图;
[0058] 图4是本发明实施例的建筑物分间方法中生成第一邻接矩阵和第一退化图的步骤图;
[0059] 图5是本发明实施例的建筑物分间方法中搜索最小回路的步骤图;
[0060] 图6是本发明实施例的建筑物分间方法中生成第二邻接矩阵和第二退化图的步骤图;
[0061] 图7是本发明实施例中一个连通的无向图;
[0062] 图8是本发明实施例中删除桥和悬枝后的第一退化图;
[0063] 图9是本发明实施例中的初始邻接矩阵示意图;
[0064] 图10是本发明实施例中的第一邻接矩阵示意图;
[0065] 图11是本发明实施例中的一个非连通的无向图;
[0066] 图12是本发明实施例中另一个非连通的无向图的分间结果示意图。

具体实施方式

[0067] 本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。此外,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0068] 分间是指对建筑物内部的房间进行划分判别,能够反映出建筑物的内部格局,具体表示出房间的数量以及位置情况。相关技术中的分间方法只能对简单的建筑物户型图进行处理,且处理速度慢,应用的受限性大。
[0069] 下面参照图1至图12描述本发明的建筑物分间方法、电子设备及计算机存储介质。
[0070] 如图1所示,根据本发明第一方面实施例的一种建筑物分间方法,包括如下步骤:
[0071] 步骤S100、获取建筑物户型图对应的无向图;
[0072] 步骤S200、根据无向图,搜索得到最大回路;
[0073] 步骤S300、根据最大回路,生成第一邻接矩阵及对应的第一退化图;
[0074] 步骤S400、根据第一退化图,搜索得到最小回路;
[0075] 步骤S500、根据最小回路和第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图;
[0076] 步骤S600、将第二退化图更新为第一退化图,重新搜索得到最小回路,以生成更新后的第二邻接矩阵及对应的第二退化图,直至更新后的第二邻接矩阵退化为空,其中,邻接矩阵为空则其内部所有元素的数值都为0;
[0077] 步骤S700、根据最大回路和每一最小回路,得到建筑物户型图对应的分间结果。
[0078] 通过建筑物户型图生成无向图,能够有效简化图形的复杂程度,从而有效提高分间处理速度,根据无向图搜索能够得到最大回路和最小回路,进而得到建筑物的分间结果,分间过程中设置邻接矩阵用于对数据进行记录分析,不仅能够避免重复搜索已得到的回路,从而能够确保回路搜索的可靠性,而且能够有效降低数据处理的复杂度,进而能够对搜索结束条件实现快速判断,能够有效提高建筑物分间处理的速度。
[0079] 可以理解的是,参考图2,步骤S100,获取建筑物户型图对应的无向图,包括以下步骤:
[0080] 步骤S110、获取建筑物户型图。
[0081] 步骤S120、根据建筑物户型图,生成无向图,其中,建筑物户型图的墙体投影中心线为无向图的边,建筑物户型图的墙体投影中心线的端点为无向图的顶点。
[0082] 具体的,在进行步骤S100之后,通过以下步骤对无向图进行预处理:基于visual studio code开发软件,选用node.js为服务器、js作为开发语言,先对数据结构进行定义,再开辟动态二维数据存储邻接矩阵M。其中,数据结构包括点、边以及回路,点包含有三个属性,横坐标x、纵坐标y以及第一编号id1;边也有三个属性,起始点start、终点end以及第二编号id2,其中起始点start和终点end都是点的类型,对应的数值为点的第一编号id1,并将点和边的信息都存储到json中,第二编号id2为key;回路包含点、边、子回路和父回路,并用数组存储回路,数组中每个元素对应回路中的一个对象,子回路和父回路表示了回路间的包含关系。
[0083] 无向图是指边为没有方向的图,一般以G(V,E)表示,其中V为非空集合,V称为顶点集,E为V中元素构成的无序二元组的集合,E称为边集。根据建筑物户型图生成的无向图,只包含了建筑物户型图中的墙体信息,能够避免建筑物户型图中墙体以外的其他信息对房间分间造成干扰,能够有效简化处理过程,降低分间处理的复杂度。若任意两个顶点都形成有通路,则该无向图G(V,E)为连通图;若存在两个顶点之间没有通路,则无向图G(V,E)为非连通图。
[0084] 最大回路是指包容连通图中全部顶点和边的回路,通常记为Cbi;参考图7,为连通的无向图,该无向图带有桥和悬枝,其中,最大回路为Cb1=(V1,V2,V3,V4,V13,V14,V15,V16,V17,V18,V14,V13,V5,V19,V20,V19,V6,V1),该最大回路包含桥和悬枝
[0085] 可以理解的是,参考图3,步骤S200,根据无向图,搜索得到最大回路,包括以下步骤:
[0086] S210、根据无向图,将第一坐标轴上的最大值或最小值对应的顶点作为第一起始点,其中,第一坐标轴为与x轴或y轴平行的轴线,第一坐标轴经过第一起始点,且第一坐标轴的终点为第一起始点;
[0087] S220、以第一起始点为第一出发点,获取每一与第一出发点连接的第一邻接边;
[0088] S230、以第一坐标轴为第一基准线,计算每一第一邻接边对应的第一方向因子,其中,第一方向因子用于表示第一邻接边相对于第一基准线在矢量状态下的第一旋转角关系,第一邻接边相对于第一基准线在矢量状态下的为第一旋转角α1,第一方向因子设为K1=α1/2π,α1∈(‑π,π),当第一邻接边相对于第一基准线顺时针旋转,α1为负值,当第一邻接边相对于第一基准线逆时针旋转时α1为正值,当第一邻接边为弧形边,通过其切线计算其第一方向因子;
[0089] S240、比较每一第一方向因子,得到最小的第一方向因子对应的第一邻接边为第一路径;
[0090] S250、将第一路径的终点更新为第一出发点,并将第一路径更新为第一基准线,直至更新后的第一路径的终点与第一起始点重合,其中,第一路径的终点为远离更新前第一出发点的一端点;
[0091] S260、根据多个第一路径,得到最大回路。
[0092] 以下对步骤S200进行说明,参考图7为无向图,先进行步骤S210至S240,设第一坐标轴与x轴平行,x轴与平行,获取第一坐标轴上最小值对应的顶点V1点为第一起始点;以第一起始点V1点为第一出发点,获取与V1点连接的第一邻接边有;计算得到向量V1V2和向量V1V6两条第一邻接边相对于第一基准线向量V1V2的第一旋转角分别为α11和α12,第一方向因子分别为K11和K12;由于α11<α12,可知两个第一方向因子的关系为K11为第一路径。再进行步骤S250,将第一路径的终点V2更新为第一出发点,并将第一路径更新为第一基准线,得到更新后的两个第一邻接边分别为,更新后的两个第一邻接边向量V2V3和向量V2V7相对于第一基准线向量V1V2的第一旋转角分别为α13和α14,第一方向因子分别为K13和K14,可知它们对应的第一方向因子的关系为K13为更新后的第一路径;重复进行上述步骤,直至更新后的第一路径对应的终点与第一起始点V1点重合。最后进行步骤S260,根据多个第一路径,连接多个第一路径后得到最大回路为Cb1(V1,V2,V3,V4,V13,V14,V15,V16,V17,V18,V14,V13,V5,V19,V20,V19,V6,V1)。
[0093] 可以理解的是,参考图4,步骤300,根据最大回路,生成第一邻接矩阵及对应的第一退化图,包括以下步骤:
[0094] S310、根据最大回路,将每一第一路径对应的数值输入到邻接矩阵,得到初始邻接矩阵,其中,邻接矩阵的初始值都为0,每遍历第一路径一次,邻接矩阵对应第一路径的元素加1;
[0095] S320、根据初始邻接矩阵,删除初始邻接矩阵中数值为2的元素,生成第一邻接矩阵及对应的第一退化图,其中,第一退化图由无向图删除遍历两次的第一路径后得到。
[0096] 参考图7为无向图,在进行步骤S200后,最终能够得到无向图中的最大回路Cb1(V1,V2,V3,V4,V13,V14,V15,V16,V17,V18,V14,V13,V5,V19,V20,V19,V6,V1),在进行步骤S310时,以每遍历一次则对应元素加1的方式,将搜索得到的最大回路的Cb1遍历的第一路径输入到初始值都为0的邻接矩阵中,得到如9图所示的初始邻接矩阵,其中桥和悬枝都遍历了两次,因此初始邻接矩阵中对应元素的值为2;在进行步骤S320时,初始邻接矩阵中数值为2的元素对应的第一路径为桥和悬枝,删除无向图中的桥和悬枝后生成第一退化图如图8所示,其中孤立点V20也被删除,同时删除初始邻接矩阵中数值为2的元素,生成如图10所示的第一邻接矩阵,其中,数值为0的省略不写。
[0097] 可以理解的是,参考图5,步骤S400,根据第一退化图,搜索得到最小回路,包括:
[0098] S410、根据第一退化图,将第二坐标轴上的最大值或最小值对应的顶点作为第二起始点,其中,第二坐标轴为与x轴或y轴平行的轴线,第二坐标轴经过第二起始点,且第二坐标轴的终点为第二起始点;
[0099] S420、以第二起始点为第二出发点,获取每一与第二出发点连接的第二邻接边;
[0100] S430、以第二坐标轴为第二基准线,计算每一第二邻接边对应的第二方向因子,其中,第二方向因子用于表示第二邻接边相对于第二基准线在矢量状态下的第二旋转角关系,第二邻接边相对于第二基准线在矢量状态下的第二旋转角为α2,第二方向因子设为K2=α2/2π,α2∈(‑π,π),当第二邻接边相对于第二基准线顺时针旋转,α2为负值,当第二邻接边相对于第二基准线逆时针旋转时α2为正值,当第二邻接边为弧形边,通过其切线计算其第二方向因子;
[0101] S440、比较每一第二方向因子,得到最小的第二方向因子对应的第二邻接边为第二路径;
[0102] S450、将第二路径的终点更新为第二出发点,并将第二路径更新为第二基准线,得到最大的第二方向因子对应的第二邻接边为第三路径,其中,第二路径的终点为远离更新前第二出发点的一端点;
[0103] S460、将第三路径的终点更新为第二出发点,直至更新后的第三路径的终点与第二起始点重合,其中,第三路径的终点为远离更新前第二出发点的一端点;
[0104] S470、根据第二路径和多个第三路径,得到最小回路。
[0105] 以下对步骤S400进行说明,参考图8为第一退化图,先进行步骤S410至S440,设第二坐标轴与x轴平行,x轴与平行,获取第二坐标轴上最小值对应的顶点V1点为第二起始点;以第二起始点V1点为第二出发点,获取与V1点连接的第二邻接边有;计算得到向量V1V2和向量V1V6两条第二邻接边相对于第二基准线向量V1V2的第二旋转角分别为α21和α22,第二方向因子分别为K21和K22;由于α21<α22,可知两个第二方向因子的关系为K21为第二路径。再进行步骤S450,将第二路径的终点V2更新为第二出发点,并将第二路径更新为第二基准线,得到更新后的两个第二邻接边分别为,更新后的两个第二邻接边向量V2V3和V2V7相对于第二基准线向量V1V2的第二旋转角分别为α23和α24,第二方向因子分别为K23和K24,可知它们对应的第二方向因子分别为K23为第三路径。接着进行步骤S460,将第三路径的终点更新为第二出发点,得到更新后的两个第二邻接边分别为,更新后的两个第二邻接边向量V7V8和V7V12相对于第二基准线向量V2V7的第二旋转角分别为α25和α26,第二方向因子分别为K25和K26,可知它们对应的第二方向因子的关系为K25>K26,得到K25对应的第二邻接边为更新后的第三路径;重复进行上述步骤,直至更新后的第三路径对应的终点与第二坐标轴的起始点V1点重合。最后进行步骤S470,根据第二路径和多个第三路径连接后得到最小回路为Cb1S1(V1,V2,V7,V8,V9,V10,V11,V12,V7,V2,V3,V4,V5,V6,V1)。
[0106] 可以理解的是,参考图6,步骤S500,根据最小回路和第一邻接矩阵,生成第二邻接矩阵及对应的第二退化图,包括:
[0107] S510、根据最小回路,将每一第二路径对应的数值输入到第一邻接矩阵,得到中间邻接矩阵,其中,每遍历第二路径一次,第一邻接矩阵中对应第二路径的元素加1;
[0108] S520、根据中间邻接矩阵,删除中间邻接矩阵中数值为2的元素,生成第二邻接矩阵及对应的第二退化图,其中,第二退化图由第一退化图删除遍历两次的第二路径后得到。
[0109] 参考图8为第一退化图,在进行步骤S400后,最终能够得到第一退化图的最小回路为Cb1S1(V1,V2,V7,V8,V9,V10,V11,V12,V7,V2,V3,V4,V5,V6,V1),在进行不步骤S510时,以每遍历一次则对应元素加1的方式,将搜索得到的最小回路Cb1S1输入到第一邻接矩阵中,得到中间邻接矩阵,其中最小回路Cb1S1的部分路径与最大回路Cb1的部分路径相同,这些路径对应中间邻接矩阵中元素的数值为2;在进行步骤S520时,删除中间邻接矩阵中数值为2的元素,删除第一退化图中对应中间邻接矩阵中数值为2的元素对应的路径,生成第二退化图,同时删除中间邻接矩阵中数值为2的元素,生成第二邻接矩阵。
[0110] 将第二退化图更新为第一退化图,重新搜索得到最小回路,以生成更新后的第二邻接矩阵及对应的第二退化图,直至更新后的第二邻接矩阵退化为空,即第二邻接矩阵中的元素都为0,此时,可判断搜索得到最大回路Cb1中的所有最小回路分别为Cb1S1(V1,V2,V7,V8,V9,V10,V11,V12,V7,V2,V3,V4,V5,V6,V1)、Cb1S2(V12,V11,V8,V7,V12)、Cb1S3(V11,V10,V9,V8,V11)和Cb1S4(V15,V16,V17,V18,V14,V15)。
[0111] 非连通图中只可能某个最大回路包含在大范围的最大回路中的某个最小回路中本文中,由于以下性质:一个最大会包含其内的所有最小回路,一个最大回路内的所有最小回路之间无包含关系,一个非连通图中的两个连通子图形成的回路可能存在包含关系。可知只有非连通图才存在回路间的包含关系,若某个非连通图中存在两个大小不同的连通子图即两个最大回路G(大)和H(小),若G和H存在包含关系,则 假设H包含于G的两个或两个以上的最小回路中,则 与G和H是非连通图中的两个连通子图矛盾;假设只有H的某个最小回路包含在G或G的最小回路中,则 同上矛盾。故只有在非连通图
中存在回路间的包含关系,且只有某个最大回路包含在某个最小回路中。
[0112] 可以理解的是,步骤S700之前,即根据最大回路和每一最小回路,得到建筑物户型图的分间结果之前,还包括以下步骤:
[0113] 获取无向图的连通性;
[0114] 根据无向图的连通性,得到最大回路及最小回路之间的包含关系,其中,包含关系表征与分间结果的关联。
[0115] 具体的,获取无向图的连通性包括以下步骤:
[0116] 当第二邻接矩阵退化为空,获取对应的第二退化图;
[0117] 根据第二退化图,判断无向图的连通性,其中,当第二退化图为空图,无向图为连通图,当第二退化图为非空图,无向图为非连通图。
[0118] 可以理解的是,根据无向图的连通性,得到最大回路及最小回路之间的包含关系,包括以下步骤:
[0119] 当无向图为连通图,最大回路为一个,得到每一最小回路均包含于最大回路中;
[0120] 当无向图为非连通图,最大回路至少有两个,得到最大回路及最小回路之间的包含关系包括以下步骤:
[0121] 将第二退化图更新为无向图,重新搜索得到最大回路及最小回路,直至更新后的第二邻接矩阵退化为空且第二退化图退化为空图;
[0122] 获取取值范围存在重叠的两个最大回路;
[0123] 根据取值范围存在重叠的两个最大回路,得到取值范围小的最大回路为内部最大回路、取值范围大的最大回路为外部最大回路;
[0124] 根据外部最大回路中的每一最小回路以及内部最大回路,筛选出与内部最大回路取值范围有重叠的最小回路为外包围最小回路,得到内部最大回路包含于外包围最小回路中。
[0125] 具体的,当无向图为非连通图,最大回路至少有两个,将第二退化图更新为无向图,重新搜索得到最大回路及最小回路,直至更新后的第二邻接矩阵和第二退化图同时退化为空,得到每一最大回路及最小回路之后,还包括以下步骤:
[0126] 1、计算某个最大回路的横坐标x和纵坐标y的取值范围(Xmin,Xmax)和(Ymin,Ymax),若且 取{Xmin≤xCbi≤Xmax}和{Xmin≤xCbj≤Xmax}中取值范围小者进入下一步。
[0127] 2、假设{Xmin≤xCbj≤Xmax}取值范围较小,则计算最大回路Cbi的所有最小回路的x坐标和y坐标的取值范围,取 且时的k值,即得到某个最大回路Cbj包含于最大回
路Cbi的最小回路Cbisk,如图11中,最大回路Cb2=(V13,V14,V15,V16,V13)包含在Cb1的最小回路Cb1s1=(V1,V2,V10,V9,V12,V6,V7,V8,V1)中。
[0128] 3、重复步骤1和2,找到所有的回路间的包含关系。
[0129] 参考图7,无向图为连通图,因此其所有最小回路都包含于最大回路中。
[0130] 参考图12,无向图为非连通图,将第二退化图更新为无向图,重新搜索得到最大回路及其中的最小回路,直至更新后的第二邻接矩阵和第二退化图同时退化为空,得到所有的最大回路和最小回路。
[0131] 最大回路为:Cb1=(V1,V2,V3,V4,V5,V6,V7,V8,V9,V20,V1),Cb2=(V21,V22,V23,V24,V25,V26,V21)。
[0132] 全部最小回路分别为:房间1:Cb1s1=(V1,V2,V12,V11,V10,V16,V9,V20,V1),房间2:Cb1s2=(V11,V12,V17,V16,V10,V11),房间5:Cb1s3=(V2,V3,V13,V12,V2),房间4:Cb1s4=(V12,V13,V14,V17,V12),房间3:Cb1s5=(V17,V14,V15,V16,V17),房间8:Cb1s6=(V16,V15,V14,V18,V6,V7,V8,V19,V8,V9,V16),房间6:Cb1s7=(V3,V4,V18,V14,V13,V3),房间7:Cb1s8=(V4,V5,V6,V18,V4),房间9:Cb2s1=(V21,V22,V25,V26,V21),房间10:Cb2s2=(V22,V23,V24,V25,V22)。
[0133] 包含关系为Cb2包含于Cb1s6。可以看出,无论房间是凸多边形或凹多边形,本发明的建筑物分间方法都能顺利的完成回路搜索,能够高效的完成建筑物在线实时分间。
[0134] 使用本发明的建筑物分间方法进行分间处理,无向图中的边一旦遍历两次则会被删除,由此可知,时间复杂度是无向图边数的两倍,即时间复杂度为O(E),其中E是无向图的边数。连通图内回路的包含关系明确,无需进行判断处理,包含关系的判断处理只针对非连通图,而非连通图中,只需比较回路顶点的横坐标和纵坐标的取值范围,故其时间复杂度为O(V),其中V是顶点个数。因此,总的时间复杂度是O(E)+O(V),能够有效确保本发明建筑物分间方法的分间效率。
[0135] 另外,本发明第二方面实施例还提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
[0136] 处理器和存储器可以通过总线或者其他方式连接。
[0137] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0138] 实现上述第一方面实施例的建筑物分间方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的建筑物分间方法,例如,执行以上描述的方法步骤S100至S700、方法步骤S110至S120、方法步骤S210至S260、方法步骤S310至S320、方法步骤S410至S470、方法步骤S510至S520。
[0139] 以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0140] 此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的建筑物分间方法,例如,执行以上描述的方法步骤S100至S700、方法步骤S110至S120、方法步骤S210至S260、方法步骤S310至S320、方法步骤S410至S470、方法步骤S510至S520。
[0141] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0142] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0143] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。