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中使用,这是一个使用进化编程来微调机器学习超参数的开源工具。

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

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

��讯飞智文

讯飞智文

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

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

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

讯飞星火

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

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

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

Spark-TTS

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

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

下拉加载更多