deap

deap

灵活高效的进化计算框架,实现快速原型开发和创意测试

DEAP是一个开源的进化计算框架,为快速原型设计和算法测试提供了便利。它支持多种进化算法,如遗传算法、遗传编程和进化策略,并能处理多目标优化问题。DEAP的核心优势在于其清晰的算法结构和透明的数据结构,同时与并行计算机制兼容性良好。框架内置了多种实用功能,包括精英保存机制、中间结果保存和标准测试函数集等,可应用于解决各类复杂优化问题。

DEAP进化计算遗传算法优化算法Python库Github开源项目

DEAP

构建状态 下载 加入聊天 https://gitter.im/DEAP/deap 构建状态 文档状态

DEAP是一个新颖的进化计算框架,用于快速原型设计和测试想法。它旨在使算法明确化和数据结构透明化。它与多进程和SCOOP等并行化机制完美兼容。

DEAP包含以下特性:

  • 使用任何可想象的表示方式的遗传算法
    • 列表、数组、集合、字典、树、Numpy数组等
  • 使用前缀树的遗传编程
    • 松散类型、强类型
    • 自动定义函数
  • 进化策略(包括CMA-ES)
  • 多目标优化(NSGA-II、NSGA-III、SPEA2、MO-CMA-ES)
  • 多种群的协同进化(合作和竞争)
  • 评估的并行化(以及更多)
  • 存储种群中最优个体的名人堂
  • 定期对系统进行快照的检查点
  • 包含最常见测试函数的基准模块
  • 进化的谱系(与NetworkX兼容)
  • 替代算法示例:粒子群优化、差分进化、分布估计算法

下载

根据Python社区接受的PEP 438,我们已将DEAP的源代码发布到PyPI

你可以在以下地址找到最新版本:https://pypi.python.org/pypi/deap/。

文档

DEAP文档请参见DEAP用户指南

要获取最新文档,请切换到doc子文件夹并输入make html,文档将位于_build/html下。你需要安装Sphinx来构建文档。

笔记本

另外请查看我们新的笔记本示例。使用Jupyter笔记本,你可以单独导航和执行每个代码块,了解每行代码的作用。你可以使用页面底部的笔记本查看器链接在线查看笔记本,或下载笔记本,导航到下载目录并运行

jupyter notebook

安装

我们建议你使用easy_install或pip在系统上安装DEAP。其他安装方法如apt-get、yum等通常提供的是过时版本。

pip install deap

可以使用以下命令安装最新版本

pip install git+https://github.com/DEAP/deap@master

如果你想从源代码构建,请下载或克隆仓库并输入

python setup.py install

构建状态

DEAP的构建状态可在Travis-CI上查看:https://travis-ci.org/DEAP/deap。

要求

DEAP的最基本功能需要Python2.6。为了结合工具箱和多进程模块,需要Python2.7来支持pickle部分函数。CMA-ES需要Numpy,我们推荐使用matplotlib来可视化结果,因为它与DEAP的API完全兼容。

自0.8版本起,DEAP可以直接与Python 3兼容。安装过程会自动使用2to3将源代码转换为Python 3,但这需要setuptools<=58。建议使用pip install setuptools==57.5.0来解决此问题。

示例

以下代码简要展示了使用DEAP实现Onemax问题优化的遗传算法有多简单。更多示例请参见这里

import random from deap import creator, base, tools, algorithms creator.create("FitnessMax", base.Fitness, weights=(1.0,)) creator.create("Individual", list, fitness=creator.FitnessMax) toolbox = base.Toolbox() toolbox.register("attr_bool", random.randint, 0, 1) toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_bool, n=100) toolbox.register("population", tools.initRepeat, list, toolbox.individual) def evalOneMax(individual): return sum(individual), toolbox.register("evaluate", evalOneMax) toolbox.register("mate", tools.cxTwoPoint) toolbox.register("mutate", tools.mutFlipBit, indpb=0.05) toolbox.register("select", tools.selTournament, tournsize=3) population = toolbox.population(n=300) NGEN=40 for gen in range(NGEN): offspring = algorithms.varAnd(population, toolbox, cxpb=0.5, mutpb=0.1) fits = toolbox.map(toolbox.evaluate, offspring) for fit, ind in zip(fits, offspring): ind.fitness.values = fit population = toolbox.select(offspring, k=len(population)) top10 = tools.selBest(population, k=10)

如何引用DEAP

使用DEAP生成结果的科学论文作者鼓励引用以下论文。

@article{DEAP_JMLR2012, author = " F\'elix-Antoine Fortin and Fran\c{c}ois-Michel {De Rainville} and Marc-Andr\'e Gardner and Marc Parizeau and Christian Gagn\'e ", title = { {DEAP}: Evolutionary Algorithms Made Easy }, pages = { 2171--2175 }, volume = { 13 }, month = { jul }, year = { 2012 }, journal = { Journal of Machine Learning Research } }

关于DEAP的出版物

  • François-Michel De Rainville, Félix-Antoine Fortin, Marc-André Gardner, Marc Parizeau and Christian Gagné, "DEAP -- Enabling Nimbler Evolutions", SIGEVOlution, vol. 6, no 2, pp. 17-26, February 2014. 论文
  • Félix-Antoine Fortin, François-Michel De Rainville, Marc-André Gardner, Marc Parizeau and Christian Gagné, "DEAP: Evolutionary Algorithms Made Easy", Journal of Machine Learning Research, vol. 13, pp. 2171-2175, jul 2012. 论文
  • François-Michel De Rainville, Félix-Antoine Fortin, Marc-André Gardner, Marc Parizeau and Christian Gagné, "DEAP: A Python Framework for Evolutionary Algorithms", in !EvoSoft Workshop, Companion proc. of the Genetic and Evolutionary Computation Conference (GECCO 2012), July 07-11 2012. 论文

使用DEAP的项目

  • Ribaric, T.和Houghten, S. (2017年6月)。用于改进椭圆曲线密码系统密码分析的遗传编程。2017年IEEE进化计算大会(CEC)论文集(第419-426页)。IEEE出版。
  • Ellefsen, Kai Olav、Herman Augusto Lepikson和Jan C. Albiez。"多目标覆盖路径规划:实现复杂现实世界结构的自动检查"。应用软计算61 (2017): 264-282。
  • S. Chardon, B. Brangeon, E. Bozonnet, C. Inard (2016),单户住宅的建造成本和能源性能:从集成设计到自动优化,建筑自动化,第70卷,第1-13页。
  • B. Brangeon, E. Bozonnet, C. Inard (2016),集体住宅的综合改造和真实产品数据库的优化过程,建筑模拟优化,第531-538页,纽卡斯尔,英国。
  • Randal S. Olson, Ryan J. Urbanowicz, Peter C. Andrews, Nicole A. Lavender, La Creis Kidd和Jason H. Moore (2016)。通过树形管道优化实现生物医学数据科学自动化。进化计算应用,第123-137页。
  • Randal S. Olson, Nathan Bartley, Ryan J. Urbanowicz和Jason H. Moore (2016)。评估用于自动化数据科学的树形管道优化工具。GECCO 2016会议论文集,第485-492页。
  • Van Geit W, Gevaert M, Chindemi G, Rössert C, Courcol J, Muller EB, Schürmann F, Segev I和Markram H (2016)。BluePyOpt:利用开源软件和云基础设施优化神经科学中的模型参数。神经信息学前沿 10:17. doi: 10.3389/fninf.2016.00017 https://github.com/BlueBrain/BluePyOpt
  • Lara-Cabrera, R., Cotta, C.和Fernández-Leiva, A.J. (2014)。RTS游戏中美学地图进化的几何vs拓扑测量,娱乐计算。
  • Macret, M.和Pasquier, P. (2013)。使用多目标遗传算法自动调谐OP-1合成器。第10届声音与音乐计算会议(SMC)论文集。(第614-621页)。
  • Fortin, F. A., Grenier, S.和Parizeau, M. (2013年7月)。推广改进的非支配排序运行时复杂度算法。第十五届遗传与进化计算年会论文集(第615-622页)。ACM出版。
  • Fortin, F. A.和Parizeau, M. (2013年7月)。重新审视NSGA-II的拥挤距离计算。第十五届遗传与进化计算年会论文集(第623-630页)。ACM出版。
  • Marc-André Gardner, Christian Gagné和Marc Parizeau。基于隐马尔可夫模型的组合优化估计分布算法。遗传与进化计算会议(GECCO 2013)计算机论文集,2013年7月。
  • J. T. Zhai, M. A. Bamakhrama和T. Stefanov。"在硬实时系统中映射流应用程序时利用刚好足够的并行性"。设计自动化会议(DAC 2013),2013年。
  • V. Akbarzadeh, C. Gagné, M. Parizeau, M. Argany, M. A Mostafavi,"基于视线覆盖的传感器布置优化概率感知模型",已被IEEE仪器仪表测量汇刊接受,2012年。
  • M. Reif, F. Shafait和A. Dengel。"元学习数据集生成"。德国人工智能会议(KI'12)论文集。2012年。
  • M. T. Ribeiro, A. Lacerda, A. Veloso和N. Ziviani。"多目标推荐系统的帕累托高效混合"。推荐系统会议(RecSys'12)论文集。2012年。
  • M. Pérez-Ortiz, A. Arauzo-Azofra, C. Hervás-Martínez, L. García-Hernández和L. Salas-Morera。"一个学习用户偏好的多目标设施布局优化系统"。工业和环境应用软计算模型国际会议(SOCO'12)论文集。2012年。
  • Lévesque, J.C., Durand, A., Gagné, C.和Sabourin, R.,ROC空间中生成分类器集成的多目标进化优化,遗传与进化计算会议(GECCO 2012),2012年。
  • Marc-André Gardner, Christian Gagné和Marc Parizeau,"使用基于直方图的接受-拒绝方法控制遗传编程中的膨胀",遗传与进化计算会议(GECCO 2011)论文集,2011年。
  • Vahab Akbarzadeh, Albert Ko, Christian Gagné和Marc Parizeau,"使用CMA-ES的地形感知传感器部署优化",自然并行问题求解(PPSN 2010)论文集,Springer出版,2010年。
  • DEAP在TPOT中使用,这是一个使用遗传编程优化机器学习管道的开源工具。
  • DEAP也在ROS中作为优化包使用 http://www.ros.org/wiki/deap。
  • DEAP是PyXRD的可选依赖项,PyXRD是为无序层状结构X射线衍射分析开发的矩阵算法的Python实现。
  • DEAP在glyph中使用,这是一个用于符号回归的库,应用于MLC
  • DEAP在Sklearn-genetic-opt中使用,这是一个使用进化编程来微调机器学习超参数的开源工具。

如果你想在这里列出你的项目,请发送给我们一个链接和简短描述,我们很乐意添加。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多