Skip to content

fcuantico/se_euler_benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SE-Euler BB Benchmark Suite

A systematic benchmark pipeline for the SE-Euler BB optimizer and its L-BFGS hybrid, developed as part of a PhD research project at Iowa State University.


Overview

This repository contains the benchmark pipeline for studying and comparing a new class of first-order optimization algorithms designed for molecular potential energy surface (PES) exploration. The central contribution is the SE-Euler BB optimizer — a damped dynamical system discretized with semi-implicit Euler integration, where the damping coefficients are controlled by Barzilai-Borwein (BB) Rayleigh quotient curvature estimates — and its two-phase hybrid with L-BFGS.

The benchmark is designed to address a specific challenge in molecular optimization: each force (gradient) evaluation is computationally expensive, so the primary metric is force evaluations to convergence, not wall time or iteration count alone.


Research Context

Classical optimization methods from the convex optimization and machine learning communities (Adam, Nesterov, L-BFGS) are not designed for the molecular optimization regime, where:

  • Gradients are exact and expensive — no stochastic noise, but each evaluation may cost seconds to hours (DFT or force-field calls).
  • The landscape is non-convex with barriers, harmonic basins, and saddle points.
  • No Lipschitz constant or condition number is known in advance.
  • The optimizer must work without hyperparameter tuning across different chemical systems.

The SE-Euler BB hybrid addresses these constraints by:

  1. Using BB Rayleigh quotients to estimate local curvature from secant pairs — no Hessian required.
  2. Detecting harmonic basin entry via a convexity streak criterion — scale-free, geometry-based.
  3. Warm-starting L-BFGS with secant pairs accumulated during Phase 1 — the switch happens at the right moment with the right information.

This work is a direct response to the open question in Simon, Kaistha & Agarwal (React. Chem. Eng. 2025), which states: "accelerated algorithms similar to AARE could also be developed using the L-BFGS direction, which can be explored in future work."


Research Arc

Tier Problem class Status
1 nD analytical functions In progress
2 Molecular geometry optimization Planned
3 Nudged elastic band (NEB) Planned
4 Hartree-Fock orbital optimization Future work

Methods Compared

# Method Family Role
1 SE-Euler BB Dynamical systems Base method
2 SE-Euler BB + L-BFGS hybrid Dynamical systems Main contribution
3 BFGS Quasi-Newton Full quasi-Newton upper bound
4 L-BFGS (Armijo) Quasi-Newton Memory-limited quasi-Newton
5 FIRE Molecular MD Community standard
6 AARE-FR Molecular MD Direct literature competitor
7 AARE-PR Molecular MD Direct literature competitor
8 Acc-CG Conjugate gradient Direct literature competitor
9 Nesterov (NAG) Convex optimization Theoretical ancestor
10 Adam Machine learning AI community baseline

Repository Structure

se_euler_benchmark/
│
├── README.md                        # this file
├── environment.yml                  # conda environment
├── .gitignore
│
├── functions/
│   ├── README.md
│   ├── base_function.py             # abstract base class
│   ├── 2d/                          # 26 AARE + existing 2D functions
│   ├── 4d/                          # 5 AARE Table 2 functions
│   └── nd/                          # scalable versions (n=10, 30, 100)
│
├── methods/
│   ├── README.md
│   ├── se_euler_BB.py
│   ├── se_euler_BB_lbfgs_hybrid.py
│   ├── fire.py
│   ├── aare_fr.py
│   ├── aare_pr.py
│   ├── acc_cg.py
│   ├── bfgs.py
│   ├── lbfgs.py
│   ├── nesterov.py
│   └── adam.py
│
├── benchmark/
│   ├── README.md
│   ├── run_benchmark.py             # systematic runner
│   ├── starting_points.json         # fixed seed, 100 pts per function
│   └── config.yaml                  # tolerances, convergence modes
│
├── results/
│   ├── README.md
│   ├── store1_robustness.csv        # 100 starting points per function
│   ├── store2_literature.csv        # 5 representative points
│   └── store3_convergence.csv       # full gradient norm history
│
├── analysis/
│   ├── README.md
│   ├── figures/                     # saved plots
│   ├── tables.py                    # AARE-style comparison tables
│   ├── convergence_plots.py         # semi-log ||F|| vs force evaluations
│   ├── performance_profiles.py      # Dolan & Moré performance profiles
│   └── trajectory_plots.py          # 2D trajectory visualization
│
└── docs/
    ├── algorithm_description.md
    ├── benchmark_design.md
    └── literature_context.md

Benchmark Design

Three measurements are recorded at every run:

Measurement Description Primary use
Force evaluations (FE) Total calls to f.functionvalue() Cross-method comparison
Convergence rate ρ_k ‖∇E_k‖ / ‖∇E_{k-1}‖ Linear vs superlinear classification
Switch diagnostics convex_streak, ratio_streak, lbfgs_pairs Hybrid behavior analysis

Two convergence criteria are used in every run:

  • ‖F‖ < 0.01 — AARE paper standard (Simon et al. 2025, Tables 1 & 2)
  • ‖F‖ < 1e-6 — optimization literature standard

Results are stored in three CSV files loaded with pandas for analysis.


Installation

git clone https://github.com/fcuantico/se_euler_benchmark.git
cd se_euler_benchmark
conda env create -f environment.yml
conda activate se_euler_benchmark

Quick Start

python benchmark/run_benchmark.py --config benchmark/config.yaml

Key References

  • Simon, Kaistha & Agarwal (2025) — AARE/Acc-CG, direct benchmark target
  • Bitzek et al. (2006) — FIRE, molecular community standard
  • Barzilai & Borwein (1988) — BB step sizes
  • Muehlebach & Jordan (2019) — SE-Euler connection to Nesterov
  • Liu & Nocedal (1989) — L-BFGS
  • Dolan & Moré (2002) — performance profiles

Status

This project is under active development as part of a PhD dissertation at Iowa State University. Results and documentation will be updated as the benchmark suite is completed.


Citation

To be added upon publication.

About

Benchmark pipeline for the SE-Euler BB optimizer and its L-BFGS hybrid — a curvature-adaptive first-order method for molecular potential energy surface optimization. PhD project, Iowa State University.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors