Project Icon

deap

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

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

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

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号