MEALPY (MEta-heuristic ALgorithms in PYthon) 是一个开源的Python库,包含了大量最先进的元启发式算法。这些算法属于基于种群的算法(PMA),是近似优化领域中最流行的算法。
MEALPY的主要特点包括:

MEALPY的主要目标是:
使用MEALPY,您可以:
可以通过pip安装MEALPY的稳定版本:
pip install mealpy==3.0.1
安装完成后,可以像导入其他Python模块一样导入MEALPY:
import mealpy print(mealpy.__version__) print(mealpy.get_all_optimizers())
from mealpy import FloatVar, SMA import numpy as np def objective_function(solution): return np.sum(solution**2) problem = { "obj_func": objective_function, "bounds": FloatVar(lb=(-100.,)*30, ub=(100.,)*30), "minmax": "min", "log_to": None, } model = SMA.OriginalSMA(epoch=100, pop_size=50, pr=0.03) g_best = model.solve(problem) print(f"Best solution: {g_best.solution}, Best fitness: {g_best.target.fitness}")
from mealpy import FloatVar, SHADE import numpy as np def objective_function(solution): return np.sum(solution**2) problem = { "obj_func": objective_function, "bounds": FloatVar(lb=(-1000.,)*10000, ub=(1000.,)*10000), # 10000维 "minmax": "min", "log_to": "console", } optimizer = SHADE.OriginalSHADE(epoch=10000, pop_size=100) g_best = optimizer.solve(problem) print(f"Best solution: {g_best.solution}, Best fitness: {g_best.target.fitness}")
MEALPY支持使用多线程或多进程进行分布式优化:
from mealpy import FloatVar, SMA import numpy as np def objective_function(solution): return np.sum(solution**2) problem = { "obj_func": objective_function, "bounds": FloatVar(lb=(-100.,)*100, ub=(100.,)*100), "minmax": "min", "log_to": "console", } optimizer = SMA.OriginalSMA(epoch=10000, pop_size=100, pr=0.03) # 使用10个线程 optimizer.solve(problem, mode="thread", n_workers=10) print(f"Best solution: {optimizer.g_best.solution}, Best fitness: {optimizer.g_best.target.fitness}") # 使用8个CPU核心 optimizer.solve(problem, mode="process", n_workers=8) print(f"Best solution: {optimizer.g_best.solution}, Best fitness: {optimizer.g_best.target.fitness}")
MEALPY允许用户定义自定义的优化问题。以下是一个优化SVM超参数的例子:
from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn import datasets, metrics from mealpy import FloatVar, StringVar, IntegerVar, BoolVar, MixedSetVar, SMA, Problem # 加载数据集 X, y = datasets.load_breast_cancer(return_X_y=True) # 创建训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1, stratify=y) sc = StandardScaler() X_train_std = sc.fit_transform(X_train) X_test_std = sc.transform(X_test) data = { "X_train": X_train_std, "X_test": X_test_std, "y_train": y_train, "y_test": y_test } class SvmOptimizedProblem(Problem): def __init__(self, bounds=None, minmax="max", data=None, **kwargs): self.data = data super().__init__(bounds, minmax, **kwargs) def obj_func(self, x): x_decoded = self.decode_solution(x) C_paras, kernel_paras = x_decoded["C_paras"], x_decoded["kernel_paras"] degree, gamma, probability = x_decoded["degree_pras"], x_decoded["gamma_paras"], x_decoded["probability_paras"] svc = SVC(C=C_paras, kernel=kernel_paras, degree=degree, gamma=gamma, probability=probability, random_state=1) # 拟合模型 svc.fit(self.data["X_train"], self.data["y_train"]) # 进行预测 y_predict = svc.predict(self.data["X_test"]) # 评估性能 return metrics.accuracy_score(self.data["y_test"], y_predict) my_bounds = [ FloatVar(lb=0.01, ub=1000., name="C_paras"), StringVar(valid_sets=('linear', 'poly', 'rbf', 'sigmoid'), name="kernel_paras"), IntegerVar(lb=1, ub=5, name="degree_paras"), MixedSetVar(valid_sets=('scale', 'auto', 0.01, 0.05, 0.1, 0.5, 1.0), name="gamma_paras"), BoolVar(n_vars=1, name="probability_paras"), ] problem = SvmOptimizedProblem(bounds=my_bounds, minmax="max", data=data) model = SMA.OriginalSMA(epoch=100, pop_size=20) model.solve(problem) print(f"Best agent: {model.g_best}") print(f"Best solution: {model.g_best.solution}") print(f"Best accuracy: {model.g_best.target.fitness}") print(f"Best parameters: {model.problem.decode_solution(model.g_best.solution)}")
MEALPY是一个功能强大、易于使用的Python库,为各种优化问题提供了广泛的元启发式算法。无论您是研究人员、工程师还是数据科学家,MEALPY都能为您的优化任务提供宝贵的工具和解决方案。通过其丰富的算法库、灵活的问题定义和强大的分析工具,MEALPY可以帮助您更快、更有效地解决复杂的优化问题。
如果您在使用MEALPY时发现它对您的工作有所帮助,请考虑在您的研究中引用MEALPY。您的支持将有助于MEALPY 的持续发展和改进,使更多人受益于这个开源项目。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互 的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


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


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


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号