论文部分内容阅读
粒子群优化(Particle Swarm Optimization, PSO)算法是一种典型的群智能优化方法,常用于解决函数优化、组合优化、神经网络训练等问题。与传统的优化方法相比,PSO算法具有结构简单、参数较少、易于实现以及寻优能力强等优点。然而,随着现代计算机技术的发展和应用,一些维度大、复杂性高的问题经常被提出,面对这类问题PSO算法通常需要很长的寻优时间,有时甚至无法得到满意的结果。因此,找到一种并行高效的实现方案具有重要意义。目前,并行PSO算法主要基于CPU平台的并行技术,其线程并发量受到CPU处理核心数目的限制,在处理大规模复杂问题上带来的提速十分有限。近年在视频游戏、计算机仿真等产业的推动下,图形处理器(Graphics Processing Unit, GPU)的计算性能远远超过了CPU,如何将GPU作为通用计算设备加速程序执行成为当下的研究热点。统一计算设备架构(Compute Unified Device Architecture, CUD A)是NVIDIA推出的一种基于GPU的通用并行计算解决方案,它将大规模并行计算逻辑通过一种简单、有效且合理的方式进行表达,成为充分利用GPU并行计算实现程序加速的关键。本文基于CUDA并行技术,重点研究了并行PSO算法的设计及实现。主要研究成果包括:(1)对PSO算法的可并行性进行了分析,设计了适合CUDA多线程环境下的粒子数据存储结构,优化了并行PSO算法的异步并行流程,并解决了多线程通信问题。经实验验证,基于CUDA的并行PSO算法在面对维度高、需要大量迭代的复杂问题上,具有十分显著的加速效果。(2)对图像分割中的最大类间方差法进行了研究分析,针对最大类间方差法中的二维Otsu算法存在阈值寻优耗时过长的问题,将本文提出的CUDA-PSO算法与二维Otsu算法相结合,缩短了最佳阈值的搜索时间。从典型图片的测试结果来看,基于CUDA-PSO的二维Otsu算法保证了良好分割效果的同时,提高了图片分割速度。