[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ljvmiranda921--pyswarms":3,"tool-ljvmiranda921--pyswarms":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",145895,2,"2026-04-08T11:32:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":90,"env_os":103,"env_gpu":104,"env_ram":104,"env_deps":105,"category_tags":111,"github_topics":112,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":124,"updated_at":125,"faqs":126,"releases":152},5577,"ljvmiranda921\u002Fpyswarms","pyswarms","A research toolkit for particle swarm optimization in Python ","pyswarms 是一个专为 Python 打造的粒子群优化（PSO）研究工具包，旨在帮助用户轻松解决复杂的非线性优化问题。它通过模拟鸟群或鱼群的集体智慧行为，自动寻找函数的全局最优解，特别适用于传统数学方法难以处理的场景。\n\n这款工具非常适合科研人员、工程师以及学习 swarm intelligence（群体智能）的学生使用。对于希望快速验证算法的研究者，pyswarms 提供了声明式的高级接口，无需编写底层代码即可调用多种 PSO 变体；对于开发者，其高度可扩展的 API 允许自定义优化策略和目标函数。\n\npyswarms 的技术亮点在于其“开箱即用”的生态设计：内置了多种标准测试函数供算法评估，集成了可视化工具以直观展示成本历史和粒子运动轨迹，并提供了超参数搜索功能来辅助调整群体行为。尽管目前作者已转向其他研究方向并推荐替代方案如 scikit-opt，但 pyswarms 凭借其清晰的架构和丰富的文档，依然是理解和学习粒子群算法的优质入门资源。用户只需几行代码即可完成从参数设置到优化执行的全过程，让复杂的优化任务变得简单高效。","![PySwarms Logo](https:\u002F\u002Fi.imgur.com\u002FeX8oqPQ.png)\n---\n\n\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyswarms.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyswarms)\n[![Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Fljvmiranda\u002Fljvmiranda\u002F_build\u002Flatest?definitionId=1&branchName=master)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_13d664e1afd7.png)](https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Fmaster\u002F?badge=master)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg )](https:\u002F\u002Fraw.githubusercontent.com\u002Fljvmiranda921\u002Fpyswarms\u002Fmaster\u002FLICENSE)\n[![DOI](http:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00433\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433)\n[![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fambv\u002Fblack)\n[![Gitter Chat](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Fpyswarms\u002FIssues)\n\n> **NOTICE**: I am not actively maintaining this repository anymore. My research interests have changed in the past few years. \n> I highly recommend checking out [scikit-opt](https:\u002F\u002Fgithub.com\u002Fguofei9987\u002Fscikit-opt) for metaheuristic methods including PSO. \n\nPySwarms is an extensible research toolkit for particle swarm optimization\n(PSO) in Python.\n\nIt is intended for swarm intelligence researchers, practitioners, and\nstudents who prefer a high-level declarative interface for implementing PSO\nin their problems. PySwarms enables basic optimization with PSO and\ninteraction with swarm optimizations. Check out more features below!\n\n* **Free software:** MIT license\n* **Documentation:** https:\u002F\u002Fpyswarms.readthedocs.io.\n* **Python versions:** 3.5 and above\n\n## Features\n\n* High-level module for Particle Swarm Optimization. For a list of all optimizers, check [this link].\n* Built-in objective functions to test optimization algorithms.\n* Plotting environment for cost histories and particle movement.\n* Hyperparameter search tools to optimize swarm behaviour.\n* (For Devs and Researchers): Highly-extensible API for implementing your own techniques.\n\n[this link]: https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Flatest\u002Ffeatures.html\n\n## Installation\n\nTo install PySwarms, run this command in your terminal:\n\n```shell\n$ pip install pyswarms\n```\n\nThis is the preferred method to install PySwarms, as it will always install\nthe most recent stable release.\n\nIn case you want to install the bleeding-edge version, clone this repo:\n\n```shell\n$ git clone -b development https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms.git\n```\nand then run\n\n```shell\n$ cd pyswarms\n$ python setup.py install\n```\n\nTo install PySwarms on Fedora, use:\n\n```sh\n$ dnf install python3-pyswarms\n```\n\n## Running in a Vagrant Box\n\nTo run PySwarms in a Vagrant Box, install Vagrant by going to \nhttps:\u002F\u002Fwww.vagrantup.com\u002Fdownloads.html and downloading the proper packaged from the Hashicorp website. \n\nAfterward, run the following command in the project directory:\n\n```shell\n$ vagrant provision\n$ vagrant up\n$ vagrant ssh\n```\nNow you're ready to develop your contributions in a premade virtual environment. \n\n## Basic Usage\n\nPySwarms provides a high-level implementation of various particle swarm\noptimization algorithms. Thus, it aims to be user-friendly and customizable.\nIn addition, supporting modules can be used to help you in your optimization\nproblem.\n\n### Optimizing a sphere function\n\nYou can import PySwarms as any other Python module,\n\n```python\nimport pyswarms as ps\n```\n\nSuppose we want to find the minima of `f(x) = x^2` using global best\nPSO, simply import the built-in sphere function,\n`pyswarms.utils.functions.sphere()`, and the necessary optimizer:\n\n```python\nimport pyswarms as ps\nfrom pyswarms.utils.functions import single_obj as fx\n# Set-up hyperparameters\noptions = {'c1': 0.5, 'c2': 0.3, 'w':0.9}\n# Call instance of PSO\noptimizer = ps.single.GlobalBestPSO(n_particles=10, dimensions=2, options=options)\n# Perform optimization\nbest_cost, best_pos = optimizer.optimize(fx.sphere, iters=100)\n```\n\n![Sphere Optimization](https:\u002F\u002Fi.imgur.com\u002F5LtjROf.gif)\n\nThis will run the optimizer for `100` iterations, then returns the best cost\nand best position found by the swarm. In addition, you can also access\nvarious histories by calling on properties of the class:\n\n```python\n# Obtain the cost history\noptimizer.cost_history\n# Obtain the position history\noptimizer.pos_history\n# Obtain the velocity history\noptimizer.velocity_history\n```\n\nAt the same time, you can also obtain the mean personal best and mean neighbor\nhistory for local best PSO implementations. Simply call `optimizer.mean_pbest_history`\nand `optimizer.mean_neighbor_history` respectively.\n\n### Hyperparameter search tools\n\nPySwarms implements a grid search and random search technique to find the\nbest parameters for your optimizer. Setting them up is easy. In this example,\nlet's try using `pyswarms.utils.search.RandomSearch` to find the optimal\nparameters for `LocalBestPSO` optimizer.\n\nHere, we input a range, enclosed in tuples, to define the space in which the\nparameters will be found. Thus, `(1,5)` pertains to a range from 1 to 5.\n\n```python\nimport numpy as np\nimport pyswarms as ps\nfrom pyswarms.utils.search import RandomSearch\nfrom pyswarms.utils.functions import single_obj as fx\n\n# Set-up choices for the parameters\noptions = {\n    'c1': (1,5),\n    'c2': (6,10),\n    'w': (2,5),\n    'k': (11, 15),\n    'p': 1\n}\n\n# Create a RandomSearch object\n# n_selection_iters is the number of iterations to run the searcher\n# iters is the number of iterations to run the optimizer\ng = RandomSearch(ps.single.LocalBestPSO, n_particles=40,\n            dimensions=20, options=options, objective_func=fx.sphere,\n            iters=10, n_selection_iters=100)\n\nbest_score, best_options = g.search()\n```\n\nThis then returns the best score found during optimization, and the\nhyperparameter options that enable it.\n\n```s\n>>> best_score\n1.41978545901\n>>> best_options['c1']\n1.543556887693\n>>> best_options['c2']\n9.504769054771\n```\n\n### Swarm visualization\n\nIt is also possible to plot optimizer performance for the sake of formatting.\nThe plotters module is built on top of `matplotlib`, making it\nhighly-customizable.\n\n\n```python\nimport pyswarms as ps\nfrom pyswarms.utils.functions import single_obj as fx\nfrom pyswarms.utils.plotters import plot_cost_history, plot_contour, plot_surface\nimport matplotlib.pyplot as plt\n# Set-up optimizer\noptions = {'c1':0.5, 'c2':0.3, 'w':0.9}\noptimizer = ps.single.GlobalBestPSO(n_particles=50, dimensions=2, options=options)\noptimizer.optimize(fx.sphere, iters=100)\n# Plot the cost\nplot_cost_history(optimizer.cost_history)\nplt.show()\n```\n\n![CostHistory](https:\u002F\u002Fi.imgur.com\u002F19Iuz4B.png)\n\nWe can also plot the animation...\n\n```python\nfrom pyswarms.utils.plotters.formatters import Mesher, Designer\n# Plot the sphere function's mesh for better plots\nm = Mesher(func=fx.sphere,\n           limits=[(-1,1), (-1,1)])\n# Adjust figure limits\nd = Designer(limits=[(-1,1), (-1,1), (-0.1,1)],\n             label=['x-axis', 'y-axis', 'z-axis'])\n```\n\nIn 2D,\n\n```python\nplot_contour(pos_history=optimizer.pos_history, mesher=m, designer=d, mark=(0,0))\n```\n\n![Contour](https:\u002F\u002Fi.imgur.com\u002FH3YofJ6.gif)\n\nOr in 3D!\n\n```python\npos_history_3d = m.compute_history_3d(optimizer.pos_history) # preprocessing\nanimation3d = plot_surface(pos_history=pos_history_3d,\n                           mesher=m, designer=d,\n                           mark=(0,0,0))    \n```\n\n![Surface](https:\u002F\u002Fi.imgur.com\u002FkRb61Hx.gif)\n\n## Contributing\n\nPySwarms is currently maintained by a small yet dedicated team:\n- Lester James V. Miranda ([@ljvmiranda921](https:\u002F\u002Fgithub.com\u002Fljvmiranda921))\n- Siobhán K. Cronin ([@SioKCronin](https:\u002F\u002Fgithub.com\u002FSioKCronin))\n- Aaron Moser ([@whzup](https:\u002F\u002Fgithub.com\u002Fwhzup))\n- Steven Beardwell ([@stevenbw](https:\u002F\u002Fgithub.com\u002Fstevenbw))\n\nAnd we would appreciate it if you can lend a hand with the following:\n\n* Find bugs and fix them\n* Update documentation in docstrings\n* Implement new optimizers to our collection\n* Make utility functions more robust.\n\nWe would also like to acknowledge [all our\ncontributors](http:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Flatest\u002Fauthors.html), past and\npresent, for making this project successful!\n\nIf you wish to contribute, check out our [contributing guide].\nMoreover, you can also see the list of features that need some help in our\n[Issues] page.\n\n[contributing guide]: https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Fdevelopment\u002Fcontributing.html\n[Issues]: https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\n\n**Most importantly**, first-time contributors are welcome to join! I try my\nbest to help you get started and enable you to make your first Pull Request!\nLet's learn from each other!\n\n## Credits\n\nThis project was inspired by the [pyswarm] module that performs PSO with\nconstrained support. The package was created with [Cookiecutter] and the\n[`audreyr\u002Fcookiecutter-pypackage`] project template.\n\n[pyswarm]: https:\u002F\u002Fgithub.com\u002Ftisimst\u002Fpyswarm\n[Cookiecutter]: https:\u002F\u002Fgithub.com\u002Faudreyr\u002Fcookiecutter\n[`audreyr\u002Fcookiecutter-pypackage`]: https:\u002F\u002Fgithub.com\u002Faudreyr\u002Fcookiecutter-pypackage\n\n## Cite us\nAre you using PySwarms in your project or research? Please cite us!\n\n* Miranda L.J., (2018). PySwarms: a research toolkit for Particle Swarm Optimization in Python. *Journal of Open Source Software*, 3(21), 433, [https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433)\n\n```bibtex\n@article{pyswarmsJOSS2018,\n    author  = {Lester James V. Miranda},\n    title   = \"{P}y{S}warms, a research-toolkit for {P}article {S}warm {O}ptimization in {P}ython\",\n    journal = {Journal of Open Source Software},\n    year    = {2018},\n    volume  = {3},\n    issue   = {21},\n    doi     = {10.21105\u002Fjoss.00433},\n    url     = {https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433}\n}\n```\n\n### Projects citing PySwarms\nNot on the list? Ping us in the Issue Tracker!\n\n* Gousios, Georgios. Lecture notes for the TU Delft TI3110TU course Algorithms and Data Structures. Accessed May 22, 2018. http:\u002F\u002Fgousios.org\u002Fcourses\u002Falgo-ds\u002Fbook\u002Fstring-distance.html#sop-example-using-pyswarms.\n* Nandy, Abhishek, and Manisha Biswas., \"Applying Python to Reinforcement Learning.\" *Reinforcement Learning*. Apress, Berkeley, CA, 2018. 89-128.\n* Benedetti, Marcello, et al., \"A generative modeling approach for benchmarking and training shallow quantum circuits.\" *arXiv preprint arXiv:1801.07686* (2018).\n* Vrbančič et al., \"NiaPy: Python microframework for building nature-inspired algorithms.\" Journal of Open Source Software, 3(23), 613, https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00613\n* Häse, Florian, et al. \"Phoenics: A Bayesian optimizer for chemistry.\" *ACS Central Science.* 4.9 (2018): 1134-1145. \n* Szynkiewicz, Pawel. \"A Comparative Study of PSO and CMA-ES Algorithms on Black-box Optimization Benchmarks.\" *Journal of Telecommunications and Information Technology* 4 (2018): 5.\n* Mistry, Miten, et al. \"Mixed-Integer Convex Nonlinear Optimization with Gradient-Boosted Trees Embedded.\" Imperial College London (2018).\n* Vishwakarma, Gaurav. *Machine Learning Model Selection for Predicting Properties of High Refractive Index Polymers* Dissertation. State University of New York at Buffalo, 2018.\n* Uluturk Ismail, et al. \"Efficient 3D Placement of Access Points in an Aerial Wireless Network.\" *2019 16th IEEE Anual Consumer Communications and Networking Conference (CCNC)* IEEE (2019): 1-7.\n* Downey A., Theisen C., et al. \"Cam-based passive variable friction device for structural control.\" *Engineering Structures* Elsevier (2019): 430-439.\n* Thaler S., Paehler L., Adams, N.A. \"Sparse identification of truncation errors.\" *Journal of Computational Physics* Elsevier (2019): vol. 397\n* Lin, Y.H., He, D., Wang, Y. Lee, L.J. \"Last-mile Delivery: Optimal Locker locatuion under Multinomial Logit Choice Model\" https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.10153\n* Park J., Kim S., Lee, J. \"Supplemental Material for Ultimate Light trapping in free-form plasmonic waveguide\" KAIST, University of Cambridge, and Cornell University http:\u002F\u002Fwww.jlab.or.kr\u002Fdocuments\u002Fpublications\u002F2019PRApplied_SI.pdf\n* Pasha A., Latha P.H., \"Bio-inspired dimensionality reduction for Parkinson's Disease Classification,\" *Health Information Science and Systems*, Springer (2020).\n* Carmichael Z., Syed, H., et al. \"Analysis of Wide and Deep Echo State Networks for Multiscale Spatiotemporal Time-Series Forecasting,\" *Proceedings of the 7th Annual Neuro-inspired Computational Elements* ACM (2019), nb. 7: 1-10 https:\u002F\u002Fdoi.org\u002F10.1145\u002F3320288.3320303\n* Klonowski, J. \"Optimizing Message to Virtual Link Assignment in Avionics Full-Duplex Switched Ethernet Networks\" Proquest\n* Haidar, A., Jan, ZM. \"Evolving One-Dimensional Deep Convolutional Neural Netowrk: A Swarm-based Approach,\" *IEEE Congress on Evolutionary Computation* (2019) https:\u002F\u002Fdoi.org\u002F10.1109\u002FCEC.2019.8790036\n* Shang, Z. \"Performance Evaluation of the Control Plane in OpenFlow Networks,\" Freie Universitat Berlin (2020)\n* Linker, F. \"Industrial Benchmark for Fuzzy Particle Swarm Reinforcement Learning,\" Liezpic University (2020)\n* Vetter, A. Yan, C. et al. \"Computational rule-based approach for corner correction of non-Manhattan geometries in mask aligner photolithography,\" Optics (2019). vol. 27, issue 22: 32523-32535 https:\u002F\u002Fdoi.org\u002F10.1364\u002FOE.27.032523\n* Wang, Q., Megherbi, N., Breckon T.P., \"A Reference Architecture for Plausible Thread Image Projection (TIP) Within 3D X-ray Computed Tomography Volumes\" https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.05459\n* Menke, Tim, Hase, Florian, et al. \"Automated discovery of superconducting circuits and its application to 4-local coupler design,\" arxiv preprint: https:\u002F\u002Farxiv.org\u002Fabs\u002F1912.03322 \n\n## Others\nLike it? Love it? Leave us a star on [Github] to show your appreciation! \n\n[Github]: https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors#emoji-key)):\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwhzup\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3f42e1251614.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Aaron\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-whzup\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#ideas-whzup\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fpulls?q=is%3Apr+reviewed-by%3Awhzup\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCarl-K\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_e592974d02fa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Carl-K\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Carl-K\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Carl-K\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.siobhankcronin.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3dd44d1fc92c.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Siobhán K Cronin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=SioKCronin\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-SioKCronin\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#ideas-SioKCronin\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fandrewjarcho.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_a46e8576316a.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Andrew Jarcho\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jazcap53\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jazcap53\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmamadyonline\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_cf9a58524735.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mamady\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=mamadyonline\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjayspeidell\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_158df195514c.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jay Speidell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jayspeidell\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fslek120\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_e528b006992f.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eric\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Aslek120\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=slek120\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCPapadim\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_92d3fb423797.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>CPapadim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3ACPapadim\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=CPapadim\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdfhljf\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_f53aada06803.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>JiangHui\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=dfhljf\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnik1082\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_20e272aeeb0e.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jericho Arcelao\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nik1082\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.jdbohrman.xyz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_a9a444901ee6.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>James D. Bohrman\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jdbohrman\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbradahoward\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_11dcae5b0114.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>bradahoward\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=bradahoward\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FThomasCES\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_26351314e48d.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ThomasCES\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ThomasCES\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielcorreia96\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_977e86951314.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Daniel Correia\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Adanielcorreia96\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=danielcorreia96\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffluencer\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_c08e4419c603.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>fluencer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#example-fluencer\" title=\"Examples\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=fluencer\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmiguelcocruz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_7f46b22f6da3.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>miguelcocruz\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=miguelcocruz\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-miguelcocruz\" title=\"Examples\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstevenbw\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_70fd6aa80877.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Steven Beardwell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=stevenbw\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-stevenbw\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=stevenbw\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-stevenbw\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fndngo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_333af2ea51ea.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nathaniel Ngo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ndngo\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAneal-Sharma\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_ace773c3ab32.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Aneal Sharma\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Aneal-Sharma\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcitomcclure\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_26f190190384.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Chris McClure\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=citomcclure\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-citomcclure\" title=\"Examples\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fse4.space\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_cebf48be66c7.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Angell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ctangell\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKutim\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_9929b76af229.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kutim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3AKutim\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fichbinjakes\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_b05d124dcaed.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jake Souter\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Aichbinjakes\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ichbinjakes\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIanBoyanZhang\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_1f0e610822fa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Ian Zhang\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=IanBoyanZhang\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-IanBoyanZhang\" title=\"Examples\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.zachariahcarmichael.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_dc4bb5124ae7.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Zach\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=craymichael\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmichel-lavoie-71841526\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_41e47c62b0fe.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michel Lavoie\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Amiek770\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Flinkedin.com\u002Fin\u002Fewelinakaminska\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_c1182c049de8.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ewekam\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ewekam\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fivyna-alves\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_5ac9caa02709.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Ivyna Santino\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ivynasantino\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-ivynasantino\" title=\"Examples\">💡\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyasirroni\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_48bf04b50918.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Muhammad Yasirroni\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=yasirroni\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fckastner\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_4cb48c263b2d.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christian Kastner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ckastner\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#platform-ckastner\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnishnash54\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_00f87bcc3e36.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nishant Rodrigues\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nishnash54\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmsat59\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_8a1615fb66ec.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>msat59\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=msat59\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Amsat59\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdiegoroman17\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_4ea8e8aa9494.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Diego\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=diegoroman17\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.aquanova-mp.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_ebb773ce1dfa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Shaad Alaka\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Archer6621\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblazewicz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_d3e588db1b64.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Krzysztof Błażewicz\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Ablazewicz\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fa310883\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_9dcab870e373.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jorge Castillo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=a310883\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdanner-web.de\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_856bedf38d7a.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Philipp Danner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=dannerph\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnikhil-sethi\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_6c39b76e15e2.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nikhil Sethi\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nikhil-sethi\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nikhil-sethi\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.iztok-jr-fister.eu\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_00cd1fc3e010.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>firefly-cpp\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=firefly-cpp\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) specification. Contributions of any kind welcome!\n","![PySwarms Logo](https:\u002F\u002Fi.imgur.com\u002FeX8oqPQ.png)\n---\n\n\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyswarms.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyswarms)\n[![Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Fljvmiranda\u002Fljvmiranda\u002F_build\u002Flatest?definitionId=1&branchName=master)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_13d664e1afd7.png)](https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Fmaster\u002F?badge=master)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg )](https:\u002F\u002Fraw.githubusercontent.com\u002Fljvmiranda921\u002Fpyswarms\u002Fmaster\u002FLICENSE)\n[![DOI](http:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00433\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433)\n[![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fambv\u002Fblack)\n[![Gitter Chat](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Fpyswarms\u002FIssues)\n\n> **注意**：我目前已不再积极维护此仓库。过去几年我的研究兴趣发生了变化。\n> 我强烈推荐大家使用 [scikit-opt](https:\u002F\u002Fgithub.com\u002Fguofei9987\u002Fscikit-opt)，它提供了包括PSO在内的多种元启发式优化方法。\n\nPySwarms 是一个用 Python 实现的、可扩展的粒子群优化（PSO）研究工具包。\n\n它面向群体智能领域的研究人员、从业者以及学生，为他们提供了一个高层次的声明式接口，以便在各自的问题中轻松实现 PSO。PySwarms 不仅支持基本的 PSO 优化，还允许用户与群体优化过程进行交互。更多功能请见下文！\n\n* **自由软件**：MIT 许可证\n* **文档**：https:\u002F\u002Fpyswarms.readthedocs.io。\n* **Python 版本**：3.5 及以上\n\n## 功能特性\n\n* 高层次的粒子群优化模块。有关所有优化器的列表，请参阅 [此链接]。\n* 内置目标函数，可用于测试优化算法。\n* 用于绘制代价历史和粒子运动轨迹的绘图环境。\n* 超参数搜索工具，帮助优化群体行为。\n* （面向开发者和研究人员）：高度可扩展的 API，方便实现自定义技术。\n\n[this link]: https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Flatest\u002Ffeatures.html\n\n## 安装\n\n要安装 PySwarms，请在终端中运行以下命令：\n\n```shell\n$ pip install pyswarms\n```\n\n这是推荐的安装方式，因为它会始终安装最新的稳定版本。\n\n如果您想安装开发中的最新版本，可以克隆此仓库：\n\n```shell\n$ git clone -b development https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms.git\n```\n然后执行：\n\n```shell\n$ cd pyswarms\n$ python setup.py install\n```\n\n在 Fedora 系统上安装 PySwarms 的命令如下：\n\n```sh\n$ dnf install python3-pyswarms\n```\n\n## 在 Vagrant 虚拟机中运行\n\n要在 Vagrant 虚拟机中运行 PySwarms，首先访问 https:\u002F\u002Fwww.vagrantup.com\u002Fdownloads.html 下载 Hashicorp 官网提供的合适安装包来安装 Vagrant。\n\n随后，在项目目录中运行以下命令：\n\n```shell\n$ vagrant provision\n$ vagrant up\n$ vagrant ssh\n```\n\n现在您就可以在一个预配置的虚拟环境中开始贡献代码了。\n\n## 基本用法\n\nPySwarms 提供了多种粒子群优化算法的高层实现，旨在让用户友好且易于定制。此外，配套模块也能帮助您解决优化问题。\n\n### 优化球形函数\n\n您可以像导入其他 Python 模块一样导入 PySwarms：\n\n```python\nimport pyswarms as ps\n```\n\n假设我们要使用全局最优 PSO 来寻找 `f(x) = x^2` 的最小值，只需导入内置的球形函数 `pyswarms.utils.functions.sphere()` 和所需的优化器：\n\n```python\nimport pyswarms as ps\nfrom pyswarms.utils.functions import single_obj as fx\n# 设置超参数\noptions = {'c1': 0.5, 'c2': 0.3, 'w':0.9}\n# 创建 PSO 实例\noptimizer = ps.single.GlobalBestPSO(n_particles=10, dimensions=2, options=options)\n# 执行优化\nbest_cost, best_pos = optimizer.optimize(fx.sphere, iters=100)\n```\n\n![球形函数优化](https:\u002F\u002Fi.imgur.com\u002F5LtjROf.gif)\n\n这段代码将运行优化器 100 次迭代，最终返回群体找到的最优代价和最优位置。此外，您还可以通过调用类的属性来获取各种历史数据：\n\n```python\n# 获取代价历史\noptimizer.cost_history\n# 获取位置历史\noptimizer.pos_history\n# 获取速度历史\noptimizer.velocity_history\n```\n\n同时，对于局部最优 PSO 实现，您还可以获取平均个人最佳和平均邻居历史，只需分别调用 `optimizer.mean_pbest_history` 和 `optimizer.mean_neighbor_history` 即可。\n\n### 超参数搜索工具\n\nPySwarms 实现了网格搜索和随机搜索技术，用于寻找优化器的最佳参数。设置起来非常简单。下面以 `pyswarms.utils.search.RandomSearch` 为例，演示如何为 `LocalBestPSO` 优化器寻找最佳参数。\n\n在这里，我们使用元组表示参数范围，例如 `(1,5)` 表示 1 到 5 之间的范围。\n\n```python\nimport numpy as np\nimport pyswarms as ps\nfrom pyswarms.utils.search import RandomSearch\nfrom pyswarms.utils.functions import single_obj as fx\n\n# 设置参数选择范围\noptions = {\n    'c1': (1,5),\n    'c2': (6,10),\n    'w': (2,5),\n    'k': (11, 15),\n    'p': 1\n}\n\n# 创建随机搜索对象\n# n_selection_iters 是搜索器运行的迭代次数\n# iters 是优化器运行的迭代次数\ng = RandomSearch(ps.single.LocalBestPSO, n_particles=40,\n            dimensions=20, options=options, objective_func=fx.sphere,\n            iters=10, n_selection_iters=100)\n\nbest_score, best_options = g.search()\n```\n\n该代码将返回优化过程中找到的最佳得分，以及对应的最优超参数选项。\n\n```s\n>>> best_score\n1.41978545901\n>>> best_options['c1']\n1.543556887693\n>>> best_options['c2']\n9.504769054771\n```\n\n### 群体可视化\n\n为了更好地展示优化效果，还可以对优化器的表现进行绘图。绘图模块基于 `matplotlib` 构建，因此具有高度的可定制性。\n\n\n```python\nimport pyswarms as ps\nfrom pyswarms.utils.functions import single_obj as fx\nfrom pyswarms.utils.plotters import plot_cost_history, plot_contour, plot_surface\nimport matplotlib.pyplot as plt\n# 设置优化器\noptions = {'c1':0.5, 'c2':0.3, 'w':0.9}\noptimizer = ps.single.GlobalBestPSO(n_particles=50, dimensions=2, options=options)\noptimizer.optimize(fx.sphere, iters=100)\n# 绘制代价历史\nplot_cost_history(optimizer.cost_history)\nplt.show()\n```\n\n![代价历史](https:\u002F\u002Fi.imgur.com\u002F19Iuz4B.png)\n\n我们还可以绘制动画……\n\n```python\nfrom pyswarms.utils.plotters.formatters import Mesher, Designer\n# 为更好地绘图，先绘制球形函数的网格\nm = Mesher(func=fx.sphere,\n           limits=[(-1,1), (-1,1)])\n\n# 调整图形范围\nd = Designer(limits=[(-1,1), (-1,1), (-0.1,1)],\n             label=['x轴', 'y轴', 'z轴'])\n```\n\n在二维中，\n\n```python\nplot_contour(pos_history=optimizer.pos_history, mesher=m, designer=d, mark=(0,0))\n```\n\n![等高线](https:\u002F\u002Fi.imgur.com\u002FH3YofJ6.gif)\n\n或者在三维中！\n\n```python\npos_history_3d = m.compute_history_3d(optimizer.pos_history) # 预处理\nanimation3d = plot_surface(pos_history=pos_history_3d,\n                           mesher=m, designer=d,\n                           mark=(0,0,0))    \n```\n\n![曲面](https:\u002F\u002Fi.imgur.com\u002FkRb61Hx.gif)\n\n## 贡献说明\n\nPySwarms 目前由一支虽小但充满热情的团队维护：\n- Lester James V. Miranda ([@ljvmiranda921](https:\u002F\u002Fgithub.com\u002Fljvmiranda921))\n- Siobhán K. Cronin ([@SioKCronin](https:\u002F\u002Fgithub.com\u002FSioKCronin))\n- Aaron Moser ([@whzup](https:\u002F\u002Fgithub.com\u002Fwhzup))\n- Steven Beardwell ([@stevenbw](https:\u002F\u002Fgithub.com\u002Fstevenbw))\n\n我们非常欢迎你的参与，具体可以从以下几个方面入手：\n\n* 发现并修复 bug\n* 更新 docstring 中的文档\n* 将新的优化算法加入我们的库中\n* 使工具函数更加健壮。\n\n同时，我们也感谢所有[贡献者](http:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Flatest\u002Fauthors.html)，无论过去还是现在，正是你们的努力让这个项目得以成功！\n\n如果你想参与贡献，请查看我们的[贡献指南]。此外，你也可以在我们的[Issues]页面上找到需要帮助的功能列表。\n\n[贡献指南]: https:\u002F\u002Fpyswarms.readthedocs.io\u002Fen\u002Fdevelopment\u002Fcontributing.html\n[Issues]: https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\n\n**最重要的是**，欢迎首次贡献的开发者加入！我会尽力帮助你入门，并协助你提交第一份 Pull Request！让我们一起学习、共同进步吧！\n\n## 致谢\n\n本项目受到 [pyswarm] 模块的启发，该模块实现了具有约束支持的 PSO 算法。该项目使用 [Cookiecutter] 和 [`audreyr\u002Fcookiecutter-pypackage`] 项目模板创建。\n\n[pyswarm]: https:\u002F\u002Fgithub.com\u002Ftisimst\u002Fpyswarm\n[Cookiecutter]: https:\u002F\u002Fgithub.com\u002Faudreyr\u002Fcookiecutter\n[`audreyr\u002Fcookiecutter-pypackage`]: https:\u002F\u002Fgithub.com\u002Faudreyr\u002Fcookiecutter-pypackage\n\n## 引用我们\n你在项目或研究中使用了 PySwarms 吗？请引用我们！\n\n* Miranda L.J., (2018). PySwarms: a research toolkit for Particle Swarm Optimization in Python. *Journal of Open Source Software*, 3(21), 433, [https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433)\n\n```bibtex\n@article{pyswarmsJOSS2018,\n    author  = {Lester James V. Miranda},\n    title   = \"{P}y{S}warms, a research-toolkit for {P}article {S}warm {O}ptimization in {P}ython\",\n    journal = {Journal of Open Source Software},\n    year    = {2018},\n    volume  = {3},\n    issue   = {21},\n    doi     = {10.21105\u002Fjoss.00433},\n    url     = {https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00433}\n}\n```\n\n### 引用 PySwarms 的项目\n不在列表中？请在 Issue Tracker 中告诉我们！\n\n* Gousios, Georgios. 德尔夫特理工大学 TI3110TU 课程《算法与数据结构》讲义。2018年5月22日访问。http:\u002F\u002Fgousios.org\u002Fcourses\u002Falgo-ds\u002Fbook\u002Fstring-distance.html#sop-example-using-pyswarms。\n* Nandy, Abhishek, 和 Manisha Biswas，“将 Python 应用于强化学习”。《强化学习》。Apress 出版社，伯克利，加利福尼亚州，2018年，第89–128页。\n* Benedetti, Marcello 等人，“一种用于基准测试和训练浅层量子电路的生成式建模方法”。《arXiv 预印本 arXiv:1801.07686》（2018年）。\n* Vrbančič 等人，“NiaPy：用于构建自然启发式算法的 Python 微框架”。《开源软件期刊》，3(23)，613页，https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00613。\n* Häse, Florian 等人，“Phoenics：一种用于化学领域的贝叶斯优化器”。《ACS Central Science》4.9期（2018年），第1134–1145页。\n* Szynkiewicz, Pawel，“PSO 与 CMA-ES 算法在黑盒优化基准上的比较研究”。《电信与信息技术杂志》4期（2018年），第5页。\n* Mistry, Miten 等人，“嵌入梯度提升树的混合整数凸非线性优化”。伦敦帝国理工学院（2018年）。\n* Vishwakarma, Gaurav，《用于预测高折射率聚合物性能的机器学习模型选择》论文。纽约州立大学布法罗分校，2018年。\n* Uluturk Ismail 等人，“空中无线网络中接入点的高效三维布局”。《2019年第16届 IEEE 消费者通信与网络大会》IEEE（2019年），第1–7页。\n* Downey A.、Theisen C. 等人，“基于摄像头的被动可变摩擦装置用于结构控制”。《工程结构》Elsevier 出版社（2019年），第430–439页。\n* Thaler S.、Paehler L.、Adams, N.A. “稀疏识别截断误差”。《计算物理杂志》Elsevier 出版社（2019年），第397卷。\n* Lin, Y.H.、He, D.、Wang, Y.、Lee, L.J. “最后一公里配送：基于多项逻辑选择模型的最佳储物柜位置” https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.10153。\n* Park J.、Kim S.、Lee, J. “自由形态等离子体波导中终极光捕获的补充材料”。KAIST、剑桥大学和康奈尔大学 http:\u002F\u002Fwww.jlab.or.kr\u002Fdocuments\u002Fpublications\u002F2019PRApplied_SI.pdf。\n* Pasha A.、Latha P.H.，“受生物启发的降维技术用于帕金森病分类”，《健康信息科学与系统》Springer 出版社（2020年）。\n* Carmichael Z.、Syed, H. 等人，“宽深回声状态网络在多尺度时空序列预测中的分析”，《第七届年度神经启发式计算元件会议》ACM 出版社（2019年），第7号文件，第1–10页 https:\u002F\u002Fdoi.org\u002F10.1145\u002F3320288.3320303。\n* Klonowski, J. “航空电子全双工交换以太网中消息到虚拟链路分配的优化” Proquest。\n* Haidar, A.、Jan, ZM. “一维深度卷积神经网络的进化：基于群体智能的方法”，《IEEE 进化计算大会》（2019年）https:\u002F\u002Fdoi.org\u002F10.1109\u002FCEC.2019.8790036。\n* Shang, Z. “OpenFlow 网络控制平面的性能评估”，柏林自由大学（2020年）。\n* Linker, F. “模糊粒子群强化学习的工业级基准”，Liezpic 大学（2020年）。\n* Vetter, A.、Yan, C. 等人，“基于规则的计算方法用于掩模对准光刻中非曼哈顿几何形状的角部修正”，Optics 出版社（2019年）。第27卷第22期，第32523–32535页 https:\u002F\u002Fdoi.org\u002F10.1364\u002FOE.27.032523。\n* Wang, Q.、Megherbi, N.、Breckon T.P.，“3D X 射线计算机断层扫描体积内可信线程图像投影（TIP）的参考架构” https:\u002F\u002Farxiv.org\u002Fabs\u002F2001.05459。\n* Menke, Tim、Hase, Florian 等人，“超导电路的自动化发现及其在4节点耦合器设计中的应用”，预印本：https:\u002F\u002Farxiv.org\u002Fabs\u002F1912.03322。\n\n## 其他\n喜欢它吗？热爱它吗？在 [Github] 上给我们点个赞，表达你的支持吧！\n\n[Github]: https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\n\n## 贡献者\n\n感谢这些了不起的人（[emoji key](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors#emoji-key)）：\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - 请勿删除或修改此部分 -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwhzup\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3f42e1251614.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Aaron\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#maintenance-whzup\" title=\"维护\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=whzup\" title=\"测试\">⚠️\u003C\u002Fa> \u003Ca href=\"#ideas-whzup\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fpulls?q=is%3Apr+reviewed-by%3Awhzup\" title=\"已审阅的拉取请求\">👀\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCarl-K\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_e592974d02fa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Carl-K\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Carl-K\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Carl-K\" title=\"测试\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.siobhankcronin.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_3dd44d1fc92c.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Siobhán K Cronin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=SioKCronin\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-SioKCronin\" title=\"维护\">🚧\u003C\u002Fa> \u003Ca href=\"#ideas-SioKCronin\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fandrewjarcho.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_a46e8576316a.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Andrew Jarcho\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jazcap53\" title=\"测试\">⚠️\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jazcap53\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmamadyonline\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_cf9a58524735.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mamady\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=mamadyonline\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjayspeidell\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_158df195514c.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jay Speidell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jayspeidell\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fslek120\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_e528b006992f.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eric\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Aslek120\" title=\"Bug报告\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=slek120\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCPapadim\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_92d3fb423797.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>CPapadim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3ACPapadim\" title=\"Bug报告\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=CPapadim\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdfhljf\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_f53aada06803.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>JiangHui\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=dfhljf\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnik1082\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_20e272aeeb0e.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jericho Arcelao\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nik1082\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.jdbohrman.xyz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_a9a444901ee6.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>James D. Bohrman\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=jdbohrman\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbradahoward\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_11dcae5b0114.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>bradahoward\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=bradahoward\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FThomasCES\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_26351314e48d.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ThomasCES\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ThomasCES\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielcorreia96\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_977e86951314.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Daniel Correia\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Adanielcorreia96\" title=\"Bug报告\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=danielcorreia96\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffluencer\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_c08e4419c603.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>fluencer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#example-fluencer\" title=\"示例\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=fluencer\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmiguelcocruz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_7f46b22f6da3.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>miguelcocruz\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=miguelcocruz\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#example-miguelcocruz\" title=\"示例\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstevenbw\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_70fd6aa80877.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Steven Beardwell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=stevenbw\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"#maintenance-stevenbw\" title=\"维护\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=stevenbw\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-stevenbw\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fndngo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_333af2ea51ea.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nathaniel Ngo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ndngo\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAneal-Sharma\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_ace773c3ab32.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Aneal Sharma\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Aneal-Sharma\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcitomcclure\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_26f190190384.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Chris McClure\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=citomcclure\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#example-citomcclure\" title=\"示例\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fse4.space\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_cebf48be66c7.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Angell\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ctangell\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKutim\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_9929b76af229.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kutim\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3AKutim\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fichbinjakes\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_b05d124dcaed.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jake Souter\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Aichbinjakes\" title=\"Bug报告\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ichbinjakes\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIanBoyanZhang\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_1f0e610822fa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Ian Zhang\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=IanBoyanZhang\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#example-IanBoyanZhang\" title=\"示例\">💡\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.zachariahcarmichael.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_dc4bb5124ae7.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Zach\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=craymichael\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmichel-lavoie-71841526\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_41e47c62b0fe.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michel Lavoie\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Amiek770\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Flinkedin.com\u002Fin\u002Fewelinakaminska\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_c1182c049de8.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ewekam\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ewekam\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fivyna-alves\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_5ac9caa02709.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Ivyna Santino\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ivynasantino\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#example-ivynasantino\" title=\"示例\">💡\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyasirroni\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_48bf04b50918.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Muhammad Yasirroni\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=yasirroni\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fckastner\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_4cb48c263b2d.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christian Kastner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=ckastner\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#platform-ckastner\" title=\"打包\u002F移植到新平台\">📦\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnishnash54\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_00f87bcc3e36.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nishant Rodrigues\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nishnash54\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmsat59\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_8a1615fb66ec.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>msat59\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=msat59\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Amsat59\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdiegoroman17\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_4ea8e8aa9494.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Diego\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=diegoroman17\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.aquanova-mp.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_ebb773ce1dfa.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Shaad Alaka\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=Archer6621\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblazewicz\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_d3e588db1b64.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Krzysztof Błażewicz\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues?q=author%3Ablazewicz\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fa310883\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_9dcab870e373.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jorge Castillo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=a310883\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdanner-web.de\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_856bedf38d7a.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Philipp Danner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=dannerph\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnikhil-sethi\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_6c39b76e15e2.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nikhil Sethi\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nikhil-sethi\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=nikhil-sethi\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Ca href=\"http:\u002F\u002Fwww.iztok-jr-fister.eu\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_readme_00cd1fc3e010.png\" width=\"100px;\" alt=\"\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>firefly-cpp\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fcommits?author=firefly-cpp\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\n本项目遵循 [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) 规范。欢迎任何形式的贡献！","# PySwarms 快速上手指南\n\nPySwarms 是一个基于 Python 的粒子群优化（PSO）研究工具包，提供高层声明式接口，适合科研人员、工程师和学生快速实现 swarm intelligence 算法。\n\n## 环境准备\n\n- **操作系统**：Linux、macOS 或 Windows\n- **Python 版本**：3.5 及以上\n- **依赖库**：`numpy`, `matplotlib`（安装时会自动处理）\n\n> 💡 提示：国内用户可使用清华或阿里云镜像加速 pip 安装。\n\n## 安装步骤\n\n### 方法一：通过 pip 安装（推荐）\n\n```shell\npip install pyswarms -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方法二：安装开发版（可选）\n\n```shell\ngit clone -b development https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms.git\ncd pyswarms\npython setup.py install\n```\n\n### 方法三：Fedora 系统用户\n\n```shell\ndnf install python3-pyswarms\n```\n\n## 基本使用\n\n以下示例演示如何使用全局最优 PSO 优化一个简单的球函数 $ f(x) = x^2 $：\n\n```python\nimport pyswarms as ps\nfrom pyswarms.utils.functions import single_obj as fx\n\n# 设置超参数\noptions = {'c1': 0.5, 'c2': 0.3, 'w': 0.9}\n\n# 创建 PSO 优化器实例\noptimizer = ps.single.GlobalBestPSO(n_particles=10, dimensions=2, options=options)\n\n# 执行优化\nbest_cost, best_pos = optimizer.optimize(fx.sphere, iters=100)\n\nprint(\"最优成本:\", best_cost)\nprint(\"最优位置:\", best_pos)\n```\n\n运行后将输出迭代 100 次后找到的最小成本及其对应的位置坐标。\n\n你还可以访问优化过程中的历史数据：\n\n```python\noptimizer.cost_history      # 成本历史\noptimizer.pos_history       # 位置历史\noptimizer.velocity_history  # 速度历史\n```\n\n如需可视化优化过程，可使用内置绘图模块（需安装 `matplotlib`）：\n\n```python\nfrom pyswarms.utils.plotters import plot_cost_history\nimport matplotlib.pyplot as plt\n\nplot_cost_history(optimizer.cost_history)\nplt.show()\n```\n\n---\n\n现在你已掌握 PySwarms 的核心用法，可以开始探索更复杂的优化问题了！","某无人机编队控制算法工程师正在调试多旋翼无人机的飞行路径规划，需要在复杂风场环境下快速找到能耗最低且避障安全的飞行参数组合。\n\n### 没有 pyswarms 时\n- 工程师需从零手写粒子群优化（PSO）的核心迭代逻辑，包括速度更新、位置边界处理及全局最优值追踪，代码量大且极易引入隐蔽的数学错误。\n- 缺乏内置的标准测试函数（如 Sphere、Rastrigin），难以在真实部署前验证算法收敛性，导致调试周期被迫拉长。\n- 无法直观观测粒子群的动态演化过程，只能依靠打印枯燥的数值日志来猜测参数设置是否合理，调参如同“盲人摸象”。\n- 每次尝试新的变体策略（如改变惯性权重策略）都需要重构大量底层代码，严重阻碍了科研实验的快速迭代。\n\n### 使用 pyswarms 后\n- 直接调用 `GlobalBestPSO` 等高级接口，仅需三行代码即可实例化优化器并执行搜索，将核心精力聚焦于业务目标函数而非底层算法实现。\n- 利用库中预置的单目标与多目标测试函数集，瞬间完成算法基准测试，确保在投入实际风场数据前逻辑无误。\n- 借助内置的可视化模块，实时生成成本历史曲线和粒子运动轨迹图，直观判断收敛趋势并精准调整超参数。\n- 基于其高扩展性 API，轻松自定义特殊的粒子行为或混合策略，无需改动框架源码即可高效开展对比实验。\n\npyswarms 将复杂的群体智能算法封装为声明式接口，让工程师从繁琐的底层造轮子中解放出来，实现了从“写算法”到“用算法解决难题”的效率飞跃。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fljvmiranda921_pyswarms_dc62e3f5.png","ljvmiranda921","Lj V. Miranda","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fljvmiranda921_c92acf34.jpg","PhD student @ @cambridgeltl.\r\n\r\nI also organize Filipino NLP research through @filbench.","@cambridgeltl @filbench","United Kingdom",null,"ljvmiranda","https:\u002F\u002Fljvmiranda921.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fljvmiranda921",[83,87,91,95],{"name":84,"color":85,"percentage":86},"Python","#3572A5",97.9,{"name":88,"color":89,"percentage":90},"Makefile","#427819",1,{"name":92,"color":93,"percentage":94},"TeX","#3D6117",0.9,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.2,1388,339,"2026-04-07T09:15:13","MIT","Linux, macOS, Windows","未说明",{"notes":106,"python":107,"dependencies":108},"该工具主要用于粒子群优化算法研究，不依赖 GPU 加速。作者声明不再积极维护此仓库，建议用户考虑使用 scikit-opt 作为替代方案。支持通过 Vagrant 构建虚拟开发环境。","3.5+",[109,110],"numpy","matplotlib",[14,13],[113,114,115,116,117,118,119,120,121,122,123],"particle-swarm-optimization","optimization-tools","pso","global-optimization","swarm-intelligence","machine-learning","discrete-optimization","optimization","optimization-algorithms","metaheuristics","algorithm","2026-03-27T02:49:30.150509","2026-04-08T23:53:12.555109",[127,132,137,142,147],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},25290,"如何在使用 PySwarms 时并行评估粒子以加速优化过程？","可以通过在目标函数中使用多线程来实现并行评估。例如，使用 `multiprocessing.pool.ThreadPool`：\n\n```python\nfrom multiprocessing.pool import ThreadPool\nimport numpy as np\n\ndef f(x):\n    \"\"\"对整个群集执行分类的高级方法...\"\"\"\n    pool = ThreadPool(12)  # 指定线程数，不指定可能导致 Jupyter 内核崩溃\n    j = pool.map(objective_function, x)\n    pool.close()\n    return np.array(j)\n```\n\n另外，也可以使用 `joblib` 库来替代 `ThreadPool` 运行评估粒子的循环。注意在 Jupyter 中如果不指定线程数量可能会导致内核崩溃。","https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\u002F258",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},25291,"示例笔记本（Notebooks）无法运行或报错怎么办？","由于 API 变更，部分旧版本的示例笔记本可能无法直接运行。维护者建议重新运行 `examples` 目录下的所有笔记本并根据最新的 API 更新代码。如果遇到具体错误（如 `training_neural_networks.ipynb` 在 Jupyter 中无法工作），通常是因为文档未及时同步。用户可以等待维护者清理文档，或者自行根据最新 API 调整代码。建议在 GitHub 上查看最新的 Issue 或 Pull Request 以获取修复后的代码示例。","https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\u002F264",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},25292,"如何使用 PySwarms 进行简单电路的分析？","PySwarms 提供了关于电路分析的教程示例。目标是创建一个 Jupyter 笔记本，演示如何使用 PSO 分析包含电阻和二极管的简单电路。对于二极管模型，建议使用简化的肖克利方程（Shockley equation）：I = I_s * e^(v_D \u002F v_T)。用户可以参考官方仓库 `examples` 部分获取灵感，并按照教程步骤编写优化程序来拟合电路参数。","https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\u002F202",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},25293,"当使用 ftol 参数时，为什么优化过程会在成本仍然很高时提前停止？","这是一个已知的行为问题。当使用 `ftol`（函数容差）且连续两次迭代的最佳成本相等时，即使成本值仍然很高，搜索也会停止。这是因为算法检测到 `swarm.best_cost` 等于 `best_cost_yet_found`，从而判定收敛。解决方法是在优化器代码中增加额外的检查逻辑，忽略 `swarm.best_cost == best_cost_yet_found` 的情况，除非成本确实低于 `ftol` 阈值。应用修复后，算法将继续搜索直到找到更低的成本（例如从 0.0049 降至 6.5e-11）。","https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\u002F397",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},25294,"如何为 PySwarms 的搜索方法（如 GridSearch）添加输入验证？","可以通过在继承自 `SearchBase` 的类中实现 `assertions()` 方法来添加输入验证。该方法应包含实例化时的各种检查（如类型检查、范围检查等）。可以参考 `SwarmBase.assertions` 的实现方式，以及在 `GlobalBestPSO` 或 `LocalBestPSO` 中的具体应用。此外，建议编写单元测试（如在 `test.utils.search.test_gridsearch` 中添加 `Instantiation` 类），通过传入无效参数（错误类型、越界值等）来验证断言是否正常工作。","https:\u002F\u002Fgithub.com\u002Fljvmiranda921\u002Fpyswarms\u002Fissues\u002F27",[153,158,163,168,173,178,183,188,193,198,203,208,213,218,223],{"id":154,"version":155,"summary_zh":156,"released_at":157},159286,"v.1.2.0","本次小版本更新包含了多项文档和 CI\u002FCD 流水线的改进。感谢所有为本版本贡献力量的小伙伴！对于这次非常迟缓的发布，我深表歉意——生活总是充满各种意外：\n\n- **新增**：使用 Azure Pipelines 现代化 CI\u002FCD 流水线 - #433\n- **改进**：Jupyter Notebook 及相关模块的文档更新 - #430、#404、#409、#399、#384、#379。特别感谢 @diegoroman17、@Archer6621、@yasirroni、@ivynasantino 和 @a310883！\n- **修复**：修复 requirements 中缺失的 PyYAML - #421。感谢 @blazewicz！\n- **修复**：修正 verbose 行为问题 - #408。感谢 @nishnash54 的精彩讨论！\n- **改进**：解耦技术和算子 - #403。一如既往地感谢 @whzup！\n- **改进**：添加容差参数 - #402。感谢 @nishnash54！\n- **改进**：增加 verbose 开关并修复未关闭的进程池 - #395。感谢 @msat59 的有益讨论！","2020-11-14T05:18:38",{"id":159,"version":160,"summary_zh":161,"released_at":162},159287,"v.1.1.0","这个新版本增加了并行粒子评估支持、更完善的文档、多项修复以及更新的构建依赖。\n\n- **新增**：更新了 API 文档 — #344\n- **新增**：放宽了安装 pyswarms 时的依赖要求 — #345\n- **新增**：我们现在使用 Azure Pipelines 进行构建！— #327\n- **新增**：添加了关于电路的笔记本 — #288。感谢 @miguelcocruz！\n- **新增**：并行粒子评估 — #312。再次感谢 @danielcorreia96！\n- **修复**：修复优化方法返回错误的最佳位置的问题 — #322。感谢 @ichbinjakes！\n- **修复**：修复 SearchBase 参数的问题 — #328。感谢 @Kutim！\n- **修复**：修复基础优化示例 — #329。感谢 @IanBoyanZhang！\n- **修复**：修复全局最优速度公式 — #330。感谢 @craymichael！\n- **修复**：将示例代码更新至新 API — #296。感谢 @ndngo！","2019-05-18T08:44:28",{"id":164,"version":165,"summary_zh":166,"released_at":167},159288,"v.1.0.2","- **修复**：BinaryPSO 应当返回最终的最佳位置，而不是最终的种群状态 - #293。再次感谢 @danielcorreia96！","2019-02-18T01:51:48",{"id":169,"version":170,"summary_zh":171,"released_at":172},159289,"v.1.0.1","- **修复**：改进了处理器的内存管理，确保其始终正常工作 - #286。感谢 @whzup！\r\n- **修复**：重新引入针对多次调用优化函数的修复 - #290。再次感谢 @danielcorreia96！","2019-02-14T14:33:16",{"id":174,"version":175,"summary_zh":176,"released_at":177},159290,"v.1.0.0","这是 PySwarms 的首个主要版本。从今天起，我们将遵循 [更完善的语义化版本控制规范](https:\u002F\u002Fsemver.org\u002F)。我们将在不久后更新项目的维基页面。维护团队认为，PySwarms 已经足够成熟，值得发布 1.0 版本；这也有助于我们更频繁地发布版本（主要是小版本），并尽快推出补丁版本。\n\n此外，我们将采用每季度一次的发布周期，**下一个小版本（v.1.1.0）将于六月发布**。所有功能增强和新特性都将先在 `development` 分支上开发，然后在每个发布周期结束时合并回 `master` 分支。不过，针对 bug 和文档错误的修复将直接以补丁版本的形式发布，并立即合并到 `master` 分支。\n\n- **新增**：边界与速度处理程序，用于解决粒子卡住的问题 — #238。感谢我们的维护者 @whzup！\n- **修复**：优化过程中函数调用重复的问题，希望您那些运行时间较长的目标函数不再需要花费双倍的时间了。— #266。感谢 @danielcorreia96！","2019-02-09T04:39:50",{"id":179,"version":180,"summary_zh":181,"released_at":182},159291,"v.0.4.0","- **新增**：控制台输出现由 `Reporter` 模块生成 - #227  \n- **新增**：`@cost` 装饰器，可自动扩展至整个种群 - #226  \n- **修复**：拓扑结构中存在一个 bug，导致在某些拓扑下最佳位置未使用最近邻方法计算 - #253  \n- **改进**：基准测试函数的命名更加规范 - #222。感谢 @nik1082！  \n- **改进**：优化器中的错误处理得到增强 - #232  \n- **改进**：依赖项的新管理方式 - #262  \n- **移除**：`environments` 模块已被移除 - #217","2019-01-29T12:12:41",{"id":184,"version":185,"summary_zh":186,"released_at":187},159292,"v.0.3.1","- **新增**：使用 Vagrantfile 的协作工具 - #193。感谢 @jdbohrman！\r\n- **新增**：添加 pyup.io 的配置文件 - #210\r\n- **修复**：修复 ReadTheDocs 中文档不完整的问题 - #208\r\n- **改进**：通过 pyup 更新依赖项 - #204","2018-08-13T10:06:56",{"id":189,"version":190,"summary_zh":191,"released_at":192},159300,"v.0.1.5","## Release notes\r\n\r\n- **NEW:** Easy graphics environment - #30, #31 \r\n\r\n## Graphics Environment\r\n\r\nThis new plotting environment makes it easier to plot the costs and swarm movement in 2-d or 3-d planes. The `PlotEnvironment` class takes in the optimizer and its parameters as arguments. It then performs a fresh run to plot the cost and to create animations.\r\n\r\nAn example of usage can be seen below:\r\n\r\n```python\r\nimport pyswarms as ps\r\nfrom pyswarms.utils.functions import single_obj as fx\r\nfrom pyswarms.utils.environments import PlotEnvironment\r\n\r\n# Set-up optimizer\r\noptions = {'c1':0.5, 'c2':0.3, 'w':0.9}\r\noptimizer = ps.single.GlobalBestPSO(n_particles=10, dimensions=3, options=options)\r\n\r\n# Initialize plot environment\r\nplt_env = PlotEnvironment(optimizer, fx.sphere_func, 1000)\r\n\r\n# Plot the cost\r\nplt_env.plot_cost(figsize=(8,6));\r\nplt.show()\r\n```","2017-08-11T07:12:01",{"id":194,"version":195,"summary_zh":196,"released_at":197},159293,"v.0.3.0","我们很荣幸地宣布 PySwarms 0.3.0 版本正式发布！借此机会，我们也热烈欢迎 Aaron Moser (@whzup) 加入项目维护者团队！0.3.0 版本新增了多种拓扑结构、用于配置粒子邻居的 `static` 选项，以及全新改版的 `plotters` 模块。在此，我们要感谢所有为本次发布贡献力量的贡献者们。\n\n## 发布说明\n\n- **新增：** 在 `pyswarms.backend` 模块中增加了更多基础粒子拓扑——#142、#151、#155、#177\n- **新增：** 支持将拓扑设置为静态或动态——#164\n- **新增：** `GeneralOptimizerPSO` 类。该类新增了一个用于指定优化过程中所用拓扑的属性——#151\n- **新增：** 用于群智能可视化的新模块 `plotters`。原有的 `environments` 模块现已弃用——#135、#172\n- **修复：** 修复了优化结果未返回最佳代价的 bug——#176\n- **修复：** 修复了 `setup.py` 在 Windows 上无法运行的 bug——#175\n- **改进：** 目标函数现在可以进行参数化，这对于自定义目标函数非常有帮助——#144。感谢 @bradahoward！\n- **改进：** 新增单目标优化函数——#168。太棒了，@jayspeidell！\n\n## 新增拓扑与 `GeneralOptimizerPSO` 类\n\n此次新增的拓扑旨在提升用户在优化过程中对群智能行为的自定义能力。此外，还引入了 `GeneralOptimizerPSO` 类，方便用户灵活切换不同的拓扑结构。请参阅下文详细介绍！\n\n### 新增拓扑类及 `static` 属性\n\n新加入的拓扑是对现有拓扑（星型和环形拓扑）的扩展，进一步丰富了用户从 `pyswarms.backend` 模块构建自定义群智能实现时的选择。新增的拓扑包括：\n- **金字塔拓扑 (Pyramid)**：基于粒子的 Delaunay 三角剖分计算邻居。\n- **随机拓扑 (Random)**：以系统化的方式随机生成邻居。\n- **冯·诺依曼拓扑 (VonNeumann)**：基于冯·诺依曼拓扑规则计算邻居（继承自环形拓扑）。\n\n为了更好地控制拓扑的行为，此次新增了一个 `static` 参数，在初始化拓扑类时传入。该参数为布尔类型，用于决定是否在每次迭代中重新计算邻居（`static=False`），还是仅在首次迭代时计算一次（`static=True`）。此参数作为拓扑初始化时的可选参数，默认值为 `False`。此外，`LocalBestPSO` 现在也支持 `static` 参数，以便将其传递给其内部的环形拓扑。示例如下。\n\n### `GeneralOptimizerPSO` 类\n\n这些新拓扑也可以轻松应用于全新的 `GeneralOptimizerPSO` 类，该类扩展了现有的优化器集合。除了沿用 `GlobalBestPSO` 和 `LocalBestPSO` 类中的参数外，`GeneralOptimizerPSO` 还新增了一个 `topology` 参数。此参数用于传","2018-08-10T00:22:19",{"id":199,"version":200,"summary_zh":201,"released_at":202},159294,"v.0.2.1","## 发布说明\n- **修复：** Sigmoid 函数中符号错误 - #145。感谢 @ThomasCES 捕获此问题！","2018-06-27T02:02:29",{"id":204,"version":205,"summary_zh":206,"released_at":207},159295,"v.0.2.0","## 发行说明\n- **新增：** `pyswarms.backend` 模块，用于自定义群体智能算法。用户现在可以使用该模块中提供的基础工具来编写自己的优化循环，从而实现一种更加“白盒”的群体智能方法——#119、#115、#116、#117\n- **改进：** 单元测试已迁移到 pytest。我们现已弃用 unittest 模块。pytest 的参数化测试使我们的测试用例能够更好地扩展——#114\n- **改进：** 停止对 Python 2.7 的支持。鉴于 [Python 2 即将停止维护](https:\u002F\u002Fpythonclock.org\u002F)，我们将全面支持 Python 3.4 及以上版本——#113\n- **改进：** 将 PSO 算法移植到新的 PySwarms 后端——#115\n- **改进：** 更新了 ReadTheDocs 中的文档，并新增了一个 Jupyter Notebook 示例——#124\n\n## PySwarms 后端模块\n\n新的后端模块公开了一些群体优化的基础工具，以便用户无需过多依赖我们的基类即可创建自定义的群体智能实现。后端主要包含两个组件：`Swarm` 类和 `Topology` 抽象基类。借助这两个类，您可以构建如下所示的自定义优化循环：\n\n![optimization_loop](https:\u002F\u002Fuser-images.githubusercontent.com\u002F12949683\u002F41201146-59144626-6ced-11e8-819a-a83ec9d13f59.png)\n\n### Swarm 类\n该类充当一个数据类，用于存储给定群体中的所有必要属性。其核心思想是不断更新这些属性。您可以通过提供初始位置矩阵和速度矩阵来轻松初始化该类。\n\n### Topology 类\nTopology 类抽象出了群体优化中的常见操作：(1) 确定群体中的最佳个体，(2) 计算下一个位置，以及 (3) 计算速度矩阵。目前，我们仅实现了 `Ring` 和 `Star` 两种拓扑结构。未来有望添加更多拓扑类型。\n\n![pyswarms_api](https:\u002F\u002Fuser-images.githubusercontent.com\u002F12949683\u002F41201155-7882e2ce-6ced-11e8-898e-5a12c3feaf11.png)","2018-06-11T01:15:17",{"id":209,"version":210,"summary_zh":211,"released_at":212},159296,"v.0.1.9","After three months, we are happy to present our next development release, version v.0.1.9! This release introduces non-breaking changes in the API and minor fixes adopting `pylint`'s and `flake8`'s strict conventions. This release would not have been possible without the help of @mamadyonline and our new Collaborator Siobhan K. Cronin! Thank you for all your help and support in maintaining PySwarms!\r\n\r\n## Release notes\r\n\r\n**NEW:** Ability to set the initial position of the swarm - #93 \r\n**NEW:** Ability to set a tolerance value to break the iteration - #93, #100 \r\n**FIX:** Fix for the Rosenbrock function returning the incorrect shape - #98 \r\n\r\n## Initial Position and Tolerance Value\r\nBefore, the swarm particles were generated randomly with respect to a lower and upper bound that we set during initialization. Now, we have the ability to initialize our swarm particles around a particular location, just in case we have applications that require that feature.\r\n\r\nAddtionally, we added a tolerance value to decrease optimization time. Usually, we just wait for a given number of iterations until the optimization finishes. We have now improved this and included a `ftol` parameter that serves as a threshold whenever the difference in the costs are not as significant anymore.\r\n\r\n## Fix for the Rosenbrock function\r\nTurns out that there is something wrong with our Rosenbrock function for it does not return a vector of shape `(n_particles, )`. Don't worry, we have fixed that!","2018-04-20T11:00:50",{"id":214,"version":215,"summary_zh":216,"released_at":217},159297,"v.0.1.8","## Special Release\r\n\r\nThis release reflects most of the changes requested by Journal of Open Source Software (JOSS) reviewers. We are now published in JOSS! You can check the review thread [here](https:\u002F\u002Fgithub.com\u002Fopenjournals\u002Fjoss-reviews\u002Fissues\u002F433) and the actual paper in this [link](https:\u002F\u002Fwww.theoj.org\u002Fjoss-papers\u002Fjoss.00433\u002F10.21105.joss.00433.pdf)","2018-01-10T17:45:53",{"id":219,"version":220,"summary_zh":221,"released_at":222},159298,"v.0.1.7","## Release notes\r\n\r\n* **FIX:** Bugfix for `local_best.py` and `binary.py` not returning the best cost they have encountered in the optimization process - #34\r\n* **IMPROVED:** Git now ignores IPython notebook checkpoints","2017-09-25T09:53:17",{"id":224,"version":225,"summary_zh":226,"released_at":227},159299,"v.0.1.6","## Release notes\r\n\r\n- **NEW:** Hyperparameter search tools - #20, #25, #28 \r\n- **IMPROVED:** Updated structure of Base classes for higher extensibility\r\n- **IMPROVED:** More robust tests for `PlotEnvironment`\r\n\r\n## Hyperparameter Search Tools\r\nPySwarms now implements a native version of `GridSearch` and `RandomSearch` to help you find the best hyperparameters in your swarm. To use this feature, simply call the `RandomSearch` and `GridSearch` classes from the `pyswarms.utils.search` module.\r\n\r\n```python\r\nimport numpy as np\r\nimport pyswarms as ps\r\nfrom pyswarms.utils.search import RandomSearch\r\nfrom pyswarms.utils.functions import single_obj as fx\r\n\r\n# Set-up choices for the parameters\r\noptions = {\r\n    'c1': (1,5),\r\n    'c2': (6,10),\r\n    'w': (2,5),\r\n    'k': (11, 15),\r\n    'p': 1\r\n}\r\n\r\n# Create a RandomSearch object\r\n# n_selection_iters is the number of iterations to run the searcher\r\n# iters is the number of iterations to run the optimizer\r\n\r\ng = RandomSearch(ps.single.LocalBestPSO, n_particles=40,\r\n            dimensions=20, options=options, objective_func=fx.sphere_func,\r\n            iters=10, n_selection_iters=100)\r\n\r\nbest_score, best_options = g.search()\r\n```\r\n\r\nThis then returns the best score found during optimization and the hyperparameter options that enabled it.\r\n\r\n```python\r\n>>> best_score\r\n1.41978545901\r\n>>> best_options['c1']\r\n1.543556887693\r\n>>> best_options['c2']\r\n9.504769054771\r\n```\r\n\r\n## Improved Library API\r\n\r\nMost of the swarm classes now inherit the base class in order to demonstrate its extensibility. If you are a developer or a swarm researcher planning to implement your own algorithms, simply inherit from these Base Classes and implement the `optimize()` method.\r\n","2017-09-24T01:21:22"]