SaddleScape-1.0: 使用高阶鞍点动力学(HiSD)构建解景观
概要
SaddleScape 是一个基于高阶鞍点动力学(HiSD)构建解景观的Python工具包。该工具包支持动力系统中鞍点的数值计算及其层级结构分析,简化了鞍点搜索流程,提供灵活的参数设置和丰富的可视化功能。
功能特性
- 多算法实现:
HiSD: 梯度系统的高阶鞍点动力学算法GHiSD: 非梯度系统的普适高阶鞍点动力学算法
- 多加速算法实现:
HiSD: 基础鞍点搜索算法NHiSD: 带Nesterov加速的HiSD算法HHiSD: 带Heavy Ball加速的HiSD算法
- 灵活特性:
- 支持多种输入形式(梯度函数或能量函数,表达式字符串或函数句柄)
- 自动校验参数有效性
- 模块化类设计方便扩展
- 便捷的搜索轨迹、热力图和鞍点连接图绘制
- 重要计算结果自动保存
- 支持处理函数系统
- 可自动合并相同鞍点
安装指南
-
克隆仓库: ```bash git clone https://github.com/HiSDpackage/saddlescape cd saddlescape-1.0
-
安装依赖:
pip install -r requirements.txt
快速入门
以下是使用 SaddleScape-1.0 的基本工作流程:
-
添加路径: 使用以下Python代码将目录添加到系统路径:
import sys sys.path.append('/path/to/saddlescape-1.0')将
'/path/to/saddlescape-1.0'替换为实际的saddlescape-1.0目录路径。 - 导入模块:
from saddlescape import Landscape - 初始化对象:
landscape = Landscape(**kwargs) - 运行计算:
landscape.Run() - 绘制图形:
landscape.DrawTrajectory(**kwargs) landscape.DrawConnection(**kwargs) - 保存结果:
landscape.Save(filepath, fileformat) - 重启计算:
landscape.RestartFromPoint(RestartPoint, MaxIndex) landscape.RestartFromSaddle(BeginID, Perturbation, MaxIndex)
更多详细用法请参考documentation文件。(您也可以在左侧的“教程”部分查看)
依赖项
HiSD 依赖以下Python库:
内置包:
copysyswarningsinspectjsonitertoolsmathpickle
第三方包:
numpy-2.2.3scipy-1.15.2sympy-1.13.3matplotlib-3.10.0networkx-3.4.2
示例
GitHub仓库的gallery目录中提供以下示例Jupyter Notebook文件:(您也可以在左侧的“示例”部分查看)
Ex_1_Butterfly.ipynbEx_2_MullerBrownPotential.ipynbEx_3_Cubic.ipynbEx_4_PhaseField.ipynb
引用
如在研究中使用本软件包,请引用以下相关论文:
@misc{liu2026saddlescapev10pythonpackage,
title={SaddleScape V1.0: A Python Package for Constructing Solution Landscapes via High-index Saddle Dynamics},
author={Yuyang Liu and Hua Su and Zixiang Xiao and Lei Zhang and Jin Zhao},
year={2026},
eprint={2601.01081},
archivePrefix={arXiv},
primaryClass={math.NA},
url={https://arxiv.org/abs/2601.01081},
}
文章链接: https://arxiv.org/abs/2601.01081
相关工作
我们的软件包的理论基础来自于以下文章:
-
Zhang, L. (2023). Construction of solution landscapes for complex systems. Mathematica Numerica Sinica, 45(3), 267-283. https://doi.org/10.12286/jssx.j2023-1121
-
Yin, J., Zhang, L., & Zhang, P. (2019). High-index optimization-based shrinking dimer method for finding high-index saddle points. SIAM Journal on Scientific Computing, 41(6), A3576-A3595. https://doi.org/10.1137/19M1253356
-
Yin, J., Yu, B., & Zhang, L. (2020). Searching the solution landscape by generalized high-index saddle dynamics. Science China Mathematics, 64(8). https://doi.org/10.1007/s11425-020-1737-1
-
Zhang, L., Zhang, P., & Zheng, X. (2024). Understanding high-index saddle dynamics via numerical analysis. Communications in Mathematical Sciences, 23(2). https://doi.org/10.4310/CMS.241217235844
-
Luo, Y., Zhang, L., & Zheng, X. (2025). Accelerated high-index saddle dynamics method for searching high-index saddle points. Journal of Scientific Computing, 102(3). https://doi.org/10.1007/s10915-024-02760-6
感谢使用SaddleScape!我们欢迎任何反馈或建议。