基于OpenCL的并行遗传算法在0/1背包问题的研究及实现
摘要 | 第5-6页 |
Abstract | 第6-7页 |
第一章 绪论 | 第11-19页 |
1.1 研究背景 | 第11-14页 |
1.1.1 背包问题 | 第11页 |
1.1.2 遗传算法 | 第11-12页 |
1.1.3 异构计算技术的发展 | 第12-14页 |
1.2 国内外研究现状 | 第14-16页 |
1.3 本文的主要研究工作 | 第16-17页 |
1.4 论文基本结构 | 第17-19页 |
第二章 背包问题和遗传算法的基本原理 | 第19-27页 |
2.1 背包问题的描述 | 第19页 |
2.2 遗传算法的基本概念 | 第19-20页 |
2.3 遗传算法的基本流程 | 第20-22页 |
2.4 遗传操作的实现 | 第22-26页 |
2.4.1 二进制遗传算法进化过程 | 第22-23页 |
2.4.2 选择算子的实现 | 第23-24页 |
2.4.3 交叉算子的实现 | 第24-25页 |
2.4.4 变异算子的实现 | 第25-26页 |
2.5 本章小结 | 第26-27页 |
第三章 异构计算技术 | 第27-39页 |
3.1 CPU与GPU架构及差异 | 第27-29页 |
3.1.1 CPU架构的特点 | 第27-28页 |
3.1.2 GPU架构的特点 | 第28页 |
3.1.3 CPU与GPU的优劣对比 | 第28-29页 |
3.2 OPENCL的基本介绍 | 第29-30页 |
3.3 OPENCL的计算架构 | 第30-36页 |
3.3.1 平台模型 | 第31页 |
3.3.2 存储器模型 | 第31-33页 |
3.3.3 执行模型 | 第33-35页 |
3.3.4 编程模型 | 第35-36页 |
3.4 OPENCL的计算流程 | 第36-37页 |
3.5 本章小结 | 第37-39页 |
第四章 基于OPENCL的并行遗传算法设计及实现 | 第39-65页 |
4.1 基于OPENCL的并行遗传算法实现流程 | 第39-42页 |
4.2 OPENCL主机端的具体实现 | 第42-52页 |
4.2.1 遗传个体的数据结构 | 第42页 |
4.2.2 主机初始化的实现 | 第42-46页 |
4.2.3 设备操作的实现 | 第46-52页 |
4.3 内核算法的具体实现 | 第52-64页 |
4.3.1 随机数函数的实现 | 第52-54页 |
4.3.2 背包问题价值计算的实现 | 第54页 |
4.3.3 初始化内核函数的实现 | 第54-56页 |
4.3.4 选择操作的实现 | 第56-57页 |
4.3.5 交叉操作的实现 | 第57页 |
4.3.6 变异操作的实现 | 第57-58页 |
4.3.7 遗传操作内核函数的实现 | 第58-60页 |
4.3.8 统计操作内核函数的实现 | 第60-64页 |
4.4 本章小结 | 第64-65页 |
第五章 算法运行结果及分析 | 第65-77页 |
5.1 算法实现的软硬件环境 | 第65-66页 |
5.2 算法的实验设计 | 第66-68页 |
5.3 算法的实验结果与分析 | 第68-74页 |
5.3.1 传统串行实现与并行实现的对比 | 第68-70页 |
5.3.2 并行执行时间随种群增大的差异对比 | 第70-71页 |
5.3.3 并行实现随种群增大求解结果的变化 | 第71-72页 |
5.3.4 CPU并行性能与核数和主频的关系 | 第72-73页 |
5.3.5 GPU并行性能与驱动版本的关系 | 第73-74页 |
5.4 本章小结 | 第74-77页 |
第六章 总结与展望 | 第77-79页 |
6.1 全文总结 | 第77-78页 |
6.2 问题与展望 | 第78-79页 |
致谢 | 第79-81页 |
参考文献 | 第81-85页 |
附录A (攻读硕士学位期间所发表的论文) | 第85页 |