发布日期:2024-08-20 06:04 点击次数:107
1 任务需求率先【EVIS-049】超マン汁過多女のずぼずぼピストンオナニー 3,咱们来明确一下本文所需齐全的需求。
现存一个由多个小图斑构成的矢量图层,如下图所示;咱们需要找到一种由4种神采构成的配色决策,对该矢量图层各图斑进行着色,使得各相邻小图斑间的神采不一致,如下下图所示。
在这里,咱们用到了四色定理(Four Color Theorem),又称四色舆图定理(Four Color Map Theorem):如若在平面上存在一些连续的有限区域,则至多仅用四种神采来给这些不同的区域染色,就不错使得每两个连续区域染的神采都不相似。
2 代码齐全明确了需求,咱们就不错开动具体的代码编写。现在国内各大博客中,有好多对于Python齐全舆图四色道理着色的代码,其中大深广是基于回溯法来齐全的;而在一个英文博客网页中,看到了基于遗传算法的舆图四色道理着色齐全。那么就以该代码为例,进行操作。在这里,由于我本东谈主对于遗传算法的相识还并不深入,因此在代码先容方面或多或少还存在着一定不及,但愿世界多多品评指正。
2.1 基本念念路遗传算法是一种用于治理最好化问题的搜索算法,属于进化算法边界。齐集前述需求,率先不错将每一个区域的神采手脚一个基因,个体基因型则为一王人地区(前述矢量图层共有78个小图斑,即78个区域)神采基因的汇总;通过构建Rule类,将空间道理上的“相邻”诊疗为不错被遗传算法识别(即不错对个体基因改动加以照管)的信息;随后,齐集子代的更迭,找到荒诞条目的基因组;最终将获得的基因组再诊疗为空间道理上的神采信息,并输出为止。
具体分法子念念路如下:
大香蕉网界说“律例”。“律例”用以将区域之间的空间链接情况诊疗为遗传算法不错识别的信息;被“律例”链接的两个区域在空间中是相邻的。界说区域空间链接情况查验所需函数。这些函数用于查验两两区域之间的链接性是否荒诞逻辑;举例,若在“律例”中透露区域A与区域B链接,那么区域B也必须在“律例”中透露与区域A链接。界说个体基因型。其中,各个体具有78个基因,每一个基因暗示一个区域的神采。个体更迭与最优基因遴荐。通过个体的不停更迭,遴荐出荒诞“律例”条目的个体基因型。基因型确认。将获得的个体基因型进行确认,非常于第一步的反流程,行将基因信息诊疗为空间链接情况。为止查验。查验所获得的神采与最优个体基因组中的各个基因是否一致。 2.2 代码西席
接下来,将完好意思代码进行先容。其中,shapefile_path即为矢量图层的保存旅途;"POLY_ID_OG"则为矢量图层的属性表中的一个字段,其代表每一个小图斑的编号。
2.3 为止展示实践上述代码,即可获得为止。在这里值得一提的是:这个代码不知谈是其本人原因,也曾我电脑的问题,实践起来相配慢——单次运行时分可能在5 ~ 6个小时阁下,竟然太慢了;世界如若感趣味趣味,不错尝试着能不行将代码的后果培植一下。
代码实践完了后获得的为止是笔墨体式的,具体如下图所示。
不错看到,通过203次迭代,找到了荒诞条目的舆图配色决策,用时06小时06分钟;代码施活动止除透暴露具体个体的举座基因型除外,还将分离透露78个小区域(小图斑)各自的具体神采称号(我上头那幅图莫得截全,骨子上是78个小区域的神采都会输出的)。
诚然,世界也不错发现,这种笔墨抒发的代码施活动止领路不如凯旋来一幅如下所示的为止图直不雅。然而,由于代码单次实践时分竟然是太真切,我也没再腾出时分(其实是偷懒)对为止的可视化加以修改。世界如若感趣味趣味的话,不错尝试对代码最终的为止呈现部分加以修改——举例,不错通过Matplotlib库的拓展——Basemap库将78个小区域的配色决策进行可视化。
转头到此这篇对于Python舆图四色道理的遗传算法着色齐全的著作就先容到这了【EVIS-049】超マン汁過多女のずぼずぼピストンオナニー 3,更多相关Python舆图四色道理内容请搜索剧本之家往常的著作或继续浏览底下的相关著作但愿世界以后多多支援剧本之家!
您可能感趣味趣味的著作: python遗传算法之geatpy的深入相识 python遗传算法之单/多策画筹画问题 python齐全使用遗传算法进行图片拟合 python齐全高效的遗传算法 Python遗传算法Geatpy器具箱使用先容